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