From 9bce6d06fc72b109ebfe1fa779c57e1d62a43b57 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 13 九月 2024 16:58:56 +0800
Subject: [PATCH] 来样方式改成订单类型

---
 src/components/do/b1-ins-order/add.vue |   96 ++++++++++++++++++++++++++++++------------------
 1 files changed, 60 insertions(+), 36 deletions(-)

diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue
index 1eaf682..6c2d005 100644
--- a/src/components/do/b1-ins-order/add.vue
+++ b/src/components/do/b1-ins-order/add.vue
@@ -254,7 +254,7 @@
             </div>
           </el-col> -->
           <el-col class="search_thing" :span="6">
-            <div class="search_label"><span class="required-span">* </span>鏉ユ牱鏂瑰紡锛�</div>
+            <div class="search_label"><span class="required-span">* </span>璁㈠崟绫诲瀷锛�</div>
             <div class="search_input">
               <el-select v-model="addObj.formType" size="small" :disabled="active>1" style="width: 100%;">
                 <el-option v-for="(a,ai) in formType" :key="ai" :label="a.label" :value="a.value"></el-option>
@@ -367,8 +367,8 @@
           <div class="search_thing">
             <div class="search_label">妫�楠屾爣鍑嗭細</div>
             <div class="search_input">
-              <el-select v-model="standardMethodListId" :placeholder="active>1 ? '' : '璇疯緭鍏�'" size="small" @focus="methodFocus"
-                :loading="methodLoad" @change="changeStandardMethodListId">
+              <el-select v-model="standardMethodListId" :placeholder="active>1 ? '' : '璇疯緭閫夋嫨'" size="small" @focus="methodFocus"
+                :loading="methodLoad" multiple @change="changeStandardMethodListId">
                 <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
                 </el-option>
               </el-select>
@@ -384,7 +384,7 @@
               <el-input size="small" v-model="scope.row.sample" clearable :readonly="active>1"></el-input>
             </template>
           </el-table-column>
-          <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" min-width="140" align="center">
+          <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" min-width="100" align="center">
             <template slot-scope="scope">
               <el-input size="small" v-model="scope.row.sampleCode" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚"
                 :readonly="active>1"></el-input>
@@ -399,7 +399,7 @@
               </el-select>
             </template>
           </el-table-column>
-          <el-table-column prop="modelNum" label="鍨嬪彿鍙傛暟" width="130" align="center" v-if="!(active>1)">
+          <el-table-column prop="modelNum" label="鍨嬪彿鍙傛暟" min-width="100" align="center" v-if="!(active>1)">
             <template slot-scope="scope">
               <el-input size="small" v-model="scope.row.modelNum" clearable placeholder="闈炲繀濉�"
                 @keyup.enter.native="methodChange(scope.row.standardMethodListId, scope.row)"
@@ -410,8 +410,17 @@
             <template slot-scope="scope">
               <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1"
                 placeholder="妫�楠屾爣鍑�" size="small" :loading="methodLoad" @change="(value)=>methodChange(value, scope.row)"
-                @focus="methodFocus" :readonly="active>1" style="width: 100%;" clearable @clear="productList = []">
+                @focus="methodFocus" :readonly="active>1" style="width: 100%;" clearable @clear="productList = []" multiple>
                 <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
+                </el-option>
+              </el-select>
+            </template>
+          </el-table-column>
+          <el-table-column prop="testRequirements" label="璇曢獙鏍囧噯" align="center" min-width="100">
+            <template slot-scope="scope">
+              <el-select v-model="scope.row.testRequirements" :disabled="scope.row.model==null||active>1"
+                placeholder="璇曢獙鏍囧噯" size="small" :readonly="active>1" style="width: 100%;" clearable>
+                <el-option v-for="item in standard" :key="item.id" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
             </template>
@@ -1093,7 +1102,7 @@
         RTS: '',
         totalArr: [],
         model: null,
