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