fix: 设备管理,删除改成解绑。

This commit is contained in:
tianyongbao
2026-03-08 16:08:09 +08:00
parent 152989b0b8
commit aa7392c7f9

View File

@@ -27,10 +27,10 @@
<el-tabs v-model="activeDeviceType" @tab-change="handleTabChange" class="mb-4"> <el-tabs v-model="activeDeviceType" @tab-change="handleTabChange" class="mb-4">
<el-tab-pane label="全部" :name="0"> <el-tab-pane label="全部" :name="0">
</el-tab-pane> </el-tab-pane>
<el-tab-pane <el-tab-pane
v-for="dict in aqu_device_type" v-for="dict in aqu_device_type"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:name="parseInt(dict.value)"> :name="parseInt(dict.value)">
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@@ -43,7 +43,7 @@
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['fishery:device:edit']">修改</el-button> <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate()" v-hasPermi="['fishery:device:edit']">修改</el-button>
</el-col> --> </el-col> -->
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['fishery:device:remove']">删除</el-button> <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['fishery:device:remove']">解绑</el-button>
</el-col> </el-col>
<!-- <el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['fishery:device:export']">导出</el-button> <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['fishery:device:export']">导出</el-button>
@@ -92,8 +92,8 @@
<!-- <el-table-column label="相位差" align="center" prop="phaseDifference" /> --> <!-- <el-table-column label="相位差" align="center" prop="phaseDifference" /> -->
<el-table-column label="参比值" align="center" prop="treference" /> <el-table-column label="参比值" align="center" prop="treference" />
<el-table-column label="荧光值" align="center" prop="tfluorescence" /> <el-table-column label="荧光值" align="center" prop="tfluorescence" />
<el-table-column label="溶解氧电话告警开关" align="center" prop="oxyWarnCallOpen" width="120" > <el-table-column label="溶解氧电话告警开关" align="center" prop="oxyWarnCallOpen" width="120" >
<template #default="scope"> <template #default="scope">
<dict-tag :options="open_close" :value="scope.row.oxyWarnCallOpen"/> <dict-tag :options="open_close" :value="scope.row.oxyWarnCallOpen"/>
@@ -153,9 +153,9 @@
<el-tooltip content="修改" placement="top"> <el-tooltip content="修改" placement="top">
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['fishery:device:edit']"></el-button> <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['fishery:device:edit']"></el-button>
</el-tooltip> </el-tooltip>
<el-tooltip content="删除" placement="top"> <!-- <el-tooltip content="删除" placement="top">
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['fishery:device:remove']"></el-button> <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['fishery:device:remove']"></el-button>
</el-tooltip> </el-tooltip> -->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@@ -168,10 +168,10 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户" prop="userId"> <el-form-item label="用户" prop="userId">
<el-input <el-input
:value="selectedUser ? `${selectedUser.userName} (${selectedUser.mobilePhone})` : ''" :value="selectedUser ? `${selectedUser.userName} (${selectedUser.mobilePhone})` : ''"
placeholder="请选择用户" placeholder="请选择用户"
readonly readonly
:disabled="!!form.id" :disabled="!!form.id"
style="cursor: pointer;" style="cursor: pointer;"
@click="openUserSelect" @click="openUserSelect"
@@ -184,10 +184,10 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="塘口" prop="pondId"> <el-form-item label="塘口" prop="pondId">
<el-input <el-input
:value="selectedPond ? selectedPond.pondName : ''" :value="selectedPond ? selectedPond.pondName : ''"
placeholder="请选择塘口" placeholder="请选择塘口"
readonly readonly
:disabled="!!form.id" :disabled="!!form.id"
style="cursor: pointer;" style="cursor: pointer;"
@click="openPondSelect" @click="openPondSelect"
@@ -440,25 +440,25 @@
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<!-- 用户选择对话框 --> <!-- 用户选择对话框 -->
<el-dialog title="选择用户" v-model="userSelectVisible" width="900px" append-to-body> <el-dialog title="选择用户" v-model="userSelectVisible" width="900px" append-to-body>
<!-- 搜索条件 --> <!-- 搜索条件 -->
<el-form :model="userQueryParams" :inline="true" class="mb-4"> <el-form :model="userQueryParams" :inline="true" class="mb-4">
<el-form-item label="用户名"> <el-form-item label="用户名">
<el-input <el-input
v-model="userQueryParams.userName" v-model="userQueryParams.userName"
placeholder="请输入用户名" placeholder="请输入用户名"
clearable clearable
style="width: 180px" style="width: 180px"
@keyup.enter="handleUserQuery" @keyup.enter="handleUserQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="手机号"> <el-form-item label="手机号">
<el-input <el-input
v-model="userQueryParams.mobilePhone" v-model="userQueryParams.mobilePhone"
placeholder="请输入手机号" placeholder="请输入手机号"
clearable clearable
style="width: 180px" style="width: 180px"
@keyup.enter="handleUserQuery" @keyup.enter="handleUserQuery"
/> />
@@ -468,10 +468,10 @@
<el-button icon="Refresh" @click="resetUserQuery">重置</el-button> <el-button icon="Refresh" @click="resetUserQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 用户表格 --> <!-- 用户表格 -->
<el-table <el-table
:data="aquUserList" :data="aquUserList"
highlight-current-row highlight-current-row
height="400px" height="400px"
border border
@@ -483,9 +483,9 @@
<el-table-column label="区县" align="center" prop="district" /> <el-table-column label="区县" align="center" prop="district" />
<el-table-column label="操作" align="center" width="100"> <el-table-column label="操作" align="center" width="100">
<template #default="scope"> <template #default="scope">
<el-button <el-button
type="primary" type="primary"
size="small" size="small"
@click="handleUserSelect(scope.row)" @click="handleUserSelect(scope.row)"
> >
选择 选择
@@ -493,42 +493,42 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页 --> <!-- 分页 -->
<pagination <pagination
v-show="userTotal > 0" v-show="userTotal > 0"
:total="userTotal" :total="userTotal"
v-model:page="userQueryParams.pageNum" v-model:page="userQueryParams.pageNum"
v-model:limit="userQueryParams.pageSize" v-model:limit="userQueryParams.pageSize"
@pagination="handleUserPaginationChange" @pagination="handleUserPaginationChange"
class="mt-4" class="mt-4"
/> />
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="cancelUserSelect"> </el-button> <el-button @click="cancelUserSelect"> </el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<!-- 塘口选择对话框 --> <!-- 塘口选择对话框 -->
<el-dialog title="选择塘口" v-model="pondSelectVisible" width="1000px" append-to-body> <el-dialog title="选择塘口" v-model="pondSelectVisible" width="1000px" append-to-body>
<!-- 搜索条件 --> <!-- 搜索条件 -->
<el-form :model="pondQueryParams" :inline="true" class="mb-4"> <el-form :model="pondQueryParams" :inline="true" class="mb-4">
<el-form-item label="塘口名称"> <el-form-item label="塘口名称">
<el-input <el-input
v-model="pondQueryParams.pondName" v-model="pondQueryParams.pondName"
placeholder="请输入塘口名称" placeholder="请输入塘口名称"
clearable clearable
style="width: 180px" style="width: 180px"
@keyup.enter="handlePondQuery" @keyup.enter="handlePondQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="用户信息"> <el-form-item label="用户信息">
<el-input <el-input
v-model="pondQueryParams.params.userKeyword" v-model="pondQueryParams.params.userKeyword"
placeholder="请输入用户名或手机号" placeholder="请输入用户名或手机号"
clearable clearable
style="width: 200px" style="width: 200px"
@keyup.enter="handlePondQuery" @keyup.enter="handlePondQuery"
/> />
@@ -538,10 +538,10 @@
<el-button icon="Refresh" @click="resetPondQuery">重置</el-button> <el-button icon="Refresh" @click="resetPondQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- 塘口表格 --> <!-- 塘口表格 -->
<el-table <el-table
:data="pondList" :data="pondList"
highlight-current-row highlight-current-row
height="400px" height="400px"
border border
@@ -554,9 +554,9 @@
<el-table-column label="密度(尾/亩)" align="center" prop="density" /> <el-table-column label="密度(尾/亩)" align="center" prop="density" />
<el-table-column label="操作" align="center" width="100"> <el-table-column label="操作" align="center" width="100">
<template #default="scope"> <template #default="scope">
<el-button <el-button
type="primary" type="primary"
size="small" size="small"
@click="handlePondSelect(scope.row)" @click="handlePondSelect(scope.row)"
> >
选择 选择
@@ -564,35 +564,35 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页 --> <!-- 分页 -->
<pagination <pagination
v-show="pondTotal > 0" v-show="pondTotal > 0"
:total="pondTotal" :total="pondTotal"
v-model:page="pondQueryParams.pageNum" v-model:page="pondQueryParams.pageNum"
v-model:limit="pondQueryParams.pageSize" v-model:limit="pondQueryParams.pageSize"
@pagination="handlePondPaginationChange" @pagination="handlePondPaginationChange"
class="mt-4" class="mt-4"
/> />
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="cancelPondSelect"> </el-button> <el-button @click="cancelPondSelect"> </el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<!-- 开关信息对话框 --> <!-- 开关信息对话框 -->
<el-dialog <el-dialog
:title="`开关信息 - ${currentDevice?.deviceName || ''} (${currentDevice?.serialNum || ''})`" :title="`开关信息 - ${currentDevice?.deviceName || ''} (${currentDevice?.serialNum || ''})`"
v-model="switchDialogVisible" v-model="switchDialogVisible"
width="1400px" width="1400px"
append-to-body append-to-body
@close="closeSwitchDialog" @close="closeSwitchDialog"
> >
<el-table <el-table
v-loading="switchLoading" v-loading="switchLoading"
:data="switchList" :data="switchList"
border border
height="400px" height="400px"
> >
@@ -617,7 +617,7 @@
<template #default="scope"> <template #default="scope">
<dict-tag :options="open_close" :value="scope.row.electricWarnOpen"/> <dict-tag :options="open_close" :value="scope.row.electricWarnOpen"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="额定电流设置" align="center" prop="rateElectricValue" /> <el-table-column label="额定电流设置" align="center" prop="rateElectricValue" />
<el-table-column label="联动状态" align="center" prop="isLinkedCtrl" > <el-table-column label="联动状态" align="center" prop="isLinkedCtrl" >
<template #default="scope"> <template #default="scope">
@@ -632,10 +632,10 @@
<el-table-column label="操作" align="center" width="120" fixed="right"> <el-table-column label="操作" align="center" width="120" fixed="right">
<template #default="scope"> <template #default="scope">
<el-tooltip content="定时控制" placement="top"> <el-tooltip content="定时控制" placement="top">
<el-button <el-button
link link
type="primary" type="primary"
icon="Timer" icon="Timer"
@click="handleViewSwitchTimingCtrl(scope.row)" @click="handleViewSwitchTimingCtrl(scope.row)"
v-hasPermi="['fishery:timingCtrl:list']" v-hasPermi="['fishery:timingCtrl:list']"
> >
@@ -644,25 +644,25 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="closeSwitchDialog"> </el-button> <el-button @click="closeSwitchDialog"> </el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<!-- 联动控制对话框 --> <!-- 联动控制对话框 -->
<el-dialog <el-dialog
:title="`联动控制 - ${currentDevice?.deviceName || ''} (${currentDevice?.serialNum || ''})`" :title="`联动控制 - ${currentDevice?.deviceName || ''} (${currentDevice?.serialNum || ''})`"
v-model="linkedCtrlDialogVisible" v-model="linkedCtrlDialogVisible"
width="1200px" width="1200px"
append-to-body append-to-body
@close="closeLinkedCtrlDialog" @close="closeLinkedCtrlDialog"
> >
<el-table <el-table
v-loading="linkedCtrlLoading" v-loading="linkedCtrlLoading"
:data="linkedCtrlList" :data="linkedCtrlList"
border border
height="400px" height="400px"
> >
@@ -686,35 +686,35 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页 --> <!-- 分页 -->
<pagination <pagination
v-show="linkedCtrlTotal > 0" v-show="linkedCtrlTotal > 0"
:total="linkedCtrlTotal" :total="linkedCtrlTotal"
v-model:page="linkedCtrlQueryParams.pageNum" v-model:page="linkedCtrlQueryParams.pageNum"
v-model:limit="linkedCtrlQueryParams.pageSize" v-model:limit="linkedCtrlQueryParams.pageSize"
@pagination="getLinkedCtrlList" @pagination="getLinkedCtrlList"
class="mt-4" class="mt-4"
/> />
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="closeLinkedCtrlDialog"> </el-button> <el-button @click="closeLinkedCtrlDialog"> </el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<!-- 校时记录对话框 --> <!-- 校时记录对话框 -->
<el-dialog <el-dialog
:title="`校时记录 - ${currentDevice?.deviceName || ''} (${currentDevice?.serialNum || ''})`" :title="`校时记录 - ${currentDevice?.deviceName || ''} (${currentDevice?.serialNum || ''})`"
v-model="correctRecordDialogVisible" v-model="correctRecordDialogVisible"
width="1000px" width="1000px"
append-to-body append-to-body
@close="closeCorrectRecordDialog" @close="closeCorrectRecordDialog"
> >
<el-table <el-table
v-loading="correctRecordLoading" v-loading="correctRecordLoading"
:data="correctRecordList" :data="correctRecordList"
border border
height="400px" height="400px"
> >
@@ -725,42 +725,42 @@
<dict-tag :options="aqu_device_type" :value="scope.row.deviceType"/> <dict-tag :options="aqu_device_type" :value="scope.row.deviceType"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="溶解氧" align="center" prop="valueDissolvedOxygen" /> <el-table-column label="溶解氧" align="center" prop="valueDissolvedOxygen" />
<el-table-column label="水温" align="center" prop="valueTemperature" /> <el-table-column label="水温" align="center" prop="valueTemperature" />
<el-table-column label="饱和度" align="center" prop="valueSaturability" /> <el-table-column label="饱和度" align="center" prop="valueSaturability" />
<el-table-column label="校准时间" align="center" prop="createTime" width="160"/> <el-table-column label="校准时间" align="center" prop="createTime" width="160"/>
<!-- <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip/> --> <!-- <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip/> -->
</el-table> </el-table>
<!-- 分页 --> <!-- 分页 -->
<pagination <pagination
v-show="correctRecordTotal > 0" v-show="correctRecordTotal > 0"
:total="correctRecordTotal" :total="correctRecordTotal"
v-model:page="correctRecordQueryParams.pageNum" v-model:page="correctRecordQueryParams.pageNum"
v-model:limit="correctRecordQueryParams.pageSize" v-model:limit="correctRecordQueryParams.pageSize"
@pagination="getCorrectRecordList" @pagination="getCorrectRecordList"
class="mt-4" class="mt-4"
/> />
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="closeCorrectRecordDialog"> </el-button> <el-button @click="closeCorrectRecordDialog"> </el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<!-- 开关定时控制对话框 --> <!-- 开关定时控制对话框 -->
<el-dialog <el-dialog
:title="`定时控制 - ${currentSwitch?.switchName || ''} (序号:${currentSwitch?.index || ''})`" :title="`定时控制 - ${currentSwitch?.switchName || ''} (序号:${currentSwitch?.index || ''})`"
v-model="switchTimingCtrlDialogVisible" v-model="switchTimingCtrlDialogVisible"
width="800px" width="800px"
append-to-body append-to-body
@close="closeSwitchTimingCtrlDialog" @close="closeSwitchTimingCtrlDialog"
> >
<el-table <el-table
v-loading="switchTimingCtrlLoading" v-loading="switchTimingCtrlLoading"
:data="switchTimingCtrlList" :data="switchTimingCtrlList"
border border
height="400px" height="400px"
> >
@@ -777,7 +777,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">
<el-button @click="closeSwitchTimingCtrlDialog"> </el-button> <el-button @click="closeSwitchTimingCtrlDialog"> </el-button>
@@ -1138,7 +1138,7 @@ const handleUpdate = async (row?: DeviceVO) => {
const _id = row?.id || ids.value[0] const _id = row?.id || ids.value[0]
const res = await getDevice(_id); const res = await getDevice(_id);
Object.assign(form.value, res.data); Object.assign(form.value, res.data);
// 回显用户信息 // 回显用户信息
if (form.value.userId) { if (form.value.userId) {
try { try {
@@ -1162,7 +1162,7 @@ const handleUpdate = async (row?: DeviceVO) => {
} else { } else {
selectedUser.value = null; selectedUser.value = null;
} }
// 回显塘口信息 // 回显塘口信息
if (form.value.pondId) { if (form.value.pondId) {
try { try {
@@ -1186,7 +1186,7 @@ const handleUpdate = async (row?: DeviceVO) => {
} else { } else {
selectedPond.value = null; selectedPond.value = null;
} }
dialog.visible = true; dialog.visible = true;
dialog.title = "修改设备管理"; dialog.title = "修改设备管理";
} }
@@ -1211,9 +1211,9 @@ const submitForm = () => {
/** 删除按钮操作 */ /** 删除按钮操作 */
const handleDelete = async (row?: DeviceVO) => { const handleDelete = async (row?: DeviceVO) => {
const _ids = row?.id || ids.value; const _ids = row?.id || ids.value;
await proxy?.$modal.confirm('是否确认删除选中的数据项?').finally(() => loading.value = false); await proxy?.$modal.confirm('是否确认解绑选中的数据项?').finally(() => loading.value = false);
await delDevice(_ids); await delDevice(_ids);
proxy?.$modal.msgSuccess("删除成功"); proxy?.$modal.msgSuccess("解绑成功");
await getList(); await getList();
} }
@@ -1284,14 +1284,14 @@ const openPondSelect = () => {
// 重置搜索条件 // 重置搜索条件
pondQueryParams.pageNum = 1; pondQueryParams.pageNum = 1;
pondQueryParams.pondName = undefined; pondQueryParams.pondName = undefined;
// 如果已选择用户,自动筛选该用户的塘口 // 如果已选择用户,自动筛选该用户的塘口
if (selectedUser.value) { if (selectedUser.value) {
pondQueryParams.params.userKeyword = selectedUser.value.userName || selectedUser.value.mobilePhone; pondQueryParams.params.userKeyword = selectedUser.value.userName || selectedUser.value.mobilePhone;
} else { } else {
pondQueryParams.params.userKeyword = undefined; pondQueryParams.params.userKeyword = undefined;
} }
getPondList(); getPondList();
pondSelectVisible.value = true; pondSelectVisible.value = true;
}; };
@@ -1332,10 +1332,10 @@ const handleViewSwitch = async (row: DeviceVO) => {
currentDevice.value = row; currentDevice.value = row;
switchLoading.value = true; switchLoading.value = true;
try { try {
const res = await listDeviceSwitch({ const res = await listDeviceSwitch({
pageNum: 1, pageNum: 1,
pageSize: 100, pageSize: 100,
deviceId: row.id deviceId: row.id
}); });
switchList.value = res.rows || res.data || []; switchList.value = res.rows || res.data || [];
switchDialogVisible.value = true; switchDialogVisible.value = true;