Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

zhangcl 3 сар өмнө
parent
commit
cbf5b045eb

+ 0 - 2
src/config/axios/service.ts

@@ -183,9 +183,7 @@ service.interceptors.response.use(
       if (requestUrl.includes('rq/')||requestUrl.includes('system/dict')) {
         const localeStore = useLocaleStore()
         const lang = localeStore.getCurrentLocale.lang
-        console.log('检测到rq/:', requestUrl)
         // const lang = 'en'
-        debugger
         if (data&& data.data) {
           if (data.data.list) {
             if (Array.isArray(data.data.list)) {

+ 15 - 2
src/router/modules/remaining.ts

@@ -145,7 +145,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
     },
     children: [
       {
-        path: 'device/detail/add',
+        path: 'device/detail/add/:type/:deptId',
         component: () => import('@/views/pms/device/IotDeviceForm.vue'),
         name: 'DeviceDetailAdd',
         meta: {
@@ -158,7 +158,20 @@ const remainingRouter: AppRouteRecordRaw[] = [
         }
       },
       {
-        path: 'device/detail/edit/:id(\\d+)',
+        path: 'device/detail/add',
+        component: () => import('@/views/pms/device/IotDeviceForm.vue'),
+        name: 'DeviceDetailAddd',
+        meta: {
+          noCache: false,
+          hidden: true,
+          canTo: true,
+          icon: 'ep:add',
+          title: '设备台账添加',
+          activeMenu: '/device/base'
+        }
+      },
+      {
+        path: 'device/detail/edit/:type/:id(\\d+)',
         component: () => import('@/views/pms/device/IotDeviceForm.vue'),
         name: 'DeviceDetailEdit',
         meta: {

+ 0 - 1
src/store/modules/dict.ts

@@ -71,7 +71,6 @@ export const useDictStore = defineStore('dict', {
       if (!this.isSetDict) {
         this.setDictMap()
       }
-      debugger
       return this.dictMap[type]
     },
     async resetDict() {

+ 44 - 44
src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue

@@ -22,7 +22,7 @@
           class="mb-auto"
           ref="approveFormRef"
           :model="approveReasonForm"
-          :rules="approveReasonRule"
+          :rules="processInstance.name==='故障上报流程'?transferFormRuleType:approveReasonRule"
           label-width="100px"
         >
           <el-card v-if="runningTask?.formId > 0" class="mb-15px !-mt-10px">
@@ -36,6 +36,27 @@
               :rule="approveForm.rule"
             />
           </el-card>
+          <el-form-item label="负责人" prop="assigneeUserId" v-if="processInstance.name==='故障上报流程'">
+            <el-select v-model="approveReasonForm.assigneeUserId" filterable clearable style="width: 100%">
+              <el-option
+                v-for="item in deptUsers"
+                :key="item.id"
+                :label="item.nickname"
+                :value="item.id"
+              />
+            </el-select>
+          </el-form-item>
+
+          <el-form-item label="维修类型" v-if="processInstance.name==='故障上报流程'" prop="type">
+            <el-select v-model="approveReasonForm.type">
+              <el-option
+                v-for="dict in getStrDictOptions(DICT_TYPE.PMS_MAIN_TYPE)"
+                :key="dict.label"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
           <el-form-item :label="`${nodeTypeName}意见`" prop="reason">
             <el-input
               v-model="approveReasonForm.reason"
@@ -75,7 +96,7 @@
             <el-button
               :disabled="formLoading"
               type="success"
-              @click="handleAudit(true, approveFormRef)"
+              @click="processInstance.name==='故障上报流程'?handleTransferType(approveFormRef):handleAudit(true, approveFormRef)"
             >
               {{ getButtonDisplayName(OperationButtonType.APPROVE) }}
             </el-button>
@@ -208,11 +229,11 @@
           class="mb-auto"
           ref="transferFormRef"
           :model="transferForm"
-          :rules="processInstance.name==='故障上报流程'?transferFormRuleType:transferFormRule"
+          :rules="transferFormRule"
           label-width="100px"
         >
 <!--          <el-form-item label="新审批人" prop="assigneeUserId">-->
-          <el-form-item label="新审批人" prop="assigneeUserId" v-if="processInstance.name!='故障上报流程'">
+          <el-form-item label="新审批人" prop="assigneeUserId">
             <el-select v-model="transferForm.assigneeUserId" filterable clearable style="width: 100%">
               <el-option
                 v-for="item in userOptions"
@@ -223,28 +244,6 @@
             </el-select>
           </el-form-item>
 
-          <el-form-item label="负责人" prop="assigneeUserId" v-if="processInstance.name==='故障上报流程'">
-            <el-select v-model="transferForm.assigneeUserId" filterable clearable style="width: 100%">
-              <el-option
-                v-for="item in deptUsers"
-                :key="item.id"
-                :label="item.nickname"
-                :value="item.id"
-              />
-            </el-select>
-          </el-form-item>
-
-          <el-form-item label="维修类型" v-if="processInstance.name==='故障上报流程'" prop="type">
-            <el-select v-model="transferForm.type">
-              <el-option
-                v-for="dict in getStrDictOptions(DICT_TYPE.PMS_MAIN_TYPE)"
-                :key="dict.label"
-                :label="dict.label"
-                :value="dict.value"
-              />
-            </el-select>
-          </el-form-item>
-
           <el-form-item label="审批意见" prop="reason">
             <el-input
               v-model="transferForm.reason"
@@ -255,7 +254,7 @@
             />
           </el-form-item>
           <el-form-item>
-            <el-button :disabled="formLoading" type="primary" @click="processInstance.name==='故障上报流程'?handleTransferType():handleTransfer()">
+            <el-button :disabled="formLoading" type="primary" @click="handleTransfer()">
               {{ getButtonDisplayName(OperationButtonType.TRANSFER) }}
             </el-button>
             <el-button @click="closePopover('transfer', transferFormRef)"> 取消 </el-button>
@@ -602,7 +601,9 @@ const nextAssigneesActivityNode = ref<ProcessInstanceApi.ApprovalNodeInfo[]>([])
 const approveReasonForm = reactive({
   reason: '',
   signPicUrl: '',
-  nextAssignees: {}
+  nextAssignees: {},
+  type:undefined,
+  assigneeUserId: undefined,
 })
 const approveReasonRule = computed(() => {
   return {
@@ -647,9 +648,13 @@ const transferFormRule = reactive<FormRules<typeof transferForm>>({
   reason: [{ required: true, message: '审批意见不能为空', trigger: 'blur' }]
 })
 const transferFormRuleType = reactive<FormRules<typeof transferForm>>({
-  assigneeUserId: [{ required: true, message: '新审批人不能为空', trigger: 'change' }],
   type: [{ required: true, message: '维修类型不能为空', trigger: 'change' }],
-  reason: [{ required: true, message: '审批意见不能为空', trigger: 'blur' }]
+  reason: [
+    { required: reasonRequire.value, message: nodeTypeName + '意见不能为空', trigger: 'blur' }
+  ],
+  assigneeUserId: [{ required: true, message: '维修负责人不能为空', trigger: 'change' }],
+  signPicUrl: [{ required: true, message: '签名不能为空', trigger: 'change' }],
+  nextAssignees: [{ required: true, message: '审批人不能为空', trigger: 'blur' }]
 })
 // 委派表单
 const delegateFormRef = ref<FormInstance>()
@@ -879,7 +884,6 @@ const handleCopy = async () => {
 
 /** 处理转交 */
 const handleTransfer = async () => {
-  debugger
   formLoading.value = true
   try {
     // 1.1 校验表单
@@ -902,23 +906,19 @@ const handleTransfer = async () => {
   }
 }
 
-const handleTransferType = async () => {
+const handleTransferType = async (formRef: FormInstance | undefined) => {
+  debugger
   formLoading.value = true
   try {
     // 1.1 校验表单
-    if (!transferFormRef.value) return
-    await transferFormRef.value.validate()
+    if (!approveFormRef.value) return
+    await approveFormRef.value.validate()
     // 1.2 提交转交
-    await IotFailureReportApi.updateIotMaintainProcess(props.processInstance.businessKey, transferForm.type, transferForm.assigneeUserId);
-    const data = {
-      id: runningTask.value.id,
-      reason: transferForm.reason,
-      type: transferForm.type,
-      assigneeUserId: transferForm.assigneeUserId
-    }
-    await TaskApi.transferTask(data)
-    transferFormRef.value.resetFields()
-    popOverVisible.value.transfer = false
+    await IotFailureReportApi.updateIotMaintainProcess(props.processInstance.businessKey, approveReasonForm.type, approveReasonForm.assigneeUserId);
+    await handleAudit(true, formRef)
+    // await TaskApi.transferTask(data)
+    // transferFormRef.value.resetFields()
+    // popOverVisible.value.transfer = false
     message.success('操作成功')
     // 2. 加载最新数据
     reload()

+ 1 - 1
src/views/pms/device/DeviceInfo.vue

@@ -53,7 +53,7 @@
             </el-col>
             <el-col :span="8">
               <el-form-item label="规格型号:" prop="model">
-                {{formData.modelName?formData.modelName:'-'}}
+                {{formData.model?formData.model:'-'}}
               </el-form-item>
             </el-col>
           </el-row>

+ 46 - 27
src/views/pms/device/IotDeviceForm.vue

@@ -26,11 +26,11 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="品牌" prop="brand">
+            <el-form-item label="品牌" prop="brandName">
               <el-select
                 clearable
-                v-model="formData.brand"
-                :model-value="brandLabel"
+                v-model="formData.brandName"
+                @clear="brandClear"
                 placeholder="请输入品牌"
                 @click="openForm"
               />
@@ -39,15 +39,21 @@
           <el-col :span="8">
             <el-form-item label="所在部门" prop="deptId">
               <el-tree-select
-                clearable
                 v-model="formData.deptId"
                 :data="deptList"
                 :props="defaultProps"
                 check-strictly
                 node-key="id"
-                filterable
                 placeholder="请选择所在部门"
               />
+<!--              <el-tree-select-->
+<!--                v-model="formData.deptId"-->
+<!--                :data="deptList"-->
+<!--                :props="defaultProps"-->
+<!--                check-strictly-->
+<!--                node-key="id"-->
+<!--                placeholder="请选择归属部门"-->
+<!--              />-->
             </el-form-item>
           </el-col>
           <el-col :span="8">
@@ -90,7 +96,7 @@
           </el-col>
           <el-col :span="8" >
             <div style="display: flex;flex-direction: row">
-              <el-form-item label="规格型号" prop="model" style="width: 85%">
+              <el-form-item label="规格型号" prop="model" style="width: 86%">
                 <el-input
                   clearable
                   v-model="formData.model"
@@ -129,8 +135,9 @@
           <el-col :span="8">
             <el-form-item label="制造商" prop="manufacturerId">
               <el-select
-                v-model="formData.manufacturerId"
-                :model-value="zzLabel"
+                clearable
+                @clear="zzClear"
+                v-model="formData.manufacturerName"
                 placeholder="请输入制造商"
                 @click="openCustomerZz"
               />
@@ -150,9 +157,10 @@
           <el-col :span="8">
             <el-form-item label="供应商" prop="supplierId">
               <el-select
-                v-model="formData.supplierId"
+                clearable
+                @clear="supplierClear"
+                v-model="formData.supplierName"
                 placeholder="请输入供应商"
-                :model-value="supplierLabel"
                 @click="openCustomerSupplier"
               />
             </el-form-item>
@@ -364,6 +372,8 @@ const { params, name } = useRoute() // 查询参数
 const { currentRoute, push } = useRouter()
 
 const id = params.id
+const type = params.type
+const deptId = params.deptId
 const isDetail = params.isDetail
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
@@ -379,6 +389,7 @@ const formData = ref({
   deviceCode: undefined,
   deviceName: undefined,
   brand: undefined,
+  brandName: undefined,
   model: undefined,
   deptId: undefined,
   deviceStatus: undefined,
@@ -386,7 +397,9 @@ const formData = ref({
   picUrl: undefined,
   remark: undefined,
   manufacturerId: undefined,
+  manufacturerName: undefined,
   supplierId: undefined,
+  supplierName: undefined,
   manDate: undefined,
   nameplate: undefined,
   expires: undefined,
@@ -421,7 +434,6 @@ const list = ref([])
 
 const assetclasschange = () => {
   const assetClass = formData.value.assetClass
-  debugger
   DeviceAttrModelApi.getDeviceAttrModelListByDeviceCategoryId(assetClass).then(res => {
     if (res){
       res.forEach((item) => {
@@ -432,7 +444,6 @@ const assetclasschange = () => {
         }
       })
       list.value = res
-      debugger
     } else {
       list.value = []
     }
@@ -441,19 +452,33 @@ const assetclasschange = () => {
 
 const brandChoose = (row) => {
   formData.value.brand = row.id
-  brandLabel.value = row.value
-
+  // brandLabel.value = row.value
+  formData.value.brandName = row.label
+}
+const brandClear = () =>{
+  formData.value.brand = undefined
+  formData.value.brandName = undefined
 }
 const modelChoose = (row) => {
   formData.value.model = row.name
 }
 const customerSupplierChoose = (row) => {
   formData.value.supplierId = row.id
-  supplierLabel.value = row.name
+  formData.value.supplierName = row.name
+  // supplierLabel.value = row.name
+}
+const supplierClear = (row) => {
+  formData.value.supplierId = undefined
+  formData.value.supplierName = undefined
 }
 const customerZzChoose = (row) => {
   formData.value.manufacturerId = row.id
-  zzLabel.value = row.name
+  // zzLabel.value = row.name
+  formData.value.manufacturerName = row.name
+}
+const zzClear = () =>{
+  formData.value.manufacturerId = undefined
+  formData.value.manufacturerName = undefined
 }
 /** 添加/修改操作 */
 const brandFormRef = ref()
@@ -545,10 +570,8 @@ const submitForm = async () => {
         ...item,
         value: formData.value[item.code] // 自定义属性生成逻辑
       }))
-      debugger
       formData.value.templateJson = JSON.stringify(list.value)
     }
-    debugger
     const data = formData.value as unknown as IotDeviceVO
     if (formType.value === 'create') {
       await IotDeviceApi.createIotDevice(data)
@@ -560,12 +583,7 @@ const submitForm = async () => {
     dialogVisible.value = false
     // 发送操作成功的事件
     //emit('success')
-    delView(unref(currentRoute))
-    await push({
-      name: 'IotDevicePms', query: {
-        date: new Date().getTime(),
-      }
-    })
+    close()
   } finally {
     formLoading.value = false
   }
@@ -584,9 +602,9 @@ onMounted(async () => {
     try {
       const iotDevice = await IotDeviceApi.getIotDevice(id);
       formData.value = iotDevice
-      brandLabel.value = iotDevice.brandName;
-      zzLabel.value = iotDevice.zzName;
-      supplierLabel.value = iotDevice.supplierName;
+      formData.value.brandName = iotDevice.brandName;
+      formData.value.manufacturerName = iotDevice.zzName;
+      formData.value.supplierName = iotDevice.supplierName;
       list.value = JSON.parse(iotDevice.templateJson);
       list.value.forEach((item) => {
         formData.value[item.code] = item.value;
@@ -595,6 +613,7 @@ onMounted(async () => {
       formLoading.value = false
     }
   } else {
+    formData.value.deptId = Number(deptId)
     formType.value = 'create';
   }
 })

+ 7 - 3
src/views/pms/device/index.vue

@@ -295,14 +295,18 @@ const resetQuery = () => {
 
 /** 添加/修改操作 */
 const formRef = ref()
-const openForm = (type: string, id?: number) => {
+const openForm = (type: string, id?: number,deptId?:number) => {
   //修改
   if (typeof id === 'number') {
-    push({ name: 'DeviceDetailEdit', params: { id } })
+    push({ name: 'DeviceDetailEdit', params: { type,id } })
     return
   }
   // 新增
-  push({ name: 'DeviceDetailAdd', params: {} })
+  if (deptId) {
+    push({ name: 'DeviceDetailAdd', params: {type,deptId} })
+  }else {
+    push({ name: 'DeviceDetailAddd', params: {} })
+  }
 }
 
 /** 删除按钮操作 */

+ 0 - 1
src/views/pms/failure/FailureInfo.vue

@@ -167,7 +167,6 @@ onMounted( async ()=>{
 const getFailureData = async (id) => {
   formLoading.value = true
   try {
-    debugger
     formData.value = await IotFailureReportApi.getIotFailureReport(id)
   } finally {
     formLoading.value = false

+ 25 - 16
src/views/pms/failure/IotFailureReportForm.vue

@@ -11,16 +11,18 @@
       <el-col :span="12">
       <el-form-item label="设备" prop="deviceName">
         <el-select
+          :disabled="disabled"
           v-model="formData.deviceName"
-          :model-value="deviceLabel"
           placeholder="请选择设备"
           @click="openForm"
+          clearable
+          @clear="handleClear"
         />
       </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="是否解决" prop="ifDeal">
-            <el-select v-model="formData.ifDeal" placeholder="请选择" @change="dealChange" clearable>
+            <el-select v-model="formData.ifDeal" placeholder="请选择" @change="dealChange" clearable :disabled="disabled">
               <el-option
                 v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
                 :key="dict.label"
@@ -31,8 +33,8 @@
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item label="是否协助" prop="needHelp">
-            <el-select v-model="formData.needHelp" placeholder="请选择" @change="helpChange" clearable>
+          <el-form-item label="是否协助" prop="needHelp" >
+            <el-select v-model="formData.needHelp" placeholder="请选择" @change="helpChange" clearable :disabled="disabled">
               <el-option
                 v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
                 :key="dict.label"
@@ -43,8 +45,9 @@
           </el-form-item>
         </el-col>
       <el-col :span="12">
-      <el-form-item label="故障时间" prop="failureTime">
+      <el-form-item label="故障时间" prop="failureTime" :disabled="disabled">
         <el-date-picker
+          :disabled="disabled"
           style="width: 150%"
           v-model="formData.failureTime"
           type="datetime"
@@ -54,13 +57,13 @@
       </el-form-item>
         </el-col>
       <el-col :span="12">
-      <el-form-item label="故障系统" prop="failureSystem">
-        <el-input v-model="formData.failureSystem" placeholder="请输入故障系统" />
+      <el-form-item label="故障系统" prop="failureSystem" :disabled="disabled">
+        <el-input v-model="formData.failureSystem" placeholder="请输入故障系统" :disabled="disabled" />
       </el-form-item>
         </el-col>
         <el-col :span="12">
           <el-form-item label="是否停机" prop="ifStop">
-            <el-select v-model="formData.ifStop" placeholder="请选择" clearable>
+            <el-select v-model="formData.ifStop" placeholder="请选择" clearable :disabled="disabled">
               <el-option
                 v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
                 :key="dict.label"
@@ -72,27 +75,27 @@
         </el-col>
         <el-col :span="12">
           <el-form-item label="图片" prop="pic">
-            <UploadImg v-model="formData.pic" height="60px" />
+            <UploadImg v-model="formData.pic" height="60px" :disabled="disabled" />
           </el-form-item>
         </el-col>
         <el-col :span="24">
           <el-form-item label="故障影响" prop="failureInfluence">
-            <el-input type="textarea" v-model="formData.failureInfluence" placeholder="请输入故障影响" />
+            <el-input type="textarea" v-model="formData.failureInfluence" placeholder="请输入故障影响" :disabled="disabled" />
           </el-form-item>
         </el-col>
       <el-col :span="24">
       <el-form-item label="解决办法" prop="solution" :rules="formData.ifDeal?solutionRule:[]">
-        <el-input v-model="formData.solution" type="textarea" placeholder="请输入解决办法" />
+        <el-input v-model="formData.solution" type="textarea" placeholder="请输入解决办法" :disabled="disabled" />
       </el-form-item>
         </el-col>
         <el-col :span="24">
           <el-form-item label="故障描述" prop="description">
-            <el-input type="textarea" v-model="formData.description" />
+            <el-input type="textarea" v-model="formData.description" :disabled="disabled" />
           </el-form-item>
         </el-col>
         <el-col :span="24">
       <el-form-item label="备注" prop="remark">
-        <el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" />
+        <el-input v-model="formData.remark" type="textarea" placeholder="请输入备注" :disabled="disabled" />
       </el-form-item>
           </el-col>
       </el-row>
@@ -150,7 +153,12 @@ const deviceChoose = (row) => {
   formData.value.deviceId = row.id
   formData.value.deviceName = row.deviceName
   formData.value.deptId = row.deptId;
-  deviceLabel.value = row.deviceName
+  // deviceLabel.value = row.deviceName
+}
+const handleClear = () =>{
+  formData.value.deviceId = undefined
+  formData.value.deviceName = undefined
+  formData.value.deptId = undefined
 }
 /** 添加/修改操作 */
 const deviceFormRef = ref()
@@ -169,9 +177,10 @@ const solutionRule = [
   { required: true, message: '解决办法不能为空', trigger: 'blur' }
 ];
 const formRef = ref() // 表单 Ref
-
+const disabled = ref(false)
 /** 打开弹窗 */
-const open = async (type: string, id?: number) => {
+const open = async (type: string, id?: number, disable?:boolean) => {
+  disabled.value = disable
   dialogVisible.value = true
   dialogTitle.value = t('action.' + type)
   formType.value = type

+ 26 - 19
src/views/pms/failure/index.vue

@@ -123,7 +123,7 @@
           <el-button
             type="primary"
             plain
-            @click="openForm('create')"
+            @click="openForm('create', undefined, false)"
 
           >
             <Icon icon="ep:plus" class="mr-5px" /> 新增
@@ -167,11 +167,11 @@
             <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.ifDeal" />
           </template>
         </el-table-column>
-        <el-table-column label="需要协助" align="center" prop="needHelp" >
-          <template #default="scope">
-            <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.needHelp" />
-          </template>
-        </el-table-column>
+<!--        <el-table-column label="需要协助" align="center" prop="needHelp" >-->
+<!--          <template #default="scope">-->
+<!--            <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.needHelp" />-->
+<!--          </template>-->
+<!--        </el-table-column>-->
 <!--        <el-table-column label="是否停机" align="center" prop="ifStop" >-->
 <!--          <template #default="scope">-->
 <!--            <dict-tag :type="DICT_TYPE.INFRA_BOOLEAN_STRING" :value="scope.row.ifStop" />-->
@@ -194,22 +194,29 @@
         </el-table-column>
   <!--      <el-table-column label="解决办法" align="center" prop="solution" />-->
   <!--      <el-table-column label="备注" align="center" prop="remark" />-->
-<!--        <el-table-column-->
-<!--          label="创建时间"-->
-<!--          align="center"-->
-<!--          prop="createTime"-->
-<!--          :formatter="dateFormatter"-->
-<!--          width="180px"-->
-<!--        />-->
+        <el-table-column
+          label="创建时间"
+          align="center"
+          prop="createTime"
+          :formatter="dateFormatter"
+          width="180px"
+        />
         <el-table-column label="操作" align="center" min-width="120px">
           <template #default="scope">
-
+            <el-button
+              link
+              type="primary"
+              @click="openForm('detail', scope.row.id, true)"
+              v-hasPermi="['rq:iot-failure-report:query']"
+            >
+              查看
+            </el-button>
             <el-button
               link
               v-if="scope.row.auditStatus==='30'"
               type="primary"
-              @click="openForm('update', scope.row.id)"
-              v-hasPermi="['rq:iot-device:update']"
+              @click="openForm('update', scope.row.id, false)"
+              v-hasPermi="['rq:iot-failure-report:update']"
             >
               编辑
             </el-button>
@@ -218,7 +225,7 @@
               v-if="scope.row.auditStatus==='30'"
               type="danger"
               @click="handleDelete(scope.row.id)"
-              v-hasPermi="['rq:iot-device:delete']"
+              v-hasPermi="['rq:iot-failure-report:delete']"
             >
               删除
             </el-button>
@@ -330,8 +337,8 @@ const resetQuery = () => {
 
 /** 添加/修改操作 */
 const formRef = ref()
-const openForm = (type: string, id?: number) => {
-  formRef.value.open(type, id)
+const openForm = (type: string, id?: number,disable?:boolean) => {
+  formRef.value.open(type, id, disable)
 }
 
 /** 删除按钮操作 */

+ 3 - 2
src/views/pms/inspect/route/InspectItemList.vue

@@ -1,5 +1,5 @@
 <template>
-  <Dialog v-model="dialogVisible" title="选择巡检项" style="width: 1300px; min-height: 80%">
+  <Dialog v-model="dialogVisible" title="选择巡检项" style="width: 1300px; min-height: 50%">
     <ContentWrap>
       <el-form
         class="-mb-15px"
@@ -156,10 +156,11 @@ const open = async (classify, id) => {
   queryParams.createTime = undefined
   queryParams.item = undefined
   queryParams.pageNo = 1;
+  queryParams.deviceId = undefined
+  debugger
   if (id) {
     queryParams.deviceId = id
     await getList()
-    debugger
     if (list.value.length === 0) {
       queryParams.deviceId = undefined
       queryParams.deviceClassify = classify

+ 15 - 9
src/views/pms/inspect/route/IotInspectRoute.vue

@@ -30,12 +30,13 @@
               </el-form-item>
             </el-col>
             <el-col :span="8">
-              <el-form-item label="设备" prop="deviceId">
-                <el-select
-                  v-model="formData.deviceId"
-                  :model-value="deviceLabel"
-                  placeholder="请输入设备"
+              <el-form-item label="设备" prop="deviceName">
+                <el-input
+                  v-model="formData.deviceName"
+                  @clear="handleClear"
+                  placeholder="请选择设备"
                   @click="openDevice"
+                  clearable
                 />
               </el-form-item>
             </el-col>
@@ -105,8 +106,6 @@
     </ContentWrap>
     <InspectItemList
       ref="inspectItemFormRef"
-      :classify="formData.deviceClassify"
-      :deviceId="formData.deviceId"
       @choose="inspectItemChoose"
     />
     <DeviceList ref="deviceFormRef" @choose="deviceChoose" />
@@ -156,6 +155,12 @@ const formData = ref({
   deptId: undefined,
   deviceCode: undefined
 })
+const handleClear = () => {
+  formData.value.deviceId = undefined
+  formData.value.deviceName = undefined
+  formData.value.deptId = undefined
+  formData.value.deviceCode = undefined
+}
 // 拖动状态管理
 const dragStart = () => {
   document.body.style.cursor = 'grabbing'
@@ -178,7 +183,7 @@ const deviceChoose = (row) => {
   formData.value.deviceName = row.deviceName
   formData.value.deptId = row.deptId
   formData.value.deviceCode = row.deviceCode
-  deviceLabel.value = row.deviceName
+  //deviceLabel.value = row.deviceName
 }
 const formRules = reactive({
   routeName: [{ required: true, message: '路线名称不能为空', trigger: 'blur' }],
@@ -200,9 +205,10 @@ const inspectItemChoose = (rows) => {
 const inspectItemFormRef = ref()
 const openForm = () => {
   if (formData.value.deviceClassify === undefined) {
-    message.error('请选择设备类别或设备')
+    message.error('请选择设备类别')
     return
   }
+  debugger
   inspectItemFormRef.value.open(formData.value.deviceClassify, formData.value.deviceId)
 }
 const deviceFormRef = ref()

+ 14 - 2
src/views/pms/maintain/IotMaintain.vue

@@ -15,7 +15,8 @@
                 <el-select
                   :disabled="formType === 'update'"
                   v-model="formData.deviceName"
-                  :model-value="deviceLabel"
+                  clearable
+                  @clear="deviceClear"
                   placeholder="请选择设备"
                   @click="openForm"
                 />
@@ -396,7 +397,14 @@ const deviceChoose = (row) => {
   formData.value.deviceName = row.deviceName
   formData.value.deviceCode = row.deviceCode
   formData.value.deptId = row.deptId
-  deviceLabel.value = row.deviceName
+  // deviceLabel.value = row.deviceName
+  list.value = []
+}
+const deviceClear = () =>{
+  formData.value.deviceId = undefined
+  formData.value.deviceName = undefined
+  formData.value.deviceCode = undefined
+  formData.value.deptId = undefined
   list.value = []
 }
 const deviceFormRef = ref()
@@ -421,6 +429,10 @@ const openMaintainForm = (type: string, id?: number) => {
   maintainFormRef.value.open(type, formData.value.deviceId)
 }
 const openMaintainItem = () => {
+  if (!formData.value.deviceId) {
+    message.error('请选择设备')
+    return
+  }
   addItemVisible.value = true
   addFormData.value.deviceName = formData.value.deviceName
   addFormData.value.deviceCode = formData.value.deviceCode