Selaa lähdekoodia

next:最后一个bug

yanghao 23 tuntia sitten
vanhempi
commit
41d59ee0ae

+ 1 - 1
.env.local

@@ -4,7 +4,7 @@ NODE_ENV=development
 VITE_DEV=true
 
 # 请求路径  http://192.168.188.149:48080  https://iot.deepoil.cc
-VITE_BASE_URL='http://192.168.188.149:48080'
+VITE_BASE_URL='http://192.168.188.150:8080'
 
 # 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务
 VITE_UPLOAD_TYPE=server

+ 1 - 5
index.html

@@ -3,11 +3,7 @@
   <head>
     <script src="https://g.alicdn.com/code/npm/@ali/dingtalk-h5-remote-debug/0.1.3/index.js"></script>
     <script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>
-    <script
-      async
-      type="text/javascript"
-      src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"
-    ></script>
+    <script async type="text/javascript" src="/js/base64.min.js"></script>
     <script src="https://api.map.baidu.com/api?v=3.0&ak=c0crhdxQ5H7WcqbcazGr7mnHrLa4GmO0"></script>
     <meta charset="UTF-8" />
     <link rel="icon" href="/favicon.ico" />

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 6 - 0
public/js/base64.min.js


+ 2 - 2
src/api/pms/device/index.ts

@@ -165,8 +165,8 @@ export const IotDeviceApi = {
   },
 
   // 新增时根据部门id获取设备列表
-  getIotDeviceSetOptions: async (params: any) => {
-    return await request.get({ url: `/rq/iot-device/page`, params })
+  getIotDeviceSetOptions: async (id: any) => {
+    return await request.get({ url: `/rq/iot-device/dept/${id}` })
   },
 
   // 获取成套列表

+ 55 - 9
src/views/pms/device/completeSet/AssociationDevices.vue

@@ -1,5 +1,33 @@
 <template>
   <div v-loading="loading" style="height: 100%">
+    <ContentWrap>
+      <!-- 搜索工作栏 -->
+      <el-form
+        class="-mb-15px"
+        :model="queryParams"
+        ref="queryFormRef"
+        :inline="true"
+        label-width="68px"
+      >
+        <el-form-item label="设备编码" prop="deviceCode">
+          <el-input
+            v-model="queryParams.deviceCode"
+            placeholder="请输入设备编码"
+            clearable
+            @keyup.enter="handleQuery"
+            class="!w-200px"
+          />
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="handleQuery"
+            ><Icon icon="ep:search" class="mr-5px" /> {{ t('devicePerson.search') }}</el-button
+          >
+          <el-button @click="resetQuery"
+            ><Icon icon="ep:refresh" class="mr-5px" /> {{ t('devicePerson.reset') }}</el-button
+          >
+        </el-form-item>
+      </el-form>
+    </ContentWrap>
     <el-table :data="deviceList" style="width: 100%">
       <!-- 序号 -->
       <el-table-column :label="t('monitor.serial')" width="70" align="center">
@@ -7,12 +35,19 @@
           {{ scope.$index + 1 }}
         </template>
       </el-table-column>
-      <el-table-column prop="deviceName" :label="t('iotDevice.name')" />
-      <el-table-column prop="deviceCode" :label="t('iotDevice.code')" />
-      <el-table-column prop="ifMaster" label="是否主设备">
+      <el-table-column prop="groupName" label="成套名称" align="center" />
+      <el-table-column prop="deviceName" :label="t('iotDevice.name')" align="center" />
+      <el-table-column prop="deviceCode" label="设备编码" align="center" />
+      <el-table-column prop="ifMaster" label="是否主设备" align="center">
         <template #default="scope">
-          <span v-if="scope.row.ifMaster">是</span>
-          <span v-else>否</span>
+          <el-tag v-if="scope.row.ifMaster" class="text-[#62a66a]">是</el-tag>
+
+          <el-tag v-else class="text-[#9093a6]" type="info">否</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column prop="ifMaster" label="创建时间" align="center">
+        <template #default="scope">
+          {{ formatToDate(scope.row.createTime) }}
         </template>
       </el-table-column>
     </el-table>
@@ -27,7 +62,7 @@
 </template>
 <script setup lang="ts">
 import { ref } from 'vue'
-
+import { formatToDate } from '@/utils/dateUtil'
 import { IotDeviceApi } from '@/api/pms/device'
 const { t } = useI18n() // 国际化
 defineOptions({
@@ -37,7 +72,8 @@ defineOptions({
 const queryParams = reactive({
   pageNo: 1,
   pageSize: 10,
-  deviceId: ''
+  deviceId: '',
+  deviceCode: ''
 })
 const loading = ref(false)
 const total = ref(0) // 列表的总页数
@@ -47,13 +83,23 @@ const props = defineProps({
   deviceId: Number
 })
 
+const handleQuery = () => {
+  queryParams.pageNo = 1
+  getDeviceList(props.deviceId)
+}
+
+const resetQuery = () => {
+  queryParams.deviceCode = ''
+  handleQuery()
+}
+
 const getDeviceList = async (id) => {
   loading.value = true
   try {
     queryParams.deviceId = id
     const res = await IotDeviceApi.getIotDeviceSetRelation(queryParams)
-    deviceList.value = res
-    total.value = res.data.total
+    deviceList.value = res.list
+    total.value = res.total
   } catch (error) {
   } finally {
     loading.value = false

+ 61 - 37
src/views/pms/device/completeSet/DeviceCompleteSet.vue

@@ -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>

Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä