From a5433bd3d438817794f6506fe4954ee223b0edcf Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期五, 13 九月 2024 16:57:29 +0800 Subject: [PATCH] 优化生成报告 --- src/components/do/b1-report-preparation/order.vue | 174 +++++++++++++++++++++++++++++++----------- src/components/do/b1-inspect-order-plan/Inspection.vue | 11 +- src/assets/api/controller.js | 1 3 files changed, 135 insertions(+), 51 deletions(-) diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index 7c61c5f..91b1415 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -274,6 +274,7 @@ downAll: "/insReport/downAll", //鎶ュ憡鎵归噺涓嬭浇 upAll: "/insReport/upAll", //鎶ュ憡鎵归噺涓婁紶 isReport: "/insReport/isReport", //鏄惁鐢熸垚鎬绘姤鍛� + getInsOrderStateCount: "/insReport/getInsOrderStateCount", //鏌ヨ妫�楠屾姤鍛婅褰� } const warehouse = { diff --git a/src/components/do/b1-inspect-order-plan/Inspection.vue b/src/components/do/b1-inspect-order-plan/Inspection.vue index 7b94796..9f76b1c 100644 --- a/src/components/do/b1-inspect-order-plan/Inspection.vue +++ b/src/components/do/b1-inspect-order-plan/Inspection.vue @@ -185,6 +185,9 @@ display: flex; align-items: center; } + .noShow{ + opacity: 0; + } </style> <style> .inspection .el-form-item__label { @@ -254,7 +257,7 @@ <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="sampleVisible=true;uploadSample()">鏍峰搧鍒囨崲</el-button> @@ -266,7 +269,7 @@ 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')">杩斿洖</el-button> + <el-button size="small" @click="$emit('goback')" v-if="!noBack">杩斿洖</el-button> </el-col> </el-row> <div class="search" v-show="!isLook"> @@ -746,7 +749,7 @@ :delUrl="$api.insOrderPlan.delfile" :key="upIndex" style="height: 100%;margin-top: 16px;"/> </div> - <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"> @@ -867,7 +870,7 @@ import CircuitParameters1 from './circuit-parameters1.vue' import CircuitParameters2 from './circuit-parameters2.vue' export default { - props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1'], + props: ['sonLaboratory', 'orderId', 'state','inspectorList','version','orderStateId','isLook','num1','noBack'], components: { ValueTable, Circuit, diff --git a/src/components/do/b1-report-preparation/order.vue b/src/components/do/b1-report-preparation/order.vue index f3c1d0f..82cc51b 100644 --- a/src/components/do/b1-report-preparation/order.vue +++ b/src/components/do/b1-report-preparation/order.vue @@ -31,14 +31,53 @@ :url="$api.insOrder.selectInsOrderParameter" :componentData="componentData" :upIndex="upIndex" /> </div> + <el-dialog + title="鐢熸垚鎶ュ憡" + :visible.sync="dialogVisible" + width="30%" + :append-to-body="true" + :modal="!dialogVisible0" + > + <span>璇烽�夋嫨濮旀墭缂栧彿涓� {{currentInfo.entrustCode}} 瑕佺敓鎴愮殑鏁版嵁</span> + <el-card class="box-card" style="margin-top: 16px;" v-for="(item,index) in historyList" :key="index"> + <div slot="header" style="display: flex;justify-content: space-between;"> + <span>{{ item.laboratory }}</span> + <!-- <el-checkbox v-model="item.checked"></el-checkbox> --> + </div> + <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-card> + <span slot="footer" class="dialog-footer"> + <el-button :loading="loading0" @click="handleNoCreate">涓嶇敓鎴�</el-button> + <el-button type="primary" @click="handleCreate" :loading="loading1">鐢� 鎴�</el-button> + </span> + </el-dialog> + <el-dialog + title="妫�楠岃鎯�" + :visible.sync="dialogVisible0" + width="100%" :fullscreen="true" :modal="false" :append-to-body="true"> + <Inspection v-if="dialogVisible0" + :orderId="currentInfo.id" + :inspectorList="currentItem.inspectorList" + :sonLaboratory="currentItem.laboratory" + :state="2" + :orderStateId="currentItem.orderStateId" + :version="currentItem.version" + :isLook="true" + :num1="currentItem.num1" + :noBack="true"/> + </el-dialog> </div> </template> <script> import ValueTable from '../../tool/value-table.vue' +import Inspection from '../b1-inspect-order-plan/Inspection.vue' export default { components: { ValueTable, + Inspection, }, data() { return { @@ -124,7 +163,14 @@ needSort: ['createTime', 'sendTime', 'type', 'appointed'] }, upIndex: 0, - entityCopy: {} + entityCopy: {}, + dialogVisible:false, + historyList:[], + currentInfo:{}, + currentItem:{}, + loading0:false, + loading1:false, + dialogVisible0:false } }, mounted() { @@ -154,55 +200,85 @@ this.refreshTable() }, handleCreateReport(row){ - this.$confirm(`鏄惁鐢熸垚姝ゅ鎵樺崟 ${row.entrustCode} 鐨勬�绘姤鍛�?`, "鎻愮ず", { - confirmButtonText: "鐢熸垚", - cancelButtonText: "涓嶇敓鎴�", - type: "success", - distinguishCancelAndClose: true, - beforeClose: (action, instance, done) => { - if (action === 'confirm') { - instance.confirmButtonLoading = true; - this.$axios.post(this.$api.insReport.isReport, { - id:row.id, - state:1 - }).then(res => { - instance.confirmButtonLoading = false; - if (res.code === 201) { - return - } - this.$message.success("宸茬敓鎴�") - this.refreshTable() - done(); - }).catch(err => { - console.log(err) - instance.confirmButtonLoading = false; + this.currentInfo = row + this.$axios.get(this.$api.insReport.getInsOrderStateCount+'?id='+row.id).then(res => { + this.historyList = res.data + this.historyList.forEach(item => { + item.arr = [] + this.$set(item,'numValue',1) + // item.checked = false; + if(item.num>0){ + for(var i=0;i<item.num;i++){ + item.arr.push({ + label:'璁板綍'+(i+1), + value:i+1 }) - } else if(action === 'cancel'){ - instance.cancelButtonLoading = true; - this.$axios.post(this.$api.insReport.isReport, { - id:row.id, - state:0 - }).then(res => { - instance.cancelButtonLoading = false; - if (res.code === 201) { - return - } - this.refreshTable() - done(); - this.$message.success("宸插彇娑堢敓鎴�") - }).catch(err => { - instance.cancelButtonLoading = false; - console.log(err) - }) - }else{ - done(); } } - }).then(() => { - - }).catch((e) => { - console.log(e) - }) + }) + this.dialogVisible = true + }) + }, + // 鐢熸垚鎶ュ憡 + handleCreate(){ + 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 + } + }) + },{ + headers: { + 'Content-Type': 'application/json' + }}).then(res => { + this.loading1 = false + if (res.code === 201) { + return + } + this.$message.success("宸茬敓鎴�") + this.refreshTable() + this.dialogVisible = false + }).catch(err => { + console.log(err) + }) + }, + // 涓嶇敓鎴� + handleNoCreate(){ + this.loading0 = true + this.$axios.post(this.$api.insReport.isReport, { + id:this.currentInfo.id, + state:0 + },{ + headers: { + 'Content-Type': 'application/json' + }}).then(res => { + this.loading0 = false; + if (res.code === 201) { + return + } + this.refreshTable() + this.$message.success("宸插彇娑堢敓鎴�") + this.dialogVisible = false + }).catch(err => { + console.log(err) + }) + }, + // 鏌ョ湅妫�楠岃鎯� + lookDetail(row,value){ + this.dialogVisible0 = true + let inspectorList = [] + if(row.userName){ + inspectorList = row.userName.split(',') + } + this.currentItem = { + num1:value, + inspectorList:inspectorList, + ...row + } } } } @@ -240,4 +316,8 @@ height: 100%; padding: 20px; } + >>>.el-card__header,>>>.el-card__body{ + padding-top: 10px; + padding-bottom: 10px; + } </style> -- Gitblit v1.9.3