From b32150d1fd576fa3b89e85e2f99be2edc67b9293 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 17 九月 2024 16:26:15 +0800
Subject: [PATCH] 工单详情页优化
---
src/views/system/work-order/detail/index.vue | 32 +++++++-
src/components/WorkOrder/WorkOrderAuditing.vue | 116 +++++++++++++++++++++++++++++
src/views/system/work-order/index.vue | 91 ++++++++++++----------
3 files changed, 192 insertions(+), 47 deletions(-)
diff --git a/src/components/WorkOrder/WorkOrderAuditing.vue b/src/components/WorkOrder/WorkOrderAuditing.vue
new file mode 100644
index 0000000..dfcddaf
--- /dev/null
+++ b/src/components/WorkOrder/WorkOrderAuditing.vue
@@ -0,0 +1,116 @@
+<template>
+ <div>
+ <el-dialog title="宸ュ崟瀹℃牳" :visible.sync="auditingOpen" width="1000px" append-to-body>
+ <el-row :gutter="20">
+ <el-col :span="10">
+ <el-form ref="auditingForm" :model="auditingForm" :rules="auditingRules" label-width="80px">
+ <el-form-item label="宸ュ崟鍙�" prop="workOrderNo">
+ <el-input v-model="auditingForm.workOrderNo" disabled/>
+ </el-form-item>
+ <el-form-item label="鏁呴殰鐐逛綅" prop="source">
+ <el-input v-model="auditingForm.source" disabled/>
+ </el-form-item>
+ <el-form-item label="杩愮淮鍗曚綅" prop="unitName">
+ <el-input v-model="auditingForm.unitName" disabled/>
+ </el-form-item>
+ <el-form-item label="瀹℃牳缁撴灉" prop="auditingResult">
+ <el-radio-group v-model="auditingForm.auditingResult">
+ <el-radio label="AUDITING_SUCCESS">閫氳繃</el-radio>
+ <el-radio label="AUDITING_FAIL">椹冲洖</el-radio>
+ </el-radio-group>
+
+ </el-form-item>
+ <el-form-item label="瀹℃牳澶囨敞" prop="auditingRemark">
+ <el-input v-model="auditingForm.auditingRemark" type="textarea" maxlength="30" show-word-limit/>
+ </el-form-item>
+ </el-form>
+ </el-col>
+ <el-col :span="14" style="max-height: 500px; overflow-y: auto">
+ <el-timeline v-if="ywConditions && ywConditions.length > 0">
+ <el-timeline-item v-for="(condition, index) in ywConditions" :key="index"
+ :timestamp="condition.unitName + '___' + condition.createTime" placement="top"
+ >
+ <el-card>
+ <div v-html="condition.ywCondition"></div>
+ <el-link type="primary"
+ v-for="item in condition.ywProofMaterials != null ? condition.ywProofMaterials.split(',') : condition.ywProofMaterials"
+ :underline="false" :key="item.id" @click="handleDownload(item)"
+ >{{ item.substring(item.lastIndexOf('/') + 1) }}
+ </el-link>
+ </el-card>
+ </el-timeline-item>
+ </el-timeline>
+ <el-empty v-else description="娌℃湁澶勭悊璁板綍"></el-empty>
+ </el-col>
+ </el-row>
+
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="cancelAuditing">鍙� 娑�</el-button>
+ <el-button type="primary" @click="submitAuditing">瀹� 鏍�</el-button>
+ </div>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import { auditing } from '@/api/platform/work-order'
+export default {
+ name: "WorkOrderAuditing",
+ props: {
+ auditingOpen: {
+ type: Boolean,
+ required: true,
+ default: false
+ },
+ dataForm: {
+ type: Object,
+ required: true,
+ },
+ ywConditions: {
+ type: Array,
+ required: true,
+ },
+ },
+ data() {
+ return {
+ auditingForm: {},
+ auditingRules: {
+ auditingResult: [
+ { required: true, message: '瀹℃牳缁撴灉涓嶈兘涓虹┖', trigger: 'blur' }
+ ]
+ },
+ }
+ },
+ methods: {
+ // 鎻愪氦瀹℃牳
+ submitAuditing() {
+ this.$refs['auditingForm'].validate(valid => {
+ if (valid) {
+ auditing(this.auditingForm).then(res => {
+ this.$emit('close', false);
+ this.$modal.msgSuccess('鎿嶄綔鎴愬姛')
+ this.getList()
+ })
+ }
+ })
+ },
+ // 鍙栨秷瀹℃牳
+ cancelAuditing() {
+ this.auditingForm = {}
+ this.$emit('close');
+ },
+ },
+ watch: {
+ dataForm: {
+ handler(n, o) {
+ this.auditingForm = n
+ },
+ deep: true
+ }
+ }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/src/views/system/work-order/detail/index.vue b/src/views/system/work-order/detail/index.vue
index f2b66fd..88a65cb 100644
--- a/src/views/system/work-order/detail/index.vue
+++ b/src/views/system/work-order/detail/index.vue
@@ -65,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">
@@ -78,7 +78,12 @@
</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>
@@ -159,16 +164,24 @@
<div style="margin-top: 8px">{{img.createTime}}</div>
</div>
</div>
+
+ <WorkOrderAuditing :auditingOpen="auditingOpen" :dataForm="auditingForm" :ywConditions="ywConditions" @close="closeAuditing"/>
+
</div>
</template>
<script>
-import {getWorkOrderInfo, getYwConditionList, getYwAuditingList} 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,
@@ -200,6 +213,17 @@
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;
},
diff --git a/src/views/system/work-order/index.vue b/src/views/system/work-order/index.vue
index 23a5fff..593c822 100644
--- a/src/views/system/work-order/index.vue
+++ b/src/views/system/work-order/index.vue
@@ -193,49 +193,50 @@
</div>
</el-dialog>
- <el-dialog title="宸ュ崟瀹℃牳" :visible.sync="auditingOpen" width="1000px" append-to-body>
- <el-row :gutter="20">
- <el-col :span="10">
- <el-form ref="auditingForm" :model="auditingForm" :rules="auditingRules" label-width="80px">
- <el-form-item label="宸ュ崟鍙�" prop="workOrderNo">
- <el-input v-model="auditingForm.workOrderNo" disabled/>
- </el-form-item>
- <el-form-item label="杩愮淮鍗曚綅" prop="unitName">
- <el-input v-model="auditingForm.unitName" disabled/>
- </el-form-item>
- <el-form-item label="瀹℃牳缁撴灉" prop="auditingResult">
- <el-radio v-model="auditingForm.auditingResult" label="AUDITING_SUCCESS">閫氳繃</el-radio>
- <el-radio v-model="auditingForm.auditingResult" label="AUDITING_FAIL">椹冲洖</el-radio>
- </el-form-item>
- <el-form-item label="瀹℃牳澶囨敞" prop="auditingRemark">
- <el-input v-model="auditingForm.auditingRemark" type="textarea" maxlength="30" show-word-limit/>
- </el-form-item>
- </el-form>
- </el-col>
- <el-col :span="14" style="max-height: 500px; overflow-y: auto">
- <el-timeline v-if="ywConditions && ywConditions.length > 0">
- <el-timeline-item v-for="(condition, index) in ywConditions" :key="index"
- :timestamp="condition.commitUserName + '___' + condition.createTime" placement="top"
- >
- <el-card>
- <div v-html="condition.ywCondition"></div>
- <el-link type="primary"
- v-for="item in condition.ywProofMaterials != null ? condition.ywProofMaterials.split(',') : condition.ywProofMaterials"
- :underline="false" :key="item.id" @click="handleDownload(item)"
- >{{ item.substring(item.lastIndexOf('/') + 1) }}
- </el-link>
- </el-card>
- </el-timeline-item>
- </el-timeline>
- <el-empty v-else description="娌℃湁澶勭悊璁板綍"></el-empty>
- </el-col>
- </el-row>
+ <WorkOrderAuditing :auditingOpen="auditingOpen" :dataForm="auditingForm" :ywConditions="ywConditions" @close="closeAuditing"/>
+<!-- <el-dialog title="宸ュ崟瀹℃牳" :visible.sync="auditingOpen" width="1000px" append-to-body>-->
+<!-- <el-row :gutter="20">-->
+<!-- <el-col :span="10">-->
+<!-- <el-form ref="auditingForm" :model="auditingForm" :rules="auditingRules" label-width="80px">-->
+<!-- <el-form-item label="宸ュ崟鍙�" prop="workOrderNo">-->
+<!-- <el-input v-model="auditingForm.workOrderNo" disabled/>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="杩愮淮鍗曚綅" prop="unitName">-->
+<!-- <el-input v-model="auditingForm.unitName" disabled/>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="瀹℃牳缁撴灉" prop="auditingResult">-->
+<!-- <el-radio v-model="auditingForm.auditingResult" label="AUDITING_SUCCESS">閫氳繃</el-radio>-->
+<!-- <el-radio v-model="auditingForm.auditingResult" label="AUDITING_FAIL">椹冲洖</el-radio>-->
+<!-- </el-form-item>-->
+<!-- <el-form-item label="瀹℃牳澶囨敞" prop="auditingRemark">-->
+<!-- <el-input v-model="auditingForm.auditingRemark" type="textarea" maxlength="30" show-word-limit/>-->
+<!-- </el-form-item>-->
+<!-- </el-form>-->
+<!-- </el-col>-->
+<!-- <el-col :span="14" style="max-height: 500px; overflow-y: auto">-->
+<!-- <el-timeline v-if="ywConditions && ywConditions.length > 0">-->
+<!-- <el-timeline-item v-for="(condition, index) in ywConditions" :key="index"-->
+<!-- :timestamp="condition.commitUserName + '___' + condition.createTime" placement="top"-->
+<!-- >-->
+<!-- <el-card>-->
+<!-- <div v-html="condition.ywCondition"></div>-->
+<!-- <el-link type="primary"-->
+<!-- v-for="item in condition.ywProofMaterials != null ? condition.ywProofMaterials.split(',') : condition.ywProofMaterials"-->
+<!-- :underline="false" :key="item.id" @click="handleDownload(item)"-->
+<!-- >{{ item.substring(item.lastIndexOf('/') + 1) }}-->
+<!-- </el-link>-->
+<!-- </el-card>-->
+<!-- </el-timeline-item>-->
+<!-- </el-timeline>-->
+<!-- <el-empty v-else description="娌℃湁澶勭悊璁板綍"></el-empty>-->
+<!-- </el-col>-->
+<!-- </el-row>-->
- <div slot="footer" class="dialog-footer">
- <el-button @click="cancelAuditing">鍙� 娑�</el-button>
- <el-button type="primary" @click="submitAuditing">瀹� 鏍�</el-button>
- </div>
- </el-dialog>
+<!-- <div slot="footer" class="dialog-footer">-->
+<!-- <el-button @click="cancelAuditing">鍙� 娑�</el-button>-->
+<!-- <el-button type="primary" @click="submitAuditing">瀹� 鏍�</el-button>-->
+<!-- </div>-->
+<!-- </el-dialog>-->
<el-dialog title="杩愮淮鎯呭喌璁板綍" :visible.sync="ywConditionOpen" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="ywConditionRules" label-width="80px">
@@ -452,11 +453,12 @@
process
} from '@/api/platform/work-order'
import { addReport } from '@/api/platform/report'
+import WorkOrderAuditing from "@/components/WorkOrder/WorkOrderAuditing";
export default {
name: 'Work-order',
dicts: ['error_type', 'report_error_type'],
- components: {},
+ components: {WorkOrderAuditing},
data() {
return {
drawer: false,
@@ -587,6 +589,9 @@
this.getList()
},
methods: {
+ closeAuditing() {
+ this.auditingOpen = false
+ },
getTitle1() {
return '浜х敓宸ュ崟' + (this.beforeReportMsg ? '(' + this.beforeReportMsg + ')' : '')
},
--
Gitblit v1.8.0