Преглед изворни кода

feat(repair): 添加转派记录审批状态显示功能

- 在转派详情中新增审批状态字段展示
- 添加审批人、审批时间、审批意见字段显示
- 实现转派状态文字转换方法(待审批、已通过、已驳回)
- 添加状态徽章颜色映射逻辑
- 为转派列表循环添加 key 属性优化渲染性能
dazhaxie пре 10 часа
родитељ
комит
3783486346

+ 17 - 0
src/views/repair/application-form/modules/Detail.vue

@@ -77,6 +77,12 @@
             <detail-list-item term="转派人">{{ item.username }}</detail-list-item>
             <detail-list-item term="转派时间">{{ item.time }}</detail-list-item>
             <detail-list-item term="转派备注">{{ item.remark }}</detail-list-item>
+            <detail-list-item term="审批状态" v-if="item.type === 'transfer'">
+              <badge :text="getTransferStatusText(item.status)" :status="getTransferBadgeStatus(item.status)" />
+            </detail-list-item>
+            <detail-list-item v-if="item.approverName" term="审批人">{{ item.approverName }}</detail-list-item>
+            <detail-list-item v-if="item.approveTime" term="审批时间">{{ item.approveTime }}</detail-list-item>
+            <detail-list-item v-if="item.approveRemark" term="审批意见">{{ item.approveRemark }}</detail-list-item>
           </detail-list>
           <a-divider orientation="left">审核详情</a-divider>
           <detail-list title="" :col="3">
@@ -533,6 +539,17 @@ export default {
     inited(viewer) {
       this.$viewer = viewer
     },
+    // 转派记录审批状态文字:pending-待审批 approved-已通过 rejected-已驳回;老数据无 status 字段时按已通过展示(早期转派无审批流程)
+    getTransferStatusText(status) {
+      if (status === 'pending') return '待审批'
+      if (status === 'rejected') return '已驳回'
+      return '已通过'
+    },
+    getTransferBadgeStatus(status) {
+      if (status === 'pending') return 'warning'
+      if (status === 'rejected') return 'error'
+      return 'success'
+    },
   },
 }
 </script>

+ 18 - 1
src/views/repair/application-form/modules/DetailCheck.vue

@@ -73,10 +73,16 @@
             </detail-list-item>
           </detail-list>
           <a-divider v-if="dispatchList != null" orientation="left">转派详情</a-divider>
-          <detail-list v-for="item in dispatchList" title="" :col="3">
+          <detail-list v-for="(item, index) in dispatchList" title="" :key="index" :col="3">
             <detail-list-item term="转派人">{{ item.username }}</detail-list-item>
             <detail-list-item term="转派时间">{{ item.time }}</detail-list-item>
             <detail-list-item term="转派备注">{{ item.remark }}</detail-list-item>
+            <detail-list-item term="审批状态" v-if="item.type === 'transfer'">
+              <badge :text="getTransferStatusText(item.status)" :status="getTransferBadgeStatus(item.status)" />
+            </detail-list-item>
+            <detail-list-item v-if="item.approverName" term="审批人">{{ item.approverName }}</detail-list-item>
+            <detail-list-item v-if="item.approveTime" term="审批时间">{{ item.approveTime }}</detail-list-item>
+            <detail-list-item v-if="item.approveRemark" term="审批意见">{{ item.approveRemark }}</detail-list-item>
           </detail-list>
           <a-divider orientation="left">审核详情</a-divider>
           <detail-list title="" :col="3">
@@ -577,6 +583,17 @@ export default {
     },
     inited (viewer) {
       this.$viewer = viewer
+    },
+    // 转派记录审批状态文字:pending-待审批 approved-已通过 rejected-已驳回;老数据无 status 字段时按已通过展示(早期转派无审批流程)
+    getTransferStatusText (status) {
+      if (status === 'pending') return '待审批'
+      if (status === 'rejected') return '已驳回'
+      return '已通过'
+    },
+    getTransferBadgeStatus (status) {
+      if (status === 'pending') return 'warning'
+      if (status === 'rejected') return 'error'
+      return 'success'
     }
   }
 }

+ 18 - 1
src/views/repair/application-form/modules/DetailRepair.vue

@@ -96,10 +96,16 @@
           </a-table>
           <div v-if="entrustList.length === 0" style="margin-bottom: 16px; color: #999;">暂无委外记录</div>
           <a-divider v-if="dispatchList != null" orientation="left">转派详情</a-divider>
-          <detail-list v-for="item in dispatchList" title="" :col="3">
+          <detail-list v-for="(item, index) in dispatchList" title="" :key="index" :col="3">
             <detail-list-item term="转派人">{{ item.username }}</detail-list-item>
             <detail-list-item term="转派时间">{{ item.time }}</detail-list-item>
             <detail-list-item term="转派备注">{{ item.remark }}</detail-list-item>
+            <detail-list-item term="审批状态" v-if="item.type === 'transfer'">
+              <badge :text="getTransferStatusText(item.status)" :status="getTransferBadgeStatus(item.status)" />
+            </detail-list-item>
+            <detail-list-item v-if="item.approverName" term="审批人">{{ item.approverName }}</detail-list-item>
+            <detail-list-item v-if="item.approveTime" term="审批时间">{{ item.approveTime }}</detail-list-item>
+            <detail-list-item v-if="item.approveRemark" term="审批意见">{{ item.approveRemark }}</detail-list-item>
           </detail-list>
           <a-divider orientation="left">审核详情</a-divider>
           <detail-list title="" :col="3">
@@ -628,6 +634,17 @@ export default {
         this.$refs.detailOutModal.visible = false
       }
     },
+    // 转派记录审批状态文字:pending-待审批 approved-已通过 rejected-已驳回;老数据无 status 字段时按已通过展示(早期转派无审批流程)
+    getTransferStatusText(status) {
+      if (status === 'pending') return '待审批'
+      if (status === 'rejected') return '已驳回'
+      return '已通过'
+    },
+    getTransferBadgeStatus(status) {
+      if (status === 'pending') return 'warning'
+      if (status === 'rejected') return 'error'
+      return 'success'
+    },
     receive() {
       this.model.status = this.DictCache.VALUE.REPAIR_APPLICATION_FORM_STATUS.PROCESSING
       receive(this.model).then(() => {