From 3115fcc80036ec4bfe3a2cd1128c5fdc82a01f42 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 28 四月 2026 16:38:27 +0800
Subject: [PATCH] limsTable表格自适应高度&手动下单调整

---
 src/views/business/productOrder/components/addOrder.vue |  195 ++++++++++++++++++++++++++++++++++--------------
 1 files changed, 138 insertions(+), 57 deletions(-)

diff --git a/src/views/business/productOrder/components/addOrder.vue b/src/views/business/productOrder/components/addOrder.vue
index 14c305a..e391217 100644
--- a/src/views/business/productOrder/components/addOrder.vue
+++ b/src/views/business/productOrder/components/addOrder.vue
@@ -74,6 +74,40 @@
           </el-row>
           <el-row>
             <el-col :span="6">
+              <el-form-item label="IFS鍩�:" prop="contract">
+                <el-select v-model="addObj.contract" clearable placeholder="璇烽�夋嫨" size="small">
+                  <el-option label="ZTNS" value="ZTNS"/>
+                  <el-option label="KJNS" value="KJNS"/>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="鎵规鍙�:" prop="updateBatchNo">
+                <el-input v-model="addObj.updateBatchNo" clearable placeholder="璇疯緭鍏ユ壒娆″彿" size="small">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="闆朵欢鍙�" prop="partNo">
+                <el-input v-model="addObj.partNo" clearable placeholder="璇疯緭鍏ラ浂浠跺彿" size="small">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="闆朵欢鎻忚堪:" prop="partDesc">
+                <el-input v-model="addObj.partDesc" clearable placeholder="璇疯緭鍏ラ浂浠舵弿杩�" size="small">
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="渚涘簲鍟嗗悕绉�:" prop="supplierName">
+                <el-input v-model="addObj.supplierName" clearable placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О" size="small">
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
               <el-form-item label="鑱旂郴鏂瑰紡:" prop="phone">
                 <el-input v-model="addObj.phone" :disabled="active>1&&tabIndex!=4" clearable placeholder="閫夋嫨濮旀墭瀹㈡埛" size="small"></el-input>
               </el-form-item>
@@ -93,14 +127,15 @@
                 </el-input>
               </el-form-item>
             </el-col>
+
+          </el-row>
+          <el-row>
             <el-col :span="6">
               <el-form-item label="鏍峰搧鏁伴噺:" prop="sampleNum" style="margin-right: 0">
                 <el-input-number v-model="addObj.sampleNum" :disabled="active>1" :max="100" :min="1" :precision="0"
                                  size="small" @change="addStandardTree"></el-input-number>
               </el-form-item>
             </el-col>
-          </el-row>
-          <el-row>
             <el-col :span="6">
               <el-form-item label="鏍峰搧鐘舵��:" prop="sampleStatus">
                 <el-select v-model="addObj.sampleStatus" :disabled="active>1&&tabIndex!=4" size="small">
@@ -120,6 +155,8 @@
                 </el-select>
               </el-form-item>
             </el-col>
+          </el-row>
+          <el-row>
             <el-col :span="6">
               <el-form-item label="鎶ュ憡鍙戦�佹柟寮�:" prop="send">
                 <el-radio-group v-model="addObj.send" :disabled="active>1&&tabIndex!=4" size="mini">
@@ -128,8 +165,6 @@
                 </el-radio-group>
               </el-form-item>
             </el-col>
-          </el-row>
-          <el-row>
             <el-col :span="6">
               <el-form-item label="鏍峰搧澶勭悊鏂瑰紡:" prop="processing">
                 <el-radio-group v-model="addObj.processing" :disabled="active>1&&tabIndex!=4" size="mini" style="display: flex; flex-direction: column;">
@@ -150,6 +185,8 @@
                           size="small"></el-input>
               </el-form-item>
             </el-col>
+          </el-row>
+          <el-row>
             <el-col :span="6">
               <el-form-item label="鏄惁鐣欐牱:" prop="isLeave">
                 <el-radio-group v-model="addObj.isLeave" border :disabled="active>1&&tabIndex!=4" size="mini">
@@ -158,8 +195,6 @@
                 </el-radio-group>
               </el-form-item>
             </el-col>