-        standardMethodListId: null,
+        standardMethodListId: [],
         symbolList:[
         'RTS','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'],
         inspectionItem:null,
@@ -1127,7 +1136,8 @@
         temId: '',
         sonLaboratoryList:[],
         selectiveEcho: [], // 妫�楠屼笅鍗曠殑鏃跺�欏嬀閫夋楠岄」鐩�,濡傛灉浣跨敤绛涢�夋彁浜ゆ樉绀烘楠岄」鐩负绌� 鍥炴樉鍒楄〃
-        deaprtEnum:[]
+        deaprtEnum:[],
+        standard:[]
       }
     },
     watch: {
@@ -1179,11 +1189,11 @@
       },
       'addObj.sample'(val) {
         this.model = null
-        this.standardMethodListId = null
+        this.standardMethodListId = []
       },
       'addObj.sampleNum'(val) {
         this.model = null
-        this.standardMethodListId = null
+        this.standardMethodListId = []
       }
     },
     mounted() {
@@ -1193,6 +1203,7 @@
       // this.selectInsOrderTemplate()
       this.getAuthorizedPerson();
       this.selectEnumByCategoryForUnit()
+      this.selectEnumByCategoryForStandard()
       this.selectStandardMethods()
       this.selectEnumByCategoryForOrderType()
       this.selectDepartmentEnum()
@@ -1208,7 +1219,10 @@
             ...res.data.insOrder
           };
           this.addObj.type = String(this.addObj.type)
-          this.sampleList = this.HaveJson(res.data.sampleProduct);
+          this.sampleList = this.HaveJson(res.data.sampleProduct)
+          this.sampleList.forEach(m=>{
+            m.standardMethodListId = JSON.parse(m.standardMethodListId)
+          });
           this.getProNum()
           this.addObj.sampleNum = this.sampleList.length
           this.$nextTick(() => {
@@ -1594,18 +1608,28 @@
         }else if(this.addObj.orderType&&this.addObj.orderType!='C'&&!this.addObj.departmentLimsId){
           this.addObj.departmentLims = '妫�娴嬩腑蹇�'
           this.addObj.departmentLimsId = this.deaprtEnum.find(m=>m.name=='妫�娴嬩腑蹇�').id
-        }else{
-          this.$message.error('璇烽�夋嫨妫�楠岀被鍒�')
-          return
         }
+        // else{
+        //   this.$message.error('璇烽�夋嫨妫�楠岀被鍒�')
+        //   return
+        // }
         if (!this.addObj.companyId) {
           this.$message.error('鏈�夋嫨瀹㈡埛鍗曚綅')
+          return
+        }
+        let noLaboratory = this.totalArr.filter(a => a.state == 1&&!a.sonLaboratory)
+        if(noLaboratory.length>0){
+          let str = ''
+          noLaboratory.forEach((m,j)=>{
+            str += j==noLaboratory.length-1?m.inspectionItem+'-'+m.inspectionItemSubclass:m.inspectionItem+'-'+m.inspectionItemSubclass+','
+          })
+          this.$message.error(str+'娌℃湁鍏宠仈瀹為獙瀹ゅ锛岃鑱旂郴绠$悊鍛�')
           return
         }
         if (!this.addObj.type) {
           this.$message.error('鏈�夋嫨绱ф�ョ▼搴�')
         } else if (!this.addObj.formType) {
-          this.$message.error('璇疯緭鍏ユ潵鏍锋柟寮�')
+          this.$message.error('璇疯緭鍏ヨ鍗曠被鍨�')
         } else if (!this.addObj.orderType) {
           this.$message.error('璇烽�夋嫨妫�楠岀被鍒�')
         } else if (!this.addObj.production) {
@@ -1620,7 +1644,7 @@
           this.$message.error('璇疯緭鍏ユ牱鍝佸悕绉�')
         } else if (!this.sampleList.every(m => m.model)) {
           this.$message.error('璇疯緭鍏ユ牱鍝佸瀷鍙�')
-        } else if (!this.sampleList.every(m => m.standardMethodListId)) {
+        } else if (!this.sampleList.every(m => m.standardMethodListId&&m.standardMethodListId.length>0)) {
           this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�')
         } else {
           //鏍¢獙妫�楠岄」鐨勮姹傚�煎拰瑕佹眰鎻忚堪,浠呭鎵樿姹�
@@ -2128,9 +2152,15 @@
         })
       },
       getProNum() {
-        this.sampleSelectionList.forEach((m, i) => {
-          Vue.set(this.sampleSelectionList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length)
-        })
+        if (this.active != 1) {
+          this.sampleList.forEach((m, i) => {
+            Vue.set(this.sampleList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length)
+          })
+        }else{
+          this.sampleSelectionList.forEach((m, i) => {
+            Vue.set(this.sampleSelectionList[i], 'proNum', m.insProduct.filter(a => a.state == 1).length)
+          })
+        }
         this.$refs.sampleTable.doLayout()
       },
       searchFilter() {
@@ -2216,7 +2246,7 @@
           this.sample.sample = this.addObj.sample
           this.sample.model = this.addObj.model
           this.sample.unit = this.addObj.unit
-          this.sample.standardMethodListId = null
+          this.sample.standardMethodListId = []
           this.sample.insProduct = []
           this.sample.id = this.count
           this.sample.childSampleList = []
@@ -2261,7 +2291,7 @@
           this.sample.sample = this.addObj.sample
           this.sample.model = this.addObj.model
           this.sample.unit = this.addObj.unit
-          this.sample.standardMethodListId = null
+          this.sample.standardMethodListId = []
           this.sample.insProduct = []
           this.sample.id = parseInt(i+1)
           this.sample.childSampleList = []
@@ -2301,12 +2331,6 @@
       },
       rowClick(row, column, event) {
         this.currentMethod = row
-        let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId)
-        if (obj && obj.code == '濮旀墭瑕佹眰') {
-          this.isAskOnlyRead = true
-        } else {
-          this.isAskOnlyRead = false
-        }
         this.sampleId = row.id
         if (this.active !== 1) {
           this.sampleIds = []
@@ -2550,6 +2574,13 @@
           this.units = res.data
         })
       },
