From ae8b90c76912a7796b7c23c78f1a59bac434457d Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期一, 14 十月 2024 13:37:15 +0800
Subject: [PATCH] 完成普通项目的项目检验

---
 src/components/do/b1-ins-order/add.vue |  389 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 315 insertions(+), 74 deletions(-)

diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue
index 8c9f4b5..0744bff 100644
--- a/src/components/do/b1-ins-order/add.vue
+++ b/src/components/do/b1-ins-order/add.vue
@@ -185,18 +185,13 @@
             <div class="search_label"><span class="required-span">* </span>鍒跺崟浜猴細</div>
             <div class="search_input">
               <el-input size="small" clearable disabled v-model="addObj.custom"></el-input>
-              <!-- <el-input readonly size="small" v-model="addObj.custom">
-                <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true"
-                    :disabled="active>1"></el-button></template>
-              </el-input> -->
             </div>
           </el-col>
           <el-col class="search_thing" :span="6">
             <div class="search_label"><span class="required-span">* </span>濮旀墭鍗曚綅锛�</div>
             <div class="search_input">
-              <!-- <el-input size="small" placeholder="鈫愰�夋嫨濮旀墭瀹㈡埛" clearable disabled v-model="addObj.company"></el-input> -->
               <el-input readonly size="small" v-model="addObj.company" placeholder="閫夋嫨濮旀墭鍗曚綅">
-                <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true"
+                <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true,createState=1"
                     :disabled="active>1"></el-button></template>
               </el-input>
             </div>
@@ -254,14 +249,29 @@
             </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>
               </el-select>
             </div>
           </el-col>
-          <el-col class="search_thing" :span="6">
+          <el-col class="search_thing" :span="6" v-if="addObj.formType==='鍏朵粬鎴愬搧'">
+            <div class="search_label">闆朵欢鍙凤細</div>
+            <div class="search_input">
+              <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.partNo"
+                        :readonly="active>1"></el-input>
+            </div>
+          </el-col>
+          <el-col class="search_thing" :span="6" v-if="addObj.formType!='鍏朵粬鎴愬搧'&&addObj.formType">
+            <div class="search_label"><span class="required-span">* </span>閫氱煡鑷虫牱鏈哄憳锛�</div>
+            <div class="search_input">
+              <el-select v-model="addObj.issueUser" size="small" :disabled="active>1" style="width: 100%;">
+                <el-option v-for="(a,ai) in personList" :key="ai" :label="a.label" :value="a.value"></el-option>
+              </el-select>
+            </div>
+          </el-col>
+          <!-- <el-col class="search_thing" :span="6">
             <div class="search_label">鎶ュ憡鍙戦�佹柟寮忥細</div>
             <div class="search_input">
               <el-radio-group v-model="addObj.send">
@@ -269,8 +279,8 @@
                 <el-radio :label="0">鍏朵粬</el-radio>
               </el-radio-group>
             </div>
-          </el-col>
-          <el-col class="search_thing" :span="6">
+          </el-col> -->
+          <!-- <el-col class="search_thing" :span="6">
             <div class="search_label">鏍峰搧澶勭悊鏂瑰紡锛�</div>
             <div class="search_input">
               <el-radio-group v-model="addObj.processing">
@@ -278,7 +288,7 @@
                 <el-radio :label="1">瀹為獙瀹ゅ鐞�</el-radio>
               </el-radio-group>
             </div>
-          </el-col>
+          </el-col> -->
           <el-col class="search_thing" :span="6">
             <div class="search_label">宸ョ▼鍚嶇О锛�</div>
             <div class="search_input">
@@ -296,8 +306,12 @@
           <el-col class="search_thing" :span="6">
             <div class="search_label"><span class="required-span">* </span>鐢熶骇鍗曚綅锛�</div>
             <div class="search_input">
