| | |
| | | <el-row class="title"> |
| | | <el-col :span="12" style="padding-left: 20px;text-align: left;" :class="{noShow:noBack}">检验单详情 |
| | | </el-col> |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <el-button size="small" type="primary" @click="versionDialogVisible=true" v-if="state==1">检验模板切换</el-button> |
| | | <el-button size="small" type="primary" @click="sampleVisible=true;uploadSample()">样品切换</el-button> |
| | | <el-col :span="12" style="text-align: right;display: flex;align-items: center;justify-content: end;height: 60px;"> |
| | | <el-button size="small" type="primary" @click="versionDialogVisible=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('电路试验')&&insOrder.sampleType!='无源器件'">电调/非电调模板切换</el-button> |
| | | <el-select v-model="template" size="medium" placeholder="电路预设模板" style="margin-right: 10px;margin-left: 10px;" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('电路试验')" |
| | | @change="selectInsProductTemplateById"> |
| | | <el-option v-for="(a, ai) in templates" :key="ai" :value="a.id" :label="a.name"> |
| | | <span style="float: left">{{ a.name }}</span> |
| | | <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px;line-height: 34px;" |
| | | @click.stop="handleDelete(a)" v-if="addInsProductTemplatePower"></i> |
| | | </el-option> |
| | | </el-select> |
| | | <el-button size="medium" @click="templateDia=true" v-if="state==1&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName.includes('电路试验')&&addInsProductTemplatePower"> |
| | | <span style="color: #3A7BFA;">保存模板</span> |
| | | </el-button> |
| | | <!-- <el-button size="small" type="primary" @click="sampleVisible=true;uploadSample()">样品切换</el-button> --> |
| | | <el-button size="small" type="primary" @click="taskVisible=true" v-show="!isLook">任务切换</el-button> |
| | | <el-button size="small" type="primary" @click="handleSubmit" v-if="state==1" |
| | | :loading="submitLoading">提交</el-button> |
| | | <!-- 复核 --> |
| | | <el-button size="small" type="primary" @click="upInsReview(1)" :loading="reviewLoading" |
| | | v-if="state>1&&!isLook">继续试验</el-button> |
| | | <el-button size="small" @click="upInsReview(0)" v-if="state>1&&!isLook" type="danger">再次试验</el-button> |
| | | <el-button size="small" @click="upInsReview(2)" v-if="state>1&&!isLook">结束试验</el-button> |
| | | <el-button size="small" @click="$emit('goback')" v-if="!noBack">返回</el-button> |
| | | <!-- <el-button size="small" type="primary" @click="upInsReview(1,'继续试验')" :loading="reviewLoading" |
| | | v-if="state>1&&!isLook">继续测试下一个样品</el-button> |
| | | <el-button size="small" @click="upInsReview(0,'再次试验')" v-if="state>1&&!isLook" type="danger">再次试验</el-button> |
| | | <el-button size="small" @click="upInsReview(2,'结束试验')" v-if="state>1&&!isLook">此委托单结束</el-button> --> |
| | | <el-button size="small" type="primary" @click="upInsReviewDia=true" v-if="state>1&&!isLook">复核</el-button> |
| | | <el-button size="small" @click="handleBack" v-if="!noBack">返回</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <div class="search" v-show="!isLook"> |
| | |
| | | </el-form-item> |
| | | <el-form-item label="当前样品位数:"> |
| | | <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag> |
| | | </el-form-item> |
| | | <el-form-item label="" v-if="insOrder.rule"> |
| | | <el-tag>{{ !insOrder.rule.includes('不考虑不确定度')?insOrder.rule.split('-')[0]+' '+insOrder.rule.split('-')[1]+'%':insOrder.rule }}</el-tag> |
| | | </el-form-item> |
| | | <el-form-item label="备注:"> |
| | | <span style="color:red">{{ insOrder.remark?insOrder.remark:'-' }}</span> |
| | |
| | | </div> --> |
| | | </div> |
| | | <!-- 常规检验原始记录 --> |
| | | <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(!tableLists.find(m=>m.templateId==currentTable).templateName.includes('电路试验'))"> |
| | | <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(!tableLists.find(m=>m.templateId==currentTable).templateName.includes('电路试验')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('温湿度试验')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('功率容量'))"> |
| | | <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index+currentTable+currentSample.id"> |
| | | <tbody> |
| | | <tr v-for="(m,i) in item.arr" :key="i"> |
| | |
| | | </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==='样品型号'"> |
| | |
| | | <i |
| | | v-if="currentFiberOptic" class="el-icon-caret-right table_caret" @click="caretOptic(1)"></i> |
| | | </div> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='试验前样品检查'"> |
| | | <el-select class="table_input" v-model="n.v.v" |
| | | :disabled="state>1|| (n.u != userId && n.u != undefined && n.u != '')" @change="(val)=>changeSampleCheck(val, n,'前')"> |
| | | <el-option label="完好" :value="'完好'"></el-option> |
| | | <el-option label="破损" :value="'破损'"></el-option> |
| | | </el-select> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='试验后样品检查'"> |
| | | <el-select class="table_input" v-model="n.v.v" |
| | | :disabled="state>1|| (n.u != userId && n.u != undefined && n.u != '')" @change="(val)=>changeSampleCheck(val, n,'后')"> |
| | | <el-option label="完好" :value="'完好'"></el-option> |
| | | <el-option label="破损" :value="'破损'"></el-option> |
| | | </el-select> |
| | | </template> |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)" ></span> |
| | | </div> |
| | |
| | | <!-- 电路试验 --> |
| | | <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('电路试验')" style="width: 100%;overflow-x: auto;overflow-y: visible;"> |
| | | <!-- <Circuit></Circuit> --> |
| | | <CircuitParameters1 v-if="currentTableState==0" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum"></CircuitParameters1> |
| | | <CircuitParameters2 v-if="currentTableState==1" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum"></CircuitParameters2> |
| | | <!-- 电调 --> |
| | | <CircuitParameters1 v-if="currentTableState==0" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum" ref="CircuitParameters"></CircuitParameters1> |
| | | <!-- 非电调 --> |
| | | <CircuitParameters2 v-if="currentTableState==1" :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum" ref="CircuitParameters"></CircuitParameters2> |
| | | <!-- 无源器件 --> |
| | | <CircuitParameters3 v-if="this.insOrder.sampleType=='无源器件' " :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :num="currentSample.num1" :isLook="isLook" :currentNum="currentNum" ref="CircuitParameters"></CircuitParameters3> |
| | | </div> |
| | | <!-- 温湿度试验 --> |
| | | <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('温湿度试验')"> |
| | | <Humidity :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :isLook="isLook" :num="currentSample.num1"/> |
| | | </div> |
| | | <!-- 功率试验 --> |
| | | <div v-else-if="tableLists.find(m=>m.templateId==currentTable).templateName.includes('功率容量')"> |
| | | <PowerCapacity :insProduct="currentSample.insProduct" :orderId="id" :sampleId="currentSample.id" :state="state" :isLook="isLook" :num="currentSample.num1"/> |
| | | </div> |
| | | <el-upload :action="action" |
| | | :data="{ |
| | | orderId:id |
| | | orderId:this.orderId0, |
| | | sampleId:id, |
| | | sonLaboratory:sonLaboratory |
| | | }" |
| | | v-if="state==1&&fileAdd" |
| | | :on-success="handleSuccessUp" :show-file-list="false" |
| | | accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :headers="headers" :on-change="beforeUpload" |
| | | accept='.jpg,.jpeg,.png,.gif,.docx,.xls,.xlsx,.pdf,.zip,.rar,.csv' :headers="headers" :before-upload="beforeUpload" |
| | | style="width: 80px !important;" |
| | | :on-error="onError" ref='upload'> |
| | | <el-button size="small" type="primary" v-if="state==1">附件上传</el-button></el-upload> |
| | | <!-- <span v-if="sonLaboratory === '远场'||sonLaboratory === '近场'" style="color: red;font-size: 12px;">辐射试验尽量上传设备导出的csv文件,不然触发不了报告生成</span> --> |
| | | <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList" |
| | | :componentData="componentData0" |
| | | :delUrl="$api.insOrderPlan.delfile" |
| | |
| | | </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> |
| | |
| | | <el-button type="primary" :loading="versionLoading" @click="saveVersion">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="试验信息" :visible.sync="experimentDia" width="400px"> |
| | | <div class="body" style="display: flex;padding: 10px;align-items: center;"> |
| | | <div class="search_label" style="width: 150px;"><span class="required-span">*</span>实验阶段</div> |
| | | <div class="search_input" style="width: 100%;"> |
| | | <el-input clearable v-model="experimentInfo.term" size="small" placeholder=""></el-input> |
| | | <el-dialog title="试验信息" :visible.sync="experimentDia" width="50%"> |
| | | <div style="height: 80vh;overflow-y: auto;"> |
| | | <div class="body" style="display: flex;padding: 10px;align-items: center;" v-if="experimentDia0"> |
| | | <div class="search_label" style="width: 150px;"><span class="required-span">*</span>实验阶段</div> |
| | | <div class="search_input" style="width: 100%;"> |
| | | <el-input clearable v-model="experimentInfo.term" size="small" placeholder=""></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="body" style="display: flex;padding: 10px;align-items: center;"> |
| | | <div class="search_label" style="width: 150px;"><span class="required-span">*</span>实验操作</div> |
| | | <div class="search_input" style="width: 100%;"> |
| | | <el-input clearable v-model="experimentInfo.note" size="small" placeholder="" type="textarea" |
| | | :rows="2"></el-input> |
| | | <div class="body" style="display: flex;padding: 10px;align-items: center;" v-if="experimentDia0"> |
| | | <div class="search_label" style="width: 150px;"><span class="required-span">*</span>实验操作</div> |
| | | <div class="search_input" style="width: 100%;"> |
| | | <el-input clearable v-model="experimentInfo.note" size="small" placeholder="" type="textarea" |
| | | :rows="2"></el-input> |
| | | </div> |
| | | </div> |
| | | <template v-for="(x,y) in newUserInfo"> |
| | | <p style="margin: 10px 0;"><el-tag size="small">{{x.name}}</el-tag> 工时填写</p> |
| | | <table border="1" cellpadding="10" class="thermal-table"> |
| | | <tr style="font-size: 18px;font-weight: 500;background-color: #F0F1F5;padding: 10px 0;box-sizing: border-box;"> |
| | | <td>样品</td> |
| | | <td>样品编号</td> |
| | | <td>型号</td> |
| | | <td>检验项</td> |
| | | <td>检验子项</td> |
| | | <td>工时</td> |
| | | </tr> |
| | | <template v-for="(item,index) in sampleProduct"> |
| | | <tr> |
| | | <td :rowspan="item.insProduct.length+1">{{ item.sample }}</td> |
| | | <td :rowspan="item.insProduct.length+1">{{ item.sampleCode }}</td> |
| | | <td :rowspan="item.insProduct.length+1">{{ item.model }}</td> |
| | | </tr> |
| | | <tr v-for="(m,i) in item.insProduct" :key="item.id+i"> |
| | | <td>{{ m.inspectionItem }}</td> |
| | | <td>{{ m.inspectionItemSubclass }}</td> |
| | | <td><el-input-number v-model="x.timeArr[i]" :min="0" :max="100" label="工时" size="small"></el-input-number></td> |
| | | </tr> |
| | | </template> |
| | | </table> |
| | | </template> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="experimentDia = false">取 消</el-button> |
| | |
| | | <el-dialog |
| | | title="文件预览" |
| | | :visible.sync="lookFileVisible" |
| | | width="60%" fullscreen> |
| | | width="60%" fullscreen :modal="false"> |
| | | <filePreview v-if="lookFileVisible" :fileUrl="currentFile.url" |
| | | :currentFile="currentFile" style="max-height: 87vh;overflow-y: auto;"/> |
| | | </el-dialog> |
| | | <el-dialog title="保存模板" :visible.sync="templateDia" width="400px"> |
| | | <div class="body" style="display: flex;align-items: center;" v-if="templateDia"> |
| | | <div class="search_label" style="width: 90px;"><span class="required-span">* </span>模板名称:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" clearable v-model="templateName"></el-input> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="templateDia = false">取 消</el-button> |
| | | <el-button type="primary" @click="addTemplateDia" :loading="templateLoading">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="复核" :visible.sync="upInsReviewDia" width="400px"> |
| | | <el-radio-group v-model="upInsReviewType" style="display: flex;flex-direction: column"> |
| | | <el-radio :label="1" style="margin: 10px 0; ">继续测试下一个样品或其他站点任务</el-radio> |
| | | <el-radio :label="0" style="margin: 10px 0; ">再次检验该样品</el-radio> |
| | | <el-radio :label="2" style="margin: 10px 0; ">此委托单结束</el-radio> |
| | | <p style="font-size: 12px;color:red">慎重:如果还有其他样品在检,点击结束可能会中断,请确保所有样品都检验且复核完成再点击</p> |
| | | </el-radio-group> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="upInsReviewDia = false">取 消</el-button> |
| | | <el-button type="primary" @click="upInsReview" :loading="reviewLoading">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import ValueTable from '../../tool/value-table.vue' |
| | | import Circuit from './circuit.vue' |
| | | import file from '../../../util/file' |
| | | import excelFunction from '../../../util/excelFountion' |
| | | import CircuitParameters1 from './circuit-parameters1.vue' |
| | | import CircuitParameters2 from './circuit-parameters2.vue' |
| | | import CircuitParameters3 from './circuit-parameters3.vue' |
| | | import Humidity from './humidity.vue' |
| | | import PowerCapacity from './power-capacity.vue' |
| | | import filePreview from '../../tool/file-preview.vue' |
| | | export default { |
| | | props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1','noBack'], |
| | | props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1','noBack','orderId0','userInfo'], |
| | | components: { |
| | | ValueTable, |
| | | Circuit, |
| | | CircuitParameters1, |
| | | CircuitParameters2, |
| | | filePreview |
| | | CircuitParameters3, |
| | | filePreview, |
| | | Humidity, |
| | | PowerCapacity, |
| | | }, |
| | | data() { |
| | | return { |
| | | lookFileVisible:false,//预览文件 |
| | | experimentDia:false, |
| | | experimentDia0:false, |
| | | upInsReviewDia:false, |
| | | upInsReviewType:1, |
| | | experimentInfo:{ |
| | | note:'', |
| | | term:'' |
| | |
| | | }, |
| | | componentData0: { |
| | | entity: { |
| | | insSampleId:'', |
| | | sonLaboratory:this.sonLaboratory, |
| | | insOrderId:'' |
| | | }, |
| | | isIndex: true, |
| | |
| | | humidity:'' |
| | | }, |
| | | currentFile:{},//当前文件 |
| | | templates:[],//电路试验模板 |
| | | templateDia:false,//电路试验模板保存模板弹框 |
| | | template:null, |
| | | templateLoading:false, |
| | | templateName:'', |
| | | addInsProductTemplatePower:false,//配置模板权限 |
| | | newUserInfo:[] |
| | | } |
| | | }, |
| | | // 用于上传文件的信息 |
| | |
| | | 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 |
| | |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null |
| | | insResult: null, |
| | | beforeCheck:null, |
| | | afterCheck:null, |
| | | } |
| | | } |
| | | }) |
| | |
| | | let fileAdd = false |
| | | let collected = false |
| | | let temDataAcquisition = false |
| | | let addInsProductTemplatePower = false; |
| | | for (var i = 0; i < power.length; i++) { |
| | | if (power[i].menuMethod == 'uploadFile') { |
| | | fileAdd = true |
| | |
| | | if (power[i].menuMethod == 'temDataAcquisition') { |
| | | temDataAcquisition = true |
| | | } |
| | | if(power[i].menuMethod == 'addInsProductTemplate'){ |
| | | addInsProductTemplatePower = true |
| | | } |
| | | } |
| | | if (!fileDel) { |
| | | this.componentData0.do.splice(1, 1) |
| | |
| | | this.fileAdd = fileAdd |
| | | this.collected = collected |
| | | this.temDataAcquisition = temDataAcquisition |
| | | this.addInsProductTemplatePower = addInsProductTemplatePower |
| | | }, |
| | | uploadSample(){ |
| | | this.$axios.post(this.$api.insOrderPlan.doInsOrder, { |
| | |
| | | this.param = {} |
| | | // 清空光纤配置相关数据 |
| | | this.fiberOpticTape = [] |
| | | this.template = '' |
| | | this.currentFiberOpticTape = null; |
| | | this.fiberOptic = [] |
| | | this.currentFiberOptic = null; |
| | |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null |
| | | insResult: null, |
| | | beforeCheck:null, |
| | | afterCheck:null, |
| | | } |
| | | } |
| | | }) |
| | |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null |
| | | insResult: null, |
| | | beforeCheck:null, |
| | | afterCheck:null, |
| | | } |
| | | }) |
| | | // 页面列表数据处理 |
| | |
| | | this.tableList = null; |
| | | this.tableList = [this.tableLists[0]] |
| | | this.currentTable = this.tableLists[0].templateId; |
| | | if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('电路试验')&&this.currentTableState!=0&&this.currentTableState!=1){ |
| | | if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('电路试验')&&this.currentTableState!=0&&this.currentTableState!=1&&this.insOrder.sampleType!='无源器件'){ |
| | | this.versionDialogVisible = true |
| | | } |
| | | // 处理页面列表数据 |
| | |
| | | }) |
| | | } |
| | | } |
| | | 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) |
| | | // 如果模板列表的函数存在,那么加入到excel函数列表里面 |
| | | if (b.v.f) { |
| | |
| | | } 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) |
| | | } |
| | | }) |
| | | // 对excel函数进行处理 |
| | | this.handleExcelMethod() |
| | |
| | | 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({ |
| | |
| | | } catch (error) { |
| | | console.log(444,error); |
| | | } |
| | | |
| | | // 监听 Worker 返回的结果 |
| | | this.worker.onmessage = (event) => { |
| | | this.result = JSON.parse(event.data); |
| | |
| | | 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){ |
| | |
| | | } |
| | | } |
| | | this.saveInsContext(currentInsItemId) |
| | | // 如果是数采可编辑输入的情况,可以直接保存数据 |
| | | // if(this.getDataType==2){ |
| | | // this.saveInsContext(currentInsItemId) |
| | | // }else{ |
| | | // if(this.isGet&&!this.dataAcquisitionEidtAble){ |
| | | // if(this.result.value.getDataTypeId==''){ |
| | | // // 如果是数采不可编辑输入的情况,且最后一个数采没有完成,则不保存数据 |
| | | // return |
| | | // } |
| | | // // 保存数据 |
| | | // setTimeout(()=>{ |
| | | // this.saveInsContext(currentInsItemId) |
| | | // },2000) |
| | | // }else if(this.isGet&&this.dataAcquisitionEidtAble){ |
| | | // if(this.getDataType==1){ |
| | | // if(this.result.value.getDataTypeId==''){ |
| | | // // 如果是数采可编辑输入的情况,且最后一个数采没有完成,则不保存数据 |
| | | // return |
| | | // } |
| | | // this.saveInsContext(currentInsItemId) |
| | | // }else{ |
| | | // this.saveInsContext(currentInsItemId) |
| | | // } |
| | | // }else{ |
| | | // this.saveInsContext(currentInsItemId) |
| | | // } |
| | | // } |
| | | }) |
| | | break; |
| | | case 'tableList': |
| | |
| | | }) |
| | | }, |
| | | // 复核 |
| | | upInsReview(e) { |
| | | if (e == 1||e==2) { |
| | | upInsReview() { |
| | | if (this.upInsReviewType == 1||this.upInsReviewType==2) { |
| | | // 继续试验 |
| | | this.reviewLoading = true; |
| | | this.$axios.post(this.$api.insOrderPlan.verifyPlan, { |
| | | orderId: this.orderId, |
| | | type: e, |
| | | sampleId: this.orderId, |
| | | type: this.upInsReviewType, |
| | | laboratory: this.sonLaboratory, |
| | | tell: null |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success("操作成功") |
| | | this.upInsReviewDia = false; |
| | | this.$emit('goback') |
| | | } |
| | | this.reviewLoading = false; |
| | |
| | | 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 |
| | |
| | | } |
| | | }, |
| | | submit0(){ |
| | | if(!this.experimentInfo.term){ |
| | | this.$message.error('请输入实验阶段') |
| | | return |
| | | if(this.sonLaboratory === '电路试验'){ |
| | | if(!this.experimentInfo.term){ |
| | | this.$message.error('请输入实验阶段') |
| | | return |
| | | } |
| | | if(!this.experimentInfo.note){ |
| | | this.$message.error('请输入实验操作') |
| | | return |
| | | } |
| | | } |
| | | if(!this.experimentInfo.note){ |
| | | this.$message.error('请输入实验操作') |
| | | return |
| | | } |
| | | // let num =0 |
| | | // this.newUserInfo.forEach(item=>{ |
| | | // item.timeArr.forEach(a=>{ |
| | | // if(!a){ |
| | | // num++ |
| | | // } |
| | | // }) |
| | | // }) |
| | | // if(num>0){ |
| | | // this.$message.error('请输入完成工时') |
| | | // return |
| | | // } |
| | | this.experimentDia = false |
| | | this.experimentDia0 = false |
| | | if(this.insOrder.orderType=='C'){ |
| | | this.verifyUser = this.insOrder.prepareUserId |
| | | this.submit() |
| | |
| | | this.addVerifyDia = true |
| | | } |
| | | }, |
| | | handleSubmit(){ |
| | | if (this.sonLaboratory === '电路试验') { |
| | | this.experimentDia = true |
| | | } else { |
| | | 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() { |
| | |
| | | this.addVerifyDia = false |
| | | this.submitLoading = true; |
| | | this.$axios.post(this.$api.insOrderPlan.checkSubmitPlan, { |
| | | orderId: this.orderId, |
| | | sampleId: this.orderId, |
| | | laboratory: this.sonLaboratory, |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | let auxiliaryOutputWorkingHoursList = [] |
| | | this.sampleProduct.forEach(item=>{ |
| | | item.insProduct.forEach((a,i)=>{ |
| | | this.newUserInfo.forEach(b=>{ |
| | | let obj = { |
| | | inspectionItem:a.inspectionItem, |
| | | outputWorkTime:b.timeArr[i], |
| | | inspectionItemSubclass:a.inspectionItemSubclass, |
| | | sample:item.sampleCode, |
| | | insProductId:a.id, |
| | | num:item.num1, |
| | | check:b.id |
| | | } |
| | | auxiliaryOutputWorkingHoursList.push(obj) |
| | | }) |
| | | }) |
| | | }) |
| | | if(!res.data||res.data.length==0){ |
| | | this.$axios.post(this.$api.insOrderPlan.submitPlan, { |
| | | orderId: this.orderId, |
| | | sampleId: this.orderId, |
| | | laboratory: this.sonLaboratory, |
| | | verifyUser: this.verifyUser, |
| | | entrustCode: this.insOrder.entrustCode, |
| | | auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList, |
| | | ...this.experimentInfo |
| | | }).then(res => { |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true}).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success("操作成功") |
| | | this.$emit('goback') |
| | |
| | | type: "" |
| | | }).then(() => { |
| | | this.$axios.post(this.$api.insOrderPlan.submitPlan, { |
| | | orderId: this.orderId, |
| | | sampleId: this.orderId, |
| | | laboratory: this.sonLaboratory, |
| | | verifyUser: this.verifyUser, |
| | | auxiliaryOutputWorkingHoursList:auxiliaryOutputWorkingHoursList, |
| | | ...this.experimentInfo |
| | | }).then( res => { |
| | | }, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | }, |
| | | noQs:true}).then( res => { |
| | | if (res.code === 200) { |
| | | this.submitLoading = false; |
| | | this.$message.success("操作成功") |
| | |
| | | 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 |
| | |
| | | // 保存数据 |
| | | 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 = [] |
| | |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null |
| | | insResult: null, |
| | | beforeCheck:null, |
| | | afterCheck:null, |
| | | } |
| | | } |
| | | }) |
| | |
| | | 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('上传失败') |
| | |
| | | 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(() => {}) |
| | | } |
| | | } |
| | | } |