import { BasicColumn, FormSchema } from '/@/components/Table'; import { initDictOptions } from '/@/utils/dict'; import type { TableColumnType } from 'ant-design-vue'; import { workFaceDeviceList } from './warning.api'; import { render } from '/@/utils/common/renderUtils'; export const levelColumns: BasicColumn[] = [ { title: '下限', width: 100, editRow: true, dataIndex: 'fmin', editComponent: 'InputNumber', }, { title: '上限', dataIndex: 'fmax', width: 100, editRow: true, editComponent: 'InputNumber', }, { title: '持续时间(s)', dataIndex: 'timelength', editRow: true, width: 100, editComponent: 'InputNumber', }, { title: '报警等级', dataIndex: 'leveltype', editRow: true, editRule: true, width: 100, editComponent: 'ApiSelect', editComponentProps: { api: initDictOptions.bind(null, 'leveltype'), labelField: 'label', valueField: 'value', }, }, { title: '报警描述', width: 180, editRow: true, dataIndex: 'des', editComponent: 'Input', }, { title: '报警类型', dataIndex: 'alarmType', editRow: true, width: 100, editComponent: 'ApiSelect', editComponentProps: { api: initDictOptions.bind(null, 'alarm_type'), labelField: 'label', valueField: 'value', }, }, { title: '关联字段', width: 180, editRow: true, dataIndex: 'relatedCode', editComponent: 'Input', }, { title: '是否语音播报', width: 110, editRow: true, dataIndex: 'isVoice', editComponent: 'Switch', editValueMap: (value) => { return value ? '是' : '否'; }, }, { title: '是否持续语音播报', width: 130, editRow: true, dataIndex: 'isCxVoice', editComponent: 'Switch', editValueMap: (value) => { return value ? '是' : '否'; }, }, { title: '持续播报频率(s)', width: 120, editRow: true, dataIndex: 'voiceFre', editComponent: 'InputNumber', }, ]; export const warningColumns: BasicColumn[] = [ { title: '', dataIndex: 'id', ifShow: false, }, { title: '监测参数', dataIndex: 'monitorcode', width: 150, editRow: true, }, { title: '修正参数', // 给点位设置系数,调整点位值 dataIndex: 'des', editRow: true, width: 200, editComponent: 'Input', }, { title: '模拟最小值', width: 150, dataIndex: 'ftestmin', editRow: true, editComponent: 'InputNumber', }, { title: '模拟最大值', dataIndex: 'ftestmax', editRow: true, width: 150, editComponent: 'InputNumber', }, ]; export const deviceColumns: BasicColumn[] = [ { title: '名称', dataIndex: 'deviceName', align: 'center', width: 120, }, { title: '安装位置', dataIndex: 'devicePos', align: 'center', width: 100, }, { title: '设备类型', dataIndex: 'deviceType', align: 'center', width: 100, }, { title: '所属分站', width: 150, align: 'center', dataIndex: 'subStationName', }, ]; export const workFaceColumns: BasicColumn[] = [ { title: '安装位置', dataIndex: 'devicePos', width: 100, }, { title: '排序', width: 100, dataIndex: 'sort', edit: true, editComponent: 'InputNumber', }, { title: '是否在关键通风路线上', width: 100, dataIndex: 'pathflag', edit: true, editComponent: 'Switch', editValueMap: (value) => { return value ? '是' : '否'; }, }, { title: '传感器类型', width: 100, dataIndex: 'sensorType', edit: true, editComponent: 'Select', editComponentProps: { options: [ { label: '多参', value: '1', }, { label: '测风', value: '2', }, ], }, }, { title: '风向', width: 100, dataIndex: 'winddir', edit: true, editComponent: 'Select', editComponentProps: { options: [ { label: '多参', value: '1', }, { label: '测风', value: '2', }, ], }, }, { title: '是否参与计算风量', width: 100, dataIndex: 'windflag', edit: true, editComponent: 'Switch', editValueMap: (value) => { return value ? '是' : '否'; }, }, ]; export const workFaceWarningColumns: BasicColumn[] = [ { title: '报警条目', dataIndex: 'alarmName', align: 'center', }, { title: '预警等级', dataIndex: 'alarmLevel', align: 'center', customRender: ({ record }) => { return render.renderDict(record.alarmLevel, 'leveltype'); }, }, { title: '所属系统', dataIndex: 'systemType_dictText', align: 'center', }, { title: '预警类型', dataIndex: 'alarmType_dictText', align: 'center', }, { title: '创建人', dataIndex: 'createBy', align: 'center', }, { title: '创建日期', dataIndex: 'createTime', align: 'center', }, ]; export const workFaceWarningFormSchemas: FormSchema[] = [ { label: 'ID', field: 'id', component: 'Input', show: false, }, { label: '预警名称', field: 'alarmName', component: 'Input', required: true, }, { label: '预警类型', field: 'alarmType', component: 'JDictSelectTag', componentProps: { dictCode: 'alarmType' }, }, { label: '预警等级', field: 'alarmLevel', component: 'JDictSelectTag', componentProps: { dictCode: 'leveltype', stringToNumber: true }, required: true, }, { label: '所属系统', field: 'systemType', component: 'JDictSelectTag', componentProps: { dictCode: 'kindtype' }, }, ]; export const manageWarningPointColumns: BasicColumn[] = [ { title: '设备名称', dataIndex: 'deviceName', align: 'center', }, { title: '报警条目', dataIndex: 'alarmName_dictText', align: 'center', }, { title: '报警下限', dataIndex: 'fmin', align: 'center', edit: true, editComponent: 'InputNumber', }, { title: '报警上限', dataIndex: 'fmax', align: 'center', edit: true, editComponent: 'InputNumber', }, { title: '报警持续时间(s)', dataIndex: 'cxTime', align: 'center', edit: true, editComponent: 'InputNumber', }, { title: '更新人', dataIndex: 'updateBy', align: 'center', width: 100, }, ]; export const controlFormSchemas = (param) => [ { label: 'ID', field: 'id', component: 'Input', show: false, }, { label: '点表', field: 'strtype', component: 'Input', show: false, }, { label: '设备名称', field: 'deviceId', component: 'ApiSelect', required: true, componentProps: ({ formModel }) => { return { api: workFaceDeviceList.bind(null, param), labelField: 'strname', valueField: 'id', onChange: (e, option) => { if (option) formModel['strtype'] = option['strtype']; }, }; }, }, { label: '点位', field: 'monitorId', component: 'Select', slot: 'monitor', required: true, }, { label: '值', field: 'value', component: 'Input', align: 'center', }, { label: '执行顺序', field: 'orderNum', component: 'InputNumber', }, { label: '操作描述', field: 'remark', component: 'Input', }, ]; export const controlDevicePointColumns: BasicColumn[] = [ { title: '报警条目', dataIndex: 'alarmName', align: 'center', }, { title: '设备安装位置', dataIndex: 'devicePos', align: 'center', }, { title: '控制点位描述', dataIndex: 'monitorName', align: 'center', }, { title: '值', dataIndex: 'value', align: 'center', }, // { // title: '审批状态', // dataIndex: 'bpmStatus', // align: 'center', // edit: true, // editComponent: 'Select', // editComponentProps: { // options: [ // { // label: '审批', // value: '1', // }, // { // label: '不审批', // value: '0', // }, // ], // }, // }, { title: '执行顺序', dataIndex: 'orderNum', align: 'center', }, { title: '更新人', dataIndex: 'updateBy', align: 'center', width: 100, }, { title: '操作', dataIndex: 'operation', width: 100, }, ]; export const monitorWarningFormSchemas = (param) => [ { label: 'ID', field: 'id', component: 'Input', show: false, }, { label: 'deviceType', field: 'deviceType', component: 'Input', show: false, }, { label: '点表', field: 'strtype', component: 'Input', show: false, }, { label: '设备名称', field: 'deviceId', component: 'ApiSelect', required: true, componentProps: ({ formModel }) => { return { api: workFaceDeviceList.bind(null, param), labelField: 'strname', valueField: 'id', onChange: (e, option) => { if (option) formModel['strtype'] = option['strtype']; }, }; }, }, { label: '且关系关联id', field: 'relId', component: 'Input', show: false, }, { label: '点位', field: 'monitorId', component: 'Select', slot: 'monitor', // required: true, }, { label: '报警上限值', field: 'fmax', component: 'InputNumber', }, { label: '报警下限值', field: 'fmin', component: 'InputNumber', }, { label: '报警持续时间(s)', field: 'cxTime', component: 'InputNumber', }, { label: '数据趋势', field: 'dataTrend', component: 'JDictSelectTag', componentProps: { dictCode: 'dataTrend', placeholder: '请选择数据趋势', }, }, { label: '数据趋势持续时间(h)', field: 'trendCxTime', component: 'InputNumber', }, ]; export const controlWarningFormSchemas: FormSchema[] = [ { label: 'ID', field: 'id', component: 'Input', show: false, }, { label: '设备名称', field: 'deviceName', component: 'Input', required: true, }, { label: '控制点位描述', field: 'monitorName', component: 'Input', }, { label: '值', field: 'value', component: 'Input', }, { label: '执行顺序', field: 'orderNum', component: 'Input', }, ]; export const BackWindDevicePointColumns: BasicColumn[] = [ { title: '设备名称', dataIndex: 'deviceName', align: 'center', }, { title: '设备安装位置', dataIndex: 'devicePos', align: 'center', }, { title: '控制点位描述', dataIndex: 'monitorName', align: 'center', }, { title: '值', dataIndex: 'value', edit: true, editComponent: 'Input', align: 'center', }, // { // title: '审批状态', // dataIndex: 'bpmStatus', // align: 'center', // edit: true, // editComponent: 'Select', // editComponentProps: { // options: [ // { // label: '审批', // value: '1', // }, // { // label: '不审批', // value: '0', // }, // ], // }, // }, { title: '执行顺序', dataIndex: 'orderNum', align: 'center', edit: true, editComponent: 'InputNumber', }, { title: '更新人', dataIndex: 'updateBy', align: 'center', width: 100, }, ]; export const rowOrColSpanMap = new Map(); const sharedOnCell = (record, rowIndex, column) => { const arr = rowOrColSpanMap.get(record.id); if (arr) { const col = arr.find((item) => { return item.code === column.dataIndex; }); if (col) return { rowSpan: col.rowSpan, colSpan: col.colSpan }; } }; export const MonitorColumns: TableColumnType[] = [ { title: '组合', dataIndex: 'key', customCell: sharedOnCell, }, { title: '预警名称', dataIndex: 'alarmName', customCell: sharedOnCell, }, { title: '设备名称', dataIndex: 'deviceName', customCell: sharedOnCell, }, { title: '监测点位', dataIndex: 'monitorName', customCell: sharedOnCell, }, { title: '报警下限值', dataIndex: 'fmin', customCell: sharedOnCell, }, { title: '报警上限值', dataIndex: 'fmax', customCell: sharedOnCell, }, { title: '报警持续时间', dataIndex: 'cxTime', customCell: sharedOnCell, }, { title: '操作', colSpan: 2, dataIndex: 'operation', width: 120, customCell: sharedOnCell, }, { title: '操作', colSpan: 0, dataIndex: 'operation1', width: 80, customCell: sharedOnCell, }, ]; export const controlColumns: TableColumnType[] = [ { title: '预警名称', dataIndex: 'alarmName', align: 'center', }, { title: '设备名称', dataIndex: 'deviceName', align: 'center', }, { title: '控制点位', dataIndex: 'monitorName', align: 'center', }, { title: '执行顺序', dataIndex: 'orderNum', align: 'center', }, { title: '操作', colSpan: 2, dataIndex: 'operation', width: 120, align: 'center', }, ]; export const testData = [ { key: '1', name: '气源压力超限', age: 32, tel: '0571-22098909', phone: 18889898989, address: 'New York No. 1 Lake Park', rowSpan: 1, colSpan: 1, }, { key: '2', name: '气源压力超限', tel: '0571-22098333', phone: 18889898888, age: 42, address: 'London No. 1 Lake Park', rowSpan: 1, colSpan: 1, }, { key: '3', name: '气源压力超限', age: 32, tel: '0575-22098909', phone: 18900010002, address: 'Sidney No. 1 Lake Park', rowSpan: 1, colSpan: 1, }, { key: '4', name: '气源压力超限', age: 18, tel: '0575-22098909', phone: 18900010002, address: 'London No. 2 Lake Park', rowSpan: 1, colSpan: 1, }, { key: '5', name: '气源压力超限', age: 18, tel: '0575-22098909', phone: 18900010002, address: 'Dublin No. 2 Lake Park', rowSpan: 1, colSpan: 1, }, ]; export const testData1 = [ { key: '1', alarmName: '气源压力超限', devicePos: 32, monitorName: '0571-22098909', value: 18889898989, orderNum: '1', updateBy: 'New York No. 1 Lake Park', }, { key: '2', alarmName: '气源压力超限', devicePos: 42, monitorName: '0571-22098333', value: 18889898888, orderNum: '2', updateBy: 'London No. 1 Lake Park', }, { key: '3', alarmName: '气源压力超限', devicePos: 32, monitorName: '0575-22098909', value: 18900010002, orderNum: '3', updateBy: 'Sidney No. 1 Lake Park', }, { key: '4', alarmName: '气源压力超限', devicePos: 18, monitorName: '0575-22098909', value: 18900010002, orderNum: '4', updateBy: 'London No. 2 Lake Park', }, { key: '5', alarmName: '气源压力超限', devicePos: 18, monitorName: '0575-22098909', value: 18900010002, orderNum: '5', updateBy: 'Dublin No. 2 Lake Park', }, { key: '6', alarmName: '气源压力超限', devicePos: 18, monitorName: '0575-22098909', value: 18900010002, orderNum: '5', updateBy: 'Dublin No. 2 Lake Park', }, ]; export const modelAlarmFormSchemas = () => [ { label: 'ID', field: 'id', component: 'Input', show: false, }, { label: '灾变时过风面积', field: 'alarmArea', component: 'InputNumber', }, { label: '灾变时状态', field: 'alarmState', component: 'Select', componentProps: { options: [ { label: '开启', value: 1, }, { label: '关闭', value: 0, }, ], }, // required: true, }, { label: '灾变时动作描述', field: 'des', component: 'Input', }, { label: '恢复时动作描述', field: 'des2', component: 'Input', }, { label: '设备类型', field: 'deviceKind', component: 'Select', componentProps: { options: [ { label: '风门', value: 'gate', }, { label: '风窗', value: 'window', }, { label: '局部风机', value: 'fanlocal', }, { label: '主风机', value: 'fanmain', }, ], }, // required: true, }, { label: '设备名称', field: 'deviceName', component: 'Input', }, { label: '控制设备ID', field: 'modelDevId', component: 'Input', }, { label: '最大过风面积', field: 'maxArea', component: 'InputNumber', }, { label: '正常过风面积', field: 'normalArea', component: 'InputNumber', }, { label: '正常时状态', field: 'normalState', component: 'Select', componentProps: { options: [ { label: '开启', value: 1, }, { label: '关闭', value: 0, }, ], }, // required: true, }, { label: '巷道ID', field: 'tunId', component: 'Input', }, { label: '执行顺序', field: 'orderNum', component: 'InputNumber', }, ]; export const modelAlarmColumns: BasicColumn[] = [ { title: '序号', width: 80, align: 'center', customRender: ({ index }: { index: number }) => `${index + 1}`, }, // { dataIndex: 'alarmArea', title: '灾变时过风面积' }, // { dataIndex: 'alarmId', title: '报警条目id' }, // { dataIndex: 'alarmName', title: '预警名称' }, // { dataIndex: 'alarmState', title: '灾变时状态' }, // { dataIndex: 'bpmStatus', title: '审批状态' }, // { dataIndex: 'createBy', title: '创建人' }, // { dataIndex: 'createTime', title: '创建日期' }, // { dataIndex: 'des2', title: '恢复正常时动作描述' }, // { dataIndex: 'deviceId', title: '关联设备id' }, // { dataIndex: 'deviceKind', title: '设备类型' }, { dataIndex: 'deviceName', title: '设备名称' }, { dataIndex: 'maxArea', title: '最大过风面积' }, { dataIndex: 'des', title: '灾变时动作描述' }, // { dataIndex: 'modelDevId', title: '控制设备id' }, // { dataIndex: 'normalArea', title: '正常过风面积' }, // { dataIndex: 'normalState', title: '正常时状态' }, // { dataIndex: 'orderNum', title: '执行顺序' }, // { dataIndex: 'sysId', title: '场景ID' }, // { dataIndex: 'sysName', title: '场景名称' }, // { dataIndex: 'sysOrgCode', title: '所属部门' }, // { dataIndex: 'tunId', title: '巷道id' }, // { dataIndex: 'updateBy', title: '更新人' }, // { dataIndex: 'updateTime', title: '更新日期' }, { dataIndex: 'operation', title: '操作' }, ]; export const ledPlaylistColumns: BasicColumn[] = [ { dataIndex: 'programName', title: '节目标题' }, { dataIndex: 'programContent', title: '节目内容' }, { dataIndex: 'programIndex', title: '节目排序' }, { dataIndex: 'programType', title: '节目类别', format: new Map([ [2, '其他'], [1, '循环'], [0, '默认'], ]), }, ]; export const ledPlaylistFormSchemas = () => [ { label: 'ID', field: 'id', component: 'Input', show: false, }, { label: 'deviceID', field: 'deviceId', component: 'Input', show: false, }, { label: '节目标题', field: 'programName', component: 'Input', }, { label: '节目内容', field: 'programContent', component: 'Input', }, { label: '节目排序', field: 'programIndex', component: 'InputNumber', }, { label: '节目类别', field: 'programType', component: 'Select', componentProps: { options: [ { label: '其他', value: 2, }, { label: '循环', value: 1, }, { label: '默认', value: 0, }, ], }, }, ];