You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
4.1 KiB
153 lines
4.1 KiB
8 months ago
|
import { planToAddApi } from '/@/api/planToAdd';
|
||
|
import { ref } from 'vue';
|
||
|
import { http } from '/nerv-lib/util';
|
||
|
import { getEnum } from '/@/api';
|
||
|
import { NsMessage } from '/nerv-lib/component';
|
||
|
|
||
|
const enumData: any = await getEnum({ params: { enumType: 'CtrlDeviceType' } });
|
||
|
export const tableConfig = (
|
||
|
orgId: any,
|
||
|
projectId: any,
|
||
|
mainRef: any,
|
||
|
nsModalFormConfig: any,
|
||
|
modalFormRef: any,
|
||
|
) => {
|
||
|
return ref({
|
||
|
title: '计划库',
|
||
|
api: planToAddApi.getActivatedPlanListByTree,
|
||
|
params: { orgId, projectId, deviceType: enumData.data[0].value },
|
||
|
treeConfig: {
|
||
|
defaultExpandAll: true,
|
||
|
header: {
|
||
|
icon: 'name',
|
||
|
title: '执行计划',
|
||
|
},
|
||
|
params: { projectId, deviceType: enumData.data[0].value },
|
||
|
dynamicParams: {
|
||
|
id: 'id',
|
||
|
pid: 'pid',
|
||
|
level: 'level',
|
||
|
projectId: 'projectId',
|
||
|
deviceType: 'deviceType',
|
||
|
},
|
||
|
api: planToAddApi.getActivatedPlanTree,
|
||
|
fieldNames: {
|
||
|
title: 'name',
|
||
|
key: 'id',
|
||
|
pid: 'pid',
|
||
|
level: 'level',
|
||
|
projectId: 'projectId',
|
||
|
deviceType: 'deviceType',
|
||
|
children: 'childList',
|
||
|
},
|
||
|
formConfig: {
|
||
|
schemas: [
|
||
|
{
|
||
|
field: 'deviceType',
|
||
|
label: '告警优先级',
|
||
|
component: 'nsSelectApi',
|
||
|
autoSubmit: true,
|
||
|
componentProps: {
|
||
|
api: () => getEnum({ params: { enumType: 'CtrlDeviceType' } }),
|
||
|
immediate: true,
|
||
|
resultField: 'data',
|
||
|
labelField: 'label',
|
||
|
valueField: 'value',
|
||
|
placeholder: '请选择告警优先级',
|
||
|
showSearch: true,
|
||
|
autoSelectFirst: true,
|
||
|
filterOption: (input: string, option: any) => {
|
||
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
},
|
||
|
rowSelection: null,
|
||
|
columns: [
|
||
|
{
|
||
|
title: '执行顺序',
|
||
|
dataIndex: 'address',
|
||
|
width: 100,
|
||
|
customRender: (text: any) => {
|
||
|
return text.index + 1;
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
title: '计划类型',
|
||
|
dataIndex: 'planGroupName',
|
||
|
},
|
||
|
{
|
||
|
title: '计划名称',
|
||
|
dataIndex: 'planName',
|
||
|
},
|
||
|
{
|
||
|
title: '执行时间',
|
||
|
dataIndex: 'executionTime',
|
||
|
},
|
||
|
],
|
||
|
columnActions: {
|
||
|
title: '操作',
|
||
|
width: 200,
|
||
|
fixed: 'right',
|
||
|
dataIndex: 'tableAction',
|
||
|
actions: [
|
||
|
{
|
||
|
label: '编辑',
|
||
|
name: 'energyAlarmEdit',
|
||
|
dynamicParams: ['uuid', 'appealType'],
|
||
|
handle: (data: any) => {
|
||
|
const obj = { ...data };
|
||
|
nsModalFormConfig.value.title = '编辑';
|
||
|
setTimeout(() => {
|
||
|
nsModalFormConfig.value.data = {
|
||
|
id: obj.id,
|
||
|
};
|
||
|
if (obj.startTime) {
|
||
|
nsModalFormConfig.value.data.createTime = obj.startTime
|
||
|
? [obj.startTime, obj.endTime]
|
||
|
: [];
|
||
|
}
|
||
|
}, 1);
|
||
|
modalFormRef.value?.toggle();
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
label: '删除',
|
||
|
name: 'energyAlarmDel',
|
||
|
dynamicParams: ['uuid', 'appealType'],
|
||
|
confirm: true,
|
||
|
handle: (data: any) => {
|
||
|
http.post(planToAddApi.updPlan, { id: data.id, isDeleted: 1 }).then((res) => {
|
||
|
if (res.msg === 'success') {
|
||
|
NsMessage.success('操作成功');
|
||
|
mainRef.value?.nsTableRef.reload();
|
||
|
} else {
|
||
|
NsMessage.error(res.msg);
|
||
|
}
|
||
|
});
|
||
|
mainRef.value?.nsTableRef.reload();
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
},
|
||
|
formConfig: {
|
||
|
schemas: [
|
||
|
{
|
||
|
field: 'planName',
|
||
|
label: '计划标题',
|
||
|
component: 'NsInput',
|
||
|
componentProps: {
|
||
|
allowClear: true,
|
||
|
placeholder: '请输入计划名称关键字',
|
||
|
},
|
||
|
},
|
||
|
],
|
||
|
params: {},
|
||
|
},
|
||
|
// pagination: { pageSizeOptions: false },
|
||
|
rowKey: 'uuid',
|
||
|
});
|
||
|
};
|