-              <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.production"
-                :readonly="active>1"></el-input>
+              <!-- <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.production"
+                :readonly="active>1"></el-input> -->
+              <el-input size="small" v-model="addObj.production" placeholder="閫夋嫨鐢熶骇鍗曚綅" :readonly="active>1">
+                <template slot="append"><el-button slot="append" icon="el-icon-search" @click="selectUserDia = true,createState=2"
+                    :disabled="active>1"></el-button></template>
+              </el-input>
             </div>
           </el-col>
           <el-col class="search_thing" :span="6">
@@ -307,7 +321,7 @@
                 :readonly="active>1"></el-input>
             </div>
           </el-col>
-          <el-col class="search_thing" :span="6">
+          <!-- <el-col class="search_thing" :span="6">
             <div class="search_label">鏄惁鐣欐牱锛�</div>
             <div class="search_input">
               <el-radio-group v-model="addObj.isLeave">
@@ -315,26 +329,69 @@
                 <el-radio :label="1">鐣欐牱</el-radio>
               </el-radio-group>
             </div>
-          </el-col>
+          </el-col> -->
           <el-col class="search_thing" :span="6">
             <div class="search_label" style="width: 175px;">鏄惁娑夊強閰嶅鏍峰搧锛�</div>
             <div class="search_input" style="width: calc(100% - 175px);">
-              <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()">
+              <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()" :disabled="active>1">
                 <el-radio :label="1">鏄�</el-radio>
                 <el-radio :label="0">鍚�</el-radio>
               </el-radio-group>
             </div>
           </el-col>
-          <el-col class="search_thing" :span="6">
+          <!-- <el-col class="search_thing" :span="6">
             <div class="search_label">OTC璁㈠崟鍙凤細</div>
             <div class="search_input">
               <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input>
             </div>
-          </el-col>
+          </el-col> -->
           <el-col class="search_thing" :span="6">
             <div class="search_label">濮旀墭浜猴細</div>
             <div class="search_input">
               <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.prepareUser" :readonly="active>1"></el-input>
+            </div>
+          </el-col>
+          <el-col class="search_thing" :span="6">
+            <div class="search_label"><span class="required-span">* </span>绾﹀畾鏃堕棿锛�</div>
+            <div class="search_input">
+              <el-date-picker
+                v-model="addObj.appointed"
+                :disabled="active>1"
+                type="date"
+                placeholder="閫夋嫨鏃ユ湡"
+                size="small" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
+              </el-date-picker>
+            </div>
+          </el-col>
+          <el-col class="search_thing" :span="6">
+            <div class="search_label"><span class="required-span">* </span>鏍锋満瀹屾垚鏃堕棿锛�</div>
+            <div class="search_input">
+              <el-date-picker
+                v-model="addObj.issueTime"
+                :disabled="active>1"
+                type="date"
+                placeholder="閫夋嫨鏃ユ湡"
+                size="small" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
+              </el-date-picker>
+            </div>
+          </el-col>
+          <el-col class="search_thing upload" :span="4" style="align-items: flex-start;height: auto" v-if="active==1">
+            <el-upload
+            style="margin: 8px 0 0px 50px;"
+              action="#"
+              :auto-upload="false"
+              accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :on-change="handleChangeUpload">
+              <el-button size="small" type="primary">涓婁紶闄勪欢</el-button>
+            </el-upload>
+          </el-col>
+          <el-col class="search_thing" :span="8">
+            <div class="search_input" style="width: 100%;margin-left: 40px;">
+              <el-radio-group v-model="ruleInfo.rule" @change="$refs.sampleTable.doLayout()" :disabled="active>1">
+                <el-radio :label="1">涓嶈�冭檻涓嶇‘瀹氬害</el-radio>
+                <el-radio :label="2">鑰冭檻涓嶇‘瀹氬害<el-input placeholder="" v-model="ruleInfo.num" style="width: 100px;margin-left: 10px;" size="mini" :disabled="active>1">
+                <template slot="append">%</template>
+              </el-input></el-radio>
+              </el-radio-group>
             </div>
           </el-col>
           <el-col class="search_thing" :span="6" style="align-items: flex-start;margin: 8px 0;">