+      selectEnumByCategoryForStandard() {
+        this.$axios.post(this.$api.enums.selectEnumByCategory, {
+          category: "璇曢獙鏍囧噯"
+        }).then(res => {
+          this.standard = res.data
+        })
+      },
       selectEnumByCategoryForOrderType() {
         this.$axios.post(this.$api.enums.selectEnumByCategory, {
           category: "妫�楠岀被鍒�"
@@ -2562,7 +2593,7 @@
       },
       selectEnumByCategoryForSampleForm() {
         this.$axios.post(this.$api.enums.selectEnumByCategory, {
-          category: "鏉ユ牱鏂瑰紡"
+          category: "璁㈠崟绫诲瀷"
         }).then(res => {
           this.formType = res.data
           if (this.formType.length > 0) {
@@ -2573,20 +2604,13 @@
       methodChange(val, row) {
         if (val === null || val === '') return
         this.currentMethod = row
-        let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId)
-        if (obj && obj.code == '濮旀墭瑕佹眰') {
-          this.isAskOnlyRead = true
-        } else {
-          this.isAskOnlyRead = false
-        }
         this.getProductLoad = true
         let selectTreeList = this.selectTree.split(" - ")
         this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model)
 
-        console.log( this.selectTree);
         this.$axios.post(this.$api.standardTree.selectStandardProductList, {
           model: (this.addObj.model?this.addObj.model:row.model) + '-' + row.modelNum,
-          standardMethodListId: val,
+          standardMethodListId: val.join(','),
           factory: selectTreeList.join(" - "),
         }, {
           headers: {

--
Gitblit v1.9.3