-          </el-row>
-          <el-row>
             <el-col :span="6">
               <el-form-item label="濮旀墭浜�:" prop="prepareUser">
                 <el-input v-model="addObj.prepareUser" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable size="small"></el-input>
@@ -176,14 +211,14 @@
                           size="small" style="width: 100%" type="textarea"></el-input>
               </el-form-item>
             </el-col>
+          </el-row>
+          <el-row>
             <el-col :span="6">
               <el-form-item label="澶囨敞鑻辨枃:" prop="remarkEn">
                 <el-input v-model="addObj.remarkEn" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable
                           size="small" type="textarea"></el-input>
               </el-form-item>
             </el-col>
-          </el-row>
-          <el-row>
             <el-col :span="6">
               <el-form-item label="鏍峰搧鍚嶇О:" prop="sampleView">
                 <el-input v-model="addObj.sampleView" :disabled="active>1&&tabIndex!=4" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable
@@ -233,6 +268,8 @@
             <el-input v-model="specialStandardMethod" :disabled="!isSpecial" clearable size="small"></el-input>
             <el-button v-show="active==1" size="small" style="margin-left: 10px"
                        type="primary" @click="editSpecial">缂栬緫</el-button>
+            <el-button v-show="active==1" size="small" type="primary" @click="handleSplitCountNum">鎷嗗垎</el-button>
+            <el-button v-show="active==1" :disabled="sampleList.length<=1" size="small" type="danger" @click="handleDeleteSplitCountNum">鍒犻櫎鎷嗗垎</el-button>
           </div>
         </div>
         <el-table ref="sampleTable" :data="sampleList" border class="el-table sampleTable" highlight-current-row
@@ -242,18 +279,18 @@
           <el-table-column align="center" label="搴忓彿" type="index" width="65"></el-table-column>
           <el-table-column align="center" label="鏍峰搧鍚嶇О" min-width="100" prop="sample">
             <template slot-scope="scope">
-              <el-input v-model="scope.row.sample" :disabled="active>1" clearable size="small"></el-input>
+              <el-input v-model="scope.row.sample" :disabled="active>1 || scope.$index !== 0" clearable size="small"></el-input>
             </template>
           </el-table-column>
           <el-table-column align="center" label="鏍峰搧缂栧彿" min-width="100" prop="sampleCode">
             <template slot-scope="scope">
-              <el-input v-model="scope.row.sampleCode" :disabled="active>1" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚"
+              <el-input v-model="scope.row.sampleCode" :disabled="active>1 || scope.$index !== 0" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚"
                 size="small"></el-input>
             </template>
           </el-table-column>
           <el-table-column align="center" label="鏍峰搧鍨嬪彿" min-width="60" prop="model">
             <template slot-scope="scope">
-              <el-select v-model="scope.row.model" :disabled="active>1" allow-create default-first-option filterable
+              <el-select v-model="scope.row.model" :disabled="active>1 || scope.$index !== 0" allow-create default-first-option filterable
                 placeholder="鏍峰搧鍨嬪彿" size="small" style="width: 100%;" @change="handleChangeModel">
                 <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
@@ -280,7 +317,7 @@
           <el-table-column align="center" label="妫�楠屾爣鍑�" min-width="100" prop="standardMethodListId">
             <template slot-scope="scope">
               <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1"
-                :loading="methodLoad" :readonly="active>1" clearable placeholder="妫�楠屾爣鍑�"
+                :loading="methodLoad" :readonly="active>1 || scope.$index !== 0" clearable placeholder="妫�楠屾爣鍑�"
                 size="small" style="width: 100%;" @change="(value)=>methodChange(value, scope.row)" @clear="productList = []" @focus="methodFocus">
                 <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
                 </el-option>
@@ -381,12 +418,12 @@
           <el-table-column label="鍖洪棿" min-width="120" prop="section" show-overflow-tooltip></el-table-column>
           <el-table-column :filter-method="filterHandler" :filters="filters" label="瀛愬疄楠屽" min-width="130" prop="sonLaboratory"
             show-overflow-tooltip></el-table-column>
