|
|
@@ -67,16 +67,16 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="主设备" align="center" prop="mainDeviceName">
|
|
|
<template #default="scope">
|
|
|
- {{ scope.row.details.filter((item) => item.ifMaster)[0].deviceName || '无' }}
|
|
|
+ {{ scope.row.details.filter((item) => item.ifMaster)[0]?.deviceName || '无' }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="设备详情" align="center" prop="deviceDetails">
|
|
|
+ <!-- <el-table-column label="设备详情" align="center" prop="deviceDetails">
|
|
|
<template #default="scope">
|
|
|
<el-button link type="primary" @click="handleDeviceDetail(scope.row)">
|
|
|
查看
|
|
|
</el-button>
|
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
+ </el-table-column> -->
|
|
|
<el-table-column :label="t('devicePerson.operation')" align="center" min-width="120px">
|
|
|
<template #default="scope">
|
|
|
<el-button link type="primary" @click="handleEdit(scope.row)"> 编辑 </el-button>
|
|
|
@@ -137,10 +137,10 @@
|
|
|
@change="rightDeviceChange"
|
|
|
>
|
|
|
<template #left-empty>
|
|
|
- <el-empty :image-size="60" description="暂无数据" />
|
|
|
+ <el-empty :image-size="60" :description="isEdit ? '加载中...' : '请选择设备'" />
|
|
|
</template>
|
|
|
<template #right-empty>
|
|
|
- <el-empty :image-size="60" description="暂未选择设备" />
|
|
|
+ <el-empty :image-size="60" :description="isEdit ? '加载中...' : '请选择设备'" />
|
|
|
</template>
|
|
|
</el-transfer>
|
|
|
</div>
|
|
|
@@ -176,7 +176,7 @@
|
|
|
<!-- 设备详情对话框 -->
|
|
|
<el-dialog v-model="dialogDetailVisible" title="设备详情" width="800">
|
|
|
<el-table :data="deviceList">
|
|
|
- <el-table-column property="date" label="设备名称" width="150" />
|
|
|
+ <el-table-column property="name" label="设备名称" width="150" />
|
|
|
<el-table-column property="name" label="Name" width="200" />
|
|
|
<el-table-column property="address" label="Address" />
|
|
|
</el-table>
|
|
|
@@ -189,7 +189,7 @@ import DeptTree from '@/views/system/user/DeptTree.vue'
|
|
|
import { defaultProps, handleTree } from '@/utils/tree'
|
|
|
import * as DeptApi from '@/api/system/dept'
|
|
|
import { ElMessageBox } from 'element-plus'
|
|
|
-import { get } from 'axios'
|
|
|
+import { is } from 'bpmn-js/lib/util/ModelUtil'
|
|
|
const deptList = ref<Tree[]>([]) // 树形结构
|
|
|
|
|
|
defineOptions({ name: 'IotDeviceComplete' })
|
|
|
@@ -320,13 +320,25 @@ const updateSelectedDevices = () => {
|
|
|
selectedDeviceIds.value.includes(item.id)
|
|
|
)
|
|
|
|
|
|
- formData.value.details = selectedDevices.value.map((item) => ({
|
|
|
- deviceId: item.id,
|
|
|
- deviceName: item.deviceName,
|
|
|
- deviceCode: item.deviceCode,
|
|
|
- deptId: item.deptId,
|
|
|
- ifMaster: item.id === mainDeviceId.value ? true : false
|
|
|
- }))
|
|
|
+ console.log('selectedDevices>>>>>>>>>>>>>>>>', selectedDevices.value)
|
|
|
+
|
|
|
+ if (isEdit.value) {
|
|
|
+ formData.value.details = selectedDevices.value.map((item) => ({
|
|
|
+ deviceId: item.deviceId,
|
|
|
+ deviceName: item.deviceName,
|
|
|
+ deviceCode: item.deviceCode,
|
|
|
+ deptId: item.deptId,
|
|
|
+ ifMaster: item.id === mainDeviceId.value ? true : false
|
|
|
+ }))
|
|
|
+ } else {
|
|
|
+ formData.value.details = selectedDevices.value.map((item) => ({
|
|
|
+ deviceId: item.id,
|
|
|
+ deviceName: item.deviceName,
|
|
|
+ deviceCode: item.deviceCode,
|
|
|
+ deptId: item.deptId,
|
|
|
+ ifMaster: item.id === mainDeviceId.value ? true : false
|
|
|
+ }))
|
|
|
+ }
|
|
|
|
|
|
// 如果主设备不在当前选择中,则清空主设备
|
|
|
if (mainDeviceId.value && !selectedDeviceIds.value.includes(mainDeviceId.value)) {
|
|
|
@@ -338,13 +350,16 @@ const updateSelectedDevices = () => {
|
|
|
const setMainDevice = (val) => {
|
|
|
mainDeviceId.value = val
|
|
|
// 更新 details 中的 ifMaster 字段
|
|
|
+ console.log('selectedDevices.value>>>>>>>>>>>>>>>>', selectedDevices.value)
|
|
|
formData.value.details = selectedDevices.value.map((item) => ({
|
|
|
- deviceId: item.id,
|
|
|
+ deviceId: item.deviceId,
|
|
|
deviceName: item.deviceName,
|
|
|
deviceCode: item.deviceCode,
|
|
|
deptId: item.deptId,
|
|
|
ifMaster: item.id === mainDeviceId.value ? true : false
|
|
|
}))
|
|
|
+
|
|
|
+ console.log('formData.value.details>>>>>>>>>>>>>>>>', formData.value.details)
|
|
|
}
|
|
|
|
|
|
// 显示新增对话框
|
|
|
@@ -358,28 +373,28 @@ const handleAdd = () => {
|
|
|
// 显示编辑对话框
|
|
|
const handleEdit = (row) => {
|
|
|
isEdit.value = true
|
|
|
+
|
|
|
dialogTitle.value = '编辑成套设备'
|
|
|
|
|
|
formData.value = {
|
|
|
...row
|
|
|
}
|
|
|
|
|
|
- console.log('row>>>>>>>>>>>>>>>>>>>>>>', row)
|
|
|
-
|
|
|
- // deviceOptions.value = row.details.map((item) => ({
|
|
|
- // key: item.deviceId,
|
|
|
- // label: `${item.deviceName} (${item.deviceCode})`,
|
|
|
- // ...item
|
|
|
- // }))
|
|
|
-
|
|
|
getDeviceList(row.deptId)
|
|
|
|
|
|
selectedDeviceIds.value = row.details.map((item) => item.deviceId)
|
|
|
mainDeviceId.value = row.details.find((item) => item.ifMaster)?.deviceId || ''
|
|
|
- selectedDevices.value = deviceOptions.value.filter((item) =>
|
|
|
- selectedDeviceIds.value.includes(item.id)
|
|
|
- )
|
|
|
- // updateSelectedDevices()
|
|
|
+ selectedDevices.value = row.details.map((item) => ({
|
|
|
+ id: item.deviceId,
|
|
|
+ deviceId: item.deviceId,
|
|
|
+ deviceName: item.deviceName,
|
|
|
+ deviceCode: item.deviceCode,
|
|
|
+ deptId: item.deptId,
|
|
|
+ ifMaster: item.ifMaster,
|
|
|
+ label: item.deviceName + ' (' + item.deviceCode + ')',
|
|
|
+ ...item
|
|
|
+ }))
|
|
|
+
|
|
|
dialogVisible.value = true
|
|
|
}
|
|
|
//删除成套
|
|
|
@@ -403,14 +418,6 @@ const handleDelete = async (id: number) => {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-// 查看设备详情
|
|
|
-const handleDeviceDetail = (row) => {
|
|
|
- console.log('查看设备详情', row)
|
|
|
- // 这里可以打开一个对话框或者路由跳转来显示设备详情
|
|
|
- dialogDetailVisible.value = true
|
|
|
- deviceList.value = row.details || []
|
|
|
-}
|
|
|
-
|
|
|
// 重置表单
|
|
|
const resetForm = () => {
|
|
|
formData.value = {
|