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 | 1013 ++++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 622 insertions(+), 391 deletions(-) diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index f4ec2e1..54e89e4 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -181,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 { @@ -250,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;uploadSample()">鏍峰搧鍒囨崲</el-button> - <el-button size="small" type="primary" @click="taskVisible=true">浠诲姟鍒囨崲</el-button> + <el-col :span="12" style="text-align: right;display: flex;align-items: center;justify-content: end;height: 60px;"> + <el-button size="small" type="primary" @click="versionDialogVisible=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')&&insOrder.sampleType!='鏃犳簮鍣ㄤ欢'">鐢佃皟/闈炵數璋冩ā鏉垮垏鎹�</el-button> + <el-select v-model="template" size="medium" placeholder="鐢佃矾棰勮妯℃澘" style="margin-right: 10px;margin-left: 10px;" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')" + @change="selectInsProductTemplateById"> + <el-option v-for="(a, ai) in templates" :key="ai" :value="a.id" :label="a.name"> + <span style="float: left">{{ a.name }}</span> + <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px;line-height: 34px;" + @click.stop="handleDelete(a)" v-if="addInsProductTemplatePower"></i> + </el-option> + </el-select> + <el-button size="medium" @click="templateDia=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('鐢佃矾璇曢獙')&&addInsProductTemplatePower"> + <span style="color: #3A7BFA;">淇濆瓨妯℃澘</span> + </el-button> + <!-- <el-button size="small" type="primary" @click="sampleVisible=true;uploadSample()">鏍峰搧鍒囨崲</el-button> --> + <el-button size="small" type="primary" @click="taskVisible=true" v-show="!isLook">浠诲姟鍒囨崲</el-button> <el-button size="small" type="primary" @click="handleSubmit" v-if="state==1" :loading="submitLoading">鎻愪氦</el-button> <!-- 澶嶆牳 --> - <el-button size="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="鏍峰搧鍚嶇О:"> @@ -282,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> @@ -295,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> @@ -309,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> @@ -357,9 +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('娓╁崌璇曢獙'))&&(tableLists.find(m=>m.templateId==currentTable).templateName!='寮у瀭鐗规�ф楠屽師濮嬭褰�')"> + <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"> @@ -430,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;"> @@ -466,93 +469,26 @@ 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="sagForm" class="form-inline" label-width="120px" 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="sagForm.sampleCode" disabled size="small" placeholder=""></el-input> - </el-form-item> - <el-form-item label="鍨嬪彿" style="margin-bottom: 0;"> - <el-input clearable v-model="sagForm.model" disabled size="small" placeholder=""></el-input> - </el-form-item> - <el-form-item label="妫�楠屼緷鎹�" style="margin-bottom: 0;"> - <el-input clearable v-model="sagForm.inspection" disabled size="small" placeholder=""></el-input> - </el-form-item> - <el-form-item label="璁惧缂栧彿" style="margin-bottom: 0;"> - <el-input clearable v-model="sagForm.methodName" disabled size="small" placeholder=""></el-input> - </el-form-item> - <el-form-item label="棰濆畾鎷夋柇鍔�/kN" style="margin-bottom: 0;"> - <el-input clearable v-model="sagForm.tensileForce" disabled size="small" placeholder=""></el-input> - </el-form-item> - <el-form-item label="璺ㄨ窛闀垮害/m" style="margin-bottom: 0;"> - <el-input clearable v-model="sagForm.spanLength" disabled size="small" placeholder=""></el-input> - </el-form-item> - <el-form-item label="杞借嵎/kN" style="margin-bottom: 0;"> - <el-input clearable v-model="sagForm.load" disabled size="small" placeholder=""></el-input> - </el-form-item> - </el-form> - <el-divider></el-divider> - <div class="container"> - <el-button class="right-button" type="primary" size="small" @click="addSag">娣� 鍔�</el-button> - </div> - <el-table :data="sagData" class="custom-table" border> - <el-table-column label="楂樺害 h mm" prop="height" align="center"> - </el-table-column> - <el-table-column label="寮у瀭 mm" prop="sag" align="center"> - </el-table-column> - <el-table-column label="瀵肩嚎娓╁害鈩�" align="center"> - <el-table-column label="1" prop="one" align="center"> - <template slot-scope="scope"> - <el-input v-model="scope.row.one" style="width: 100%;"></el-input> - </template> - </el-table-column> - <el-table-column label="2" prop="two" align="center"> - <template slot-scope="scope"> - <el-input v-model="scope.row.two" style="width: 100%;"></el-input> - </template> - </el-table-column> - <el-table-column label="3" prop="three" align="center"> - <template slot-scope="scope"> - <el-input v-model="scope.row.three" style="width: 100%;"></el-input> - </template> - </el-table-column> - <el-table-column label="4" prop="four" align="center"> - <template slot-scope="scope"> - <el-input v-model="scope.row.four" style="width: 100%;"></el-input> - </template> - </el-table-column> - <el-table-column label="5" prop="five" align="center"> - <template slot-scope="scope"> - <el-input v-model="scope.row.five" style="width: 100%;"></el-input> - </template> - </el-table-column> - <el-table-column label="6" prop="six" align="center"> - <template slot-scope="scope"> - <el-input v-model="scope.row.six" style="width: 100%;"></el-input> - </template> - </el-table-column> - </el-table-column> - <el-table-column label="骞冲潎娓╁害鈩�" prop="average" align="center"> - </el-table-column> - <el-table-column label="瀹ゆ俯鈩�" prop="temperature" align="center"> - </el-table-column> - <el-table-column label="寮犲姏kN" prop="remark" align="center"> - </el-table-column> - <el-table-column label="鎿嶄綔" align="center"> - <template slot-scope="scope"> - <el-button type="text" size="small" @click="deleteSag(scope.$index)"><span style="color:red">鍒犻櫎</span></el-button> - </template> - </el-table-column> - </el-table> </div> <!-- 娓╁害寰幆妫�楠屽師濮嬭褰� --> <div v-loading="tableLoading" v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'"> @@ -799,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"> @@ -886,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> @@ -946,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> @@ -953,23 +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','inspectorList'], + props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1','noBack','orderId0','userInfo'], components: { ValueTable, + CircuitParameters1, + CircuitParameters2, + CircuitParameters3, + filePreview, + Humidity, + PowerCapacity, }, data() { return { - sagData: [], - sagForm: { - sampleCode: null, - model: null, - inspection: null, - methodName: null, - tensileForce: null, - spanLength: null, - load: null + 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, @@ -1009,6 +1036,8 @@ }, componentData0: { entity: { + insSampleId:'', + sonLaboratory:this.sonLaboratory, insOrderId:'' }, isIndex: true, @@ -1030,6 +1059,12 @@ disabFun: (row, index) => { return this.state!=1 } + }, + { + id: '1', + font: '棰勮', + type: 'text', + method: 'lookFile', } ], isPage: false, @@ -1055,7 +1090,6 @@ }, upIndex: 0, changeType:null, - getReportModelLoading:false, insOrder: {}, sampleProduct: [], typeList: [], @@ -1084,9 +1118,6 @@ verifyUser: null, personList: [], enumList: [], - fiberOpticVisible:false, - fiberOpticTapeVisible:false, - bushingVisible:false, fiberOpticTape:[],//鍏夌氦甯﹀垪琛� fiberOptic:[],//鍏夌氦鍒楄〃 bushing:[],//濂楃鍒楄〃 @@ -1108,10 +1139,6 @@ numOptions:[], temperatureOptions:[], wareTableData:[], - otherForm:{ - humidity:null, - temperature:null, - }, equipForm:{ value0:null, code0:null, @@ -1138,35 +1165,25 @@ }, 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, changeType:null, getDataTypeId:'', - getDataType:null + getDataType:null, + num:0, + otherForm:{ + temperature:'', + humidity:'' + }, + currentFile:{},//褰撳墠鏂囦欢 + templates:[],//鐢佃矾璇曢獙妯℃澘 + templateDia:false,//鐢佃矾璇曢獙妯℃澘淇濆瓨妯℃澘寮规 + template:null, + templateLoading:false, + templateName:'', + addInsProductTemplatePower:false,//閰嶇疆妯℃澘鏉冮檺 + newUserInfo:[] } }, // 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭� @@ -1183,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() { @@ -1199,12 +1218,14 @@ id(val) { this.loading = true this.$axios.post(this.$api.insOrderPlan.doInsOrder, { - id: val, + sampleId: val, laboratory: this.sonLaboratory }).then(async res => { this.insOrder = res.data.insOrder; - this.componentData0.entity.insOrderId = val; + this.componentData0.entity.insSampleId = val; + this.componentData0.entity.insOrderId = this.orderId0; this.$refs.fileList.selectList() + this.selectInsProductTemplate() this.urgentList.forEach(m => { if (m.value == this.insOrder.type) { this.insOrder.typeName = m.label @@ -1241,12 +1262,13 @@ resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } } }) this.determineWhetherToCollectData()//鏄惁闇�瑕佹暟閲� - this.getReportModel(this.currentSample.id)//鑾峰彇濂楃銆佸厜绾ゅ甫銆佸厜绾や俊鎭� if (this.currentSample.index == undefined) this.currentSample['index'] = 1 let bushing = this.currentSample.bushing this.getTableLists();//澶勭悊妯℃澘鍒楄〃淇℃伅 @@ -1296,7 +1318,6 @@ } } }) - this.getReportModel(this.currentSample.id)//鑾峰彇濂楃銆佸厜绾ゅ甫銆佸厜绾や俊鎭� // 鍘婚噸妯℃澘锛岃繑鍥炴湁鍑犱釜妯℃澘 const mySet1 = new Set(); this.tableLists = this.currentSample.insProduct.filter(m => { @@ -1367,7 +1388,7 @@ }) } // 淇濆瓨鏁版嵁 - this.saveInsContext() + this.saveInsContext(this.currentSample.insProduct[0].id) } } }, @@ -1377,22 +1398,6 @@ this.stopWorker(); }, methods: { - // 鍒犻櫎琛� - deleteSag(index) { - this.sagData.splice(index, 1) - }, - // 娣诲姞寮у瀭妫�娴� - addSag() { - this.sagData.push({ - sampleCode: null, - model: null, - inspection: null, - methodName: null, - tensileForce: null, - spanLength: null, - load: null - }) - }, // 鏁版嵁閲囬泦 getDataAcquisitionDevice(){ if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'){ @@ -2204,6 +2209,7 @@ let fileAdd = false let collected = false let temDataAcquisition = false + let addInsProductTemplatePower = false; for (var i = 0; i < power.length; i++) { if (power[i].menuMethod == 'uploadFile') { fileAdd = true @@ -2217,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) @@ -2224,6 +2233,7 @@ this.fileAdd = fileAdd this.collected = collected this.temDataAcquisition = temDataAcquisition + this.addInsProductTemplatePower = addInsProductTemplatePower }, uploadSample(){ this.$axios.post(this.$api.insOrderPlan.doInsOrder, { @@ -2236,66 +2246,14 @@ // 鏍规嵁绫诲瀷銆佷换鍔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) { @@ -2303,6 +2261,7 @@ this.param = {} // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁 this.fiberOpticTape = [] + this.template = '' this.currentFiberOpticTape = null; this.fiberOptic = [] this.currentFiberOptic = null; @@ -2325,19 +2284,19 @@ resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } } }) - // 鑾峰彇濂楃,鍏夌氦甯�,鍏夌氦鏁版嵁 - this.getReportModel(row.id) let bushing = this.currentSample.bushing if(bushing&&bushing.length>0){ this.bushing = bushing } // 澶勭悊椤甸潰鍒楄〃鏁版嵁 this.getTableLists(); - this.currentKey = row.index + this.currentKey = row.index?row.index:0 this.currentTab = null; // 鍚戝绾跨▼鍘讳繚瀛橀〉闈㈠垪琛ㄦ暟鎹�,鍚庣浼犲弬,褰撳墠妯℃澘淇℃伅 this.worker.postMessage(JSON.stringify({ @@ -2359,19 +2318,6 @@ 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 @@ -2388,13 +2334,13 @@ 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', @@ -2505,6 +2451,9 @@ 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() } @@ -2738,6 +2687,7 @@ } } }) + console.log(4444,a.template) // 鎿嶄綔璧嬪��--涓昏璧嬪�煎崟浣�,璇曢獙鏂规硶绛変俊鎭� ids.forEach(id => { for (let b = 0; b < a.template.length; b++) { @@ -2750,6 +2700,9 @@ .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 + // } } } }) @@ -2834,6 +2787,16 @@ } }) } + } + if (b.v.ps != undefined && b.v.ps.value === '璇曢獙鍓嶆牱鍝佹鏌�') { + // b.v.v = '' + this.$set(b.v, 'v', '' ) + this.param[b.i].beforeCheck = b + } + if (b.v.ps != undefined && b.v.ps.value === '璇曢獙鍚庢牱鍝佹鏌�') { + // b.v.v = '' + this.$set(b.v, 'v', '' ) + this.param[b.i].afterCheck = b } set.add(b.r) // 濡傛灉妯℃澘鍒楄〃鐨勫嚱鏁板瓨鍦�,閭d箞鍔犲叆鍒癳xcel鍑芥暟鍒楄〃閲岄潰 @@ -2931,10 +2894,18 @@ } catch (e) {} try { // 鏈�缁堝�艰祴鍊� - this.param[a.id].resValue.v.v = this.toFixed(a.lastValue,this.param[a.id].resValue.v.ct) + this.param[a.id].resValue = {v:{v:a.lastValue}} + // this.param[a.id].resValue.v.v = this.toFixed(a.lastValue,this.param[a.id].resValue.v.ct) // 缁撹璧嬪�� - this.param[a.id].insResult.v.v = a.insResult - } catch (e) {} + this.param[a.id].insResult = {v:{v:a.insResult}} + // this.param[a.id].insResult.v.v = a.insResult + // 妫�楠屽墠鏍峰搧妫�鏌ヨ祴鍊� + this.param[a.id].afterCheck.v.v = a.insProductResult.afterCheck + // 妫�楠屽悗鏍峰搧妫�鏌ヨ祴鍊� + this.param[a.id].beforeCheck.v.v = a.insProductResult.beforeCheck + } catch (e) { + console.log('error',e) + } }) // 瀵筫xcel鍑芥暟杩涜澶勭悊 this.handleExcelMethod() @@ -2945,7 +2916,9 @@ 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=='浣撶Н鐢甸樆鐜�')){ @@ -2965,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({ @@ -2981,17 +2961,19 @@ } catch (error) { console.log(444,error); } - // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋� this.worker.onmessage = (event) => { this.result = JSON.parse(event.data); switch (this.result.method){ case 'saveInsContext': - console.log(`output->`,11111111111111) 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){ @@ -3002,33 +2984,7 @@ } } } - // 濡傛灉鏄暟閲囧彲缂栬緫杈撳叆鐨勬儏鍐�,鍙互鐩存帴淇濆瓨鏁版嵁 - if(this.getDataType==2){ - this.saveInsContext() - }else{ - if(this.isGet&&!this.dataAcquisitionEidtAble){ - if(this.result.value.getDataTypeId==''){ - // 濡傛灉鏄暟閲囦笉鍙紪杈戣緭鍏ョ殑鎯呭喌,涓旀渶鍚庝竴涓暟閲囨病鏈夊畬鎴�,鍒欎笉淇濆瓨鏁版嵁 - return - } - // 淇濆瓨鏁版嵁 - setTimeout(()=>{ - this.saveInsContext() - },2000) - }else if(this.isGet&&this.dataAcquisitionEidtAble){ - if(this.getDataType==1){ - if(this.result.value.getDataTypeId==''){ - // 濡傛灉鏄暟閲囧彲缂栬緫杈撳叆鐨勬儏鍐�,涓旀渶鍚庝竴涓暟閲囨病鏈夊畬鎴�,鍒欎笉淇濆瓨鏁版嵁 - return - } - this.saveInsContext() - }else{ - this.saveInsContext() - } - }else{ - this.saveInsContext() - } - } + this.saveInsContext(currentInsItemId) }) break; case 'tableList': @@ -3290,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; @@ -3309,8 +3266,8 @@ console.error(error) this.reviewLoading = false; }) - } else { - // 涓嶉�氳繃 + } else{ + // 鍐嶆璇曢獙 this.reviewDia = true; } }, @@ -3318,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 @@ -3336,7 +3293,31 @@ this.$message.error('鏈緭鍏ヤ笉閫氳繃鍘熷洜') } }, - handleSubmit(){ + 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() @@ -3344,35 +3325,85 @@ 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(async res => { + entrustCode: this.insOrder.entrustCode, + auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList, + ...this.experimentInfo + }, { + headers: { + 'Content-Type': 'application/json' + }, + noQs:true}).then(res => { if (res.code === 200) { - await this.handleCType() this.$message.success("鎿嶄綔鎴愬姛") this.$emit('goback') } @@ -3400,12 +3431,18 @@ type: "" }).then(() => { this.$axios.post(this.$api.insOrderPlan.submitPlan, { - orderId: this.orderId, + sampleId: this.orderId, laboratory: this.sonLaboratory, - verifyUser: this.verifyUser - }).then( async res => { + verifyUser: this.verifyUser, + auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList, + ...this.experimentInfo + }, { + headers: { + 'Content-Type': 'application/json' + }, + noQs:true}).then( res => { if (res.code === 200) { - await this.handleCType() + this.submitLoading = false; this.$message.success("鎿嶄綔鎴愬姛") this.$emit('goback') } @@ -3416,7 +3453,6 @@ } } - this.submitLoading = false; }).catch(error => { console.error(error) this.submitLoading = false; @@ -3426,7 +3462,7 @@ async handleCType(){ if(this.insOrder.departmentLims=='璐ㄩ噺閮�'){ await this.$axios.post(this.$api.insOrderPlan.verifyPlan, { - orderId: this.orderId, + sampleId: this.orderId, type: 1, laboratory: this.sonLaboratory, tell: null @@ -3438,13 +3474,20 @@ } }, // 缁熶竴鍦ㄨ繖閲屼繚瀛樻暟鎹� - saveInsContext() { + 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), - currentTable:this.currentTable + param: JSON.stringify(param), + currentTable:this.currentTable, + num:this.currentSample.num1 }).then(res => { if (res.code == 201) { this.$message.error('淇濆瓨澶辫触') @@ -3512,7 +3555,18 @@ } } // 淇濆瓨鏁版嵁 - 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 => { @@ -3582,7 +3636,9 @@ resValue: null, equipValue: [], equipName: [], - insResult: null + insResult: null, + beforeCheck:null, + afterCheck:null, } } }) @@ -3643,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){ @@ -3675,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('涓婁紶澶辫触') @@ -3736,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