diff --git a/src/views/fishery/deviceSwitch/index.vue b/src/views/fishery/deviceSwitch/index.vue index 555a231..0409074 100644 --- a/src/views/fishery/deviceSwitch/index.vue +++ b/src/views/fishery/deviceSwitch/index.vue @@ -271,10 +271,15 @@ + +
+ 新增 +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -309,8 +368,8 @@ import { listDeviceSwitch, getDeviceSwitch, delDeviceSwitch, addDeviceSwitch, up import { DeviceSwitchVO, DeviceSwitchQuery, DeviceSwitchForm } from '@/api/fishery/deviceSwitch/types'; import { listDevice } from '@/api/fishery/device'; import { DeviceVO } from '@/api/fishery/device/types'; -import { listTimingCtrl } from '@/api/fishery/timingCtrl'; -import { TimingCtrlVO } from '@/api/fishery/timingCtrl/types'; +import { listTimingCtrl, getTimingCtrl, addTimingCtrl, updateTimingCtrl, delTimingCtrl } from '@/api/fishery/timingCtrl'; +import { TimingCtrlVO, TimingCtrlForm } from '@/api/fishery/timingCtrl/types'; const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { aqu_device_type, open_close, connect_voltage_type, is_linked_ctrl, loop_type } = toRefs(proxy?.useDict('aqu_device_type', 'open_close', 'connect_voltage_type', 'is_linked_ctrl', 'loop_type')); @@ -641,6 +700,79 @@ const closeTimingCtrlDialog = () => { timingCtrlDialogVisible.value = false; currentSwitch.value = null; timingCtrlList.value = []; + getList(); +}; + +// 定时控制编辑对话框 +const timingCtrlEditDialog = reactive({ visible: false, title: '' }); +const timingCtrlFormRef = ref(); +const timingCtrlEditLoading = ref(false); +const initTimingCtrlForm: TimingCtrlForm = { + id: undefined, + switchId: undefined, + openTime: undefined, + closeTime: undefined, + loopType: undefined, + isOpen: undefined, + remark: undefined +}; +const timingCtrlForm = ref({ ...initTimingCtrlForm }); +const timingCtrlRules = { + openTime: [{ required: true, message: '开启时间不能为空', trigger: 'blur' }], + closeTime: [{ required: true, message: '关闭时间不能为空', trigger: 'blur' }], + loopType: [{ required: true, message: '循环类型不能为空', trigger: 'change' }], + isOpen: [{ required: true, message: '是否启用不能为空', trigger: 'change' }] +}; + +/** 新增定时控制 */ +const handleTimingCtrlAdd = () => { + timingCtrlForm.value = { ...initTimingCtrlForm, switchId: currentSwitch.value?.id }; + timingCtrlFormRef.value?.resetFields(); + timingCtrlEditDialog.title = '新增定时控制'; + timingCtrlEditDialog.visible = true; +}; + +/** 修改定时控制 */ +const handleTimingCtrlUpdate = async (row: TimingCtrlVO) => { + const res = await getTimingCtrl(row.id); + timingCtrlForm.value = { ...res.data }; + timingCtrlFormRef.value?.resetFields(); + timingCtrlEditDialog.title = '修改定时控制'; + timingCtrlEditDialog.visible = true; +}; + +/** 提交定时控制表单 */ +const submitTimingCtrlForm = () => { + timingCtrlFormRef.value?.validate(async (valid: boolean) => { + if (valid) { + timingCtrlEditLoading.value = true; + try { + if (timingCtrlForm.value.id) { + await updateTimingCtrl(timingCtrlForm.value); + } else { + await addTimingCtrl(timingCtrlForm.value); + } + proxy?.$modal.msgSuccess('操作成功'); + timingCtrlEditDialog.visible = false; + // 刷新定时控制列表 + if (currentSwitch.value) { + await getTimingCtrlList(currentSwitch.value.id); + } + } finally { + timingCtrlEditLoading.value = false; + } + } + }); +}; + +/** 删除定时控制 */ +const handleTimingCtrlDelete = async (row: TimingCtrlVO) => { + await proxy?.$modal.confirm('是否确认删除该定时控制?'); + await delTimingCtrl(row.id); + proxy?.$modal.msgSuccess('删除成功'); + if (currentSwitch.value) { + await getTimingCtrlList(currentSwitch.value.id); + } }; onMounted(() => {