|
|
@@ -16,15 +16,15 @@
|
|
|
:inline="true"
|
|
|
label-width="68px"
|
|
|
>
|
|
|
- <el-form-item label="成套编码" prop="code" style="margin-left: 20px">
|
|
|
+ <!-- <el-form-item label="部门名称" prop="deptName" style="margin-left: 20px">
|
|
|
<el-input
|
|
|
- v-model="queryParams.code"
|
|
|
- placeholder="请输入成套编码"
|
|
|
+ v-model="queryParams.deptName"
|
|
|
+ placeholder="请输入部门名称"
|
|
|
clearable
|
|
|
@keyup.enter="handleQuery"
|
|
|
class="!w-200px"
|
|
|
/>
|
|
|
- </el-form-item>
|
|
|
+ </el-form-item> -->
|
|
|
<el-form-item label="成套名称" prop="name">
|
|
|
<el-input
|
|
|
v-model="queryParams.name"
|
|
|
@@ -56,7 +56,7 @@
|
|
|
{{ scope.$index + 1 }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="成套编码" align="center" prop="code" />
|
|
|
+ <el-table-column label="部门名称" align="center" prop="deptName" />
|
|
|
<el-table-column label="成套名称" align="center" prop="name" />
|
|
|
|
|
|
<el-table-column label="描述" align="center" prop="remark" />
|
|
|
@@ -67,7 +67,11 @@
|
|
|
</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 +
|
|
|
+ ' ' +
|
|
|
+ scope.row.details.filter((item) => item.ifMaster)[0]?.deviceCode || '无'
|
|
|
+ }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<!-- <el-table-column label="设备详情" align="center" prop="deviceDetails">
|
|
|
@@ -102,7 +106,7 @@
|
|
|
<span>{{ dialogTitle }}</span>
|
|
|
</div>
|
|
|
</template>
|
|
|
- <el-form ref="formRef" :model="formData" :rules="formRules" label-width="80px">
|
|
|
+ <el-form ref="formRef" :model="formData" :inline="true" :rules="formRules" label-width="80px">
|
|
|
<el-form-item label="成套名称" prop="name">
|
|
|
<el-input v-model="formData.name" placeholder="请输入成套名称" />
|
|
|
</el-form-item>
|
|
|
@@ -117,11 +121,18 @@
|
|
|
filterable
|
|
|
placeholder="请选择所在部门"
|
|
|
@change="handleDeptChange"
|
|
|
+ style="width: 200px"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="描述" prop="remark">
|
|
|
- <el-input v-model="formData.remark" type="textarea" placeholder="请输入描述" :rows="2" />
|
|
|
+ <el-input
|
|
|
+ v-model="formData.remark"
|
|
|
+ style="width: 470px"
|
|
|
+ type="textarea"
|
|
|
+ placeholder="请输入描述"
|
|
|
+ :rows="2"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="选择设备" prop="devices">
|
|
|
@@ -147,7 +158,7 @@
|
|
|
</el-form-item>
|
|
|
|
|
|
<div v-if="selectedDevices.length > 0" class="mt-4">
|
|
|
- <el-form-item label="设置主设备" prop="mainDevice">
|
|
|
+ <el-form-item label="设置主设备" prop="mainDevice" label-width="100">
|
|
|
<el-select
|
|
|
v-model="mainDeviceId"
|
|
|
placeholder="请选择主设备"
|
|
|
@@ -172,15 +183,6 @@
|
|
|
<el-button type="primary" @click="submit">确 定</el-button>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
-
|
|
|
- <!-- 设备详情对话框 -->
|
|
|
- <el-dialog v-model="dialogDetailVisible" title="设备详情" width="800">
|
|
|
- <el-table :data="deviceList">
|
|
|
- <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>
|
|
|
- </el-dialog>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
@@ -202,7 +204,7 @@ const total = ref(0) // 列表的总页数
|
|
|
const queryParams = reactive({
|
|
|
pageNo: 1,
|
|
|
pageSize: 10,
|
|
|
- code: undefined,
|
|
|
+ deptName: undefined,
|
|
|
name: undefined,
|
|
|
deptId: undefined
|
|
|
})
|
|
|
@@ -216,9 +218,6 @@ const dialogVisible = ref(false)
|
|
|
const dialogTitle = ref('')
|
|
|
const isEdit = ref(false)
|
|
|
|
|
|
-let dialogDetailVisible = ref(false)
|
|
|
-const deviceList = ref([])
|
|
|
-
|
|
|
// 表单相关
|
|
|
const formRef = ref()
|
|
|
const formData = ref({
|
|
|
@@ -232,7 +231,33 @@ const formData = ref({
|
|
|
const formRules = {
|
|
|
name: [{ required: true, message: '成套名称不能为空', trigger: 'blur' }],
|
|
|
code: [{ required: true, message: '成套编码不能为空', trigger: 'blur' }],
|
|
|
- deptId: [{ required: true, message: '请选择部门', trigger: 'change' }]
|
|
|
+ deptId: [{ required: true, message: '请选择部门', trigger: 'change' }],
|
|
|
+ devices: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ validator: (rule: any, value: any, callback: any) => {
|
|
|
+ if (selectedDeviceIds.value.length === 0) {
|
|
|
+ callback(new Error('请至少选择一个设备'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ trigger: 'change'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ mainDevice: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ validator: (rule: any, value: any, callback: any) => {
|
|
|
+ if (!mainDeviceId.value) {
|
|
|
+ callback(new Error('请选择主设备'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ trigger: 'change'
|
|
|
+ }
|
|
|
+ ]
|
|
|
}
|
|
|
|
|
|
// 部门树数据
|
|
|
@@ -253,12 +278,8 @@ const handleDeptChange = async (deptId) => {
|
|
|
// 获取设备列表
|
|
|
const getDeviceList = async (deptId) => {
|
|
|
try {
|
|
|
- const res = await IotDeviceApi.getIotDeviceSetOptions({
|
|
|
- deptId,
|
|
|
- pageNo: 1,
|
|
|
- pageSize: 100
|
|
|
- })
|
|
|
- deviceOptions.value = res.list.map((item) => ({
|
|
|
+ const res = await IotDeviceApi.getIotDeviceSetOptions(deptId)
|
|
|
+ deviceOptions.value = res.map((item) => ({
|
|
|
key: item.id,
|
|
|
label: `${item.deviceName} (${item.deviceCode})`,
|
|
|
...item
|
|
|
@@ -456,16 +477,16 @@ const submit = async () => {
|
|
|
if (!valid) return
|
|
|
|
|
|
// 检查是否选择了设备
|
|
|
- if (selectedDeviceIds.value.length === 0) {
|
|
|
- ElMessage.warning('请至少选择一个设备')
|
|
|
- return
|
|
|
- }
|
|
|
+ // if (selectedDeviceIds.value.length === 0) {
|
|
|
+ // ElMessage.warning('请至少选择一个设备')
|
|
|
+ // return
|
|
|
+ // }
|
|
|
|
|
|
// 检查是否设置了主设备
|
|
|
- if (!mainDeviceId.value) {
|
|
|
- ElMessage.warning('请选择主设备')
|
|
|
- return
|
|
|
- }
|
|
|
+ // if (!mainDeviceId.value) {
|
|
|
+ // ElMessage.warning('请选择主设备')
|
|
|
+ // return
|
|
|
+ // }
|
|
|
|
|
|
try {
|
|
|
const data = {
|
|
|
@@ -515,4 +536,7 @@ onMounted(async () => {
|
|
|
::deep(.el-tree--highlight-current) {
|
|
|
height: 200px !important;
|
|
|
}
|
|
|
+::deep(.el-transfer-panel__body) {
|
|
|
+ height: 700px !important;
|
|
|
+}
|
|
|
</style>
|