diff --git a/package.json b/package.json
index 0215818..4272530 100644
--- a/package.json
+++ b/package.json
@@ -21,6 +21,7 @@
},
"dependencies": {
"@element-plus/icons-vue": "2.1.0",
+ "@smallwei/avue": "^3.2.22",
"@tinymce/tinymce-vue": "^5.1.0",
"axios": "1.3.4",
"big.js": "6.2.1",
diff --git a/src/crud/admin/form.js b/src/crud/admin/form.js
new file mode 100644
index 0000000..728b735
--- /dev/null
+++ b/src/crud/admin/form.js
@@ -0,0 +1,70 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ selection: true,
+ index: false,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ menuWidth: 350,
+ align: 'center',
+ refreshBtn: true,
+ searchSize: 'mini',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ props: {
+ label: 'label',
+ value: 'value'
+ },
+ column: [{
+ label: '表单名称',
+ prop: 'formName',
+ search: true
+ }, {
+ label: '按钮文本',
+ prop: 'buttonName',
+ search: true
+ }, {
+ label: '提交次数',
+ prop: 'submitNum',
+ type: 'select',
+ dicData: [
+ {
+ label: '不做限制',
+ value: 0
+ }, {
+ label: '每个IP限填一次',
+ value: 1
+ }
+ ]
+ }, {
+ label: '开启验证',
+ prop: 'needValidation',
+ type: 'select',
+ dicData: [
+ {
+ label: '不需要',
+ value: 0
+ }, {
+ label: '需要',
+ value: 1
+ }
+ ]
+ }, {
+ label: '提交权限',
+ prop: 'submitPerm',
+ type: 'select',
+ dicData: [
+ {
+ label: '所有人',
+ value: 0
+ }, {
+ label: '仅会员可提交',
+ value: 1
+ }
+ ]
+ }]
+}
diff --git a/src/crud/admin/indexImg.js b/src/crud/admin/indexImg.js
new file mode 100644
index 0000000..942e582
--- /dev/null
+++ b/src/crud/admin/indexImg.js
@@ -0,0 +1,47 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ selection: true,
+ index: false,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ menuWidth: 350,
+ align: 'center',
+ refreshBtn: true,
+ searchSize: 'mini',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ props: {
+ label: 'label',
+ value: 'value'
+ },
+ column: [{
+ label: '轮播图片',
+ prop: 'imgUrl',
+ type: 'upload',
+ slot: true,
+ listType: 'picture-img'
+ }, {
+ label: '顺序',
+ prop: 'seq'
+ }, {
+ width: 150,
+ label: '状态',
+ prop: 'status',
+ search: true,
+ type: 'select',
+ dicData: [
+ {
+ label: '禁用',
+ value: 0
+ }, {
+ label: '正常',
+ value: 1
+ }
+ ]
+ }]
+}
diff --git a/src/crud/admin/message.js b/src/crud/admin/message.js
new file mode 100644
index 0000000..ea9b033
--- /dev/null
+++ b/src/crud/admin/message.js
@@ -0,0 +1,52 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ index: false,
+ indexLabel: '序号',
+ selection: true,
+ stripe: true,
+ menuAlign: 'center',
+ menuWidth: 350,
+ align: 'center',
+ refreshBtn: true,
+ searchSize: 'mini',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ props: {
+ label: 'label',
+ value: 'value'
+ },
+ column: [{
+ label: '创建时间',
+ prop: 'createTime'
+ },
+ {
+ label: '姓名',
+ prop: 'userName',
+ search: true
+ }, {
+ label: '邮箱',
+ prop: 'email'
+ }, {
+ label: '联系方式',
+ prop: 'contact'
+ }, {
+ label: '审核',
+ prop: 'status',
+ search: true,
+ slot: true,
+ type: 'select',
+ dicData: [
+ {
+ label: '未审核',
+ value: 0
+ }, {
+ label: '审核通过',
+ value: 1
+ }
+ ]
+ }]
+}
diff --git a/src/crud/prod/prodComm.js b/src/crud/prod/prodComm.js
new file mode 100644
index 0000000..81b776f
--- /dev/null
+++ b/src/crud/prod/prodComm.js
@@ -0,0 +1,77 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ index: true,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ align: 'center',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ column: [
+ {
+ label: '商品名',
+ prop: 'prodName',
+ search: true
+ },
+ {
+ label: '用户昵称',
+ prop: 'nickName',
+ slot: true
+ },
+ {
+ label: '记录时间',
+ prop: 'recTime',
+ width: '200'
+ },
+ {
+ label: '回复时间',
+ slot: true,
+ prop: 'replyTime',
+ width: '200',
+ dicData: [
+ {
+ label: '无',
+ value: ''
+ }
+ ]
+ },
+ {
+ label: '评价得分',
+ prop: 'score'
+ },
+ {
+ label: '是否匿名',
+ prop: 'isAnonymous',
+ dicData: [
+ {
+ label: '否',
+ value: 0
+ }, {
+ label: '是',
+ value: 1
+ }
+ ]
+ },
+ {
+ prop: 'status',
+ label: '审核状态',
+ search: true,
+ type: 'select',
+ dicData: [
+ {
+ label: '待审核',
+ value: 0
+ }, {
+ label: '审核通过',
+ value: 1
+ }, {
+ label: '审核未通过',
+ value: -1
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/crud/prod/prodList.js b/src/crud/prod/prodList.js
new file mode 100644
index 0000000..b2e3c4a
--- /dev/null
+++ b/src/crud/prod/prodList.js
@@ -0,0 +1,59 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ selection: true,
+ index: false,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ menuWidth: 350,
+ align: 'center',
+ refreshBtn: true,
+ searchSize: 'mini',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ props: {
+ label: 'label',
+ value: 'value'
+ },
+ column: [{
+ label: '产品名字',
+ prop: 'prodName',
+ search: true
+ }, {
+ label: '商品原价',
+ prop: 'oriPrice'
+ }, {
+ label: '商品现价',
+ prop: 'price'
+ }, {
+ label: '商品库存',
+ prop: 'totalStocks'
+ }, {
+ label: '产品图片',
+ prop: 'pic',
+ type: 'upload',
+ width: 150,
+ listType: 'picture-img'
+
+ }, {
+ width: 150,
+ label: '状态',
+ prop: 'status',
+ search: true,
+ slot: true,
+ type: 'select',
+ dicData: [
+ {
+ label: '未上架',
+ value: 0
+ }, {
+ label: '上架',
+ value: 1
+ }
+ ]
+ }]
+}
diff --git a/src/crud/prod/prodTag.js b/src/crud/prod/prodTag.js
new file mode 100644
index 0000000..fadb3c7
--- /dev/null
+++ b/src/crud/prod/prodTag.js
@@ -0,0 +1,46 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ index: true,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ align: 'center',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ column: [
+ {
+ label: '标签名称',
+ prop: 'title',
+ search: true,
+ slot: true
+ },
+ {
+ label: '状态',
+ prop: 'status',
+ type: 'select',
+ slot: true,
+ search: true,
+ dicData: [
+ {
+ label: '禁用',
+ value: 0
+ }, {
+ label: '正常',
+ value: 1
+ }
+ ]
+ },
+ {
+ label: '默认类型',
+ prop: 'isDfault',
+ slot: true
+ },
+ {
+ label: '排序',
+ prop: 'seq'
+ }
+ ]
+}
diff --git a/src/crud/prod/spec.js b/src/crud/prod/spec.js
new file mode 100644
index 0000000..06790c6
--- /dev/null
+++ b/src/crud/prod/spec.js
@@ -0,0 +1,30 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ index: true,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ menuWidth: 350,
+ align: 'center',
+ refreshBtn: true,
+ searchSize: 'mini',
+ addBtn: false,
+ editBtn: false,
+ viewBtn: false,
+ delBtn: false,
+ props: {
+ label: 'label',
+ value: 'value'
+ },
+ column: [{
+ label: '属性名称',
+ prop: 'propName',
+ search: true
+ }, {
+ label: '属性值',
+ prop: 'prodPropValues',
+ slot: true
+ }]
+}
diff --git a/src/crud/shop/hotSearch.js b/src/crud/shop/hotSearch.js
new file mode 100644
index 0000000..a7bf942
--- /dev/null
+++ b/src/crud/shop/hotSearch.js
@@ -0,0 +1,52 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ index: false,
+ selection: true,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ align: 'center',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ column: [
+ {
+ label: '热搜标题',
+ prop: 'title',
+ search: true
+ },
+ {
+ label: '热搜内容',
+ prop: 'content',
+ search: true
+ },
+ {
+ label: '录入时间',
+ prop: 'recDate',
+ sortable: true
+ },
+ {
+ label: '顺序',
+ prop: 'seq',
+ sortable: true
+ },
+ {
+ label: '启用状态',
+ prop: 'status',
+ type: 'select',
+ slot: true,
+ search: true,
+ dicData: [
+ {
+ label: '未启用',
+ value: 0
+ }, {
+ label: '启用',
+ value: 1
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/crud/shop/notice.js b/src/crud/shop/notice.js
new file mode 100644
index 0000000..6284d24
--- /dev/null
+++ b/src/crud/shop/notice.js
@@ -0,0 +1,52 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ index: true,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ align: 'center',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ column: [
+ {
+ label: '公告内容',
+ prop: 'title',
+ search: true
+ },
+ {
+ label: '状态',
+ prop: 'status',
+ search: true,
+ slot: true,
+ type: 'select',
+ dicData: [
+ {
+ label: '撤销',
+ value: 0
+ }, {
+ label: '公布',
+ value: 1
+ }
+ ]
+ },
+ {
+ label: '是否置顶',
+ prop: 'isTop',
+ search: true,
+ slot: true,
+ type: 'select',
+ dicData: [
+ {
+ label: '否',
+ value: 0
+ }, {
+ label: '是',
+ value: 1
+ }
+ ]
+ }
+ ]
+}
diff --git a/src/crud/shop/pickAddr.js b/src/crud/shop/pickAddr.js
new file mode 100644
index 0000000..d884de6
--- /dev/null
+++ b/src/crud/shop/pickAddr.js
@@ -0,0 +1,43 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ index: false,
+ selection: true,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ menuWidth: 350,
+ align: 'center',
+ refreshBtn: true,
+ searchSize: 'mini',
+ addBtn: false,
+ editBtn: false,
+ viewBtn: false,
+ delBtn: false,
+ props: {
+ label: 'label',
+ value: 'value'
+ },
+ column: [
+ {
+ label: '自提点名称',
+ prop: 'addrName',
+ search: true
+ }, {
+ label: '手机号',
+ prop: 'mobile'
+ }, {
+ label: '省份',
+ prop: 'province'
+ }, {
+ label: '城市',
+ prop: 'city'
+ }, {
+ label: '区/县',
+ prop: 'area'
+ }, {
+ label: '地址',
+ prop: 'addr'
+ }]
+}
diff --git a/src/crud/shop/transport.js b/src/crud/shop/transport.js
new file mode 100644
index 0000000..7a02c0b
--- /dev/null
+++ b/src/crud/shop/transport.js
@@ -0,0 +1,27 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ index: false,
+ selection: true,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ menuWidth: 350,
+ align: 'center',
+ refreshBtn: true,
+ searchSize: 'mini',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ props: {
+ label: 'label',
+ value: 'value'
+ },
+ column: [{
+ label: '模板名称',
+ prop: 'transName',
+ search: true
+ }]
+}
diff --git a/src/crud/sys/area.js b/src/crud/sys/area.js
new file mode 100644
index 0000000..027da3d
--- /dev/null
+++ b/src/crud/sys/area.js
@@ -0,0 +1,30 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ index: true,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ align: 'center',
+ addBtn: false,
+ editBtn: false,
+ column: [
+ {
+ label: '',
+ prop: 'areaId'
+ },
+ {
+ label: '',
+ prop: 'areaName'
+ },
+ {
+ label: '',
+ prop: 'parentId'
+ },
+ {
+ label: '',
+ prop: 'level'
+ }
+ ]
+}
diff --git a/src/crud/sys/config.js b/src/crud/sys/config.js
new file mode 100644
index 0000000..eb807f7
--- /dev/null
+++ b/src/crud/sys/config.js
@@ -0,0 +1,33 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ selection: true,
+ index: false,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ menuWidth: 350,
+ align: 'center',
+ refreshBtn: true,
+ searchSize: 'mini',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ props: {
+ label: 'label',
+ value: 'value'
+ },
+ column: [{
+ label: '参数名',
+ prop: 'paramKey',
+ search: true
+ }, {
+ label: '参数值',
+ prop: 'paramValue'
+ }, {
+ label: '备注',
+ prop: 'remark'
+ }]
+}
diff --git a/src/crud/sys/log.js b/src/crud/sys/log.js
new file mode 100644
index 0000000..e9d3081
--- /dev/null
+++ b/src/crud/sys/log.js
@@ -0,0 +1,47 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ menu: false, // 移除操作栏
+ selection: true,
+ index: false,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ menuWidth: 350,
+ align: 'center',
+ refreshBtn: true,
+ searchSize: 'mini',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ props: {
+ label: 'label',
+ value: 'value'
+ },
+ column: [{
+ label: '用户名',
+ prop: 'username',
+ search: true
+ }, {
+ label: '用户操作',
+ prop: 'operation',
+ search: true
+ }, {
+ label: '请求方法',
+ prop: 'method'
+ }, {
+ label: '请求参数',
+ prop: 'params'
+ }, {
+ label: '执行时长(毫秒)',
+ prop: 'time'
+ }, {
+ label: 'IP地址',
+ prop: 'ip'
+ }, {
+ label: '创建时间',
+ prop: 'createDate'
+ }]
+}
diff --git a/src/crud/sys/role.js b/src/crud/sys/role.js
new file mode 100644
index 0000000..682aef0
--- /dev/null
+++ b/src/crud/sys/role.js
@@ -0,0 +1,33 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ selection: true,
+ index: false,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ menuWidth: 350,
+ align: 'center',
+ refreshBtn: true,
+ searchSize: 'mini',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ props: {
+ label: 'label',
+ value: 'value'
+ },
+ column: [{
+ label: '角色名称',
+ prop: 'roleName',
+ search: true
+ }, {
+ label: '备注',
+ prop: 'remark'
+ }, {
+ label: '创建时间',
+ prop: 'createTime'
+ }]
+}
diff --git a/src/crud/sys/user.js b/src/crud/sys/user.js
new file mode 100644
index 0000000..a2a61a3
--- /dev/null
+++ b/src/crud/sys/user.js
@@ -0,0 +1,50 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ selection: true,
+ index: false,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ menuWidth: 350,
+ align: 'center',
+ refreshBtn: true,
+ searchSize: 'mini',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ props: {
+ label: 'label',
+ value: 'value'
+ },
+ column: [{
+ label: '用户名',
+ prop: 'username',
+ search: true
+ }, {
+ label: '邮箱',
+ prop: 'email'
+ }, {
+ label: '手机号',
+ prop: 'mobile'
+ }, {
+ label: '创建时间',
+ prop: 'createTime'
+ }, {
+ label: '状态',
+ prop: 'status',
+ type: 'select',
+ dicData: [
+ {
+ label: '禁用',
+ value: 0
+ }, {
+ label: '正常',
+ value: 1
+ }
+ ]
+
+ }]
+}
diff --git a/src/crud/user/addr.js b/src/crud/user/addr.js
new file mode 100644
index 0000000..8d62154
--- /dev/null
+++ b/src/crud/user/addr.js
@@ -0,0 +1,80 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ index: true,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ align: 'center',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ column: [
+ {
+ label: '收货人名称',
+ prop: 'receiver'
+ },
+ {
+ label: '省',
+ prop: 'province'
+ },
+ {
+ label: '城市',
+ prop: 'city'
+ },
+ {
+ label: '区',
+ prop: 'area'
+ },
+ {
+ label: '地址',
+ prop: 'addr'
+ },
+ {
+ label: '邮编',
+ prop: 'postCode'
+ },
+ {
+ label: '手机',
+ prop: 'mobile'
+ },
+ {
+ label: '状态',
+ prop: 'status',
+ search: true,
+ type: 'select',
+ dicData: [
+ {
+ label: '无效',
+ value: 0
+ }, {
+ label: '正常',
+ value: 1
+ }
+ ]
+ },
+ {
+ label: '默认地址',
+ prop: 'commonAddr',
+ dicData: [
+ {
+ label: '否',
+ value: 0
+ }, {
+ label: '是',
+ value: 1
+ }
+ ]
+ },
+ {
+ label: '建立时间',
+ prop: 'createTime'
+ },
+ {
+ label: '更新时间',
+ prop: 'updateTime'
+ }
+ ]
+}
diff --git a/src/crud/user/user.js b/src/crud/user/user.js
new file mode 100644
index 0000000..29049e3
--- /dev/null
+++ b/src/crud/user/user.js
@@ -0,0 +1,53 @@
+export const tableOption = {
+ searchMenuSpan: 6,
+ columnBtn: false,
+ border: true,
+ // selection: true,
+ index: false,
+ indexLabel: '序号',
+ stripe: true,
+ menuAlign: 'center',
+ menuWidth: 350,
+ align: 'center',
+ refreshBtn: true,
+ searchSize: 'mini',
+ addBtn: false,
+ editBtn: false,
+ delBtn: false,
+ viewBtn: false,
+ props: {
+ label: 'label',
+ value: 'value'
+ },
+ column: [{
+ label: '用户昵称',
+ prop: 'nickName',
+ search: true
+ }, {
+ label: '用户头像',
+ prop: 'pic',
+ type: 'upload',
+ imgWidth: 150,
+ listType: 'picture-img',
+ slot: true
+ }, {
+ label: '状态',
+ prop: 'status',
+ search: true,
+ type: 'select',
+ slot: true,
+ dicData: [
+ {
+ label: '禁用',
+ value: 0
+ }, {
+ label: '正常',
+ value: 1
+ }
+ ]
+ }, {
+ label: '注册时间',
+ prop: 'userRegtime',
+ imgWidth: 150
+ }]
+}
diff --git a/src/main.js b/src/main.js
index fc2a0b9..7ec1935 100644
--- a/src/main.js
+++ b/src/main.js
@@ -6,6 +6,10 @@ import moment from 'moment'
import 'element-plus/dist/index.css'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import router from '@/router'
+import locale from 'element-plus/lib/locale/lang/zh-cn'
+import Avue from '@smallwei/avue'
+import '@smallwei/avue/lib/index.css'
+
// 全局样式
import '@/styles/index.scss'
// svg
@@ -34,8 +38,10 @@ app.use(pinia)
app.component('SvgIcon', svgIcon)
+// Avue
+app.use(Avue)
// element-plus
-app.use(ElementPlus)
+app.use(ElementPlus, { locale })
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(key, component)
}
diff --git a/src/views/modules/sys/area/add-or-update.vue b/src/views/modules/sys/area/add-or-update.vue
new file mode 100644
index 0000000..559cda3
--- /dev/null
+++ b/src/views/modules/sys/area/add-or-update.vue
@@ -0,0 +1,147 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/modules/sys/area/index.vue b/src/views/modules/sys/area/index.vue
new file mode 100644
index 0000000..fb2583a
--- /dev/null
+++ b/src/views/modules/sys/area/index.vue
@@ -0,0 +1,162 @@
+
+
+
+
+ 新增
+
+
+
+
+ {{ node.label }}
+
+ update(node, data)"
+ >
+ 修改
+
+ remove(node, data)"
+ >
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/modules/sys/config/add-or-update.vue b/src/views/modules/sys/config/add-or-update.vue
new file mode 100644
index 0000000..d35e5db
--- /dev/null
+++ b/src/views/modules/sys/config/add-or-update.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/modules/sys/config/index.vue b/src/views/modules/sys/config/index.vue
new file mode 100644
index 0000000..89edc3a
--- /dev/null
+++ b/src/views/modules/sys/config/index.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+ 新增
+
+
+
+ 批量删除
+
+
+
+
+ 编辑
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/modules/sys/log/index.vue b/src/views/modules/sys/log/index.vue
new file mode 100644
index 0000000..721d9a2
--- /dev/null
+++ b/src/views/modules/sys/log/index.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
diff --git a/src/views/modules/sys/menu/add-or-update.vue b/src/views/modules/sys/menu/add-or-update.vue
index c6594b1..4a65f89 100644
--- a/src/views/modules/sys/menu/add-or-update.vue
+++ b/src/views/modules/sys/menu/add-or-update.vue
@@ -197,7 +197,9 @@ onMounted(() => {
onLoadIcons()
})
const iconList = []
-// 加载图标
+/**
+ * 加载图标
+ */
const onLoadIcons = () => {
const icons = import.meta.glob('@/icons/svg/*.svg')
for (const icon in icons) {
@@ -251,11 +253,16 @@ defineExpose({ init })
const handleSelectMenuChange = (val) => {
dataForm.parentId = val[val.length - 1]
}
-// 图标选中
+/**
+ * 图标选中
+ * @param iconName
+ */
const iconActiveHandle = (iconName) => {
dataForm.icon = iconName
}
-// 表单提交
+/**
+ * 表单提交
+ */
const onSubmit = Debounce(() => {
dataFormRef.value?.validate((valid) => {
if (valid) {
diff --git a/src/views/modules/sys/role/add-or-update.vue b/src/views/modules/sys/role/add-or-update.vue
new file mode 100644
index 0000000..1a8695d
--- /dev/null
+++ b/src/views/modules/sys/role/add-or-update.vue
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/modules/sys/role/index.vue b/src/views/modules/sys/role/index.vue
new file mode 100644
index 0000000..e8f90c3
--- /dev/null
+++ b/src/views/modules/sys/role/index.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+ 新增
+
+
+
+ 批量删除
+
+
+
+
+
+ 编辑
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/modules/sys/user/add-or-update.vue b/src/views/modules/sys/user/add-or-update.vue
new file mode 100644
index 0000000..848a06a
--- /dev/null
+++ b/src/views/modules/sys/user/add-or-update.vue
@@ -0,0 +1,245 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ role.roleName }}
+
+
+
+
+
+
+ 禁用
+
+
+ 正常
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/modules/sys/user/index.vue b/src/views/modules/sys/user/index.vue
new file mode 100644
index 0000000..9bfe742
--- /dev/null
+++ b/src/views/modules/sys/user/index.vue
@@ -0,0 +1,155 @@
+
+
+
+
+
+ 新增
+
+
+
+ 批量删除
+
+
+
+
+ 编辑
+
+
+
+ 删除
+
+
+
+
+
+
+
+
+
+