From 86180d1e80a0cc6faf147495d7e78bfeaf329214 Mon Sep 17 00:00:00 2001
From: value <z1292839451@163.com>
Date: 星期四, 13 六月 2024 18:04:01 +0800
Subject: [PATCH] 小功能修复

---
 src/components/do/b1-ins-order/cable-config.vue |  255 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 209 insertions(+), 46 deletions(-)

diff --git a/src/components/do/b1-ins-order/cable-config.vue b/src/components/do/b1-ins-order/cable-config.vue
index 652cb96..897a0b6 100644
--- a/src/components/do/b1-ins-order/cable-config.vue
+++ b/src/components/do/b1-ins-order/cable-config.vue
@@ -7,47 +7,67 @@
           <el-button size="medium" @click="outConfig">
             <span style="color: #3A7BFA;">杩� 鍥�</span>
           </el-button>
+          <el-button size="medium" type="primary" @click="save">淇� 瀛�</el-button>
         </el-col>
       </el-row>
     </div>
     <div class="search">
-      <el-radio-group v-model="currentTab" size="small" style="margin-left: 20px;">
+      <el-radio-group v-model="currentTab" size="small" style="margin-left: 20px;" @input="changeTab">
         <el-radio-button label="缁濈紭">缁� 缂�</el-radio-button>
         <el-radio-button label="鎶ゅ">鎶� 濂�</el-radio-button>
       </el-radio-group>
       <div class="search_thing" v-if="currentTab=='缁濈紭'">
         <div class="search_label">鑺暟锛�</div>
         <el-input size="small" placeholder="璇疯緭鍏�" clearable
-						v-model="vaule0"></el-input>
+						v-model="insulating.num"></el-input>
       </div>
-      <el-button size="small" type="primary"@click="openAdd" style="margin-left: 20px;margin-right: 20px;" v-if="currentTab=='缁濈紭'">
-        纭� 瀹�</el-button>
-      <div class="search_thing">
+      <div class="search_thing" v-if="currentTab=='缁濈紭'">
         <div class="search_label">妫�楠屾爣鍑嗭細</div>
-        <el-select v-model="vaule0" placeholder="璇烽�夋嫨妫�楠屾爣鍑�" size="small"
-        clearable>
-          <el-option v-for="item in standardList" :key="item.value" :label="item.label" :value="item.value">
+        <el-select v-model="insulating.standardMethodListId" placeholder="璇烽�夋嫨妫�楠屾爣鍑�" size="small"
+        @change="(value)=>methodChange(value)">
+          <el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
           </el-option>
         </el-select>
       </div>
-      <div class="search_thing" style="padding-left: 30px;">
-        <el-button size="small" type="primary"@click="openAdd">淇� 瀛�</el-button>
+      <div class="search_thing" v-if="currentTab=='鎶ゅ'">
+        <div class="search_label">妫�楠屾爣鍑嗭細</div>
+        <el-select v-model="sheath.standardMethodListId" placeholder="璇烽�夋嫨妫�楠屾爣鍑�" size="small"
+        @change="(value)=>methodChange(value)">
+          <el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
+          </el-option>
+        </el-select>
       </div>
     </div>
     <div class="table">
