From 6b994d09bd7cff484174d3d11355c2e456ce6ac0 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期五, 11 四月 2025 14:03:01 +0800
Subject: [PATCH] 配置线芯修改

---
 src/views/business/productOrder/components/cable-config.vue |  372 ++++++++++++++++++-----------------------------------
 1 files changed, 127 insertions(+), 245 deletions(-)

diff --git a/src/views/business/productOrder/components/cable-config.vue b/src/views/business/productOrder/components/cable-config.vue
index 093c8d7..36fb994 100644
--- a/src/views/business/productOrder/components/cable-config.vue
+++ b/src/views/business/productOrder/components/cable-config.vue
@@ -1,68 +1,46 @@
 <template>
-  <div class="ins_order_config">
-    <div>
-      <el-row class="title">
-        <el-col :span="6" style="padding-left: 20px;text-align: left;">鐢电紗閰嶇疆</el-col>
-        <el-col :span="18" style="text-align: right;">
-          <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;" @input="changeTab">
-        <el-radio-button label="缁濈紭">缁� 缂�</el-radio-button>
-<!--        <el-radio-button label="鎶ゅ">鎶� 濂�</el-radio-button>-->
-      </el-radio-group>
-      <div v-if="currentTab=='缁濈紭'" class="search_thing">
-        <div class="search_label">鑺暟锛�</div>
-        <el-select v-model="insulating.num" allow-create
-                   clearable
-                   default-first-option
-                   filterable
-                   multiple
-                   size="small">
-          <el-option v-for="item in quantityList" :key="item.value" :label="item.label" :value="item.value"></el-option>
-        </el-select>
+  <div>
+    <div class="search_form">
+      <div v-if="currentTab == '缁濈紭'" style="display: flex">
+        <el-radio-group v-model="currentTab" size="small" style="margin-right: 20px;" @input="changeTab">
+          <el-radio-button label="缁濈紭">缁� 缂�</el-radio-button>
+        </el-radio-group>
+        <el-form :model="insulating" ref="entity" size="small" :inline="true">
+          <el-form-item label="鑺暟" prop="num">
+            <el-select v-model="insulating.num" allow-create clearable default-first-option filterable multiple
+              size="small">
+              <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="standardMethodListId">
+            <el-select v-model="insulating.standardMethodListId" disabled placeholder="璇烽�夋嫨妫�楠屾爣鍑�" size="small"
+              @change="(value) => methodChange(value)" multiple>
+              <el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-form>
       </div>
-      <div v-if="currentTab=='缁濈紭'" class="search_thing">
-        <div class="search_label">妫�楠屾爣鍑嗭細</div>
-        <el-select v-model="insulating.standardMethodListId" disabled 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>
+        <el-button size="small" @click="outConfig">杩� 鍥�</el-button>
+        <el-button size="small" type="primary" @click="save">淇� 瀛�</el-button>
       </div>
-<!--      <div class="search_thing" v-if="currentTab=='鎶ゅ'">-->
-<!--        <div class="search_label">妫�楠屾爣鍑嗭細</div>-->
-<!--        <el-select v-model="sheath.standardMethodListId" placeholder="璇烽�夋嫨妫�楠屾爣鍑�" size="small"-->
-<!--                   disabled-->
-<!--        @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">
-      <el-table ref="productTable" :data="productList" :row-class-name="tableRowClassName"
-                border class="el-table" height="100%"
-        style="margin-bottom: 10px;" tooltip-effect="dark" @select="upProductSelect"
-        @selection-change="selectProduct" @select-all="handleAll">
+      <el-table ref="productTable" :data="productList" :row-class-name="tableRowClassName" border class="el-table"
+        :height="'calc(100vh - 200px)'" tooltip-effect="dark" @select="upProductSelect"
+        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" @selection-change="selectProduct"
+        @select-all="handleAll">
         <el-table-column :selectable="selectable" type="selection" width="65"></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="inspectionItemClass"
