From b014cdaf7fcf42cd2b310968f9d47d4420444a6a Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期四, 21 五月 2026 11:46:38 +0800
Subject: [PATCH] 审批模板增加配置模板导入,按钮权限控制,新建页面ui优化

---
 src/pages/oa/ApproveManage/approve-list/index.vue |   44 ++++++++++++++++++++++++++++++++++----------
 1 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/src/pages/oa/ApproveManage/approve-list/index.vue b/src/pages/oa/ApproveManage/approve-list/index.vue
index db97060..fd5e142 100644
--- a/src/pages/oa/ApproveManage/approve-list/index.vue
+++ b/src/pages/oa/ApproveManage/approve-list/index.vue
@@ -73,20 +73,22 @@
             </view>
             <view class="detail-row">
               <text class="detail-label">鐢宠鏃堕棿</text>
-              <text class="detail-value">{{ item.applyTime || "-" }}</text>
+              <text class="detail-value">{{ formatDateTime(item.applyTime) }}</text>
             </view>
             <view v-if="item.finishTime"
                   class="detail-row">
               <text class="detail-label">瀹屾垚鏃堕棿</text>
-              <text class="detail-value">{{ item.finishTime }}</text>
+              <text class="detail-value">{{ formatDateTime(item.finishTime) }}</text>
             </view>
           </view>
-          <view v-if="canEdit(item) || item.isApprove"
+          <view v-if="canModify(item) || item.isApprove"
                 class="action-buttons">
-            <up-button v-if="canEdit(item)"
+            <up-button v-if="canModify(item)"
                        class="action-btn"
                        size="small"
-                       @click.stop="goEdit(item)">
+                       type="warning"
+                       plain
+                       @click.stop="goModify(item)">
               缂栬緫
             </up-button>
             <up-button v-if="item.isApprove"
@@ -123,6 +125,7 @@
   import { listApprovalInstancePage } from "@/api/oa/approvalInstance.js";
   import { OA_NAV } from "@/config/oaPaths.js";
   import useUserStore from "@/store/modules/user";
+  import { parseTime } from "@/utils/ruoyi";
 
   const EDIT_STORAGE_KEY = "oa_approve_instance_edit_row";
   const userStore = useUserStore();
@@ -160,6 +163,27 @@
     if (level == null || level === "") return "-";
     return `绗� ${level} 绾;
   };
+
+  const formatDateTime = val => {
+    if (!val) return "-";
+    return parseTime(val, "{y}-{m}-{d} {h}:{i}:{s}") || String(val);
+  };
+
+  /** 鏄惁鏈汉鍙戣捣鐨勫鎵癸紙鍏煎鍒楄〃鏈繑鍥� applicantId锛� */
+  const isOwnApplication = item => {
+    const uid = userStore.id;
+    if (item?.applicantId != null && uid != null && uid !== "") {
+      return String(item.applicantId) === String(uid);
+    }
+    const loginName = userStore.nickName || userStore.name;
+    if (loginName && item?.applicantName) {
+      return String(item.applicantName).trim() === String(loginName).trim();
+    }
+    return false;
+  };
+
+  /** 浠呫�岃繘琛屼腑銆嶄笖鏈汉鍙戣捣鏃跺彲缂栬緫锛堝凡閫氳繃/宸查┏鍥炰笉鏄剧ず缂栬緫锛� */
+  const canModify = item => item?.status === "PENDING" && isOwnApplication(item);
 
   const currentApproverName = item => {
     const tasks = item?.tasks;
@@ -243,11 +267,11 @@
     uni.navigateTo({ url: OA_NAV.approveListTemplateSelect });
   };
 
-  const canEdit = item =>
-    item?.status === "PENDING" &&
-    String(item.applicantId) === String(userStore.id);
-
-  const goEdit = item => {
+  const goModify = item => {
+    if (!canModify(item)) {
+      uni.showToast({ title: "浠呰繘琛屼腑鐨勬湰浜虹敵璇峰彲缂栬緫", icon: "none" });
+      return;
+    }
     if (!item?.id) return;
     uni.setStorageSync(EDIT_STORAGE_KEY, item);
     uni.navigateTo({

--
Gitblit v1.9.3