import type { BasicColumn, FormSchema } from '@/components/Table' import {optionListApi, subSystemListApi} from "@/api/alert/model/select"; import {h, ref} from "vue"; import {systemSelectParams} from "@/api/alert/model/model/optionsModel"; import {formatToDateTime, getDate} from "@/utils/dateUtil"; function toTimestamp(time: string): number { if (!time) return 0 // 兼容:2026-01-04T09:30:15 / 2026-01-04 09:30:15 return new Date(time.replace('T', ' ')).getTime() } const optionList = await optionListApi() const systemOptions = ref([]) systemOptions.value = optionList.systems export const searchFormSchema: FormSchema[] = [ { label: '机组', field: 'unit', component: 'Select', // defaultValue: optionList.units[0].id || null, defaultValue: null, colProps: { span: 4 }, componentProps: ({ schema, tableAction, formActionType, formModel }) => { return { // xxxx props placeholder: '全部机组', options: optionList.units.map(unit => ({ value: unit.id, label: unit.name })), onChange: async (e: any) => { // const { reload } = tableAction // reload() // or console.log(e) const param: systemSelectParams = { unitId: e, typeId: formModel.type, } //如果typeId是空,则不设置system'Options if (!param.typeId || !param.unitId) { systemOptions.value = [] return } systemOptions.value = await subSystemListApi(param) // formModel.system = systemOptions.value[0].id }, } }, }, { label: '系统', field: 'type', component: 'Select', // defaultValue: optionList.types[0].id || null, defaultValue: null, colProps: { span: 4 }, componentProps: ({ formModel }) => { return { placeholder: '全部系统', options: optionList.types.map(type => ({ value: type.id, label: type.name })), onChange: async (e: any) => { // const { reload } = tableAction // reload() // or console.log(e) const param: systemSelectParams = { unitId: formModel.unit, typeId: e, } //如果typeId是空,则不设置system'Options if (!param.typeId || !param.unitId) { systemOptions.value = [] return } systemOptions.value = await subSystemListApi(param) }, } }, }, { label: '子系统', field: 'system', component: 'Select', // defaultValue: systemOptions.value[0].id || null, defaultValue: null, colProps: { span: 4 }, componentProps: () => { return { placeholder: '全部子系统', options: systemOptions.value.map(system => ({ value: system.id, label: system.name })), } }, }, { label: '模型实例名称', field: 'mpName', component: 'Input', labelWidth: 100, defaultValue: '', colProps: { span: 5 }, }, ] export const columns: BasicColumn[] = [ { title: '编号', dataIndex: 'warnId', width: 80, fixed: 'left', }, { title: '机组', dataIndex: 'unitName', width: 80, fixed: 'left', }, { title: '报警名称', dataIndex: 'alarmName', width: 200, fixed: 'left', // 将 JSX 改为 h 函数调用 customRender: ({ record }) => { return h('div', [ h('div', record.pointName), h('div', { style: 'color: #999; font-size: 12px' }, record.pointId) ]); }, }, { title: '单位', dataIndex: 'unit', width: 50, fixed: 'left', }, { title: '测点值', dataIndex: 'unit', width: 150, // 将 JSX 改为 h 函数调用 customRender: ({ record }) => { return h('div', [ h('div', { style: 'color: #006400;font-weight:bold' },'实时值:'+record.pointValue), h('div', { style: 'color: #0960BD;font-weight:bold' },'重构值:'+record.outputPointValue), ]); }, }, { title: '偏差值', dataIndex: 'biasValue', width: 40 }, { title: '安全区间', dataIndex: 'limit', width: 100, // 将 JSX 改为 h 函数调用 customRender: ({ record }) => { return h('div', [ h('div', record.lowlimit), h('div', record.uplimit), ]); }, }, { title: '模型实例名称', dataIndex: 'mpName', width: 150, ellipsis: false, // ⭐ 关键 }, { title: '预警时间', dataIndex: 'insertTime', width: 200, // 将 JSX 改为 h 函数调用 customRender: ({ record }) => { return h('div', [ h('div', record.insertTime), // h('div', '--'), h('div', formatToDateTime(record.currentTime)) ]); }, }, { title: '持续时长', dataIndex: 'timeDiffStr', width: 90, customRender: ({ record }) => { const diffMs = record.currentTime - toTimestamp(record.insertTime) return getDate(diffMs) }, }, { title: '告警级别', dataIndex: 'alarmModelRuleName', width: 80, ellipsis: false, // ⭐ 关键 }, { title: '专业', dataIndex: 'systemName', width: 100, } ] // export const formTrend: FormSchema[] = [ // { // label: '时间', // field: 'time', // show: true, // component: 'RangePicker', // componentProps: { // placeholder: ['开始时间', '结束时间'], // defaultValue: [moment().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'), moment().format('YYYY-MM-DD HH:mm:ss')], // valueFormat: 'YYYY-MM-DD HH:mm:ss', // showTime: { // defaultValue: [moment().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'), moment().format('YYYY-MM-DD HH:mm:ss')], // }, // onChange: (e: any) => { // console.log(e) // }, // colProps: { // span: 8, // }, // }, // }, // { // label: '时间间隔', // field: 'interval', // component: 'Select', // defaultValue: 60, // labelWidth:100, // componentProps: { // options: [{ value: 60, label: '60秒' }, { value: 100, label: '100秒' }, { value: 300, label: '300秒' }], // }, // required: true, // colProps: { // span: 5, // }, // }, // ]