+          show-overflow-tooltip></el-table-column>
         <el-table-column label="妫�楠岄」" min-width="140" prop="inspectionItem" show-overflow-tooltip>
           <template slot="header" slot-scope="scope">
             <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
               <span>妫�楠岄」</span>
-              <el-input
-                v-if="active==1"
-                v-model="inspectionItem"
-                placeholder="璇疯緭鍏�"
-                size="mini"
-                @input="searchFilterList"/>
+              <el-input v-if="active == 1" v-model="inspectionItem" placeholder="璇疯緭鍏�" size="mini"
+                @input="searchFilterList" />
             </div>
           </template>
         </el-table-column>
@@ -70,54 +48,47 @@
           <template slot="header" slot-scope="scope">
             <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
               <span>妫�楠岄」瀛愰」</span>
-              <el-input
-                v-if="active==1"
-                v-model="inspectionItemSubclass"
-                placeholder="璇疯緭鍏�"
-                size="mini"
-                @input="searchFilterList"/>
+              <el-input v-if="active == 1" v-model="inspectionItemSubclass" placeholder="璇疯緭鍏�" size="mini"
+                @input="searchFilterList" />
             </div>
           </template>
         </el-table-column>
         <el-table-column label="瑕佹眰鎻忚堪" min-width="220px" prop="tell">
           <template slot-scope="scope">
-            <el-input v-if="active==1&&(isAskOnlyRead || isSpecial)" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鎻忚堪"
-                      size="small" type="textarea"></el-input>
+            <el-input v-if="active == 1 && (isAskOnlyRead || isSpecial)" v-model="scope.row.tell"
+              :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鎻忚堪" size="small"
+              type="textarea"></el-input>
             <span v-else>
-                <template >{{ scope.row.tell }}</template>
-              </span>
+              <template>{{ scope.row.tell }}</template>
+            </span>
           </template>
         </el-table-column>
         <el-table-column label="瑕佹眰鍊�" min-width="220px" prop="ask">
           <template slot-scope="scope">
-            <el-input v-if="active==1&&(isAskOnlyRead || isSpecial)" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鍊�"
-                      size="small" type="textarea"></el-input>
+            <el-input v-if="active == 1 && (isAskOnlyRead || isSpecial)" v-model="scope.row.ask"
+              :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鍊�" size="small"
+              type="textarea"></el-input>
             <span v-else>{{ scope.row.ask }}</span>
           </template>
         </el-table-column>
         <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip>
           <template slot-scope="scope">
-            <el-input v-if="active==1&&(isAskOnlyRead || isSpecial)&&!scope.row.inspectionItem.includes('楂樻俯鍘嬪姏璇曢獙')" v-model="scope.row.radius" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鎻忚堪"
-                      size="small" type="textarea">
+            <el-input v-if="active == 1 && (isAskOnlyRead || isSpecial) && !scope.row.inspectionItem.includes('楂樻俯鍘嬪姏璇曢獙')"
+              v-model="scope.row.radius" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鎻忚堪"
+              size="small" type="textarea">
             </el-input>
-            <el-select v-if="scope.row.inspectionItem.includes('楂樻俯鍘嬪姏璇曢獙') && active == 1" v-model="scope.row.radius" clearable
-                       placeholder="鏉′欢"
-                       size="small">
-              <el-option v-for="(a,i) in JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option>
+            <el-select v-if="scope.row.inspectionItem.includes('楂樻俯鍘嬪姏璇曢獙') && active == 1" v-model="scope.row.radius"
+              clearable placeholder="鏉′欢" size="small">
+              <el-option v-for="(a, i) in JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option>
             </el-select>
-            <span v-if="active != 1">{{scope.row.radius}}</span>
+            <span v-if="active != 1">{{ scope.row.radius }}</span>
           </template>
         </el-table-column>
         <el-table-column label="璇曢獙鏂规硶" min-width="120" prop="methodS" show-overflow-tooltip>
           <template slot="header" slot-scope="scope">
             <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
               <span>璇曢獙鏂规硶</span>