@@ -367,16 +424,20 @@
           <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>
             </div>
           </div>
         </div>
+        <el-radio-group v-model="currentPage" v-if="active>1" size="small" style="margin-top: 20px;">
+          <el-radio-button :label="0">鏍峰搧</el-radio-button>
+          <el-radio-button :label="1">闄勪欢</el-radio-button>
+        </el-radio-group>
         <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" max-height="400px" tooltip-effect="dark"
-          border @selection-change="selectSample" highlight-current-row @row-click="rowClick" style="margin-top: 10px;">
+          border @selection-change="selectSample" highlight-current-row @row-click="rowClick" style="margin-top: 10px;" v-show="currentPage==0">
           <el-table-column type="selection" width="60" :selectable="selectable" v-if="active==1"></el-table-column>
           <el-table-column type="index" label="搴忓彿" width="65" align="center"></el-table-column>
           <el-table-column prop="sample" label="鏍峰搧鍚嶇О" align="center" min-width="100">
@@ -384,7 +445,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,18 +460,27 @@
               </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)"
                 @clear="methodChange(scope.row.standardMethodListId, scope.row)"></el-input>
             </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>
+          </el-table-column>
           <el-table-column prop="standardMethodListId" label="妫�楠屾爣鍑�" align="center" min-width="100">
             <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>
@@ -438,7 +508,7 @@
         </el-table>
         <el-table class="el-table" ref="productTable" :data="productList" max-height="400px" tooltip-effect="dark" border
           @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect"
-          :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll">
+          :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll" v-show="currentPage==0">
           <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1"></el-table-column>
           <el-table-column prop="inspectionItemClass" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被" min-width="140" show-overflow-tooltip></el-table-column>
           <el-table-column prop="inspectionItemClassEn" v-if="PROJECT === '瑁呭鐢电紗'" label="妫�楠岄」鍒嗙被(EN)" min-width="140" show-overflow-tooltip></el-table-column>
@@ -520,8 +590,16 @@
           <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip :filters="filters"
             :filter-method="filterHandler"></el-table-column>
         </el-table>
+        <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList"
+        :componentData="componentData0"
+        :delUrl="$api.insOrderPlan.delfile" style="height: 100%;margin-top: 16px;" v-show="currentPage==1"/>
       </div>
     </div>
+    <p style="font-size: 12px;color: red;margin-top: 20px;margin-bottom: 20px;">鍙屾柟鎵胯:<br/>
+      1銆佸鎵樻柟鎵胯鎻愪緵鐨勪俊鎭笌鏍峰搧鐨勭湡瀹炴��;<br/>
+      2銆佸鎵橀�佹牱妫�楠岀粨鏋滀粎閫傜敤浜庢敹鍒扮殑鏍峰搧;<br/>
+      3銆佽瘯楠岃繃绋嬪鑷寸殑鏍峰搧鎹熷潖銆侀厤浠舵崯鍧忋�佹崯鑰楋紝鏈祴璇曞満涓嶆壙鎷呰禂鍋胯矗浠�;<br/>
+      4銆佸疄楠屽鎵胯鍏寮�灞曟娴嬫椿鍔紝骞舵壙璇轰繚瀹堝湪妫�娴嬫椿鍔ㄨ繃绋嬩腑鎵�鑾风煡鐨勪繚瀵嗕俊鎭��</p>
     <el-dialog title="閫夋嫨鍗曚綅" :visible.sync="selectUserDia" width="70%">
       <div class="body" style="height: 60vh;" v-if="selectUserDia">
         <ValueTable ref="ValueTable2" :url="$api.user.selectCustomPageList" :componentData="componentData2" />
@@ -918,6 +996,13 @@
         <el-button type="primary" @click="spliceTemperatureTest">淇濆瓨</el-button>
       </span>
     </el-dialog>
