| | |
| | | <template> |
| | | <div v-loading="loading" class="inspection"> |
| | | <el-row class="title"> |
| | | <el-col :span="12" style="padding-left: 20px;">检验单详情 |
| | | <span style="color: #3A7BFA;"> 样品</span> |
| | | <el-col :span="12" style="padding-left: 20px;text-align: left;">检验单详情 |
| | | <!-- <span style="color: #3A7BFA;"> 样品</span> |
| | | <span v-if="currentFiberOpticTape" style="color: #3A7BFA;"> - 光纤带</span> |
| | | <span v-if="currentFiberOptic" style="color: #3A7BFA;"> - 光纤</span> |
| | | <span v-if="currentFiberOptic" style="color: #3A7BFA;"> - 光纤</span> --> |
| | | </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="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="bushingVisible=true" v-if="bushing.length>0">套管切换</el-button> --> |
| | | <el-button size="small" type="primary" @click="sampleVisible=true">样品切换</el-button> |
| | | <el-button size="small" type="primary" @click="taskVisible=true">任务切换</el-button> |
| | | <el-button size="small" type="primary" @click="addVerifyDia = true" v-show="state==1" |
| | |
| | | </el-form> |
| | | </div> |
| | | <div class="center"> |
| | | <div class="search"> |
| | | <el-radio-group v-model="currentTable" size="small"> |
| | | <el-radio-button :label="item.templateId" v-for="(item,index) in tableLists" :key="index" |
| | | size="small">{{ item.templateName }}</el-radio-button> |
| | | </el-radio-group> |
| | | <div class="search" style="text-align: left;display: flex;align-items: center;justify-content: space-between;"> |
| | | <div style="display: flex;align-items: center;"> |
| | | <span v-if="tableList.length>0">检验模板:</span> |
| | | <el-radio-group v-model="currentTable" size="small"> |
| | | <el-radio-button :label="item.templateId" v-for="(item,index) in tableLists" :key="index" |
| | | size="small">{{ item.templateName }}</el-radio-button> |
| | | </el-radio-group> |
| | | </div> |
| | | <div> |
| | | <span v-if="fibers.length>0"> 光纤带:</span> |
| | | <el-radio-group v-model="currentTab" size="small" v-if="fibers.length>0" @input="m=>handleChange(m,1)"> |
| | | <el-radio-button :label="item.id" v-for="(item,index) in fibers" :key="index" |
| | | size="small">{{ item.code }}</el-radio-button> |
| | | </el-radio-group> |
| | | <span v-if="fiber.length>0"> 光纤:</span> |
| | | <el-radio-group v-model="currentTab" size="small" v-if="fiber.length>0" @input="m=>handleChange(m,2)"> |
| | | <el-radio-button :label="item.id" v-for="(item,index) in fiber" :key="index" |
| | | size="small">{{ item.color }}</el-radio-button> |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <div class="center-box" id="nav" v-loading="tableLoading"> |
| | | <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index"> |
| | |
| | | <td :id='item.templateId+"-"+n.i+"-"+n.r+"-"+n.c' v-for="(n,j) in m" :key="j" |
| | | v-if="n.v.mc==undefined || Object.keys(n.v.mc).length === 4" :colspan="n.v.mc&&n.v.mc.cs?n.v.mc.cs:1" |
| | | :rowspan="n.v.mc&&n.v.mc.rs?n.v.mc.rs:1" |
| | | :style="`background:${n.v.bg};color:${n.v.fc};font-size:${n.v.fs}px;width:${handleWidth(n)}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`"> |
| | | :style="`background:${n.v.bg?n.v.bg:''};color:${n.v.fc};font-size:${n.v.fs}px;width:${handleWidth(n)}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`"> |
| | | <div class="content" :class="`content-h-${n.v.ht} content-v-${n.v.vt}`" |
| | | :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]}px;background:${n.v.bg};`"> |
| | | :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]}px;`"> |
| | | <template v-if="n.v.ps!=undefined && n.v.ps.value==='检验值' && state==1"> |
| | | <el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v" |
| | | :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" |
| | | @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" type="number"> |
| | | @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" type="number" @mousewheel.native.prevent :key="'abc-'+'000'+index+'000'+i+'000'+j"> |
| | | <el-button slot="append" type="primary" icon="el-icon-edit" size="mini" |
| | | v-if="getInspectionItemType(n.i) == 1" @click="getSystemValue(n)"></el-button> |
| | | </el-input> |
| | |
| | | currentFiberOptic:null,//当前光纤 |
| | | currentBushing:null,//当前套管 |
| | | tableLoading:false, |
| | | upLoading:false |
| | | upLoading:false, |
| | | temptList:null, |
| | | fiber:[], |
| | | fibers:[], |
| | | currentTab:null |
| | | } |
| | | }, |
| | | computed: { |
| | |
| | | this.componentData.entity.sonLaboratory = this.sonLaboratory; |
| | | this.id = this.orderId; |
| | | this.getUserInfo() |
| | | // excelFunction.compute('SUM(MAX(SUM(A1,B1,C1),2,3)*2-MIN(A1:D3),1,2)') |
| | | }, |
| | | mounted() { |
| | | this.getTypeDicts() |
| | |
| | | insResult: null |
| | | } |
| | | }) |
| | | this.getReportModel(this.currentSample.id) |
| | | if (this.currentSample.index == undefined) this.currentSample['index'] = 1 |
| | | let bushing = this.currentSample.bushing |
| | | // this.handleTableData() |
| | |
| | | this.currentFiberOptic = null; |
| | | this.bushing = [] |
| | | this.currentBushing = null; |
| | | this.currentTab = null; |
| | | if(bushing&&bushing.length>0){ |
| | | this.bushing = bushing |
| | | } |
| | |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | methods: { |
| | | getPower(){ |
| | |
| | | insResult: null |
| | | } |
| | | }) |
| | | this.getReportModel(row.id) |
| | | let bushing = this.currentSample.bushing |
| | | if(bushing&&bushing.length>0){ |
| | | this.bushing = bushing |
| | | } |
| | | // this.handleTableData() |
| | | this.handleTableData() |
| | | this.getTableLists(); |
| | | this.currentKey = row.index |
| | | this.currentTab = null; |
| | | }, |
| | | getReportModel(id){ |
| | | this.$axios.post(this.$api.insOrderPlan.getReportModel+'?sampleId='+id, {}).then(res => { |
| | | this.fibers = res.data['光纤带'] |
| | | this.fiber = res.data['光纤'] |
| | | }) |
| | | }, |
| | | async handleChange(m,type){ |
| | | if(m){ |
| | | let list = await this.getCurrentProduct(m,type) |
| | | if(list.length>0){ |
| | | list.forEach(a => { |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | | comValue: [], |
| | | resValue: null, |
| | | equipValue: [], |
| | | equipName: [], |
| | | insResult: null |
| | | } |
| | | }) |
| | | this.getTableLists0(list) |
| | | }else{ |
| | | this.tableLists = [] |
| | | this.tableList = [] |
| | | this.$message.error('检验项为空') |
| | | } |
| | | } |
| | | }, |
| | | handleChangeTask(row) { |
| | | if (row.length > 0) this.id = row[0].id; |
| | |
| | | this.param[a.id].insResult.v.v = a.insResult |
| | | } catch (e) {} |
| | | }) |
| | | console.log(this.tableList) |
| | | this.handleExcelMethod() |
| | | }, |
| | | changeInput(m, code) { |
| | |
| | | let id = str[0] |
| | | let pId = str[3] |
| | | var list = [] |
| | | // console.log(id, 'r', r , 'c',c,this.tableList) |
| | | for (let a in this.tableList) { |
| | | if (this.tableList[a].templateId == id) { |
| | | list = this.tableList[a].arr |
| | |
| | | let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask?this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&'):null; |
| | | let res = Object.values(comValue)[0] |
| | | let comp = [] |
| | | if(ask){ |
| | | comp = ask.map((m, i) => { |
| | | if (m.includes('=')) { |
| | | let str = m.split('=')[1] |
| | | if(typeof res == 'string'&&typeof str == 'string'){ |
| | | return res.trim() == str.trim() |
| | | }else{ |
| | | return res == str |
| | | } |
| | | } else if (m.includes('≥')) { |
| | | return res >= m.split('≥')[1] |
| | | }else if (m.includes('≤')) { |
| | | return res <= m.split('≤')[1] |
| | | }else if (m.includes('<')) { |
| | | return res < m.split('<')[1] |
| | | }else if (m.includes('>')) { |
| | | return res > m.split('>')[1] |
| | | }else if (m.includes('~')) { |
| | | let k = m.split('~') |
| | | return res >= k[0] && res <= k[1] |
| | | }else if(m.includes('-')){ |
| | | let k = m.split('-') |
| | | return res >= k[0] && res <= k[1] |
| | | }else if(m.includes('±')){ |
| | | let k = m.split('±') |
| | | return res >= (k[0] - k[1]) && res <= (k[0] + k[1]) |
| | | console.log(res, ask) |
| | | if(res==''||res==null||res==undefined||res=='Infinity'){ |
| | | item.v.v = '' |
| | | }else{ |
| | | if(ask){ |
| | | comp = ask.map((m, i) => { |
| | | if (m.includes('=')) { |
| | | let str = m.split('=')[1] |
| | | if(typeof res == 'string'&&typeof str == 'string'){ |
| | | return res.trim() == str.trim() |
| | | }else{ |
| | | return eval(res) == eval(str) |
| | | } |
| | | } else if (m.includes('≥')) { |
| | | console.log(res, eval(res <= m.split('≥')[1])) |
| | | return eval(res) >= eval(m.split('≥')[1]) |
| | | }else if (m.includes('≤')) { |
| | | console.log(res,m.split('≤')[1]) |
| | | return eval(res) <= eval(m.split('≤')[1]) |
| | | }else if (m.includes('<')) { |
| | | return eval(res) < eval(m.split('<')[1]) |
| | | }else if (m.includes('>')) { |
| | | return eval(res) > eval(m.split('>')[1]) |
| | | }else if (m.includes('~')) { |
| | | let k = m.split('~') |
| | | return eval(res) >= eval(k[0]) && eval(res) <= eval(k[1]) |
| | | }else if(m.includes('-')){ |
| | | let k = m.split('-') |
| | | return eval(res) >= eval(k[0]) && eval(res) <= eval(k[1]) |
| | | }else if(m.includes('±')){ |
| | | let k = m.split('±') |
| | | console.log(eval(res),eval((k[0] - k[1])),eval(res),eval((k[0] + k[1]))) |
| | | return eval(res) >= eval((k[0] - k[1])) && eval(res) <= eval((k[0] + k[1])) |
| | | }else if(m.includes('>')){ |
| | | return eval(res) > eval(m.split('>')[1]) |
| | | }else if(m.includes('<')){ |
| | | return eval(res) < eval(m.split('<')[1]) |
| | | } |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | if (comp.every(m => m)) { |
| | | item.v.v = 1 |
| | | } else { |
| | | item.v.v = 0 |
| | | if (comp.every(m => m)) { |
| | | item.v.v = 1 |
| | | } else { |
| | | item.v.v = 0 |
| | | } |
| | | } |
| | | this.saveInsContext() |
| | | } |
| | | } else { |
| | | let comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue); |
| | | let comResult = '' |
| | | try { |
| | | if(this.getInspectionValueType(item.i)==1){ |
| | | comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue) |
| | | }else{ |
| | | let valueList = []; |
| | | item.valueList.forEach(a => { |
| | | valueList.push({ |
| | | name: `${this.comparisonList.find(e=>e.value==a.c).label}${a.r+1}`, |
| | | value: 0, |
| | | }) |
| | | }) |
| | | for (var a in comValue) { |
| | | valueList.forEach(b => { |
| | | if (b.name == a) { |
| | | b.value = comValue[a] |
| | | } |
| | | }) |
| | | } |
| | | let str = item.v.f.replace(/=/g, ' ') |
| | | valueList.forEach(b => { |
| | | str = str.replace(b.name, b.value) |
| | | }) |
| | | comResult = str |
| | | } |
| | | } catch (error) { |
| | | |
| | | } |
| | | // comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue); |
| | | // switch (item.methodName) { |
| | | // case 'AVERAGE': |
| | | // let num = 0 |
| | |
| | | // break; |
| | | // } |
| | | list.forEach(a => { |
| | | if (a[0].r == item.r && comResult != '') { |
| | | if (a[0].r == item.r && comResult !== '') { |
| | | for (var b in a) { |
| | | if (a[b].c == item.c) { |
| | | try{ |