yusm 1 месяц назад
Родитель
Сommit
02b3ddc03e
1 измененных файлов с 15 добавлено и 9 удалено
  1. 15 9
      fhKeeper/formulahousekeeper/timesheet/src/views/dashboard/index.vue

+ 15 - 9
fhKeeper/formulahousekeeper/timesheet/src/views/dashboard/index.vue

@@ -604,10 +604,20 @@ export default {
       return prop === "departmentName" ? "departmentName" : "userName";
     },
 
+    getDeptOpenId(row) {
+      if (!row) return "";
+      const openId = row.departmentOpenId || row.corpwxDeptid || row.corpwxDeptId || "";
+      return this.isValidDeptOpenId(openId) ? String(openId) : "";
+    },
+
+    isValidDeptOpenId(openId) {
+      return openId != null && String(openId) !== "";
+    },
+
     openDataId(row, prop) {
       if (!row) return "";
       if (prop === "departmentName") {
-        return row.departmentOpenId || row.corpwxDeptid || "";
+        return this.getDeptOpenId(row);
       }
       if (prop === "userName") {
         return row.corpwxUserid || row.userOpenId || "";
@@ -724,7 +734,7 @@ export default {
         dataList,
         nameKey,
         "departmentName",
-        (item) => item.departmentOpenId || item.corpwxDeptid || item[nameKey],
+        (item) => this.getDeptOpenId(item),
         "_deptOpenId",
         callback,
       );
@@ -810,7 +820,7 @@ export default {
     // 企业微信环境下优先用 _deptOpenId(原始 openid)渲染 ww-open-data,
     // 若无 openid 则降级显示转译后的纯文本
     deptNameHtml(name, openId) {
-      if (this.needWxOpenData && openId) {
+      if (this.needWxOpenData && this.isValidDeptOpenId(openId)) {
         return `<ww-open-data type="departmentName" openid="${openId}"></ww-open-data>`;
       }
       return name;
@@ -1301,7 +1311,7 @@ export default {
       // pieData 中额外存储 openId 供 tooltip 使用
       const pieData = this.top3DeptData.map((item) => ({
         name: item.departmentName,
-        openId: item._deptOpenId || item.departmentName,
+        openId: item._deptOpenId || null,
         value: isOvertime
           ? Number(item.overtimeHours || 0)
           : Number(item.workingTime || 0),
@@ -1428,11 +1438,7 @@ export default {
 
       const deptOpenIdMap4 = {};
       this.deptProjectCountData.forEach((item) => {
-        deptOpenIdMap4[item.departmentName] =
-          item._deptOpenId ||
-          item.departmentOpenId ||
-          item.corpwxDeptid ||
-          item.departmentName;
+        deptOpenIdMap4[item.departmentName] = item._deptOpenId || null;
       });
 
       const deptNameHtml4 = this.deptNameHtml.bind(this);