diff --git a/src/views/bg/bgpartymatter/BgPartymatterList.vue b/src/views/bg/bgpartymatter/BgPartymatterList.vue
index 8091e22..14ac732 100644
--- a/src/views/bg/bgpartymatter/BgPartymatterList.vue
+++ b/src/views/bg/bgpartymatter/BgPartymatterList.vue
@@ -46,7 +46,7 @@
-
+
新增
@@ -92,9 +92,15 @@
办理情况
-
- {{ getFeedbackTableLoading(record) ? '加载中' : `${getFeedbackCount(record)} 条` }}
-
+
+ 加载中
+
+
+ 未开始 {{ getFeedbackStatusCount(record).notStarted }}
+ 进行中 {{ getFeedbackStatusCount(record).inProgress }}
+ 已完成 {{ getFeedbackStatusCount(record).completed }}
+ (共 {{ getFeedbackStatusCount(record).total }} 条)
+
当前事项的责任部门办理情况记录
@@ -158,6 +164,7 @@
import { defHttp } from '/@/utils/http/axios';
import { showImportValidationErrors } from '/@/utils/helper/importError';
import { useMessage } from '/@/hooks/web/useMessage';
+ import { countFeedbackStatus } from '/@/views/bg/utils/feedbackStatusCount';
const props = withDefaults(
defineProps<{
@@ -319,6 +326,10 @@
return !!feedbackTableLoading[getFeedbackKey(record)];
}
+ function getFeedbackStatusCount(record: Recordable) {
+ return countFeedbackStatus(getFeedbackTableData(record), 'bpmStatus');
+ }
+
function clearFeedbackTableData() {
Object.keys(feedbackTableData).forEach((key) => {
delete feedbackTableData[key];
@@ -863,3 +874,15 @@
}
}
+
+
diff --git a/src/views/bg/bqtakepulse/BgTakepulseList.vue b/src/views/bg/bqtakepulse/BgTakepulseList.vue
index 6156782..c706d02 100644
--- a/src/views/bg/bqtakepulse/BgTakepulseList.vue
+++ b/src/views/bg/bqtakepulse/BgTakepulseList.vue
@@ -52,7 +52,7 @@
-
+
新增
@@ -92,9 +92,15 @@
办理情况
-
- {{ getFeedbackTableLoading(record) ? '加载中' : `${getFeedbackCount(record)} 条` }}
-
+
+ 加载中
+
+
+ 未开始 {{ getFeedbackStatusCount(record).notStarted }}
+ 进行中 {{ getFeedbackStatusCount(record).inProgress }}
+ 已完成 {{ getFeedbackStatusCount(record).completed }}
+ (共 {{ getFeedbackStatusCount(record).total }} 条)
+
当前事项的执行情况办理情况记录
@@ -149,6 +155,7 @@
import { defHttp } from '/@/utils/http/axios';
import { showImportValidationErrors } from '/@/utils/helper/importError';
import { useMessage } from '/@/hooks/web/useMessage';
+ import { countFeedbackStatus } from '/@/views/bg/utils/feedbackStatusCount';
import JSelectMultiple from '/@/components/Form/src/jeecg/components/JSelectMultiple.vue';
import SzSelectDept from '/@/components/Form/src/jeecg/components/SzSelectDept.vue';
import Icon from '/@/components/Icon/index';
@@ -267,6 +274,10 @@
return !!feedbackTableLoading[getFeedbackKey(record)];
}
+ function getFeedbackStatusCount(record: Recordable) {
+ return countFeedbackStatus(getFeedbackTableData(record), 'bpmStatus');
+ }
+
function clearFeedbackTableData() {
Object.keys(feedbackTableData).forEach((key) => {
delete feedbackTableData[key];
@@ -796,3 +807,15 @@
}
}
+
+
diff --git a/src/views/bg/utils/feedbackStatusCount.ts b/src/views/bg/utils/feedbackStatusCount.ts
new file mode 100644
index 0000000..6597e51
--- /dev/null
+++ b/src/views/bg/utils/feedbackStatusCount.ts
@@ -0,0 +1,22 @@
+export interface FeedbackStatusCount {
+ notStarted: number;
+ inProgress: number;
+ completed: number;
+ total: number;
+}
+
+export function countFeedbackStatus(
+ list: Recordable[] | undefined | null,
+ statusField: string,
+): FeedbackStatusCount {
+ const result: FeedbackStatusCount = { notStarted: 0, inProgress: 0, completed: 0, total: 0 };
+ if (!Array.isArray(list)) return result;
+ result.total = list.length;
+ for (const item of list) {
+ const v = String(item?.[statusField] ?? '');
+ if (v === '1') result.notStarted++;
+ else if (v === '2') result.inProgress++;
+ else if (v === '3') result.completed++;
+ }
+ return result;
+}