svelte-ui:基于svelte3桌面pc版组件库

这篇具有很好参考价值的文章主要介绍了svelte-ui:基于svelte3桌面pc版组件库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Svelte-UI 一套轻量级svelte3.x网页端UI组件库

历时快两个月的svelte-ui组件库终于见面了。整体功能效果比较类似element-ui组件库,因为在开发之初就借鉴了其设计思路。所以用起来就比较熟悉。
svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库
svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库
svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库
svelte-ui共整理设计了32+组件,都是平时比较常用且出现频率比较高的一些组件。
svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库
svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库
引入组件

import {
    Button,
    Input,
    CheckBox,
    Select,
    Form,
    ...
} from 'svelte-ui'

快速使用

<Form bind:model={formObj} labelWidth="80px" size="small" labelPosition="right">
    <FormItem label="活动名称">
        <Input bind:value={formObj.name} />
    </FormItem>
    <FormItem label="活动区域">
        <Select bind:value={formObj.region} clearable>
            <Option label="区域1" value="beijing" />
            <Option label="区域2" value="shanghai" />
        </Select>
    </FormItem>
    <FormItem label="即时配送">
        <Switch bind:checked={formObj.delivery} />
    </FormItem>
    <FormItem label="活动性质">
        <CheckboxGroup bind:checked={formObj.type}>
            <Checkbox label="美食/餐厅线上活动" border />
            <Checkbox label="亲子主题" border />
            <Checkbox label="品牌推广" border />
        </CheckboxGroup>
    </FormItem>
    <FormItem label="特殊资源">
        <RadioGroup bind:checked={formObj.resource}>
            <Radio label="线上品牌商赞助" button />
            <Radio label="线下场地免费" button />
        </RadioGroup>
    </FormItem>
    <FormItem label="活动详情">
        <Input bind:value={formObj.summary} type="textarea" rows={3} />
    </FormItem>
    <FormItem>
        <Button type="primary">立即创建</Button>
        <Button>取消</Button>
    </FormItem>
</Form>

svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库
在UI展示及使用语法上比较靠近element-ui,降低使用者的认知成本。
Form组件支持rule验证规则。
svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库

let ruleFormDom
let formRules = {
    name: '',
    region: '',
    delivery: false,
    type: [],
    resource: '',
    summary: '',
}
let rules = {
    name: [
        { required: true, message: '请输入活动名称', trigger: 'blur' },
        { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'change' }
    ],
    region: [
        { required: true, message: '请选择活动区域', trigger: 'change' }
    ],
    type: [
        { type: 'array', required: true, message: '请至少选择一个活动性质', trigger: 'change' }
    ],
    resource: [
        { required: true, message: '请选择活动资源', trigger: 'change' }
    ],
    // summary: [
    //     { required: true, message: '请填写活动详情', trigger: 'blur' }
    // ]
}
function onSubmitRules() {
    ruleFormDom.validate((valid) => {
        if(valid) {
            console.log('submit!')
        }else {
            console.log('error submit!')
            return false
        }
    })
}
function onResetRules() {
    formRules = {
        name: '',
        region: '',
        delivery: false,
        type: [],
        resource: '',
        summary: '',
    }
    ruleFormDom.resetFields()
}

<Form bind:model={formRules} rules={rules} bind:this={ruleFormDom}>
    <FormItem label="活动名称" prop="name">
        <Input bind:value={formRules.name} />
    </FormItem>
    <FormItem label="活动区域" prop="region">
        <Select bind:value={formRules.region} clearable>
            <Option label="区域1" value="beijing" />
            <Option label="区域2" value="shanghai" />
        </Select>
    </FormItem>
    <FormItem label="即时配送" prop="delivery" required message="请勾选即时配送" trigger="change">
        <Switch bind:checked={formRules.delivery} />
    </FormItem>
    <FormItem label="活动性质" prop="type">
        <CheckboxGroup bind:checked={formRules.type}>
            <Checkbox label="美食/餐厅线上活动" />
            <Checkbox label="亲子主题" />
            <Checkbox label="品牌推广" />
        </CheckboxGroup>
    </FormItem>
    <FormItem label="特殊资源" prop="resource">
        <RadioGroup bind:checked={formRules.resource}>
            <Radio label="线上品牌商赞助" />
            <Radio label="线下场地免费" />
        </RadioGroup>
    </FormItem>
    <FormItem label="活动详情" prop="summary" rules={[{ required: true, message: '请填写活动详情', trigger: 'blur' }]}>
        <Input bind:value={formRules.summary} type="textarea" rows={3} />
    </FormItem>
    <FormItem>
        <Button type="primary" on:click={onSubmitRules}>立即创建</Button>
        <Button on:click={onResetRules}>重置</Button>
    </FormItem>
