From dc335441ff07f563356c9cdb3ee9ff5a073c36ab Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期三, 23 十月 2024 14:33:47 +0800 Subject: [PATCH] 修改报告预览 --- src/components/do/b1-ins-order/add.vue | 189 +++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 164 insertions(+), 25 deletions(-) diff --git a/src/components/do/b1-ins-order/add.vue b/src/components/do/b1-ins-order/add.vue index 245417d..42a7626 100644 --- a/src/components/do/b1-ins-order/add.vue +++ b/src/components/do/b1-ins-order/add.vue @@ -134,8 +134,8 @@ <div class="ins_order_add" style=" display: block; "> <div v-show="!configShow&&!equipConfigShow&&!cableConfigShow"> <el-row class="title"> - <el-col :span="6" style="padding-left: 20px;text-align: left;">濮旀墭鍗曚俊鎭� 鎬讳环锛�<span - style="color: #3A7BFA">锟{total}}</span></el-col> + <el-col :span="6" style="padding-left: 20px;text-align: left;">濮旀墭鍗曚俊鎭� 鍗曚綅鎴愭湰鎬讳环锛�<span + style="color: #3A7BFA">锟{total.toFixed(2)}}</span></el-col> <el-col :span="18" style="text-align: right;"> <el-select v-model="template" size="medium" placeholder="涓嬪崟妯℃澘" style="margin-right: 10px;" v-show="active==1" @change="selectInsOrderTemplateById"> @@ -333,7 +333,7 @@ <el-col class="search_thing" :span="6"> <div class="search_label" style="width: 175px;">鏄惁娑夊強閰嶅鏍峰搧锛�</div> <div class="search_input" style="width: calc(100% - 175px);"> - <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()"> + <el-radio-group v-model="addObj.mating" @change="$refs.sampleTable.doLayout()" :disabled="active>1"> <el-radio :label="1">鏄�</el-radio> <el-radio :label="0">鍚�</el-radio> </el-radio-group> @@ -356,10 +356,42 @@ <div class="search_input"> <el-date-picker v-model="addObj.appointed" + :disabled="active>1" type="date" placeholder="閫夋嫨鏃ユ湡" size="small" format="yyyy-MM-dd" value-format="yyyy-MM-dd"> </el-date-picker> + </div> + </el-col> + <el-col class="search_thing" :span="6"> + <div class="search_label"><span class="required-span">* </span>鏍锋満瀹屾垚鏃堕棿锛�</div> + <div class="search_input"> + <el-date-picker + v-model="addObj.issueTime" + :disabled="active>1" + type="date" + placeholder="閫夋嫨鏃ユ湡" + size="small" format="yyyy-MM-dd" value-format="yyyy-MM-dd"> + </el-date-picker> + </div> + </el-col> + <el-col class="search_thing upload" :span="4" style="align-items: flex-start;height: auto" v-if="active==1"> + <el-upload + style="margin: 8px 0 0px 50px;" + action="#" + :auto-upload="false" + accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :on-change="handleChangeUpload"> + <el-button size="small" type="primary">涓婁紶闄勪欢</el-button> + </el-upload> + </el-col> + <el-col class="search_thing" :span="8"> + <div class="search_input" style="width: 100%;margin-left: 40px;"> + <el-radio-group v-model="ruleInfo.rule" @change="$refs.sampleTable.doLayout()" :disabled="active>1"> + <el-radio :label="1">涓嶈�冭檻涓嶇‘瀹氬害</el-radio> + <el-radio :label="2">鑰冭檻涓嶇‘瀹氬害<el-input placeholder="" v-model="ruleInfo.num" style="width: 100px;margin-left: 10px;" size="mini" :disabled="active>1"> + <template slot="append">%</template> + </el-input></el-radio> + </el-radio-group> </div> </el-col> <el-col class="search_thing" :span="6" style="align-items: flex-start;margin: 8px 0;"> @@ -368,14 +400,6 @@ <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> - <el-col class="search_thing upload" :span="4" style="align-items: flex-start;margin: 8px 0 0 50px;height: auto" v-if="active==1"> - <el-upload - action="#" - :auto-upload="false" - accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :on-change="handleChangeUpload"> - <el-button size="small" type="primary">涓婁紶闄勪欢</el-button> - </el-upload> </el-col> <!-- <el-col class="search_thing" :span="6" v-if="active==1"> <div class="search_label">RTS锛�</div> @@ -443,21 +467,21 @@ @clear="methodChange(scope.row.standardMethodListId, scope.row)"></el-input> </template> </el-table-column> + <el-table-column prop="testRequirements" label="璇曢獙鏍囧噯" align="center" min-width="100"> + <template slot-scope="scope"> + <el-select v-model="scope.row.testRequirements" :disabled="scope.row.model==null||active>1" + placeholder="璇曢獙鏍囧噯" size="small" :readonly="active>1" style="width: 100%;" clearable> + <el-option v-for="item in standard" :key="item.id" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </template> + </el-table-column> <el-table-column prop="standardMethodListId" label="妫�楠屾爣鍑�" align="center" min-width="100"> <template slot-scope="scope"> <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1" placeholder="妫�楠屾爣鍑�" size="small" :loading="methodLoad" @change="(value)=>methodChange(value, scope.row)" @focus="methodFocus" :readonly="active>1" style="width: 100%;" clearable @clear="productList = []" multiple> <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id"> - </el-option> - </el-select> - </template> - </el-table-column> - <el-table-column prop="testRequirements" label="璇曢獙鏍囧噯" align="center" min-width="100"> - <template slot-scope="scope"> - <el-select v-model="scope.row.testRequirements" :disabled="scope.row.model==null||active>1" - placeholder="璇曢獙鏍囧噯" size="small" :readonly="active>1" style="width: 100%;" clearable> - <el-option v-for="item in standard" :key="item.id" :label="item.label" :value="item.value"> </el-option> </el-select> </template> @@ -571,6 +595,11 @@ :delUrl="$api.insOrderPlan.delfile" style="height: 100%;margin-top: 16px;" v-show="currentPage==1"/> </div> </div> + <p style="font-size: 12px;color: red;margin-top: 20px;margin-bottom: 20px;">鍙屾柟鎵胯:<br/> + 1銆佸鎵樻柟鎵胯鎻愪緵鐨勪俊鎭笌鏍峰搧鐨勭湡瀹炴��;<br/> + 2銆佸鎵橀�佹牱妫�楠岀粨鏋滀粎閫傜敤浜庢敹鍒扮殑鏍峰搧;<br/> + 3銆佽瘯楠岃繃绋嬪鑷寸殑鏍峰搧鎹熷潖銆侀厤浠舵崯鍧忋�佹崯鑰楋紝鏈祴璇曞満涓嶆壙鎷呰禂鍋胯矗浠�;<br/> + 4銆佸疄楠屽鎵胯鍏寮�灞曟娴嬫椿鍔紝骞舵壙璇轰繚瀹堝湪妫�娴嬫椿鍔ㄨ繃绋嬩腑鎵�鑾风煡鐨勪繚瀵嗕俊鎭��</p> <el-dialog title="閫夋嫨鍗曚綅" :visible.sync="selectUserDia" width="70%"> <div class="body" style="height: 60vh;" v-if="selectUserDia"> <ValueTable ref="ValueTable2" :url="$api.user.selectCustomPageList" :componentData="componentData2" /> @@ -967,6 +996,44 @@ <el-button type="primary" @click="spliceTemperatureTest">淇濆瓨</el-button> </span> </el-dialog> + <!-- 鍔熺巼瀹归噺--濉啓绔彛 --> + <el-dialog title="濉啓绔彛" :visible.sync="powerShow" + :close-on-click-modal="false" :close-on-press-escape="false" + width="50%"> + <el-table + :data="powerTable" + border + style="width: 100%"> + <el-table-column + fixed + prop="sample" + label="鏍峰搧" + min-width="150"> + </el-table-column> + <el-table-column + prop="model" + label="鍨嬪彿" + min-width="120"> + </el-table-column> + <el-table-column + prop="inspectionItem" + label="妫�楠岄」" + min-width="120"> + </el-table-column> + <el-table-column + prop="ask" + label="绔彛" + min-width="120"> + <template slot-scope="scope"> + <el-input-number v-model="scope.row.ask" :min="1" :max="100" label="绔彛" size="small"></el-input-number> + </template> + </el-table-column> + </el-table> + <span slot="footer" class="dialog-footer"> + <el-button @click="powerShow=false">鍙栨秷</el-button> + <el-button type="primary" @click="savePowerTest">淇濆瓨</el-button> + </span> + </el-dialog> <el-dialog title="鏂囦欢棰勮" :visible.sync="lookFileVisible" @@ -1026,6 +1093,7 @@ type: '0', code: null, appointed: null, + issueTime:null, remark: null, otcCode: null, mating: 0, @@ -1052,7 +1120,6 @@ departmentLimsId:null, departmentLims:null, partNo: null, // 闆朵欢鍙� - appointed:null, }, sample: { sampleCode: null, @@ -1238,6 +1305,12 @@ requiredAdd: [], requiredUp: [] }, + ruleInfo:{ + rule:null, + num:null, + }, + powerShow:false, + powerTable:[] } }, watch: { @@ -1318,6 +1391,14 @@ this.addObj = { ...res.data.insOrder }; + if(this.addObj.rule){ + if(this.addObj.rule=='涓嶈�冭檻涓嶇‘瀹氬害'){ + this.ruleInfo.rule = 1 + }else{ + this.ruleInfo.rule = 2 + this.ruleInfo.num = this.addObj.rule.split('-')[1] + } + } this.addObj.type = String(this.addObj.type) this.sampleList = this.HaveJson(res.data.sampleProduct) this.sampleList.forEach(m=>{ @@ -1506,6 +1587,24 @@ return } this.spliceTemperatureTest() + }, + savePowerTest(){ + if(!this.powerTable.every(m=>m.ask)) + { + this.$message.error('璇峰~鍐欏畬鏁存暟鎹�') + } + let num = 0; + let sampleList = this.HaveJson(this.sampleList) + sampleList.forEach(item=>{ + item.insProduct.forEach(m=>{ + if(m.inspectionItem.includes('鍔熺巼璇曢獙')&&m.state==1){ + m.ask = '绔彛鏁�:'+this.powerTable[num].ask + num++ + } + }) + }) + this.saveMethod(sampleList) + this.powerShow = false; }, cleanTemperatureTest () { this.temperatureTest = [] @@ -1791,6 +1890,8 @@ this.$message.error('璇疯緭鍏ユ牱鍝佸瀷鍙�') }else if (!this.addObj.appointed) { this.$message.error('璇烽�夋嫨绾﹀畾鏃堕棿') + }else if (!this.addObj.issueTime) { + this.$message.error('璇烽�夋嫨鏍锋満瀹屾垚鏃堕棿') } else if (!this.sampleList.every(m => m.standardMethodListId&&m.standardMethodListId.length>0)) { this.$message.error('璇烽�夋嫨妫�楠屾爣鍑�') } else if(this.addObj.formType&&this.addObj.formType!='鍏朵粬鎴愬搧'&&!this.addObj.issueUser){ @@ -1805,6 +1906,22 @@ // } // } let sampleList = this.HaveJson(this.sampleList) + for (let i = 0; i < sampleList.length; i++) { + if (sampleList[i].insProduct.length > 0) { + let set = new Set() + for (let j = 0; j < sampleList[i].insProduct.length; j++) { + if(sampleList[i].insProduct[j].state == 1){ + let num0 = set.size + set.add(sampleList[i].insProduct[j].inspectionItem+'-'+sampleList[i].insProduct[j].inspectionItemSubclass) + let num1 = set.size + if(num0==num1){ + this.$message.error(sampleList[i].insProduct[j].inspectionItem+'-'+sampleList[i].insProduct[j].inspectionItemSubclass+'閲嶅') + return + } + } + } + } + } let projectNum = this.totalArr.filter(a => a.state == 1).length if(projectNum==0){ this.$confirm('妫�楠岄」鐩负绌猴紝鏄惁纭鎻愪氦?', "鎻愮ず", { @@ -1815,13 +1932,22 @@ this.saveMethod(sampleList) }).catch(() => {}) }else{ - let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b=>a.ask.includes(b)) && a.state == 1) + let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b=>a.ask&&a.ask.includes(b)) && a.state == 1) if (isRTS&&this.PROJECT=='妫�娴嬩腑蹇�') { this.editTable = this.handleData(sampleList,this.containsValue, 0) this.editTable.forEach(item => { item.value = item.modelNum }) this.bsm3Dia = true; + return + } + let isPower = this.totalArr.find(a => a.inspectionItem.includes('鍔熺巼璇曢獙')&&a.state==1) + if (isPower) { + this.powerTable = this.totalArr.filter(a => a.inspectionItem.includes('鍔熺巼璇曢獙')&&a.state==1) + this.powerTable.forEach(a => { + a.ask = null + }) + this.powerShow = true; return } this.saveMethod(sampleList) @@ -1965,7 +2091,7 @@ let arr = this.editTable.filter(b => b.sampleId == item.id) for (var i=0;i<arr.length;i++){ if(a.ask){ - if(a.ask.includes(arr[i].symbolItem)){ + if(a.ask&&a.ask.includes(arr[i].symbolItem)){ let ask = calBack(a.ask, arr[i].symbolItem,arr[i].value) if (ask) { a.ask = ask @@ -2163,6 +2289,18 @@ message: '璇峰~鍐欒姹傛弿杩板悗鍐嶆彁浜�' }) return false; + } + if(this.ruleInfo.rule==1){ + this.addObj.rule = '涓嶈�冭檻涓嶇‘瀹氬害' + }else if(this.ruleInfo.rule==2){ + if(this.ruleInfo.rule==2&&(!this.ruleInfo.num||this.ruleInfo.num<0||this.ruleInfo.num==0)){ + this.$message({ + type: 'error', + message: '璇疯緭鍏ヤ笉纭畾搴�' + }) + return; + } + this.addObj.rule = '鑰冭檻涓嶇‘瀹氬害'+'-'+this.ruleInfo.num } this.saveLoad = true let fd = new FormData(); @@ -2519,7 +2657,8 @@ 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) + // console.log(row,this.productList) + let arr = this.productList.filter(m=>m.state==1&&m.bsmRow&&m.bsmRow.section==row.section&&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) @@ -2766,7 +2905,7 @@ let selectTreeList = this.selectTree.split(" - ") this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model) this.$axios.post(this.$api.standardTree.selectStandardProductList, { - model: (this.addObj.model?this.addObj.model:row.model) + '-' + row.modelNum, + model: (this.addObj.model?this.addObj.model:row.model) + '-' + row.modelNum+';'+row.testRequirements, standardMethodListId: val.join(','), factory: selectTreeList.join(" - "), }, { -- Gitblit v1.9.3