Quellcode durchsuchen

巡检品牌设置

lipenghui vor 1 Woche
Ursprung
Commit
fc53693c71

+ 33 - 5
src/views/pms/inspect/item/IotInspectItemForm.vue

@@ -22,6 +22,17 @@
           />
         </el-form-item>
           </el-col>
+        <el-col :span="12">
+          <el-form-item :label="t('iotDevice.brand')" prop="brandName">
+            <el-select
+              clearable
+              v-model="formData.brandName"
+              @clear="brandClear"
+              :placeholder="t('iotDevice.brandHolder')"
+              @click="openBrand"
+            />
+          </el-form-item>
+        </el-col>
         <el-col :span="12">
         <el-form-item :label="t('monitor.deviceName')" prop="deviceId">
           <el-select
@@ -42,14 +53,14 @@
           <el-input v-model="formData.sort" type="number" :placeholder="t('common.sortHolder')" />
         </el-form-item>
           </el-col>
-        <el-col :span="24">
-          <el-form-item :label="t('inspect.InspectionStandards')" prop="standard">
-            <el-input v-model="formData.standard" type="textarea" :placeholder="t('inspect.stanHolder')" />
+        <el-col :span="12">
+          <el-form-item :label="t('fileInfo.appendix')" prop="urls">
+            <UploadFile v-model="formData.urls" :limit="1" :is-show-tip="false" class="min-w-80px" />
           </el-form-item>
         </el-col>
         <el-col :span="24">
-          <el-form-item :label="t('fileInfo.appendix')" prop="urls">
-            <UploadFile v-model="formData.urls" :limit="1" :is-show-tip="false" class="min-w-80px" />
+          <el-form-item :label="t('inspect.InspectionStandards')" prop="standard">
+            <el-input v-model="formData.standard" type="textarea" :placeholder="t('inspect.stanHolder')" />
           </el-form-item>
         </el-col>
         <el-col :span="24">
@@ -65,6 +76,7 @@
     </template>
   </Dialog>
   <DeviceList ref="deviceFormRef" @choose="deviceChoose" />
+  <BrandList ref="brandFormRef" @choose="brandChoose" />
 </template>
 <script setup lang="ts">
 import { IotInspectItemApi, IotInspectItemVO } from '@/api/pms/inspect/item'
@@ -72,6 +84,7 @@ import {defaultProps, handleTree} from "@/utils/tree";
 import * as ProductClassifyApi from "@/api/pms/productclassify";
 import DeviceList from "@/views/pms/failure/DeviceList.vue";
 import {CACHE_KEY, useCache} from "@/hooks/web/useCache";
+import BrandList from "@/views/pms/device/BrandList.vue";
 /** 巡检项 表单 */
 defineOptions({ name: 'IotInspectItemForm' })
 
@@ -97,6 +110,8 @@ const formData = ref({
   deviceName: undefined,
   deviceCode: undefined,
   urls: undefined,
+  brand: undefined,
+  brandName: undefined,
 })
 const formRules = reactive({
   deviceClassify: [{ required: true, message: '设备类别不能为空', trigger: 'blur' }],
@@ -114,6 +129,19 @@ const deviceChoose = (row) => {
   deviceLabel.value = row.deviceName
 }
 
+const brandFormRef = ref()
+const openBrand = () => {
+  brandFormRef.value.open()
+}
+const brandChoose = (row) => {
+  formData.value.brand = row.id
+  // brandLabel.value = row.value
+  formData.value.brandName = row.label
+}
+const brandClear = () =>{
+  formData.value.brand = undefined
+  formData.value.brandName = undefined
+}
 /** 打开弹窗 */
 const open = async (type: string, id?: number) => {
   dialogVisible.value = true

+ 1 - 0
src/views/pms/inspect/item/index.vue

@@ -81,6 +81,7 @@
         </template>
       </el-table-column>
       <el-table-column :label="t('monitor.category')" align="center" prop="deviceClassifyName" />
+      <el-table-column :label="t('iotDevice.brand')" align="center" prop="brandName" />
       <el-table-column :label="t('iotDevice.code')" align="center" prop="deviceCode" />
       <el-table-column :label="t('monitor.deviceName')" align="center" prop="deviceName" />
       <el-table-column :label="t('inspect.InspectionItems')" align="center" prop="item" />

+ 31 - 6
src/views/pms/inspect/plan/InspectRouteList.vue

@@ -35,18 +35,38 @@
             class="!w-220px"
           />
         </el-form-item>
+        <el-form-item :label="t('iotDevice.dept')" prop="deptId">
+          <el-tree-select
+            v-model="queryParams.deptId"
+            :data="deptList"
+            :props="defaultProps"
+            check-strictly
+            node-key="id"
+            filterable
+            placeholder="请选择部门"
+            class="!w-220px"
+          />
+          <!--              <el-tree-select-->
+          <!--                v-model="formData.deptId"-->
+          <!--                :data="deptList"-->
+          <!--                :props="defaultProps"-->
+          <!--                check-strictly-->
+          <!--                node-key="id"-->
+          <!--                placeholder="请选择归属部门"-->
+          <!--              />-->
+        </el-form-item>
         <el-form-item>
           <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{ t('chooseMaintain.search') }}</el-button>
           <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('chooseMaintain.reset')  }}</el-button>
           <el-button @click="handleConfirm" type="danger"
             ><Icon icon="ep:check" class="mr-5px" />  {{ t('chooseMaintain.confirm')  }}</el-button
           >
