Browse Source

送检优化

wyh 1 year ago
parent
commit
53a000326f

+ 1 - 1
src/views/module_cmms/repairManage/modules/RepairManageForm.vue

@@ -173,7 +173,7 @@
         console.log(999,this.deviceOptions)
       },
       // 解决筛选后option不回显问题
-      filterOptions(input, option) {                    
+      filterOptions(input, option) {
         return this.deviceOptions
       },
       add () {

+ 70 - 3
src/views/module_cmms/submission/modules/SubmissionForm.vue

@@ -5,7 +5,20 @@
         <a-row>
           <a-col :span="24">
             <a-form-model-item label="检定设备" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentids">
-              <j-search-select-tag v-model="model.equipmentids" dict="tpm_equipment,equipmentname,id"  placeholder="请选择检定设备" mode="multiple"/>
+              <!-- <j-search-select-tag v-model="model.equipmentids" dict="tpm_equipment,equipmentname,id"  placeholder="请选择检定设备" mode="multiple"/> -->
+              <a-select
+              v-model="model.equipmentids"
+              placeholder="请输入设备名称或设备编号"
+              show-search
+              mode="multiple"
+              :filterOption="filterOptions"
+              @search="searchDevice"
+              allowClear>
+                <a-select-option v-for="(item, index) in deviceOptions" :key="index" :value="item.id" :label="item.equipmentname">
+                  <span>{{item.equipmentname}}</span>
+                  <span style="position: absolute;right: 6%;">{{ item.equipmentcode }}</span>
+                </a-select-option>
+              </a-select>
             </a-form-model-item>
           </a-col>
           <a-col :span="24">
@@ -72,7 +85,9 @@
           add: "/cmmsSubmission/cmmsSubmission/add",
           edit: "/cmmsSubmission/cmmsSubmission/edit",
           queryById: "/cmmsSubmission/cmmsSubmission/queryById"
-        }
+        },
+        deviceOptions: [],
+        deviceOptionsAll: [],
       }
     },
     computed: {
@@ -83,13 +98,58 @@
     created () {
        //备份model原始值
       this.modelDefault = JSON.parse(JSON.stringify(this.model));
+      this.getDeviceOption();
     },
     methods: {
+      // 获取设备下拉列表
+      getDeviceOption(){
+        getAction(`/tpmEquipment/tpmEquipment/selectEquipmentList`).then(res=>{
+          console.log(111,res.result)
+          this.deviceOptions = res.result.map((res) => {
+            return {
+              id: res.id,
+              equipmentname: res.equipmentname,
+              equipmentcode: res.equipmentcode,
+            }
+          })
+          // 存一个完整的设备表
+          this.deviceOptionsAll = this.deviceOptions
+          console.log(7878,this.deviceOptionsAll)
+        })
+      },
+      // 筛选设备
+      searchDevice(value) {
+        console.log(1212,value,value.trim().length)
+        // 若输入的值删除,则重新赋完整的设备列表
+        if (value.trim().length === 0) {
+          this.deviceOptions = this.deviceOptionsAll
+        }
+        // 通过判断字符串中是数字还是文字进而判断是通过设备名筛选还是设备编号筛选
+        let panDuan = isNaN(parseFloat(value))
+        if (!panDuan) {
+          // 数字
+          console.log(777)
+          let filteredArray = this.deviceOptionsAll.filter(item => item.equipmentcode.includes(value));
+          this.deviceOptions = filteredArray
+        } else {
+          console.log(888)
+          let filteredArray = this.deviceOptionsAll.filter(item => item.equipmentname.includes(value));
+          this.deviceOptions = filteredArray
+        }
+        console.log(999,this.deviceOptions)
+      },
+      // 解决筛选后option不回显问题
+      filterOptions(input, option) {
+        return this.deviceOptions
+      },
       add () {
         this.edit(this.modelDefault);
       },
       edit (record) {
+        console.log(77,record)
         this.model = Object.assign({}, record);
+        this.model.equipmentids = record.equipmentids.split(",")
+        console.log(88,this.model)
         this.visible = true;
       },
       submitForm () {
@@ -107,6 +167,7 @@
               httpurl+=this.url.edit;
                method = 'put';
             }
+            this.model.equipmentids = this.model.equipmentids.toString()
             httpAction(httpurl,this.model,method).then((res)=>{
               if(res.success){
                 that.$message.success(res.message);
@@ -123,4 +184,10 @@
       },
     }
   }
-</script>
+</script>
+
+<style scoped>
+::v-deep .ant-select-selection--multiple .ant-select-selection__choice{
+  width: 99% !important;
+}
+</style>