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 %>
-
+