store+统计分析+用户管理

This commit is contained in:
ym1026
2025-09-05 09:26:14 +08:00
parent 1cc916c53c
commit 013a2245f5
15 changed files with 911 additions and 278 deletions

54
web/src/utils/btnList.js Normal file
View File

@@ -0,0 +1,54 @@
const btnList = [
{ label: '', type: '', disFlag: '' },
{ label: '新增', type: 'add', disFlag: 'isEdit', icon: 'icon-add' },
{ label: '更新', type: 'edit', disFlag: 'isEdit' },
{ label: '查看', type: 'detail', disFlag: 'isQuery' },
{ label: '编辑', type: 'edit', disFlag: 'isEdit' },
{ label: '删除', type: 'del', disFlag: 'isEdit', icon: 'icon-del' },
{ label: '批量删除', type: 'del', disFlag: 'isEdit', icon: 'icon-del' },
{ label: '导入', type: 'upload', disFlag: 'isEdit', icon: 'icon-import' },
{ label: '导出', type: 'download', disFlag: 'isEdit', icon: 'icon-export' },
{ label: '上传', type: 'upload', disFlag: 'isEdit', icon: 'icon-upload' },
{ label: '下载', type: 'download', disFlag: 'isEdit', icon: 'icon-download' },
{ label: '下发', type: 'xf', disFlag: 'isControl' },
{ label: '批量下载', type: 'download', disFlag: 'isEdit', icon: 'icon-download' },
{ label: '下载模版', type: 'downTemplate', disFlag: 'isControl', icon: 'icon-download' },
{ label: '重置密码', type: 'reset', disFlag: 'isEdit' },
{ label: '派发', type: 'distribute', disFlag: 'isControl' },
{ label: '处理', type: 'dealWith', disFlag: 'isControl' },
{ label: '审核', type: 'audit', disFlag: 'isControl' },
{ label: '标记为已读', type: 'setTagR', disFlag: 'isControl', icon: 'icon-chulizhuangtai' },
{ label: '标记为已处理', type: 'setTagD', disFlag: 'isControl' },
{ label: '启动', type: 'start', disFlag: 'isControl' },
{ label: '停止', type: 'stop', disFlag: 'isControl' },
{ label: '重启', type: 'restart', disFlag: 'isControl' },
{ label: '批量启动', type: 'start', disFlag: 'isControl' },
{ label: '批量停止', type: 'stop', disFlag: 'isControl' },
{ label: '批量重启', type: 'restart', disFlag: 'isControl' },
{ label: '监控日志', type: 'log', disFlag: 'isControl' },
{ label: '新建备份', type: 'backups', disFlag: 'isEdit', icon: 'icon-add' },
{ label: '导入备份', type: 'importBackups', disFlag: 'isEdit', icon: 'icon-import' },
{ label: '还原', type: 'restore', disFlag: 'isEdit' },
{ label: '批量启用', type: 'enable', disFlag: 'isControl', icon: 'icon-a-qiyong' },
{ label: '批量禁用', type: 'disable', disFlag: 'isControl', icon: 'icon-a-jinyong' }
]
// arr:按钮数组
// permissions:{
// isControl: true;
// isEdit: true;
// isQuery: true;
// }
function getBtns(arr) {
const permissions =
JSON.parse(localStorage.getItem('user')).userExtend.role.permissionList[0] || {}
const btns = []
btnList.forEach((item) => {
if (arr.includes(item.label)) {
item.disabled = !Boolean(permissions[item.disFlag])
btns.push(item)
}
})
return btns
}
export { btnList, getBtns }

93
web/src/utils/column.js Normal file
View File

@@ -0,0 +1,93 @@
const colWidth = [
{
label: '用户',
width: 120,
align: 'left'
},
{
label: '名称',
width: 200,
align: 'left',
sorter: (a, b) => {
return a.name.localeCompare(b.name)
},
sortDirections: ['ascend', 'descend']
},
{
label: '所属',
width: 150,
align: 'left'
},
{
label: '类型',
width: 120,
align: 'left'
},
{
label: 'ip',
width: 120,
align: 'left'
},
{
label: '状态',
width: 120,
align: 'center'
},
{
label: '是否',
width: 120,
align: 'center'
},
{
label: '服务',
width: 120,
align: 'left'
},
{
label: '手机号',
width: 200,
align: 'left'
},
{
label: '时间',
width: 200,
align: 'center'
},
{
label: '文件路径',
width: 400
},
{
label: '内容',
width: 350
},
{
label: '通知方式',
width: 240,
align: 'center'
},
{
label: '操作',
align: 'center',
width: 130,
fixed: 'right',
resizable: false
}
]
function setWidth(val) {
let info = {}
const Item = colWidth.find((item) => val.title.search(item.label) !== -1) || null
if (Item) {
if (val.title == '操作') {
info = { ...Item, ...val, resizable: true }
} else {
info = { ...val, ...Item, resizable: true, ellipsis: true }
}
} else {
info = { ...val, align: 'left', ellipsis: true, resizable: true, width: 150 }
}
return info
}
export { colWidth, setWidth }