+    <el-dialog
+      title="鏂囦欢棰勮"
+      :visible.sync="lookFileVisible"
+      width="60%" fullscreen>
+      <filePreview v-if="lookFileVisible" :fileUrl="currentFile.url"
+      :currentFile="currentFile" style="max-height: 87vh;overflow-y: auto;"/>
+    </el-dialog>
   </div>
 </template>
 
@@ -928,6 +1013,7 @@
 import equipConfig from './equip-config.vue'
 import cableConfig from './cable-config.vue'
 import Vue from 'vue'
+import filePreview from '../../tool/file-preview.vue'
 
 export default {
     components: {
@@ -935,7 +1021,8 @@
       fiberOpticConfig,
       fiberOpticConfigTwo,
       equipConfig,
-      cableConfig
+      cableConfig,
+      filePreview
     },
     props: {
       examine: {
@@ -953,6 +1040,8 @@
     },
     data() {
       return {
+        currentFile:{},
+        lookFileVisible:false,
         inspectionItemST: null,
         sampleSelectionList: [],//鏍峰搧琛ㄦ牸閫変腑鏁版嵁
         editTable:[],
@@ -966,6 +1055,7 @@
           type: '0',
           code: null,
           appointed: null,
+          issueTime:null,
           remark: null,
           otcCode: null,
           mating: 0,
@@ -990,7 +1080,8 @@
           companyId: null,
           prepareUser:null,
           departmentLimsId:null,
-          departmentLims:null
+          departmentLims:null,
+          partNo: null, // 闆朵欢鍙�
         },
         sample: {
           sampleCode: null,
@@ -1093,7 +1184,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 +1218,59 @@
         temId: '',
         sonLaboratoryList:[],
         selectiveEcho: [], // 妫�楠屼笅鍗曠殑鏃跺�欏嬀閫夋楠岄」鐩�,濡傛灉浣跨敤绛涢�夋彁浜ゆ樉绀烘楠岄」鐩负绌� 鍥炴樉鍒楄〃
-        deaprtEnum:[]
+        deaprtEnum:[],
+        standard:[],
+        createState:1,//1:閫夋嫨濮旀墭鍗曚綅锛�2锛氶�夋嫨鐢熶骇鍗曚綅
+        fileList:[],
+        currentPage:0,//0:鏍峰搧淇℃伅锛�1锛氶檮浠�
+        componentData0: {
+          entity: {
+            insOrderId:''
+          },
+          isIndex: true,
+          showSelect: false,
+          select: false,
+          sort: false,
+          init:false,
+          do: [
+          {
+						id: 'handleDown',
+						font: '涓嬭浇',
+						type: 'text',
+						method: 'handleDown'
+					},
+          {
+						id: '1',
+						font: '棰勮',
+						type: 'text',
+						method: 'lookFile',
+					}
+          ],
+          isPage: false,
+          linkEvent: {},
+          tagField: {
+            type:{
+              select:[
+                {
+                  value: 1,
+                  label: '鍥剧墖'
+                },
+                {
+                  value: 2,
+                  label: '鏂囦欢'
+                }
+              ]
+            }
+          },
+          currentId: '',
+          selectField: {},
+          requiredAdd: [],
+          requiredUp: []
+        },
+        ruleInfo:{
+          rule:null,
+          num:null,
+        }
       }
     },
     watch: {
@@ -1179,11 +1322,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 +1336,7 @@
       // this.selectInsOrderTemplate()
       this.getAuthorizedPerson();
       this.selectEnumByCategoryForUnit()
+      this.selectEnumByCategoryForStandard()
       this.selectStandardMethods()
       this.selectEnumByCategoryForOrderType()
       this.selectDepartmentEnum()
@@ -1207,8 +1351,19 @@
           this.addObj = {
             ...res.data.insOrder
           };
+          if(this.addObj.rule){
+            if(this.addObj.rule=='涓嶈�冭檻涓嶇‘瀹氬害'){
+              this.ruleInfo.rule = 1
+            }else{
+              this.ruleInfo.rule = 2
+              this.ruleInfo.num = this.addObj.rule.split('-')[1]
+            }
+          }
           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(() => {
@@ -1219,9 +1374,45 @@
             }
           })
         })
