From 54b1d5908bc6173160a3db6288a27c0944afaba9 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期二, 31 十二月 2024 13:25:44 +0800 Subject: [PATCH] 无源器件检验开发 --- src/components/do/b1-inspect-order-plan/Inspection.vue | 542 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 443 insertions(+), 99 deletions(-) diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index 636d99e..54e89e4 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -259,18 +259,30 @@ <el-row class="title"> <el-col :span="12" style="padding-left: 20px;text-align: left;" :class="{noShow:noBack}">妫�楠屽崟璇︽儏 </el-col> - <el-col :span="12" style="text-align: right;"> - <el-button size="small" type="primary" @click="versionDialogVisible=true">妫�楠屾ā鏉垮垏鎹�</el-button> - <el-button size="small" type="primary" @click="sampleVisible=true;uploadSample()">鏍峰搧鍒囨崲</el-button> + <el-col :span="12" style="text-align: right;display: flex;align-items: center;justify-content: end;height: 60px;"> + <el-button size="small" type="primary" @click="versionDialogVisible=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')&&insOrder.sampleType!='鏃犳簮鍣ㄤ欢'">鐢佃皟/闈炵數璋冩ā鏉垮垏鎹�</el-button> + <el-select v-model="template" size="medium" placeholder="鐢佃矾棰勮妯℃澘" style="margin-right: 10px;margin-left: 10px;" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')" + @change="selectInsProductTemplateById"> + <el-option v-for="(a, ai) in templates" :key="ai" :value="a.id" :label="a.name"> + <span style="float: left">{{ a.name }}</span> + <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px;line-height: 34px;" + @click.stop="handleDelete(a)" v-if="addInsProductTemplatePower"></i> + </el-option> + </el-select> + <el-button size="medium" @click="templateDia=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')&&addInsProductTemplatePower"> + <span style="color: #3A7BFA;">淇濆瓨妯℃澘</span> + </el-button> + <!-- <el-button size="small" type="primary" @click="sampleVisible=true;uploadSample()">鏍峰搧鍒囨崲</el-button> --> <el-button size="small" type="primary" @click="taskVisible=true" v-show="!isLook">浠诲姟鍒囨崲</el-button> <el-button size="small" type="primary" @click="handleSubmit" v-if="state==1" :loading="submitLoading">鎻愪氦</el-button> <!-- 澶嶆牳 --> - <el-button size="small" type="primary" @click="upInsReview(1)" :loading="reviewLoading" - v-if="state>1&&!isLook">缁х画璇曢獙</el-button> - <el-button size="small" @click="upInsReview(0)" v-if="state>1&&!isLook" type="danger">鍐嶆璇曢獙</el-button> - <el-button size="small" @click="upInsReview(2)" v-if="state>1&&!isLook">缁撴潫璇曢獙</el-button> - <el-button size="small" @click="$emit('goback')" v-if="!noBack">杩斿洖</el-button> + <!-- <el-button size="small" type="primary" @click="upInsReview(1,'缁х画璇曢獙')" :loading="reviewLoading" + v-if="state>1&&!isLook">缁х画娴嬭瘯涓嬩竴涓牱鍝�</el-button> + <el-button size="small" @click="upInsReview(0,'鍐嶆璇曢獙')" v-if="state>1&&!isLook" type="danger">鍐嶆璇曢獙</el-button> + <el-button size="small" @click="upInsReview(2,'缁撴潫璇曢獙')" v-if="state>1&&!isLook">姝ゅ鎵樺崟缁撴潫</el-button> --> + <el-button size="small" type="primary" @click="upInsReviewDia=true" v-if="state>1&&!isLook">澶嶆牳</el-button> + <el-button size="small" @click="handleBack" v-if="!noBack">杩斿洖</el-button> </el-col> </el-row> <div class="search" v-show="!isLook"> @@ -303,6 +315,9 @@ </el-form-item> <el-form-item label="褰撳墠鏍峰搧浣嶆暟:"> <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag> + </el-form-item> + <el-form-item label="" v-if="insOrder.rule"> + <el-tag>{{ !insOrder.rule.includes('涓嶈�冭檻涓嶇‘瀹氬害')?insOrder.rule.split('-')[0]+' '+insOrder.rule.split('-')[1]+'%':insOrder.rule }}</el-tag> </el-form-item> <el-form-item label="澶囨敞:"> <span style="color:red">{{ insOrder.remark?insOrder.remark:'-' }}</span> @@ -344,7 +359,7 @@ </div> --> </div> <!-- 甯歌妫�楠屽師濮嬭褰� --> - <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙'))"> + <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('娓╂箍搴﹁瘯楠�')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鍔熺巼瀹归噺'))"> <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index+currentTable+currentSample.id"> <tbody> <tr v-for="(m,i) in item.arr" :key="i"> @@ -415,10 +430,10 @@ </template> <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧缂栧彿'"> <div style="display: flex;flex-wrap: nowrap;align-items: center;width: 100%" :title="currentSample.sampleCode"> - <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i> + <!-- <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i> --> <div :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`">{{currentSample.sampleCode}}</div> - <i class="el-icon-caret-right table_caret" style="width: 16px;" - v-if="!currentFiberOpticTape&&!currentFiberOptic" @click="caretSample(1)"></i> + <!-- <i class="el-icon-caret-right table_caret" style="width: 16px;" + v-if="!currentFiberOpticTape&&!currentFiberOptic" @click="caretSample(1)"></i> --> </div> </template> <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧鍨嬪彿'"> @@ -453,6 +468,20 @@ <i v-if="currentFiberOptic" class="el-icon-caret-right table_caret" @click="caretOptic(1)"></i> </div> + </template> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璇曢獙鍓嶆牱鍝佹鏌�'"> + <el-select class="table_input" v-model="n.v.v" + :disabled="state>1|| (n.u != userId && n.u != undefined && n.u != '')" @change="(val)=>changeSampleCheck(val, n,'鍓�')"> + <el-option label="瀹屽ソ" :value="'瀹屽ソ'"></el-option> + <el-option label="鐮存崯" :value="'鐮存崯'"></el-option> + </el-select> + </template> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璇曢獙鍚庢牱鍝佹鏌�'"> + <el-select class="table_input" v-model="n.v.v" + :disabled="state>1|| (n.u != userId && n.u != undefined && n.u != '')" @change="(val)=>changeSampleCheck(val, n,'鍚�')"> + <el-option label="瀹屽ソ" :value="'瀹屽ソ'"></el-option> + <el-option label="鐮存崯" :value="'鐮存崯'"></el-option> + </el-select> </template> <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)" ></span> </div> @@ -709,19 +738,34 @@ <!-- 鐢佃矾璇曢獙 --> <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')" style="width: 100%;overflow-x: auto;overflow-y: visible;"> <!-- <Circuit></Circuit> --> - <CircuitParameters1 v-if="currentTableState==0" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum"></CircuitParameters1> - <CircuitParameters2 v-if="currentTableState==1" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum"></CircuitParameters2> + <!-- 鐢佃皟 --> + <CircuitParameters1 v-if="currentTableState==0" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum" ref="CircuitParameters"></CircuitParameters1> + <!-- 闈炵數璋� --> + <CircuitParameters2 v-if="currentTableState==1" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum" ref="CircuitParameters"></CircuitParameters2> + <!-- 鏃犳簮鍣ㄤ欢 --> + <CircuitParameters3 v-if="this.insOrder.sampleType=='鏃犳簮鍣ㄤ欢' " :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum" ref="CircuitParameters"></CircuitParameters3> + </div> + <!-- 娓╂箍搴﹁瘯楠� --> + <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('娓╂箍搴﹁瘯楠�')"> + <Humidity :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :isLook="isLook" :num="currentSample.num1"/> + </div> + <!-- 鍔熺巼璇曢獙 --> + <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('鍔熺巼瀹归噺')"> + <PowerCapacity :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :isLook="isLook" :num="currentSample.num1"/> </div> <el-upload :action="action" :data="{ - orderId:id + orderId:this.orderId0, + sampleId:id, + sonLaboratory:sonLaboratory }" v-if="state==1&&fileAdd" :on-success="handleSuccessUp" :show-file-list="false" - accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :headers="headers" :on-change="beforeUpload" + accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :headers="headers" :before-upload="beforeUpload" style="width: 80px !important;" :on-error="onError" ref='upload'> <el-button size="small" type="primary" v-if="state==1">闄勪欢涓婁紶</el-button></el-upload> + <!-- <span v-if="sonLaboratory === '杩滃満'||sonLaboratory === '杩戝満'" style="color: red;font-size: 12px;">杈愬皠璇曢獙灏介噺涓婁紶璁惧瀵煎嚭鐨刢sv鏂囦欢锛屼笉鐒惰Е鍙戜笉浜嗘姤鍛婄敓鎴�</span> --> <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList" :componentData="componentData0" :delUrl="$api.insOrderPlan.delfile" @@ -762,7 +806,7 @@ </el-drawer> <el-dialog title="妫�楠屽鏍�" :visible.sync="reviewDia" width="500px"> <div class="body" style="display: flex;padding: 10px;" v-if="reviewDia"> - <div class="search_label" style="width: 150px;"><span class="required-span">* </span>涓嶉�氳繃鐨勭悊鐢憋細</div> + <div class="search_label" style="width: 150px;"><span class="required-span">* </span>鍐嶆璇曢獙鐨勭悊鐢憋細</div> <div class="search_input" style="width: 100%;"> <el-input size="small" clearable v-model="noReason" type="textarea" :autosize="{ minRows: 4}"></el-input> </div> @@ -837,19 +881,46 @@ <el-button type="primary" :loading="versionLoading" @click="saveVersion">纭� 瀹�</el-button> </span> </el-dialog> - <el-dialog title="璇曢獙淇℃伅" :visible.sync="experimentDia" width="400px"> - <div class="body" style="display: flex;padding: 10px;align-items: center;"> - <div class="search_label" style="width: 150px;"><span class="required-span">*</span>瀹為獙闃舵</div> - <div class="search_input" style="width: 100%;"> - <el-input clearable v-model="experimentInfo.term" size="small" placeholder=""></el-input> + <el-dialog title="璇曢獙淇℃伅" :visible.sync="experimentDia" width="50%"> + <div style="height: 80vh;overflow-y: auto;"> + <div class="body" style="display: flex;padding: 10px;align-items: center;" v-if="experimentDia0"> + <div class="search_label" style="width: 150px;"><span class="required-span">*</span>瀹為獙闃舵</div> + <div class="search_input" style="width: 100%;"> + <el-input clearable v-model="experimentInfo.term" size="small" placeholder=""></el-input> + </div> </div> - </div> - <div class="body" style="display: flex;padding: 10px;align-items: center;"> - <div class="search_label" style="width: 150px;"><span class="required-span">*</span>瀹為獙鎿嶄綔</div> - <div class="search_input" style="width: 100%;"> - <el-input clearable v-model="experimentInfo.note" size="small" placeholder="" type="textarea" - :rows="2"></el-input> + <div class="body" style="display: flex;padding: 10px;align-items: center;" v-if="experimentDia0"> + <div class="search_label" style="width: 150px;"><span class="required-span">*</span>瀹為獙鎿嶄綔</div> + <div class="search_input" style="width: 100%;"> + <el-input clearable v-model="experimentInfo.note" size="small" placeholder="" type="textarea" + :rows="2"></el-input> + </div> </div> + <template v-for="(x,y) in newUserInfo"> + <p style="margin: 10px 0;"><el-tag size="small">{{x.name}}</el-tag> 宸ユ椂濉啓</p> + <table border="1" cellpadding="10" class="thermal-table"> + <tr style="font-size: 18px;font-weight: 500;background-color: #F0F1F5;padding: 10px 0;box-sizing: border-box;"> + <td>鏍峰搧</td> + <td>鏍峰搧缂栧彿</td> + <td>鍨嬪彿</td> + <td>妫�楠岄」</td> + <td>妫�楠屽瓙椤�</td> + <td>宸ユ椂</td> + </tr> + <template v-for="(item,index) in sampleProduct"> + <tr> + <td :rowspan="item.insProduct.length+1">{{ item.sample }}</td> + <td :rowspan="item.insProduct.length+1">{{ item.sampleCode }}</td> + <td :rowspan="item.insProduct.length+1">{{ item.model }}</td> + </tr> + <tr v-for="(m,i) in item.insProduct" :key="item.id+i"> + <td>{{ m.inspectionItem }}</td> + <td>{{ m.inspectionItemSubclass }}</td> + <td><el-input-number v-model="x.timeArr[i]" :min="0" :max="100" label="宸ユ椂" size="small"></el-input-number></td> + </tr> + </template> + </table> + </template> </div> <span slot="footer" class="dialog-footer"> <el-button @click="experimentDia = false">鍙� 娑�</el-button> @@ -859,34 +930,65 @@ <el-dialog title="鏂囦欢棰勮" :visible.sync="lookFileVisible" - width="60%" fullscreen> + width="60%" fullscreen :modal="false"> <filePreview v-if="lookFileVisible" :fileUrl="currentFile.url" :currentFile="currentFile" style="max-height: 87vh;overflow-y: auto;"/> + </el-dialog> + <el-dialog title="淇濆瓨妯℃澘" :visible.sync="templateDia" width="400px"> + <div class="body" style="display: flex;align-items: center;" v-if="templateDia"> + <div class="search_label" style="width: 90px;"><span class="required-span">* </span>妯℃澘鍚嶇О锛�</div> + <div class="search_input"> + <el-input size="small" clearable v-model="templateName"></el-input> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="templateDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="addTemplateDia" :loading="templateLoading">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog title="澶嶆牳" :visible.sync="upInsReviewDia" width="400px"> + <el-radio-group v-model="upInsReviewType" style="display: flex;flex-direction: column"> + <el-radio :label="1" style="margin: 10px 0; ">缁х画娴嬭瘯涓嬩竴涓牱鍝佹垨鍏朵粬绔欑偣浠诲姟</el-radio> + <el-radio :label="0" style="margin: 10px 0; ">鍐嶆妫�楠岃鏍峰搧</el-radio> + <el-radio :label="2" style="margin: 10px 0; ">姝ゅ鎵樺崟缁撴潫</el-radio> + <p style="font-size: 12px;color:red">鎱庨噸锛氬鏋滆繕鏈夊叾浠栨牱鍝佸湪妫�锛岀偣鍑荤粨鏉熷彲鑳戒細涓柇锛岃纭繚鎵�鏈夋牱鍝侀兘妫�楠屼笖澶嶆牳瀹屾垚鍐嶇偣鍑�</p> + </el-radio-group> + <span slot="footer" class="dialog-footer"> + <el-button @click="upInsReviewDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="upInsReview" :loading="reviewLoading">纭� 瀹�</el-button> + </span> </el-dialog> </div> </template> <script> import ValueTable from '../../tool/value-table.vue' - import Circuit from './circuit.vue' import file from '../../../util/file' import excelFunction from '../../../util/excelFountion' import CircuitParameters1 from './circuit-parameters1.vue' import CircuitParameters2 from './circuit-parameters2.vue' + import CircuitParameters3 from './circuit-parameters3.vue' + import Humidity from './humidity.vue' + import PowerCapacity from './power-capacity.vue' import filePreview from '../../tool/file-preview.vue' export default { - props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1','noBack'], + props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1','noBack','orderId0','userInfo'], components: { ValueTable, - Circuit, CircuitParameters1, CircuitParameters2, - filePreview + CircuitParameters3, + filePreview, + Humidity, + PowerCapacity, }, data() { return { lookFileVisible:false,//棰勮鏂囦欢 experimentDia:false, + experimentDia0:false, + upInsReviewDia:false, + upInsReviewType:1, experimentInfo:{ note:'', term:'' @@ -934,6 +1036,8 @@ }, componentData0: { entity: { + insSampleId:'', + sonLaboratory:this.sonLaboratory, insOrderId:'' }, isIndex: true, @@ -1073,6 +1177,13 @@ humidity:'' }, currentFile:{},//褰撳墠鏂囦欢 + templates:[],//鐢佃矾璇曢獙妯℃澘 + templateDia:false,//鐢佃矾璇曢獙妯℃澘淇濆瓨妯℃澘寮规 + template:null, + templateLoading:false, + templateName:'', + addInsProductTemplatePower:false,//閰嶇疆妯℃澘鏉冮檺 + newUserInfo:[] } }, // 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭� @@ -1107,12 +1218,14 @@ id(val) { this.loading = true this.$axios.post(this.$api.insOrderPlan.doInsOrder, { - id: val, + sampleId: val, laboratory: this.sonLaboratory }).then(async res => { this.insOrder = res.data.insOrder; - this.componentData0.entity.insOrderId = val; + this.componentData0.entity.insSampleId = val; + this.componentData0.entity.insOrderId = this.orderId0; this.$refs.fileList.selectList() + this.selectInsProductTemplate() this.urgentList.forEach(m => { if (m.value == this.insOrder.type) { this.insOrder.typeName = m.label @@ -1149,7 +1262,9 @@ resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } } }) @@ -2094,6 +2209,7 @@ let fileAdd = false let collected = false let temDataAcquisition = false + let addInsProductTemplatePower = false; for (var i = 0; i < power.length; i++) { if (power[i].menuMethod == 'uploadFile') { fileAdd = true @@ -2107,6 +2223,9 @@ if (power[i].menuMethod == 'temDataAcquisition') { temDataAcquisition = true } + if(power[i].menuMethod == 'addInsProductTemplate'){ + addInsProductTemplatePower = true + } } if (!fileDel) { this.componentData0.do.splice(1, 1) @@ -2114,6 +2233,7 @@ this.fileAdd = fileAdd this.collected = collected this.temDataAcquisition = temDataAcquisition + this.addInsProductTemplatePower = addInsProductTemplatePower }, uploadSample(){ this.$axios.post(this.$api.insOrderPlan.doInsOrder, { @@ -2141,6 +2261,7 @@ this.param = {} // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁 this.fiberOpticTape = [] + this.template = '' this.currentFiberOpticTape = null; this.fiberOptic = [] this.currentFiberOptic = null; @@ -2163,7 +2284,9 @@ resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } } }) @@ -2211,7 +2334,9 @@ resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } }) // 椤甸潰鍒楄〃鏁版嵁澶勭悊 @@ -2326,7 +2451,7 @@ this.tableList = null; this.tableList = [this.tableLists[0]] this.currentTable = this.tableLists[0].templateId; - if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐢佃矾璇曢獙')&&this.currentTableState!=0&&this.currentTableState!=1){ + if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐢佃矾璇曢獙')&&this.currentTableState!=0&&this.currentTableState!=1&&this.insOrder.sampleType!='鏃犳簮鍣ㄤ欢'){ this.versionDialogVisible = true } // 澶勭悊椤甸潰鍒楄〃鏁版嵁 @@ -2663,6 +2788,16 @@ }) } } + if (b.v.ps != undefined && b.v.ps.value === '璇曢獙鍓嶆牱鍝佹鏌�') { + // b.v.v = '' + this.$set(b.v, 'v', '' ) + this.param[b.i].beforeCheck = b + } + if (b.v.ps != undefined && b.v.ps.value === '璇曢獙鍚庢牱鍝佹鏌�') { + // b.v.v = '' + this.$set(b.v, 'v', '' ) + this.param[b.i].afterCheck = b + } set.add(b.r) // 濡傛灉妯℃澘鍒楄〃鐨勫嚱鏁板瓨鍦�,閭d箞鍔犲叆鍒癳xcel鍑芥暟鍒楄〃閲岄潰 if (b.v.f) { @@ -2759,10 +2894,18 @@ } catch (e) {} try { // 鏈�缁堝�艰祴鍊� - this.param[a.id].resValue.v.v = this.toFixed(a.lastValue,this.param[a.id].resValue.v.ct) + this.param[a.id].resValue = {v:{v:a.lastValue}} + // this.param[a.id].resValue.v.v = this.toFixed(a.lastValue,this.param[a.id].resValue.v.ct) // 缁撹璧嬪�� - this.param[a.id].insResult.v.v = a.insResult - } catch (e) {} + this.param[a.id].insResult = {v:{v:a.insResult}} + // this.param[a.id].insResult.v.v = a.insResult + // 妫�楠屽墠鏍峰搧妫�鏌ヨ祴鍊� + this.param[a.id].afterCheck.v.v = a.insProductResult.afterCheck + // 妫�楠屽悗鏍峰搧妫�鏌ヨ祴鍊� + this.param[a.id].beforeCheck.v.v = a.insProductResult.beforeCheck + } catch (e) { + console.log('error',e) + } }) // 瀵筫xcel鍑芥暟杩涜澶勭悊 this.handleExcelMethod() @@ -2795,6 +2938,13 @@ n.v.v = n.v.v.replace('/', '') } } + // 閫氫俊鐗规畩澶勭悊锛屾楠屽�煎~鍏ヤ箣鍚庣洿鎺ヤ繚瀛樻暟鎹紝鍒ゆ柇缁撴灉榛樿涓�3 + for (var i in this.param){ + this.param[i].insResult = {v:{v:3}} + } + this.saveInsContext(n.i) + return; + // 浠ヤ笅鏄甯哥殑鍒ゆ柇娴佺▼锛屽悗闈㈡湁闇�瑕佸垯杩涘叆姝ゆ祦绋� try { // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫 this.worker.postMessage(JSON.stringify({ @@ -2811,7 +2961,6 @@ } catch (error) { console.log(444,error); } - // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋� this.worker.onmessage = (event) => { this.result = JSON.parse(event.data); @@ -2824,6 +2973,7 @@ if(this.result.value.currentInsItemId){ currentInsItemId = this.result.value.currentInsItemId } + // console.log(this.result,123); // 鐗规畩澶勭悊涓�涓嬬粨璁�,浼氭湁杩欑鐗规畩鎯呭喌 for (var i in this.param){ if(this.param[i].insResult&&this.param[i].insResult.v&&this.param[i].insResult.v.v){ @@ -2835,33 +2985,6 @@ } } this.saveInsContext(currentInsItemId) - // 濡傛灉鏄暟閲囧彲缂栬緫杈撳叆鐨勬儏鍐�,鍙互鐩存帴淇濆瓨鏁版嵁 - // if(this.getDataType==2){ - // this.saveInsContext(currentInsItemId) - // }else{ - // if(this.isGet&&!this.dataAcquisitionEidtAble){ - // if(this.result.value.getDataTypeId==''){ - // // 濡傛灉鏄暟閲囦笉鍙紪杈戣緭鍏ョ殑鎯呭喌,涓旀渶鍚庝竴涓暟閲囨病鏈夊畬鎴�,鍒欎笉淇濆瓨鏁版嵁 - // return - // } - // // 淇濆瓨鏁版嵁 - // setTimeout(()=>{ - // this.saveInsContext(currentInsItemId) - // },2000) - // }else if(this.isGet&&this.dataAcquisitionEidtAble){ - // if(this.getDataType==1){ - // if(this.result.value.getDataTypeId==''){ - // // 濡傛灉鏄暟閲囧彲缂栬緫杈撳叆鐨勬儏鍐�,涓旀渶鍚庝竴涓暟閲囨病鏈夊畬鎴�,鍒欎笉淇濆瓨鏁版嵁 - // return - // } - // this.saveInsContext(currentInsItemId) - // }else{ - // this.saveInsContext(currentInsItemId) - // } - // }else{ - // this.saveInsContext(currentInsItemId) - // } - // } }) break; case 'tableList': @@ -3123,18 +3246,19 @@ }) }, // 澶嶆牳 - upInsReview(e) { - if (e == 1||e==2) { + upInsReview() { + if (this.upInsReviewType == 1||this.upInsReviewType==2) { // 缁х画璇曢獙 this.reviewLoading = true; this.$axios.post(this.$api.insOrderPlan.verifyPlan, { - orderId: this.orderId, - type: e, + sampleId: this.orderId, + type: this.upInsReviewType, laboratory: this.sonLaboratory, tell: null }).then(res => { if (res.code === 200) { this.$message.success("鎿嶄綔鎴愬姛") + this.upInsReviewDia = false; this.$emit('goback') } this.reviewLoading = false; @@ -3151,7 +3275,7 @@ if (this.noReason) { this.reviewLoading = true; this.$axios.post(this.$api.insOrderPlan.verifyPlan, { - orderId: this.orderId, + sampleId: this.orderId, type: 0, laboratory: this.sonLaboratory, tell: this.noReason @@ -3170,15 +3294,30 @@ } }, submit0(){ - if(!this.experimentInfo.term){ - this.$message.error('璇疯緭鍏ュ疄楠岄樁娈�') - return + if(this.sonLaboratory === '鐢佃矾璇曢獙'){ + if(!this.experimentInfo.term){ + this.$message.error('璇疯緭鍏ュ疄楠岄樁娈�') + return + } + if(!this.experimentInfo.note){ + this.$message.error('璇疯緭鍏ュ疄楠屾搷浣�') + return + } } - if(!this.experimentInfo.note){ - this.$message.error('璇疯緭鍏ュ疄楠屾搷浣�') - return - } + // let num =0 + // this.newUserInfo.forEach(item=>{ + // item.timeArr.forEach(a=>{ + // if(!a){ + // num++ + // } + // }) + // }) + // if(num>0){ + // this.$message.error('璇疯緭鍏ュ畬鎴愬伐鏃�') + // return + // } this.experimentDia = false + this.experimentDia0 = false if(this.insOrder.orderType=='C'){ this.verifyUser = this.insOrder.prepareUserId this.submit() @@ -3186,8 +3325,41 @@ this.addVerifyDia = true } }, - handleSubmit(){ + async handleSubmit(){ + if(!this.otherForm.temperature){ + this.$message.error('璇疯緭鍏ユ俯搴�') + return + } + if(!this.otherForm.humidity){ + this.$message.error('璇疯緭鍏ユ箍搴�') + return + } + this.loading = true + if(this.sonLaboratory === '鐢佃矾璇曢獙'&&!(await this.$refs.CircuitParameters.saveAll())){ + this.loading = false + return + }else{ + this.loading = false + } this.experimentDia = true + this.newUserInfo = [] + this.userInfo.name.forEach((item,index)=>{ + let timeArr = [] + this.sampleProduct.forEach(m=>{ + m.insProduct.forEach(a=>{ + timeArr.push(0) + }) + }) + let obj = { + name:item, + id:this.userInfo.ids[index], + timeArr:timeArr + } + this.newUserInfo.push(obj) + }) + if (this.sonLaboratory === '鐢佃矾璇曢獙') { + this.experimentDia0 = true + } }, submit() { if (this.verifyUser === null || this.verifyUser === '') { @@ -3197,18 +3369,40 @@ this.addVerifyDia = false this.submitLoading = true; this.$axios.post(this.$api.insOrderPlan.checkSubmitPlan, { - orderId: this.orderId, + sampleId: this.orderId, laboratory: this.sonLaboratory, }).then(res => { if (res.code === 200) { + let auxiliaryOutputWorkingHoursList = [] + this.sampleProduct.forEach(item=>{ + item.insProduct.forEach((a,i)=>{ + this.newUserInfo.forEach(b=>{ + let obj = { + inspectionItem:a.inspectionItem, + outputWorkTime:b.timeArr[i], + inspectionItemSubclass:a.inspectionItemSubclass, + sample:item.sampleCode, + insProductId:a.id, + num:item.num1, + check:b.id + } + auxiliaryOutputWorkingHoursList.push(obj) + }) + }) + }) if(!res.data||res.data.length==0){ this.$axios.post(this.$api.insOrderPlan.submitPlan, { - orderId: this.orderId, + sampleId: this.orderId, laboratory: this.sonLaboratory, verifyUser: this.verifyUser, entrustCode: this.insOrder.entrustCode, + auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList, ...this.experimentInfo - }).then(res => { + }, { + headers: { + 'Content-Type': 'application/json' + }, + noQs:true}).then(res => { if (res.code === 200) { this.$message.success("鎿嶄綔鎴愬姛") this.$emit('goback') @@ -3237,11 +3431,16 @@ type: "" }).then(() => { this.$axios.post(this.$api.insOrderPlan.submitPlan, { - orderId: this.orderId, + sampleId: this.orderId, laboratory: this.sonLaboratory, verifyUser: this.verifyUser, + auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList, ...this.experimentInfo - }).then( res => { + }, { + headers: { + 'Content-Type': 'application/json' + }, + noQs:true}).then( res => { if (res.code === 200) { this.submitLoading = false; this.$message.success("鎿嶄綔鎴愬姛") @@ -3263,7 +3462,7 @@ async handleCType(){ if(this.insOrder.departmentLims=='璐ㄩ噺閮�'){ await this.$axios.post(this.$api.insOrderPlan.verifyPlan, { - orderId: this.orderId, + sampleId: this.orderId, type: 1, laboratory: this.sonLaboratory, tell: null @@ -3358,6 +3557,17 @@ // 淇濆瓨鏁版嵁 this.saveInsContext(n.i) }, + // 鏍峰搧妫�鏌� + changeSampleCheck(val, n,type){ + this.$set(n.v,'v',val) + if(type=='鍓�'){ + // 妫�楠屽墠 + this.saveInsContext(n.i) + }else{ + // 妫�楠屽悗 + this.saveInsContext(n.i) + } + }, getAuthorizedPerson() { this.$axios.get(this.$api.user.getUserMenu).then(res => { let data = [] @@ -3426,7 +3636,9 @@ resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } } }) @@ -3518,22 +3730,39 @@ let list = await this.getCurrentProduct(this.currentFiberOptic.id,2) this.getTableLists0(list) }, - handleSuccessUp(response, ) { + async handleSuccessUp(response, ) { this.upLoading = false; if (response.code == 200) { this.$message.success('涓婁紶鎴愬姛'); this.$refs.fileList.selectList() + if(this.sonLaboratory === '鐢佃矾璇曢獙'){ + // // 鐢佃矾璇曢獙鏁伴噰 + // 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」 + let list = await this.getCurrentProduct(this.currentSample.id,0) + this.currentSample.insProduct = this.HaveJson(list) + this.currentNum++ + } + }else { + this.$message.error(response.message); } }, beforeUpload(file) { - if (file.size > 1024 * 1024 * 10) { - this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M'); - this.$refs.upload.clearFiles() - return false; - } else { - this.upLoading = true; - return true; - } + if(this.sonLaboratory === '鐢佃矾璇曢獙'&&(file.name.includes('浜よ皟')||file.name.includes('浜掕皟'))&&!this.$refs.CircuitParameters.allBandList.find(m=>m.band)){ + this.$message.error('涓婁紶闄勪欢鍓嶈鍏堝~鍐欏苟淇濆瓨棰戞'); + return false + }else{ + // if(file.name.includes('浜よ皟')||file.name.includes('浜掕皟')){ + // this.$refs.CircuitParameters.saveAll() + // } + if (file.size > 1024 * 1024 * 10) { + this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M'); + this.$refs.upload.clearFiles() + return false; + } else { + this.upLoading = true; + return true; + } + } }, onError(err, file, fileList) { this.$message.error('涓婁紶澶辫触') @@ -3623,6 +3852,121 @@ this.currentFile.url = this.javaApi+'/word/'+row.fileUrl } this.lookFileVisible = true + }, + handleBack(){ + try { + if(!this.isLook&&this.state==1&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐢佃矾璇曢獙')){ + this.$confirm('璇风‘璁ゅ綋鍓嶆暟鎹槸鍚﹀叏閮ㄤ繚瀛橈紝鏄惁杩斿洖锛�', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(async () => { + this.loading = true + if(await this.$refs.CircuitParameters.saveAll()){ + this.$emit('goback') + this.loading = false + }else{ + this.loading = false + } + }) + }else{ + this.$emit('goback') + } + } catch (error) { + this.$emit('goback') + } + }, + selectInsProductTemplate(){ + this.$axios.post(this.$api.insProductTemplate.chooseInsProductTemplate,{ + version:this.insOrder.sampleType=='鏃犳簮鍣ㄤ欢'?2:'' + }).then(res => { + if (res.code == 201) return + this.templates = res.data + }) + }, + selectInsProductTemplateById(e){ + if(e){ + this.$axios.post(this.$api.insProductTemplate.getInsProductTemplate + '?id=' + e).then(res => { + if (res.code == 201) return + let obj = JSON.parse(res.data.message) + if(this.currentTableState!=res.data.version&&this.insOrder.sampleType!='鏃犳簮鍣ㄤ欢'){ + this.$message.error('鐢佃皟/闈炵數璋冩ā鏉跨増鏈笉涓�鑷达紝璇烽噸鏂伴�夋嫨') + this.template = null + return + } + // 褰撳墠妯℃澘涓湭鍖呭惈鎵�鏈夐」鐩� + let state = this.currentSample.insProduct.every(item=>{ + if(obj.allBandList&&obj.allBandList.length>0&&obj.allBandList[0].projectList&&obj.allBandList[0].projectList.length>0&&item.inspectionItemSubclass&&obj.allBandList[0].projectList.find(m=>m.inspectionItemSubclass==item.inspectionItemSubclass)){ + return true + }else{ + return false + } + }) + if(!state){ + this.template = null + this.$message.error('褰撳墠妯℃澘涓湭鍖呭惈鎵�鏈夐」鐩紝璇烽噸鏂伴�夋嫨') + return + } + // 淇濆瓨鐗堟湰 + // this.saveVersion() + // 濡傛灉妯℃澘鐨勬楠岄」澶氫簡锛屽垯鍒犻櫎澶氫綑鐨� + obj.allBandList.forEach(item=>{ + item.projectList.forEach((m,i)=>{ + if(!this.currentSample.insProduct.find(n=>m.inspectionItemSubclass==n.inspectionItemSubclass)){ + item.projectList.splice(i,1) + } + }) + }) + this.$refs.CircuitParameters.upTemplate(obj) + }) + } + }, + addTemplateDia(){ + let obj = { + allBandList:this.$refs.CircuitParameters.allBandList, + intermodulationNum:this.$refs.CircuitParameters.intermodulationNum, + angleList:this.$refs.CircuitParameters.angleList, + } + if (this.templateName) { + this.templateLoading = true; + this.$axios.post(this.$api.insProductTemplate.addInsProductTemplate, { + name: this.templateName, + version:this.insOrder.sampleType=='鏃犳簮鍣ㄤ欢'?2:this.currentTableState, + message:JSON.stringify(obj) + }, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 201) return + this.templateLoading = false; + this.templateDia = false; + this.$message.success('淇濆瓨鎴愬姛') + this.selectInsProductTemplate() + this.templateName = '' + }) + } else { + this.$message.error('璇峰~鍐欐ā鏉垮悕绉�') + } + }, + handleDelete(row){ + this.$confirm('鏄惁鍒犻櫎褰撳墠鏁版嵁?', "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "warning" + }).then(() => { + this.$axios.post(this.$api.insProductTemplate.delInsProductTemplate, { + id: row.id + }).then(res => { + if (res.code === 201) { + return + } + this.$message.success('鍒犻櫎鎴愬姛') + this.selectInsProductTemplate() + }).catch(e => { + this.$message.error('鍒犻櫎澶辫触') + }) + }).catch(() => {}) } } } -- Gitblit v1.9.3