From 238de511e070c23bfd87a24f33da5c507875a259 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期二, 02 七月 2024 09:53:23 +0800 Subject: [PATCH] 正式库lucksheet 优化 --- src/components/do/b1-ins-order/add.vue | 254 +++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 218 insertions(+), 36 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index cc71aa4..43b5833 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -256,14 +256,14 @@ <el-col class="search_thing" :span="6"> <div class="search_label">宸ョ▼鍚嶇О锛�</div> <div class="search_input"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.engineering" + <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.engineering" :readonly="active>1"></el-input> </div> </el-col> <el-col class="search_thing" :span="6"> <div class="search_label">宸ョ▼鍚嶇ОEN锛�</div> <div class="search_input"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.engineeringEn" + <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.engineeringEn" :readonly="active>1"></el-input> </div> </el-col> @@ -302,19 +302,19 @@ <el-col class="search_thing" :span="6"> <div class="search_label">OTC璁㈠崟鍙凤細</div> <div class="search_input"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input> + <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.otcCode" :readonly="active>1"></el-input> </div> </el-col> <el-col class="search_thing" :span="6"> <div class="search_label">濮旀墭浜猴細</div> <div class="search_input"> - <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="addObj.prepareUser" :readonly="active>1"></el-input> + <el-input size="small" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable v-model="addObj.prepareUser" :readonly="active>1"></el-input> </div> </el-col> <el-col class="search_thing" :span="6" style="align-items: flex-start;margin: 8px 0;"> <div class="search_label">澶囨敞锛�</div> <div class="search_input"> - <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" size="small" clearable + <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 2}" size="small" clearable :placeholder="active>1 ? '' : '璇疯緭鍏�'" v-model="addObj.remark" :readonly="active>1"></el-input> </div> </el-col> @@ -331,7 +331,7 @@ <div class="search_thing"> <div class="search_label">鏍峰搧鍨嬪彿锛�</div> <div class="search_input"> - <el-select v-model="model" placeholder="璇烽�夋嫨" filterable allow-create default-first-option size="small" + <el-select v-model="model" :placeholder="active>1 ? '' : '璇疯緭鍏�'" filterable allow-create default-first-option size="small" @change="changeModel"> <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value"> </el-option> @@ -341,7 +341,7 @@ <div class="search_thing"> <div class="search_label">妫�楠屾爣鍑嗭細</div> <div class="search_input"> - <el-select v-model="standardMethodListId" placeholder="璇烽�夋嫨" size="small" @focus="methodFocus" + <el-select v-model="standardMethodListId" :placeholder="active>1 ? '' : '璇疯緭鍏�'" size="small" @focus="methodFocus" :loading="methodLoad" @change="changeStandardMethodListId"> <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> </el-option> @@ -414,12 +414,44 @@ @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect" :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll"> <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1"></el-table-column> - <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column> + <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" 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-model="inspectionItem" + @input="searchFilterList" + size="mini" + placeholder="璇疯緭鍏�"/> + </div> + </template> + </el-table-column> <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140" - show-overflow-tooltip></el-table-column> + 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-model="inspectionItemSubclass" + @input="searchFilterList" + size="mini" + placeholder="璇疯緭鍏�"/> + </div> + </template> + </el-table-column> <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip :filters="filters" :filter-method="filterHandler"></el-table-column> <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" 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-model="methodS" + @input="searchFilterList" + size="mini" + placeholder="璇疯緭鍏�"/> + </div> + </template> </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> @@ -547,6 +579,7 @@ <fiberOpticConfig :currentId="currentId" @saveFiberopticConfig="getTotal()" v-if="configShow" :active="active" /> <equipConfig :currentId="currentId" v-if="equipConfigShow" :active="active" /> <cableConfig v-if="cableConfigShow" :active="active" /> +<!-- 鍗曢�夌壒娈婂�煎鐞嗘--> <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1Dia" width="500px" :show-close="false" :before-close="beforeClose"> <div class="body" style="max-height: 60vh;"> @@ -608,6 +641,60 @@ </el-row> --> </div> </el-dialog> +<!-- 鍏ㄩ�夌壒娈婂�煎鐞嗘--> + <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1DiaAll" width="500px" :show-close="false" + :before-close="beforeClose"> + <div class="body" style="max-height: 60vh;" v-for="(item, index) in bsm1DiaList" :key="index"> + <el-row v-if="item.bsm1"> + <el-col class="search_thing" :span="22" style="height: initial;margin: 5px 0;"> + <div class="search_label"><span class="required-span">* </span>閫夐」锛�</div> + <div class="search_input"> + <el-radio-group v-model="item.bsm1Val" @input="upBsmAll(item)"> + <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.section)" :key="ai" :label="a" style="margin-bottom: 2px;margin-top: 2px;"></el-radio> + </el-radio-group> + </div> + </el-col> + <el-col class="search_thing" :span="22" style="height: initial;margin: 5px 0;"> + <div class="search_label">瑕佹眰鍊硷細</div> + <div class="search_input" v-show="item.bsm1Val!==null&&item.bsm1Val!==''"> + <el-radio-group v-model="item.bsm1Val" @input="upBsmAll(item)"> + <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.section)" :key="ai" + :label="a">{{JSON.parse(item.bsmRow.ask)[ai]}}</el-radio> + </el-radio-group> + </div> + </el-col> + </el-row> + <el-row v-if="item.bsm2"> + <el-col class="search_thing" :span="22"> + <div class="search_label" style="width: 220px;"><span class="required-span">* </span>鏍峰搧鐔旀帴閰嶅鏁伴噺锛�</div> + <div class="search_input"> + <el-input-number size="medium" v-model="item.bsm2Val" :min="1" :max="item.bsm2Val3.length" :precision="0" + style="width: 70%;" :controls="false" @change="bsm2Up"></el-input-number> + <span>MAX锛歿{item.bsm2Val3.length}}</span> + </div> + </el-col> + <el-col style="margin-top: 6px;"> + <el-col v-for="(a,ai) in item.bsm2Val2" :key="ai"> + <el-col :span="10"> + <el-select v-model="a[0]" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option v-for="(item,index) in item.sampleList" :key="index" :label="index+1" :value="index+1"> + </el-option> + </el-select> + </el-col> + <!-- <el-col :span="10" class="pairing">{{a[0]}}</el-col> --> + <el-col :span="4" class="pairing" style="border: 0;color: rgba(0, 0, 0, 0.2);">鈥斺��</el-col> + <el-col :span="10"> + <el-select v-model="a[1]" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"> + <el-option v-for="(item,index) in item.sampleList" :key="index" :label="index+1" :value="index+1"> + </el-option> + </el-select> + </el-col> + <!-- <el-col :span="10" class="pairing">{{a[1]}}</el-col> --> + </el-col> + </el-col> + </el-row> + </div> + </el-dialog> <el-dialog title="鐗规畩鍊煎~鍐�" :visible.sync="bsm3Dia" width="800px" :show-close="false"> <el-table :data="editTable" @@ -647,16 +734,39 @@ </el-row> </span> </el-dialog> + <el-dialog title="娓╁害寰幆瑕佹眰濉啓" :visible.sync="circulateShow" width="800px" :show-close="false"> + <div class="search" style="display: flex;background: transparent;"> + <div class="search_thing"> + <div class="search_label">淇濇俯鏃堕棿锛�</div> + <div class="search_input"> + <el-input v-model="circulateForm.entrustCode" size="small" placeholder=""></el-input> + </div> + </div> + <div class="search_thing"> + <div class="search_label">寰幆娆℃暟锛�</div> + <div class="search_input"> + <el-input v-model="circulateForm.entrustCode" size="small" placeholder=""></el-input> + </div> + </div> + <div class="search_thing"> + <div class="search_label">娓╁害鐐癸細</div> + <div class="search_input"> + <el-input v-model="circulateForm.entrustCode" size="small" placeholder=""></el-input> + </div> + </div> + </div> + </el-dialog> </div> </template> <script> - import ValueTable from '../../tool/value-table.vue' - import fiberOpticConfig from './fiberoptic-config.vue' - import equipConfig from './equip-config.vue' - import cableConfig from './cable-config.vue' - import Vue from 'vue' - export default { +import ValueTable from '../../tool/value-table.vue' +import fiberOpticConfig from './fiberoptic-config.vue' +import equipConfig from './equip-config.vue' +import cableConfig from './cable-config.vue' +import Vue from 'vue' + +export default { components: { ValueTable, fiberOpticConfig, @@ -761,6 +871,8 @@ addSampleDia: false, count: 1, productList: [], + productList0: [], + bsm1DiaList: [], productIds: [], getProductLoad: false, saveLoad: false, @@ -792,6 +904,7 @@ bsm1: false, bsm1Val: null, bsm1Dia: false, + bsm1DiaAll: false, equipConfigShow: false, cableConfigShow: false, bsm2: false, @@ -808,7 +921,13 @@ model: null, standardMethodListId: null, symbolList:[ - 'RTS','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'] + 'RTS','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'], + inspectionItem:null, + inspectionItemSubclass:null, + methodS:null, + circulateShow:false, + circulateForm:{}, + isBsm2Val2:false } }, watch: { @@ -883,6 +1002,28 @@ } }, methods: { + searchFilterList () { + const vtw = { + inspectionItem: this.inspectionItem, // 妫�楠岄」 + inspectionItemSubclass: this.inspectionItemSubclass, // 妫�楠岄」瀛愰」 + methodS: this.methodS, // 璇曢獙鏂规硶 + } + const isHaveValue = Object.values(vtw).some(item => { + return item + }) + if (isHaveValue) { + for(let i in vtw) { + if (vtw[i]) { + this.productList = this.productList0.filter((item) => { + return item[i] && item[i].includes(vtw[i]) + }) + } + } + } else { + // 娌℃湁鏌ヨ鏉′欢鏃舵覆鏌撴墍鏈夋暟鎹� + this.productList = this.productList0 + } + }, getAuthorizedPerson() { this.$axios.get(this.$api.user.getUserMenu).then(res => { let data = [] @@ -1237,7 +1378,9 @@ this.saveLoad = true this.$axios.post(this.$api.insOrder.upInsOrderOfState, { state, - id: this.currentId + id: this.currentId, + companyId:this.addObj.companyId, + laboratory:this.addObj.laboratory }, { headers: { 'Content-Type': 'application/json' @@ -1496,17 +1639,19 @@ this.$refs.productTable.toggleRowSelection(row, true); }, upProductSelect(selection, row) { + this.bsm1DiaList = [] row.state = row.state == 1 ? 0 : 1 if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 1) { if (row.section.indexOf('[') > -1) { - this.bsmRow = this.HaveJson(row) + row.bsmRow = this.HaveJson(row) } - this.bsm1 = true - this.bsm1Dia = true + row.bsm1 = true + this.bsm1DiaList.push(row) + this.bsm1DiaAll = true } else if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 0) { - this.bsm1 = false + row.bsm1 = false } - if (row.bsm === '1' && row.inspectionItem === '鐔旀帴鎹熻��' && this.sampleList.length > 1 && row.state === 1) { + if (row.bsm === '1' && row.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length > 1 && row.state === 1&&!this.isBsm2Val2) { this.bsm2 = true this.bsm1Dia = true if (this.bsm2Val2.length === 0) { @@ -1514,9 +1659,9 @@ this.computationalPairing(this.sampleList.length) this.bsm2Val2 = this.HaveJson(this.bsm2Val3) } - } else if (row.bsm === '1' && row.inspectionItem === '鐔旀帴鎹熻��' && row.state === 1 && this.sampleList.length > 1) { + } else if (row.bsm === '1' && row.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && row.state === 1 && this.sampleList.length > 1) { this.bsm2 = false - } else if (row.bsm === '1' && row.inspectionItem === '鐔旀帴鎹熻��' && this.sampleList.length < 2) { + } else if (row.bsm === '1' && row.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length < 2) { this.$message.error('鏍峰搧鏁伴噺涓嶈冻澶熻繘琛岄厤瀵规搷浣�') row.state = row.state == 1 ? 0 : 1 this.$refs.productTable.toggleRowSelection(row, false) @@ -1542,6 +1687,10 @@ } return item }) + if (row.inspectionItem === '娓╁害寰幆') { + this.circulateShow = true; + return + } this.getProNum() }, permute(nums) { @@ -1697,6 +1846,7 @@ row.insProduct = this.HaveJson(res.data) this.getProductLoad = false this.productList = row.insProduct + this.productList0 = JSON.parse(JSON.stringify(this.productList)) this.$refs.sampleTable.setCurrentRow(row) setTimeout(() => { this.productList.forEach(a => { @@ -1763,6 +1913,7 @@ } }, handleAll(e) { + console.log('鍏ㄩ��') if (e.length > 0) { this.productList.map(m => { m.state = 1 @@ -1775,17 +1926,19 @@ }) } this.bsmRow3 = []; + this.bsm1DiaList = [] this.productList.forEach(p => { if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 1) { if (p.section.indexOf('[') > -1) { - this.bsmRow = this.HaveJson(p) + p.bsmRow = this.HaveJson(p) } - this.bsm1 = true - this.bsm1Dia = true + p.bsm1 = true + this.bsm1DiaList.push(p) + this.bsm1DiaAll = true } else if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 0) { - this.bsm1 = false + p.bsm1 = false } - if (p.bsm === '1' && p.inspectionItem === '鐔旀帴鎹熻��' && this.sampleList.length > 1 && p.state === 1) { + if (p.bsm === '1' && p.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length > 1 && p.state === 1&&!this.isBsm2Val2) { this.bsm2 = true this.bsm1Dia = true if (this.bsm2Val2.length === 0) { @@ -1793,9 +1946,9 @@ this.computationalPairing(this.sampleList.length) this.bsm2Val2 = this.HaveJson(this.bsm2Val3) } - } else if (p.bsm === '1' && p.inspectionItem === '鐔旀帴鎹熻��' && p.state === 1 && this.sampleList.length > 1) { + } else if (p.bsm === '1' && p.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && p.state === 1 && this.sampleList.length > 1) { this.bsm2 = false - } else if (p.bsm === '1' && p.inspectionItem === '鐔旀帴鎹熻��' && this.sampleList.length < 2) { + } else if (p.bsm === '1' && p.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length < 2) { this.$message.error('鏍峰搧鏁伴噺涓嶈冻澶熻繘琛岄厤瀵规搷浣�') this.$refs.productTable.clearSelection() return @@ -1982,12 +2135,40 @@ } } }, - beforeClose(done) { - if (this.bsm1) { - if (this.bsm1Val === null || this.bsm1Val === '') { - this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') - return + upBsmAll (item) { + let sections = JSON.parse(item.bsmRow.section); + let asks = JSON.parse(item.bsmRow.ask); + let tells = JSON.parse(item.bsmRow.tell); + let manHours = JSON.parse(item.bsmRow.manHour); + let prices = JSON.parse(item.bsmRow.price); + for (var a in sections) { + if (item.bsm1Val === sections[a]) { + this.productList.forEach(p => { + if (p.id === item.bsmRow.id) { + p.section = sections[a] + p.ask = asks[a] + p.tell = tells[a] + p.manHour = manHours[a] + p.price = prices[a] + } + }) + break } + } + }, + beforeClose(done) { + // if (this.bsm1) { + // if (this.bsm1Val === null || this.bsm1Val === '') { + // this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') + // return + // } + // } + if (this.bsm1DiaList.length > 0) { + this.bsm1DiaList.forEach(item => { + if (!item.bsm1Val) { + throw this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊') + } + }) } if (this.bsm2) { if (this.bsm2Val2.length === 0) { @@ -2010,6 +2191,7 @@ return } } + this.isBsm2Val2 = true; } // if(this.bsm3){ // if(!this.bsm3Val){ -- Gitblit v1.9.3