-          <el-button @click="toggleAll" type="primary"
-            ><Icon icon="ep:refresh" class="mr-5px" />{{ t('chooseMaintain.selectAll') }}</el-button
-          >
-          <el-button @click="invertSelection" type="info"
-            ><Icon icon="ep:refresh" class="mr-5px" />{{ t('chooseMaintain.cancelAllSelection') }}</el-button
-          >
+<!--          <el-button @click="toggleAll" type="primary"-->
+<!--            ><Icon icon="ep:refresh" class="mr-5px" />{{ t('chooseMaintain.selectAll') }}</el-button-->
+<!--          >-->
+<!--          <el-button @click="invertSelection" type="info"-->
+<!--            ><Icon icon="ep:refresh" class="mr-5px" />{{ t('chooseMaintain.cancelAllSelection') }}</el-button-->
+<!--          >-->
         </el-form-item>
       </el-form>
     </ContentWrap>
@@ -132,6 +152,8 @@ import { IotInspectRouteApi } from '@/api/pms/inspect/route'
 import { IotInspectItemVO } from '@/api/pms/inspect/item'
 import RouteInspectItemDrawer from "@/views/pms/inspect/plan/RouteInspectItemDrawer.vue";
 import {ref} from "vue";
+import {defaultProps, handleTree} from "@/utils/tree";
+import * as DeptApi from "@/api/system/dept";
 const { t } = useI18n() // 国际化
 const emit = defineEmits(['choose']) // 定义 success 事件,用于操作成功后的回调
 const dialogVisible = ref(false) // 弹窗的是否展示
@@ -139,6 +161,7 @@ const loading = ref(true) // 列表的加载中
 const queryFormRef = ref() // 搜索的表单
 const list = ref<IotDeviceVO[]>([]) // 列表的数据
 const total = ref(0) // 列表的总页数
+const deptList = ref<Tree[]>([]) // 树形结构
 const drawerVisible = ref<boolean>(false)
 const showDrawer = ref()
 const queryParams = reactive({
@@ -218,6 +241,7 @@ const toggleAll = () => {
     tableRef.value.toggleRowSelection(row, true)
   })
 }
+
 const handleSelectionChange = (val) => {
   selectedRows.value = val
 }
@@ -253,6 +277,7 @@ const open = async (classify) => {
   queryParams.deviceCode = undefined
   await getList()
   selectedRows.value = []
+  deptList.value = handleTree(await DeptApi.getSimpleDeptList())
 }
 defineExpose({ open })
 const { wsCache } = useCache()

+ 24 - 7
src/views/pms/inspect/route/InspectItemList.vue

@@ -17,6 +17,15 @@
             class="!w-200px"
           />
         </el-form-item>
+<!--        <el-form-item :label="t('iotDevice.brand')" prop="brandName">-->
+<!--          <el-input-->
+<!--            v-model="queryParams.brandName"-->
+<!--            :placeholder="t('iotDevice.brandHolder')"-->
+<!--            clearable-->
+<!--            @keyup.enter="handleQuery"-->
+<!--            class="!w-200px"-->
+<!--          />-->
+<!--        </el-form-item>-->
         <el-form-item :label="t('common.createTime')" prop="createTime">
           <el-date-picker
             v-model="queryParams.createTime"
@@ -34,12 +43,12 @@
           <el-button @click="handleConfirm" type="danger"
             ><Icon icon="ep:check" class="mr-5px" /> {{ t('workOrderMaterial.confirm') }}</el-button
           >
-          <el-button @click="toggleAll" type="primary"
-            ><Icon icon="ep:refresh" class="mr-5px" />{{ t('chooseMaintain.selectAll') }}</el-button
-          >
-          <el-button @click="invertSelection" type="info"
-            ><Icon icon="ep:refresh" class="mr-5px" />{{ t('chooseMaintain.cancelAllSelection') }}</el-button
-          >
+<!--          <el-button @click="toggleAll" type="primary"-->
+<!--            ><Icon icon="ep:refresh" class="mr-5px" />{{ t('chooseMaintain.selectAll') }}</el-button-->
+<!--          >-->
+<!--          <el-button @click="invertSelection" type="info"-->
+<!--            ><Icon icon="ep:refresh" class="mr-5px" />{{ t('chooseMaintain.cancelAllSelection') }}</el-button-->
+<!--          >-->
         </el-form-item>
       </el-form>
     </ContentWrap>
@@ -89,6 +98,7 @@
         </el-table-column>
         <el-table-column :label="t('inspect.InspectionItems')" align="center" prop="item" />
         <el-table-column :label="t('inspect.InspectionStandards')" align="center" prop="standard" />