-            <el-table-column v-if="isSpecial&&active==1" label="鎿嶄綔" width="100">
-            <template slot-scope="scope">
-              <el-button v-if="!scope.row.repetitionTag" size="small" type="text" @click="addProductList(productList,scope.row,scope.$index)">鎻掑叆琛�</el-button>
-              <el-button v-if="!!scope.row.repetitionTag&&scope.row.delete" size="small" type="text" @click="deleteProductList(scope.$index,productList)">鍒犻櫎</el-button>
-            </template>
-          </el-table-column>
+<!--            <el-table-column v-if="isSpecial&&active==1" label="鎿嶄綔" width="100">-->
+<!--            <template slot-scope="scope">-->
+<!--              <el-button v-if="!scope.row.repetitionTag" size="small" type="text" @click="addProductList(productList,scope.row,scope.$index)">鎻掑叆琛�</el-button>-->
+<!--              <el-button v-if="!!scope.row.repetitionTag&&scope.row.delete" size="small" type="text" @click="deleteProductList(scope.$index,productList)">鍒犻櫎</el-button>-->
+<!--            </template>-->
+<!--          </el-table-column>-->
         </el-table>
       </div>
     </div>
@@ -394,7 +431,7 @@
       <div v-if="selectUserDia" class="body">
         <lims-table :tableData="tableData1" :column="column1"
                     :isSelection="true" :handleSelectionChange="selectMethod"
-                    @pagination="pagination1" height="400px" key="tableData1"
+                    @pagination="pagination1" :height="400" key="tableData1"
                     :page="page1" :tableLoading="tableLoading1"></lims-table>
       </div>
       <span slot="footer" class="dialog-footer">
