import { BasicColumn, FormSchema } from '/@/components/Table'; import { initDictOptions } from '/@/utils/dict'; import type { TableColumnType } from 'ant-design-vue'; import { workFaceDeviceList } from './warning.api'; 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', }, ]; export const warningColumns: BasicColumn[] = [ { title: '', dataIndex: 'id', ifShow: false, }, { title: '监测参数', dataIndex: 'monitorcode', width: 150, editRow: true, editComponent: 'Input', editRule: async (text) => { if (!text) { return '请选择'; } return ''; }, }, { title: '模拟最小值', width: 150, dataIndex: 'ftestmin', editRow: true, editComponent: 'InputNumber', }, { title: '模拟最大值', dataIndex: 'ftestmax', editRow: true, width: 150, editComponent: 'InputNumber', }, { title: '备注', dataIndex: 'des', editRow: true, width: 200, editComponent: 'Input', }, ]; 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', }, { title: '所属系统', dataIndex: 'systemType', 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: 'alarmLevel', component: 'JDictSelectTag', componentProps: { dictCode: 'leveltype' }, }, { label: '所属系统', field: 'systemType', component: 'JDictSelectTag', componentProps: { dictCode: 'kindtype' }, }, ]; export const manageWarningPointColumns: BasicColumn[] = [ { title: '设备名称', dataIndex: 'deviceName', align: 'center', }, { title: '报警条目', dataIndex: 'alarmName', 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: 'orderNum', component: 'InputNumber', }, ]; 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: '点表', 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', }, ]; 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', }, ];