+        <el-table-column :label="t('iotDevice.brand')" align="center" prop="brandName" />
         <el-table-column :label="t('fileInfo.appendix')" align="center" prop="urls">
           <template #default="scope">
             <el-button v-if="scope.row.urls" link type="primary" @click="openWeb(scope.row.urls)">
@@ -133,6 +143,7 @@ const queryParams = reactive({
   item: undefined,
   deptId: undefined,
   deviceClassify: undefined,
+  brandName:undefined,
   deviceId: undefined,
   createTime: undefined
 })
@@ -156,6 +167,11 @@ const removeTag = (route) => {
     // 这里可以添加逻辑强制更新行状态(如果需要)
   }
 };
+const selectRow = (row) => {
+  selectedRow.value = selectedRow.value?.id === row.id ? null : row
+  emit('choose', row)
+  dialogVisible.value = false
+}
 const toggleAll = () => {
   list.value.forEach((row) => {
     tableRef.value.toggleRowSelection(row, true)
@@ -188,7 +204,7 @@ const toggleRow = (row) => {
 const handleRowClick = (row) => {
   toggleRow(row)
 }
-const open = async (classify, id) => {
+const open = async (classify, id, brandName) => {
   dialogVisible.value = true
   selectedRows.value = []
   queryParams.createTime = undefined
@@ -209,6 +225,7 @@ const open = async (classify, id) => {
   // }
   queryParams.deviceId = id
   queryParams.deviceClassify = classify
+  queryParams.brandName = brandName
   await getList()
 }
 defineExpose({ open })

+ 29 - 2
src/views/pms/inspect/route/IotInspectRoute.vue

@@ -29,6 +29,17 @@
                 />
               </el-form-item>
             </el-col>
+            <el-col :span="8">
+              <el-form-item :label="t('iotDevice.brand')" prop="brandName">
+                <el-select
+                  clearable
+                  v-model="formData.brandName"
+                  @clear="brandClear"
+                  :placeholder="t('iotDevice.brandHolder')"
+                  @click="openBrand"
+                />
+              </el-form-item>
+            </el-col>
             <el-col :span="8">
               <el-form-item :label="t('faultForm.device')" prop="deviceName">
                 <el-input
@@ -40,7 +51,7 @@
                 />
               </el-form-item>
             </el-col>
-            <el-col :span="24">
+            <el-col :span="16">
               <el-form-item :label="t('inspect.routeDesc')" prop="routeDesc">
                 <el-input
                   type="textarea"
@@ -120,6 +131,7 @@
       @choose="inspectItemChoose"
     />
     <DeviceList ref="deviceFormRef" @choose="deviceChoose" />
+    <BrandList ref="brandFormRef" @choose="brandChoose" />
   </ContentWrap>
 </template>
 <script setup lang="ts">
@@ -134,6 +146,7 @@ import draggable from 'vuedraggable'
 import InspectItemList from '@/views/pms/inspect/route/InspectItemList.vue'
 import DeviceList from '@/views/pms/failure/DeviceList.vue'
 import { IotInspectRouteApi, IotInspectRouteVO } from '@/api/pms/inspect/route'
+import BrandList from "@/views/pms/device/BrandList.vue";
 
 /** 维修工单 表单 */
 defineOptions({ name: 'RouteAdd' })
@@ -165,6 +178,20 @@ const formData = ref({
   deptId: undefined,
   deviceCode: undefined
 })
+
+const brandFormRef = ref()
+const openBrand = () => {
+  brandFormRef.value.open()
+}
+const brandChoose = (row) => {
+  formData.value.brand = row.id
+  // brandLabel.value = row.value
+  formData.value.brandName = row.label
+}
+const brandClear = () =>{
+  formData.value.brand = undefined
+  formData.value.brandName = undefined
+}
 const handleClear = () => {
   formData.value.deviceId = undefined
   formData.value.deviceName = undefined
@@ -218,7 +245,7 @@ const openForm = () => {
     message.error('请选择设备类别')
     return
   }
-  inspectItemFormRef.value.open(formData.value.deviceClassify, formData.value.deviceId)
+  inspectItemFormRef.value.open(formData.value.deviceClassify, formData.value.deviceId,formData.value.brandName)
 }
 const deviceFormRef = ref()
 const openDevice = () => {

+ 1 - 1
src/views/pms/inspect/route/index.vue

@@ -90,7 +90,7 @@
       <el-table-column :label="t('monitor.category')" align="center" prop="deviceClassifyName" />
       <el-table-column :label="t('monitor.deviceName')" align="center" prop="deviceName" />
 <!--      <el-table-column label="巡检项" align="center" prop="itemJson" />-->
-      <el-table-column :label="t('form.remark')" align="center" prop="remark" />
+      <el-table-column :label="t('iotDevice.brand')" align="center" prop="brandName" />
       <el-table-column
         :label="t('common.createTime')"
         align="center"