From c79a020be41892e60021c2a750ea2976dd20f2f3 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期二, 05 十一月 2024 11:19:20 +0800 Subject: [PATCH] 工单审核对话框bug --- src/views/system/work-order/detail/index.vue | 125 +++++++++++++++++++++++++++++++++++++++-- 1 files changed, 117 insertions(+), 8 deletions(-) diff --git a/src/views/system/work-order/detail/index.vue b/src/views/system/work-order/detail/index.vue index 8ede435..71d323d 100644 --- a/src/views/system/work-order/detail/index.vue +++ b/src/views/system/work-order/detail/index.vue @@ -29,7 +29,8 @@ </div> <div class="item-warp"> <div>澶勭悊鏃堕檺锛�</div> - <div>{{workOrderInfo.processingPeriod}}(灏忔椂)</div> + <div v-if="workOrderInfo.processingPeriod">{{workOrderInfo.processingPeriod}}(灏忔椂)</div> + <div v-else>鏃�</div> </div> <div class="item-warp"> <div>涓嬪彂鏃堕棿锛�</div> @@ -64,10 +65,10 @@ </div> <div style="margin-left: 2px">鏄惁鎶ュ</div> </div> - <div class="warp"> + <div class="warp" style="display: flex;flex-direction: row;align-items: center"> <div v-if="workOrderInfo.hasReport"><el-link @click type="primary">{{workOrderInfo.hasReport ? '宸叉姤澶�' : '鏈姤澶�'}}</el-link></div> <div v-else>{{workOrderInfo.hasReport ? '宸叉姤澶�' : '鏈姤澶�'}}</div> - <div v-if="!workOrderInfo.hasReport"><el-link type="primary">浜嬪悗鎶ュ</el-link></div> + <div v-if="!workOrderInfo.hasReport"><el-link type="primary">(浜嬪悗鎶ュ)</el-link></div> </div> </div> <div class="info-item weight4"> @@ -77,11 +78,16 @@ </div> <div style="margin-left: 2px">澶勭悊缁撴灉</div> </div> - <div class="warp">{{covertStatus(workOrderInfo.status)}}</div> + <div class="warp" style="display: flex;flex-direction: row;align-items: center"> + <div>{{covertStatus(workOrderInfo.status)}}</div> + <div v-if="workOrderInfo.status ==='YW_HANDLE'"> + <el-link type="primary" @click="handleAuditing">(瀹℃牳)</el-link> + </div> + </div> </div> </div> </el-tab-pane> - <el-tab-pane v-loading="loading2" name="report" label="鎶ュ淇℃伅"> + <el-tab-pane v-loading="loading2" name="report" label="鎶ュ璁板綍"> <div v-if="reportList && reportList.length > 0"> <el-timeline> <el-timeline-item @@ -106,20 +112,77 @@ </div> <el-empty v-else description="鏈煡鍒版姤澶囦俊鎭�"></el-empty> </el-tab-pane> - <el-tab-pane v-loading="loading3" name="handle" label="杩愮淮淇℃伅">瑙掕壊绠$悊</el-tab-pane> - <el-tab-pane v-loading="loading4" name="auditing" label="瀹℃牳淇℃伅">瀹氭椂浠诲姟琛ュ伩</el-tab-pane> + <el-tab-pane v-loading="loading3" name="handle" label="澶勭悊璁板綍"> + <div v-if="ywList && ywList.length > 0"> + <el-timeline> + <el-timeline-item + placement="top" + v-for="(yw, index) in ywList" + :key="index" + :timestamp="yw.createTime"> + <div> + <div style="margin: 8px 0"> + <el-link + v-for="item in yw.ywProofMaterials != null ? yw.ywProofMaterials.split(',') : yw.ywProofMaterials" + :underline="false" type="primary" :key="item" @click="handleDownload(item)">{{ item.substring(item.lastIndexOf("/") + 1) + }}</el-link> + </div> + <div v-html="yw.ywCondition"></div> + </div> + </el-timeline-item> + </el-timeline> + </div> + <el-empty v-else description="鏈煡鍒拌繍缁村鐞嗕俊鎭�"></el-empty> + </el-tab-pane> + <el-tab-pane v-loading="loading4" name="auditing" label="瀹℃牳璁板綍"> + <div v-if="auditingList && auditingList.length > 0"> + <el-timeline> + <el-timeline-item + placement="top" + v-for="(auditing, index) in auditingList" + :key="index" + :timestamp="auditing.createTime"> + <div> + <div style="margin: 8px 0"><el-tag :type="auditing.result === '瀹℃牳閫氳繃' ? 'success' : 'warning'">{{auditing.result}}</el-tag></div> + <div v-html="auditing.remark"></div> + </div> + </el-timeline-item> + </el-timeline> + </div> + <el-empty v-else description="鏈煡鍒板鏍镐俊鎭�"></el-empty> + </el-tab-pane> </el-tabs> + <div class="work-order-img"> + <div class="img-info" v-for="(img, index) in workOrderInfo.imgList" :key="index"> + <div> + <el-image + style="width: 100%; height: auto" + :src="getImgUrl(img.imgUrl)" + :preview-src-list="workOrderInfo.imgList.map(i => getImgUrl(i.imgUrl))" + > + </el-image> + </div> + <div style="margin-top: 8px;text-align: center">{{img.createTime}}</div> + </div> + </div> + + <WorkOrderAuditing :auditingOpen="auditingOpen" :dataForm="auditingForm" :ywConditions="ywConditions" @close="closeAuditing"/> </div> </template> <script> -import {getWorkOrderInfo} from '@/api/platform/work-order' +import {getWorkOrderInfo, getYwConditionList, getYwAuditingList, getYwCondition, listWorkOrder} from '@/api/platform/work-order' import {getReportByGb} from '@/api/platform/report' +import WorkOrderAuditing from "@/components/WorkOrder/WorkOrderAuditing"; export default { name: "index", + components: {WorkOrderAuditing}, data() { return { + ywConditions: [], + auditingOpen: false, + auditingForm: {}, selectedTab: 'workorder', loading1: false, loading2: false, @@ -141,6 +204,8 @@ hasReport: null }, reportList: [], + ywList: [], + auditingList: [], workOrderNo: '' } }, @@ -149,6 +214,21 @@ this.getWorkOrder() }, methods: { + + closeAuditing() { + this.auditingOpen = false + }, + // 瀹℃牳鎸夐挳 + handleAuditing() { + this.auditingForm = this.workOrderInfo + getYwCondition(this.workOrderInfo.workOrderNo).then(response => { + this.ywConditions = response.data + this.auditingOpen = true + }) + }, + getImgUrl(path) { + return this.$img + path; + }, getWorkOrder() { this.loading1 = true getWorkOrderInfo(this.workOrderInfo.workOrderNo).then(res => { @@ -161,6 +241,20 @@ getReportByGb(this.workOrderInfo.serialNumber).then(res => { this.reportList = res.data this.loading2 = false + }) + }, + getYw() { + this.loading3 = true; + getYwConditionList(this.workOrderInfo.workOrderNo).then(res => { + this.ywList = res.data + this.loading3 = false + }) + }, + getAuditing() { + this.loading4 = true; + getYwAuditingList(this.workOrderInfo.workOrderNo).then(res => { + this.auditingList = res.data + this.loading4 = false }) }, covertStatus(status) { @@ -179,6 +273,10 @@ this.getWorkOrder() } else if (tab.name === 'report') { this.getReport() + } else if (tab.name === 'handle') { + this.getYw() + } else if (tab.name === 'auditing') { + this.getAuditing() } }, @@ -190,6 +288,17 @@ </script> <style scoped> +.img-info { + flex: 0 0 calc(20% - 8px); /* 姣忚浜斾釜锛屾墍浠ユ瘡涓崰20%锛屽噺鍘婚棿璺� */ + box-sizing: border-box; +} + +.work-order-img { + margin-top: 15px; + display: flex; + flex-wrap: wrap; + gap: 8px; /* 鍙�夛細璁剧疆鍥剧墖涔嬮棿鐨勯棿璺� */ +} .work-order-info { width: 100%; display: flex; -- Gitblit v1.8.0