From 5c8aaba66c16b1a143fdec27e29ad36eaefd1e3a Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期二, 31 十二月 2024 14:33:25 +0800 Subject: [PATCH] 无源器件检验开发 --- src/components/do/b1-inspect-order-plan/Inspection.vue | 3659 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 3,303 insertions(+), 356 deletions(-) diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index 4e7f56e..54e89e4 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -1,4 +1,16 @@ <style scoped> +.custom-table .el-table__header-wrapper th { + background-color: #87CEEB; /* 鍙甯︽湁my-custom-table绫荤殑琛ㄦ牸鐢熸晥 */ + color: #fff; +} + .container { + overflow: auto; /* 纭繚瀹瑰櫒鑳藉寘瑁规诞鍔ㄥ厓绱� */ + margin-bottom: 10px; +} + +.right-button { + float: right; +} .inspection { height: 100%; overflow-y: auto; @@ -22,7 +34,8 @@ .search .form-inline { padding-top: 20px; - padding-left: 50px; + padding-left: 0px; + text-align: left; } .center { @@ -41,8 +54,13 @@ flex-direction: column; flex-wrap: wrap; width: 100%; - /* overflow-x: hidden; */ - overflow-x: scroll; + overflow-x: hidden; + /* overflow-x: scroll; */ + cursor: grab; + } + + .center-box:active{ + cursor: grabbing; } .tables { @@ -55,17 +73,40 @@ width: 100px; text-align: center; font-size: 14px; + word-wrap: break-word; + white-space: normal; + } + .thermal-table{ + min-width: calc(100% - 10px); + margin: 5px 5px 0; + table-layout: fixed; + } + .thermal-table td { + min-width: 70px; + text-align: center; + font-size: 14px; + word-wrap: break-word; + white-space: normal; + padding: 5px; + } + .table-container { + overflow-x: auto; /* 浣垮鍣ㄦ敮鎸佹í鍚戞粴鍔� */ + max-width: 100%; /* 闄愬埗瀹瑰櫒鐨勬渶澶у搴� */ + margin-bottom: 16px; } .content { display: flex; - /* width: 100px; */ height: 100%; align-items: center; justify-content: left; padding: 5px; box-sizing: border-box; overflow: hidden; + user-select: none; + } + + .content *{ user-select: none; } @@ -97,6 +138,9 @@ width: 100%; height: 100%; } + .table_input >>>.el-input__inner{ + border-color: rgba(0, 0, 0, 0.5) !important; + } .collection { width: 50px; @@ -111,6 +155,38 @@ .collection:active { opacity: .7; + } + .table_caret{ + font-size: 16px; + margin: 0 5px; + color: rgba(0, 0, 0, 0.5); + } + .table_caret:hover{ + color: #409eff; + cursor: pointer; + } + + .table_caret:active{ + opacity: .8; + } + >>>input::-webkit-inner-spin-button { + -webkit-appearance: none !important; /* 闅愯棌寰皟鎸夐挳 */ + margin: 0 !important; /* 绉婚櫎寰皟鎸夐挳鐨勮竟璺� */ + } + + >>>input[type=number] { + -moz-appearance: textfield !important; /* 閽堝 Firefox */ + } + >>>.el-form-item__content{ + display: inline-flex; + align-items: center; + } + .history-btn{ + display: flex; + align-items: center; + } + .noShow{ + opacity: 0; } </style> <style> @@ -131,48 +207,102 @@ .inspection .el-drawer__header { color: #303133; + text-align: left; } - .inspection .el-input-group__append{ - padding: 0 10px; + .inspection .el-input-group__append { + padding: 0 14px; color: #3A7BFA; background-color: #fff; + height: 100%; + display: flex; + align-items: center; } - .inspection .center-box .el-input__inner{ + .inspection .center-box .el-input__inner { font-size: 12px; padding: 0 6px; text-align: center; + } + + .inspection .el-textarea__inner { + padding: 2px; + } + + .inspection .el-textarea__inner::-webkit-scrollbar { + width: 0; + } + + .inspection .el-select { + display: flex; + align-items: center; + } + + .inspection .el-textarea__inner { + min-height: 100% !important; + } + + .inspection .tables .el-input{ + display: flex; + align-items: center; + } + .thermal-table .el-input{ + display: flex; + align-items: center; + } + .custom-dialog .el-dialog__body { + max-width: 1000px; /* 璁剧疆鏈�澶у搴� */ } </style> <template> <div v-loading="loading" class="inspection"> <el-row class="title"> - <el-col :span="12" style="padding-left: 20px;">妫�楠屽崟璇︽儏</el-col> - <el-col :span="12" style="text-align: right;"> - <el-button size="small" type="primary" @click="sampleVisible=true">鏍峰搧鍒囨崲</el-button> - <el-button size="small" type="primary" @click="taskVisible=true">浠诲姟鍒囨崲</el-button> - <el-button size="small" type="primary" @click="submit" v-show="state==1" :loading="submitLoading">鎻愪氦</el-button> + <el-col :span="12" style="padding-left: 20px;text-align: left;" :class="{noShow:noBack}">妫�楠屽崟璇︽儏 + </el-col> + <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="medium" type="primary" @click="upInsReview(1)" :loading="reviewLoading" - v-show="state>1">閫氳繃</el-button> - <el-button size="medium" @click="upInsReview(0)" v-show="state>1">涓嶉�氳繃</el-button> - <el-button size="small" @click="$emit('goback')">杩斿洖</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"> - <el-form :inline="true" :model="searchForm" class="form-inline" label-width="100px"> + <div class="search" v-show="!isLook"> + <el-form :inline="true" :model="searchForm" class="form-inline" label-width="100px" label-position="right"> <el-form-item label="濮旀墭缂栧彿:"> <el-input clearable v-model="insOrder.entrustCode" disabled size="small" placeholder="璇疯緭鍏�"></el-input> </el-form-item> <el-form-item label="鏍峰搧缂栧彿:"> - <el-input clearable v-model="currentSample.sampleCode" disabled size="small" placeholder="璇疯緭鍏�"></el-input> + <el-tooltip :disabled="!currentSample.sampleCode" :content="currentSample.sampleCode"> + <el-input clearable v-model="currentSample.sampleCode" disabled size="small" placeholder="璇疯緭鍏�" tooltip></el-input> + </el-tooltip> </el-form-item> <el-form-item label="鏍峰搧鍚嶇О:"> <el-input clearable v-model="currentSample.sample" disabled size="small" placeholder="璇疯緭鍏�"></el-input> </el-form-item> <el-form-item label="鏍峰搧鏁伴噺:"> - <el-input clearable v-model="sampleProduct.length" disabled size="small" placeholder="璇疯緭鍏�"></el-input> + <el-input clearable v-model="sampleProduct.length" disabled size="small" placeholder="璇疯緭鍏�" ></el-input> + </el-form-item> + <el-form-item label="璇曢獙鏍囧噯:"> + <span>{{ currentSample.testRequirements?currentSample.testRequirements:'-' }}</span> </el-form-item> <el-form-item label="涓嬪彂鏃堕棿:"> <el-input clearable v-model="insOrder.sendTime" disabled size="small" placeholder="璇疯緭鍏�"></el-input> @@ -184,58 +314,464 @@ <el-input clearable v-model="insOrder.appointed" disabled size="small" placeholder="璇疯緭鍏�"></el-input> </el-form-item> <el-form-item label="褰撳墠鏍峰搧浣嶆暟:"> - <el-tag v-if="currentSample.index">{{ `NO.${currentSample.index}` }}</el-tag> + <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> </el-form-item> </el-form> </div> <div class="center"> - <div class="center-box"> - <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index" - :style="`width: ${tableWidth}px;`"> + <div class="search" style="text-align: left;display: flex;align-items: center;justify-content: space-between;"> + <div style="display: flex;align-items: center;"> + <span v-if="tableList.length>0">妫�楠屾ā鏉匡細</span> + <el-radio-group v-model="currentTable" size="small"> + <el-radio-button :label="item.templateId" v-for="(item,index) in tableLists" :key="index" + size="small">{{ item.templateName }}</el-radio-button> + </el-radio-group> + <!-- <span style="margin-left: 20px;margin-right: 10px;">妯℃澘鐗堟湰:</span> + <el-radio-group v-model="currentTableState" size="small"> + <el-radio-button label="0" size="small">鐗堟湰涓�</el-radio-button> + <el-radio-button label="1" size="small">鐗堟湰浜�</el-radio-button> + </el-radio-group> --> + </div> + <div style="display: flex;align-items: center;"> + <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px" style="padding-top: 0;padding-left: 10px;" v-if="PROJECT=='妫�娴嬩腑蹇�'"> + <el-form-item label="娓╁害:" style="margin-bottom: 0;"> + <el-input v-model="otherForm.temperature" :disabled="state>1" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'temperature')" ></el-input> + <span style="margin-left: 4px;">鈩�</span> + </el-form-item> + <el-form-item label="婀垮害:" style="margin-bottom: 0;"> + <el-input v-model="otherForm.humidity" :disabled="state>1" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'humidity')"></el-input> + <span style="margin-left: 4px;">%</span> + </el-form-item> + </el-form> + <el-button type="primary" size="small" v-if="(isGet||tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'&&temDataAcquisition)&&PROJECT=='妫�娴嬩腑蹇�'&&state==1" @click="getDataAcquisitionDevice" :loading="dataAcquisitionLoading">鏁版嵁閲囬泦</el-button> + <el-button :type="dataAcquisitionEidtAble?'':'primary'" size="small" v-if="(isGet||(tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'))&&PROJECT=='妫�娴嬩腑蹇�'&&collected&&state==1" @click="dataAcquisitionEidtAble=!dataAcquisitionEidtAble">{{dataAcquisitionEidtAble?'鍏抽棴缂栬緫':'缂栬緫鏁伴噰'}}</el-button> + </div> + <!-- <div class="history-btn" v-if="isLook"> + <el-button type="primary" icon="el-icon-arrow-left" size="small" @click="goHistory(-1)">涓婁竴鏉¤褰�</el-button> + <span style="font-size: 14px;margin: 0 10px;">褰撳墠绗瑊{num}}鏉�</span> + <el-button type="primary" size="small" @click="goHistory(1)">涓嬩竴鏉¤褰�<i class="el-icon-arrow-right el-icon--right"></i></el-button> + </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('鐢佃矾璇曢獙')&&!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"> <td :id='item.templateId+"-"+n.i+"-"+n.r+"-"+n.c' v-for="(n,j) in m" :key="j" - v-if="n.v.mc==undefined || Object.keys(n.v.mc).length === 4" :colspan="n.v.mc&&n.v.mc.cs?n.v.mc.cs:1" + v-if="n.v.mc==undefined || Object.keys(n.v.mc).length === 4" :colspan="n.v.mc&&n.v.mc.cs?n.v.mc.cs:1" :rowspan="n.v.mc&&n.v.mc.rs?n.v.mc.rs:1" - :style="`background:${n.v.bg};color:${n.v.fc};font-size:${n.v.fs}px;width:${item.style.columnlen[n.c]}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`"> - <div class="content" :class="`content-h-${n.v.ht} content-v-${n.v.vt}`"> - <template v-if="n.v.ps!=undefined && n.v.ps.value==='妫�楠屽��' && state==1"> + :style="`background:${n.v.bg?n.v.bg:''};color:${n.v.fc};font-size:${n.v.fs}px;width:${handleWidth(n)}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`"> + <div class="content" :class="`content-h-${n.v.ht} content-v-${n.v.vt}`" + :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]}px;`"> + <template v-if="n.v.ps!=undefined && typeof n.v.ps.value ==='string'&& n.v.ps.value.includes('妫�楠屽��') && state==1"> <el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v" - :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" - @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)"> - <el-button slot="append" type="primary" icon="el-icon-edit" size="mini" v-if="getInspectionItemType(n.i) == 1" @click="getSystemValue(n)"></el-button> + :disabled="(getInspectionItemType(n.i) == 1 && !dataAcquisitionEidtAble )|| (n.u != userId && n.u != undefined && n.u != '')" + @input="handleInput(n)" + @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`, n,'getDataType')" @mousewheel.native.prevent :key="'abc-'+'000'+index+'000'+i+'000'+j" + @keydown.enter="changeInput('',`${item.templateId}-${n.r}-${n.c}-${n.i}`, n, 'getDataType')"> + <!-- <el-button slot="append" type="primary" icon="el-icon-edit" size="mini" + v-if="getInspectionItemType(n.i) == 1" @click="getSystemValue(n)"></el-button> --> </el-input> <el-input v-else-if="getInspectionValueType(n.i) == 2" class="table_input" type="textarea" - :autosize="{ minRows: 1}" v-model="n.v.v" :disabled="state>1" /> + v-model="n.v.v" + :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" + @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`,n,'getDataType')" /> <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v" - :disabled="state>1"> - <el-option label="鏄�" value="鏄�"></el-option> - <el-option label="鍚�" value="鍚�"></el-option> + :disabled="state>1||getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" @visible-change="e=>getDic(e,n.i)" + @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`,n,'getDataType')"> + <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option> </el-select> <span :style="`font-family:${n.v.ff} !important;`" v-else-if="getInspectionValueType(n.i) == 4">/</span> </template> <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='缁撹'"> - <span v-if="n.v.v===1" :style="`font-family:${n.v.ff} !important;color: green;`">鍚堟牸</span> - <span v-else-if="n.v.v===0" :style="`font-family:${n.v.ff} !important;color: red;`">涓嶅悎鏍�</span> - <span v-else :style="`font-family:${n.v.ff} !important;`">寰呭畾</span> + <el-select v-if="(getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state==1&&PROJECT=='瑁呭鐢电紗'" + class="table_input" v-model="n.v.v" @change="saveInsContext()"> + <el-option label="鍚堟牸" :value="1"></el-option> + <el-option label="涓嶅悎鏍�" :value="0"></el-option> + </el-select> + <template v-if="PROJECT=='妫�娴嬩腑蹇�'||PROJECT=='瑁呭鐢电紗'&&getInspectionValueType(n.i) != 2 "> + <span v-if="n.v.v===1" :style="`font-family:${n.v.ff} !important;color: green;`">鍚堟牸</span> + <span v-else-if="n.v.v===0" :style="`font-family:${n.v.ff} !important;color: red;`">涓嶅悎鏍�</span> + <span v-else-if="n.v.v===3" :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`">涓嶅垽瀹�</span> + <span v-else :style="`font-family:${n.v.ff} !important;`">寰呭畾</span> + </template> </template> <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璁惧缂栫爜' && state==1"> - <el-select v-model="n.v.v" placeholder="璁惧" @visible-change="e=>getEquipOptions(e,n.i)" - remote @change="(val)=>changeEquip(val, n)"> + <el-select v-model="n.v.v" placeholder="璁惧" + class="table_input" @visible-change="e=>getEquipOptions(e,n.i)" remote + @change="(val)=>changeEquip(val, n)"> <el-option v-for="item in equipOptions" :key="item.value" :label="item.value" :value="item.value"> </el-option> </el-select> </template> - <span v-else :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璁惧鍚嶇О' && state==1"> + <span>{{ n.v.v }}</span> + </template> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='瑕佹眰鍊�' && state==1"> + <span :style="`font-family:${n.v.ff} !important;`">{{getTell(n.i)}}</span> + </template> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璁$畻鍊�' && state==1"><span :style="`font-family:${n.v.ff} !important;`">{{ toFixed(n.v.v,n.v.ct) }}</span></template> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏈�缁堝��' && state==1"> + <!-- <el-input class="table_input" type="textarea" + :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" + v-model="n.v.v" @change="saveInsContext()" v-if="getInspectionValueType(n.i) == 2"></el-input> + <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v" + :disabled="state>1" @visible-change="e=>getDic(e,n.i)" @change="saveInsContext()"> + <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option> + </el-select> --> + <span :style="`font-family:${n.v.ff} !important;`">{{ toFixed(n.v.v,n.v.ct) }}</span> + </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> --> + <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> --> + </div> + </template> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧鍨嬪彿'"> + <div :style="`font-family:${n.v.ff} !important;`" v-if="currentSample.model!==undefined&¤tSample.model!==null">{{currentSample.model}}</div> + </template> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璇曢獙鏍囧噯'"> + <div :style="`font-family:${n.v.ff} !important;`" v-if="currentSample.testRequirements!==undefined&¤tSample.testRequirements!==null">{{currentSample.testRequirements}}</div> + </template> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='濂楃'"> + <div style="display: flex;flex-wrap: nowrap;align-items: center;"> + <!-- <i class="el-icon-caret-left table_caret" @click="caretBushing(-1)"></i> --> + <div :style="`font-family:${n.v.ff} !important;`">{{currentBushing?currentBushing.color:''}}</div> + <!-- <i class="el-icon-caret-right table_caret" @click="caretBushing(1)"></i> --> + </div> + </template> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鍏夌氦甯�'"> + <div style="display: flex;flex-wrap: nowrap;align-items: center;"> + <i class="el-icon-caret-left table_caret" @click="caretTape(-1) + " v-if="currentFiberOpticTape"></i> + <div :style="`font-family:${n.v.ff} !important;`">{{currentFiberOpticTape?currentFiberOpticTape.code:''}}</div> + <i class="el-icon-caret-right table_caret" + v-if="currentFiberOpticTape" + @click="caretTape(1)"></i> + </div> + </template> + <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鍏夌氦'"> + <div style="display: flex;flex-wrap: nowrap;align-items: center;"> + <i class="el-icon-caret-left table_caret" @click="caretOptic(-1)" + v-if="currentFiberOptic"></i> + <div :style="`font-family:${n.v.ff} !important;`">{{currentFiberOptic?currentFiberOptic.color:''}} + </div> + <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> </td> </tr> </tbody> </table> </div> + <!-- 娓╁害寰幆妫�楠屽師濮嬭褰� --> + <div v-loading="tableLoading" v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'"> + <el-divider></el-divider> + <h4 style="margin-bottom: 20px;font-size: 24px;font-weight: 400;text-align: center;">娓╁害寰幆妫�楠屽師濮嬭褰�</h4> + <el-form :inline="true" :model="wareForm" class="form-inline" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;"> + <el-form-item label="鍨嬪彿:" style="margin-bottom: 0;"> + <el-input clearable v-model="wareForm0.model" disabled size="small" placeholder=""></el-input> + </el-form-item> + <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0;"> + <el-input clearable v-model="wareForm0.methodName" disabled size="small" placeholder=""></el-input> + </el-form-item> + <!-- <el-form-item label="妫�娴嬩緷鎹�:" style="margin-bottom: 0;"> + <el-input clearable v-model="wareForm0.sample" disabled size="small" placeholder=""></el-input> + </el-form-item> --> + <el-form-item label="寰幆娆℃暟:" style="margin-bottom: 0;"> + <el-select v-model="wareForm.inspectionItem" placeholder="璇烽�夋嫨" size="small" @change="m=>wareFormChange(m,'inspectionItem')"> + <el-option + v-for="item in numOptions" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="娓╁害:" style="margin-bottom: 0;"> + <el-select v-model="wareForm.inspectionItemSubclass" placeholder="璇烽�夋嫨" size="small" @change="m=>wareFormChange(m,'inspectionItemSubclass')"> + <el-option + v-for="item in temperatureOptions" + :key="item.value" + :label="item.label" + :value="item.value"> + </el-option> + </el-select> + <span style="margin-left: 4px;">鈩�</span> + </el-form-item> + </el-form> + <el-divider></el-divider> + <el-form :inline="true" :model="equipForm" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;"> + <el-form-item label="浠櫒鍚嶇О:"> + <el-input clearable v-model="equipForm.value0" disabled size="small" placeholder=""></el-input> + </el-form-item> + <el-form-item label="浠櫒缂栧彿:"> + <el-select v-model="equipForm.code0" :disabled="state>1" placeholder="璇烽�夋嫨" size="small"> + <el-option + v-for="item in equipOptions" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="浠櫒鍚嶇О:" > + <el-input clearable v-model="equipForm.value1" disabled size="small" placeholder=""></el-input> + </el-form-item> + <el-form-item label="浠櫒缂栧彿:"> + <el-select v-model="equipForm.code1" :disabled="state>1" placeholder="璇烽�夋嫨" size="small"> + <el-option + v-for="item in equipOptions" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + </el-form> + <el-table + :data="wareTableData" + ref="wareTableData" + border + v-loading="wareTableDataLoading" + style="width: 100%;margin-bottom: 30px;" align="center" v-if="wareForm.inspectionItemSubclass!='20(甯告俯)'&&wareForm.inspectionItemSubclass!='20'||(wareForm.inspectionItemSubclass=='20(甯告俯)'&&wareForm.inspectionItem==1)||(wareForm.inspectionItemSubclass=='20'&&wareForm.inspectionItem==numOptions.length)"> + <el-table-column + label="搴忓彿" + type="index" + width="59" + align="center" + > + </el-table-column> + <el-table-column + prop="bushColor" + label="绠¤壊鏍�" + width="75" + align="center"> + </el-table-column> + <el-table-column + prop="code" + label="鍏夌氦甯︾紪鍙�" + width="105" + align="center"> + </el-table-column> + <el-table-column + prop="color" + label="鍏夌氦鑹叉爣" + align="center" + width="90"> + </el-table-column> + <template v-for="(item,index) in wareLength"> + <el-table-column + prop="value0" + label="澶栫" + align="center" + width="100" :key="(new Date().getTime())+'1234567'"> + <template slot="header"> + {{ '澶栫'+(index+1) }} + </template> + <template slot-scope="scope"> + <el-input size="small" v-model="scope.row.arr[index].value0" placeholder="" :disabled="state>1||!dataAcquisitionEidtAble" @change="m=>changeItem(scope.row.arr[index])"></el-input> + </template> + </el-table-column> + <el-table-column + prop="value1" + label="鍐呯" + align="center" + width="100" :key="(new Date().getTime())+'23333333'"> + <template slot="header"> + {{ '鍐呯'+(index+1) }} + </template> + <template slot-scope="scope"> + <el-input size="small" :disabled="state>1||!dataAcquisitionEidtAble" v-model="scope.row.arr[index].value1" placeholder="" @change="m=>changeItem(scope.row.arr[index])"></el-input> + </template> + </el-table-column> + <el-table-column + prop="comValue" + align="center" + min-width="150" :key="(new Date().getTime())+'364654654'"> + <template slot="header"> + {{ '琛板噺绯绘暟'+item }} + </template> + <template slot-scope="scope"> + <span>{{ scope.row.arr[index].comValue }}</span> + </template> + </el-table-column> + <el-table-column + prop="resValue" + label="琛板噺宸�" + align="center" + v-if="wareForm.inspectionItemSubclass!='20(甯告俯)'" + min-width="90" :key="(new Date().getTime())+'434634634634'"> + <template slot="header"> + {{ '琛板噺宸�'+(index+1) }} + </template> + <template slot-scope="scope"> + <span>{{ scope.row.arr[index].resValue }}</span> + </template> + </el-table-column> + <el-table-column + prop="insResult" + label="缁撹" + align="center" + min-width="70" v-if="wareForm.inspectionItemSubclass!='20(甯告俯)'" :key="(new Date().getTime())+'53457689809808-'"> + <template slot="header"> + {{ '缁撹'+(index+1) }} + </template> + <template slot-scope="scope"> + <span v-if="scope.row.arr[index].insResult===1" style="color: green;">鍚堟牸</span> + <span v-else-if="scope.row.arr[index].insResult===0" style="color: red;">涓嶅悎鏍�</span> + <span v-else-if="scope.row.arr[index].insResult===3" style="color: #3A7BFA;">涓嶅垽瀹�</span> + <span v-else>寰呭畾</span> + </template> + </el-table-column> + </template> + </el-table> + </div> + <!-- 鐑惊鐜�/娓╁崌璇曢獙妫�楠屽師濮嬭褰� --> + <div v-loading="tableLoading" v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐑惊鐜�')||tableLists.find(m=>m.templateId==currentTable).templateName.includes('娓╁崌璇曢獙')"> + <el-divider></el-divider> + <h4 style="margin-bottom: 20px;font-size: 24px;font-weight: 400;text-align: center;">{{tableLists.find(m=>m.templateId==currentTable).templateName}}</h4> + <el-form :inline="true" :model="wareForm" class="form-inline" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;"> + <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0;"> + <el-input clearable v-model="equipForm.value0" disabled size="small" placeholder=""></el-input> + </el-form-item> + <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0;"> + <el-input clearable v-model="equipForm.value1" disabled size="small" placeholder=""></el-input> + </el-form-item> + <el-form-item label="鍨嬪彿:" style="margin-bottom: 0;"> + <el-input clearable v-model="thermalCyclingInfo.model" disabled size="small" placeholder=""></el-input> + </el-form-item> + <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0;"> + <el-input clearable v-model="thermalCyclingInfo.methodName" disabled size="small" placeholder=""></el-input> + </el-form-item> + </el-form> + <el-divider></el-divider> + <el-form :inline="true" :model="equipForm" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;"> + <el-form-item label="浠櫒缂栧彿:"> + <el-select v-model="equipForm.code0" :disabled="state>1" placeholder="璇烽�夋嫨" size="small"> + <el-option + v-for="item in equipOptions" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="浠櫒缂栧彿:"> + <el-select v-model="equipForm.code1" :disabled="state>1" placeholder="璇烽�夋嫨" size="small"> + <el-option + v-for="item in equipOptions" + :key="item.value" + :label="item.value" + :value="item.value"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="寰幆娆℃暟:" v-if="thermalCyclingInfo.inspectionItemClass=='鐩存祦鐢甸樆'"> + <el-input-number v-model="thermalCyclingInfo.inspectionItem" :min="1" :max="thermalCyclingInfo.max" label="" style="margin-top:4px;width: 190px;" size="small" @change="thermalCyclingChange"></el-input-number> + </el-form-item> + <el-button type="primary" size="small" style="margin-bottom: 22px;margin-left: 30px;" @click="handleAddThermal" v-if="state==1">鏂板</el-button> + <el-button size="small" style="margin-bottom: 22px;" @click="handleDeleteThermal" v-if="state==1">鍒犻櫎</el-button> + </el-form> + <div class="table-container" v-loading="thermalCyclingLoading"> + <table border="1" cellpadding="10" class="thermal-table"> + <tr> + <td>妫�楠岄」鐩�</td> + <td :colspan="thermalCyclingInfo.length">妫�楠岃繃绋嬪��</td> + <td style="width: 100px;">缁撹</td> + </tr> + <tr v-for="(item,index) in thermalCyclingInfo.arr"> + <td style="width: 100px;text-align: center;">{{ item.name }}</td> + <td v-for="(m,i) in thermalCyclingInfo.length" style="min-width: 150px;"> + <div style="display: flex;align-items: center;margin-bottom: 5px;"> + <label style="width: 100px;white-space: nowrap;font-size: 12px;">娓╁害:</label> + <el-input clearable size="small" placeholder="" v-model="item.arr[i].value0" :disabled="state>1" @change="m=>saveThermalCycling(m,item,'value0')"></el-input> + <span style="font-size: 12px;margin-left: 13px;margin-right: 13px;"> 鈩�</span> + </div> + <div style="display: flex;align-items: center;" v-if="item.name!='鐜娓╁害'&&thermalCyclingInfo.inspectionItemClass=='鐩存祦鐢甸樆'"> + <label style="width: 100px;white-space: nowrap;font-size: 12px;">鐩存祦鐢甸樆:</label> + <el-input clearable size="small" :disabled="state>1" placeholder="" v-model="item.arr[i].value1" @change="saveThermalCycling"></el-input> + <span style="margin-left: 5px;font-size: 12px;"> 惟/km</span> + </div> + </td> + <td> + <template v-if="item.name=='鐜娓╁害'||item.name=='瀵肩嚎娓╁害'"> + <span>/</span> + </template> + <template v-else> + <span v-if="item.insResult===1" style="color: green;">鍚堟牸</span> + <span v-else-if="item.insResult===0" style="color: red;">涓嶅悎鏍�</span> + <span v-else-if="item.insResult===3" style="color: #3A7BFA;">涓嶅垽瀹�</span> + <span v-else>寰呭畾</span> + </template> + </td> + </tr> + </table> + </div> + </div> + <!-- 鐢佃矾璇曢獙 --> + <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" 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: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" :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" + :key="upIndex" style="height: 100%;margin-top: 16px;"/> </div> - <el-drawer title="鏍峰搧鍒囨崲" :visible.sync="sampleVisible" :size="500"> + <el-drawer title="鏍峰搧鍒囨崲" :visible.sync="sampleVisible" :size="500" :modal="!noBack"> <el-table class="el-table" ref="productTable" :data="sampleProduct" height="100%" tooltip-effect="dark" border highlight-current-row @row-click="handleChangeSample" :row-class-name="tableRowClassName" :current-row-key="currentKey" :row-key="record=>record.index" v-if="sampleVisible"> @@ -249,6 +785,7 @@ size="medium" style="margin-right: 5px;">{{item.label}}</el-tag> </template> </el-table-column> + <el-table-column prop="checkName" label="妫�楠屼汉" min-width="80px" show-overflow-tooltip></el-table-column> <el-table-column prop="isLeave" label="鏄惁鐣欐牱" width="95px" show-overflow-tooltip align="center"> <template slot-scope="scope"> <span>{{ scope.row.isLeave==0?'鍚�':'鏄�' }}</span> @@ -256,23 +793,22 @@ </el-table-column> <!-- 妫�楠屽崟浼氭湁涓�涓槸鍚︽湁閰嶅鏍峰搧瀛楁鎺у埗鏄剧ず --> <el-table-column prop="joinModel" label="閰嶅鏍峰搧鍨嬪彿" min-width="130px" show-overflow-tooltip - v-if="insOrder.mating>0"></el-table-column> + v-if="insOrder.mating>0"></el-table-column> <el-table-column prop="joinName" label="閰嶅鏍峰搧鍚嶇О" min-width="130px" show-overflow-tooltip - v-if="insOrder.mating>0"></el-table-column> + v-if="insOrder.mating>0"></el-table-column> <el-table-column prop="joinNum" label="閰嶅鏍峰搧鏁伴噺" min-width="130px" show-overflow-tooltip - v-if="insOrder.mating>0"></el-table-column> + v-if="insOrder.mating>0"></el-table-column> </el-table> </el-drawer> <el-drawer title="浠诲姟鍒囨崲" :visible.sync="taskVisible" :size="500"> - <ValueTable class="value-table" ref="insOrderPlan" :url="$api.insOrderPlan.selectInsOrderPlanList" - :componentData="componentData" :key="upIndex" /> + <ValueTable class="value-table" ref="insOrderPlan" :url="$api.insOrderPlan.inspectionOrderDetailsTaskSwitching" + :componentData="componentData" :key="upIndex" style="height: 100%;"/> </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> + <el-input size="small" clearable v-model="noReason" type="textarea" :autosize="{ minRows: 4}"></el-input> </div> </div> <span slot="footer" class="dialog-footer"> @@ -280,21 +816,190 @@ <el-button type="primary" @click="handleReviewDia" :loading="reviewLoading">纭� 瀹�</el-button> </span> </el-dialog> + <el-dialog title="鎸囧畾澶嶆牳浜哄憳" :visible.sync="addVerifyDia" 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-select v-model="verifyUser" placeholder="璇烽�夋嫨" size="small" style="width: 100%;" clearable filterable> + <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value"> + </el-option> + </el-select> + </div> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="addVerifyDia = false">鍙� 娑�</el-button> + <el-button type="primary" @click="submit()">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog title="鏁版嵁閲囬泦" :visible.sync="dataGetDia" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" custom-class="custom-dialog"> + <div> + <table border="1" cellpadding="10" class="thermal-table"> + <tr> + <td style="width: 120px;">妫�楠岄」</td> + <td style="width: 120px;">妫�楠屽瓙椤�</td> + <td>鏁伴噰鏁版嵁</td> + </tr> + <template v-for="(item,index) in getData"> + <tr> + <td :rowspan="item.child.length">{{item.faName}}</td> + <td>{{ item.child[0].name }}</td> + <td style="text-align: left;"> + <el-checkbox-group + v-model="getDataIndex" :max="item.child[0].maxNum"> + <el-checkbox v-for="(n,j) in item.child[0].arr" :label="j" :key="j">{{n}}</el-checkbox> + </el-checkbox-group> + </td> + </tr> + <tr v-for="(m,i) in item.child" :key="i+'bbbbbbbbbbbbbb'" v-show="i>0"> + <td>{{ m.name }}</td> + <td style="text-align: left;"> + <el-checkbox-group + v-model="getDataIndex" :max="m.maxNum"> + <el-checkbox v-for="(n,j) in m.arr" :label="j" :key="j">{{n}}</el-checkbox> + </el-checkbox-group> + </td> + </tr> + </template> + </table> + </div> + <span slot="footer" class="dialog-footer"> + <el-button type="primary" @click="submitDataGet()" :loading="getDataIndexLoading">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog + title="閫夋嫨鐢佃矾妫�楠屾ā鏉跨増鏈�" + :visible.sync="versionDialogVisible" + width="30%" + :close-on-click-modal="false" + :close-on-press-escape="false" + :show-close="false"> + <el-radio-group v-model="currentTableState"> + <el-radio :label="0">鐢佃皟-鐢佃矾妫�楠屽師濮嬭褰�</el-radio> + <el-radio :label="1">闈炵數璋�-鐢佃矾妫�楠屽師濮嬭褰�</el-radio> + </el-radio-group> + <span slot="footer" class="dialog-footer"> + <el-button type="primary" :loading="versionLoading" @click="saveVersion">纭� 瀹�</el-button> + </span> + </el-dialog> + <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 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> + <el-button type="primary" @click="submit0">纭� 瀹�</el-button> + </span> + </el-dialog> + <el-dialog + title="鏂囦欢棰勮" + :visible.sync="lookFileVisible" + 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 { - set - } from 'shelljs'; import ValueTable from '../../tool/value-table.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'], + props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1','noBack','orderId0','userInfo'], components: { ValueTable, + CircuitParameters1, + CircuitParameters2, + CircuitParameters3, + filePreview, + Humidity, + PowerCapacity, }, data() { return { + lookFileVisible:false,//棰勮鏂囦欢 + experimentDia:false, + experimentDia0:false, + upInsReviewDia:false, + upInsReviewType:1, + experimentInfo:{ + note:'', + term:'' + }, + currentNum:0, + versionLoading:false, + versionDialogVisible:false, + currentTableState:0, + dataGetDia:false, + wareTableDataLoading:false, + fileAdd:false, sampleVisible: false, taskVisible: false, submitLoading: false, @@ -329,7 +1034,62 @@ requiredAdd: [], requiredUp: [] }, + componentData0: { + entity: { + insSampleId:'', + sonLaboratory:this.sonLaboratory, + insOrderId:'' + }, + isIndex: true, + showSelect: false, + select: false, + sort: false, + init:false, + do: [ + { + id: 'handleDown', + font: '涓嬭浇', + type: 'text', + method: 'handleDown' + },{ + id: 'delete', + font: '鍒犻櫎', + type: 'text', + method: 'doDiy', + disabFun: (row, index) => { + return this.state!=1 + } + }, + { + id: '1', + font: '棰勮', + type: 'text', + method: 'lookFile', + } + ], + isPage: false, + linkEvent: {}, + tagField: { + type:{ + select:[ + { + value: 1, + label: '鍥剧墖' + }, + { + value: 2, + label: '鏂囦欢' + } + ] + } + }, + currentId: '', + selectField: {}, + requiredAdd: [], + requiredUp: [] + }, upIndex: 0, + changeType:null, insOrder: {}, sampleProduct: [], typeList: [], @@ -340,6 +1100,9 @@ ps: {}, param: {}, currentKey: 1, + currentKey0: 1, + currentKey1: 1, + currentKey2: 1, comparisonList: [], excelMethodList: [], equipOptions: [], @@ -347,74 +1110,1258 @@ reviewLoading: false, reviewDia: false, noReason: '', - tableWidth: 1000 + tableWidth: 1000, + currentTable: null, + tableLists: [], + widthList: [], + addVerifyDia: false, + verifyUser: null, + personList: [], + enumList: [], + fiberOpticTape:[],//鍏夌氦甯﹀垪琛� + fiberOptic:[],//鍏夌氦鍒楄〃 + bushing:[],//濂楃鍒楄〃 + currentFiberOpticTape:null,//褰撳墠鍏夌氦甯� + currentFiberOptic:null,//褰撳墠鍏夌氦 + currentBushing:null,//褰撳墠濂楃 + tableLoading:false, + upLoading:false, + temptList:null, + fiber:[], + fibers:[], + casing:[], + currentTab:null, + wareForm:{ + inspectionItem:1, + inspectionItemSubclass:'20(甯告俯)', + }, + wareForm0:{}, + numOptions:[], + temperatureOptions:[], + wareTableData:[], + equipForm:{ + value0:null, + code0:null, + value1:null, + code1:null, + }, + result: null, + worker: null, + worker0: null, + wareLength:[], + dataAcquisitionInfo:{}, + dataAcquisitionInfoNew:{}, + dataAcquisitionEidtAble:false, + isGet:false, + dataAcquisitionLoading:false, + collected:false, + // 鐑惊鐜�---寮�濮� + thermalCyclingInfo:{ + max:0, + inspectionItem:1, + arr:[], + length:1, + inspectionItemClass:null, + }, + thermalCyclingLoading:false, + temDataAcquisition:false, + getData:[], + getDataIndex:[], + getDataIndexLoading:false, + changeType:null, + getDataTypeId:'', + getDataType:null, + num:0, + otherForm:{ + temperature:'', + humidity:'' + }, + currentFile:{},//褰撳墠鏂囦欢 + templates:[],//鐢佃矾璇曢獙妯℃澘 + templateDia:false,//鐢佃矾璇曢獙妯℃澘淇濆瓨妯℃澘寮规 + template:null, + templateLoading:false, + templateName:'', + addInsProductTemplatePower:false,//閰嶇疆妯℃澘鏉冮檺 + newUserInfo:[] } }, + // 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭� + computed: { + headers() { + return { + 'token': sessionStorage.getItem('token') + } + }, + action() { + return this.javaApi + this.$api.insOrderPlan.uploadFile + } + }, created() { this.componentData.entity.sonLaboratory = this.sonLaboratory; this.id = this.orderId; + this.currentTableState = this.version + this.num = this.num1 this.getUserInfo() }, mounted() { this.getTypeDicts() this.getInsStateDicts() this.getComparisonList() + this.getAuthorizedPerson() + this.scrollInit() + this.getPower() + this.startWorker() }, watch: { + // 鐩戝惉浠诲姟id锛岃幏鍙栦换鍔′俊鎭� id(val) { this.loading = true this.$axios.post(this.$api.insOrderPlan.doInsOrder, { - id: val, + sampleId: val, laboratory: this.sonLaboratory - }).then(res => { + }).then(async res => { this.insOrder = res.data.insOrder; + 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 } }) + this.loading = false + if(!res.data.sampleProduct||res.data.sampleProduct.length==0){ + return this.$message.error('璇ヤ换鍔℃病鏈夋牱鍝佷俊鎭�') + } + // 璧嬪�煎綋鍓嶆牱鍝佸垪琛� this.sampleProduct = res.data.sampleProduct - this.currentSample = this.sampleProduct[0] + this.currentSample = this.HaveJson(this.sampleProduct[0]) + let insProduct = this.HaveJson(this.currentSample.insProduct) + // 娓╁害銆佹箍搴﹁祴鍊� + if(insProduct&&insProduct.length>0){ + let {temperature,humidity} = insProduct[0]; + this.otherForm = { + temperature:temperature?temperature:null, + humidity:humidity?humidity:null, + } + } + // 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」 + let list = await this.getCurrentProduct(this.currentSample.id,0) + this.currentSample.insProduct = this.HaveJson(list) + // 鍒濆鍖栦紶閫掑埌鍚庣鐨勫弬鏁� + this.param = {} + this.changeType = 0; this.currentSample.insProduct.forEach(a => { + // 鏄惁涓烘垚鍝佺數缂嗕笅鐨勬澗濂楃椤圭洰锛屼笉鏄垯鎵ц鍒濆鍖� + if(this.handleCasing(a.inspectionItem)){ + this.param[a.id] = { + insValue: [], + comValue: [], + resValue: null, + equipValue: [], + equipName: [], + insResult: null, + beforeCheck:null, + afterCheck:null, + } + } + }) + this.determineWhetherToCollectData()//鏄惁闇�瑕佹暟閲� + if (this.currentSample.index == undefined) this.currentSample['index'] = 1 + let bushing = this.currentSample.bushing + this.getTableLists();//澶勭悊妯℃澘鍒楄〃淇℃伅 + + this.componentData.currentId = val; + this.currentKey = 1; + // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁---涓嬮潰淇℃伅鏆傛椂鍙拷鐣� + this.fiberOpticTape = [] + this.currentFiberOpticTape = null; + this.fiberOptic = [] + this.currentFiberOptic = null; + this.bushing = [] + this.currentBushing = null; + this.currentTab = null; + if(bushing&&bushing.length>0){ + this.bushing = bushing + } + }) + }, + // 鐩戝惉褰撳墠妯℃澘鍙樺寲 + currentTable(val1, val0) { + if (val0 != null && val1 != val0) { + // if(this.tableLists.find(m=>m.templateId==val1)&&(this.tableLists.find(m=>m.templateId==val1).templateName=='鎴愬搧缂嗘楠屽師濮嬭褰�')){ + // if(this.casing.length>0){ + // this.handleChange(this.casing[0].id,3) + // } + // return + // } + if(this.changeType&&this.changeType>0){ + // 濡傛灉鏄厜绾ゃ�佸厜绾ゅ甫锛屽垯涓嶆墽琛屼笅闈㈡搷浣� + return + } + this.tableLists.forEach(async (m, i) => { + if (m.templateId == val1) { + let list = await this.getCurrentProduct(this.currentSample.id,0) + this.currentSample.insProduct = this.HaveJson(list)//璧嬪�煎綋鍓嶆牱鍝佺殑妫�楠岄」 + this.param = {}//鍒濆鍖栦紶鍒板悗绔殑鍙傛暟 + this.currentSample.insProduct.forEach((a, j) => { + if(this.handleCasing(a.inspectionItem)){ + this.param[a.id] = { + insValue: [], + comValue: [], + resValue: null, + equipValue: [], + equipName: [], + insResult: null + } + } + }) + // 鍘婚噸妯℃澘锛岃繑鍥炴湁鍑犱釜妯℃澘 + const mySet1 = new Set(); + this.tableLists = this.currentSample.insProduct.filter(m => { + let num0 = mySet1.size; + if (m.templateId != null&&m.template != null) { + try { + mySet1.add(JSON.stringify({ + template: m.template, + templateId: m.templateId + })) + } catch (error) { + console.log(222,error); + } + } + let num1 = mySet1.size; + if (num1 > num0) { + return m + } + }); + if (this.tableLists && this.tableLists.length > 0) { + this.tableList = null; + this.tableList = this.tableLists.filter(m => m.templateId == val1) + // 瀵规ā鏉胯繘琛屽鐞� + this.handleTableData() + } + } + }) + } + }, + // 鐗规畩妫�楠岄」--鐩戝惉璁惧淇℃伅鏀瑰彉 + equipForm:{ + deep:true, + handler(val){ + if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐑惊鐜�')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('娓╁崌璇曢獙'))&&this.equipOptions&&this.equipOptions.length>0){ + // 鍒濆鍖栬澶囦俊鎭� + this.param[this.currentSample.insProduct[0].id].equipValue = [] + this.param[this.currentSample.insProduct[0].id].equipName = [] + if(this.equipForm.code0){ + // 璧嬪�肩涓�涓澶囩殑淇℃伅 + this.equipForm.value0 = this.equipOptions.find(m=>m.value==this.equipForm.code0).label + this.param[this.currentSample.insProduct[0].id].equipValue.push({ + i:this.currentSample.insProduct[0].id, + v:{ + v:this.equipForm.code0 + } + }) + this.param[this.currentSample.insProduct[0].id].equipName.push({ + i:this.currentSample.insProduct[0].id, + v:{ + v:this.equipForm.value0 + } + }) + } + if(this.equipForm.code1){ + // 璧嬪�肩浜屼釜璁惧鐨勪俊鎭� + this.equipForm.value1 = this.equipOptions.find(m=>m.value==this.equipForm.code1).label + this.param[this.currentSample.insProduct[0].id].equipValue.push({ + i:this.currentSample.insProduct[0].id, + v:{ + v:this.equipForm.code1 + } + }) + this.param[this.currentSample.insProduct[0].id].equipName.push({ + i:this.currentSample.insProduct[0].id, + v:{ + v:this.equipForm.value1 + } + }) + } + // 淇濆瓨鏁版嵁 + this.saveInsContext(this.currentSample.insProduct[0].id) + } + } + }, + }, + beforeDestroy() { + // 鍦ㄧ粍浠堕攢姣佸墠纭繚鍋滄 Worker锛岄伩鍏嶅唴瀛樻硠婕� + this.stopWorker(); + }, + methods: { + // 鏁版嵁閲囬泦 + getDataAcquisitionDevice(){ + if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'){ + // 娓╁害寰幆妫�楠屽師濮嬭褰�----鏁伴噰----PK8000 + let temperature = this.wareForm.inspectionItemSubclass; + if(typeof temperature == 'string'&&temperature.includes('(甯告俯)')){ + temperature = `20鈩�(甯告俯)` + }else{ + temperature = temperature + '鈩�' + } + this.dataAcquisitionLoading = true + this.$axios.post(this.$api.deviceScope.temDataAcquisition,{ + entrustCode:this.insOrder.entrustCode, + sampleCode:this.currentSample.sampleCode, + model:this.wareForm0.model, + cycles:this.wareForm.inspectionItem, + temperature:temperature, + }, { + headers: { + 'Content-Type': 'application/json' + }, + noQs:true + }).then(res=>{ + this.dataAcquisitionLoading = false + if(res.code!=200){ + return + } + // 璧嬪�煎洖鏄綪K8000鐨勬暟鎹� + this.wareFormChange() + }) + }else{ + // 涓�鑸殑鏁版嵁閲囬泦 + this.dataAcquisitionLoading = true + this.$axios.get(this.$api.deviceScope.dataCollection+'?entrustCode='+this.insOrder.entrustCode+'&sampleCode='+this.currentSample.sampleCode + '&id=' + this.currentSample.id).then(res=>{ + this.dataAcquisitionLoading = false + if(res.code!=200){ + return + } + this.dataAcquisitionInfoNew = this.HaveJson(res.data) + // 瀵规暟閲囧洖鏉ョ殑鍊艰繘琛屽鐞� + this.handleDataAcquisition(res.data) + }) + } + }, + handleDataAcquisition(data){ + // 鏄惁鍙互缂栬緫鏁伴噰鏁版嵁 + if(this.dataAcquisitionEidtAble){ + this.getDataType = 1; + }else{ + this.getDataType = 2; + } + this.dataAcquisitionInfo = {} + this.getData = [] + for (let i in data){ + let obj = { + faName:i, + child:[] + } + // 寰幆鏁伴噰鏁版嵁 + for(let j in data[i]){ + // 鎷兼帴瀛楃涓� 妫�楠岄」+妫�楠屽瓙椤� + let str0 = '' + if(i==j){ + str0 = i+',' + }else{ + str0 = i+','+j + } + if(j!='frequency'&&data[i][j]&&(!data[i][j].result||typeof data[i][j].result == 'string')){ + // 澶勭悊鏁伴噰淇℃伅鏍煎紡 + this.dataAcquisitionInfo[str0] = { + value:data[i][j].result, + frequency:data[i].frequency + } + let list = this.tableList[0].arr + // 寰幆椤甸潰鍒楄〃淇℃伅锛屽垽鏂暟閲囨暟鎹搴旈〉闈㈠垪琛ㄤ俊鎭殑妫�楠岄」鏄摢涓紝骞剁粰褰撳墠妫�楠岄」缁戝畾璁惧淇℃伅 + list.forEach((item,index)=>{ + let num0 = 0; + let str = '' + item.forEach(m=>{ + if(m.v.ps&&(m.v.ps.value=='妫�楠屽瓙椤�'||m.v.ps.value=='妫�楠岄」')){ + if(m.v.ps&&m.v.ps.value=='妫�楠岄」'){ + if(num0==0){ + str = m.v.v+',' + num0++ + } + } + if(m.v.ps&&m.v.ps.value=='妫�楠屽瓙椤�'){ + if(num0==1){ + str = str+m.v.v + } + } + } + // 缁戝畾璁惧淇℃伅 + if(data[i][j].equipName&&data[i][j].equipValue&&m.v&&m.v.ps&&m.v.ps.value=='璁惧缂栫爜'&&str0==str){ + if(!m.v.v){ + this.changeEquip(data[i][j].equipValue,m,data[i][j].equipName) + } + } + }) + }) + }else if(j!='frequency'&&data[i][j]&&Array.isArray(data[i][j].result)){ + // 濡傛灉杩斿洖鐨勬暟閲囨暟鎹槸鏁扮粍锛屽垯澶勭悊鏁扮粍 + // 浠ヤ笅閫昏緫涓鸿幏鍙栨瘡涓楠岄」鍙緭鍏ョ殑妫�楠屽�肩殑鏈�澶т釜鏁� + let str0 = '' + if(i==j){ + str0 = i+',' + }else{ + str0 = i+','+j + } + let list = this.tableList[0].arr + let maxNum = 0 + list.forEach((item,index)=>{ + let num0 = 0; + let str = '' + item.forEach(m=>{ + if(m.v.ps&&(m.v.ps.value=='妫�楠屽瓙椤�'||m.v.ps.value=='妫�楠岄」')){ + if(m.v.ps&&m.v.ps.value=='妫�楠岄」'){ + if(num0==0){ + str = m.v.v+',' + num0++ + } + } + if(m.v.ps&&m.v.ps.value=='妫�楠屽瓙椤�'){ + if(num0==1){ + str = str+m.v.v + } + } + let num = 0; + list[index].forEach(n=>{ + if(n.v.ps&&n.v.ps.value&&typeof n.v.ps.value == 'string'&&n.v.ps.value.includes('妫�楠屽��')){ + num++ + } + }) + if(str0==str){ + maxNum = num + } + } + // 缁戝畾璁惧 + if(data[i][j].equipName&&data[i][j].equipValue&&m.v&&m.v.ps&&m.v.ps.value=='璁惧缂栫爜'&&str0==str){ + if(!m.v.v){ + this.changeEquip(data[i][j].equipValue,m,data[i][j].equipName) + } + } + }) + }) + // let arr3 = [] + // for (let l=0 ;i<data[i][j].result.length;i++){ + // arr3.push({ + // id:, + // value: + // }) + // } + // 鑾峰彇鍒版渶澶ф楠屽�艰緭鍏ヤ釜鏁板悗閲嶇粍鏁版嵁 + let obj0 = { + name:j, + arr:data[i][j].result, + maxNum:maxNum, + value:[] + } + // 濡傛灉鏁伴噰杩斿洖鐨勬暟缁勯暱搴﹀ぇ浜庢渶澶ц緭鍏ヤ釜鏁帮紝鍒欏皢鏁伴噰鏁版嵁鍦ㄥ脊妗嗕腑灞曠ず锛岀敤鎴烽�夋嫨闇�瑕佹墜鍔ㄩ�夋嫨鏁伴噰鐨勪俊鎭� + if(data[i][j].result&&Array.isArray(data[i][j].result)&&data[i][j].result.length>maxNum){ + obj.child.push(obj0) + }else{ + this.dataAcquisitionInfo[str0] = { + value:data[i][j].result + } + } + } + } + if(obj.child.length>0){ + this.getData.push(obj) + } + } + // 濡傛灉瀛樺湪鏁伴噰杩斿洖鐨勬暟缁勯暱搴﹀ぇ浜庢渶澶ц緭鍏ヤ釜鏁帮紝鍒欏脊鍑哄脊妗嗛�夋嫨 + if(this.getData.length>0){ + this.dataGetDia = true + this.getDataIndex = [] + }else{ + // 濡傛灉閮戒笉瀛樺湪锛屽垯锛岃繘鍏ュ鐞嗘暟閲囩嚎绋嬮噷鍘诲鐞嗘暟鎹� + try { + // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫 + this.getDataIndexLoading = false + this.dataGetDia = false + this.getDataTypeId = '' + this.worker0.postMessage(JSON.stringify({ + dataAcquisitionInfo: this.dataAcquisitionInfo, + list:this.tableList[0].arr + })); + } catch (error) { + console.log(1111,error); + } + } + // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋� + this.worker0.onmessage = (event) => { + let result = JSON.parse(event.data); + if(result.method=='changeInput'){ + // 閲囬泦鍚庣殑鏁版嵁锛岄渶瑕佽繘琛岃绠楃殑绾跨▼杩涜璁$畻 + let {list,n} = result.value + this.$set(this.tableList[0],'arr',list) + this.changeInput('',`${this.currentSample.insProduct[0].templateId}-${n.r}-${n.c}-${n.i}`,n) + }else if(result.getDataTypeId){ + // 鑾峰彇鍒版暟閲囨渶鍚庝竴椤癸紝妫�楠岄」鐨処D + this.getDataTypeId = result.getDataTypeId + } + }; + }, + // 濡傛灉瀛樺湪鏁伴噰杩斿洖鐨勬暟缁勯暱搴﹀ぇ浜庢渶澶ц緭鍏ヤ釜鏁帮紝鍒欏脊鍑哄脊妗嗛�夋嫨锛岃繖閲屾槸寮规鐨勬彁浜� + submitDataGet(){ + if(this.getDataIndex.length==0){ + this.$message.error('璇烽�夋嫨闇�瑕侀噰闆嗙殑鏁版嵁') + return + } + this.getDataIndex.sort((a, b) => a - b); + for (let i=0;i<this.getData.length;i++){ + for(let j=0;j<this.getData[i].child.length;j++){ + // 瀵圭敤鎴烽�夋嫨鐨勬暟閲囦俊鎭繘琛屽鐞嗭紝璧嬪�� + let arr = [] + for(let k=0;k<this.getDataIndex.length;k++){ + arr.push( this.dataAcquisitionInfoNew[this.getData[i].faName][this.getData[i].child[j].name].result[this.getDataIndex[k]]) + } + this.dataAcquisitionInfoNew[this.getData[i].faName][this.getData[i].child[j].name].result = arr + } + } + this.getDataIndexLoading = true + // 璧嬪�煎畬鎴愬悗闇�瑕佸啀娆¤繘鍏ュ鐞嗘暟閲囩嚎绋嬮噷鍘诲鐞嗘暟鎹� + this.handleDataAcquisition(this.dataAcquisitionInfoNew) + }, + // 澶氱嚎绋� + startWorker() { + if (this.worker) { + this.stopWorker(); // 纭繚涔嬪墠鐨� Worker 宸插仠姝� + } + // 鍒涘缓 Worker 瀹炰緥 + this.worker = new Worker('/static/js/worker.js'); + if (this.worker0) { + this.stopWorker(); // 纭繚涔嬪墠鐨� Worker 宸插仠姝� + } + // 鍒涘缓 Worker 瀹炰緥 + this.worker0 = new Worker('/static/js/worker0.js'); + }, + // 鍋滄澶氱嚎绋� + stopWorker() { + if (this.worker) { + this.worker.terminate(); + this.worker = null; + } + if (this.worker0) { + this.worker0.terminate(); + this.worker0 = null; + } + }, + // 娓╁害寰幆---寮�濮� + changeItem(row){ + // 鍐呯銆佸绔繘琛岃祴鍊奸�昏緫澶勭悊 + + // 璧嬪�煎埌椤甸潰 + if(row.value0&&!row.value1){ + // 璧嬪�煎唴绔� + this.$set(row,'comValue',Number(row.value0).toFixed(3)) + }else if(!row.value0&&row.value1){ + // 璧嬪�煎绔� + this.$set(row,'comValue',Number(row.value1).toFixed(3)) + }else if(row.value0&&row.value1){ + // 璧嬪�艰绠楀�� + this.$set(row,'comValue',((Number(row.value0)+Number(row.value1))/2).toFixed(3)) + }else{ + return + } + // 璧嬪�煎埌浼犲埌鍚庣鐨勫弬鏁�---鐗规畩椤圭洰蹇呴』涓ユ牸鎸夌収杩欑鏍煎紡浼犲弬锛屽惁鍒欏悗绔瘑鍒笉浜� + // 璧嬪�煎唴澶栫 + this.param[row.id].insValue = [ + { + i:row.id, + v:{ + v:row.value0 + } + }, + { + i:row.id, + v:{ + v:row.value1 + } + } + ] + // 璧嬪�艰绠楀�� + this.param[row.id].comValue = [{ + i:row.id, + v:{ + v:row.comValue + } + }] + // 鍒ゆ柇缁撴灉锛屽緱鍑虹粨璁� + if(this.wareForm.inspectionItemSubclass!='20(甯告俯)'){ + // 缁欓〉闈㈠垪琛ㄨ祴鍊兼渶缁堝�� + row.resValue = row.comValue?Math.abs(row.comValue-Number(row.insProduct.complue)).toFixed(3):'' + // 缁欎紶閫掑埌鍚庣鐨勫弬鏁拌祴鍊兼渶缁堝�� + this.param[row.id].resValue.v.v = row.resValue + // 鍒ゆ柇缁撹锛岀粰椤甸潰鍒楄〃璧嬪�肩粨璁� + if(row.ask&&row.resValue){ + if(row.ask.includes('<')){ + row.insResult = row.resValue<row.ask.split('<')[1]?1:0 + }else if(row.ask.includes('>')){ + row.insResult = row.resValue<row.ask.split('>')[1]?1:0 + }else if(row.ask.includes('=')){ + row.insResult = row.resValue==row.ask.split('=')[1]?1:0 + }else if(row.ask.includes('鈮�')){ + row.insResult = row.resValue>=row.ask.split('鈮�')[1]?1:0 + }else if(row.ask.includes('鈮�')){ + row.insResult = row.resValue<=row.ask.split('鈮�')[1]?1:0 + } + // 缁欎紶閫掑埌鍚庣鐨勫弬鏁拌祴鍊肩粨璁� + this.param[row.id].insResult.v.v = row.insResult + } + }else{ + // 20(甯告俯)榛樿鍚堟牸 + this.param[row.id].insResult.v.v = 1 + } + this.$refs.wareTableData.doLayout() + // 杩涜鏁版嵁鐨勪繚瀛� + this.saveInsContext() + }, + // 褰撳惊鐜鏁般�佹俯搴︾偣鍙樺寲銆丳K8000鏁伴噰鏃朵細璋冪敤锛屼富瑕佹槸鑾峰彇淇℃伅杩涜鍥炴樉 + wareFormChange(m,type){ + if(this.PROJECT!='妫�娴嬩腑蹇�'||!this.tableLists.find(m=>m.templateId==this.currentTable)||this.tableLists.find(m=>m.templateId==this.currentTable).templateName!='娓╁害寰幆妫�楠屽師濮嬭褰�'){ + return + } + if(m&&type){ + this.wareForm[type] = m + } + let wareForm = {...this.wareForm} + if(this.wareForm.inspectionItemSubclass=='20(甯告俯)'){ + wareForm.inspectionItemSubclass ='20鈩�(甯告俯)' + }else{ + wareForm.inspectionItemSubclass = wareForm.inspectionItemSubclass+'鈩�' + } + this.wareTableDataLoading = true + this.$axios.post(this.$api.insOrderPlan.temCycle,{ + sampleId:this.currentSample.id, + ...wareForm + }).then(res => { + this.wareTableDataLoading = false + if (res.code == 201) return + let {productVos,sampleVo} = res.data + this.wareForm0 = sampleVo + // 鍒濆鍖栦紶鍒板悗绔殑鍙傛暟 + productVos = productVos.map(m=>{ + let obj = {...m,...m.insProduct} + this.param[obj.id] = { + insValue: [], + comValue: [], + resValue: { + i:obj.id, + v:{ + v:null + } + }, + equipValue: [], + equipName: [], + insResult: { + i:obj.id, + v:{ + v:null + } + } + } + let insProductResult = obj.insProductResult + // 缁欎紶閫掑埌鍚庣鐨勫弬鏁拌繘琛岃祴鍊硷紝缁欓〉闈㈡暟鎹祴鍊� + if(insProductResult){ + for(let i in insProductResult){ + switch (i) { + // 妫�楠屽�艰祴鍊� + case 'insValue': + let insValue = JSON.parse(insProductResult[i]) + if(insValue&&insValue.length>1){ + // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊� + this.param[obj.id].insValue = [ + { + i:obj.id, + v:{ + v:insValue[0].v + } + }, + { + i:obj.id, + v:{ + v:insValue[1].v + } + } + ] + // 椤甸潰鏁版嵁璧嬪�� + obj.value0 = insValue[0].v + obj.value1 = insValue[1].v + }else if(insValue&&insValue.length==1){ + // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊� + this.param[obj.id].insValue = [ + { + i:obj.id, + v:{ + v:insValue[0].v + } + }, + { + i:obj.id, + v:{ + v:'' + } + } + ] + // 椤甸潰鏁版嵁璧嬪�� + obj.value0 = insValue[0].v + obj.value1 = '' + } + break; + // 璁$畻鍊艰祴鍊� + case 'comValue': + let comValue = JSON.parse(insProductResult[i]) + if(comValue&&comValue.length>0){ + // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊� + this.param[obj.id].comValue = [ + { + i:obj.id, + v:{ + v:comValue[0].v + } + } + ] + // 椤甸潰鏁版嵁璧嬪�� + obj.comValue = comValue[0].v + } + break; + default: + break; + } + } + // 鏈�缁堝�艰祴鍊� + // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊� + this.param[obj.id].resValue = { + i:obj.id, + v:{ + v:obj.lastValue + } + } + // 椤甸潰鏁版嵁璧嬪�� + obj.resValue = obj.lastValue + // 缁撹璧嬪�� + // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊� + this.param[obj.id].insResult = { + i:obj.id, + v:{ + v:obj.insResult + } + } + } + return obj + }) + // 浠ヤ笅鏄娓╁害寰幆椤甸潰鍛堢幇杩涜澶勭悊锛屽幓閲嶃�佹暟鎹噸缃瓑绛� + let arr = [] + let arr0 = [] + let mySet = new Set() + productVos.forEach((m,i)=>{ + let num0 = mySet.size + mySet.add(m.inspectionItemClass) + let num1 = mySet.size + if(num0!=num1){ + if(i>0){ + arr.push(arr0) + } + arr0 = [] + arr0.push(m) + }else{ + arr0.push(m) + } + }) + arr.push(arr0) + let arr1 = [] + this.wareLength = []; + for(let i=0;i<arr.length;i++){ + this.wareLength.push(arr[i][0].inspectionItemClass) + } + for(let i=0;i<arr[0].length;i++){ + arr1.push([]) + } + arr.forEach((item,index)=>{ + item.forEach((m,i)=>{ + try { + arr1[i].push(m) + } catch (e) { + console.log(e) + } + }) + }) + let arr2 = [] + arr1.forEach(item=>{ + let obj = { + bushColor:item[0].bushColor, + code:item[0].code, + color:item[0].color, + arr:item + } + arr2.push(obj) + }) + // 杩欐槸椤甸潰鏈�缁堝憟鐜扮殑鏍煎紡 + this.wareTableData = arr2 + }) + // 鑾峰彇璁惧鍒楄〃 + this.getEquipOptions(true,this.currentSample.insProduct[0].id) + // this.$refs.wareTableData&&this.$refs.wareTableData.doLayout() + }, + // 娓╁害寰幆---缁撴潫 + // 鐑惊鐜�---寮�濮� + // 寰幆娆℃暟鍒囨崲鏃惰皟鐢� + thermalCyclingChange(){ + this.thermalCyclingLoading = true + this.$axios.post(this.$api.insOrderPlan.temCycle,{ + sampleId:this.currentSample.id, + inspectionItem:this.thermalCyclingInfo.inspectionItem + }).then(res => { + this.thermalCyclingLoading = false + if (res.code == 201) return + let {productVos,sampleVo} = res.data + this.thermalCyclingInfo = {...this.thermalCyclingInfo,...sampleVo} + if(this.thermalCyclingInfo.inspectionItem>1){ + for(let i in this.param){ + if(this.param[i].inspectionItemSubclass){ + delete this.param[i] + } + } + } + if(productVos.length>0){ + this.thermalCyclingInfo.inspectionItemClass = productVos[0].insProduct.inspectionItemClass + // 鏍规嵁妫�楠岄」锛屽垵濮嬪寲浼犲埌鍚庣鐨勫弬鏁� + productVos.forEach(item=>{ + this.param[item.insProduct.id] = { + insValue: [], + comValue: [], + resValue: { + i:item.insProduct.id, + r:0, + c:0, + v:{ + v:null + } + }, + equipValue: [], + equipName: [], + insResult: { + i:item.insProduct.id, + v:{ + v:null + } + }, + inspectionItemSubclass: item.insProduct.inspectionItemSubclass, + } + let obj = {...item,...item.insProduct} + let insProductResult = obj.insProductResult + if(insProductResult){ + // 缁欓〉闈㈠垪琛ㄨ祴鍊硷紝缁欏悗绔紶鍙傝祴鍊� + for(let i in insProductResult){ + switch (i) { + case 'insValue': + // 缁欓〉闈㈠垪琛ㄨ祴鍊� + let insValue = JSON.parse(insProductResult[i]) + if(insValue&&insValue.length>0){ + this.thermalCyclingInfo.length = 0 + this.thermalCyclingInfo.arr.forEach(a=>{ + if(a.name==obj.inspectionItemSubclass){ + a.arr = [] + for(let i=0;i<insValue.length;i++){ + a.arr.push({ + value0:insValue[i].v, + value1:insValue[i].w, + }) + this.thermalCyclingInfo.length++ + } + a.insResult = obj.insResult + } + }) + // 缁欏悗绔紶鍙傝祴鍊� + this.param[obj.id].insValue = [] + insValue.forEach(m=>{ + this.param[obj.id].insValue.push({ + i:obj.id, + r:0, + c:0, + w:m.w, + v:{ + v:m.v + } + }) + }) + } + break; + } + } + // 缁欏悗绔紶鍙傝祴鍊� + this.param[obj.id].insResult = { + i:obj.id, + v:{ + v:obj.insResult + } + } + }else{ + // 缁欓〉闈㈠垪琛ㄨ祴鍊� + this.thermalCyclingInfo.arr.forEach(a=>{ + a.insResult = null + a.arr = [] + a.arr.push( + { + value0:'', + value1:'' + } + ) + }) + this.thermalCyclingInfo.length = 1 + } + }) + } + // 鑾峰彇璁惧鍒楄〃 + this.getEquipOptions(true,this.currentSample.insProduct[0].id) + }) + }, + // 娣诲姞妫�楠屽�� + handleAddThermal(){ + this.thermalCyclingInfo.length++ + this.thermalCyclingInfo.arr.forEach(item=>{ + item.arr.push({ + value0:'', + value1:'' + }) + }) + }, + // 鍒犻櫎妫�楠屽�� + handleDeleteThermal(){ + if(this.thermalCyclingInfo.length==1){ + this.$message.error('鏈�鍚庝竴鏉℃暟鎹笉鑳藉垹闄�') + return + }else{ + this.thermalCyclingInfo.length-- + this.thermalCyclingInfo.arr.forEach(item=>{ + item.arr.pop() + }) + // 鍒犻櫎鍚庨渶瑕佷繚瀛樹竴涓嬫暟鎹� + this.saveThermalCycling(true,{name:'瀵肩嚎娓╁害'},true) + } + }, + saveThermalCycling(m,item,type){ + // 缁撴灉鍒ゆ柇 + if(m&&item&&type){ + if(item.name=='瀵肩嚎娓╁害'||item.name=='鑰愬紶娓╁害'||item.name=='鎺ョ画娓╁害'){ + this.thermalCyclingInfo.arr.forEach(a=>{ + if(a.name=='鑰愬紶娓╁害'){ + a.arr.forEach((b,i)=>{ + // 鑾峰彇瀵瑰簲鐨勫绾挎俯搴� + let num0 = 0 + this.thermalCyclingInfo.arr.forEach(c=>{ + if(c.name=='瀵肩嚎娓╁害'){ + num0 = c.arr[i].value0 + } + }) + // 鍒ゆ柇缁撹 + if(!num0||!b.value0){ + b.state = null + }else if(Number(num0)>Number(b.value0)){ + b.state = 1 + }else{ + b.state = 0 + } + }) + let state = a.arr.filter(b=>b.state==null).length + let state0 = a.arr.filter(b=>b.state==0).length + let state1 = a.arr.filter(b=>b.state==1).length + if(state>0){ + // 寰呭畾 + a.insResult = null + }else if(state0>0){ + // 涓嶅悎鏍� + a.insResult = 0 + }else if(state1==a.arr.length){ + // 鍚堟牸 + a.insResult = 1 + } + } + if(a.name=='鎺ョ画娓╁害'){ + a.arr.forEach((b,i)=>{ + // 鑾峰彇瀵瑰簲鐨勫绾挎俯搴� + let num0 = 0 + this.thermalCyclingInfo.arr.forEach(c=>{ + if(c.name=='瀵肩嚎娓╁害'){ + num0 = c.arr[i].value0 + } + }) + if(!num0||!b.value0){ + b.state = null + }else if(Number(num0)>Number(b.value0)){ + b.state = 1 + }else{ + b.state = 0 + } + }) + let state = a.arr.filter(b=>b.state==null).length + let state0 = a.arr.filter(b=>b.state==0).length + let state1 = a.arr.filter(b=>b.state==1).length + if(state>0){ + a.insResult = null + }else if(state0>0){ + a.insResult = 0 + }else if(state1==a.arr.length){ + a.insResult = 1 + } + } + }) + } + } + // 缁欏悗绔紶鍙傝祴鍊� + this.thermalCyclingInfo.arr.forEach(item=>{ + for (let i in this.param){ + if(this.param[i].inspectionItemSubclass==item.name){ + switch (item.name){ + case '鐜娓╁害': + this.param[i].insResult.v.v = 1 + this.param[i].insValue = [] + item.arr.forEach(insValue=>{ + this.param[i].insValue.push({ + i:i, + r:0, + c:0, + v:{ + v:insValue.value0 + } + }) + }) + break; + case '瀵肩嚎娓╁害': + this.param[i].insResult.v.v = 1 + this.param[i].insValue = [] + item.arr.forEach(insValue=>{ + this.param[i].insValue.push({ + i:i, + r:0, + c:0, + w:insValue.value1, + v:{ + v:insValue.value0 + } + }) + }) + break; + case '鑰愬紶娓╁害': + this.param[i].insValue = [] + item.arr.forEach(insValue=>{ + this.param[i].insValue.push({ + i:i, + r:0, + c:0, + w:insValue.value1, + v:{ + v:insValue.value0 + } + }) + }) + this.param[i].insResult.v.v = item.insResult + break; + case '鎺ョ画娓╁害': + this.param[i].insValue = [] + item.arr.forEach(insValue=>{ + this.param[i].insValue.push({ + i:i, + r:0, + c:0, + w:insValue.value1, + v:{ + v:insValue.value0 + } + }) + }) + this.param[i].insResult.v.v = item.insResult + break; + } + } + } + }) + // 淇濆瓨鏁版嵁 + this.saveInsContext() + }, + // 鐑惊鐜�---缁撴潫 + // 淇濆瓨婀垮害銆佹俯搴︽暟鎹� + subOtherForm(m,type){ + let ids = [] + for (let i in this.param) { + ids.push(i) + } + this.$axios.post(this.$api.insOrderPlan.write,{ + [type]:Number(m), + ids + }, { + headers: { + 'Content-Type': 'application/json' + }, + noQs:true + }).then(res => { + if (res.code == 201) return + this.$message.success('淇濆瓨鎴愬姛') + }) + }, + // 鏉冮檺鑾峰彇 + getPower(){ + let power = JSON.parse(sessionStorage.getItem('power')) + let fileDel = false + 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 + } + if (power[i].menuMethod == 'delfile') { + fileDel = true + } + if (power[i].menuMethod == 'isItAllowedToModifyTheCollectedValues') { + collected = true + } + if (power[i].menuMethod == 'temDataAcquisition') { + temDataAcquisition = true + } + if(power[i].menuMethod == 'addInsProductTemplate'){ + addInsProductTemplatePower = true + } + } + if (!fileDel) { + this.componentData0.do.splice(1, 1) + } + this.fileAdd = fileAdd + this.collected = collected + this.temDataAcquisition = temDataAcquisition + this.addInsProductTemplatePower = addInsProductTemplatePower + }, + uploadSample(){ + this.$axios.post(this.$api.insOrderPlan.doInsOrder, { + id: this.id, + laboratory: this.sonLaboratory + }).then(async res => { + this.sampleProduct = res.data.sampleProduct + }) + }, + // 鏍规嵁绫诲瀷銆佷换鍔d銆佸疄楠屽鏉ヨ幏鍙栨牱鍝佺殑妫�楠岄」淇℃伅 + async getCurrentProduct(id,type){ + this.tableLoading = true; + let res = null; + if(!this.isLook){ + res = await this.$axios.post(this.$api.insOrderPlan.getInsProduct+'?id='+id+'&type='+type+'&laboratory='+this.sonLaboratory) + }else{ + res = await this.$axios.post(this.$api.insOrderPlan.getInsProduct2+'?id='+id+'&type='+type+'&laboratory='+this.sonLaboratory+'&num='+this.num) + } + this.tableLoading = false; + return res.data + }, + // 鍒囨崲鏍峰搧 + async handleChangeSample(row, column, event) { + // 鍒濆鍖栨暟鎹� + this.param = {} + // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁 + this.fiberOpticTape = [] + this.template = '' + this.currentFiberOpticTape = null; + this.fiberOptic = [] + this.currentFiberOptic = null; + this.bushing = [] + this.currentBushing = null; + this.sampleVisible = false; + // 璧嬪�兼牱鍝� + this.currentSample = this.HaveJson(row) + let list = await this.getCurrentProduct(row.id,0) + // 璧嬪�兼牱鍝佹楠岄」 + this.currentSample.insProduct = this.HaveJson(list) + // 鍒濆鍖栧悗绔紶鍙� + this.param = {} + this.changeType = 0; + this.currentSample.insProduct.forEach((a,j) => { + if(this.handleCasing(a.inspectionItem)){ this.param[a.id] = { insValue: [], comValue: [], resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } - }) - if (this.currentSample.index == undefined) this.currentSample['index'] = 1 - this.loading = false - this.handleTableData() - this.componentData.currentId = val; - this.currentKey = 1; - }) - } - }, - methods: { - handleChangeSample(row, column, event) { - this.currentSample = row; - this.param = {} - this.currentSample.insProduct.forEach(a => { - this.param[a.id] = { - insValue: [], - comValue: [], - resValue: null, - equipValue: [], - equipName: [], - insResult: null } }) - this.handleTableData() - this.sampleVisible = false; - this.currentKey = row.index + let bushing = this.currentSample.bushing + if(bushing&&bushing.length>0){ + this.bushing = bushing + } + // 澶勭悊椤甸潰鍒楄〃鏁版嵁 + this.getTableLists(); + this.currentKey = row.index?row.index:0 + this.currentTab = null; + // 鍚戝绾跨▼鍘讳繚瀛橀〉闈㈠垪琛ㄦ暟鎹�,鍚庣浼犲弬,褰撳墠妯℃澘淇℃伅 + this.worker.postMessage(JSON.stringify({ + type: 'saveData', + tableList:this.tableList, + param:this.param, + currentTable:this.currentTable + })); }, + // 鏉惧绠$殑鍒ゆ柇\濡傛灉changeType涓嶇瓑浜�3閭d箞椤甸潰涓嶅睍绀烘澗濂楃妫�楠岄」 + handleCasing(inspectionItem){ + if(this.changeType!=3){ + if(inspectionItem.includes('鏉惧绠�')){ + return false + }else{ + return true + } + }else{ + return true + } + }, + // 濂楃,鍏夌氦甯�,鍏夌氦绛夊垏鎹�,瀵瑰簲鍘熷璁板綍妯℃澘涔熻鍒囨崲 + async handleChange(m,type){ + this.changeType = type + if(m){ + // 鑾峰彇妫�楠岄」 + let list = await this.getCurrentProduct(m,type) + if(list.length>0){ + // 鍒濆鍖栧悗绔紶鍙� + this.param = {} + list.forEach(a => { + this.param[a.id] = { + insValue: [], + comValue: [], + resValue: null, + equipValue: [], + equipName: [], + insResult: null, + beforeCheck:null, + afterCheck:null, + } + }) + // 椤甸潰鍒楄〃鏁版嵁澶勭悊 + this.getTableLists0(list) + // 鍚戝绾跨▼淇濆瓨鏁版嵁 + this.worker.postMessage(JSON.stringify({ + type: 'saveData', + tableList:this.tableList, + param:this.param, + currentTable:this.currentTable, + bushing:m + })); + }else{ + this.tableLists = [] + this.tableList = [] + this.$message.error('妫�楠岄」涓虹┖') + } + } + }, + // 鏀瑰彉浠诲姟 handleChangeTask(row) { if (row.length > 0) this.id = row[0].id; this.taskVisible = false; }, + // 瀛楀吀鑾峰彇淇℃伅 getTypeDicts() { this.$axios.post(this.$api.enums.selectEnumByCategory, { category: "绱ф�ョ▼搴�" @@ -433,6 +2380,7 @@ this.componentData.tagField.type.select = data }) }, + // 瀛楀吀鑾峰彇淇℃伅 getInsStateDicts() { this.$axios.post(this.$api.enums.selectEnumByCategory, { category: "妫�楠屼换鍔$姸鎬�" @@ -452,6 +2400,7 @@ this.componentData.tagField.insState.select = data }) }, + // 瀛楀吀鑾峰彇淇℃伅 getComparisonList() { this.$axios.post(this.$api.enums.selectEnumByCategory, { category: "琛ㄦ牸鍧愭爣杞崲" @@ -460,28 +2409,163 @@ this.comparisonList = data; }) }, + // 鑾峰彇妫�楠屽�间负涓嬫媺鏃剁殑涓嬫媺鍒楄〃 + selectEnumByCategoryOfSelect(val) { + this.enumList = [] + if (val === undefined || val === null) { + return + } + this.$axios.post(this.$api.enums.selectEnumByCategory, { + category: val + }).then(res => { + this.enumList = res.data; + }) + }, tableRowClassName({ row, rowIndex }) { row.index = rowIndex + 1; }, - handleTableData() { - this.excelMethodList = [] + // 澶勭悊椤甸潰鍒楄〃鏁版嵁--鍘婚噸,鐢熸垚妫�楠屾ā鏉垮垏鎹㈠垪琛� + getTableLists() { const mySet1 = new Set(); - this.tableList = JSON.parse(JSON.stringify(this.currentSample.insProduct)).filter(m => { + this.tableLists = this.currentSample.insProduct.filter(m => { let num0 = mySet1.size; - if (m.templateId != null) { - mySet1.add(JSON.stringify({ - template: m.template, - templateId: m.templateId - })) + if (m.templateId != null&&m.template != null) { + try { + mySet1.add(JSON.stringify({ + template: m.template, + templateId: m.templateId + })) + } catch (error) { + console.log(222,error); + } } let num1 = mySet1.size; if (num1 > num0) { return m } - }) + }); + if (this.tableLists && this.tableLists.length > 0) { + 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&&this.insOrder.sampleType!='鏃犳簮鍣ㄤ欢'){ + this.versionDialogVisible = true + } + // 澶勭悊椤甸潰鍒楄〃鏁版嵁 + this.handleTableData() + } + }, + // 鍏夌氦閰嶇疆鐩稿叧妯℃澘table鍒楄〃 + getTableLists0(list){ + const mySet1 = new Set(); + this.tableLists = list.filter(m => { + let num0 = mySet1.size; + if (m.templateId != null&&m.template != null) { + try { + mySet1.add(JSON.stringify({ + template: m.template, + templateId: m.templateId + })) + } catch (error) { + console.log(333,error); + } + } + let num1 = mySet1.size; + if (num1 > num0) { + return m + } + }); + if (this.tableLists && this.tableLists.length > 0) { + this.tableList = null; + this.tableList = [this.tableLists[0]] + this.currentTable = this.tableLists[0].templateId; + this.currentSample.insProduct = this.HaveJson(list) + // 澶勭悊椤甸潰鍒楄〃鏁版嵁 + this.handleTableData() + } + }, + // 澶勭悊椤甸潰鍒楄〃鏁版嵁 + handleTableData() { + this.excelMethodList = []//excel鍑芥暟鍒楄〃 + this.widthList = this.tableList[0].style.columnlen;//椤甸潰瀹藉害--鏍规嵁妯℃澘鏉ョ殑 + // 娓╁害寰幆妫�楠屽師濮嬭褰�--寮�濮� + if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'){ + // 瀵硅姹傚�艰繘琛屾媶鍒嗗鐞�,杩涜�屽緱鍑洪〉闈㈠唴瀹� + let ask = this.currentSample.insProduct[0].ask + let askList = ask.split(';') + // 鑾峰彇寰幆娆℃暟 + this.numOptions = [] + for (let i = 1; i <= askList[askList.length-1]; i++) { + this.numOptions.push({ + value:i, + label:i + }) + } + let mySet1 = new Set(); + askList.forEach((m,i) => { + if(i<askList.length-1){ + mySet1.add(m.split(',')[0].replace('鈩�','')) + } + }) + // 鑾峰彇娓╁害鐐瑰垪琛� + this.temperatureOptions = [] + mySet1.forEach(m => { + this.temperatureOptions.push({ + value:String(m), + label:m + }) + }) + // 鍒濆鍖栭〉闈㈡暟鎹� + this.wareTableDataLoading = true + this.$axios.post(this.$api.deviceScope.temDataAcquisition2,{ + entrustCode:this.insOrder.entrustCode, + sampleCode:this.currentSample.sampleCode, + model:this.currentSample.model, + }, { + headers: { + 'Content-Type': 'application/json' + }, + noQs:true + }).then(res=>{ + // console.log(res.data) + this.wareFormChange() + }) + // this.wareFormChange() + } + // 娓╁害寰幆妫�楠屽師濮嬭褰�---缁撴潫 + // 鐑惊鐜楠屽師濮嬭褰�---寮�濮� + if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐑惊鐜�')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('娓╁崌璇曢獙'))){ + // 鏍规嵁瑕佹眰鍊兼媶鍒嗘暟鎹�,寰楀埌椤甸潰娓叉煋鐨勪俊鎭� + let ask = this.currentSample.insProduct[0].ask + let askList = ask.split(';') + this.thermalCyclingInfo.max = Number(askList[askList.length-1]) + let arr = [] + for (let i = 0; i < askList.length-1; i++) { + arr.push(askList[i].split(',')[0]) + } + arr = arr.map(item=>{ + let obj = {} + obj.name = item; + if(obj.insResult==null||obj.insResult==undefined){ + obj.arr = [ + { + value0:'', + value1:'', + } + ] + obj.insResult = null; + } + return obj + }) + this.thermalCyclingInfo.arr = arr; + // 鍒濆鍖栭〉闈㈡暟鎹� + this.thermalCyclingChange() + } + // 鐑惊鐜楠屽師濮嬭褰�---缁撴潫 + // 鏈寰幆涓昏鍋氶〉闈㈡覆鏌撳眰闈㈢殑澶勭悊--鍗曞厓鏍煎悎骞堕澶勭悊 this.tableList.forEach(a => { let mcList = [] a.template.forEach(b => { @@ -510,9 +2594,10 @@ count++ }) }) + // 鏈寰幆涓昏鏄帶鍒跺悎骞�,浠ュ強鎺у埗妫�楠岄」淇℃伅鏄惁灞曠ず鍑烘潵,浠ヤ究鍚庣画妫�楠� this.tableList.forEach(a => { - let dels = new Set() - let ids = [] + let dels = new Set()//闇�瑕佸垹闄ょ殑琛� + let ids = []//鎵�鏈夋楠岄」鐨刬d let set3 = new Set() a.template.forEach(b => { let size1 = set3.size @@ -520,39 +2605,80 @@ if (size1 < size2) { let str = '' let count4 = 0 + let isThree = 0 a.template.forEach(c => { + // 鑾峰彇鍒� 妫�楠岄」鍒嗙被+妫�楠岄」+妫�楠屽瓙椤圭殑鎷兼帴,濡傛灉妯℃澘閲岀殑淇℃伅璺熸帴鍙h繑鍥炵殑妫�楠岄」淇℃伅鑳藉鍖归厤鍒欏睍绀哄嚭鏉� if (b.r === c.r) { - if (c.v.ps != undefined && c.v.ps.value === '妫�楠岄」') { - if (count4 === 0) { - str += c.v.v - count4 += 1 + if(c.v.ps != undefined && c.v.ps.value === '妫�楠岄」鍒嗙被'&&count4 === 0){ + // 涓夌骇鍒嗙被 + isThree = 1 + }else if(c.v.ps != undefined && c.v.ps.value === '妫�楠岄」'&&count4 === 0){ + // 浜岀骇鍒嗙被 + isThree = 0 + } + if(isThree==0){ + if (c.v.ps != undefined && c.v.ps.value === '妫�楠岄」') { + if (count4 === 0) { + str += c.v.v + count4 += 1 + } + } else if (c.v.ps != undefined && c.v.ps.value === '妫�楠屽瓙椤�') { + if (count4 === 1) { + str += c.v.v + count4 += 1 + } } - } else if (c.v.ps != undefined && c.v.ps.value === '妫�楠屽瓙椤�') { - if (count4 === 1) { - str += c.v.v - count4 += 1 + }else if(isThree==1){ + if (c.v.ps != undefined && c.v.ps.value === '妫�楠岄」鍒嗙被') { + if (count4 === 0) { + str += c.v.v + count4 += 1 + } + }else if (c.v.ps != undefined && c.v.ps.value === '妫�楠岄」') { + if (count4 === 1) { + str += c.v.v + count4 += 1 + } + } else if (c.v.ps != undefined && c.v.ps.value === '妫�楠屽瓙椤�') { + if (count4 === 2) { + str += c.v.v + count4 += 1 + } } } } }) if (str != '') { + let count2 = 0 for (let i in this.currentSample.insProduct) { - if (this.currentSample.insProduct[i].templateId === a.templateId && this.currentSample - .insProduct[i].inspectionItem + this.currentSample.insProduct[i].inspectionItemSubclass === str) { - ids.push({ - r: b.r, - id: this.currentSample.insProduct[i].id, - product: this.currentSample.insProduct[i] - }) + let inspectionItemClass = this.currentSample.insProduct[i].inspectionItemClass==null||this.currentSample.insProduct[i].inspectionItemClass==undefined?'':this.currentSample.insProduct[i].inspectionItemClass + let inspectionItem = this.currentSample + .insProduct[i].inspectionItem==null||this.currentSample + .insProduct[i].inspectionItem==undefined?'':this.currentSample + .insProduct[i].inspectionItem + let inspectionItemSubclass = this.currentSample + .insProduct[i].inspectionItemSubclass==null||this.currentSample + .insProduct[i].inspectionItemSubclass==undefined?'':this.currentSample + .insProduct[i].inspectionItemSubclass + // 濡傛灉鐩哥瓑,閭d箞璇存槑鎵惧埌浜�,骞朵笖鎶奿d瀛樿捣鏉�,鍚庣画妫�楠岄」涔熶細鍦ㄩ〉闈腑鏄剧ず鍑烘潵 + if (this.currentSample.insProduct[i].templateId === a.templateId && inspectionItemClass +inspectionItem+inspectionItemSubclass === + str) { + ids.push({ + r: b.r, + id: this.currentSample.insProduct[i].id, + product: this.currentSample.insProduct[i] + }) break } - if(i == this.currentSample.insProduct.length-1){ - dels.add(b.r) - } + count2++ + } + if (count2 == this.currentSample.insProduct.length) { + dels.add(b.r) } } } }) + // 鎿嶄綔鍒犻櫎 dels.forEach(del => { for (let b = 0; b < a.template.length; b++) { if (a.template[b].r === del) { @@ -561,6 +2687,8 @@ } } }) + console.log(4444,a.template) + // 鎿嶄綔璧嬪��--涓昏璧嬪�煎崟浣�,璇曢獙鏂规硶绛変俊鎭� ids.forEach(id => { for (let b = 0; b < a.template.length; b++) { if (a.template[b].r === id.r) { @@ -568,13 +2696,18 @@ if (a.template[b].v.ps != undefined && a.template[b].v.ps.value === '鍗曚綅') { a.template[b].v.v = id.product.unit } - if (a.template[b].v.ps != undefined && a.template[b].v.ps.value === '璇曢獙鏂规硶') { + if (a.template[b].v.ps != undefined && (a.template[b].v.ps.value === '璇曢獙鏂规硶' || a.template[b].v + .ps.value === '妫�娴嬫柟娉�')) { a.template[b].v.v = id.product.methodS } + // if (a.template[b].v.ps != undefined && (a.template[b].v.ps.value === '璇曢獙鏍囧噯')) { + // a.template[b].v.v = id.product.testRequirements + // } } } }) let set2 = new Set() + // 鍚堝苟鐨勬暟鎹鐞�,cs rs 浠h〃鍚堝苟鐨勬暟閲� a.template.forEach(b => { let size1 = set2.size let size2 = set2.add(b.mc).size @@ -594,64 +2727,84 @@ } }) }) + // 鏈寰幆涓昏鏄鍚庣浼犲弬杩涜鍒濆鍖�,鏍峰紡閫昏緫淇敼 this.tableList.forEach(a => { let arrs = [] let set = new Set() let count1 = 0 let conclusionList = []; //缁撹鍒楄〃 let finalList = []; //鏈�缁堝�煎垪琛� - conclusionList = a.template.filter(n => n.v.ps != undefined && n.v.ps.value === '缁撹') - finalList = a.template.filter(n => n.v.ps != undefined && n.v.ps.value === '鏈�缁堝��') - a.template.forEach(b => { - if (b.v.ps != undefined && b.v.ps.value === '搴忓彿' && (b.v.mc == undefined || Object.keys(b.v.mc) - .length === 4)) { + // 缁撹涓庢渶缁堝�煎湪杩欓噷涓�涓�瀵瑰簲,浠ヤ笅涓や釜鍒楄〃闀垮害鑲畾鏄竴鏍风殑,濡傛灉鏈変笉涓�鏍�,閭d箞澶氬崐鏄ā鏉块厤缃緱闂 + conclusionList = a.template.filter(n => n.v.ps != undefined && n.v.ps.value === '缁撹')//缁撹鍒楄〃 + finalList = a.template.filter(n => n.v.ps != undefined && n.v.ps.value === '鏈�缁堝��')//鏈�缁堝�煎垪琛� + a.template.forEach( b => { + if (b.v.ps != undefined && b.v.ps.value === '搴忓彿' && (b.v.mc == undefined || Object.keys(b.v.mc).length === 4)) { + // 瀵瑰簭鍙疯繘琛岃祴鍊� count1++ b.v.v = count1 } if (b.v.ps != undefined && b.v.ps.value === '瑕佹眰鍊�') { + // 瀵硅姹傚�艰繘琛岃祴鍊� b.v.v = this.getAsk(b.i) } - if (b.v.ps != undefined && b.v.ps.value === '妫�楠屽��') { - b.v.v = '' + // 瀵归〉闈㈢殑鍜岀粰鍚庣浼犲弬鐨勬楠屽��,璁$畻鍊�,璁惧缂栫爜,璁惧鍚嶇О,鏈�缁堝��,缁撹杩涜鍒濆鍖� + if (b.v.ps != undefined && typeof b.v.ps.value ==='string'&&b.v.ps.value.includes('妫�楠屽��')) { + this.$set(b.v, 'v','' ) + // b.v.v = '' b.u = '' - this.param[b.i].insValue.push(b) + b.i && this.param[b.i]&&this.param[b.i].insValue.push(b) } if (b.v.ps != undefined && b.v.ps.value === '璁$畻鍊�') { - b.v.v = '' - this.param[b.i].comValue.push(b) + this.$set(b.v, 'v','' ) + // b.v.v = '' + b.i && this.param[b.i]&&this.param[b.i].comValue.push(b) } if (b.v.ps != undefined && b.v.ps.value === '璁惧缂栫爜') { - b.v.v = '' - this.param[b.i].equipValue.push(b) + // b.v.v = '' + this.$set(b.v, 'v', '' ) + b.i && this.param[b.i]&&this.param[b.i].equipValue.push(b) } if (b.v.ps != undefined && b.v.ps.value === '璁惧鍚嶇О') { - b.v.v = '' - this.param[b.i].equipName.push(b) + this.$set(b.v, 'v', '' ) + // b.v.v = '' + b.i && this.param[b.i]&&this.param[b.i].equipName.push(b) } if (b.v.ps != undefined && b.v.ps.value === '鏈�缁堝��') { - b.v.v = '' - if (b.i === undefined) { - for (var c in this.param) { - this.param[c].resValue = b - } - } else { + // b.v.v = '' + this.$set(b.v, 'v', '' ) + if (b.i !== undefined&&this.param[b.i]&&!this.param[b.i].resValue) { this.param[b.i].resValue = b } } if (b.v.ps != undefined && b.v.ps.value === '缁撹') { - this.param[b.i].insResult = b - conclusionList.forEach((n, i) => { - if (n.r == b.r && n.c == b.c) { - b.v.f = - `(${this.comparisonList.find(j=>j.value==(finalList[i].c)).label}${finalList[i].r+1})` - } - }) + if (b.i !== undefined&&this.param[b.i]&&!this.param[b.i].insResult) { + this.param[b.i].insResult = b + conclusionList.forEach((n, i) => { + if (n.r == b.r && n.c == b.c) { + b.v.f = + `(${this.comparisonList.find(j=>j.value==(finalList[i].c)).label}${finalList[i].r+1})` + + } + }) + } + } + 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) { this.excelMethodList.push(b) } }) + // 浠ヤ笅鏄牱寮忓鐞嗛�昏緫 set = Array.sort(set) set.forEach(b => { let arr = [] @@ -668,216 +2821,345 @@ this.tableWidth += (a.style.columnlen[i] === undefined ? 100 : a.style.columnlen[i]) } }) - this.currentSample.insProduct.forEach(a => { + // 鏈寰幆涓昏鏄椤甸潰鍙婂悗绔紶鍙傝繘琛屽垵濮嬪寲璧嬪�� + this.currentSample.insProduct.forEach(async a => { try { + // 璁$畻鍊艰祴鍊� let comValue = JSON.parse(a.insProductResult.comValue) for (var i = 0; i < comValue.length; i++) { - this.param[a.id].comValue[i].v.v = comValue[i].v + this.param[a.id].comValue[i].v.v = this.toFixed(comValue[i].v,this.param[a.id].comValue[i].v.ct) } } catch (e) {} try { + // 妫�楠屽�艰祴鍊� let insValue = JSON.parse(a.insProductResult.insValue) - for (var i = 0; i < insValue.length; i++) { - this.param[a.id].insValue[i].v.v = insValue[i].v - this.param[a.id].insValue[i].u = insValue[i].u + for (let i = 0; i < insValue.length; i++) { + if(this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r)){ + this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r).v.v = this.toFixed(insValue[i].v,this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r).v.ct) + this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r).u = insValue[i].u + // this.param[a.id].insValue[i].v.v = insValue[i].v + // this.param[a.id].insValue[i].u = insValue[i].u + } } } catch (e) {} try { + // 璁惧缂栧彿璧嬪�� let equipValue = JSON.parse(a.insProductResult.equipValue) - for (var i = 0; i < equipValue.length; i++) { - this.param[a.id].equipValue[i].v.v = equipValue[i].v - } - } catch (e) {} - try { - let equipName = JSON.parse(a.insProductResult.equipName) - for (var i = 0; i < equipName.length; i++) { - this.param[a.id].equipName[i].v.v = equipName[i].v - } - } catch (e) {} - try { - this.param[a.id].resValue.v.v = a.lastValue - this.param[a.id].insResult.v.v = a.insResult - } catch (e) {} - }) - this.handleExcelMethod() - }, - changeInput(m, code) { - let str = code.split('-') - let r = str[1] - let c = str[2] - let id = str[0] - let pId = str[3] - var list = [] - for (let a in this.tableList) { - if (this.tableList[a].templateId == id) { - list = this.tableList[a].arr - break - } - } - this.excelMethodList.forEach(item => { - if (item.valueList.find(m => m.r == r && m.c == c)) { - var comValue = {} - item.valueList.forEach(a => { - list.forEach(b => { - if (b[0].r == a.r) { - b.forEach(c => { - if (c.c == a.c) { - if (!isNaN(parseFloat(c.v.v))) { - var tableCode = '' - for (var d in this.comparisonList) { - if (c.c == this.comparisonList[d].value) { - tableCode = this.comparisonList[d].label - break - } - } - comValue[(tableCode + (c.r + 1))] = parseFloat(c.v.v) - } - } - }) - } - }) - }) - if (item.methodName == '鑷畾涔夋柟娉�' && item.v.ps!=undefined && item.v.ps.value == '缁撹') { - if (this.currentSample.insProduct.find(m => m.id == item.i)) { - let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&'); - let res = Object.values(comValue)[0] - let comp = ask.map((m, i) => { - if (m.includes('=')) { - return res == m.split('=')[1] - } - if (m.includes('鈮�')) { - return res >= m.split('鈮�')[1] - } - if (m.includes('鈮�')) { - return res <= m.split('鈮�')[1] - } - if (m.includes('<')) { - return res < m.split('<')[1] - } - if (m.includes('>')) { - return res > m.split('>')[1] + if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐑惊鐜�')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('娓╁崌璇曢獙'))){ + // 鐗规畩椤圭洰鍒濆鍖� + this.param[a.id].equipValue = [] + for (let i = 0; i < equipValue.length; i++) { + this.param[a.id].equipValue.push({ + v:{ + v:'' } }) - if (comp.every(m => m)) { - item.v.v = 1 - } else { - item.v.v = 0 - } - this.saveInsContext() } - } else { - let comResult = 0; - switch (item.methodName) { - case 'AVERAGE': - let num = 0 - for (var a in comValue) { - num += comValue[a] - } - comResult = num / Object.keys(comValue).length - break; - case 'SUM': - let sum = 0 - for (var a in comValue) { - sum += comValue[a] - } - comResult = sum - break; - default: - let valueList = []; - item.valueList.forEach(a => { - valueList.push({ - name: `${this.comparisonList[a.c].label}${a.r+1}`, - value: 0, - }) - }) - for (var a in comValue) { - valueList.forEach(b => { - if (b.name == a) { - b.value = comValue[a] - } - }) - } - let str = item.v.f.replace(/=/g, ' '); - valueList.forEach(b => { - str = str.replace(b.name, b.value) - }) - if(item.v.f.includes('/')>-1){ - if(Object.getOwnPropertyNames(comValue).length==valueList.length){ - comResult = eval(str) - }else{ - comResult = '' - } - }else{ - comResult = eval(str) - } - break; - } - list.forEach(a => { - if (a[0].r == item.r && comResult != '') { - for (var b in a) { - if (a[b].c == item.c) { - a[b].v.v = parseFloat(comResult.toFixed(3)) - break - } - } - } - }) - this.changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`) //鏀瑰彉鏈�缁堝�� } + for (let i = 0; i < equipValue.length; i++) { + if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐑惊鐜�')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('娓╁崌璇曢獙'))){ + // 娓╁害寰幆璁惧璧嬪�� + this.$set(this.equipForm,`code`+i,equipValue[i].v) + this.param[a.id].equipValue[i].v.v = equipValue[i].v + }else{ + // 鏅�氳澶囪祴鍊� + this.param[a.id].equipValue[i].v.v = equipValue[i].v + } + } + } catch (e) {} + try { + // 璁惧鍚嶇О璧嬪�� + let equipName = JSON.parse(a.insProductResult.equipName) + if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐑惊鐜�')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('娓╁崌璇曢獙'))){ + // 璁惧鍚嶇О鍒濆鍖� + this.param[a.id].equipName = [] + for (let i = 0; i < equipName.length; i++) { + this.param[a.id].equipName.push({ + v:{ + v:'' + } + }) + } + } + for (let i = 0; i < equipName.length; i++) { + if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐑惊鐜�')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('娓╁崌璇曢獙'))){ + // 娓╁害寰幆璧嬪�� + this.$set(this.equipForm,`value`+i,equipName[i].v) + this.param[a.id].equipName[i].v.v = equipName[i].v + }else{ + // 鏅�氳澶囧悕绉拌祴鍊� + this.param[a.id].equipName[i].v.v = equipName[i].v + } + } + } catch (e) {} + try { + // 鏈�缁堝�艰祴鍊� + 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}} + // 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() }, + // 妫�楠屽�艰緭鍏ュ悗瑙﹀彂鐨勫嚱鏁� + changeInput(m, code, n,getDataType) { + // 涓烘暟閲囧畾涔変竴涓�昏緫鍙傛暟 + if(getDataType=='getDataType'){ + this.getDataType = 2; + } + let currentInsItemId = null//褰撳墠妫�楠岄」id + if (n) { + currentInsItemId = JSON.parse(JSON.stringify(n.i)) + // 闇�瑕佺瀛﹁鏁版硶鐨勫彲浠ヨ蛋杩欓噷 + if (this.PROJECT === '妫�娴嬩腑蹇�') { + if(this.tableList.find(ele=>ele.inspectionItem=='浣撶Н鐢甸樆鐜�')){ + if(parseFloat(n.v.v)>=100000){ + let num2 = new this.$Big(n.v.v) + n.v.v = num2.toExponential() + } + } + } + // 瀹氫箟涓�涓嚱鏁版潵楠岃瘉鍒嗘暟鏄惁鏈夋晥 + function isValidFraction(fraction) { + const [numerator, denominator] = fraction.split('/'); // 鍒嗗瓙鍜屽垎姣� + return !(!denominator || !numerator); + } + const isTrue = isValidFraction(n.v.v) + if (!isTrue) { + 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({ + code: code, + tableList:this.tableList, + excelMethodList:this.excelMethodList, + comparisonList:this.comparisonList, + currentSample:this.currentSample, + PROJECT:this.PROJECT, + param:this.param, + currentTable:this.currentTable, + getDataTypeId:this.getDataTypeId + })); + } catch (error) { + console.log(444,error); + } + // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋� + this.worker.onmessage = (event) => { + this.result = JSON.parse(event.data); + switch (this.result.method){ + case 'saveInsContext': + this.$nextTick(()=>{ + // this.$delete(this.tableList[0],'arr') + this.$set(this.tableList[0],'arr',this.result.value.tableList[0].arr) + this.param = this.result.value.param + 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){ + if(this.param[i].insResult.v.v=='鍚堟牸'){ + this.$set(this.param[i].insResult.v,'v',1) + }else if(this.param[i].insResult.v.v=='涓嶅悎鏍�'){ + this.$set(this.param[i].insResult.v,'v',0) + } + } + } + this.saveInsContext(currentInsItemId) + }) + break; + case 'tableList': + this.$nextTick(()=>{ + // 鏇存柊鏁版嵁 + this.$delete(this.tableList[0],'arr') + this.$set(this.tableList[0],'arr',this.result.value[0].arr) + }) + break; + case 'getCurrentInsProduct': + // 鏇存柊椤甸潰鏁版嵁 + this.getCurrentInsProduct(this.result.value) + break; + } + }; + }, + // 鏄惁闇�瑕佹暟閲� + async determineWhetherToCollectData(){ + let res = await this.$axios.get(this.$api.deviceScope.determineWhetherToCollectData+"?managementNumber=''") + this.isGet = res.data + }, + // 鏍规嵁鍚庣浼犲弬鏇存柊椤甸潰鏁版嵁 param => this.tableList[0].insProductResult + getCurrentInsProduct(pId) { + if (!this.tableList[0].insProductResult) { + this.tableList[0].insProductResult = {} + } + for (let m in this.param[pId]) { + let value = this.param[pId][m] + switch (m) { + case 'comValue': + // 璧嬪�艰绠楀�� + if (value && value.length > 0) { + this.tableList[0].insProductResult[m] = []; + value.forEach((a, i) => { + let obj = { + v: a.v.v, + } + this.tableList[0].insProductResult[m].push(obj); + }) + try { + this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m]) + } catch (error) { + console.log(555,error); + } + } + break; + // 璧嬪�兼楠屽�� + case 'insValue': + if (value && value.length > 0) { + this.tableList[0].insProductResult[m] = []; + value.forEach((a, i) => { + let obj = { + v: a.v.v, + u: a.u, + } + this.tableList[0].insProductResult[m].push(obj); + }) + try { + this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m]) + } catch (error) { + console.log(666,error); + } + } + break; + // 璧嬪�艰澶囩紪鍙� + case 'equipValue': + if (value && value.length > 0) { + this.tableList[0].insProductResult[m] = []; + value.forEach((a, i) => { + let obj = { + v: a.v.v, + } + this.tableList[0].insProductResult[m].push(obj); + }) + try { + this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m]) + } catch (error) { + console.log(777,error); + } + } + break; + // 璧嬪�艰澶囧悕绉� + case 'equipName': + if (value && value.length > 0) { + this.tableList[0].insProductResult[m] = []; + value.forEach((a, i) => { + let obj = { + v: a.v.v, + } + this.tableList[0].insProductResult[m].push(obj); + }) + try { + this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m]) + } catch (error) { + console.log(888,error); + } + } + break; + // 璧嬪�兼渶缁堝�� + case 'resValue': + this.tableList[0].lastValue = value?value.v.v:'' + break; + // 璧嬪�肩粨璁� + case 'insResult': + this.tableList[0].insResult = value?value.v.v:'' + break; + } + } + }, + // 瀵笶XCEL鍑芥暟杩涜澶勭悊 handleExcelMethod() { if (this.excelMethodList.length > 0) { this.excelMethodList.map(item => { - item.methodName = item.v.f.split('=').length > 1 && item.v.f.split('=')[1].split('(') && item.v.f.split( - '=')[1].split('(')[0] ? item.v.f.split('=')[1].split('(')[0] : '鑷畾涔夋柟娉�'; - let valueList = []; - if (item.v.f.includes(':')) { - valueList = []; - let r0 = null; - let c0 = null; - let r1 = null; - let c1 = null; - let mode = item.v.f.split('(')[1].split(')')[0]; - let start = mode.split(':')[0] - let end = mode.split(':')[1] - c0 = this.comparisonList.find(j => j.label == start.split('')[0]).value - r0 = start.replace(/[a-zA-Z]/g, "") - 1 - c1 = this.comparisonList.find(j => j.label == end.split('')[0]).value - r1 = end.replace(/[a-zA-Z]/g, "") - 1 - for (let i = Number(r0); i <= Number(r1); i++) { - for (let u = Number(c0); u <= Number(c1); u++) { - valueList.push({ - r: i, - c: u - }) - } - } - } else { - valueList = [] - let regex = /[=\+\-\*\%\(\)\/\s]/g - let mode = item.v.f.replace(regex, ' ').split(' '); - mode.filter(m => m && !Number(m)).forEach(m => { - let r = m.replace(/[a-zA-Z]/g, "") - 1 - let c = this.comparisonList.find(j => j.label == m.split('')[0]).value - valueList.push({ - c, - r - }) - }) - } - item.valueList = valueList; + // 寰楀埌姣忎釜鍑芥暟鐨勫弬鏁板垪琛� + item.valueList = excelFunction.changeParameter(item.v.f); return item; }) } }, + getValue(v){ + // 瀵归〉闈㈠睍绀烘暟鎹繘琛屽鐞�,@,浠h〃鎹㈣ + let str = v.v?v.v:(v.v===0?v.v:(v.ct&&v.ct.s?v.ct.s.length>0&&v.ct.s[0].v.replace(new RegExp('\n', 'g'), '<br/>').replace(new RegExp('@', 'g'), '<br/>'):'')) + // 瀵规暟鎹繚鐣欏皬鏁扮偣杩涜澶勭悊 + if(v.ct&&v.ct.fa&&v.ct.fa.includes('.')&&str){ + let num = 0 + let str0 = v.ct.fa.split('.')[1] + num = str0.length + str = Number(str).toFixed(num) + } + if(v.v&&typeof v.v == 'string'&&v.v.includes('@')){ + str = v.v.replace(new RegExp('@', 'g'), '<br/>') + } + return str + }, + // 鑾峰彇褰撳墠杈撳叆妗嗙被鍨� getInspectionValueType(id) { for (var a in this.currentSample.insProduct) { if (this.currentSample.insProduct[a].id == id) { return this.currentSample.insProduct[a].inspectionValueType } } + }, + // 鑾峰彇瑕佹眰鎻忚堪 + getTell(id) { + for (var a in this.currentSample.insProduct) { + if (this.currentSample.insProduct[a].id == id) { + return this.currentSample.insProduct[a].tell + } + } + }, + // 鍔ㄦ�佽幏鍙栧崟鍏冩牸瀹藉害 + handleWidth(n) { + let sum = 0; + if (n.v.mc && n.v.mc.cs && n.v.mc.c != undefined) { + for (let i = 0; i < n.v.mc.cs; i++) { + let num = this.widthList[i + n.v.mc.c] ? this.widthList[i + n.v.mc.c] : 100 + sum += num; + } + } else { + sum = this.widthList[n.c] ? this.widthList[n.c] : 100 + } + return sum + }, + // 瀵硅緭鍏ュ�艰繘琛屾牸寮忔牎楠� + handleInput (n) { + try { + n.v.v = n.v.v.replace(/[^\d.^e\-/+]/g, ''); + n.v.v = n.v.v.replace(/\.{2,}/g,"."); //鍙繚鐣欑涓�涓�. 娓呴櫎澶氫綑鐨� + n.v.v = n.v.v.replace(".","$#$").replace(/\./g,"").replace("$#$","."); + n.v.v = n.v.v.replace(/\/{2,}/g,"/"); //鍙繚鐣欑涓�涓�/娓呴櫎澶氫綑鐨� + n.v.v = n.v.v.replace("/","$#$").replace(/\//g,"").replace("$#$","/"); + } catch (error) { + console.log(error); + } + }, getInspectionItemType(id) { for (var a in this.currentSample.insProduct) { @@ -886,6 +3168,7 @@ } } }, + // 鑾峰彇瑕佹眰鍊� getAsk(id) { for (var a in this.currentSample.insProduct) { if (this.currentSample.insProduct[a].id == id) { @@ -894,21 +3177,36 @@ } }, getSystemValue(n) { + let code = null try { - if (this.param[n.i].equipValue.v.v == null || this.param[n.i].equipValue.v.v == '') { - this.$message.error('璇峰厛閫夋嫨閲囬泦鐨勮澶�') - return - } + this.param[n.i].equipValue.forEach(a=>{ + if(a.r === n.r){ + if (a.v.v == null || a.v.v == '') { + this.$message.error('璇峰厛閫夋嫨閲囬泦鐨勮澶�') + return + }else{ + code = a.v.v + } + } + }) } catch (e) { + // console.log(e); this.$message.error('鎵句笉鍒拌澶囧唴瀹�') } - this.$message.error('閲囬泦澶辫触銆愬凡寮�鏀炬墜鍔ㄦ柟寮忋��') + // console.log(n, code); + fetch('http://localhost:82/寰俊鍥剧墖_20240518100811.png').then(res=>res.blob()).then(blob=>{ + // console.log(blob); + const url = URL.createObjectURL(blob) + // console.log(url); + }) + /* this.$message.error('閲囬泦澶辫触銆愬凡寮�鏀炬墜鍔ㄦ柟寮忋��') for (var a in this.currentSample.insProduct) { if (this.currentSample.insProduct[a].id == n.i) { this.currentSample.insProduct[a].inspectionItemType = 0 } - } + } */ }, + // 鑾峰彇璁惧 getEquipOptions(e, id) { if (e) { this.equipOptions = [] @@ -919,7 +3217,7 @@ }).then(res => { if (res.code === 200 && res.data) { this.equipOptions = res.data.map(m => { - m.value = m.factoryNo + m.value = m.managementNumber m.label = m.deviceName return m }) @@ -929,24 +3227,38 @@ }) } }, + getDic(e, id) { + if (e) { + for (var a in this.currentSample.insProduct) { + if (this.currentSample.insProduct[a].id == id) { + let str = this.currentSample.insProduct[a].dic + this.selectEnumByCategoryOfSelect(str) + return str + } + } + } + }, getUserInfo() { this.$axios.get(this.$api.user.getUserInfo).then(res => { this.userId = res.data.id + this.componentData.entity.userId = res.data.id + // console.log(1111,this.userId) }) }, // 澶嶆牳 - upInsReview(e) { - if (e == 1) { - // 閫氳繃 + upInsReview() { + if (this.upInsReviewType == 1||this.upInsReviewType==2) { + // 缁х画璇曢獙 this.reviewLoading = true; this.$axios.post(this.$api.insOrderPlan.verifyPlan, { - orderId: this.orderId, - type: 1, + 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; @@ -954,8 +3266,8 @@ console.error(error) this.reviewLoading = false; }) - } else { - // 涓嶉�氳繃 + } else{ + // 鍐嶆璇曢獙 this.reviewDia = true; } }, @@ -963,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 @@ -981,45 +3293,680 @@ this.$message.error('鏈緭鍏ヤ笉閫氳繃鍘熷洜') } }, + submit0(){ + if(this.sonLaboratory === '鐢佃矾璇曢獙'){ + if(!this.experimentInfo.term){ + 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() + }else{ + this.addVerifyDia = true + } + }, + 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 === '') { + this.$message.error("璇锋寚瀹氬鏍镐汉鍛�") + return + } + this.addVerifyDia = false this.submitLoading = true; - this.$axios.post(this.$api.insOrderPlan.submitPlan, { - orderId: this.orderId, + this.$axios.post(this.$api.insOrderPlan.checkSubmitPlan, { + sampleId: this.orderId, laboratory: this.sonLaboratory, }).then(res => { if (res.code === 200) { - this.$message.success("鎿嶄綔鎴愬姛") - this.$emit('goback') + 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, { + sampleId: this.orderId, + laboratory: this.sonLaboratory, + verifyUser: this.verifyUser, + entrustCode: this.insOrder.entrustCode, + auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList, + ...this.experimentInfo + }, { + headers: { + 'Content-Type': 'application/json' + }, + noQs:true}).then(res => { + if (res.code === 200) { + this.$message.success("鎿嶄綔鎴愬姛") + this.$emit('goback') + } + this.submitLoading = false; + }).catch(error => { + console.error(error) + this.submitLoading = false; + }) + }else{ + let newData = [] + const h = this.$createElement + for (let i in res.data) { + const lastChar = res.data[i].slice(-1); + if(lastChar=='-'){ + res.data[i] = res.data[i].slice(0, -1); + } + newData.push(h('p', {style: 'font-size: 14px;color: red;'}, (Number(i)+1)+'銆�'+res.data[i])) + } + newData.push(h('p', { style: 'font-size: 16px;color:#000;margin-top:12px;overflow-y: auto;max-height:80vh' },'浠ヤ笂椤圭洰涓嶅悎鏍硷紝纭畾鎻愪氦锛�')) + this.$confirm('鎻愮ず',{ + title:'鎻愮ず', + message: h('div', null, newData), + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "" + }).then(() => { + this.$axios.post(this.$api.insOrderPlan.submitPlan, { + sampleId: this.orderId, + laboratory: this.sonLaboratory, + verifyUser: this.verifyUser, + auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList, + ...this.experimentInfo + }, { + headers: { + 'Content-Type': 'application/json' + }, + noQs:true}).then( res => { + if (res.code === 200) { + this.submitLoading = false; + this.$message.success("鎿嶄綔鎴愬姛") + this.$emit('goback') + } + }).catch(error => { + console.error(error) + }) + }).catch(() => {}) + } + } - this.submitLoading = false; }).catch(error => { console.error(error) this.submitLoading = false; }) + return }, - saveInsContext(){ - this.$axios.post(this.$api.insOrderPlan.saveInsContext, this.param, { - headers: { - 'Content-Type': 'application/json' + async handleCType(){ + if(this.insOrder.departmentLims=='璐ㄩ噺閮�'){ + await this.$axios.post(this.$api.insOrderPlan.verifyPlan, { + sampleId: this.orderId, + type: 1, + laboratory: this.sonLaboratory, + tell: null + }).then(res => { + if (res.code === 200) { + } + }).catch(error => { + }) + } + }, + // 缁熶竴鍦ㄨ繖閲屼繚瀛樻暟鎹� + saveInsContext(currentInsItemId) { + try { + console.log(1111,this.param) + if(this.param){ + let param = null + if(currentInsItemId){ + param = {[currentInsItemId] : this.param[currentInsItemId]} + }else{ + param = this.param + } + this.$axios.post(this.$api.insOrderPlan.saveInsContext, { + param: JSON.stringify(param), + currentTable:this.currentTable, + num:this.currentSample.num1 + }).then(res => { + if (res.code == 201) { + this.$message.error('淇濆瓨澶辫触') + return + } + this.$message.success('宸蹭繚瀛�') + }) + // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫 + this.worker.postMessage(JSON.stringify({ + type: 'saveData', + tableList:this.tableList, + param:this.param, + currentTable:this.currentTable + })); } - }).then(res => { - if (res.code == 201) { - this.$message.error('淇濆瓨澶辫触') - return - } - this.$message.success('宸蹭繚瀛�') + }catch (error) { + console.log(999,error); + } + }, + // 璁惧鏀瑰彉 + changeEquip(val, n,v) { + this.$set(n.v,'v',val) + this.tableList[0].arr.forEach((item,index)=>{ + item.forEach((m,i)=>{ + if(this.param[m.i]){ + this.param[m.i].state = 1 + } + if(m.i==n.i&&m.v.ps&&m.v.ps.value=='璁惧鍚嶇О'&&v){ + this.$set(m.v,'v',v) + } + }) }) - }, - changeEquip(val,n){ - for(let i in this.equipOptions){ - if(this.equipOptions[i].value === val){ - for(let i1 in this.param[n.i].equipName){ - if(this.param[n.i].equipName[i1].i === n.i && this.param[n.i].equipName[i1].r === n.r){ - this.param[n.i].equipName[i1].v.v = this.equipOptions[i].label + for (let i in this.param) { + if(this.param[i].state!=1){ + delete this.param[i] + } + } + if(val&&v){ + for (let i1 in this.param[n.i].equipName) { + if (this.param[n.i].equipName[i1].i === n.i && this.param[n.i].equipName[i1].r === n.r) { + this.$delete(this.param[n.i].equipValue[i1].v,'v') + this.$set(this.param[n.i].equipValue[i1].v,'v',val) + this.$delete(this.param[n.i].equipName[i1].v,'v') + this.$set(this.param[n.i].equipName[i1].v,'v',v) + } + } + } + for (let i in this.equipOptions) { + if (this.equipOptions[i].value == val) { + for (let i1 in this.param[n.i].equipName) { + if (this.param[n.i].equipName[i1].i === n.i && this.param[n.i].equipName[i1].r === n.r) { + this.$delete(this.param[n.i].equipValue[i1].v,'v') + this.$set(this.param[n.i].equipValue[i1].v,'v',val) + this.$delete(this.param[n.i].equipName[i1].v,'v') + this.$set(this.param[n.i].equipName[i1].v,'v',this.equipOptions[i].label) + this.tableList[0].arr.forEach((item,index)=>{ + item.forEach((m)=>{ + if(m.i==n.i&&m.v.ps&&m.v.ps.value=='璁惧鍚嶇О'){ + this.$set(m.v,'v',this.equipOptions[i].label) + } + }) + }) } } } } + // 淇濆瓨鏁版嵁 + 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 = [] + // let userName = JSON.parse(localStorage.getItem("user")).name; + res.data.forEach(a => { + if(!this.inspectorList.includes(a.name)) { + data.push({ + label: a.name, + value: a.id + }) + } + }) + this.personList = data + }) + }, + scrollInit() { + // 鑾峰彇瑕佺粦瀹氫簨浠剁殑鍏冪礌 + const nav = document.getElementById("nav") + var flag; // 榧犳爣鎸変笅 + var downX; // 榧犳爣鐐瑰嚮鐨剎涓嬫爣 + var scrollLeft; // 褰撳墠鍏冪礌婊氬姩鏉$殑鍋忕Щ閲� + nav.addEventListener("mousedown", function(event) { + flag = true; + downX = event.clientX; // 鑾峰彇鍒扮偣鍑荤殑x涓嬫爣 + scrollLeft = this.scrollLeft; // 鑾峰彇褰撳墠鍏冪礌婊氬姩鏉$殑鍋忕Щ閲� + }); + nav.addEventListener("mousemove", function(event) { + if (flag) { // 鍒ゆ柇鏄惁鏄紶鏍囨寜涓嬫粴鍔ㄥ厓绱犲尯鍩� + var moveX = event.clientX; // 鑾峰彇绉诲姩鐨剎杞� + var scrollX = moveX - downX; // 褰撳墠绉诲姩鐨剎杞翠笅鏍囧噺鍘诲垰鐐瑰嚮涓嬪幓鐨剎杞翠笅鏍囧緱鍒伴紶鏍囨粦鍔ㄨ窛绂� + this.scrollLeft = scrollLeft - scrollX // 榧犳爣鎸変笅鐨勬粴鍔ㄦ潯鍋忕Щ閲忓噺鍘诲綋鍓嶉紶鏍囩殑婊戝姩璺濈 + } + }); + // 榧犳爣鎶捣鍋滄鎷栧姩 + nav.addEventListener("mouseup", function() { + flag = false; + }); + // 榧犳爣绂诲紑鍏冪礌鍋滄鎷栧姩 + nav.addEventListener("mouseleave", function(event) { + flag = false; + }); + }, + // 椤甸潰閲岄潰鍒囨崲鏍峰搧 + async caretSample(num){ + let index = this.currentKey + num + if(index < 1){ + this.$message.error('褰撳墠鏄涓�涓牱鍝�') + return + } else if(index > this.sampleProduct.length){ + this.$message.error('褰撳墠鏄渶鍚庝竴涓牱鍝�') + return + } + this.currentKey = index + this.currentSample = this.HaveJson(this.sampleProduct[index - 1]) + // 鑾峰彇妫�楠岄」 + let list = await this.getCurrentProduct(this.currentSample.id,0) + this.currentSample.insProduct = this.HaveJson(list) + // 鍒濆鍖栧悗绔紶鍙� + this.param = {} + this.changeType = 0; + this.currentSample.insProduct.forEach((a, j) => { + if(this.handleCasing(a.inspectionItem)){ + this.param[a.id] = { + insValue: [], + comValue: [], + resValue: null, + equipValue: [], + equipName: [], + insResult: null, + beforeCheck:null, + afterCheck:null, + } + } + }) + // 椤甸潰鏁版嵁澶勭悊 + this.getTableLists() + // 鏇存柊鍒板绾跨▼ + this.worker.postMessage(JSON.stringify({ + type: 'saveData', + tableList:this.tableList, + param:this.param, + currentTable:this.currentTable + })); + }, + caretBushing(num){ + let index = this.currentKey0 + num + if(index < 1){ + this.$message.error('褰撳墠鏄涓�涓绠�') + return + } else if(index > this.bushing.length){ + this.$message.error('褰撳墠鏄渶鍚庝竴涓绠�') + return + } + this.currentKey0 = index + this.currentBushing = this.HaveJson(this.bushing[index - 1]) + this.fiberOpticTape = [] + this.currentFiberOpticTape = null; + this.fiberOptic = [] + this.currentFiberOptic = null; + if( this.currentBushing.fiber&& this.currentBushing.fiber.length>0){ + // 鐩存帴閰嶇疆鍏夌氦 + this.fiberOptic = this.currentBushing.fiber; + }else if( this.currentBushing.fibers&& this.currentBushing.fibers.length>0){ + // 閰嶇疆鍏夌氦甯﹀悗锛屽啀閰嶇疆鍏夌氦 + this.fiberOpticTape = this.currentBushing.fibers; + } + }, + async caretTape(num){ + let index = this.currentKey1 + num + if(index < 1){ + this.$message.error('褰撳墠鏄涓�涓厜绾ゅ甫') + return + } else if(index > this.fiberOpticTape.length){ + this.$message.error('褰撳墠鏄渶鍚庝竴涓厜绾ゅ甫') + return + } + this.currentKey1 = index + this.currentFiberOpticTape = this.HaveJson(this.fiberOpticTape[index - 1]) + this.param = {} + this.fiberOptic = [] + this.currentFiberOptic = null; + this.currentFiberOpticTape.productList.forEach(a => { + this.param[a.id] = { + insValue: [], + comValue: [], + resValue: null, + equipValue: [], + equipName: [], + insResult: null + } + }) + let list = await this.getCurrentProduct(this.currentFiberOpticTape.id,1) + this.getTableLists0(list) + if(this.currentFiberOpticTape.fiber&&this.currentFiberOpticTape.fiber.length>0){ + // 閰嶇疆鍏夌氦 + this.fiberOptic = this.currentFiberOpticTape.fiber; + } + }, + async caretOptic(num){ + let index = this.currentKey2 + num + if(index < 1){ + this.$message.error('褰撳墠鏄涓�涓厜绾�') + return + } else if(index > this.fiberOptic.length){ + this.$message.error('褰撳墠鏄渶鍚庝竴涓厜绾�') + return + } + this.currentKey2 = index + this.currentFiberOptic = this.HaveJson(this.fiberOptic[index - 1]) + this.currentFiberOptic.productList.forEach(a => { + this.param[a.id] = { + insValue: [], + comValue: [], + resValue: null, + equipValue: [], + equipName: [], + insResult: null + } + }) + let list = await this.getCurrentProduct(this.currentFiberOptic.id,2) + this.getTableLists0(list) + }, + 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(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('涓婁紶澶辫触') + this.$refs.upload.clearFiles() + }, + handleDown(row){ + this.$axios.post(this.$api.insOrderPlan.downFile, { + id: row.id, + }).then(res => { + if (res.code === 200) { + let url = ''; + if(res.data.type==1){ + url = this.javaApi+'/img/'+res.data.fileUrl + file.downloadIamge(url,row.fileName) + }else{ + url = this.javaApi+'/word/'+res.data.fileUrl + const link = document.createElement('a'); + link.href = url; + link.download = row.fileName; + link.click(); + } + } + }).catch(error => { + + }) + }, + /** + * 灏嗘暟鍊紇淇濈暀ct.fa涓�'##'鍚庣殑鎸囧畾灏忔暟浣嶆暟锛屽苟杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆銆� + * + * @param v 瑕佹牸寮忓寲鐨勬暟鍊� + * @param ct 鍖呭惈鏍煎紡鍖栭厤缃殑瀵硅薄 + * @param ct.fa 鏍煎紡鍖栭厤缃瓧绗︿覆锛岃嫢鍖呭惈'##'鍒欐寜鐓у叾鍚庣殑鍐呭纭畾灏忔暟浣嶆暟 + * @returns 鏍煎紡鍖栧悗鐨勫瓧绗︿覆鎴栧師濮嬫暟鍊硷紙鑻ラ厤缃笉绗﹀悎瑕佹眰锛� + */ + toFixed(v,ct){ + if(v&&ct&&ct.fa){ + if(ct.fa.includes('.')){ + let num = ct.fa.slice(4).length + return Number(v).toFixed(num) + }else{ + return v + } + }else{ + return v + } + }, + async getCurrentItem(){ + let list = await this.getCurrentProduct(this.currentSample.id,0) + this.currentSample.insProduct = this.HaveJson(list) + }, + saveVersion(){ + if(this.currentTableState!=0&&this.currentTableState!=1){ + this.$message.error('璇烽�夋嫨鐗堟湰') + return + } + this.versionLoading = true; + this.$axios.post(this.$api.insOrderPlan.chooseVersion, { + orderStateId: this.orderStateId, + version: this.currentTableState + }).then(res => { + this.versionLoading = false; + if(res.code==201){ + return + } + this.versionDialogVisible = false + }) + }, + async goHistory(num){ + if(this.num==1&&num==-1){ + this.$message.error('褰撳墠鏄涓�鏉¤褰�') + return + }else if(this.num1==this.num&&num==1){ + this.$message.error('褰撳墠鏄渶鍚庝竴鏉¤褰�') + return + } + this.num = this.num + num + this.tableLoading = true + await this.handleChangeSample(this.currentSample) + this.currentNum++ + this.tableLoading = false + }, + lookFile(row){ + this.currentFile = row; + if(row.type==1){ + this.currentFile.url = this.javaApi+'/img/'+row.fileUrl + }else{ + 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