From d7b4cbde92aa4a6f6e68ae755f1c04477ca2127d Mon Sep 17 00:00:00 2001 From: Crunchy <3114200645@qq.com> Date: 星期三, 31 七月 2024 17:57:16 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/components/do/b1-ins-order/add.vue | 114 +++++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 90 insertions(+), 24 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index f8c2091..328cd5b 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -164,7 +164,8 @@ </el-col> </el-row> </div> - <div class="search" v-show="!configShow&&!equipConfigShow&&!cableConfigShow"> + <div style="height: (100vh - 200px);"> + <div class="search" v-show="!configShow&&!equipConfigShow&&!cableConfigShow"> <el-row> <el-col class="search_thing" :span="6"> <div class="search_label">濮旀墭缂栧彿锛�</div> @@ -428,9 +429,9 @@ <el-table-column prop="proNum" label="寰呮椤规暟閲�" width="105" align="center"></el-table-column> </el-table> <el-table class="el-table" ref="productTable" :data="productList" height="380px" tooltip-effect="dark" border - @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect" + @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect" :row-key="rowKey" :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 type="selection" width="65" :selectable="selectable" v-if="active==1" :reserve-selection="true"></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"> @@ -481,10 +482,10 @@ <el-table-column prop="manHour" label="宸ユ椂绯绘暟" width="100" show-overflow-tooltip></el-table-column> --> <!-- <el-table-column prop="deviceGroup" label="璁惧缁�" width="120" 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"> + <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px" v-if="isAskOnlyRead"> <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)" + :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row,'ask')" v-if="active==1&&isAskOnlyRead"></el-input> <span v-else> <!-- <template v-if="(scope.row.ask.indexOf('D')>-1 @@ -500,7 +501,18 @@ </span> </template> </el-table-column> + <el-table-column prop="tell" label="瑕佹眰鎻忚堪" min-width="220px"> + <template slot-scope="scope"> + <el-input size="small" placeholder="瑕佹眰鎻忚堪" v-model="scope.row.tell" clearable type="textarea" + :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row,'tell')" + v-if="active==1&&isAskOnlyRead"></el-input> + <span v-else> + <template >{{ scope.row.tell }}</template> + </span> + </template> + </el-table-column> </el-table> + </div> </div> <el-dialog title="閫夋嫨鍗曚綅" :visible.sync="selectUserDia" width="70%"> <div class="body" style="height: 60vh;" v-if="selectUserDia"> @@ -611,20 +623,20 @@ <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" + <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1Dia" min-width="400px" :show-close="false" :before-close="beforeClose"> <div class="body" style="max-height: 60vh;"> <el-row v-if="bsm1"> - <el-col class="search_thing" :span="22" style="height: initial;margin: 5px 0;"> - <div class="search_label"><span class="required-span">* </span>閫夐」锛�</div> + <el-col class="search_thing" :span="24" style="height: initial;margin: 5px 0;"> + <div class="search_label" style="width: 80px;"><span class="required-span">* </span>閫夐」锛�</div> <div class="search_input"> <el-radio-group v-model="bsm1Val" @input="upBsm1"> <el-radio v-for="(a, ai) in JSON.parse(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> + <el-col class="search_thing" :span="24" style="height: initial;margin: 5px 0;"> + <div class="search_label" style="width: 80px;">瑕佹眰鍊硷細</div> <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''"> <el-radio-group v-model="bsm1Val" @input="upBsm1"> <el-radio v-for="(a, ai) in JSON.parse(bsmRow.section)" :key="ai" @@ -673,20 +685,20 @@ </div> </el-dialog> <!-- 鍏ㄩ�夌壒娈婂�煎鐞嗘--> - <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1DiaAll" width="500px" :show-close="false" + <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1DiaAll" min-width="400px" :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> + <el-col class="search_thing" :span="24" style="height: initial;margin: 5px 0;"> + <div class="search_label" style="width: 80px;"><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> + <el-col class="search_thing" :span="24" style="height: initial;margin: 5px 0;"> + <div class="search_label" style="width: 80px;">瑕佹眰鍊硷細</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" @@ -1063,7 +1075,8 @@ temperatureTestNum: '', isShowInput: false, temId: '', - sonLaboratoryList:[] + sonLaboratoryList:[], + selectiveEcho: [], // 妫�楠屼笅鍗曠殑鏃跺�欏嬀閫夋楠岄」鐩�,濡傛灉浣跨敤绛涢�夋彁浜ゆ樉绀烘楠岄」鐩负绌� 鍥炴樉鍒楄〃 } }, watch: { @@ -1107,7 +1120,7 @@ this.selectEnumByCategoryForType() this.getUserNow() this.selectStandardTreeList() - this.selectInsOrderTemplate() + // this.selectInsOrderTemplate() this.getAuthorizedPerson(); this.selectEnumByCategoryForUnit() this.selectStandardMethods() @@ -1352,6 +1365,14 @@ this.temperatureData = this.temperatureData.slice(0,-deleteNum) } }, + changeProductList0(){ + this.productList0.forEach(a=>{ + let obj = this.productList.find(m => m.id == a.id) + if(obj){ + a.state = obj.state + } + }) + }, searchFilterList () { const vtw = { inspectionItem: this.inspectionItem, // 妫�楠岄」 @@ -1361,6 +1382,7 @@ const isHaveValue = Object.values(vtw).some(item => { return item }) + this.changeProductList0() if (isHaveValue) { for(let i in vtw) { if (vtw[i]) { @@ -1369,9 +1391,19 @@ }) } } + this.$nextTick(()=>{ + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }) } else { // 娌℃湁鏌ヨ鏉′欢鏃舵覆鏌撴墍鏈夋暟鎹� this.productList = this.productList0 + this.$nextTick(()=>{ + this.productList.forEach(a => { + if (a.state == 1) this.toggleSelection(a) + }) + }) } }, getAuthorizedPerson() { @@ -1403,6 +1435,10 @@ this.addObj.code = selects.code this.addObj.companyId = selects.id this.selectUserDia = false + if(this.active==1){ + // TODO + this.selectInsOrderTemplate() + } }, containsValue(str) { if(str){ @@ -1863,6 +1899,9 @@ this.addObj.companyId = selects.departId this.addObj.production = '/' this.addObj.productionEn = '/' + if(this.active==1){ + this.selectInsOrderTemplate() + } }) }, getProNum() { @@ -2013,6 +2052,9 @@ }) this.$refs.sampleTable.doLayout() }, + rowKey (row) { + return row.id; + }, selectProduct(val) { this.productListSelected = val this.productIds = [] @@ -2046,15 +2088,35 @@ 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 === null) { + row.section = "" + } + let arr = this.productList.filter(m=>m.state==1&&row.section.includes(m.section)&&m.ask&&m.section.indexOf('[')==-1) + if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 1&&arr.length==0) { if (row.section.indexOf('[') > -1) { row.bsmRow = this.HaveJson(row) } row.bsm1 = true this.bsm1DiaList.push(row) this.bsm1DiaAll = true - } else if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 0) { + } else if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 0&&arr.length==0) { row.bsm1 = false + }else if(arr.length>0){ + try{ + row.bsmRow = this.HaveJson(row) + let section = arr[0].section + let arr0 = JSON.parse(row.section) + let arr1 = JSON.parse(row.ask) + let arr2 = JSON.parse(row.manHour) + let arr3 = JSON.parse(row.price) + let arr4 = JSON.parse(row.tell) + let index = arr0.indexOf(section) + row.section = section + row.ask = arr1[index] + row.manHour = arr2[index] + row.price = arr3[index] + row.tell = arr4[index] + } catch(e) {} } if (row.bsm === '1' && row.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length > 1 && row.state === 1&&!this.isBsm2Val2) { this.bsm2 = true @@ -2093,7 +2155,7 @@ return item }) const select = this.selectTree.split(' - ') - if (row.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && row.state === 1) { + if (row.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && row.state === 1&&this.isAskOnlyRead) { this.circulateShow = true; return } else if (row.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && row.state === 0) { @@ -2109,6 +2171,8 @@ } else if ((row.inspectionItem === '娓╁崌璇曢獙' || row.inspectionItem === '鐑惊鐜�') && row.state === 0) { this.temperatureShow = false; } + this.changeProductList0() + this.currentMethod.insProduct = this.productList0 this.getProNum() }, searchProject () { @@ -2155,7 +2219,7 @@ return 'warning-row'; }, selectInsOrderTemplate() { - this.$axios.get(this.$api.insOrder.selectInsOrderTemplate).then(res => { + this.$axios.get(this.$api.insOrder.selectInsOrderTemplate+'?company='+this.addObj.company).then(res => { if (res.code == 201) return this.templates = res.data }) @@ -2327,12 +2391,12 @@ } }, // 瑕佹眰鍊煎彉鍖栨椂 - requestChange(e, row) { + requestChange(e, row,type) { this.sampleList.map(item => { if (this.sampleIds.indexOf(item.id) > -1) { item.insProduct.map(m => { if (m.id == row.id) { - m.ask = e; + m[type] = e; } return m; }) @@ -2396,7 +2460,7 @@ return } const select = this.selectTree.split(' - ') - if (p.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && p.state === 1) { + if (p.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && p.state === 1&&this.isAskOnlyRead) { this.circulateShow = true; return } else if (p.inspectionItem === '娓╁害寰幆' && select[2] === '鍏夌紗' && p.state === 0) { @@ -2441,6 +2505,8 @@ return item }) } + this.changeProductList0() + this.currentMethod.insProduct = this.productList0 this.getProNum() this.$nextTick(() => { this.$refs.productTable.doLayout() -- Gitblit v1.9.3