-              <el-input
-                v-if="active==1"
-                v-model="methodS"
-                placeholder="璇疯緭鍏�"
-                size="mini"
-                @input="searchFilterList"/>
+              <el-input v-if="active == 1" v-model="methodS" placeholder="璇疯緭鍏�" size="mini" @input="searchFilterList" />
             </div>
           </template>
         </el-table-column>
@@ -125,15 +96,14 @@
         <el-table-column label="鍗曚环" prop="price" show-overflow-tooltip width="100"></el-table-column>
         <el-table-column label="鍖洪棿" min-width="120" prop="section" show-overflow-tooltip></el-table-column>
         <el-table-column label="瀛愬疄楠屽" min-width="130" prop="sonLaboratory" 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"
-          fixed="right"
-          label="鎿嶄綔"
-          width="100">
+        <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" fixed="right" label="鎿嶄綔" width="100">
           <template slot-scope="scope">
-            <el-button type="text" size="small" @click="addProductList(productList,scope.row,scope.$index)" v-if="!scope.row.repetitionTag">鎻掑叆琛�</el-button>
-            <el-button type="text" size="small" v-if="!!scope.row.repetitionTag&&scope.row.delete" @click="deleteProductList(scope.$index,productList)">鍒犻櫎</el-button>
+            <el-button type="text" size="small" @click="addProductList(productList, scope.row, scope.$index)"
+              v-if="!scope.row.repetitionTag">鎻掑叆琛�</el-button>
+            <el-button type="text" size="small" v-if="!!scope.row.repetitionTag && scope.row.delete"
+              @click="deleteProductList(scope.$index, productList)">鍒犻櫎</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -142,12 +112,13 @@
 </template>
 
 <script>
-import { Tree } from 'element-ui'
+import { selectsStandardMethodByFLSSM, selectStandardProductList } from "@/api/business/rawMaterialOrder";
+
 export default {
   props: {
     active: {
-      type: Number,
-      default: () => 0
+      type: String,
+      default: () => '0'
     },
     sampleSelectionList: {
       type: Array,
@@ -159,44 +130,37 @@
     },
   },
   data(vm) {
-      return {
-        standardList:[],
-        vaule0:'',
-        currentTab:'缁濈紭',
-        upIndex:0,
-        productList: [],
-        productIds: [],
-        sample: [],
-        tree: '',
-        standards: [],
-        insulating: {
-          standardMethodListId: null,
-          insProduct: [],
-          num: []
-        },
-        // sheath: {
-        //   standardMethodListId: null,
-        //   insProduct: []
-        // },
-        isAskOnlyRead: false,
-        inspectionItem:null,
-        inspectionItemSubclass:null,
-        methodS:null,
-        filters: [],
-        quantityList: [],
-      }
+    return {
+      standardList: [],
+      vaule0: '',
+      currentTab: '缁濈紭',
+      upIndex: 0,
+      productList: [],
+      productIds: [],
+      sample: [],
+      tree: '',
+      standards: [],
+      insulating: {
+        standardMethodListId: [],
+        insProduct: [],
+        num: []
+      },
+      isAskOnlyRead: false,
+      inspectionItem: null,
+      inspectionItemSubclass: null,
+      methodS: null,
+      filters: [],
+      quantityList: [],
+    }
   },
   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){
+          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
         }
       }
