From 1210d5c10991c9f843a1770364a30fbfd3c5a5d8 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 13 一月 2026 13:17:45 +0800
Subject: [PATCH] 1.外购下单:标签打印功能调整 2.人员:培训计划导入导出添加【培训大类】字段 3.业务管理:报检新增【物料属性】字段选择,其余页面添加【物料属性】查询条件以及数据回显 4.标准库:布局优化,左侧选择树支持横向拖拽动态调整宽度

---
 src/views/business/outsourcingFinishProduct/index.vue                  |   86 +++
 src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue      |    4 
 src/views/standard/standardLibrary/index.vue                           |  509 ++++++++++--------------
 src/views/business/inspectionReview/index.vue                          |   24 +
 src/views/business/rawMaterialInspection/index.vue                     |   73 +++
 src/views/business/reportPreparation/index.vue                         |   24 +
 src/views/business/inspectionTask/index.vue                            |   24 +
 src/views/business/materialOrder/index.vue                             |  111 ++++
 src/api/business/productOrder.js                                       |    8 
 src/views/performance/manHour/workTimeManagement.vue                   |    1 
 src/main.js                                                            |    3 
 src/views/business/outsourcingFinishProduct/components/printDialog.vue |  320 ++++++++++------
 src/views/business/productOrder/components/auxiliaryWireCore.vue       |    7 
 13 files changed, 743 insertions(+), 451 deletions(-)

diff --git a/src/api/business/productOrder.js b/src/api/business/productOrder.js
index 439a1ce..9df59d5 100644
--- a/src/api/business/productOrder.js
+++ b/src/api/business/productOrder.js
@@ -98,6 +98,14 @@
     params: query
   })
 }
