From 54b1d5908bc6173160a3db6288a27c0944afaba9 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期二, 31 十二月 2024 13:25:44 +0800 Subject: [PATCH] 无源器件检验开发 --- src/components/do/b1-inspect-order-plan/Inspection.vue | 1387 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 989 insertions(+), 398 deletions(-) diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index b9f79b7..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; @@ -23,6 +35,7 @@ .search .form-inline { padding-top: 20px; padding-left: 0px; + text-align: left; } .center { @@ -168,6 +181,13 @@ display: inline-flex; align-items: center; } + .history-btn{ + display: flex; + align-items: center; + } + .noShow{ + opacity: 0; + } </style> <style> .inspection .el-form-item__label { @@ -187,6 +207,7 @@ .inspection .el-drawer__header { color: #303133; + text-align: left; } .inspection .el-input-group__append { @@ -236,31 +257,42 @@ <template> <div v-loading="loading" class="inspection"> <el-row class="title"> - <el-col :span="12" style="padding-left: 20px;text-align: left;" >妫�楠屽崟璇︽儏 + <el-col :span="12" style="padding-left: 20px;text-align: left;" :class="{noShow:noBack}">妫�楠屽崟璇︽儏 </el-col> - <el-col :span="12" style="text-align: right;"> - <!-- <el-button size="small" type="primary" @click="fiberOpticVisible=true" v-if="fiberOptic.length>0">鍏夌氦鍒囨崲</el-button> - <el-button size="small" type="primary" @click="fiberOpticTapeVisible=true" v-if="fiberOpticTape.length>0">鍏夌氦甯﹀垏鎹�</el-button> - <el-button size="small" type="primary" @click="bushingVisible=true" v-if="bushing.length>0">濂楃鍒囨崲</el-button> --> - <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="addVerifyDia = true" v-if="state==1" + <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-if="state>1">閫氳繃</el-button> - <el-button size="medium" @click="upInsReview(0)" v-if="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"> + <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-tooltip :disabled="!currentSample.sampleCode" :content="currentSample.sampleCode"> - <el-input clearable v-model="currentSample.sampleCode" disabled size="small" placeholder="璇疯緭鍏�" ></el-input> + <el-input clearable v-model="currentSample.sampleCode" disabled size="small" placeholder="璇疯緭鍏�" tooltip></el-input> </el-tooltip> </el-form-item> <el-form-item label="鏍峰搧鍚嶇О:"> @@ -268,6 +300,9 @@ </el-form-item> <el-form-item label="鏍峰搧鏁伴噺:"> <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> @@ -281,9 +316,11 @@ <el-form-item label="褰撳墠鏍峰搧浣嶆暟:"> <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag> </el-form-item> + <el-form-item label="" v-if="insOrder.rule"> + <el-tag>{{ !insOrder.rule.includes('涓嶈�冭檻涓嶇‘瀹氬害')?insOrder.rule.split('-')[0]+' '+insOrder.rule.split('-')[1]+'%':insOrder.rule }}</el-tag> + </el-form-item> <el-form-item label="澶囨敞:"> <span style="color:red">{{ insOrder.remark?insOrder.remark:'-' }}</span> - <!-- <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> --> </el-form-item> </el-form> </div> @@ -295,41 +332,13 @@ <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;"> - <span v-if="casing.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='鎴愬搧缂嗘楠屽師濮嬭褰�'"> 濂楃锛�</span> - <el-select v-model="currentTab" placeholder="璇烽�夋嫨" @change="m=>handleChange(m,3)" v-if="casing.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='鎴愬搧缂嗘楠屽師濮嬭褰�'" size="small" :loading="getReportModelLoading" @focus="getReportModel(currentSample.id)"> - <el-option - v-for="item in casing" - :key="item.id" - :label="item.color" - :value="item.id"> - <span style="float: left">{{ item.color}}</span> - <el-tag :type="item.state==1?'success':'danger'" style="float: right;margin-top: 5px;" size="small">{{ item.state==1?'宸叉':'鏈' }}</el-tag> - </el-option> - </el-select> - <span v-if="fibers.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='娓╁害寰幆妫�楠屽師濮嬭褰�'"> 鍏夌氦甯︼細</span> - <el-select v-model="currentTab" placeholder="璇烽�夋嫨" @change="m=>handleChange(m,1)" v-if="fibers.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='娓╁害寰幆妫�楠屽師濮嬭褰�'" size="small" :loading="getReportModelLoading" @focus="getReportModel(currentSample.id)"> - <el-option - v-for="item in fibers" - :key="item.value" - :label="item.code" - :value="item.id"> - <span style="float: left">{{ item.code}}</span> - <el-tag :type="item.state==1?'success':'danger'" style="float: right;margin-top: 5px;" size="small">{{ item.state==1?'宸叉':'鏈' }}</el-tag> - </el-option> - </el-select> - <span v-if="fiber.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='娓╁害寰幆妫�楠屽師濮嬭褰�'"> 鍏夌氦锛�</span> - <el-select v-model="currentTab" placeholder="璇烽�夋嫨" @change="m=>handleChange(m,2)" v-if="fiber.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='娓╁害寰幆妫�楠屽師濮嬭褰�'" size="small" :loading="getReportModelLoading" @focus="getReportModel(currentSample.id)"> - <el-option - v-for="item in fiber" - :label="item.bushColor+'-'+item.color" - :key="item.id" - :value="item.id"> - <span style="float: left">{{ item.bushColor+'-'+item.color }}</span> - <el-tag :type="item.state==1?'success':'danger'" style="float: right;margin-top: 5px;" size="small">{{ item.state==1?'宸叉':'鏈' }}</el-tag> - </el-option> - </el-select> <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> @@ -343,8 +352,14 @@ <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!='娓╁害寰幆妫�楠屽師濮嬭褰�'&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐑惊鐜�')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('娓╁崌璇曢獙'))"> + <!-- 甯歌妫�楠屽師濮嬭褰� --> + <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('娓╂箍搴﹁瘯楠�')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('鍔熺巼瀹归噺'))"> <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index+currentTable+currentSample.id"> <tbody> <tr v-for="(m,i) in item.arr" :key="i"> @@ -358,18 +373,18 @@ <el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v" :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)" @mousewheel.native.prevent :key="'abc-'+'000'+index+'000'+i+'000'+j" - @keydown.enter="changeInput('',`${item.templateId}-${n.r}-${n.c}-${n.i}`, 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" 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}`)" /> + @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||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}`)"> + @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;`" @@ -384,6 +399,7 @@ <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> @@ -414,14 +430,17 @@ </template> <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧缂栧彿'"> <div style="display: flex;flex-wrap: nowrap;align-items: center;width: 100%" :title="currentSample.sampleCode"> - <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i> + <!-- <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i> --> <div :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`">{{currentSample.sampleCode}}</div> - <i class="el-icon-caret-right table_caret" style="width: 16px;" - v-if="!currentFiberOpticTape&&!currentFiberOptic" @click="caretSample(1)"></i> + <!-- <i class="el-icon-caret-right table_caret" style="width: 16px;" + v-if="!currentFiberOpticTape&&!currentFiberOptic" @click="caretSample(1)"></i> --> </div> </template> <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧鍨嬪彿'"> <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;"> @@ -450,6 +469,20 @@ 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> @@ -457,6 +490,7 @@ </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> @@ -612,12 +646,14 @@ <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> @@ -691,6 +727,7 @@ <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> @@ -698,59 +735,43 @@ </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:id + orderId:this.orderId0, + sampleId:id, + sonLaboratory:sonLaboratory }" v-if="state==1&&fileAdd" :on-success="handleSuccessUp" :show-file-list="false" - accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' :headers="headers" :on-change="beforeUpload" + accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :headers="headers" :before-upload="beforeUpload" style="width: 80px !important;" :on-error="onError" ref='upload'> <el-button size="small" type="primary" v-if="state==1">闄勪欢涓婁紶</el-button></el-upload> + <!-- <span v-if="sonLaboratory === '杩滃満'||sonLaboratory === '杩戝満'" style="color: red;font-size: 12px;">杈愬皠璇曢獙灏介噺涓婁紶璁惧瀵煎嚭鐨刢sv鏂囦欢锛屼笉鐒惰Е鍙戜笉浜嗘姤鍛婄敓鎴�</span> --> <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList" :componentData="componentData0" :delUrl="$api.insOrderPlan.delfile" :key="upIndex" style="height: 100%;margin-top: 16px;"/> </div> - <el-drawer title="鍏夌氦鍒囨崲" :visible.sync="fiberOpticVisible" :size="500"> - <el-table class="el-table" ref="fiberOpticTable" :data="fiberOptic" height="100%" tooltip-effect="dark" border - highlight-current-row @row-click="handleChangeOptic" :row-class-name="tableRowClassName" - :current-row-key="currentKey2" :row-key="record=>record.index" v-if="fiberOpticVisible"> - <el-table-column type="index" align="center" label="搴忓彿" width="70px" :key="Math.random()"> - </el-table-column> - <el-table-column prop="bushColor" label="绠″鑹叉爣" min-width="100px" show-overflow-tooltip></el-table-column> - <el-table-column prop="color" label="鍏夌氦鑹叉爣" min-width="100px" show-overflow-tooltip></el-table-column> - <el-table-column prop="model" label="鍏夌氦瑙勬牸" min-width="130px" show-overflow-tooltip - ></el-table-column> - <el-table-column prop="standard" label="鍙傝�冩爣鍑�" width="100px" show-overflow-tooltip></el-table-column> - </el-table> - </el-drawer> - <el-drawer title="鍏夌氦甯﹀垏鎹�" :visible.sync="fiberOpticTapeVisible" :size="500"> - <el-table class="el-table" ref="fiberOpticTapeTable" :data="fiberOpticTape" height="100%" tooltip-effect="dark" border - highlight-current-row @row-click="handleChangeTape" :row-class-name="tableRowClassName" - :current-row-key="currentKey1" :row-key="record=>record.index" v-if="fiberOpticTapeVisible"> - <el-table-column type="index" align="center" label="搴忓彿" width="70px" :key="Math.random()"> - </el-table-column> - <el-table-column prop="code" label="鍏夌氦甯︾紪鍙�" min-width="110px" show-overflow-tooltip></el-table-column> - <el-table-column prop="model" label="鍏夌氦甯﹁鏍�" min-width="110px" show-overflow-tooltip></el-table-column> - <el-table-column prop="standard" label="鍙傝�冩爣鍑�" width="90px" show-overflow-tooltip></el-table-column> - <el-table-column prop="num" label="鍏夌氦妫�娴嬮噺" min-width="110px" show-overflow-tooltip - ></el-table-column> - </el-table> - </el-drawer> - <el-drawer title="濂楃鍒囨崲" :visible.sync="bushingVisible" :size="500"> - <el-table class="el-table" ref="bushingTable" :data="bushing" height="100%" tooltip-effect="dark" border - highlight-current-row @row-click="handleChangeBushing" :row-class-name="tableRowClassName" - :current-row-key="currentKey0" :row-key="record=>record.index" v-if="bushingVisible"> - <el-table-column type="index" align="center" label="搴忓彿" width="70px" :key="Math.random()"> - </el-table-column> - <el-table-column prop="color" label="绠¤壊鏍�" min-width="100px" show-overflow-tooltip></el-table-column> - <el-table-column prop="standNum" label="鏍囬噺" min-width="100px" show-overflow-tooltip></el-table-column> - <el-table-column prop="testNum" label="娴嬭瘯閲�" min-width="100px" show-overflow-tooltip></el-table-column> - </el-table> - </el-drawer> - <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"> @@ -785,7 +806,7 @@ </el-drawer> <el-dialog title="妫�楠屽鏍�" :visible.sync="reviewDia" width="500px"> <div class="body" style="display: flex;padding: 10px;" v-if="reviewDia"> - <div class="search_label" style="width: 150px;"><span class="required-span">* </span>涓嶉�氳繃鐨勭悊鐢憋細</div> + <div class="search_label" style="width: 150px;"><span class="required-span">* </span>鍐嶆璇曢獙鐨勭悊鐢憋細</div> <div class="search_input" style="width: 100%;"> <el-input size="small" clearable v-model="noReason" type="textarea" :autosize="{ minRows: 4}"></el-input> </div> @@ -825,7 +846,7 @@ <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+'ppppppppp'">{{n}}</el-checkbox> + <el-checkbox v-for="(n,j) in item.child[0].arr" :label="j" :key="j">{{n}}</el-checkbox> </el-checkbox-group> </td> </tr> @@ -834,7 +855,7 @@ <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+'bbbbbbbbbbbbbb'">{{n}}</el-checkbox> + <el-checkbox v-for="(n,j) in m.arr" :label="j" :key="j">{{n}}</el-checkbox> </el-checkbox-group> </td> </tr> @@ -845,6 +866,98 @@ <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> @@ -852,13 +965,38 @@ 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, @@ -898,6 +1036,8 @@ }, componentData0: { entity: { + insSampleId:'', + sonLaboratory:this.sonLaboratory, insOrderId:'' }, isIndex: true, @@ -919,6 +1059,12 @@ disabFun: (row, index) => { return this.state!=1 } + }, + { + id: '1', + font: '棰勮', + type: 'text', + method: 'lookFile', } ], isPage: false, @@ -943,7 +1089,7 @@ requiredUp: [] }, upIndex: 0, - getReportModelLoading:false, + changeType:null, insOrder: {}, sampleProduct: [], typeList: [], @@ -972,9 +1118,6 @@ verifyUser: null, personList: [], enumList: [], - fiberOpticVisible:false, - fiberOpticTapeVisible:false, - bushingVisible:false, fiberOpticTape:[],//鍏夌氦甯﹀垪琛� fiberOptic:[],//鍏夌氦鍒楄〃 bushing:[],//濂楃鍒楄〃 @@ -996,10 +1139,6 @@ numOptions:[], temperatureOptions:[], wareTableData:[], - otherForm:{ - humidity:null, - temperature:null, - }, equipForm:{ value0:null, code0:null, @@ -1026,34 +1165,28 @@ }, thermalCyclingLoading:false, temDataAcquisition:false, - getData:[ - { - faName:'娉㈤暱闄勫姞琛板噺', - child:[ - { - name:'1285nm~1330nm', - arr:[12,13,14,15], - }, - { - name:'1525nm~1575nm', - arr:[12,13,14,15], - }, - ] - }, - { - faName:'鎴嚦娉㈤暱', - child:[ - { - name:'鎴嚦娉㈤暱', - arr:[12,13,14,15], - } - ] - } - ], + getData:[], getDataIndex:[], - getDataIndexLoading:false + 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 { @@ -1067,6 +1200,8 @@ created() { this.componentData.entity.sonLaboratory = this.sonLaboratory; this.id = this.orderId; + this.currentTableState = this.version + this.num = this.num1 this.getUserInfo() }, mounted() { @@ -1079,15 +1214,18 @@ this.startWorker() }, watch: { + // 鐩戝惉浠诲姟id锛岃幏鍙栦换鍔′俊鎭� id(val) { this.loading = true this.$axios.post(this.$api.insOrderPlan.doInsOrder, { - id: val, + sampleId: val, laboratory: this.sonLaboratory }).then(async res => { this.insOrder = res.data.insOrder; - this.componentData0.entity.insOrderId = val; + this.componentData0.entity.insSampleId = val; + this.componentData0.entity.insOrderId = this.orderId0; this.$refs.fileList.selectList() + this.selectInsProductTemplate() this.urgentList.forEach(m => { if (m.value == this.insOrder.type) { this.insOrder.typeName = m.label @@ -1097,9 +1235,11 @@ if(!res.data.sampleProduct||res.data.sampleProduct.length==0){ return this.$message.error('璇ヤ换鍔℃病鏈夋牱鍝佷俊鎭�') } + // 璧嬪�煎綋鍓嶆牱鍝佸垪琛� this.sampleProduct = res.data.sampleProduct 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 = { @@ -1107,28 +1247,35 @@ humidity:humidity?humidity:null, } } + // 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」 let list = await this.getCurrentProduct(this.currentSample.id,0) this.currentSample.insProduct = this.HaveJson(list) - // console.log(this.currentSample) + // 鍒濆鍖栦紶閫掑埌鍚庣鐨勫弬鏁� + this.param = {} + this.changeType = 0; this.currentSample.insProduct.forEach(a => { - this.param[a.id] = { - insValue: [], - comValue: [], - resValue: null, - equipValue: [], - equipName: [], - insResult: null + // 鏄惁涓烘垚鍝佺數缂嗕笅鐨勬澗濂楃椤圭洰锛屼笉鏄垯鎵ц鍒濆鍖� + if(this.handleCasing(a.inspectionItem)){ + this.param[a.id] = { + insValue: [], + comValue: [], + resValue: null, + equipValue: [], + equipName: [], + insResult: null, + beforeCheck:null, + afterCheck:null, + } } }) - this.determineWhetherToCollectData() - this.getReportModel(this.currentSample.id) + this.determineWhetherToCollectData()//鏄惁闇�瑕佹暟閲� if (this.currentSample.index == undefined) this.currentSample['index'] = 1 let bushing = this.currentSample.bushing - this.getTableLists(); + this.getTableLists();//澶勭悊妯℃澘鍒楄〃淇℃伅 + this.componentData.currentId = val; this.currentKey = 1; - - // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁 + // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁---涓嬮潰淇℃伅鏆傛椂鍙拷鐣� this.fiberOpticTape = [] this.currentFiberOpticTape = null; this.fiberOptic = [] @@ -1141,24 +1288,37 @@ } }) }, + // 鐩戝惉褰撳墠妯℃澘鍙樺寲 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) - // console.log(this.currentSample) - this.currentSample.insProduct.forEach(a => { - this.param[a.id] = { - insValue: [], - comValue: [], - resValue: null, - equipValue: [], - equipName: [], - insResult: null + 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 + } } }) - this.getReportModel(this.currentSample.id) + // 鍘婚噸妯℃澘锛岃繑鍥炴湁鍑犱釜妯℃澘 const mySet1 = new Set(); this.tableLists = this.currentSample.insProduct.filter(m => { let num0 = mySet1.size; @@ -1180,25 +1340,23 @@ if (this.tableLists && this.tableLists.length > 0) { this.tableList = null; this.tableList = this.tableLists.filter(m => m.templateId == val1) + // 瀵规ā鏉胯繘琛屽鐞� this.handleTableData() } } }) - this.handleCasing() - 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) - } - } } }, + // 鐗规畩妫�楠岄」--鐩戝惉璁惧淇℃伅鏀瑰彉 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, @@ -1214,6 +1372,7 @@ }) } 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, @@ -1228,7 +1387,8 @@ } }) } - this.saveInsContext() + // 淇濆瓨鏁版嵁 + this.saveInsContext(this.currentSample.insProduct[0].id) } } }, @@ -1265,7 +1425,7 @@ if(res.code!=200){ return } - // console.log(res.data) + // 璧嬪�煎洖鏄綪K8000鐨勬暟鎹� this.wareFormChange() }) }else{ @@ -1277,11 +1437,18 @@ 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){ @@ -1289,17 +1456,26 @@ faName:i, child:[] } + // 寰幆鏁伴噰鏁版嵁 for(let j in data[i]){ - if(j!='frequency'&&data[i][j]&&typeof data[i][j].result == 'string'){ - this.dataAcquisitionInfo[i+','+j] = { + // 鎷兼帴瀛楃涓� 妫�楠岄」+妫�楠屽瓙椤� + 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 = '' - let str0 = i+','+j item.forEach(m=>{ if(m.v.ps&&(m.v.ps.value=='妫�楠屽瓙椤�'||m.v.ps.value=='妫�楠岄」')){ if(m.v.ps&&m.v.ps.value=='妫�楠岄」'){ @@ -1314,6 +1490,7 @@ } } } + // 缁戝畾璁惧淇℃伅 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) @@ -1322,7 +1499,14 @@ }) }) }else if(j!='frequency'&&data[i][j]&&Array.isArray(data[i][j].result)){ - let str0 = i+','+j + // 濡傛灉杩斿洖鐨勬暟閲囨暟鎹槸鏁扮粍锛屽垯澶勭悊鏁扮粍 + // 浠ヤ笅閫昏緫涓鸿幏鍙栨瘡涓楠岄」鍙緭鍏ョ殑妫�楠屽�肩殑鏈�澶т釜鏁� + let str0 = '' + if(i==j){ + str0 = i+',' + }else{ + str0 = i+','+j + } let list = this.tableList[0].arr let maxNum = 0 list.forEach((item,index)=>{ @@ -1351,7 +1535,7 @@ maxNum = num } } - console.log('data[i][j].equipName',data[i][j].equipName,'data[i][j].equipValue',data[i][j].equipValue,'m.v',m.v,'m.v.ps',m.v.ps,'m.v.ps.value',m.v.ps.value,'str0',str0,'str',str,'m.v.v',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) @@ -1359,16 +1543,25 @@ } }) }) + // 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[i+','+j] = { + this.dataAcquisitionInfo[str0] = { value:data[i][j].result } } @@ -1378,13 +1571,17 @@ 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 @@ -1397,12 +1594,17 @@ 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('璇烽�夋嫨闇�瑕侀噰闆嗙殑鏁版嵁') @@ -1411,6 +1613,7 @@ 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]]) @@ -1419,6 +1622,7 @@ } } this.getDataIndexLoading = true + // 璧嬪�煎畬鎴愬悗闇�瑕佸啀娆¤繘鍏ュ鐞嗘暟閲囩嚎绋嬮噷鍘诲鐞嗘暟鎹� this.handleDataAcquisition(this.dataAcquisitionInfoNew) }, // 澶氱嚎绋� @@ -1434,6 +1638,7 @@ // 鍒涘缓 Worker 瀹炰緥 this.worker0 = new Worker('/static/js/worker0.js'); }, + // 鍋滄澶氱嚎绋� stopWorker() { if (this.worker) { this.worker.terminate(); @@ -1446,15 +1651,23 @@ }, // 娓╁害寰幆---寮�濮� 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, @@ -1469,15 +1682,20 @@ } } ] + // 璧嬪�艰绠楀�� 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 @@ -1490,14 +1708,18 @@ }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 @@ -1520,6 +1742,7 @@ 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] = { @@ -1541,12 +1764,15 @@ } } 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, @@ -1561,9 +1787,11 @@ } } ] + // 椤甸潰鏁版嵁璧嬪�� obj.value0 = insValue[0].v obj.value1 = insValue[1].v }else if(insValue&&insValue.length==1){ + // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊� this.param[obj.id].insValue = [ { i:obj.id, @@ -1578,13 +1806,16 @@ } } ] + // 椤甸潰鏁版嵁璧嬪�� 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, @@ -1593,6 +1824,7 @@ } } ] + // 椤甸潰鏁版嵁璧嬪�� obj.comValue = comValue[0].v } break; @@ -1600,13 +1832,18 @@ 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:{ @@ -1616,6 +1853,7 @@ } return obj }) + // 浠ヤ笅鏄娓╁害寰幆椤甸潰鍛堢幇杩涜澶勭悊锛屽幓閲嶃�佹暟鎹噸缃瓑绛� let arr = [] let arr0 = [] let mySet = new Set() @@ -1661,13 +1899,16 @@ } 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,{ @@ -1687,6 +1928,7 @@ } if(productVos.length>0){ this.thermalCyclingInfo.inspectionItemClass = productVos[0].insProduct.inspectionItemClass + // 鏍规嵁妫�楠岄」锛屽垵濮嬪寲浼犲埌鍚庣鐨勫弬鏁� productVos.forEach(item=>{ this.param[item.insProduct.id] = { insValue: [], @@ -1712,9 +1954,11 @@ 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 @@ -1731,6 +1975,7 @@ a.insResult = obj.insResult } }) + // 缁欏悗绔紶鍙傝祴鍊� this.param[obj.id].insValue = [] insValue.forEach(m=>{ this.param[obj.id].insValue.push({ @@ -1747,6 +1992,7 @@ break; } } + // 缁欏悗绔紶鍙傝祴鍊� this.param[obj.id].insResult = { i:obj.id, v:{ @@ -1754,6 +2000,7 @@ } } }else{ + // 缁欓〉闈㈠垪琛ㄨ祴鍊� this.thermalCyclingInfo.arr.forEach(a=>{ a.insResult = null a.arr = [] @@ -1768,9 +2015,11 @@ } }) } + // 鑾峰彇璁惧鍒楄〃 this.getEquipOptions(true,this.currentSample.insProduct[0].id) }) }, + // 娣诲姞妫�楠屽�� handleAddThermal(){ this.thermalCyclingInfo.length++ this.thermalCyclingInfo.arr.forEach(item=>{ @@ -1780,6 +2029,7 @@ }) }) }, + // 鍒犻櫎妫�楠屽�� handleDeleteThermal(){ if(this.thermalCyclingInfo.length==1){ this.$message.error('鏈�鍚庝竴鏉℃暟鎹笉鑳藉垹闄�') @@ -1789,6 +2039,7 @@ this.thermalCyclingInfo.arr.forEach(item=>{ item.arr.pop() }) + // 鍒犻櫎鍚庨渶瑕佷繚瀛樹竴涓嬫暟鎹� this.saveThermalCycling(true,{name:'瀵肩嚎娓╁害'},true) } }, @@ -1806,6 +2057,7 @@ num0 = c.arr[i].value0 } }) + // 鍒ゆ柇缁撹 if(!num0||!b.value0){ b.state = null }else if(Number(num0)>Number(b.value0)){ @@ -1818,10 +2070,13 @@ 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 } } @@ -1856,7 +2111,7 @@ }) } } - // 璧嬪�� + // 缁欏悗绔紶鍙傝祴鍊� this.thermalCyclingInfo.arr.forEach(item=>{ for (let i in this.param){ if(this.param[i].inspectionItemSubclass==item.name){ @@ -1924,10 +2179,11 @@ } } }) - // console.log(1111,this.param) + // 淇濆瓨鏁版嵁 this.saveInsContext() }, // 鐑惊鐜�---缁撴潫 + // 淇濆瓨婀垮害銆佹俯搴︽暟鎹� subOtherForm(m,type){ let ids = [] for (let i in this.param) { @@ -1946,12 +2202,14 @@ 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 @@ -1965,6 +2223,9 @@ if (power[i].menuMethod == 'temDataAcquisition') { temDataAcquisition = true } + if(power[i].menuMethod == 'addInsProductTemplate'){ + addInsProductTemplatePower = true + } } if (!fileDel) { this.componentData0.do.splice(1, 1) @@ -1972,103 +2233,72 @@ 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 = await this.$axios.post(this.$api.insOrderPlan.getInsProduct+'?id='+id+'&type='+type+'&laboratory='+this.sonLaboratory) + 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 }, - handleChangeBushing(row, column, event){ - this.currentBushing = row; - this.fiberOpticTape = [] - this.currentFiberOpticTape = null; - this.fiberOptic = [] - this.currentFiberOptic = null; - if(row.fiber&&row.fiber.length>0){ - // 鐩存帴閰嶇疆鍏夌氦 - this.fiberOptic = row.fiber; - }else if(row.fibers&&row.fibers.length>0){ - // 閰嶇疆鍏夌氦甯﹀悗锛屽啀閰嶇疆鍏夌氦 - this.fiberOpticTape = row.fibers; - } - this.bushingVisible = false; - this.currentKey0 = row.index - }, - async handleChangeOptic(row, column, event){ - this.currentFiberOptic = row; - this.currentFiberOptic.productList.forEach(a => { - this.param[a.id] = { - insValue: [], - comValue: [], - resValue: null, - equipValue: [], - equipName: [], - insResult: null - } - }) - this.fiberOpticVisible = false; - let list = await this.getCurrentProduct(row.id,2) - this.getTableLists0(list) - this.currentKey2 = row.index - }, - async handleChangeTape(row, column, event){ - this.currentFiberOpticTape = row; - this.param = {} - this.fiberOptic = [] - this.currentFiberOptic = null; - this.currentFiberOpticTape.productList.forEach(a => { - this.param[a.id] = { - insValue: [], - comValue: [], - resValue: null, - equipValue: [], - equipName: [], - insResult: null - } - }) - this.fiberOpticTapeVisible = false; - let list = await this.getCurrentProduct(row.id,1) - this.getTableLists0(list) - if(row.fiber&&row.fiber.length>0){ - // 閰嶇疆鍏夌氦 - this.fiberOptic = row.fiber; - } - this.currentKey1 = row.index - }, + // 鍒囨崲鏍峰搧 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.handleCasing() - this.currentSample.insProduct.forEach(a => { - this.param[a.id] = { - insValue: [], - comValue: [], - resValue: null, - equipValue: [], - equipName: [], - insResult: null + // 鍒濆鍖栧悗绔紶鍙� + 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.getReportModel(row.id) let bushing = this.currentSample.bushing if(bushing&&bushing.length>0){ this.bushing = bushing } - // this.handleTableData() + // 澶勭悊椤甸潰鍒楄〃鏁版嵁 this.getTableLists(); - this.currentKey = row.index + this.currentKey = row.index?row.index:0 this.currentTab = null; + // 鍚戝绾跨▼鍘讳繚瀛橀〉闈㈠垪琛ㄦ暟鎹�,鍚庣浼犲弬,褰撳墠妯℃澘淇℃伅 this.worker.postMessage(JSON.stringify({ type: 'saveData', tableList:this.tableList, @@ -2076,27 +2306,27 @@ currentTable:this.currentTable })); }, - handleCasing(){ - if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName!='鎴愬搧缂嗘楠屽師濮嬭褰�')){ - this.currentSample.insProduct = this.currentSample.insProduct.filter(m=>!m.inspectionItem.includes('鏉惧绠�')) + // 鏉惧绠$殑鍒ゆ柇\濡傛灉changeType涓嶇瓑浜�3閭d箞椤甸潰涓嶅睍绀烘澗濂楃妫�楠岄」 + handleCasing(inspectionItem){ + if(this.changeType!=3){ + if(inspectionItem.includes('鏉惧绠�')){ + return false + }else{ + return true + } + }else{ + return true } }, - getReportModel(id){ - if(this.PROJECT!='妫�娴嬩腑蹇�'){ - return - } - this.getReportModelLoading = true - this.$axios.post(this.$api.insOrderPlan.getReportModel+'?sampleId='+id, {}).then(res => { - this.getReportModelLoading = false - this.fibers = res.data['鍏夌氦甯�'] - this.fiber = res.data['鍏夌氦'] - this.casing = res.data['濂楃'] - }) - }, + // 濂楃,鍏夌氦甯�,鍏夌氦绛夊垏鎹�,瀵瑰簲鍘熷璁板綍妯℃澘涔熻鍒囨崲 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: [], @@ -2104,11 +2334,14 @@ resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } }) + // 椤甸潰鍒楄〃鏁版嵁澶勭悊 this.getTableLists0(list) - this.getReportModel(this.currentSample.id) + // 鍚戝绾跨▼淇濆瓨鏁版嵁 this.worker.postMessage(JSON.stringify({ type: 'saveData', tableList:this.tableList, @@ -2123,10 +2356,12 @@ } } }, + // 鏀瑰彉浠诲姟 handleChangeTask(row) { if (row.length > 0) this.id = row[0].id; this.taskVisible = false; }, + // 瀛楀吀鑾峰彇淇℃伅 getTypeDicts() { this.$axios.post(this.$api.enums.selectEnumByCategory, { category: "绱ф�ョ▼搴�" @@ -2145,6 +2380,7 @@ this.componentData.tagField.type.select = data }) }, + // 瀛楀吀鑾峰彇淇℃伅 getInsStateDicts() { this.$axios.post(this.$api.enums.selectEnumByCategory, { category: "妫�楠屼换鍔$姸鎬�" @@ -2164,6 +2400,7 @@ this.componentData.tagField.insState.select = data }) }, + // 瀛楀吀鑾峰彇淇℃伅 getComparisonList() { this.$axios.post(this.$api.enums.selectEnumByCategory, { category: "琛ㄦ牸鍧愭爣杞崲" @@ -2172,6 +2409,7 @@ this.comparisonList = data; }) }, + // 鑾峰彇妫�楠屽�间负涓嬫媺鏃剁殑涓嬫媺鍒楄〃 selectEnumByCategoryOfSelect(val) { this.enumList = [] if (val === undefined || val === null) { @@ -2189,6 +2427,7 @@ }) { row.index = rowIndex + 1; }, + // 澶勭悊椤甸潰鍒楄〃鏁版嵁--鍘婚噸,鐢熸垚妫�楠屾ā鏉垮垏鎹㈠垪琛� getTableLists() { const mySet1 = new Set(); this.tableLists = this.currentSample.insProduct.filter(m => { @@ -2212,6 +2451,10 @@ 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() } }, @@ -2240,16 +2483,20 @@ this.tableList = [this.tableLists[0]] this.currentTable = this.tableLists[0].templateId; this.currentSample.insProduct = this.HaveJson(list) + // 澶勭悊椤甸潰鍒楄〃鏁版嵁 this.handleTableData() } }, + // 澶勭悊椤甸潰鍒楄〃鏁版嵁 handleTableData() { - this.excelMethodList = [] - this.widthList = this.tableList[0].style.columnlen; + 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({ @@ -2263,6 +2510,7 @@ mySet1.add(m.split(',')[0].replace('鈩�','')) } }) + // 鑾峰彇娓╁害鐐瑰垪琛� this.temperatureOptions = [] mySet1.forEach(m => { this.temperatureOptions.push({ @@ -2270,6 +2518,7 @@ label:m }) }) + // 鍒濆鍖栭〉闈㈡暟鎹� this.wareTableDataLoading = true this.$axios.post(this.$api.deviceScope.temDataAcquisition2,{ entrustCode:this.insOrder.entrustCode, @@ -2289,6 +2538,7 @@ // 娓╁害寰幆妫�楠屽師濮嬭褰�---缁撴潫 // 鐑惊鐜楠屽師濮嬭褰�---寮�濮� 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]) @@ -2311,10 +2561,11 @@ return obj }) this.thermalCyclingInfo.arr = arr; - // console.log(this.thermalCyclingInfo) + // 鍒濆鍖栭〉闈㈡暟鎹� this.thermalCyclingChange() } // 鐑惊鐜楠屽師濮嬭褰�---缁撴潫 + // 鏈寰幆涓昏鍋氶〉闈㈡覆鏌撳眰闈㈢殑澶勭悊--鍗曞厓鏍煎悎骞堕澶勭悊 this.tableList.forEach(a => { let mcList = [] a.template.forEach(b => { @@ -2343,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 @@ -2355,6 +2607,7 @@ 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 === '妫�楠岄」鍒嗙被'&&count4 === 0){ // 涓夌骇鍒嗙被 @@ -2407,6 +2660,7 @@ .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({ @@ -2424,6 +2678,7 @@ } } }) + // 鎿嶄綔鍒犻櫎 dels.forEach(del => { for (let b = 0; b < a.template.length; b++) { if (a.template[b].r === del) { @@ -2432,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) { @@ -2443,10 +2700,14 @@ .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 @@ -2466,73 +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 === '鏈�缁堝��') + // 缁撹涓庢渶缁堝�煎湪杩欓噷涓�涓�瀵瑰簲,浠ヤ笅涓や釜鍒楄〃闀垮害鑲畾鏄竴鏍风殑,濡傛灉鏈変笉涓�鏍�,閭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 && typeof b.v.ps.value ==='string'&&b.v.ps.value.includes('妫�楠屽��')) { this.$set(b.v, 'v','' ) // b.v.v = '' b.u = '' - b.i && 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 === '璁$畻鍊�') { this.$set(b.v, 'v','' ) // b.v.v = '' - b.i && this.param[b.i].comValue.push(b) + 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.$set(b.v, 'v', '' ) - b.i && this.param[b.i].equipValue.push(b) + b.i && this.param[b.i]&&this.param[b.i].equipValue.push(b) } if (b.v.ps != undefined && b.v.ps.value === '璁惧鍚嶇О') { this.$set(b.v, 'v', '' ) // b.v.v = '' - b.i && this.param[b.i].equipName.push(b) + 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 = '' this.$set(b.v, 'v', '' ) - /* if (b.i === undefined) { - for (var c in this.param) { - this.param[c].resValue = b - } - } else { - this.param[b.i].resValue = b - } */ - if (b.i !== undefined&&!this.param[b.i].resValue) { + 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 === '缁撹') { - if (b.i !== undefined&&!this.param[b.i].insResult) { + 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 = [] @@ -2549,14 +2821,17 @@ this.tableWidth += (a.style.columnlen[i] === undefined ? 100 : a.style.columnlen[i]) } }) + // 鏈寰幆涓昏鏄椤甸潰鍙婂悗绔紶鍙傝繘琛屽垵濮嬪寲璧嬪�� 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 = this.toFixed(comValue[i].v,this.param[a.id].comValue[i].v.ct) } } catch (e) {} try { + // 妫�楠屽�艰祴鍊� let insValue = JSON.parse(a.insProductResult.insValue) 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)){ @@ -2568,8 +2843,10 @@ } } catch (e) {} try { + // 璁惧缂栧彿璧嬪�� let equipValue = JSON.parse(a.insProductResult.equipValue) 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({ @@ -2585,13 +2862,16 @@ 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({ @@ -2602,55 +2882,52 @@ } } 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=='鐑惊鐜楠屽師濮嬭褰�'||this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁崌璇曢獙鍘熷璁板綍妯℃澘')){ + 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 = this.toFixed(a.lastValue,this.param[a.id].resValue.v.ct) - this.param[a.id].insResult.v.v = a.insResult - } catch (e) {} + // 鏈�缁堝�艰祴鍊� + this.param[a.id].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) { - // let str = code.split('-') - // let pId = str[3] - // if(!this.param[pId].equipValue||this.param[pId].equipValue.length==0||!this.param[pId].equipValue[0].v.v){ - // let inspectionItem = '' - // let idS = [] - // let child = 0 - // for (let i in this.currentSample.insProduct) { - // if(this.currentSample.insProduct[i].id==pId){ - // inspectionItem = this.currentSample.insProduct[i].inspectionItem - // } - // } - // for (let i in this.currentSample.insProduct) { - // if(this.currentSample.insProduct[i].inspectionItem==inspectionItem&&this.currentSample.insProduct[i].id!=pId){ - // idS.push(this.currentSample.insProduct[i].id) - // } - // } - // for (let i = 0;i<idS.length;i++) { - // if(this.param[idS[i]].equipValue&&this.param[idS[i]].equipValue.length>0&&this.param[idS[i]].equipValue[0].v.v){ - // child++ - // } - // } - // if(child==0){ - // n.v.v = null - // this.$message.error('璇峰厛濉啓璁惧淇℃伅') - // return - // } - // } + // 妫�楠屽�艰緭鍏ュ悗瑙﹀彂鐨勫嚱鏁� + changeInput(m, code, n,getDataType) { + // 涓烘暟閲囧畾涔変竴涓�昏緫鍙傛暟 + if(getDataType=='getDataType'){ + this.getDataType = 2; + } + let currentInsItemId = null//褰撳墠妫�楠岄」id if (n) { - // if (this.PROJECT === '瑁呭鐢电紗') { - // let num2 = new this.$Big(n.v.v) - // n.v.v = num2.toExponential() - // } + 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('/'); // 鍒嗗瓙鍜屽垎姣� @@ -2661,6 +2938,13 @@ n.v.v = n.v.v.replace('/', '') } } + // 閫氫俊鐗规畩澶勭悊锛屾楠屽�煎~鍏ヤ箣鍚庣洿鎺ヤ繚瀛樻暟鎹紝鍒ゆ柇缁撴灉榛樿涓�3 + for (var i in this.param){ + this.param[i].insResult = {v:{v:3}} + } + this.saveInsContext(n.i) + return; + // 浠ヤ笅鏄甯哥殑鍒ゆ柇娴佺▼锛屽悗闈㈡湁闇�瑕佸垯杩涘叆姝ゆ祦绋� try { // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫 this.worker.postMessage(JSON.stringify({ @@ -2671,12 +2955,12 @@ currentSample:this.currentSample, PROJECT:this.PROJECT, param:this.param, - currentTable:this.currentTable + currentTable:this.currentTable, + getDataTypeId:this.getDataTypeId })); } catch (error) { console.log(444,error); } - // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋� this.worker.onmessage = (event) => { this.result = JSON.parse(event.data); @@ -2686,6 +2970,11 @@ // 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=='鍚堟牸'){ @@ -2695,39 +2984,29 @@ } } } - this.saveInsContext() + 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 }, - handleFraction(str){ - if(str&&typeof(str)=='string'&&str.includes('/')){ - return eval(str.split('/')[0]/str.split('/')[1]) - } else if (str && typeof(str) == 'string' && str.includes('*') && str.includes('^')) { - const num1 = str.split('*') - const num2 = num1[1].split('^') - let num3 = new this.$Big(num2[0]); - let num4 = new this.$Big(num2[1]); - let num5 = Math.pow(num3, num4) // 璁$畻娆℃柟 - return num1[0] * num5 // 鏈�鍚庤绠椾箻娉� - } else{ - return str - } - }, + // 鏍规嵁鍚庣浼犲弬鏇存柊椤甸潰鏁版嵁 param => this.tableList[0].insProductResult getCurrentInsProduct(pId) { if (!this.tableList[0].insProductResult) { this.tableList[0].insProductResult = {} @@ -2736,6 +3015,7 @@ let value = this.param[pId][m] switch (m) { case 'comValue': + // 璧嬪�艰绠楀�� if (value && value.length > 0) { this.tableList[0].insProductResult[m] = []; value.forEach((a, i) => { @@ -2751,6 +3031,7 @@ } } break; + // 璧嬪�兼楠屽�� case 'insValue': if (value && value.length > 0) { this.tableList[0].insProductResult[m] = []; @@ -2768,6 +3049,7 @@ } } break; + // 璧嬪�艰澶囩紪鍙� case 'equipValue': if (value && value.length > 0) { this.tableList[0].insProductResult[m] = []; @@ -2784,6 +3066,7 @@ } } break; + // 璧嬪�艰澶囧悕绉� case 'equipName': if (value && value.length > 0) { this.tableList[0].insProductResult[m] = []; @@ -2800,39 +3083,31 @@ } } 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.valueList = excelFunction.changeParameter(item.v.f); return item; }) } }, - median(arr) { - // 瀵规暟缁勮繘琛屾帓搴� - const sortedArr = arr.sort((a, b) => a - b); - // 璁$畻鏁扮粍闀垮害鐨勪竴鍗� - const half = Math.floor(sortedArr.length / 2); - // 濡傛灉鏁扮粍闀垮害涓哄鏁帮紝杩斿洖涓棿鐨勫厓绱狅紱濡傛灉涓哄伓鏁帮紝杩斿洖涓棿涓や釜鍏冪礌鐨勫钩鍧囧�� - if (sortedArr.length % 2) { - // 濂囨暟浣嶇疆鐨勫厓绱� - return sortedArr[half]; - } else { - // 鍋舵暟浣嶇疆鐨勫钩鍧囧�� - return (sortedArr[half - 1] + sortedArr[half]) / 2; - } - }, 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] @@ -2844,6 +3119,7 @@ } return str }, + // 鑾峰彇褰撳墠杈撳叆妗嗙被鍨� getInspectionValueType(id) { for (var a in this.currentSample.insProduct) { if (this.currentSample.insProduct[a].id == id) { @@ -2851,6 +3127,7 @@ } } }, + // 鑾峰彇瑕佹眰鎻忚堪 getTell(id) { for (var a in this.currentSample.insProduct) { if (this.currentSample.insProduct[a].id == id) { @@ -2858,6 +3135,7 @@ } } }, + // 鍔ㄦ�佽幏鍙栧崟鍏冩牸瀹藉害 handleWidth(n) { let sum = 0; if (n.v.mc && n.v.mc.cs && n.v.mc.c != undefined) { @@ -2870,6 +3148,7 @@ } return sum }, + // 瀵硅緭鍏ュ�艰繘琛屾牸寮忔牎楠� handleInput (n) { try { n.v.v = n.v.v.replace(/[^\d.^e\-/+]/g, ''); @@ -2889,6 +3168,7 @@ } } }, + // 鑾峰彇瑕佹眰鍊� getAsk(id) { for (var a in this.currentSample.insProduct) { if (this.currentSample.insProduct[a].id == id) { @@ -2926,6 +3206,7 @@ } } */ }, + // 鑾峰彇璁惧 getEquipOptions(e, id) { if (e) { this.equipOptions = [] @@ -2965,18 +3246,19 @@ }) }, // 澶嶆牳 - 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; @@ -2984,8 +3266,8 @@ console.error(error) this.reviewLoading = false; }) - } else { - // 涓嶉�氳繃 + } else{ + // 鍐嶆璇曢獙 this.reviewDia = true; } }, @@ -2993,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 @@ -3011,33 +3293,116 @@ 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 } - if(!this.otherForm.humidity){ - this.$message.error("璇疯緭鍏ユ箍搴�") - return - } - if(!this.otherForm.temperature){ - this.$message.error("璇疯緭鍏ユ俯搴�") - return - } this.addVerifyDia = false this.submitLoading = true; this.$axios.post(this.$api.insOrderPlan.checkSubmitPlan, { - orderId: this.orderId, + sampleId: this.orderId, laboratory: this.sonLaboratory, }).then(res => { if (res.code === 200) { + let auxiliaryOutputWorkingHoursList = [] + this.sampleProduct.forEach(item=>{ + item.insProduct.forEach((a,i)=>{ + this.newUserInfo.forEach(b=>{ + let obj = { + inspectionItem:a.inspectionItem, + outputWorkTime:b.timeArr[i], + inspectionItemSubclass:a.inspectionItemSubclass, + sample:item.sampleCode, + insProductId:a.id, + num:item.num1, + check:b.id + } + auxiliaryOutputWorkingHoursList.push(obj) + }) + }) + }) if(!res.data||res.data.length==0){ this.$axios.post(this.$api.insOrderPlan.submitPlan, { - orderId: this.orderId, + sampleId: this.orderId, laboratory: this.sonLaboratory, verifyUser: this.verifyUser, - entrustCode: this.insOrder.entrustCode - }).then(res => { + 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') @@ -3066,11 +3431,18 @@ type: "" }).then(() => { this.$axios.post(this.$api.insOrderPlan.submitPlan, { - orderId: this.orderId, + sampleId: this.orderId, laboratory: this.sonLaboratory, - verifyUser: this.verifyUser - }).then(res => { + 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') } @@ -3081,19 +3453,41 @@ } } - this.submitLoading = false; }).catch(error => { console.error(error) this.submitLoading = false; }) return }, - saveInsContext() { - console.log(1111,this.param) + 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(this.param) + param: JSON.stringify(param), + currentTable:this.currentTable, + num:this.currentSample.num1 }).then(res => { if (res.code == 201) { this.$message.error('淇濆瓨澶辫触') @@ -3113,6 +3507,7 @@ console.log(999,error); } }, + // 璁惧鏀瑰彉 changeEquip(val, n,v) { this.$set(n.v,'v',val) this.tableList[0].arr.forEach((item,index)=>{ @@ -3159,14 +3554,26 @@ } } } - this.saveInsContext() + // 淇濆瓨鏁版嵁 + 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; + // let userName = JSON.parse(localStorage.getItem("user")).name; res.data.forEach(a => { - if(a.name !== userName) { + if(!this.inspectorList.includes(a.name)) { data.push({ label: a.name, value: a.id @@ -3203,6 +3610,7 @@ flag = false; }); }, + // 椤甸潰閲岄潰鍒囨崲鏍峰搧 async caretSample(num){ let index = this.currentKey + num if(index < 1){ @@ -3214,21 +3622,29 @@ } 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.handleCasing() + // 鍒濆鍖栧悗绔紶鍙� this.param = {} - this.currentSample.insProduct.forEach(a => { - this.param[a.id] = { - insValue: [], - comValue: [], - resValue: null, - equipValue: [], - equipName: [], - insResult: null + 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, @@ -3283,7 +3699,6 @@ insResult: null } }) - this.fiberOpticTapeVisible = false; let list = await this.getCurrentProduct(this.currentFiberOpticTape.id,1) this.getTableLists0(list) if(this.currentFiberOpticTape.fiber&&this.currentFiberOpticTape.fiber.length>0){ @@ -3315,22 +3730,39 @@ let list = await this.getCurrentProduct(this.currentFiberOptic.id,2) this.getTableLists0(list) }, - handleSuccessUp(response, ) { + async handleSuccessUp(response, ) { this.upLoading = false; if (response.code == 200) { this.$message.success('涓婁紶鎴愬姛'); this.$refs.fileList.selectList() + if(this.sonLaboratory === '鐢佃矾璇曢獙'){ + // // 鐢佃矾璇曢獙鏁伴噰 + // 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」 + let list = await this.getCurrentProduct(this.currentSample.id,0) + this.currentSample.insProduct = this.HaveJson(list) + this.currentNum++ + } + }else { + this.$message.error(response.message); } }, beforeUpload(file) { - if (file.size > 1024 * 1024 * 10) { - this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M'); - this.$refs.upload.clearFiles() - return false; - } else { - this.upLoading = true; - return true; - } + if(this.sonLaboratory === '鐢佃矾璇曢獙'&&(file.name.includes('浜よ皟')||file.name.includes('浜掕皟'))&&!this.$refs.CircuitParameters.allBandList.find(m=>m.band)){ + this.$message.error('涓婁紶闄勪欢鍓嶈鍏堝~鍐欏苟淇濆瓨棰戞'); + return false + }else{ + // if(file.name.includes('浜よ皟')||file.name.includes('浜掕皟')){ + // this.$refs.CircuitParameters.saveAll() + // } + if (file.size > 1024 * 1024 * 10) { + this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M'); + this.$refs.upload.clearFiles() + return false; + } else { + this.upLoading = true; + return true; + } + } }, onError(err, file, fileList) { this.$message.error('涓婁紶澶辫触') @@ -3376,6 +3808,165 @@ }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