fix: 测控一体机开关,集成定时控制。
This commit is contained in:
@@ -271,10 +271,15 @@
|
||||
<el-dialog
|
||||
:title="`定时控制 - ${currentSwitch?.switchName || ''} (序号:${currentSwitch?.index || ''})`"
|
||||
v-model="timingCtrlDialogVisible"
|
||||
width="800px"
|
||||
width="1080px"
|
||||
append-to-body
|
||||
@close="closeTimingCtrlDialog"
|
||||
>
|
||||
<!-- 工具栏 -->
|
||||
<div style="margin-bottom: 12px;">
|
||||
<el-button type="primary" plain icon="Plus" size="small" @click="handleTimingCtrlAdd" v-hasPermi="['fishery:timingCtrl:add']">新增</el-button>
|
||||
</div>
|
||||
|
||||
<el-table
|
||||
v-loading="timingCtrlLoading"
|
||||
:data="timingCtrlList"
|
||||
@@ -293,6 +298,17 @@
|
||||
<dict-tag :options="open_close" :value="scope.row.isOpen"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip /> -->
|
||||
<el-table-column label="操作" align="center" width="120" fixed="right">
|
||||
<template #default="scope">
|
||||
<el-tooltip content="修改" placement="top">
|
||||
<el-button link type="primary" icon="Edit" @click="handleTimingCtrlUpdate(scope.row)" v-hasPermi="['fishery:timingCtrl:edit']"></el-button>
|
||||
</el-tooltip>
|
||||
<el-tooltip content="删除" placement="top">
|
||||
<el-button link type="danger" icon="Delete" @click="handleTimingCtrlDelete(scope.row)" v-hasPermi="['fishery:timingCtrl:remove']"></el-button>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<template #footer>
|
||||
@@ -301,6 +317,49 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 定时控制编辑对话框 -->
|
||||
<el-dialog :title="timingCtrlEditDialog.title" v-model="timingCtrlEditDialog.visible" width="500px" append-to-body>
|
||||
<el-form ref="timingCtrlFormRef" :model="timingCtrlForm" :rules="timingCtrlRules" label-width="90px">
|
||||
<el-form-item label="开启时间" prop="openTime">
|
||||
<el-date-picker clearable
|
||||
v-model="timingCtrlForm.openTime"
|
||||
type="datetime"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="请选择开启时间"
|
||||
style="width: 100%">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="关闭时间" prop="closeTime">
|
||||
<el-date-picker clearable
|
||||
v-model="timingCtrlForm.closeTime"
|
||||
type="datetime"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
placeholder="请选择关闭时间"
|
||||
style="width: 100%">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
<el-form-item label="循环类型" prop="loopType">
|
||||
<el-select v-model="timingCtrlForm.loopType" placeholder="请选择循环类型" style="width: 100%">
|
||||
<el-option v-for="dict in loop_type" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="是否启用" prop="isOpen">
|
||||
<el-select v-model="timingCtrlForm.isOpen" placeholder="请选择是否启用" style="width: 100%">
|
||||
<el-option v-for="dict in open_close" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input v-model="timingCtrlForm.remark" type="textarea" placeholder="请输入备注" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button :loading="timingCtrlEditLoading" type="primary" @click="submitTimingCtrlForm">确 定</el-button>
|
||||
<el-button @click="timingCtrlEditDialog.visible = false">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -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<any>(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<DialogOption>({ visible: false, title: '' });
|
||||
const timingCtrlFormRef = ref<ElFormInstance>();
|
||||
const timingCtrlEditLoading = ref(false);
|
||||
const initTimingCtrlForm: TimingCtrlForm = {
|
||||
id: undefined,
|
||||
switchId: undefined,
|
||||
openTime: undefined,
|
||||
closeTime: undefined,
|
||||
loopType: undefined,
|
||||
isOpen: undefined,
|
||||
remark: undefined
|
||||
};
|
||||
const timingCtrlForm = ref<TimingCtrlForm>({ ...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(() => {
|
||||
|
||||
Reference in New Issue
Block a user