@@ -627,6 +664,11 @@
       templates: [],
       addObj: {
         entrustCode: null,
+        contract:null,
+        updateBatchNo: null,
+        partDesc: null,
+        partNo: null,
+        supplierName: null,
         custom: null,
         company: null,
         userId: null,
@@ -662,6 +704,9 @@
         sampleViewEn: '', // 鏍峰搧鍚嶇О鑻辨枃锛堟姤鍛婂睍绀哄瓧娈碉級
       },
       addObjRules: { // 琛ㄥ崟鏍¢獙瑙勫垯
+        contract: [
+          { required: true, message: '璇烽�夋嫨IFS鍩�', trigger: 'change' }
+        ],
         orderType: [
           { required: true, message: '璇烽�夋嫨妫�楠岀被鍒�', trigger: 'change' }
         ],
@@ -861,6 +906,37 @@
     this.getInfo();
   },
   methods: {
+    // 鎷嗗垎
+    handleSplitCountNum () {
+      if(!this.sampleList || this.sampleList.length===0){
+        this.$message.error("璇峰厛閫夋嫨鏍峰搧")
+        return
+      }
+      this.sample.joinName = null
+      this.sample.joinModel = null
+      this.sample.joinNum = 1
+      // 涓ゆ潯鏁版嵁淇濇寔涓�鑷�
+      this.sample.sample = this.sampleList[0].sample
+      this.sample.model = this.sampleList[0].model
+      this.sample.unit = this.sampleList[0].unit
+      this.sample.modelNum = this.sampleList[0].modelNum
+      this.sample.standardMethodListId = this.sampleList[0].standardMethodListId
+      this.sample.insProduct = this.sampleList[0].insProduct
+      this.sample.id = this.count
+      this.sample.childSampleList = this.sampleList[0].childSampleList
+      this.sample.insulating = null
+      this.sample.sheath = null
+      this.sampleList.push(this.HaveJson(this.sample))
+      this.sampleList.forEach(item => {
+        item.quantity = 1
+      })
+      this.count++
+    },
+    //鍒犻櫎鎷嗗垎琛�
+    handleDeleteSplitCountNum(){
+      this.count--;
+      this.sampleList.pop()
+    },
     getInfo() {
       this.selectStandardTreeList()
       this.getAuthorizedPerson();
@@ -918,14 +994,14 @@
       },
       changeProductList0(){
         this.productList0.forEach(a=>{
-          let obj = this.productList.find(m => {
-            if(a.repetitionTag){
-              return m.id === a.id&&m.repetitionTag == a.repetitionTag
-            }else{
-              return m.id === a.id&&!m.repetitionTag
-            }
-          })
-
+        //   let obj = this.productList.find(m => {
+        //     if(a.repetitionTag){
+        //       return m.id === a.id&&m.repetitionTag == a.repetitionTag
+        //     }else{
+        //       return m.id === a.id&&!m.repetitionTag
+        //     }
+        //   })
+          let obj = this.productList.find(m => m.id == a.id)
           if(obj){
             a.state = obj.state
             a.section = obj.section
@@ -1652,10 +1728,10 @@
             this.$set(row, 'sectionCopy', row.section)
           }
         }
-        if (row.ask.includes('[')) {
+        if (row.ask && row.ask.includes('[')) {
           this.$set(row, 'askCopy', row.ask)
         }
-        if (row.tell.includes('[')) {
+        if (row.tell && row.tell.includes('[')) {
           this.$set(row, 'tellCopy', row.tell)
         }
         let arr = this.productList.filter(m=>m.state==1&&row.sectionCopy&&row.sectionCopy.includes(m.sectionCopy)&&m.ask&&m.sectionCopy.indexOf('[')==-1)
@@ -1926,24 +2002,35 @@
       },
       // 瑕佹眰鍊煎彉鍖栨椂
       requestChange(e, row,type) {
-        //this.currentMethod 褰撳墠鏍峰搧id
-        this.sampleList.forEach(item=>{
-          if(item.id == this.currentMethod.id){
-            item.insProduct.forEach(i=>{
-              if(i.id == row.id){
-                if(row.repetitionTag){
-                  if(row.repetitionTag==i.repetitionTag){
-                    i[type] = e
-                  }
-                }else{
-                  if(!i.repetitionTag){
-                    i[type] = e
-                  }
-                }
+        this.sampleList.map(item => {
+          if (this.sampleIds.indexOf(item.id) > -1) {
+            item.insProduct.map(m => {
+              if (m.id == row.id) {
+                m[type] = e;
               }
+              return m;
             })
           }
+          return item
         })
+        //this.currentMethod 褰撳墠鏍峰搧id
+        // this.sampleList.forEach(item=>{
+        //   if(item.id == this.currentMethod.id){
+        //     item.insProduct.forEach(i=>{
+        //       if(i.id == row.id){
+        //         if(row.repetitionTag){
+        //           if(row.repetitionTag==i.repetitionTag){
+        //             i[type] = e
+        //           }
+        //         }else{
+        //           if(!i.repetitionTag){
+        //             i[type] = e
+        //           }
+        //         }
+        //       }
+        //     })
+        //   }
+        // })
       },
       selectStandardMethods() {
         selectStandardMethodEnum().then(res => {
@@ -1958,7 +2045,12 @@
         }
       },
       selectable0(row,index) {
-        if (this.active > 1||row.repetitionTag) {
+        // if (this.active > 1||row.repetitionTag) {
+        //   return false
+        // } else {
+        //   return true
+        // }
+        if (this.active > 1) {
           return false
         } else {
           return true
@@ -1985,18 +2077,12 @@
               this.$set(p, 'sectionCopy', p.section)
             }
           }
-          if (p.ask.includes('[')) {
+          if (p.ask && p.ask.includes('[')) {
             this.$set(p, 'askCopy', p.ask)
           }
-          if (p.tell.includes('[')) {
+          if (p.tell && p.tell.includes('[')) {
             this.$set(p, 'tellCopy', p.tell)
           }
-          // if (p.manHour.includes('[')) {
-          //   this.$set(p, 'manHourCopy', p.manHour)
-          // }
-          // if (p.price.includes('[')) {
-          //   this.$set(p, 'priceCopy', p.price)
-          // }
           if (p.bsm === '1' && p.sectionCopy !== '' && p.sectionCopy !== null && p.sectionCopy !== undefined && p.state === 1) {
             if (p.sectionCopy.indexOf('[') > -1) {
               p.bsmRow = this.HaveJson(p)
@@ -2029,11 +2115,6 @@
             return item
           })
         }
-        this.productList.forEach(item => {
-          if (item.id == row.id) {
-            item.state = row.state;
-          }
-        })
         this.changeProductList0()
         this.currentMethod.insProduct = this.productList0
         this.getProNum()

--
Gitblit v1.9.3