From d4be0ab305a9917c7cd59bf9df0fb3850a38223f Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期一, 07 四月 2025 17:45:29 +0800
Subject: [PATCH] art: 设备管理-周保-保养人选择

---
 src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue |  101 ++++++++++++++++++++++++++++++++++----------------
 1 files changed, 69 insertions(+), 32 deletions(-)

diff --git a/src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue b/src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue
index 8dee667..9a0ab82 100644
--- a/src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue
+++ b/src/views/eam/maintenance/modules/EamWeekMaintenanceOrderModal.vue
@@ -21,7 +21,7 @@
             <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="璁惧缂栫爜">
               <maintenance-equipment-select placeholder="璇疯緭鍏ヨ澶囩紪鍙锋垨鍚嶇О鎼滅储" v-model="model.equipmentId"
                                             :maintenanceCategory="maintenanceCategory"
-                                            @autocompleteForm="autocompleteForm"></maintenance-equipment-select>
+                                            @autocompleteForm="autocompleteForm" :disabled="editable"></maintenance-equipment-select>
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
@@ -33,14 +33,14 @@
         <a-row :gutter="24">
           <a-col :span="8">
             <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="maintenanceDate" label="淇濆吇鏃ユ湡">
-              <a-date-picker placeholder="璇烽�夋嫨淇濆吇鏃ユ湡" v-model="model.maintenanceDate" format="YYYY-MM-DD"
+              <a-date-picker placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡" v-model="model.maintenanceDate" format="YYYY-MM-DD"
                              style="width: 100%" />
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
             <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operator" label="淇濆吇浜�">
-              <j-dict-select-tag v-model="model.operator" placeholder="璇烽�夋嫨淇濆吇浜�"
-                                 dictCode="sys_user,realname,username,username!='admin' order by create_time" />
+              <j-search-select-tag v-model="model.operator" placeholder="璇烽�夋嫨淇濆吇浜�"
+                                 :dictOptions="maintenanceOperatorOptions" />
             </a-form-model-item>
           </a-col>
           <a-col :span="8">
@@ -94,9 +94,10 @@
       editable: false,
       model: {},
       maintenanceCategory: 'WEEK_MAINTENANCE',
+      maintenanceOperatorOptions: [],
       labelCol: {
         xs: { span: 24 },
-        sm: { span: 5 }
+        sm: { span: 6 }
       },
       wrapperCol: {
         xs: { span: 24 },
@@ -113,7 +114,10 @@
       confirmLoading: false,
       validatorRules: {
         equipmentId: [
-          {}
+          { required: true, message: '璇烽�夋嫨璁惧!' }
+        ],
+        maintenanceDate: [
+          { required: true, message: '璇烽�夋嫨璁″垝淇濆吇鏃ユ湡!' }
         ]
       },
       url: {
@@ -121,6 +125,7 @@
         edit: '/eam/weekMaintenanceOrder/edit',
         standardDetail: '/eam/eamMaintenanceStandardDetail/queryList',
         detail: '/eam/weekMaintenanceOrderDetail/queryList',
+        userSelect: '/eam/user_select/list',
       },
       detail: {
         loading: false,
@@ -184,21 +189,23 @@
     }
   },
   created() {
+    this.loadMaintenanceOperatorList();
   },
   methods: {
     add() {
       //鍒濆鍖栭粯璁ゅ��
-      this.model = {};
-      this.visible = true;
-      this.editable = false;
-      this.detail.dataSource = [];
+      this.model = {}
+      this.visible = true
+      this.editable = false
+      this.detail.dataSource = []
     },
     edit(record) {
+      // debugger
       this.model = Object.assign({}, record)
       this.visible = true
-      this.editable = true;
-      this.detail.dataSource = [];
-      this.loadDetail(record.id);
+      this.editable = true
+      this.detail.dataSource = []
+      this.loadDetail(record.id)
     },
     close() {
       this.$emit('close')
@@ -207,19 +214,18 @@
     },
     async handleOk() {
       const that = this
-      let errMap = await that.$refs.editableDetailTable.validateTable();
-      if(errMap){
-        this.$message.warning("鏁版嵁鏍¢獙澶辫触锛�");
-        return;
+      let errMap = await that.$refs.editableDetailTable.validateTable()
+      if (errMap) {
+        this.$message.warning('鏁版嵁鏍¢獙澶辫触锛�')
+        return
       }
       // 瑙﹀彂琛ㄥ崟楠岃瘉
       this.$refs.form.validate(valid => {
         if (valid) {
-          debugger
-          let tableData = that.$refs.editableDetailTable.getTableData();
-          let removeData = that.$refs.editableDetailTable.getDeleteData();
-          that.model.tableDetailList = [...tableData];
-          that.model.removeDetailList = [...removeData];
+          let tableData = that.$refs.editableDetailTable.getTableData()
+          let removeData = that.$refs.editableDetailTable.getDeleteData()
+          that.model.tableDetailList = [...tableData]
+          that.model.removeDetailList = [...removeData]
 
           that.confirmLoading = true
           let httpurl = ''
@@ -251,10 +257,25 @@
       this.close()
     },
     autocompleteForm(selectObj) {
-      this.model.standardName = selectObj.standardName
-      this.model.maintenancePeriod = selectObj.maintenancePeriod
-      this.model.standardId = selectObj.id
-      this.loadStandardDetail(selectObj.id);
+      //鏍囧噯鍚嶇О锛屼繚鍏诲懆鏈熶笉鍒锋柊瑙e喅鍔炴硶
+      //鍔炴硶涓�  validatorRules equipmentId 杩樻槸鏈夐棶棰�
+      // const newObj = {
+      //   standardName: selectObj.standardName,
+      //   maintenancePeriod: selectObj.maintenancePeriod,
+      //   standardId : selectObj.id,
+      //   equipmentId: selectObj.equipmentId,
+      // };
+      // this.model = Object.assign({}, newObj, this.model)
+      //鍔炴硶浜�
+      this.$set(this.model, 'standardName', selectObj.standardName)
+      this.$set(this.model, 'maintenancePeriod', selectObj.maintenancePeriod)
+      this.$set(this.model, 'standardId', selectObj.id)
+      this.$set(this.model, 'equipmentId', selectObj.equipmentId)
+      // console.log('model', this.model)
+      if (!this.model.id) {
+        this.loadStandardDetail(selectObj.id)
+      }
+      this.loadMaintenanceOperatorList(this.model.equipmentId);
     },
     //鍔犺浇璇︽儏鏁版嵁
     loadStandardDetail(standardId) {
@@ -273,13 +294,29 @@
     },
     //鏍囧噯閫夋嫨鍙樺寲
     loadDetail(orderId) {
-        if (orderId) {
-          getAction(this.url.detail, { orderId: orderId }).then(res => {
-            if (res.success) {
-              this.detail.dataSource = [...res.result]
-            }
-          })
+      if (orderId) {
+        getAction(this.url.detail, { orderId: orderId }).then(res => {
+          if (res.success) {
+            this.detail.dataSource = [...res.result]
+          }
+        })
+      }
+    },
+    loadMaintenanceOperatorList(equipmentId) {
+      this.maintenanceOperatorOptions = []
+      let params = { positionCode: 'PCR0001' }
+      if (equipmentId) {
+        params.equipmentId = equipmentId
+      }
+      getAction(this.url.userSelect, params).then(res => {
+        if (res.success) {
+          this.maintenanceOperatorOptions = res.result.map(item => ({
+            key: item.id,
+            value: item.username,
+            text: item.realname
+          }))
         }
+      })
     }
 
   }

--
Gitblit v1.9.3