</Form>

Table表格组件支持固定表头/列、水平/垂直滚动条、单选/多选、尺寸/边框/隔行换色、自定义样式等功能。
svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库

let tableData3 = Mock.mock({
    total: 100,
    page: 1,
    pagesize: 5,
    'list|10': [
        {
            id: '@id()',
            author: '@cname()',
            title: '@ctitle(10, 20)',
            image: 'https://picsum.photos/400/400?random=' + '@guid()',
            switch: '@boolean()',
            'tags|1': ['admin', 'test', 'dev'],
            progress: '@integer(30, 90)',
            date: '@datetime()'
        }
    ]
})
let tableColumns3 = [
    {type: 'selection', align: 'center', width: 50, fixed: true}, // 多选
    {type: 'index', align: 'center', width: 80}, // 索引序号
    {prop: 'author', label: '作者', align: 'center', width: 120},
    {prop: 'title', label: '标题', align: 'left', width: 350},
    {slot: 'image', label: '图片', align: 'center', width: 120},
    {slot: 'switch', label: '推荐', align: 'center', width: 100},
    {slot: 'tags', label: '标签', align: 'center', width: 100},
    {slot: 'progress', label: '热度', align: 'center', width: 150},
    {prop: 'date', label: '发布时间', align: 'left', width: 300}, // 时间
    {slot: 'btns', label: '操作', align: 'center', width: 150, fixed: 'right'}, // 操作
]
let tableEl
let selectionData = []
let headerData = []
function handleSelectRow(rowIndex) {
    tableEl.setCurrent(rowIndex)
}
function handleClearSelect() {
    tableEl.setCurrent()
}
function handleSelectionChange(e) {
    console.log('selection change选中行数据>>:', e.detail)
    selectionData = e.detail
}
function handleHeaderClick(e) {
    console.log('header click选中表头数据>>:', e.detail)
    headerData = e.detail
}

<Button type="primary" size="small" on:click={()=>handleSelectRow(0)}>选择第一行</Button>
<Button type="primary" size="small" on:click={()=>handleSelectRow([1,2])}>切换第二、第三行的选中状态</Button>
<Button type="primary" size="small" on:click={handleClearSelect}>取消选择</Button>

<Table
    dataSource={tableData3.list}
    columns={tableColumns3}
    stripe
    border
    highlightCurrentRow
    let:row
    let:col
    let:index
    on:selectionChange={handleSelectionChange}
    on:headerClick={handleHeaderClick}
    style="height: 300px;"
    bind:this={tableEl}
