feat(xispeak): 反馈办理情况统计与脉搏一致

This commit is contained in:
wsm
2026-08-19 15:32:22 +08:00
parent 1d1846dcb6
commit ec79c4d6e7
@@ -1,12 +1,11 @@
<template>
<a-modal
v-model:open="visible"
:title="title"
:width="width"
centered
:top="80"
:footer="null"
:maskClosable="true"
:bodyStyle="{ maxHeight: '70vh', overflowY: 'auto', padding: '16px 24px 20px' }"
:bodyStyle="{ maxHeight: '70vh', overflowY: 'auto', padding: '4px 24px 20px' }"
wrapClassName="xispeak-detail-modal"
destroyOnClose
>
@@ -66,12 +65,15 @@
<Icon icon="ant-design:message-outlined" />
</span>
<span>办理情况</span>
<a-tag class="feedback-summary-tag"> {{ total }} </a-tag>
<a-tag class="feedback-summary-tag" color="success">已完成 {{ done }} </a-tag>
<a-tag class="feedback-summary-tag" color="warning" style="color: #8c6900">未开始 {{ count.notStarted }}</a-tag>
<a-tag class="feedback-summary-tag" color="error">进行中 {{ count.inProgress }}已逾期 {{ count.overdue }}</a-tag>
<a-tag class="feedback-summary-tag" color="success">已完成 {{ count.completed }}</a-tag>
<a-tag class="feedback-summary-tag"> {{ count.total }} </a-tag>
</div>
<div class="feedback-summary-desc">当前事项的落实情况反馈记录</div>
</div>
<a-table
class="feedback-table"
rowKey="id"
size="small"
bordered
@@ -111,10 +113,10 @@
import BgXiSpeakFeedbackDetailModal from './BgXiSpeakFeedbackDetailModal.vue';
import { bgXiSpeakFeedbackList } from '../BgXiSpeak.api';
import { feedbackStatusRowClassName } from '/@/views/bg/utils/feedbackStatusRender';
import { countFeedbackStatus } from '/@/views/bg/utils/feedbackStatusCount';
import type { BasicColumn } from '/@/components/Table';
const visible = ref(false);
const title = ref('详情');
const width = 1100;
const activeKey = ref('item');
const record = ref<Recordable>({});
@@ -209,8 +211,7 @@
{ title: '操作', dataIndex: 'action', key: 'action', align: 'center', width: 90, fixed: 'right' },
];
const total = computed(() => feedbackList.value.length);
const done = computed(() => feedbackList.value.filter((item) => item.completionStatus_dictText === '已完成').length);
const count = computed(() => countFeedbackStatus(feedbackList.value, 'completionStatus', 'deadline'));
async function loadFeedback(mainId: string | number) {
feedbackLoading.value = true;
@@ -235,7 +236,6 @@
function open(currentRecord: Recordable) {
record.value = currentRecord || {};
title.value = '详情';
activeKey.value = 'item';
visible.value = true;
if (currentRecord?.id !== undefined && currentRecord?.id !== null && currentRecord?.id !== '') {