zhaohy
4 months ago
3 changed files with 235 additions and 4 deletions
@ -0,0 +1,6 @@ |
|||||
|
export enum planToAddApi { |
||||
|
getActivatedPlanTree = '/carbon-smart/deviceCtrlPlan/getActivatedPlanTree', //计划树
|
||||
|
getActivatedPlanListByTree = '/carbon-smart/deviceCtrlPlan/getActivatedPlanListByTree', //计划列表
|
||||
|
updPlan = '', //修改计划
|
||||
|
delPlan = '', //修改计划
|
||||
|
} |
@ -0,0 +1,149 @@ |
|||||
|
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'; |
||||
|
|
||||
|
export const tableConfig = ( |
||||
|
orgId: any, |
||||
|
projectId: any, |
||||
|
mainRef: any, |
||||
|
nsModalFormConfig: any, |
||||
|
modalFormRef: any, |
||||
|
) => { |
||||
|
return ref({ |
||||
|
title: '计划库', |
||||
|
api: planToAddApi.getActivatedPlanListByTree, |
||||
|
params: { orgId, projectId, deviceType: '1' }, |
||||
|
treeConfig: { |
||||
|
defaultExpandAll: true, |
||||
|
header: { |
||||
|
icon: 'name', |
||||
|
title: '执行计划', |
||||
|
}, |
||||
|
params: { projectId, deviceType: '1' }, |
||||
|
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: '操作', |
||||
|
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.delPlan, { id: data.id, orgId: data.orgId }).then((res) => { |
||||
|
if (res.msg === 'success') { |
||||
|
NsMessage.success('操作成功'); |
||||
|
mainRef.value?.nsTableRef.reload(); |
||||
|
} else { |
||||
|
NsMessage.error(res.msg); |
||||
|
} |
||||
|
}); |
||||
|
console.log(data, '删除'); |
||||
|
mainRef.value?.nsTableRef.reload(); |
||||
|
}, |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
formConfig: { |
||||
|
schemas: [ |
||||
|
{ |
||||
|
field: 'planName', |
||||
|
label: '计划标题', |
||||
|
component: 'NsInput', |
||||
|
componentProps: { |
||||
|
allowClear: true, |
||||
|
placeholder: '请输入计划关键字', |
||||
|
}, |
||||
|
}, |
||||
|
], |
||||
|
params: {}, |
||||
|
}, |
||||
|
// pagination: { pageSizeOptions: false },
|
||||
|
rowKey: 'uuid', |
||||
|
}); |
||||
|
}; |
@ -1,7 +1,83 @@ |
|||||
<template> xxxxx </template> |
<template> |
||||
|
<ns-view-list-table ref="mainRef" v-bind="config"> |
||||
|
<template #bodyCell="{ record, column }"> |
||||
|
<template v-if="column.dataIndex === 'executionTime'"> |
||||
|
{{ getData(record) }} |
||||
|
</template> |
||||
|
</template> |
||||
|
</ns-view-list-table> |
||||
|
<NsModalFrom ref="modalFormRef" v-bind="nsModalFormConfig" /> |
||||
|
</template> |
||||
<script lang="ts" setup> |
<script lang="ts" setup> |
||||
import { ref, onMounted, onUnmounted } from 'vue'; |
import { tableConfig } from './config'; |
||||
|
import { ref, onMounted } from 'vue'; |
||||
|
import NsModalFrom from '/@/components/ns-modal-form.vue'; |
||||
|
import { planToAddApi } from '/@/api/planToAdd'; |
||||
|
//页面 创建 |
||||
|
const orgId = ref(''); |
||||
|
const projectId = ref(''); |
||||
|
const result = JSON.parse(sessionStorage.getItem('ORGID')!); |
||||
|
orgId.value = result; |
||||
|
const results = JSON.parse(sessionStorage.getItem('/hx-ai-intelligent/')!); |
||||
|
projectId.value = results.projectId; |
||||
|
const mainRef = ref(null); |
||||
|
const modalFormRef = ref(null); |
||||
|
const getData = (record: any) => { |
||||
|
return record.startTime |
||||
|
? record.startTime.substring(0, 10) + ' - ' + record.endTime.substring(0, 10) |
||||
|
: '未配置时间'; |
||||
|
}; |
||||
|
const nsModalFormConfig = ref({ |
||||
|
api: planToAddApi.updPlan, |
||||
|
data: {}, |
||||
|
title: '编辑', |
||||
|
schemas: [ |
||||
|
{ field: 'id', component: 'NsInput', show: false }, |
||||
|
{ field: 'orgId', component: 'NsInput', show: false }, |
||||
|
{ |
||||
|
field: 'createTime', |
||||
|
label: '执行时间', |
||||
|
component: 'NsRangePicker', |
||||
|
allowClear: true, |
||||
|
fieldMap: ['startTime', 'endTime'], |
||||
|
componentProps: { |
||||
|
valueFormat: 'YYYY-MM-DD', |
||||
|
placeholder: ['开始日期', '结束日期'], |
||||
|
}, |
||||
|
rules: [ |
||||
|
{ |
||||
|
required: true, |
||||
|
message: '请选择执行时间', |
||||
|
}, |
||||
|
], |
||||
|
}, |
||||
|
], |
||||
|
extraModalConfig: { |
||||
|
bodyStyle: { paddingBottom: 0 }, |
||||
|
}, |
||||
|
success: (data: any) => { |
||||
|
console.log(data, '数据'); |
||||
|
mainRef.value?.nsTableRef.reload(); |
||||
|
}, |
||||
|
}); |
||||
|
//创建页面调用方法 |
||||
onMounted(() => {}); |
onMounted(() => {}); |
||||
onUnmounted(() => {}); |
const config = tableConfig( |
||||
|
orgId.value, |
||||
|
projectId.value, |
||||
|
mainRef, |
||||
|
nsModalFormConfig, |
||||
|
modalFormRef, |
||||
|
); |
||||
|
|
||||
|
defineOptions({ |
||||
|
name: 'LedgerIndex', // 与页面路由name一致缓存才可生效 |
||||
|
}); |
||||
</script> |
</script> |
||||
|
<style lang="less" scoped> |
||||
|
:deep(.ns-table-search), |
||||
|
:deep(.ns-part-tree), |
||||
|
:deep(.ns-table-main) { |
||||
|
box-shadow: @ns-content-box-shadow; |
||||
|
} |
||||
|
</style> |
||||
|
Loading…
Reference in new issue