合并冲突

This commit is contained in:
zhoumengru
2025-09-05 09:29:24 +08:00
57 changed files with 3443 additions and 1920 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 }

View File

@@ -0,0 +1,37 @@
export function getRunDays(date) {
const launchDate = new Date(date)
const today = new Date() // 替换为当前日期
const timeDiff = today - launchDate // 毫秒差
const daysRun = Math.ceil(timeDiff / (1000 * 60 * 60 * 24)) // 转换为天数
console.log(`从 2023-01-01 到今天已经运行了 ${daysRun}`)
return daysRun
}
export function processData(data, keys) {
data.sort((a, b) => {
return new Date(a.dt) - new Date(b.dt)
})
const dates = data.map((item) => item.dt)
const values = []
keys.forEach((item, index) => {
values[index] = data.map((dataValue) => dataValue[keys[index]])
})
return {
dates,
values
}
}
export function getDateDaysAgo(daysAgo) {
const date = new Date()
date.setDate(date.getDate() - daysAgo)
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')
return `${year}-${month}-${day}`
}