+        // 鏂囦欢淇℃伅
+        this.componentData0.entity.insOrderId = this.currentId
+        this.$refs.fileList.selectList()
       }
     },
     methods: {
+      lookFile(row){
+        this.currentFile = row;
+        if(row.type==1){
+          this.currentFile.url = this.javaApi+'/img/'+row.fileUrl
+        }else{
+          this.currentFile.url = this.javaApi+'/word/'+row.fileUrl
+        }
+        this.lookFileVisible = true
+      },
+      handleDown(row){
+        this.$axios.post(this.$api.insOrderPlan.downFile, {
+          id: row.id,
+        }).then(res => {
+          if (res.code === 200) {
+            let url = '';
+            if(res.data.type==1){
+              url = this.javaApi+'/img/'+res.data.fileUrl
+              file.downloadIamge(url,row.fileName)
+            }else{
+              url = this.javaApi+'/word/'+res.data.fileUrl
+              const link = document.createElement('a');
+              link.href = url;
+              link.download = row.fileName;
+              link.click();
+            }
+          }
+        }).catch(error => {
+
+        })
+      },
+      handleChangeUpload(file, fileLists){
+        this.fileList = fileLists
+      },
       //鐗规畩鍊煎~鍐欏鐞�
       inputValueHandler(row,index){
         if(row){
@@ -1527,14 +1718,23 @@
           this.$message.error('鏈�夋嫨鏁版嵁')
           return
         }
-        this.addObj.company = selects.company
-        this.addObj.code = selects.code
-        this.addObj.companyId = selects.id
-        this.selectUserDia = false
-        if(this.active==1){
-          // TODO
-          this.selectInsOrderTemplate()
+        if(this.createState==1){
+          this.addObj.company = selects.company
+          this.addObj.code = selects.code
+          this.addObj.companyId = selects.id
+          if(this.active==1){
+            this.selectInsOrderTemplate()
+          }
+        }else if(this.createState==2){
+          this.addObj.production = selects.company
+          // 濡傛灉閫夋嫨鐨勫崟浣嶆槸娌℃湁瀵瑰簲鐨勮嫳鏂囧悕绉板氨鐢�'/'浠f浛
+          if (!selects.companyEn) {
+            this.addObj.productionEn = '/'
+          } else {
+            this.addObj.productionEn = selects.companyEn
+          }
         }
+        this.selectUserDia = false
       },
       containsValue(str) {
         if(str){
@@ -1594,18 +1794,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,9 +1830,15 @@
           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.addObj.appointed) {
+          this.$message.error('璇烽�夋嫨绾﹀畾鏃堕棿')
+        }else if (!this.addObj.issueTime) {
+          this.$message.error('璇烽�夋嫨鏍锋満瀹屾垚鏃堕棿')
+        } else if (!this.sampleList.every(m => m.standardMethodListId&&m.standardMethodListId.length>0)) {
           this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�')
-        } else {
+        } else if(this.addObj.formType&&this.addObj.formType!='鍏朵粬鎴愬搧'&&!this.addObj.issueUser){
+          this.$message.error('璇烽�夋嫨閫氱煡鑷虫牱鏈哄憳')
+        }else{
           //鏍¢獙妫�楠岄」鐨勮姹傚�煎拰瑕佹眰鎻忚堪,浠呭鎵樿姹�
           // if(this.active==1&&this.isAskOnlyRead){
           //   const isTrue = this.checkRequiredValueAndRemark(filterProductList)
@@ -1991,9 +2207,25 @@
           })
           return false;
         }
+        if(this.ruleInfo.rule==1){
+          this.addObj.rule = '涓嶈�冭檻涓嶇‘瀹氬害'
+        }else if(this.ruleInfo.rule==2){
+          if(this.ruleInfo.rule==2&&(!this.ruleInfo.num||this.ruleInfo.num<0||this.ruleInfo.num==0)){
+            this.$message({
+              type: 'error',
+              message: '璇疯緭鍏ヤ笉纭畾搴�'
+            })
+            return;
+          }
+          this.addObj.rule = '鑰冭檻涓嶇‘瀹氬害'+'-'+this.ruleInfo.num
+        }
         this.saveLoad = true
-        this.$axios.post(this.$api.insOrder.addInsOrder, {
-          str: JSON.stringify({
+        let fd = new FormData();
+        this.fileList.forEach((item,index)=>{
+            //鏂囦欢淇℃伅涓璻aw鎵嶆槸鐪熺殑鏂囦欢
+            fd.append("files",item.raw);
+        })
+        fd.append("str",JSON.stringify({
             insOrder: this.addObj,
             list: JSON.stringify(sampleList.map(a => {
               if (this.PROJECT === '瑁呭鐢电紗') {
@@ -2016,7 +2248,12 @@
               return a
             })),
             pairing: JSON.stringify(this.bsm2Val2)
-          })
+          }));
+        this.$axios.post(this.$api.insOrder.addInsOrder, fd,{
+          headers: {
+            'Content-Type': 'multipart/form-data'
+          },
+          noQs:true
         }).then(res => {
           this.saveLoad = false
           if (res.code == 201) return
@@ -2065,7 +2302,10 @@
               this.distributeData.appointed = ress.data
             })
             setTimeout(() => {
-              this.issuedDialogVisible = true;
+              // this.issuedDialogVisible = true;
+              // this.$message.success('鎻愪氦鎴愬姛')
+              this.upLoad = false
+              this.$parent.playOrder(0)
             }, 1000)
           })
         } else {
@@ -2125,9 +2365,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() {
@@ -2213,7 +2459,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 = []
@@ -2258,7 +2504,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 = []
@@ -2298,12 +2544,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 = []
@@ -2547,6 +2787,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: "妫�楠岀被鍒�"
@@ -2559,7 +2806,7 @@
       },
       selectEnumByCategoryForSampleForm() {
         this.$axios.post(this.$api.enums.selectEnumByCategory, {
-          category: "鏉ユ牱鏂瑰紡"
+          category: "璁㈠崟绫诲瀷"
         }).then(res => {
           this.formType = res.data
           if (this.formType.length > 0) {
@@ -2568,33 +2815,25 @@
         })
       },
       methodChange(val, row) {
-        if (val === null || val === '') return
+        if (val === null || val === ''||val.length ==0) 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,
+          model: (this.addObj.model?this.addObj.model:row.model) + '-' + row.modelNum+';'+row.testRequirements,
+          standardMethodListId: val.join(','),
           factory: selectTreeList.join(" - "),
         }, {
           headers: {
             'Content-Type': 'application/json'
           }
         }).then(res => {
+          this.getProductLoad = false
           res.data.forEach(a => {
             a.state = 0
           })
           row.insProduct = this.HaveJson(res.data)
-          this.getProductLoad = false
           this.productList = row.insProduct
           this.productList0 = JSON.parse(JSON.stringify(this.productList))
           this.$refs.sampleTable.setCurrentRow(row)
@@ -2603,6 +2842,8 @@
               if (a.state == 1) this.toggleSelection(a)
             })
           }, 200)
+        }).catch(e => {
+          this.getProductLoad = false
         })
         this.searchProject()
         this.searchTemList()
@@ -3193,7 +3434,7 @@
       },
       selectDepartmentEnum(){
         this.$axios.get(this.$api.department.selectDepartmentLimsEnum).then(res=>{
-          this.deaprtEnum = res.data
+          this.deaprtEnum = res.data.filter(item=>item.name === '璐ㄩ噺閮�' || item.name === '妫�娴嬩腑蹇�')
         })
       }
     }

--
Gitblit v1.9.3