+//  澶栬喘涓嬪崟鎴愬搧鏍囩鎵撳嵃淇℃伅
+export function labelOutsideOrderPrinting(query) {
+  return request({
+    url: '/insOrder/labelOutsideOrderPrinting',
+    method: 'post',
+    data: query
+  })
+}
 // 鏌ヨ鎴愬搧鏍囩鎵撳嵃淇℃伅
 export function labelOrderPrinting(query) {
   return request({
diff --git a/src/main.js b/src/main.js
index 16962eb..a688c54 100644
--- a/src/main.js
+++ b/src/main.js
@@ -65,7 +65,8 @@
 Vue.prototype.HaveJson = (val) => {
   return JSON.parse(JSON.stringify(val));
 };
-Vue.prototype.javaApi = "http://192.168.21.53:8001/lims";
+// Vue.prototype.javaApi = "http://192.168.21.53:8001/lims";
+Vue.prototype.javaApi = "http://127.0.0.1:8001";
 Vue.prototype.checkPermi = checkPermi;
 Vue.prototype.uploadHeader = {
   Authorization: "Bearer " + getToken(),
diff --git a/src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue b/src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue
index a003633..06a897f 100644
--- a/src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue
+++ b/src/views/CNAS/personnel/personnelInfo/tabs/personnelTraining.vue
@@ -313,6 +313,10 @@
       inDetailPlanTableData: [], // 骞村害璁″垝鏄庣粏琛ㄨ〃鏁版嵁
       inDetailPlanColumn: [
         {
+          label: '鍩硅澶х被',
+          prop: 'trainingCategory',
+          width: '100px',
+        },{
           label: '鍩硅鐩爣',
           prop: 'trainingObjectives',
           width: '100px',
diff --git a/src/views/business/inspectionReview/index.vue b/src/views/business/inspectionReview/index.vue
index c45085d..7911e9a 100644
--- a/src/views/business/inspectionReview/index.vue
+++ b/src/views/business/inspectionReview/index.vue
@@ -11,6 +11,13 @@
             <el-option v-for="(a, i) in typeSourceList" :key="i" :label="a.label" :value="a.value"></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="鐗╂枡灞炴��" prop="materialProp">
+          <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%">
+            <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label"
+                       :value="dict.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item>
           <el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button>
           <el-button size="mini" @click="refresh">閲嶇疆</el-button>
@@ -61,7 +68,7 @@
     onlyoffice,
     limsTable,
   },
-  dicts: ["urgency_level", "inspection_task_state"],
+  dicts: ["urgency_level", "inspection_task_state","material_prop_type"],
   computed: {
     ...mapGetters(["nickName", "userId"]),
   },
@@ -90,6 +97,21 @@
         },
         { label: "鏍峰搧鍚嶇О", prop: "sample", width: "160px" },
         {
+          label: '鐗╂枡灞炴��',
+          prop: 'materialProp',
+          formatData: (params) => {
+            if (!params) return null
+
+            for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+              const item = this.dict.type.material_prop_type[i]
+              if (item.value == params) {
+                return item.label
+              }
+            }
+            return null
+          }
+        },
+        {
           label: "涓嬪崟绫诲埆",
           prop: "typeSource",
           width: "100px",
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index ce24aa0..4ac266e 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -13,6 +13,13 @@
                          :value="a.value"></el-option>
             </el-select>
           </el-form-item>
+          <el-form-item label="鐗╂枡灞炴��" prop="materialProp">
+            <el-select clearable size="small" v-model="queryParams.materialProp" style="width: 100%">
+              <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label"
+                         :value="dict.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
           <el-form-item>
             <el-button size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button>
             <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
@@ -251,7 +258,7 @@
     viewManHourDia,
     UnPassRetestResult
   },
-  dicts: ["urgency_level", "inspection_task_state"],
+  dicts: ["urgency_level", "inspection_task_state","material_prop_type"],
   computed: {
     ...mapGetters(["nickName", "userId"]),
   },
@@ -353,6 +360,21 @@
         },
         { label: "鏍峰搧鍚嶇О", prop: "sample", width: "160px" },
         {
+          label: '鐗╂枡灞炴��',
+          prop: 'materialProp',
+          formatData: (params) => {
+            if (!params) return null
+
+            for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+              const item = this.dict.type.material_prop_type[i]
+              if (item.value == params) {
+                return item.label
+              }
+            }
+            return null
+          }
+        },
+        {
           label: "涓嬪崟绫诲埆",
           prop: "typeSource",
           width: "100px",
diff --git a/src/views/business/materialOrder/index.vue b/src/views/business/materialOrder/index.vue
index cf30a2a..f4040a3 100644
--- a/src/views/business/materialOrder/index.vue
+++ b/src/views/business/materialOrder/index.vue
@@ -23,35 +23,42 @@
               @keyup.enter.native="goSearch">
             </el-input>
           </el-form-item>
-          <el-form-item>
-            <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4"
-              :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
-              @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
-            <el-button size="mini" type="primary" @click="goSearch">鏌ヨ</el-button>
-            <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
-          </el-form-item>
           <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName"
-            v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
+                        v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
             <el-input v-model="entity.supplierName" clearable placeholder="璇疯緭鍏�" size="small"
-              @keyup.enter.native="goSearch">
+                      @keyup.enter.native="goSearch">
             </el-input>
           </el-form-item>
+          <el-form-item label="鐗╂枡灞炴��" prop="materialProp">
+            <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%">
+              <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label"
+                         :value="dict.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
           <el-form-item label="鏍峰搧鍨嬪彿" prop="sampleModel"
-            v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
+                        v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
             <el-input v-model="entity.sampleModel" clearable placeholder="璇疯緭鍏�" size="small"
-              @keyup.enter.native="goSearch">
+                      @keyup.enter.native="goSearch">
             </el-input>
           </el-form-item>
           <el-form-item label="妫�楠岀姸鎬�" prop="inspectStatus"
-            v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
+                        v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
             <el-select v-model="entity.inspectStatus" clearable size="small" @change="goSearch">
               <el-option v-for="(a, i) in inspectStatusList" :key="i" :label="a.label" :value="a.value"></el-option>
             </el-select>
           </el-form-item>
           <el-form-item label="鎶ユ鏃堕棿" prop="date" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
             <el-date-picker v-model="entity.date" end-placeholder="缁撴潫鏃ユ湡" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" @change="goSearch"
-              range-separator="鑷�" size="small" start-placeholder="寮�濮嬫棩鏈�" type="daterange" value-format="yyyy-MM-dd">
+                            range-separator="鑷�" size="small" start-placeholder="寮�濮嬫棩鏈�" type="daterange" value-format="yyyy-MM-dd">
             </el-date-picker>
+          </el-form-item>
+          <el-form-item>
+            <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4"
+              :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
+              @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
+            <el-button size="mini" type="primary" @click="goSearch">鏌ヨ</el-button>
+            <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
           </el-form-item>
         </el-form>
       </div>
@@ -212,15 +219,32 @@
   name: "MaterialOrder",
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
   components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog },
+  dicts: ['material_prop_type'],
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
     return {
+      materialProps: [],
       tableData: [],
       tableLoading: false,
       column: [
         { label: '鎵瑰彿', prop: 'updateBatchNo' },
         { label: '闆朵欢鍙�', prop: 'partNo' },
         { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
+        {
+          label: '鐗╂枡灞炴��',
+          prop: 'materialProp',
+          formatData: (params) => {
+            if (!params) return null
+
+            for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+              const item = this.dict.type.material_prop_type[i]
+              if (item.value == params) {
+                return item.label
+              }
+            }
+            return null
+          }
+        },
         {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
@@ -301,6 +325,21 @@
         { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
         { label: '妫�楠屼汉', prop: 'userName' },
         { label: '涓嬪彂鏃堕棿', prop: 'sendTime' },
+        {
+          label: '鐗╂枡灞炴��',
+          prop: 'materialProp',
+          formatData: (params) => {
+            if (!params) return null
+
+            for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+              const item = this.dict.type.material_prop_type[i]
+              if (item.value == params) {
+                return item.label
+              }
+            }
+            return null
+          }
+        },
         {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
@@ -440,6 +479,21 @@
         },
         { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
         { label: '妫�楠屼汉', prop: 'userName' },
+        {
+          label: '鐗╂枡灞炴��',
+          prop: 'materialProp',
+          formatData: (params) => {
+            if (!params) return null
+
+            for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+              const item = this.dict.type.material_prop_type[i]
+              if (item.value == params) {
+                return item.label
+              }
+            }
+            return null
+          }
+        },
         {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
@@ -627,6 +681,21 @@
         { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
         { label: '妫�楠屼汉', prop: 'userName' },
         {
+          label: '鐗╂枡灞炴��',
+          prop: 'materialProp',
+          formatData: (params) => {
+            if (!params) return null
+
+            for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+              const item = this.dict.type.material_prop_type[i]
+              if (item.value == params) {
+                return item.label
+              }
+            }
+            return null
+          }
+        },
+        {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
           prop: 'isExpire',
@@ -751,6 +820,21 @@
         { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
         { label: '妫�楠屼汉', prop: 'userName' },
         {
+          label: '鐗╂枡灞炴��',
+          prop: 'materialProp',
+          formatData: (params) => {
+            if (!params) return null
+
+            for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+              const item = this.dict.type.material_prop_type[i]
+              if (item.value == params) {
+                return item.label
+              }
+            }
+            return null
+          }
+        },
+        {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
           prop: 'isExpire',
@@ -827,6 +911,7 @@
         date: null,
         beginDeclareDate: null,
         endDeclareDate: null,
+        materialProp: null,
       },
       tabList: [
         {
diff --git a/src/views/business/outsourcingFinishProduct/components/printDialog.vue b/src/views/business/outsourcingFinishProduct/components/printDialog.vue
index 77a921f..99e0c6f 100644
--- a/src/views/business/outsourcingFinishProduct/components/printDialog.vue
+++ b/src/views/business/outsourcingFinishProduct/components/printDialog.vue
@@ -1,60 +1,67 @@
 <template>
   <div>
-    <el-dialog :visible.sync="isShow" title="鏍囩鎵撳嵃" top="5vh" width="600px" @close="$emit('closePrintDialog')">
+    <el-dialog title="鏍囩鎵撳嵃" :visible.sync="isShow" width="600px" top="5vh" @close="$emit('closePrintDialog')">
       <div style="width:100%;height: 400px;overflow-y: auto;text-align: left">
         <div class="dia_body">
-          <el-checkbox
-            v-model="checkAll"
-            :indeterminate="isIndeterminate"
-            style="margin: 10px 5px;"
-            @change="handleCheckAllChange">鍏ㄩ��</el-checkbox>
-          <el-checkbox-group v-model="checkIndexList" @change="changePrintCode()">
-            <el-card v-for="(item, i) in barcodeData" :key="i" class="box-card" style="margin-bottom: 15px; font-size: 16px !important;">
-              <el-checkbox :key="i" :label="i" style="position: relative;top:0;left:10px"><br></el-checkbox>
+          <el-checkbox style="margin: 10px 5px;" :indeterminate="isIndeterminate" v-model="checkAll"
+                       @change="handleCheckAllChange">鍏ㄩ��</el-checkbox>
+          <el-checkbox-group @change="changePrintCode()" v-model="checkIndexList">
+            <el-card class="box-card" v-for="(item, i) in barcodeData" :key="i"
+                     style="margin-bottom: 15px; font-size: 16px !important;">
+              <el-checkbox :label="i" :key="i" style="position: relative;top:0;left:10px"><br></el-checkbox>
               <div>
-                <div class="titleH1" style="text-align: center; margin-bottom: 2px;font-size: 16px">妫�娴嬩腑蹇冩牱鍝佹爣璇嗗崱</div>
-                <div style="text-align: center;">
-                  <barcode :displayValue="false" :height="34" :value="item.barcode" :width="2"></barcode>
-                </div>
-                <div style="margin-left: 20px;text-align: left">
-                  <div class="item">
-                    <span class="full-title">鏍峰搧鍚嶇О</span>:
-                    <span class="info">{{ item.sampleView }}</span>
+                <div style="text-align: center; margin-bottom: 2px;font-size: 22px;font-weight: bold;">鎴愬搧妫�娴�</div>
+                <div style="text-align: center; margin-bottom: 2px;font-size: 16px;font-weight: bold;">{{ item.partDesc
+                  }}</div>
+                <div style="display: flex; align-items: center;">
+                  <div style="flex: 0 0 45%; text-align: center;">
+                    <vueQr :text="getQrCodeText(item)" :size="160" :margin="2"></vueQr>
+                    <div style="margin-top: 5px; font-size: 14px;">
+                      <span class="print-person-label">鎵撳嵃浜�</span>
+                      <span style="margin-left: 20px; font-weight: bold;">{{ nickName }}</span>
+                    </div>
                   </div>
-                  <div class="item">
-                    <span class="full-title">鐢熶骇鍗曚綅</span>:
-                    <span class="info">{{ item.production }}</span>
-                  </div>
-                  <div class="item2">
-                    <span class="full-title">瑙勬牸鍨嬪彿</span>:
-                    <span class="info">{{ item.sampleModel }}</span>
-                  </div>
-                  <div class="item">
-                    <span class="full-title">濮旀墭鏃ユ湡</span>:
-                    <span class="info">{{ item.sendTime }}</span>
-                  </div>
-                  <div class="item">
-                    <span class="full-title">濮旀墭浜�</span>:
-                    <span class="info2">{{ item.prepareUser }}</span>
-                    <span class="full-title">妫�娴嬬紪鍙�</span>:
-                    <span class="info">{{ item.entrustCode }}</span>
-                  </div>
-                  <div class="item">
-                    <span class="full-title">鏍峰搧鏁伴噺</span>:
-                    <span class="info2">{{ item.testQuantity }}</span>
-                  </div>
-                  <div style="font-weight: bold;display: flex;align-items: center;">
-                    <span class="full-title">鏍峰搧鐘舵��</span>:
-                    <el-radio-group v-model="item.insState" v-removeAriaHidden style="margin-top: 7px;margin-left: 4px;">
-                      <el-radio :label="0" style="font-weight: bold;margin-right: 7px;">寰呮</el-radio>
-                      <el-radio :label="1" style="font-weight: bold;margin-right: 7px;">鍦ㄦ</el-radio>
-                      <el-radio :label="2" style="font-weight: bold;margin-right: 7px;">宸叉</el-radio>
-                    </el-radio-group>
-                    <span>
-                      <el-radio v-model="item.isLeave"
-                                :label="true"
-                                size="small" style="margin-left: 14px;margin-top: 3px;" @click.native.prevent="changeIsLeave(item)">鐣欐牱</el-radio>
-                    </span>
+                  <div style="flex: 1; margin-left: 10px;text-align: left">
+                    <div class="item">
+                      <span class="full-title">SN鍙�</span>
+                      <span class="info">{{ item.lotBatchNo }}</span>
+                    </div>
+                    <div class="item">
+                      <span class="full-title">缁濈紭棰滆壊</span>
+                      <span class="info">{{ item.insulationColor }}</span>
+                    </div>
+                    <div class="item2">
+                      <span class="full-title">鎶ゅ棰滆壊</span>
+                      <span class="info">{{ item.outerColor }}</span>
+                    </div>
+                    <div class="item">
+                      <span class="full-title">杞藉叿缂栧彿</span>
+                      <span class="info">{{ item.drumNo }}</span>
+                    </div>
+                    <div class="item">
+                      <span class="full-title">璧锋绫虫爣</span>
+                      <span class="info">{{ item.startMeterMark }} - {{ item.endMeterMark }}</span>
+                    </div>
+                    <div class="item">
+                      <span class="full-title">闀垮害(km)</span>
+                      <span class="info">{{ calcInbondLength(item.startMeterMark, item.endMeterMark) }}</span>
+                    </div>
+                    <div class="item">
+                      <span class="full-title">妫�娴嬩汉鍛�</span>
+                      <span class="info">{{ item.inspectorName }}</span>
+                    </div>
+                    <div class="item">
+                      <span class="full-title">妫�娴嬬粨璁�</span>
+                      <span class="info">{{ formatData(item.insState) }}</span>
+                    </div>
+                    <div class="item">
+                      <span class="full-title">鍏ュ簱鏃堕棿</span>
+                      <span class="info">{{ item.updateTime }}</span>
+                    </div>
+                    <div class="item">
+                      <span class="full-title">闆朵欢鍙�</span>
+                      <span class="info">{{ item.partNo }}</span>
+                    </div>
                   </div>
                 </div>
               </div>
@@ -69,49 +76,63 @@
         </el-row>
       </span>
     </el-dialog>
-    <div class="el-dialog-body" style="overflow-y: auto;margin-top: 0;position: fixed;top: 20px;right: 10px;z-index: 99999;">
-      <div id="printOrder" ref="printOrder" class="printOrder">
-        <el-card v-for="(item, i) in checkDataList" :key="i" class="box-card" style="font-size: 0.29cm !important;font-weight: 700;page-break-after: always;color: #000;box-shadow: none;margin: 0 !important;padding: 0 !important;">
+    <div class="el-dialog-body"
+         style="overflow-y: auto;margin-top: 0;position: fixed;top: 20px;right: 10px;z-index: 99999;width: 500px;">
+      <div id="printOrder" class="printOrder" ref="printOrder">
+        <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i"
+                 style="font-size: 0.29cm !important;font-weight: 700;page-break-after: always;color: #000;box-shadow: none;margin: 0 !important;padding: 0 !important;">
           <div>
-            <div class="titleH1" style="text-align: center;margin-bottom: 1px">妫�娴嬩腑蹇冩牱鍝佹爣璇嗗崱</div>
-            <div style="text-align: center;">
-              <barcode :displayValue="false" :height="22" :value="item.barcode" :width="1.6"></barcode>
-            </div>
-            <div style="margin-left: 12px;text-align: left">
-              <div class="item">
-                <span class="full-title4">鏍峰搧鍚嶇О:</span>
-                <span class="info4">{{ item.sampleView }}</span>
+            <div class="titleH1" style="text-align: center;margin-bottom: 1px">鎴愬搧妫�娴�</div>
+            <div class="titleH1" style="text-align: center;margin-bottom: 1px">{{ item.partDesc }}</div>
+            <div style="display: flex; align-items: center;">
+              <div style="flex: 0 0 45%; text-align: center;">
+                <vueQr :text="getQrCodeText(item)" :size="160" :margin="2"></vueQr>
+                <div style="margin-top: 5px;">
+                  <span class="print-person-label">鎵撳嵃浜�</span>
+                  <span style="margin-left: 20px; font-weight: bold;">{{ nickName }}</span>
+                </div>
               </div>
-              <div class="item">
-                <span class="full-title2">鐢熶骇鍗曚綅</span>:
-                <span class="info">{{ item.production }}</span>
-              </div>
-              <div class="item2">
-                <span class="full-title4">瑙勬牸鍨嬪彿:</span>
-                <span class="info4">{{ item.sampleModel }}</span>
-              </div>
-              <div class="item">
-                <span class="full-title2">濮旀墭鏃ユ湡</span>:
-                <span class="info">{{ item.sendTime }}</span>
-              </div>
-              <div class="item">
-                <span class="full-title2">濮旀墭浜�</span>:
-                <span class="info3">{{ item.prepareUser }}</span>
-                <span class="full-title2">妫�娴嬬紪鍙�</span>:
-                <span class="info">{{ item.entrustCode }}</span>
-              </div>
-              <div class="item">
-                <span class="full-title2">鏍峰搧鏁伴噺</span>:
-                <span class="info3">{{ item.testQuantity }}</span>
-              </div>
-              <div>
-                <span class="full-title2">鏍峰搧鐘舵��</span>:
-                <span style="white-space: nowrap;margin-left: 2px">
-                  寰呮<span v-if="item.insState!==0" class="scor"></span><span v-if="item.insState===0" class="checked">鈭�</span>
-                  鍦ㄦ<span v-if="item.insState!==1" class="scor"></span><span v-if="item.insState===1" class="checked">鈭�</span>
-                  宸叉<span v-if="item.insState!==2" class="scor"></span><span v-if="item.insState===2" class="checked">鈭�</span>
-                  鐣欐牱<span v-if="!item.isLeave" class="scor"></span><span v-if="item.isLeave" class="checked">鈭�</span>
-                </span>
+              <div style="flex: 1; margin-left: 5px;text-align: left">
+                <div class="item">
+                  <span class="full-title">SN鍙�</span>
+                  <span class="info">{{ item.lotBatchNo }}</span>
+                </div>
+                <div class="item">
+                  <span class="full-title">缁濈紭棰滆壊</span>
+                  <span class="info">{{ item.insulationColor }}</span>
+                </div>
+                <div class="item2">
+                  <span class="full-title">鎶ゅ棰滆壊</span>
+                  <span class="info">{{ item.outerColor }}</span>
+                </div>
+                <div class="item">
+                  <span class="full-title">杞藉叿缂栧彿</span>
+                  <span class="info">{{ item.drumNo }}</span>
+                </div>
+                <div class="item">
+                  <span class="full-title">璧锋绫虫爣</span>
+                  <span class="info">{{ item.startMeterMark }} - {{ item.endMeterMark }}</span>
+                </div>
+                <div class="item">
+                  <span class="full-title">闀垮害(km)</span>
+                  <span class="info">{{ calcInbondLength(item.startMeterMark, item.endMeterMark) }}</span>
+                </div>
+                <div class="item">
+                  <span class="full-title">妫�娴嬩汉鍛�</span>
+                  <span class="info">{{ item.inspectorName }}</span>
+                </div>
+                <div class="item">
+                  <span class="full-title">妫�娴嬬粨璁�</span>
+                  <span class="info">{{ formatData(item.insState) }}</span>
+                </div>
+                <div class="item">
+                  <span class="full-title">鍏ュ簱鏃堕棿</span>
+                  <span class="info">{{ item.updateTime }}</span>
+                </div>
+                <div class="item">
+                  <span class="full-title">闆朵欢鍙�</span>
+                  <span class="info">{{ item.partNo }}</span>
+                </div>
               </div>
             </div>
           </div>
@@ -123,17 +144,25 @@
 
 <script>
 import PrintJS from "print-js";
-import {labelOrderPrinting} from "@/api/business/productOrder";
+import vueQr from "vue-qr";
+import { labelOutsideOrderPrinting } from "@/api/business/productOrder";
+import { mapGetters } from "vuex";
 
 export default {
   name: "printDialog",
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
-  components: {},
+  // 2. 鍦ㄨ繖閲屾敞鍐岀粍浠�
+  components: {
+    vueQr
+  },
   props: {
     printDialog: {
       type: Boolean,
       default: () => false
     },
+  },
+  computed: {
+    ...mapGetters(["nickName"]),
   },
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
@@ -158,17 +187,17 @@
         selection.map(m => {
           ids.push(m.id)
         })
-        labelOrderPrinting({
-          ids: ids
-        }).then(res => {
+        labelOutsideOrderPrinting({ ids: ids }).then(res => {
           if (res.code === 200 && res.data.length > 0) {
             res.data.forEach(item => {
+              console.log('item---', item)
               item.sendTime = item.sendTime && item.sendTime.substring(0, 10)
               item.sampleNumber = item.qtyArrived + item.buyUnitMeas
               this.$set(item, 'barcode', item.entrustCode)
-              this.$set(item, 'isLeave', item.insState === '2')
+              this.$set(item, 'isLeave', item.labelStatus === '2')
             })
             this.barcodeData = res.data
+            console.log('barcodeData---', this.barcodeData)
           }
         })
       } catch (e) {
@@ -176,10 +205,27 @@
       }
 
     },
-    changeIsLeave(item) {
-      const index = this.barcodeData.findIndex(val => val.entrustCode === item.entrustCode)
-      if (index > -1) {
-        this.barcodeData[index].isLeave = !this.barcodeData[index].isLeave
+    calcInbondLength(startMeterMark, endMeterMark) {
+      let inboundLength = null;
+      if ((startMeterMark != null && startMeterMark !== '') && (endMeterMark != null && endMeterMark !== '')) {
+        let minus = this.$Big(endMeterMark).minus(this.$Big(startMeterMark));
+        inboundLength = Math.abs(minus)
+      }
+      return inboundLength;
+    },
+    formatData(params) {
+      if (params == 0) {
+        return '妫�楠屼腑'
+      } else if (params == 1) {
+        return '鍚堟牸'
+      } else if (params == 2) {
+        return '涓嶅悎鏍�'
+      } else if (params == 3) {
+        return '鏈笅鍗�'
+      } else if (params == 4) {
+        return '璁╂鏀捐'
+      } else {
+        return null
       }
     },
     // 鍏ㄩ�夊閫夋鍥炶皟
@@ -197,6 +243,17 @@
     },
     changeType(type) {
       type = type === '1' ? '0' : '1'
+    },
+    // 鐢熸垚浜岀淮鐮佸唴瀹�
+    getQrCodeText(item) {
+      const data = {
+        sn_no: item.lotBatchNo,
+        vehicle_no: item.drumNo,
+        qty_arrived: this.calcInbondLength(item.startMeterMark, item.endMeterMark),
+        lot_batch_no: item.lotBatchNo,
+        part_no: item.partNo,
+      };
+      return JSON.stringify(data, null, 2);
     },
     //閫夋嫨瑕佹墦鍗扮殑浜岀淮鐮�
     changePrintCode() {
@@ -238,7 +295,7 @@
           }
           @media print{
             width: 400px;
-            height: 75px;
+            height: 800px;
             margin:0;
           }`,
         onPrintDialogClose: this.erexcel = false,
@@ -261,56 +318,70 @@
 
 <style scoped>
 .item {
-  margin-bottom: 4px;
+  margin-bottom: 2px;
+  line-height: 1.2;
 }
 
 .item2 {
-  margin-bottom: 8px;
+  margin-bottom: 2px;
   vertical-align: top;
+  line-height: 1.2;
 }
 
 .full-title {
   display: inline-block;
-  width: 80px;
+  width: 70px;
   text-align-last: justify;
+  text-align: justify;
+  font-weight: bold;
 }
 
+/* For the print section which might use smaller font */
 .full-title2 {
   display: inline-block;
-  width: 50px;
+  width: 60px;
   text-align-last: justify;
+  text-align: justify;
+  font-weight: bold;
 }
 
 .full-title4 {
   display: inline-block;
-  width: 53px;
+  width: 60px;
   text-align-last: justify;
+  text-align: justify;
   vertical-align: top;
+  font-weight: bold;
 }
 
 .info {
-  margin-left: 2px;
+  margin-left: 15px;
+  font-weight: bold;
 }
 
 .info2 {
-  margin-left: 2px;
-  margin-right: 30px;
-  width: 80px;
+  margin-left: 15px;
+  margin-right: 10px;
+  width: auto;
   display: inline-block;
+  font-weight: bold;
 }
 
 .info3 {
-  margin-left: 2px;
-  margin-right: 8px;
-  width: 44px;
+  margin-left: 15px;
+  margin-right: 10px;
+  width: auto;
   display: inline-block;
+  font-weight: bold;
 }
 
 .info4 {
   display: inline-block;
-  margin-left: 2px;
+  margin-left: 15px;
   white-space: normal;
-  width: 260px;
+  width: 200px;
+  font-weight: bold;
+  vertical-align: top;
 }
 
 .checkboxInfo {
@@ -331,17 +402,26 @@
 .checked {
   margin-right: 14px;
   margin-left: 4px;
+  font-weight: bold;
 }
 
->>> .el-checkbox {
+.print-person-label {
+  display: inline-block;
+  width: 50px;
+  text-align-last: justify;
+  text-align: justify;
+  font-weight: bold;
+}
+
+>>>.el-checkbox {
   margin-right: 10px;
 }
 
->>> .el-card {
+>>>.el-card {
   border: none;
 }
 
->>> .el-card__body {
+>>>.el-card__body {
   padding: 4px 2px 6px 14px;
 }
 </style>
diff --git a/src/views/business/outsourcingFinishProduct/index.vue b/src/views/business/outsourcingFinishProduct/index.vue
index 89be8bc..5040ad1 100644
--- a/src/views/business/outsourcingFinishProduct/index.vue
+++ b/src/views/business/outsourcingFinishProduct/index.vue
@@ -23,19 +23,18 @@
                       @keyup.enter.native="goSearch">
             </el-input>
           </el-form-item>
+          <el-form-item label="鐗╂枡灞炴��" prop="materialProp">
+            <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%">
+              <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label"
+                         :value="dict.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
           <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName" >
             <el-input v-model="entity.supplierName" clearable placeholder="璇疯緭鍏�" size="small"
                       @keyup.enter.native="goSearch">
             </el-input>
           </el-form-item>
-          <el-form-item>
-            <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4"
-                       :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
-                       @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
-            <el-button size="mini" type="primary" @click="goSearch">鏌ヨ</el-button>
-            <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
-          </el-form-item>
-
           <el-form-item label="鏍峰搧鍨嬪彿" prop="sampleModel"
                         v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
             <el-input v-model="entity.sampleModel" clearable placeholder="璇疯緭鍏�" size="small"
@@ -52,6 +51,13 @@
             <el-date-picker v-model="entity.date" end-placeholder="缁撴潫鏃ユ湡" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" @change="goSearch"
                             range-separator="鑷�" size="small" start-placeholder="寮�濮嬫棩鏈�" type="daterange" value-format="yyyy-MM-dd">
             </el-date-picker>
+          </el-form-item>
+          <el-form-item>
+            <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4"
+                       :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
+                       @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
+            <el-button size="mini" type="primary" @click="goSearch">鏌ヨ</el-button>
+            <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
           </el-form-item>
         </el-form>
       </div>
@@ -176,7 +182,7 @@
 </template>
 
 <script>
-import PrintDialog from "@/views/business/materialOrderComponents/materialOrder/printDialog.vue";
+import PrintDialog from "@/views/business/outsourcingFinishProduct/components/printDialog.vue";
 import ShowInfo from "@/views/business/materialOrderComponents/materialOrder/showInfo.vue";
 import DataLookVisible from "@/views/business/materialOrderComponents/materialOrder/dataLookVisible.vue";
 import FilesLookVisible from "@/views/business/materialOrderComponents/materialOrder/filesLookVisible.vue";
@@ -197,6 +203,7 @@
 
 export default {
   name: "MaterialOrder",
+  dicts: ['material_prop_type'],
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
   components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog },
   data() {
@@ -208,6 +215,21 @@
         { label: '鎵瑰彿', prop: 'updateBatchNo' },
         { label: '闆朵欢鍙�', prop: 'partNo' },
         { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
+        {
+          label: '鐗╂枡灞炴��',
+          prop: 'materialProp',
+          formatData: (params) => {
+            if (!params) return null
+
+            for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+              const item = this.dict.type.material_prop_type[i]
+              if (item.value == params) {
+                return item.label
+              }
+            }
+            return null
+          }
+        },
         {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
@@ -288,6 +310,21 @@
         { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
         { label: '妫�楠屼汉', prop: 'userName' },
         { label: '涓嬪彂鏃堕棿', prop: 'sendTime' },
+        {
+          label: '鐗╂枡灞炴��',
+          prop: 'materialProp',
+          formatData: (params) => {
+            if (!params) return null
+
+            for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+              const item = this.dict.type.material_prop_type[i]
+              if (item.value == params) {
+                return item.label
+              }
+            }
+            return null
+          }
+        },
         {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
@@ -427,6 +464,21 @@
         },
         { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
         { label: '妫�楠屼汉', prop: 'userName' },
+        {
+          label: '鐗╂枡灞炴��',
+          prop: 'materialProp',
+          formatData: (params) => {
+            if (!params) return null
+
+            for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+              const item = this.dict.type.material_prop_type[i]
+              if (item.value == params) {
+                return item.label
+              }
+            }
+            return null
+          }
+        },
         {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
@@ -599,6 +651,21 @@
         { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
         { label: '妫�楠屼汉', prop: 'userName' },
         {
+          label: '鐗╂枡灞炴��',
+          prop: 'materialProp',
+          formatData: (params) => {
+            if (!params) return null
+
+            for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+              const item = this.dict.type.material_prop_type[i]
+              if (item.value == params) {
+                return item.label
+              }
+            }
+            return null
+          }
+        },
+        {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
           prop: 'isExpire',
@@ -658,6 +725,7 @@
         date: null,
         beginDeclareDate: null,
         endDeclareDate: null,
+        materialProp: null
       },
       tabList: [
         {
diff --git a/src/views/business/productOrder/components/auxiliaryWireCore.vue b/src/views/business/productOrder/components/auxiliaryWireCore.vue
index 5e7898e..ef3bd1f 100644
--- a/src/views/business/productOrder/components/auxiliaryWireCore.vue
+++ b/src/views/business/productOrder/components/auxiliaryWireCore.vue
@@ -16,6 +16,10 @@
               <el-option v-for="item in quantityList" :key="item.value" :label="item.label" :value="item.value"></el-option>
             </el-select>
           </el-form-item>
+          <el-form-item label="鍨嬪彿鍙傛暟" prop="modelNum">
+            <el-input v-model="auxiliaryWireCore.modelNum" placeholder="闈炲繀濉�" size="small"
+                      @input="methodChange(auxiliaryWireCore.standardMethodListId)"></el-input>
+          </el-form-item>
           <el-form-item label="妫�楠屾爣鍑�" prop="standardMethodListId">
             <el-select v-model="auxiliaryWireCore.standardMethodListId" disabled placeholder="璇烽�夋嫨妫�楠屾爣鍑�"
                        size="small"
@@ -308,7 +312,8 @@
       const cores = this.sampleSelectionList[0].cores
       const conductorMaterial = this.sampleSelectionList[0].conductorMaterial
       const conductorType = this.sampleSelectionList[0].conductorType
-      const modelNum = this.sampleSelectionList[0].modelNum
+      // const modelNum = this.sampleSelectionList[0].modelNum
+      const modelNum = this.auxiliaryWireCore.modelNum
       selectStandardProductList({
         model: this.$parent.addObj.model ? this.$parent.addObj.model : model,
         modelNum: modelNum,
diff --git a/src/views/business/rawMaterialInspection/index.vue b/src/views/business/rawMaterialInspection/index.vue
index b7dc406..ff2a13d 100644
--- a/src/views/business/rawMaterialInspection/index.vue
+++ b/src/views/business/rawMaterialInspection/index.vue
@@ -97,6 +97,11 @@
             <el-option v-for="(item,index) in orderTypeList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item class="declareObj-form-item" label="鐗╂枡灞炴�э細" prop="materialProp">
+          <el-select v-model="declareBatchObj.materialProp" clearable size="small">
+            <el-option v-for="(item,index) in materialPropList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-row>
@@ -157,6 +162,11 @@
         <el-form-item class="declareObj-form-item" label="閿�鍞鍗曞垎绫伙細" prop="orderType">
           <el-select v-model="declareObj.orderType" clearable size="small">
             <el-option v-for="(item,index) in orderTypeList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item class="declareObj-form-item" label="鐗╂枡灞炴�э細" prop="materialProp">
+          <el-select v-model="declareObj.materialProp" clearable size="small">
+            <el-option v-for="(item,index) in materialPropList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
           </el-select>
         </el-form-item>
       </el-form>
@@ -264,9 +274,20 @@
         </el-table>
       </div>
       <span slot="footer" class="dialog-footer">
-    <el-button @click="resetOrderSplitData()" :disabled="confirmSplitOrderLoading">鍙� 娑�</el-button>
-    <el-button type="primary" @click="confirmSplitOrder()" :loading="confirmSplitOrderLoading">纭� 瀹�</el-button>
-  </span>
+        <el-button @click="resetOrderSplitData()" :disabled="confirmSplitOrderLoading">鍙� 娑�</el-button>
+        <el-button type="primary" @click="beforeConfirmSplitOrder()" :loading="confirmSplitOrderLoading">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="閫夋嫨鐗╂枡灞炴��"
+      :visible.sync="materialPropVisible"
+      width="15%">
+      <el-select placeholder="璇烽�夋嫨鐗╂枡灞炴��" v-model="declareObj.materialProp" clearable size="small">
+        <el-option v-for="(item,index) in materialPropList" :value="item.dictValue" :label="item.dictLabel" :key="index"></el-option>
+      </el-select>
+      <span slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="confirmSplitOrder">纭� 瀹�</el-button>
+      </span>
     </el-dialog>
   </div>
 </template>
@@ -301,12 +322,17 @@
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
     return {
+      materialPropVisible:false,
       declareBatchObj:{
-        orderType:''
+        orderType:'',
+        materialProp:''
       },
       declareObjBatchRules:{
         orderType: [
           { required: true, message: '璇烽�夋嫨閿�鍞鍗曞垎绫�', trigger: 'change' }
+        ],
+        materialProp: [
+          { required: true, message: '璇烽�夋嫨鐗╂枡灞炴��', trigger: 'change' }
         ],
       },
       confirmSplitOrderLoading: false,
@@ -580,6 +606,7 @@
         buyUnitMeas: '', // 鍗曚綅
         isExpire: '', // 鍗曚綅
         orderType: null, // 閿�鍞鍗曞垎绫�
+        materialProp: null, // 鐗╂枡灞炴��
       },
       componentData: { // 琛ㄦ牸鏁版嵁
         updateBatchNo: null,
@@ -629,6 +656,9 @@
         orderType: [
           { required: true, message: '璇烽�夋嫨閿�鍞鍗曞垎绫�', trigger: 'change' }
         ],
+        materialProp: [
+          { required: true, message: '璇烽�夋嫨鐗╂枡灞炴��', trigger: 'change' }
+        ],
       },
       tabList: [
         {
@@ -664,11 +694,13 @@
       outLoading: false,
       upLoading: false,
       orderTypeList: [],
+      materialPropList: [],
     }
   },
   mounted() {
     this.refreshTable()
     this.getOrderTypeList()
+    this.getMaterialPropList()
   },
   // 鏂规硶闆嗗悎
   methods: {
@@ -676,6 +708,16 @@
       getDicts('inspection_type').then(res=>{
         if(res.code === 200){
           this.orderTypeList = res.data
+        }
+      }).catch(error=>{
+        console.error(error)
+      })
+    },
+    //鑾峰彇鐗╂枡灞炴�у瓧鍏搁」
+    getMaterialPropList(){
+      getDicts('material_prop_type').then(res=>{
+        if(res.code === 200){
+          this.materialPropList = res.data
         }
       }).catch(error=>{
         console.error(error)
@@ -691,16 +733,31 @@
         this.refreshTable()
       })
     },
+    //纭鎷嗗垎璁㈠崟鍓嶏紝閫夋嫨璁㈠崟鐨勭墿鏂欏睘鎬�
+    beforeConfirmSplitOrder(){
+      console.log(this.declareObj.materialProp)
+      if(!this.declareObj.materialProp){
+        this.materialPropVisible = true
+      }else{
+        this.confirmSplitOrder()
+      }
+    },
     confirmSplitOrder(){
       if(this.orderSplitDetailData.length===0){
         this.$message.error('璇峰厛瀵煎叆鎷嗗垎鏁版嵁')
         return
       }
+      if(!this.declareObj.materialProp){
+        this.$message.warning("璇烽�夋嫨鐗╂枡灞炴��")
+        return
+      }
+      this.materialPropVisible = false
       this.confirmSplitOrderLoading = true
       let requestData = {
         ifsId: this.declareObj.id,
         splitDetailList: this.orderSplitDetailData,
-        pushToMes: this.pushToMes
+        pushToMes: this.pushToMes,
+        materialProp: this.declareObj.materialProp
       }
       confirmSplitOrder(requestData).then(res=>{
         if(res.code===200 && res.data){
@@ -945,7 +1002,8 @@
           this.declareDialogSVisible = true
           inspectionReport({
             ids: ids,
-            orderType: this.declareBatchObj.orderType
+            orderType: this.declareBatchObj.orderType,
+            materialProp: this.declareBatchObj.materialProp
           }).then(res => {
             if (res.code === 200) {
               this.declareDialogSVisible = false
@@ -1004,7 +1062,8 @@
             inspectionReportOne({
               id: this.declareObj.id,
               updateBatchNo: this.declareObj.updateBatchNo,
-              orderType: this.declareObj.orderType
+              orderType: this.declareObj.orderType,
+              materialProp: this.declareObj.materialProp
             }).then(res => {
               if (res.code === 200) {
                 this.declareDialogVisible = false
diff --git a/src/views/business/reportPreparation/index.vue b/src/views/business/reportPreparation/index.vue
index 43fd45e..0046fc0 100644
--- a/src/views/business/reportPreparation/index.vue
+++ b/src/views/business/reportPreparation/index.vue
@@ -16,6 +16,13 @@
             <el-option v-for="(a, i) in typeSourceList" :key="i" :label="a.label" :value="a.value"></el-option>
           </el-select>
         </el-form-item>
+        <el-form-item label="鐗╂枡灞炴��" prop="materialProp">
+          <el-select clearable size="small" v-model="entity.materialProp" style="width: 100%">
+            <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label"
+                       :value="dict.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="妫�楠岀被鍒�" prop="orderType">
           <el-select v-model="entity.orderType" clearable size="small" @change="refreshTable()">
             <el-option v-for="(a, i) in orderTypeList" :key="i" :label="a.label" :value="a.value"></el-option>
@@ -213,6 +220,7 @@
 export default {
   name: 'ReportPreparation',
   components: { limsTable, onlyoffice },
+  dicts: ['material_prop_type'],
   data() {
     return {
       entity: {
@@ -220,6 +228,7 @@
         code: null,
         typeSource: null,
         orderType: null,
+        materialProp: null
       },
       page: {
         current: 1,
@@ -363,6 +372,21 @@
           },
         },
         {
+          label: '鐗╂枡灞炴��',
+          prop: 'materialProp',
+          formatData: (params) => {
+            if (!params) return null
+
+            for (let i = 0; i < this.dict.type.material_prop_type.length; i++) {
+              const item = this.dict.type.material_prop_type[i]
+              if (item.value == params) {
+                return item.label
+              }
+            }
+            return null
+          }
+        },
+        {
           label: "妫�楠岀被鍨�",
           prop: "orderType",
           width: "100px",
diff --git a/src/views/performance/manHour/workTimeManagement.vue b/src/views/performance/manHour/workTimeManagement.vue
index f709c4f..0bc2dab 100644
--- a/src/views/performance/manHour/workTimeManagement.vue
+++ b/src/views/performance/manHour/workTimeManagement.vue
@@ -681,6 +681,7 @@
           this.formData.approvedWorkingHour = "";
           this.formData.nonproductiveTime = "";
           this.formData.auxiliaryProject = "";
+          this.addVisible = false;
           this.refreshTable("page");
           // this.collectWorkingHours();
         });
diff --git a/src/views/standard/standardLibrary/index.vue b/src/views/standard/standardLibrary/index.vue
index d9855a5..448fd21 100644
--- a/src/views/standard/standardLibrary/index.vue
+++ b/src/views/standard/standardLibrary/index.vue
@@ -1,27 +1,28 @@
 <template>
-  <div class="standard">
-    <div class="left">
-      <el-row>
-        <el-col :span="20">
-          <el-input v-model="search" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" size="small" style="margin-bottom: 5px"
-            suffix-icon="el-icon-search" @blur="searchFilter" @clear="searchFilter"></el-input>
-        </el-col>
-        <el-col v-if="checkPermi(['standard:standardLibrary:add'])" :span="4"
-          style="text-align: center; line-height: 30px">
-          <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="addDia = true"></el-button>
-        </el-col>
-      </el-row>
-      <el-tree ref="tree" v-loading="treeLoad" :allow-drop="allowDrop" :data="list"
-        :default-expanded-keys="expandedKeys" :draggable="true" :filter-node-method="filterNode"
-        :props="{ children: 'children', label: 'label' }" highlight-current node-key="label" style="
-          height: calc(100% - 30px);
-          overflow-y: scroll;
-          scrollbar-width: none;
-        " @node-click="handleNodeClick"
-               @node-drop="handleDrop">
-        <div slot-scope="{ node, data }" class="custom-tree-node">
-          <el-row style="width: 100%">
-            <el-col :class="{ sort: node.level > 3 }" :span="19" :title="data.label" style="text-align: left">
+  <div class="app-container">
+    <el-row :gutter="20">
+      <splitpanes :horizontal="this.$store.getters.device === 'mobile'" class="default-theme">
+        <!--閮ㄩ棬鏁版嵁-->
+        <pane size="12">
+          <el-col>
+            <div class="head-container addButton">
+              <el-input v-model="search" clearable placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�" size="small" style="margin-bottom: 5px"
+                        suffix-icon="el-icon-search" @keydown.enter.native="searchFilter" @blur="searchFilter" @clear="searchFilter"></el-input>
+              <el-button circle icon="el-icon-plus" size="mini" type="primary" @click="addDia = true"></el-button>
+            </div>
+            <div class="head-container">
+              <el-tree ref="tree" v-loading="treeLoad" :allow-drop="allowDrop" :data="list"
+                       :default-expanded-keys="expandedKeys" :draggable="true" :filter-node-method="filterNode"
+                       :props="{ children: 'children', label: 'label' }" highlight-current node-key="label"
+                       style="
+                        height: calc(100vh - 173px);
+                        overflow-y: scroll;
+                        scrollbar-width: none;"
+                       @node-click="handleNodeClick"
+                       @node-drop="handleDrop">
+                <div slot-scope="{ node, data }" class="custom-tree-node">
+                  <el-row style="width: 100%">
+                    <el-col :class="{ sort: node.level > 3 }" :span="19" :title="data.label" style="text-align: left">
               <span>
                 <i :class="`node_i ${data.children != undefined
                   ? data.code === '[1]'
@@ -31,162 +32,169 @@
                   }`"></i>
                 {{ data.label }}
               </span>
-            </el-col>
-            <el-col v-if="
+                    </el-col>
+                    <el-col v-if="
               checkPermi(['standard:standardLibrary:delStandardTree']) &&
               (node.data.children === null ||
                 node.data.children === undefined)
             " :span="2" style="text-align: right">
-              <el-button size="mini" type="text" @click.stop="editTreeName(node.data)">
-                <i class="el-icon-edit"></i>
-              </el-button>
-            </el-col>
-            <el-col v-if="
+                      <el-button size="mini" type="text" @click.stop="editTreeName(node.data)">
+                        <i class="el-icon-edit"></i>
+                      </el-button>
+                    </el-col>
+                    <el-col v-if="
               checkPermi(['standard:standardLibrary:delStandardTree']) &&
               (node.data.children === null ||
                 node.data.children === undefined)
             " :span="2" style="text-align: right">
-              <el-button size="mini" type="text" @click.stop="remove(node, data)">
-                <i class="el-icon-delete"></i>
-              </el-button>
-            </el-col>
-          </el-row>
-        </div>
-      </el-tree>
-    </div>
-    <div class="right">
-      <el-row class="title" style="width: 100%">
-        <el-col :span="20" style="font-size: 14px; color: #999">{{
-          selectTree
-        }}</el-col>
-        <el-col :span="4">
-          <el-button v-if="isShowCopy" size="small" style="position: absolute; right: 20px; top: 1px" type="primary"
-            @click="openCopyDia">鎵归噺澶嶅埗</el-button>
-        </el-col>
-      </el-row>
-      <el-row v-loading="tableLoad" class="standard_table">
-        <el-table ref="standard" :data="standardList" class="el-table" header-row-class-name="header-class" height="220"
-                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
-          highlight-current-row style="width: 100%; height: 220px !important" tooltip-effect="dark"
-          @row-click="rowClick">
-          <el-table-column label="鏍囧噯缂栧彿" prop="code" show-overflow-tooltip width="200">
-            <template slot-scope="scope">
+                      <el-button size="mini" type="text" @click.stop="remove(node, data)">
+                        <i class="el-icon-delete"></i>
+                      </el-button>
+                    </el-col>
+                  </el-row>
+                </div>
+              </el-tree>
+            </div>
+          </el-col>
+        </pane>
+        <!--鐢ㄦ埛鏁版嵁-->
+        <pane size="88">
+          <div class="search_form">
+            <div style="height:37px">
+              <p style="font-size: 14px; color: #999;margin-left: 10px">{{ selectTree }}</p>
+            </div>
+            <div class="options_button">
+              <el-button v-if="isShowCopy" size="small" style="position: absolute; right: 20px; top: 1px" type="primary"
+                         @click="openCopyDia">鎵归噺澶嶅埗</el-button>
+            </div>
+          </div>
+          <el-col>
+            <el-row v-loading="tableLoad" class="standard_table">
+              <el-table ref="standard" :data="standardList" class="el-table" header-row-class-name="header-class" height="220"
+                        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
+                        highlight-current-row style="width: 100%; height: 220px !important" tooltip-effect="dark"
+                        @row-click="rowClick">
+                <el-table-column label="鏍囧噯缂栧彿" prop="code" show-overflow-tooltip width="200">
+                  <template slot-scope="scope">
               <span style="color: red; font-size: 14px">{{
-                scope.row["code"]
-              }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="鏍囧噯鍚嶇О" prop="name" show-overflow-tooltip></el-table-column>
-          <el-table-column label="澶囨敞" prop="remark" show-overflow-tooltip></el-table-column>
-        </el-table>
-      </el-row>
-      <el-row v-loading="tableLoad2" class="product_table">
-        <el-table id="templateParamTable" ref="productTable" v-loading="productTableLoading" :data="productList"
-                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
-          :fit="true" :row-class-name="tableRowClassName" class="productTable"
-          header-row-class-name="header-class" height="100%" row-key="id" stripe style="width: 100%"
-          tooltip-effect="dark" @select="upProductSelect" @selection-change="handleSelectionChange"
-          @select-all="handleAll">
-          <el-table-column type="selection" width="50"> </el-table-column>
-          <el-table-column label="浜у搧" min-width="100" prop="sample" show-overflow-tooltip></el-table-column>
-          <el-table-column label="鍨嬪彿" min-width="100" prop="model" show-overflow-tooltip></el-table-column>
-          <el-table-column label="妫�楠岄」鍒嗙被" min-width="140" prop="inspectionItemClass"
-            show-overflow-tooltip></el-table-column>
-          <el-table-column label="妫�楠岄」" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column>
-          <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass"
-            show-overflow-tooltip></el-table-column>
-          <el-table-column label="瀛愬疄楠屽" prop="sonLaboratory" show-overflow-tooltip width="130"></el-table-column>
-          <el-table-column label="瑕佹眰鍊�" min-width="200px" prop="ask">
-            <template slot-scope="scope">
-              <el-input v-if="
+                  scope.row["code"]
+                }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="鏍囧噯鍚嶇О" prop="name" show-overflow-tooltip></el-table-column>
+                <el-table-column label="澶囨敞" prop="remark" show-overflow-tooltip></el-table-column>
+              </el-table>
+            </el-row>
+            <el-row v-loading="tableLoad2" class="product_table">
+              <el-table id="templateParamTable" ref="productTable" v-loading="productTableLoading" :data="productList"
+                        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
+                        :fit="true" :row-class-name="tableRowClassName" class="productTable"
+                        header-row-class-name="header-class" height="100%" row-key="id" stripe style="width: 100%;height:calc(100% - 220px)"
+                        tooltip-effect="dark" @select="upProductSelect" @selection-change="handleSelectionChange"
+                        @select-all="handleAll">
+                <el-table-column type="selection" width="50"> </el-table-column>
+                <el-table-column label="浜у搧" min-width="100" prop="sample" show-overflow-tooltip></el-table-column>
+                <el-table-column label="鍨嬪彿" min-width="100" prop="model" show-overflow-tooltip></el-table-column>
+                <el-table-column label="妫�楠岄」鍒嗙被" min-width="140" prop="inspectionItemClass"
+                                 show-overflow-tooltip></el-table-column>
+                <el-table-column label="妫�楠岄」" min-width="140" prop="inspectionItem" show-overflow-tooltip></el-table-column>
+                <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass"
+                                 show-overflow-tooltip></el-table-column>
+                <el-table-column label="瀛愬疄楠屽" prop="sonLaboratory" show-overflow-tooltip width="130"></el-table-column>
+                <el-table-column label="瑕佹眰鍊�" min-width="200px" prop="ask">
+                  <template slot-scope="scope">
+                    <el-input v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鍊�" size="small"
-                type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input>
-              <span v-else>{{ scope.row.ask }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="瑕佹眰鎻忚堪" min-width="220px" prop="tell">
-            <template slot-scope="scope">
-              <el-input v-if="
+                              type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input>
+                    <span v-else>{{ scope.row.ask }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="瑕佹眰鎻忚堪" min-width="220px" prop="tell">
+                  <template slot-scope="scope">
+                    <el-input v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鎻忚堪"
-                size="small" type="textarea" @change="(value) => upStandardProductListOfTell(value, scope.row.id)
+                              size="small" type="textarea" @change="(value) => upStandardProductListOfTell(value, scope.row.id)
                   "></el-input>
-              <span v-else>{{ scope.row.ask }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="璇曢獙鏂规硶" prop="method" width="200">
-            <template slot-scope="scope">
-              <el-select v-if="
+                    <span v-else>{{ scope.row.ask }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="璇曢獙鏂规硶" prop="method" width="200">
+                  <template slot-scope="scope">
+                    <el-select v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.methodS" clearable placeholder="璇曢獙鏂规硶" size="small" @change="(value) => upStandardProductListOfMethodS(value, scope.row.id)
                 ">
-                <el-option v-for="(a, i) in scope.row.method &&
+                      <el-option v-for="(a, i) in scope.row.method &&
                   JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option>
-              </el-select>
-              <span v-else>{{ scope.row.methodS }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip>
-            <template slot-scope="scope">
-              <el-select v-if="
+                    </el-select>
+                    <span v-else>{{ scope.row.methodS }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip>
+                  <template slot-scope="scope">
+                    <el-select v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.radius" clearable placeholder="鏉′欢" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id)
                 ">
-                <el-option v-for="(a, i) in scope.row.radiusList &&
+                      <el-option v-for="(a, i) in scope.row.radiusList &&
                   JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option>
-              </el-select>
-              <span v-else>{{ scope.row.radius }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="璁¢噺鍗曚綅" prop="unit" show-overflow-tooltip width="100"></el-table-column>
-          <el-table-column label="鍗曚环(鍏�)" prop="price" width="120">
-            <template slot-scope="scope">
-              <el-input v-if="
+                    </el-select>
+                    <span v-else>{{ scope.row.radius }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="璁¢噺鍗曚綅" prop="unit" show-overflow-tooltip width="100"></el-table-column>
+                <el-table-column label="鍗曚环(鍏�)" prop="price" width="120">
+                  <template slot-scope="scope">
+                    <el-input v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.price" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfPrice(value, scope.row.id)
                 ">
-              </el-input>
-              <span v-else>{{ scope.row.price }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="宸ユ椂绯绘暟" prop="manHour" width="120">
-            <template slot-scope="scope">
-              <el-input v-if="
+                    </el-input>
+                    <span v-else>{{ scope.row.price }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="宸ユ椂绯绘暟" prop="manHour" width="120">
+                  <template slot-scope="scope">
+                    <el-input v-if="
                 checkPermi(['standard:standardLibrary:upStandardProduct'])
               " v-model="scope.row.manHour" placeholder="鍗曚环(鍏�)" size="small" @change="(value) => upStandardProductListOfManHour(value, scope.row.id)
                 ">
-              </el-input>
-              <span v-else>{{ scope.row.manHour }}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="宸ユ椂鍒嗙粍" prop="manHourGroup" show-overflow-tooltip width="100"></el-table-column>
-          <el-table-column label="妯℃澘" prop="templateId" width="200">
-            <template slot-scope="scope">
-              <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
+                    </el-input>
+                    <span v-else>{{ scope.row.manHour }}</span>
+                  </template>
+                </el-table-column>
+                <el-table-column label="宸ユ椂鍒嗙粍" prop="manHourGroup" show-overflow-tooltip width="100"></el-table-column>
+                <el-table-column label="妯℃澘" prop="templateId" width="200">
+                  <template slot-scope="scope">
+                    <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
                 " filterable size="small" @change="(value) =>
                   upStandardProductListOfTemplate(value, scope.row.id)
                   ">
-                <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option>
-              </el-select>
-            </template>
-          </el-table-column>
-          <el-table-column label="鍖洪棿" prop="section" show-overflow-tooltip width="120"></el-table-column>
-          <el-table-column label="鎿嶄綔" prop="section" width="160">
-            <template slot-scope="scope">
-              <el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
+                      <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option>
+                    </el-select>
+                  </template>
+                </el-table-column>
+                <el-table-column label="鍖洪棿" prop="section" show-overflow-tooltip width="120"></el-table-column>
+                <el-table-column label="鎿嶄綔" prop="section" width="160">
+                  <template slot-scope="scope">
+                    <el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
                 ">鍖洪棿璁剧疆</el-button>
-              <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
+                    <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
                 " @click="bindSupplierDensitySecond(scope.row)">缁戝畾鍘傚</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-        <!-- <el-pagination :current-page="currentPage" :page-size="300" :total="total" layout="total"
-          style="position: absolute; right: 16px; bottom: 1px" @current-change="handleCurrentChange">
-        </el-pagination> -->
-        <p style="text-align: right;margin-right: 20px;color: #333;">鍏眥{ total }}鏉�</p>
-      </el-row>
-    </div>
+                  </template>
+                </el-table-column>
+              </el-table>
+              <!-- <el-pagination :current-page="currentPage" :page-size="300" :total="total" layout="total"
+                style="position: absolute; right: 16px; bottom: 1px" @current-change="handleCurrentChange">
+              </el-pagination> -->
+              <p style="text-align: right;margin-right: 20px;color: #333;">鍏眥{ total }}鏉�</p>
+            </el-row>
+          </el-col>
+        </pane>
+      </splitpanes>
+    </el-row>
 
     <el-dialog :visible.sync="addDia" title="鍒嗙被娣诲姞" width="400px">
       <div class="body">
@@ -196,7 +204,7 @@
           </el-col>
           <el-col :offset="1" :span="16">
             <el-input v-model="addOb.model" clearable placeholder="璇疯緭鍏ュ瀷鍙�" size="small"
-              @keyup.enter.native="addStandardTree"></el-input>
+                      @keyup.enter.native="addStandardTree"></el-input>
           </el-col>
         </el-row>
       </div>
@@ -213,7 +221,7 @@
           </el-col>
           <el-col :offset="1" :span="16">
             <el-input v-model="addOb.model" clearable placeholder="璇疯緭鍏ュ瀷鍙�" size="small"
-              @keyup.enter.native="updateStandardTree"></el-input>
+                      @keyup.enter.native="updateStandardTree"></el-input>
           </el-col>
         </el-row>
       </div>
@@ -246,7 +254,7 @@
           <el-table-column align="center" label="瑕佹眰鎻忚堪">
             <template slot-scope="scope">
               <el-input v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 2 }" clearable placeholder="瑕佹眰鎻忚堪"
-                size="small" type="textarea"></el-input>
+                        size="small" type="textarea"></el-input>
             </template>
           </el-table-column>
           <el-table-column align="center" label="瀵间綋鏉愯川">
@@ -272,7 +280,7 @@
           <el-table-column align="center" label="鎿嶄綔" width="70">
             <template slot-scope="scope">
               <el-button circle icon="el-icon-minus" size="mini" type="danger"
-                @click="sectionList.splice(scope.$index, 1)"></el-button>
+                         @click="sectionList.splice(scope.$index, 1)"></el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -284,11 +292,11 @@
       </span>
     </el-dialog>
     <bindSupplierDensityDialogAsk v-if="bindSupplierDensityDialog"
-      :bindSupplierDensityDialog="bindSupplierDensityDialog" :currentRow="currentSupplierDensityRow"
-      @closeBindPartDialog="closeBindSupplierDensityDialog">
+                                  :bindSupplierDensityDialog="bindSupplierDensityDialog" :currentRow="currentSupplierDensityRow"
+                                  @closeBindPartDialog="closeBindSupplierDensityDialog">
     </bindSupplierDensityDialogAsk>
     <BatchCopy v-if="batchCopyDia" ref="BatchCopy" :selectTree1="selectTree" :standardId="standardId"
-      @refreshList="refreshList"></BatchCopy>
+               @refreshList="refreshList"></BatchCopy>
   </div>
 </template>
 
@@ -316,12 +324,17 @@
 } from "@/api/standard/standardLibrary";
 import bindSupplierDensityDialogAsk from "./components/bindSupplierDensityDialogAsk.vue";
 import BatchCopy from "./components/BatchCopy.vue";
+import { Splitpanes, Pane } from "splitpanes";
+import "splitpanes/dist/splitpanes.css";
+
 export default {
   name: 'StandardLibrary',
   components: {
     BatchCopy,
     bindSupplierDensityDialogAsk,
     draggable,
+    Splitpanes,
+    Pane
   },
   dicts: ["sys_factory", "sys_sub_lab", "sys_samp_type"],
   data() {
@@ -502,9 +515,10 @@
       if (!value) {銆�銆�銆�銆�//濡傛灉鏁版嵁涓虹┖锛屽垯杩斿洖true,鏄剧ず鎵�鏈夌殑鏁版嵁椤�
         return true
       }
+      return data.label.indexOf(value) !== -1;
       // 鏌ヨ鍒楄〃鏄惁鏈夊尮閰嶆暟鎹紝灏嗗�煎皬鍐欙紝鍖归厤鑻辨枃鏁版嵁
-      let val = value.toLowerCase()
-      return this.chooseNode(val, data, node) // 璋冪敤杩囨护浜屽眰鏂规硶
+      // let val = value.toLowerCase()
+      // return this.chooseNode(val, data, node) // 璋冪敤杩囨护浜屽眰鏂规硶
     },
     // 杩囨护鐖惰妭鐐� / 瀛愯妭鐐� (濡傛灉杈撳叆鐨勫弬鏁版槸鐖惰妭鐐逛笖鑳藉尮閰嶏紝鍒欒繑鍥炶鑺傜偣浠ュ強鍏朵笅鐨勬墍鏈夊瓙鑺傜偣锛涘鏋滃弬鏁版槸瀛愯妭鐐癸紝鍒欒繑鍥炶鑺傜偣鐨勭埗鑺傜偣銆俷ame鏄腑鏂囧瓧绗︼紝enName鏄嫳鏂囧瓧绗�.
     chooseNode (value, data, node) {
@@ -700,10 +714,10 @@
             .children.find((a) => a.label == this.addOb.sampleType)
             .children.find((a) => a.label == this.addOb.sample)
             .children.push({
-              code: "[5]",
-              label: this.addOb.model,
-              value: this.addOb.model,
-            });
+            code: "[5]",
+            label: this.addOb.model,
+            value: this.addOb.model,
+          });
           this.addLoad = false;
         })
         .catch((e) => {
@@ -1207,25 +1221,52 @@
   },
 };
 </script>
-<style scoped>
-.standard {
-  padding-top: 10px;
+
+<style scoped lang="scss">
+.search_form {
   display: flex;
-  height: calc(100vh - 90px);
+  justify-content: space-between;
+
+  .options_button {
+    margin-top: 3px;
+  }
 }
 
-.left {
-  width: 330px;
-  height: calc(100% - 40px - 10px);
-  background-color: white;
-  padding: 15px;
+.avatar-uploader ::v-deep .el-upload {
+  border: 1px dashed #666666;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
 }
 
+.avatar-uploader ::v-deep .el-upload:hover {
+  border-color: #409EFF;
+}
+
+.avatar-uploader-icon {
+  font-size: 20px;
+  color: #8c939d;
+  width: 90px;
+  height: 90px;
+  line-height: 90px;
+  text-align: center;
+}
+
+.avatar {
+  width: 90px;
+  height: 90px;
+  display: block;
+}
+
+.addButton {
+  display: flex;
+  align-items: flex-start;
+}
 .custom-tree-node {
   width: 100%;
   line-height: 32px;
 }
-
 .custom-tree-node .el-icon-delete {
   color: #3a7bfa;
   opacity: 0;
@@ -1250,28 +1291,9 @@
   color: orange;
   font-size: 18px;
 }
-
-.right {
-  margin-left: 5px;
-  width: calc(100% - 350px);
-  height: calc(100% - 40px);
-}
-
-.right .title {
-  height: 34px;
-  line-height: 34px;
-  padding: 0 10px;
-  background-color: white;
-}
-
-.standard_table {
-  border-top: 1px solid #ebeef5;
-  background-color: white;
-}
-
 .product_table {
   border-top: 1px solid #ebeef5;
-  height: calc(100% - 235px);
+  height: calc(100vh - 398px);
   margin-top: 5px;
   background-color: white;
   user-select: none;
@@ -1279,114 +1301,5 @@
 
 .product_table .el-table {
   height: calc(100% - 35px) !important;
-}
-
-.sort {
-  width: 80% !important;
-  overflow: hidden;
-}
-
->>>.el-table__body-wrapper {
-  height: calc(100% - 46px) !important;
-}
-
->>>.header-class {
-  height: 40px !important;
-}
-
->>>.header-class th.el-table__cell>.cell {
-  line-height: 20px !important;
-  padding-top: 0 !important;
-  padding-bottom: 0 !important;
-}
-
->>>.el-table__row {
-  height: 35px !important;
-}
-
-.search {
-  border-bottom: 1px solid #ebeef5;
-  margin-bottom: 16px;
-  display: flex;
-  align-items: center;
-  box-sizing: border-box;
-  padding-bottom: 10px;
-}
-
-.search-item {
-  display: flex;
-  align-items: center;
-  flex-wrap: wrap;
-}
-
-.search-item .el-row {
-  display: flex;
-  align-items: center;
-}
-
-.search-item .el-col {
-  margin-left: 0;
-}
-
-.more-edit .dialog-footer {
-  position: absolute;
-  top: 15px;
-  right: 70px;
-}
-
->>>.is-disabled .el-textarea__inner {
-  background: rgba(0, 0, 0, 0.05) !important;
-}
-</style>
-<style scoped>
-.standard .el-tree-node__content {
-  height: 32px;
-  font-size: 14px;
-  border-radius: 2px;
-}
-
-.standard .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
-  color: #3a7bfa;
-}
-
-.standard .has-gutter .el-table__cell .cell {
-  line-height: 34px;
-  background-color: #f8f8f8;
-}
-
-.standard .has-gutter .el-table__cell {
-  background-color: #fafafa !important;
-}
-
-.standard .standard_table .el-table__row .cell {
-  font-size: 14px;
-}
-
-.standard .el-table .warning-row .cell {
-  color: #bababa;
-}
-
-.standard .el-table-filter__list {
-  max-height: 400px;
-  overflow-y: auto;
-}
-
-.standard .el-upload {
-  width: 100%;
-}
-
-.standard .el-upload-dragger {
-  width: 100%;
-}
-
-.standard .handleBtn.is-disabled .el-upload:focus {
-  color: #c0c4cc !important;
-}
-
-.standard .avatar-uploader .el-upload {
-  height: 80px;
-  display: flex;
-  align-items: center;
-  justify-content: center;
 }
 </style>

--
Gitblit v1.9.3