-      <ValueTable ref="ValueTable"
-				:url="$api.auxiliaryWorkingHours.selectAuxiliaryWorkingHours"
-				:componentData="componentData" :key="upIndex" />
+      <el-table class="el-table" ref="productTable" :data="productList" height="100%" tooltip-effect="dark" border
+        @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect"
+        :row-class-name="tableRowClassName" @select-all="handleAll">
+        <el-table-column type="selection" width="65" :selectable="selectable"></el-table-column>
+        <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140"
+          show-overflow-tooltip></el-table-column>
+        <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" show-overflow-tooltip>
+        </el-table-column>
+        <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="price" label="鍗曚环" width="100" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="section" label="鍖洪棿" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px">
+          <template slot-scope="scope">
+            <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable type="textarea"
+              :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)"
+              v-if="active==1&&isAskOnlyRead"></el-input>
+            <span v-else>{{ scope.row.ask }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
     </div>
   </div>
 </template>
 
 <script>
-import ValueTable from '../../tool/value-table.vue'
+import { Tree } from 'element-ui'
 export default {
-  components: {
-    ValueTable
-  },
   props: {
     active: {
       type: Number,
@@ -59,42 +79,167 @@
         standardList:[],
         vaule0:'',
         currentTab:'缁濈紭',
-        componentData: {
-					entity: {
-						number: null,
-						department: null,
-						laboratory: null,
-						orderBy: {
-							field: 'id',
-							order: 'desc'
-						}
-					},
-					isIndex: true,
-					showSelect: true,
-					select: true,
-					do: [],
-					tagField: {},
-					linkEvent: {
-					},
-					selectField: {
-						laboratory: {
-							select: []
-						},
-						unit: {
-							select: []
-						},
-
-					},
-					requiredAdd: [],
-					requiredUp: []
-			  },
         upIndex:0,
+        productList: [],
+        productIds: [],
+        sample: [],
+        tree: '',
+        standards: [],
+        insulating: {
+          standardMethodListId: null,
+          insProduct: [],
+          num: 1
+        },
+        sheath: {
+          standardMethodListId: null,
+          insProduct: []
+        },
+        isAskOnlyRead: false
       }
+  },
+  mounted() {
+    this.$parent.sampleIds.forEach(a => {
+      for (var i = 0; i < this.$parent.sampleList.length; i++) {
+        if (this.$parent.sampleList[i].id == a) {
+          this.sample.push(this.$parent.sampleList[i])
+          if(this.$parent.sampleList[i].insulating !== undefined && this.$parent.sampleList[i].insulating !== null){
+            this.insulating = this.$parent.sampleList[i].insulating
+          }
+          if(this.$parent.sampleList[i].sheath !== undefined && this.$parent.sampleList[i].sheath !== null){
+            this.sheath = this.$parent.sampleList[i].sheath
+          }
+          break
+        }
+      }
+    })
+    let obj = this.$parent.addObj
+    this.tree = obj.factory + ' - ' + obj.laboratory + ' - ' + obj.sampleType + ' - ' + obj.sample
+    this.selectsStandardMethodByFLSSM2()
+    this.productList = this.insulating.insProduct
+    setTimeout(() => {
+      this.productList.forEach(a => {
+        if (a.state == 1) this.toggleSelection(a)
+      })
+    }, 200)
   },
   methods: {
     outConfig() {
       this.$parent.cableConfigShow = false
     },
+    selectProduct(val) {
+      this.productIds = []
+      val.forEach(a => {
+        this.productIds.push(a.id)
+      })
+    },
+    upProductSelect(selection, row) {
+      row.state = row.state == 1 ? 0 : 1
+    },
+    handleAll(e) {
+      if (e.length > 0) {
+        this.productList.map(m => {
+          m.state = 1
+          return m
+        })
+      } else {
+        this.productList.map(m => {
+          m.state = 0
+          return m
+        })
+      }
+      this.$nextTick(() => {
+        this.$refs.productTable.doLayout()
+      })
+    },
+    tableRowClassName({
+      row,
+      rowIndex
+    }) {
+      if (row.state === 0) {
+        return 'warning-row';
+      }
+      return '';
+    },
+    selectable() {
+      if (this.active > 1) {
+        return false
+      } else {
+        return true
+      }
+    },
+    selectsStandardMethodByFLSSM2() {
+      this.standards = []
+      this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
+        tree: this.tree
+      }).then(res => {
+        this.standards = res.data.standardMethodList
+      })
+    },
+    methodChange(val) {
+      if (val === null || val === '') return
+      let standard = this.standards.find(a => a.id === val)
+      if(standard!=null && standard.code==='濮旀墭瑕佹眰'){
+        this.isAskOnlyRead = true
+      }else{
+        this.isAskOnlyRead = false
+      }
+      this.$axios.post(this.$api.standardTree.selectStandardProductList, {
+        model: this.$parent.addObj.model,
+        standardMethodListId: val,
+        factory: this.tree + ' - '
+      }, {
+        headers: {
+          'Content-Type': 'application/json'
+        }
+      }).then(res => {
+        res.data.forEach(a => {
+          a.state = 0
+        })
+        if(this.currentTab==='缁濈紭'){
+          this.insulating.insProduct = res.data
+        }else if(this.currentTab==='鎶ゅ'){
+          this.sheath.insProduct = res.data
+        }
+        this.productList = res.data
+        setTimeout(() => {
+          this.productList.forEach(a => {
+            if (a.state == 1) this.toggleSelection(a)
+          })
+        }, 200)
+      })
+    },
+    toggleSelection(row) {
+      this.$refs.productTable.toggleRowSelection(row, true);
+    },
+    save(){
+      if(this.insulating.insProduct.length === 0 && this.sheath.insProduct.length === 0){
+        this.$message.error('缂哄皯閰嶇疆鏃犳硶淇濆瓨')
+        return
+      }
+      if(this.insulating.insProduct.length !== 0){
+        if(this.insulating.num === null || this.insulating.num === '' || this.insulating.num <= 0){
+          this.$message.error('缂哄皯鑺暟鏃犳硶淇濆瓨')
+          return
+        }
+      }
+      this.sample.forEach(a=>{
+        a.insulating = this.insulating
+        a.sheath = this.sheath
+      })
+      this.$message.success('宸蹭繚瀛�')
+    },
+    changeTab(val){
+      if(val==='缁濈紭'){
+        this.productList = this.insulating.insProduct
+      }else if(val==='鎶ゅ'){
+        this.productList = this.sheath.insProduct
+      }
+      setTimeout(() => {
+        this.productList.forEach(a => {
+          if (a.state == 1) this.toggleSelection(a)
+        })
+      }, 200)
+    }
   }
 }
 </script>
@@ -146,3 +291,21 @@
 		padding: 20px;
 	}
 </style>
+<style>
+  .ins_order_config .has-gutter .el-table__cell .cell {
+    line-height: 30px;
+    background-color: #fafafa;
+  }
+
+  .ins_order_config .has-gutter .el-table__cell {
+    background-color: #fafafa !important;
+  }
+
+  .ins_order_config .el-table__row .cell {
+    font-size: 12px;
+  }
+
+  .ins_order_config .el-table .warning-row .cell {
+    color: #bababa;
+  }
+</style>

--
Gitblit v1.9.3