>
    {#if col.slot == 'image'}
        <img src={row.image} style="height: 50px; width: 50px;" alt="" />
    {:else if col.slot == 'switch'}
        <Switch checked={row.switch} />
    {:else if col.slot == 'tags'}
        <Tag type="warning" effect="dark" size="mini">{row.tags}</Tag>
    {:else if col.slot == 'progress'}
        <Progress percent={row.progress} color="#1fb925" showtext="false" strokeWidth={6} style="width: 100px;" />
    {:else if col.slot == 'btns'}
        <Button type="text">编辑</Button>
        <Button type="text">删除</Button>
    {/if}
</Table>

svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库
svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库
svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库
svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库
Message消息提示组件支持多种类型及主题。
svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库

Message('这是一条默认提示信息')

Message.success('恭喜你,这是一条成功消息', 10) // 10s后关闭

Message({
    type: 'warning',
    title: '警告哦,这是一条警告消息'
})

Message({
    type: 'danger',
    title: '错了哦,这是一条错误消息',
    description: '这是一段描述性文字提示',
    effect: 'dark'
})

Message.info('这是一条消息提示')

svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库
svelte ui,Svelte+SvelteKit实例+组件,svelte-ui,svelte组件库,Svelte-UI组件库,svelte3-ui桌面组件库
ok,以上就是部分组件的一些展示,后续还会完善一些功能,并且基于此组件做一个后台管理系统,到时也会分享出来。文章来源地址https://www.toymoban.com/news/detail-523139.html

  • svelte聊天室|基于svelte3桌面pc端聊天实例
    https://blog.csdn.net/yanxinyun1990/article/details/124778053

到了这里,关于svelte-ui:基于svelte3桌面pc版组件库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot开发PC端桌面应用

     一、需求描述: 1、要求桌面能在window、Linux和macos系统上运行 2、用户自定义数据筛选策略,策略可通过excel导入导出 3、选择多个excel文件通过策略过滤生成新的excel 二、技术选型及集成环境配置: 1、PC端跨平台直接选用javafx来作为桌面开发 2、动态数据规则使用drools以及内

    2024年02月11日
    浏览(45)
  • Layui Vue - 优雅经典、免费开源的 Vue 3 桌面端 UI 组件库,沿用 layui 设计规范,开箱即用,自带 Pear Admin Next 后台管理系统

    经典的 layui 没有停止维护,还出了 Vue 3 版本的,依旧好用,分享给大家。 关于 Layui Vue 在介绍 Layui Vue 之前有必要先介绍一下 Layui。Layui 是一套经典的开源的 Web UI 组件库,作者是大名鼎鼎的前端大神贤心。Layui 采用轻量级模块化规范,遵循原生态的 HTML / CSS / JavaScript 开发模

    2024年02月08日
    浏览(29)
  • pagination分页、页码组件(基于element ui组件库)

    以下@表示路径别名src,具体可在vue.config.js中配置 具体功能是,当点击了分页,获取表格之后,重新使得滚动条回到初始位置 ,scrollTo(0, 800),参数0和800表示需要0.8s的时间回到滚动条距离顶部0位置。 template中 data中 methods中 loading为表格加载圈控制 dateRange为表格的搜索参数

    2024年02月01日
    浏览(25)
  • iPad远程控制Windows PC - Microsoft远程桌面

    有时我们坐在客厅里,想来一局游戏,怎奈何主机太远,接不上电视,这个时候我们就可以利用iPad当作中继器,插上电视,享受大屏带来的震撼...... 有时我们躺在床上,不想到电脑上玩游戏,我们就可以用iPad远程游戏,低延迟也可以让我们大展拳脚...... Microsoft远程桌面详细

    2024年02月06日
    浏览(28)
  • Flutter PC桌面端 控制应用尺寸是否允许放大缩小

    桌面端中,登录、注册、找回密码页面不允许用户手动放大缩小,主页面允许 window_manager 使用教程请参照这篇博客:Flutter桌面端开发——window_manager插件的使用 题外话: 之前使用的是 bitsdojo_window 插件,使用方法请参照博客 bitsdojo_window 这个插件中,如果想要用户不允许操作

    2023年04月20日
    浏览(27)
  • 基于element UI input组件自行封装“数字区间”输入框组件

    在开发时遇到一个 数字区间 输入框的需求,如下图: 项目使用的是vue,组件库用的是element UI,但是element UI并没有提供数字区间组件,只提供了InputNumber 计数器输入框,如果用两个计数器输入框进行拼接也能满足需求,但是样式调试起来太过于复杂且不够灵活,不能令人满

    2024年02月11日
    浏览(30)
  • 基于vue+element ui实现下拉表格选择组件

    根据https://lolicode.gitee.io/scui-doc/demo/#/dashboard里的组件修改

    2024年02月16日
    浏览(40)
  • HarmonyOS鸿蒙基于Java开发:Java UI 常用组件 组件通用XML属性

    目录 基础XML属性 间距相关的XML属性 滚动条相关的XML属性 旋转缩放相关的XML属性 焦点相关的XML属性 Component是所有组件的基类,Component支持的XML属性,其他组件都支持。 Component支持的XML属性如下表。 表1  基础属性的相关说明 属性名称

    2024年01月25日
    浏览(41)
  • Vue + JS + tauri 开发一个简单的PC端桌面应用程序

    Tauri 1 是一款应用构建工具包,让您能够为使用 Web 技术的所有主流桌面操作系统构建软件。tauri 框架与 electron 非常相似。 tauri electron 体积 10MB 100MB 打包速度 2s 17s Tauri 由一个可搭配任何前端来构建桌面应用的框架和 Rust 核心构成。 创建窗口并向其提供原生功能支持的 Rust 二

    2024年01月17日
    浏览(41)
  • 实现纯Web语音视频聊天和桌面分享(附源码,PC端+移动端)

    在网页里实现文字聊天是比较容易的,但若要实现视频聊天,就比较麻烦了。本文将实现一个纯Web版的视频聊天和桌面分享的Demo,可直接在浏览器中运行,不需要安装任何插件。 1.本Demo的主要功能有 (1)一对一语音视频聊天。 (2)远程桌面观看。 (3)当客户端掉线时,

    2024年01月23日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包