文档
项目简介
本项目使用vite + pinia + ts + vue3, 使用的node版本为20.10.0, 推荐使用pnpm安装依赖
本项目源码地址为: https://gitee.com/taozhiqiang/vite_ts_pinia.git 初次搭建, 其中有问题欢迎大家交流与指正, 有好的想法或者不足之处可留言, 看到会回复
部分样式代码及图片借鉴于: https://gitee.com/imsea/Geeker-Admin.git 侵删
API
使用axios库, 用类的方式二次封装, 使用了双token实现页面无感刷新, 以及接口参数请求加解密, 加解密使用随机加密秘钥, 每次请求的加解密秘钥是不相同的, 密钥使用非对称加密, 加密之后通过appId
传递给后端, 同时生成一个唯一值(nonce
)和时间戳(timestamp
), 最后把appId
, nonce
, timestamp
以及data
数据按顺序拼接, 最后通过md5
生成签名
在api
文件夹下的index.ts
中做了接口统一导出, 使用的时候只需要引用index.ts
文件就可直接使用请求
sass
样式使用sass, 其中添加了清除浮动, 多行文本隐藏, flex布局, 以及盒子边框流光效果的样式混入
BaseEditor
富文本编辑器使用wangEditor二次封装, 在其中添加了一个添加填空的插件, 接收两个参数excludeKeys
(菜单栏需要忽略的配置)以及editorConfig
(编辑器的配置), 该组件尚未完成后续会继续完善
1 | <script lang="ts" setup> |
1 | <template> |
editorConfig
类型为IEditorConfig
, 具体参数请查看官网文档 https://www.wangeditor.com/v5/editor-config.html#placeholder
excludeKeys
类型为字符串数组, 可选参数如下
1 | [ |
BaseIcon
使用@iconify/vue二次封装, 该组件接收三个参数icon
(图标名称), color
(颜色色值), size
(大小), 支持element-plus图标以及网络图标, 网络图标可以参考以下两个链接
https://icones.js.org/collection/all
https://icon-sets.iconify.design
1 | type TIcon = { |
1 | <template> |
BaseForm
表单组件, 只需传入配置即可显示, 添加规则校验, 字典默认值自动回显, 导出三个方法: 校验输入是否完整以及是否正确输入(validate
), 重置表单项(resetFields
), 验证表单中的具体某一项(validateField
)
使用示例
1 | <script lang="ts" setup> |
1 | <template> |
配置解析
1 | import {FormProps} from 'element-plus' |
BaseSearch
搜索组件, 基本配置与表单配置相同, 没有改变, 内部提供两个事件searchFn
(搜索事件)和resetSearchFn
(重置事件), 可通过设置isRestSearch
是否在点击重置之后立即开始搜索,
可通过设置showSearchBtn
是否展示搜索和重置按钮
BaseTable
表格组件, 支持el-table的所有属性, 额外添加外置按钮和内置按钮的处理, 支持展示html
| dict
| icon
| img
| tag
| textColor
| click
类型的数据
使用示例
1 | <script lang="ts" setup> |
1 | <template> |
配置解析
可查看项目文件中的interface
文件夹下面的table.ts
文件
BaseNotice
通知公告组件, 用于循环播放通知公告, 鼠标滑动上去会暂停, 可拖动, 可设置播放速度, 颜色等
1 | type INotice = { |
1 | <template> |
BaseSimple
分片上传组件, 结合element-plus的上传组件, 可本地执行, 启动目录下simpleNode下的server服务就可以本地运行模拟分片上传
1 | // props接收的值 |
1 | <template> |
BaseMap
地图组件(仅供参考) 未封装, 可根据实际情况自己修改