@@ -205,7 +169,7 @@
   },
   methods: {
     // 妫�楠岄」鍒楄〃绛涢��
-    searchFilterList () {
+    searchFilterList() {
       const vtw = {
         inspectionItem: this.inspectionItem, // 妫�楠岄」
         inspectionItemSubclass: this.inspectionItemSubclass, // 妫�楠岄」瀛愰」
@@ -215,7 +179,7 @@
         return item
       })
       if (isHaveValue) {
-        for(let i in vtw) {
+        for (let i in vtw) {
           if (vtw[i]) {
             this.productList = this.productList0.filter((item) => {
               return item[i] && item[i].includes(vtw[i])
@@ -226,28 +190,6 @@
         // 娌℃湁鏌ヨ鏉′欢鏃舵覆鏌撴墍鏈夋暟鎹�
         this.productList = this.productList0
       }
-    },
-    // 瑕佹眰鍊煎彉鍖栨椂
-    requestChange(e, row,type) {
-      this.sampleList.map(item => {
-        if (this.sampleIds.indexOf(item.id) > -1) {
-          item.insProduct.map(i => {
-            if(i.id == row.id){
-              if(row.repetitionTag){
-                if(row.repetitionTag==i.repetitionTag){
-                  i[type] = e
-                }
-              }else{
-                if(!i.repetitionTag){
-                  i[type] = e
-                }
-              }
-            }
-            return i
-          })
-        }
-        return item
-      })
     },
     outConfig() {
       this.$parent.cableConfigShow = false
@@ -277,10 +219,7 @@
         this.$refs.productTable.doLayout()
       })
     },
-    tableRowClassName({
-      row,
-      rowIndex
-    }) {
+    tableRowClassName({ row, rowIndex }) {
       if (row.state === 0) {
         return '';
       }
@@ -295,7 +234,7 @@
     },
     selectsStandardMethodByFLSSM2() {
       this.standards = []
-      this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
+      selectsStandardMethodByFLSSM({
         tree: this.$parent.selectTree
       }).then(res => {
         try {
@@ -303,7 +242,7 @@
             let arr = this.selectTree.split('-')
             let arr0 = arr.slice(0, arr.length - 1)
             let selectTree = arr0.join('-').substring(0, arr0.join('-').length - 1)
-            this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
+            selectsStandardMethodByFLSSM({
               tree: selectTree
             }).then(ress => {
               this.standards = ress.data.standardMethodList
@@ -311,7 +250,7 @@
           } else {
             this.standards = res.data.standardMethodList
           }
-        } catch (e) {}
+        } catch (e) { }
       })
       this.insulating.standardMethodListId = this.sampleSelectionList[0].standardMethodListId
       // 鏌ヨ妫�娴嬫爣鍑嗕笅鎷夋閫夐」
@@ -327,27 +266,27 @@
       }
     },
     methodChange(val) {
-      if (val === null || val === '') return
+      if (!val || val.length < 1) return
       let standard = this.standards.find(a => a.id === val)
-      if(standard!=null && standard.code==='鎶�鏈姹�'){
+      if (standard != null && standard.code === '鎶�鏈姹�') {
         this.isAskOnlyRead = true
-      }else{
+      } else {
         this.isAskOnlyRead = false
       }
       let selectTreeList = this.$parent.selectTree.split(" - ")
-      this.$parent.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.$parent.addObj.model)
+      this.$parent.addObj.model && (selectTreeList[selectTreeList.length - 1] = this.$parent.addObj.model)
       const model = this.sampleSelectionList[0].model
       const modelNum = this.sampleSelectionList[0].modelNum
       const cores = this.sampleSelectionList[0].cores
       const conductorMaterial = this.sampleSelectionList[0].conductorMaterial
       const conductorType = this.sampleSelectionList[0].conductorType
-      this.$axios.post(this.$api.standardTree.selectStandardProductList, {
-        model: this.$parent.addObj.model?this.$parent.addObj.model:model,
+      selectStandardProductList({
+        model: this.$parent.addObj.model ? this.$parent.addObj.model : model,
         modelNum: modelNum,
         cores: cores,
         conductorMaterial: conductorMaterial,
         conductorType: conductorType,
-        standardMethodListId: val,
+        standardMethodListIds: val,
         factory: selectTreeList.join(" - "),
         isCableTag: '1',
       }, {
@@ -358,30 +297,23 @@
         res.data.forEach(a => {
           a.state = 0
         })
-        // this.insulating.insProduct = res.data
-        // this.sheath.insProduct = res.data
         this.productList = res.data
       })
     },
     toggleSelection(row) {
       this.$refs.productTable.toggleRowSelection(row, true);
     },
-    save(){
-      // if(this.insulating.insProduct.length === 0 && this.sheath.insProduct.length === 0){
-      //   this.$message.error('缂哄皯閰嶇疆鏃犳硶淇濆瓨')
-      //   return
-      // }
-      this.insulating.insProduct = this.productList
-      if(this.insulating.insProduct.length !== 0){
-        if(this.insulating.num.length === 0){
+    save() {
+      this.insulating.insProduct = this.HaveJson(this.productList)
+      if (this.insulating.insProduct.length !== 0) {
+        if (this.insulating.num.length === 0) {
           this.$message.error('缂哄皯鑺暟鏃犳硶淇濆瓨')
           return
         }
       }
-      // this.sample.forEach(a=>{
-      //   a.insulating = this.insulating
-      //   a.sheath = this.sheath
-      // })
+      this.insulating.insProduct.forEach(a => {
+        delete a.id
+      })
       if (this.currentTab === '缁濈紭') {
         this.sample.forEach(a => {
           a.insulating = this.insulating
@@ -390,8 +322,8 @@
       this.$emit('goBackAdd')
       this.$message.success('宸蹭繚瀛�')
     },
-    changeTab(val){
-      if(val==='缁濈紭'){
+    changeTab(val) {
+      if (val === '缁濈紭') {
         this.productList = this.insulating.insProduct
       }
       setTimeout(() => {
@@ -404,92 +336,42 @@
       const property = column['property'];
       return row[property] === value;
     },
-    addProductList(productList,row,index){
-      let list = productList.filter(m=>{
-        if(m.id==row.id){
+    addProductList(productList, row, index) {
+      let list = productList.filter(m => {
+        if (m.id == row.id) {
           m.delete = false
         }
-        return m.id==row.id
+        return m.id == row.id
       })
       let num = list.length
       let obj = this.HaveJson(row)
       obj.repetitionTag = num
       obj.delete = true
       obj.state = 0
-      productList.splice(index+num,0,obj)
+      productList.splice(index + num, 0, obj)
     },
-    deleteProductList(index,list){
-      if(list[index-1]&&list[index-1].repetitionTag){
-        list[index-1].delete=true
+    deleteProductList(index, list) {
+      if (list[index - 1] && list[index - 1].repetitionTag) {
+        list[index - 1].delete = true
       }
-      list.splice(index,1)
+      list.splice(index, 1)
     },
   }
 }
 </script>
 
 <style scoped>
-.ins_order_config {
-    width: 100%;
-    height: 100%;
-    overflow-y: auto;
-    overflow-x: hidden;
-  }
+.search_form {
+  display: flex;
+  justify-content: space-between;
+}
 
-  .ins_order_config::-webkit-scrollbar {
-    width: 0;
-  }
+.search_input {
+  display: flex;
+  justify-content: space-between;
+}
 
-  .title {
-    height: 60px;
-    line-height: 60px;
-  }
-
-  .search {
-		background-color: #fff;
-		height: 80px;
-		display: flex;
-		align-items: center;
-	}
-
-	.search_thing {
-		width: 300px;
-		display: flex;
-		align-items: center;
-	}
-
-	.search_label {
-		width: 100px;
-		font-size: 14px;
-		text-align: right;
-	}
-
-	.search_input {
-		width: calc(100% - 70px);
-	}
-  .table {
-		margin-top: 10px;
-		background-color: #fff;
-		width: calc(100% - 40px);
-		height: calc(100% - 60px - 80px - 26px - 24px);
-		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: #3A7BFA;
-  }
+>>>.warning-row {
+  color: #1890FF;
+}
 </style>

--
Gitblit v1.9.3