diff --git a/web/.eslintrc.js b/web/.eslintrc.js index 25961d7..b2cb0da 100644 --- a/web/.eslintrc.js +++ b/web/.eslintrc.js @@ -15,6 +15,7 @@ module.exports = { }, plugins: ['react', '@typescript-eslint', 'prettier'], // 添加 prettier 插件 rules: { + camelcase: 'off', 'vue/require-explicit-emits': 'off', // 关闭 emits 声明检查 'vue/v-on-event-hyphenation': 'off', 'prettier/prettier': 'off', diff --git a/web/public/config/columnList.js b/web/public/config/columnList.js index 9d7ed6f..e1fcec5 100644 --- a/web/public/config/columnList.js +++ b/web/public/config/columnList.js @@ -1,3 +1,4 @@ +import { deviceTypeList, logTypes } from '@/utils/config' export const columnList = [ { page: 'user', @@ -231,6 +232,185 @@ export const columnList = [ } ] }, + { + page: 'device', + columns: [ + { + title: '设备ID', + dataIndex: 'device_id', + key: 'device_id', + ellipsis: true, + fixed: 'left' + }, + { + title: '所属场站', + dataIndex: 'station_id', + key: 'station_id' + // filterable: true + }, + { + title: '设备类型', + dataIndex: 'type', + key: 'type', + type: 'slot', + scopedSlots: { customRender: 'type' } + }, + { + title: '设备名称', + dataIndex: 'name' + }, + { + title: '设备编号', + dataIndex: 'code' + }, + + { + title: '厂家信息', + dataIndex: 'factory' + }, + { + title: '厂家电话', + dataIndex: 'factory_tel' + }, + { + title: '是否启用', + dataIndex: 'is_open', + key: 'is_open', + align: 'center', + scopedSlots: { customRender: 'isEnable' } + }, + + { + title: '属性参数', + dataIndex: 'attrs' + }, + { + title: '操作', + dataIndex: 'operate', + key: 'operate', + scopedSlots: { customRender: 'action' } + } + ] + }, + { + page: 'alarmLog', + columns: [ + { + title: '日志ID', + dataIndex: 'log_id' + }, + + { + title: '日志类型', + dataIndex: 'type', + key: 'type', + width: 120, + scopedSlots: { customRender: 'type' } + }, + { + title: '操作用户', + dataIndex: 'user_id', + key: 'user_id', + width: 120 + }, + { + title: '设备ID', + dataIndex: 'device_id', + key: 'device_id' + }, + { + title: '日志内容', + dataIndex: 'content', + key: 'content', + ellipsis: true + }, + { + title: '记录时间', + dataIndex: 'create_time', + key: 'create_time', + align: 'center', + ellipsis: true, + width: 180 + }, + { + title: '状态', + dataIndex: 'status', + key: 'status', + ellipsis: true, + scopedSlots: { customRender: 'status' }, + width: 80, + align: 'center' + }, + { + title: '操作', + dataIndex: 'operate', + key: 'operate', + scopedSlots: { customRender: 'action' } + } + ] + }, + { + page: 'log', + columns: [ + { + title: '用户', + dataIndex: 'userName', + width: 180 + }, + + { + title: '日志类型', + dataIndex: 'type', + key: 'type', + width: 120, + + scopedSlots: { customRender: 'type' } + }, + { + title: '操作类型', + dataIndex: 'opType', + key: 'opType', + width: 120, + + scopedSlots: { customRender: 'opType' } + }, + { + title: 'ip', + dataIndex: 'ip', + key: 'ip' + }, + { + title: '内容', + dataIndex: 'msg', + key: 'msg', + ellipsis: true + }, + { + title: '生成时间', + dataIndex: 'createTime', + key: 'createTime', + align: 'center', + ellipsis: true, + width: 180 + }, + { + title: '状态', + dataIndex: 'status', + key: 'status', + ellipsis: true, + scopedSlots: { customRender: 'status' }, + width: 80, + align: 'center' + }, + { + title: '操作', + dataIndex: 'operate', + key: 'operate', + width: 80, + scopedSlots: { customRender: 'action' } + } + ] + }, { page: 'serviceApi', columns: [ @@ -542,6 +722,165 @@ export const stationOptions = [ ruleForm: {} } ] +export const deviceOptions = [ + { + title: '基础信息', + icon: 'icon-xinxi', + list: [ + { + label: '编号', + value: '', + key: 'code', + type: 'input' + }, + { + label: '名称', + value: '', + key: 'name', + type: 'input' + }, + { + label: '类型', + value: '', + key: 'type', + type: 'select', + list: deviceTypeList, + options: { + label: 'label', + value: 'value' + } + }, + + { + label: '所属场站', + value: undefined, + key: 'station_id', + type: 'select', + list: [], + options: { + label: 'name', + value: 'station_id' + } + // slotName: 'searchSelect' + }, + { + label: '厂家', + value: '', + key: 'factory', + type: 'input' + }, + { + label: '厂家电话', + value: '', + key: 'factory_tel', + type: 'input' + }, + { + label: '是否启用', + value: '', + key: 'is_open', + type: 'switch' + } + ], + ruleForm: {} + }, + { + title: '设备属性参数', + icon: 'icon-xinxi', + list: [ + { + label: '额定电压', + value: '', + key: 'rated_voltage', + type: 'input-number' + }, + { + label: '额定电流', + value: '', + key: 'rated_current', + type: 'input-number' + }, + { + label: '额定功率', + value: '', + key: 'reted_power', + type: 'input-number' + }, + + { + label: '额定容量', + value: undefined, + key: 'rated_capacity', + type: 'input-number' + } + ], + ruleForm: {} + } +] +// log +export const alarmlogOptions = [ + { + title: '基础信息', + icon: 'icon-xinxi', + list: [ + { + label: '日志ID', + value: '', + key: 'log_id', + type: 'input' + }, + { + label: '日志类型', + value: '', + key: 'type', + type: 'select', + list: logTypes, + disabled: true + }, + { + label: '操作用户ID', + value: '', + key: 'user_id', + type: 'input', + disabled: true + }, + { + label: '设备ID', + value: '', + key: 'device_id', + type: 'input', + disabled: true + }, + { + label: '日志内容', + value: '', + key: 'content', + type: 'textarea', + disabled: true, + className: 'item-l', + rows: 8 + }, + { + label: '记录时间', + value: '', + key: 'create_time', + type: 'input' + }, + + { + label: '状态', + type: 'select', + list: [ + { value: 0, label: '异常' }, + { value: 1, label: '正常' } + ], + value: [], + key: 'status' + } + ], + ruleForm: {} + } +] export const serviceApiOptions = [ { title: '基础信息', @@ -622,6 +961,37 @@ export const stationFormRules = { } ] } +export const deviceFormRules = { + name: [ + { + trigger: 'blur', + required: true, + message: '请输入设备名称' + } + ], + code: [ + { + trigger: 'blur', + required: true, + message: '请输入设备编号' + } + ], + type: [ + { + trigger: 'change', + required: true, + message: '请选择设备类型' + } + ], + station_id: [ + { + trigger: 'change', + required: true, + message: '请选择场站名称' + } + ] +} + export const serviceApiFormRules = { name: [ { diff --git a/web/public/index.html b/web/public/index.html index 11a9498..c6133d9 100644 --- a/web/public/index.html +++ b/web/public/index.html @@ -6,7 +6,7 @@ <%= htmlWebpackPlugin.options.title %> - +