| | |
| | | |
| | | .center { |
| | | width: calc(100% - 40px); |
| | | height: calc(100% - 60px - 80px - 40px); |
| | | max-height: 580px; |
| | | background-color: #fff; |
| | | border-radius: 3px; |
| | | padding: 20px; |
| | | position: relative; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .center-box { |
| | | height: 100%; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | flex-wrap: wrap; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .tables { |
| | | /* width: 800px; */ |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | |
| | | <el-col :span="12" style="text-align: right;"> |
| | | <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="submit" v-show="state==1" :loading="submitLoading">提交</el-button> |
| | | <!-- 复核 --> |
| | | <el-button size="medium" type="primary" @click="upInsReview(1)" :loading="reviewLoading" |
| | | v-show="state>1">通过</el-button> |
| | | <el-button size="medium" @click="upInsReview(0)" v-show="state>1">不通过</el-button> |
| | | <el-button size="small" @click="$emit('goback')">返回</el-button> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | <div class="content" :class="`content-h-${n.v.ht} content-v-${n.v.vt}`"> |
| | | <template v-if="n.v.ps!=undefined && n.v.ps.value==='检验值'"> |
| | | <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 != '')" |
| | | :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')||state>1" |
| | | @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" /> |
| | | <el-input v-else-if="getInspectionValueType(n.i) == 2" class="table_input" type="textarea" |
| | | :autosize="{ minRows: 1}" v-model="n.v.v" /> |
| | | <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v"> |
| | | :autosize="{ minRows: 1}" v-model="n.v.v" :disabled="state>1" /> |
| | | <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v" :disabled="state>1"> |
| | | <el-option label="是" value="是"></el-option> |
| | | <el-option label="否" value="否"></el-option> |
| | | </el-select> |
| | |
| | | v-else-if="getInspectionValueType(n.i) == 4">/</span> |
| | | <el-button type="primary" icon="el-icon-edit" size="mini" circle |
| | | v-if="getInspectionItemType(n.i) == 1" style="border: 0;margin-left: 2px;" |
| | | @click="getSystemValue(n)" :disabled="n.u != userId && n.u != undefined && n.u != ''"> |
| | | @click="getSystemValue(n)" :disabled="(n.u != userId && n.u != undefined && n.u != '')||state>1"> |
| | | </el-button> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='结论'"> |
| | |
| | | <span v-else :style="`font-family:${n.v.ff} !important;`">待定</span> |
| | | </template> |
| | | <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='设备'"> |
| | | <el-select v-model="n.v.v" placeholder="请选择" @visible-change="e=>getEquipOptions(e,n.i)"> |
| | | <el-select v-model="n.v.v" placeholder="请选择" @visible-change="e=>getEquipOptions(e,n.i)" :disabled="state>1"> |
| | | <el-option |
| | | v-for="item in equipOptions" |
| | | :key="item.value" |
| | |
| | | <ValueTable class="value-table" ref="insOrderPlan" :url="$api.insOrderPlan.selectInsOrderPlanList" |
| | | :componentData="componentData" :key="upIndex" /> |
| | | </el-drawer> |
| | | <el-dialog title="检验复核" :visible.sync="reviewDia" width="400px"> |
| | | <div class="body" style="display: flex;" v-if="reviewDia"> |
| | | <div class="search_label" style="width: 120px;"><span class="required-span">* </span>不通过原因:</div> |
| | | <div class="search_input"> |
| | | <el-input size="small" clearable v-model="noReason" type="textarea" :autosize="{ minRows: 3, maxRows: 5}"></el-input> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="reviewDia = false">取 消</el-button> |
| | | <el-button type="primary" @click="handleReviewDia" :loading="reviewLoading">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import ValueTable from '../../tool/value-table.vue' |
| | | export default { |
| | | props: ['sonLaboratory', 'orderId'], |
| | | props: ['sonLaboratory', 'orderId','state'], |
| | | components: { |
| | | ValueTable, |
| | | }, |
| | |
| | | return { |
| | | sampleVisible: false, |
| | | taskVisible: false, |
| | | submitLoading:false, |
| | | searchForm: { |
| | | sampleName: null, |
| | | state: null |
| | |
| | | comparisonList: [], |
| | | excelMethodList: [], |
| | | equipOptions:[], |
| | | userId: 0 |
| | | userId: 0, |
| | | reviewLoading:false, |
| | | reviewDia:false, |
| | | noReason:'' |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | methods: { |
| | | handleChangeSample(row, column, event) { |
| | | this.currentSample = row; |
| | | this.param = {} |
| | | this.currentSample.insProduct.forEach(a => { |
| | | this.param[a.id] = { |
| | | insValue: [], |
| | |
| | | this.tableList.forEach(a => { |
| | | let dels = [] |
| | | let ids = [] |
| | | a.template.forEach(b => { |
| | | if (b.v.ps != undefined && b.v.ps.value === '检验子项') { |
| | | let count = 0 |
| | | for (let i in this.currentSample.insProduct) { |
| | | if (this.currentSample.insProduct[i].inspectionItemSubclass === b.v.v && this.currentSample |
| | | .insProduct[i].templateId === a.templateId) { |
| | | ids.push({ |
| | | r: b.r, |
| | | id: this.currentSample.insProduct[i].id, |
| | | product: this.currentSample.insProduct[i] |
| | | }) |
| | | break |
| | | } |
| | | count++ |
| | | } |
| | | if (count === this.currentSample.insProduct.length) { |
| | | dels.push(b) |
| | | } |
| | | } |
| | | }) |
| | | a.template.forEach(b => { |
| | | if (b.v.ps != undefined && b.v.ps.value === '检验子项') { |
| | | let count = 0 |
| | | for (let i in this.currentSample.insProduct) { |
| | | if (this.currentSample.insProduct[i].inspectionItemSubclass === b.v.v && this.currentSample |
| | | .insProduct[i].templateId === a.templateId) { |
| | | ids.push({ |
| | | r: b.r, |
| | | id: this.currentSample.insProduct[i].id, |
| | | product: this.currentSample.insProduct[i] |
| | | }) |
| | | break |
| | | } |
| | | count++ |
| | | } |
| | | if (count === this.currentSample.insProduct.length) { |
| | | dels.push(b) |
| | | } |
| | | } |
| | | }) |
| | | dels.forEach(del => { |
| | | for (let b = 0; b < a.template.length; b++) { |
| | | if (a.template[b].r === del.r) { |
| | |
| | | this.param[a.id].insValue[i].u = insValue[i].u |
| | | } |
| | | }catch(e){} |
| | | try{ |
| | | this.param[a.id].equipValue.v.v = a.insProductResult.equipValue |
| | | }catch(e){} |
| | | this.param[a.id].resValue.v.v = a.lastValue |
| | | this.param[a.id].insResult.v.v = a.insResult |
| | | try{ |
| | | this.param[a.id].equipValue.v.v = a.insProductResult.equipValue |
| | | }catch(e){} |
| | | try{ |
| | | this.param[a.id].resValue.v.v = a.lastValue |
| | | this.param[a.id].insResult.v.v = a.insResult |
| | | }catch(e){ |
| | | } |
| | | }) |
| | | this.handleExcelMethod() |
| | | }, |
| | |
| | | break |
| | | } |
| | | } |
| | | comValue[(tableCode + c.r)] = parseFloat(c.v.v) |
| | | comValue[(tableCode + (c.r+1))] = parseFloat(c.v.v) |
| | | } |
| | | } |
| | | }) |
| | |
| | | comResult = sum |
| | | break; |
| | | default: |
| | | let valueList = []; |
| | | item.valueList.forEach(a => { |
| | | valueList.push({ |
| | | name:`${this.comparisonList[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 = eval(str) |
| | | break; |
| | | } |
| | | list.forEach(a => { |
| | |
| | | item.valueList = valueList; |
| | | } else { |
| | | valueList = [] |
| | | let regex = /[=\+\-\*\%\(\)\s]/g |
| | | let regex = /[=\+\-\*\%\(\)\/\s]/g |
| | | let mode = item.v.f.replace(regex, ' ').split(' '); |
| | | mode.filter(m => m).forEach(m => { |
| | | mode.filter(m => m&&!Number(m)).forEach(m => { |
| | | let r = m.split('')[1] - 1 |
| | | let c = this.comparisonList.find(j => j.label == m.split('')[0]).value |
| | | valueList.push({ |
| | |
| | | this.userId = res.data.id |
| | | }) |
| | | }, |
| | | // 复核 |
| | | upInsReview(e){ |
| | | if(e==1){ |
| | | // 通过 |
| | | this.reviewLoading = true; |
| | | this.$axios.post(this.$api.insOrderPlan.verifyPlan, { |
| | | orderId:this.orderId, |
| | | type:1, |
| | | laboratory:this.sonLaboratory, |
| | | tell:null |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success("操作成功") |
| | | this.$emit('goback') |
| | | } |
| | | this.reviewLoading = false; |
| | | }).catch(error => { |
| | | console.error(error) |
| | | this.reviewLoading = false; |
| | | }) |
| | | }else{ |
| | | // 不通过 |
| | | this.reviewDia = true; |
| | | } |
| | | }, |
| | | handleReviewDia(){ |
| | | if(this.noReason){ |
| | | this.reviewLoading = true; |
| | | this.$axios.post(this.$api.insOrderPlan.verifyPlan, { |
| | | orderId:this.orderId, |
| | | type:0, |
| | | laboratory:this.sonLaboratory, |
| | | tell:this.noReason |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success("操作成功") |
| | | this.$emit('goback') |
| | | } |
| | | this.reviewLoading = false; |
| | | }).catch(error => { |
| | | console.error(error) |
| | | this.reviewLoading = false; |
| | | }) |
| | | }else{ |
| | | this.$message.error('未输入不通过原因') |
| | | } |
| | | }, |
| | | submit(){ |
| | | this.submitLoading = true; |
| | | this.$axios.post(this.$api.insOrderPlan.submitPlan, { |
| | | orderId:this.orderId, |
| | | laboratory:this.sonLaboratory, |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success("操作成功") |
| | | this.$emit('goback') |
| | | } |
| | | this.submitLoading = false; |
| | | }).catch(error => { |
| | | console.error(error) |
| | | this.submitLoading = false; |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |