src/assets/api/controller.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/do/b1-inspect-order-plan/Inspection.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/do/b1-report-preparation/order.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/view/b1-inspect-order-plan.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/view/b1-report-preparation.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/components/view/b1-sample.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/assets/api/controller.js
@@ -214,6 +214,8 @@ jumpTeam: "/insOrderPlan/jumpTeam", // 插队 chooseVersion: "/insOrderPlan/chooseVersion", // 电路检验版本 getInsProduct2: "/insOrderPlan/getInsProduct2", // 查看历史版本本 scanInsOrderState: "/insOrderPlan/scanInsOrderState", // 扫码报检接口 getInsOrderUserList: "/insOrderPlan/getInsOrderUserList", // 查看检验历史列表 } const systemLog = { src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -323,47 +323,24 @@ </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> <span style="margin-left: 4px;">℃</span> </el-form-item> <el-form-item label="湿度:" style="margin-bottom: 0;"> <el-input v-model="otherForm.humidity" :disabled="state>1" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'humidity')"></el-input> <span style="margin-left: 4px;">%</span> </el-form-item> </el-form> <el-button type="primary" size="small" v-if="(isGet||tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='温度循环检验原始记录'&&temDataAcquisition)&&PROJECT=='检测中心'&&state==1" @click="getDataAcquisitionDevice" :loading="dataAcquisitionLoading">数据采集</el-button> <el-button :type="dataAcquisitionEidtAble?'':'primary'" size="small" v-if="(isGet||(tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='温度循环检验原始记录'))&&PROJECT=='检测中心'&&collected&&state==1" @click="dataAcquisitionEidtAble=!dataAcquisitionEidtAble">{{dataAcquisitionEidtAble?'关闭编辑':'编辑数采'}}</el-button> </div> <div class="history-btn" v-if="isLook"> <!-- <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> <!-- 常规检验原始记录 --> <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('电路试验'))"> @@ -859,6 +836,25 @@ <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> </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> </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> </div> </template> @@ -879,6 +875,11 @@ }, data() { return { experimentDia:false, experimentInfo:{ note:'', term:'' }, currentNum:0, versionLoading:false, versionDialogVisible:false, @@ -968,7 +969,6 @@ }, upIndex: 0, changeType:null, getReportModelLoading:false, insOrder: {}, sampleProduct: [], typeList: [], @@ -1050,7 +1050,11 @@ changeType:null, getDataTypeId:'', getDataType:null, num:0 num:0, otherForm:{ temperature:'', humidity:'' } } }, // 用于上传文件的信息 @@ -1104,6 +1108,14 @@ 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 = { temperature:temperature?temperature:null, humidity:humidity?humidity:null, } } // 获取当前样品的检验项 let list = await this.getCurrentProduct(this.currentSample.id,0) this.currentSample.insProduct = this.HaveJson(list) @@ -1124,7 +1136,6 @@ } }) this.determineWhetherToCollectData()//是否需要数采 this.getReportModel(this.currentSample.id)//获取套管、光纤带、光纤信息 if (this.currentSample.index == undefined) this.currentSample['index'] = 1 let bushing = this.currentSample.bushing this.getTableLists();//处理模板列表信息 @@ -1174,7 +1185,6 @@ } } }) this.getReportModel(this.currentSample.id)//获取套管、光纤带、光纤信息 // 去重模板,返回有几个模板 const mySet1 = new Set(); this.tableLists = this.currentSample.insProduct.filter(m => { @@ -2040,6 +2050,25 @@ this.saveInsContext() }, // 热循环---结束 // 保存湿度、温度数据 subOtherForm(m,type){ let ids = [] for (let i in this.param) { ids.push(i) } this.$axios.post(this.$api.insOrderPlan.write,{ [type]:Number(m), ids }, { headers: { 'Content-Type': 'application/json' }, noQs:true }).then(res => { if (res.code == 201) return this.$message.success('保存成功') }) }, // 权限获取 getPower(){ let power = JSON.parse(sessionStorage.getItem('power')) @@ -2120,8 +2149,6 @@ } } }) // 获取套管,光纤带,光纤数据 this.getReportModel(row.id) let bushing = this.currentSample.bushing if(bushing&&bushing.length>0){ this.bushing = bushing @@ -2150,19 +2177,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 @@ -2184,8 +2198,6 @@ }) // 页面列表数据处理 this.getTableLists0(list) // 获取套管,光纤带,光纤数据 this.getReportModel(this.currentSample.id) // 向多线程保存数据 this.worker.postMessage(JSON.stringify({ type: 'saveData', @@ -3139,13 +3151,25 @@ this.$message.error('未输入不通过原因') } }, handleSubmit(){ submit0(){ if(!this.experimentInfo.term){ this.$message.error('请输入实验阶段') return } if(!this.experimentInfo.note){ this.$message.error('请输入实验操作') return } this.experimentDia = false if(this.insOrder.orderType=='C'){ this.verifyUser = this.insOrder.prepareUserId this.submit() }else{ this.addVerifyDia = true } }, handleSubmit(){ this.experimentDia = true }, submit() { if (this.verifyUser === null || this.verifyUser === '') { @@ -3164,7 +3188,8 @@ orderId: this.orderId, laboratory: this.sonLaboratory, verifyUser: this.verifyUser, entrustCode: this.insOrder.entrustCode entrustCode: this.insOrder.entrustCode, ...this.experimentInfo }).then(res => { if (res.code === 200) { this.$message.success("操作成功") @@ -3196,7 +3221,8 @@ this.$axios.post(this.$api.insOrderPlan.submitPlan, { orderId: this.orderId, laboratory: this.sonLaboratory, verifyUser: this.verifyUser verifyUser: this.verifyUser, ...this.experimentInfo }).then( res => { if (res.code === 200) { this.submitLoading = false; src/components/do/b1-report-preparation/order.vue
@@ -34,7 +34,7 @@ <el-dialog title="生成报告" :visible.sync="dialogVisible" width="30%" width="60%" :append-to-body="true" :modal="!dialogVisible0" > @@ -44,9 +44,51 @@ <span>{{ item.laboratory }}</span> <!-- <el-checkbox v-model="item.checked"></el-checkbox> --> </div> <el-radio-group v-model="item.numValue" ref="radio"> <!-- <el-radio-group v-model="item.numValue" ref="radio"> <el-radio :label="m.value" v-for="(m,i) in item.arr" :key="i"><el-link type="primary" @click="lookDetail(item,m.value)">{{ m.label }}</el-link></el-radio> </el-radio-group> </el-radio-group> --> <el-table :data="item.insOrderUserList" border style="width: 100%" @selection-change="list=>handleSelectionChange(list,item.insOrderUserList)"> <el-table-column type="selection" width="55"> </el-table-column> <el-table-column prop="submitTime" label="提交日期" width="150"> </el-table-column> <el-table-column prop="submitUserName" label="提交人" width="90"> </el-table-column> <el-table-column prop="term" label="实验阶段" width="120"> </el-table-column> <el-table-column prop="note" label="实验操作" width="120"> </el-table-column> <el-table-column prop="tell" label="再次检验原因" width="120"> </el-table-column> <el-table-column fixed="right" label="操作" width="100"> <template slot-scope="scope"> <el-button @click="lookDetail(item,scope.row.num)" type="text" size="small">查看</el-button> </template> </el-table-column> </el-table> </el-card> <span slot="footer" class="dialog-footer"> <el-button :loading="loading0" @click="handleNoCreate">不生成</el-button> @@ -221,16 +263,26 @@ }, // 生成报告 handleCreate(){ let arr = [] this.historyList.forEach(item => { item.insOrderUserList.forEach(item1 => { if(item1.state==1){ arr.push({ laboratory:item.laboratory, num:item1.num }) } }) }) if(arr.length==0){ this.$message.error("请先选择需要生成的记录!") return } this.loading1 = true this.$axios.post(this.$api.insReport.isReport, { id:this.currentInfo.id, state:1, insReportDto1s:this.historyList.map(item => { return{ laboratory:item.laboratory, num:item.numValue } }) insReportDto1s:arr },{ headers: { 'Content-Type': 'application/json' @@ -279,6 +331,16 @@ inspectorList:inspectorList, ...row } }, handleSelectionChange(list,list0){ list0.forEach(item => { let obj = list.find(item0 => item0.id == item.id) if(obj){ item.state = 1 }else{ item.state = 0 } }) } } } src/components/view/b1-inspect-order-plan.vue
@@ -138,7 +138,7 @@ <div class="center"> <div class="center-options"> <el-row> <el-col :span="21"> <el-col :span="18"> <div style="display: flex;align-items: center;margin-bottom: 10px;"> <ul class="tab"> <li v-for="(m,i) in tabList" :key="i" :class="{active:i==tabIndex}" @click="handleTab(m,i)">{{m.label.replace('试验室','')}} @@ -150,8 +150,9 @@ </div> </div> </el-col> <el-col :span="3"> <el-col :span="6"> <div class="center-title"> <el-button size="small" type="primary" @click="handleCode" style="margin-right: 16px;">扫码报检</el-button> <span>总计任务数量:</span> <span>{{total}}</span> </div> @@ -244,7 +245,7 @@ <el-button @click="handleConnect(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState == 5 || scope.row.insState == 3||scope.row.insState == 6||(scope.row.userName&&!scope.row.userName.includes(userName))" v-if="connect">交接</el-button> <el-button @click="handleReview(scope.row)" type="text" size="small" :disabled="scope.row.userName == null || scope.row.insState != 3 ||(scope.row.checkName&&!scope.row.checkName.includes(userName))" v-if="review">复核</el-button> <el-button @click="claimFun(scope.row)" type="text" size="small" :disabled="scope.row.userName != null || scope.row.checkName!=null" v-if="claim">认领</el-button> <el-button @click="lookHistory(scope.row)" type="text" size="small" :disabled="!scope.row.num1 || scope.row.num1<1" v-if="getInsProduct2">查看记录</el-button> <el-button @click="lookHistory0(scope.row)" type="text" size="small" :disabled="!scope.row.num1 || scope.row.num1<1">查看记录</el-button> </template> </el-table-column> </el-table> @@ -306,12 +307,53 @@ :componentData="componentDataDataLook"/> </div> </el-dialog> <el-dialog title="查看记录" :visible.sync="historyDialogVisible" width="50%"> <el-table :data="historyList" border style="width: 100%"> <el-table-column prop="submitTime" label="提交日期" width="150"> </el-table-column> <el-table-column prop="submitUserName" label="提交人" width="90"> </el-table-column> <el-table-column prop="term" label="实验阶段" width="120"> </el-table-column> <el-table-column prop="note" label="实验操作" width="120"> </el-table-column> <el-table-column prop="tell" label="再次检验原因" width="120"> </el-table-column> <el-table-column fixed="right" label="操作" width="100"> <template slot-scope="scope"> <el-button @click="lookHistory(scope.row)" type="text" size="small">查看</el-button> </template> </el-table-column> </el-table> </el-dialog> <input type="text" id="ScanCodeInfo" v-model="codeInfo" @keyup.enter="keyup" style="opacity: 0;height: 0px;margin: 0px;padding: 0px;position: absolute;top: 0;" autocomplete="off"></input> </div> </template> <script> import ValueTable from '../tool/value-table.vue' import Inspection from '../do/b1-inspect-order-plan/Inspection.vue' import Inspection from '../do/b1-inspect-order-plan/Inspection.vue' import { getYearAndMonthAndDays } from '../../util/date' @@ -325,6 +367,9 @@ }, data() { return { currentHistory:{}, historyDialogVisible:false, historyList:[], orderStateId:null, version:null, examine: null, @@ -542,6 +587,9 @@ inspection:false, isLook:false,//是否是查看历史页面 num1:null, codeInfo:null, startTime:null, scanInsOrderState:false } }, created() { @@ -559,6 +607,45 @@ } }, methods: { // 扫码报检 handleCode(){ let input = document.getElementById('ScanCodeInfo'); console.log(1234567,input,this.startTime) input.focus(); this.startTime&&clearInterval(this.startTime) this.startTime = setInterval(()=>{ input.focus() },1000) }, // 扫码枪按下 keyup(e){ var code = '' // console.log(3333,this.codeInfo) try{ code = JSON.parse(this.codeInfo) if(code==null||code==undefined||code==''){ this.$message.error('该二维码有误') }else{ this.$axios.post(this.$api.insOrderPlan.scanInsOrderState, { sonLaboratory: this.componentData.entity.sonLaboratory, sampleCode: code } ).then(res => { if(res.code==200){ this.$message({ type: 'success', message: '报检成功' }) } this.refreshTable() }) } }catch(e){ this.$message.error('该二维码有误') } this.codeInfo = null }, // 拖拽 initializeSortable() { const tableBody = this.$refs.table0.$el.querySelector('.el-table__body-wrapper > table > tbody'); @@ -611,7 +698,8 @@ let review = false let claim = false let jumpTeam = false let getInsProduct2 = false // let getInsProduct2 = false // let getInsOrderUserList = false for (var i = 0; i < power.length; i++) { if (power[i].menuMethod == 'doInsOrder') { inspection = true @@ -628,13 +716,16 @@ if (power[i].menuMethod == 'jumpTeam') { jumpTeam = true } if (power[i].menuMethod == 'getInsProduct2') { getInsProduct2 = true // if (power[i].menuMethod == 'getInsProduct2') { // getInsProduct2 = true // } if (power[i].menuMethod == 'scanInsOrderState') { this.scanInsOrderState = true } } if (!getInsProduct2) { this.componentData.do.splice(5, 1) } // if (!getInsProduct2) { // this.componentData.do.splice(5, 1) // } if (!claim) { this.componentData.do.splice(4, 1) } @@ -647,7 +738,7 @@ if (!inspection) { this.componentData.do.splice(1, 1) } this.getInsProduct2 = getInsProduct2 // this.getInsProduct2 = getInsProduct2 this.claim = claim this.review = review this.connect = connect @@ -671,7 +762,7 @@ this.sampleUserForm = { entrustCode: row.entrustCode, insSampleId: row.id, sonLaboratory: row.sonLaboratory, sonLaboratory: row.sonLaboratory, } this.claimVisible = true } @@ -890,13 +981,23 @@ this.personList = data }) }, lookHistory0(row){ this.currentHistory = row this.$axios.post(this.$api.insOrderPlan.getInsOrderUserList, { insOrderStateId:row.orderStateId, }).then(res => { this.historyList = res.data this.historyDialogVisible = true }) }, lookHistory(row){ this.isLook = true this.state = 2; this.orderId = row.id this.version = row.version this.orderStateId = row.orderStateId this.num1 = row.num1 this.orderId = this.currentHistory.id this.version = this.currentHistory.version this.orderStateId = this.currentHistory.orderStateId this.num1 = row.num this.historyDialogVisible = false } } } src/components/view/b1-report-preparation.vue
@@ -179,7 +179,7 @@ <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen=true;" v-if="!fullscreen"></i> <img src="../../../static/img/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen=false;" > </div> <div style="height: 80vh;"> <div style="height: 80vh;" v-if="approveVisible"> <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" /> </div> <span slot="footer" class="dialog-footer"> src/components/view/b1-sample.vue
@@ -446,20 +446,13 @@ methods: { keyup(e){ var code = '' var str = {} var that = this; console.log(3333,this.codeInfo) // console.log(3333,this.codeInfo,e) try{ code = JSON.parse(this.codeInfo) if(code.moNo2==null||code.moNo2==undefined||code.moNo2==''){ if(code==null||code==undefined||code==''){ this.$message.error('该二维码有误') }else{ str = { moNo2: code.moNo2, } // if(this.storageVisible){ // }else if(this.exportVisible){} this.sampleCode = code.moNo2 this.sampleCode = code } }catch(e){ this.$message.error('该二维码有误')