czh-20260710-支持统计完成事项状态以及逾期个数
This commit is contained in:
@@ -23,6 +23,7 @@ enum Api {
|
||||
bgPartymatterFeedbackEdit= '/bgpartymatter/bgPartymatter/editBgPartymatterFeedback',
|
||||
bgPartymatterFeedbackDelete = '/bgpartymatter/bgPartymatter/deleteBgPartymatterFeedback',
|
||||
bgPartymatterFeedbackDeleteBatch = '/bgpartymatter/bgPartymatter/deleteBatchBgPartymatterFeedback',
|
||||
statusStats = '/bgpartymatter/bgPartymatter/statusStats',
|
||||
}
|
||||
/**
|
||||
* 导出api
|
||||
@@ -62,6 +63,9 @@ export const getExportXlsHeadersUrl = Api.exportXlsHeaders;
|
||||
export const list = (params) =>
|
||||
defHttp.get({ url: Api.list, params });
|
||||
|
||||
export const statusStats = (params) =>
|
||||
defHttp.get({ url: Api.statusStats, params });
|
||||
|
||||
/**
|
||||
* 删除单个
|
||||
*/
|
||||
|
||||
@@ -76,6 +76,11 @@
|
||||
</a-dropdown>
|
||||
<!-- 高级查询 -->
|
||||
<super-query :config="superQueryConfig" @search="handleSuperQuery" />
|
||||
<a-space style="float: right; font-size: 14px; font-weight: bold">
|
||||
<a-tag color="warning">未开始 {{ statsData.notStarted }}</a-tag>
|
||||
<a-tag color="error">督办中 {{ statsData.inProgress }}(已逾期 {{ statsData.overdue }})</a-tag>
|
||||
<a-tag color="success">已完成 {{ statsData.completed }}</a-tag>
|
||||
</a-space>
|
||||
</template>
|
||||
<!--操作栏-->
|
||||
<template #action="{ record }">
|
||||
@@ -145,7 +150,7 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" name="bgpartymatter-bgPartymatter" setup>
|
||||
import { reactive, ref } from 'vue';
|
||||
import { reactive, ref, onMounted } from 'vue';
|
||||
import { BasicTable, TableAction } from '/@/components/Table';
|
||||
import type { BasicColumn } from '/@/components/Table';
|
||||
import { useListPage } from '/@/hooks/system/useListPage';
|
||||
@@ -160,7 +165,7 @@
|
||||
import FlowScheduleStartModalForBG from '/src/components/semri/process/FlowScheduleStartModalForBG.vue';
|
||||
import SUploadFile from '/@/components/semri/fileComponent/SUploadFile.vue';
|
||||
import { columns, superQuerySchema, bgPartymatterFeedbackColumns } from './BgPartymatter.data';
|
||||
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, getImportExcelByEasyExcelUrl, getCheckExcelByEasyExcelUrl, getExportXlsHeadersUrl, bgPartymatterFeedbackList, saveOrUpdate } from './BgPartymatter.api';
|
||||
import { list, statusStats, deleteOne, batchDelete, getImportUrl, getExportUrl, getImportExcelByEasyExcelUrl, getCheckExcelByEasyExcelUrl, getExportXlsHeadersUrl, bgPartymatterFeedbackList, saveOrUpdate } from './BgPartymatter.api';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { showImportValidationErrors } from '/@/utils/helper/importError';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
@@ -201,6 +206,7 @@
|
||||
const queryParam = reactive<any>({});
|
||||
const expandedRowKeys = ref<Array<string | number>>([]);
|
||||
const feedbackTableData = reactive<Record<string, Recordable[]>>({});
|
||||
const statsData = reactive({ notStarted: 0, inProgress: 0, overdue: 0, completed: 0 });
|
||||
const feedbackTableLoading = reactive<Record<string, boolean>>({});
|
||||
|
||||
interface DeptOption {
|
||||
@@ -387,6 +393,27 @@
|
||||
reload({ page: 1 });
|
||||
}
|
||||
|
||||
async function fetchStatusStats() {
|
||||
try {
|
||||
const params: Recordable = { meetingType: props.meetingType };
|
||||
Object.keys(queryParam).forEach((key) => {
|
||||
if (queryParam[key] !== undefined && queryParam[key] !== null && queryParam[key] !== '') {
|
||||
params[key] = queryParam[key];
|
||||
}
|
||||
});
|
||||
const res = await statusStats(params);
|
||||
if (res) {
|
||||
Object.assign(statsData, res);
|
||||
}
|
||||
} catch (e) {
|
||||
// stats fetch failure is non-critical
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
fetchStatusStats();
|
||||
});
|
||||
|
||||
/**
|
||||
* 新增事件
|
||||
*/
|
||||
|
||||
@@ -24,6 +24,7 @@ enum Api {
|
||||
bgTakepulseFeedbackEdit = '/bqtakepulse/bgTakepulse/editBgTakepulseFeedback',
|
||||
bgTakepulseFeedbackDelete = '/bqtakepulse/bgTakepulse/deleteBgTakepulseFeedback',
|
||||
bgTakepulseFeedbackDeleteBatch = '/bqtakepulse/bgTakepulse/deleteBatchBgTakepulseFeedback',
|
||||
statusStats = '/bqtakepulse/bgTakepulse/statusStats',
|
||||
}
|
||||
/**
|
||||
* 导出api
|
||||
@@ -54,6 +55,9 @@ export const queryBgTakepulseFeedbackListByMainId = (id) => defHttp.get({url: Ap
|
||||
export const list = (params) =>
|
||||
defHttp.get({url: Api.list, params});
|
||||
|
||||
export const statusStats = (params) =>
|
||||
defHttp.get({ url: Api.statusStats, params });
|
||||
|
||||
/**
|
||||
* 删除单个
|
||||
*/
|
||||
|
||||
@@ -75,6 +75,11 @@
|
||||
</a-dropdown>
|
||||
<!-- 高级查询 -->
|
||||
<super-query :config="superQueryConfig" @search="handleSuperQuery" />
|
||||
<a-space style="float: right; font-size: 14px; font-weight: bold">
|
||||
<a-tag color="warning">未开始 {{ statsData.notStarted }}</a-tag>
|
||||
<a-tag color="error">督办中 {{ statsData.inProgress }}(已逾期 {{ statsData.overdue }})</a-tag>
|
||||
<a-tag color="success">已完成 {{ statsData.completed }}</a-tag>
|
||||
</a-space>
|
||||
</template>
|
||||
<!--操作栏-->
|
||||
<template #action="{ record }">
|
||||
@@ -144,14 +149,14 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts" name="bqtakepulse-bgTakepulse" setup>
|
||||
import {ref, reactive} from 'vue';
|
||||
import {ref, reactive, onMounted} from 'vue';
|
||||
import {BasicTable, TableAction} from '/@/components/Table';
|
||||
import type { BasicColumn } from '/@/components/Table';
|
||||
import { useListPage } from '/@/hooks/system/useListPage'
|
||||
import {useModal} from '/@/components/Modal';
|
||||
import BgTakepulseModal from './components/BgTakepulseModal.vue'
|
||||
import {columns, superQuerySchema} from './BgTakepulse.data';
|
||||
import {list, deleteOne, getImportUrl, getExportUrl, getImportExcelByEasyExcelUrl, getCheckExcelByEasyExcelUrl, getExportXlsHeadersUrl, saveOrUpdate, bgTakepulseFeedbackList} from './BgTakepulse.api';
|
||||
import {list, statusStats, deleteOne, getImportUrl, getExportUrl, getImportExcelByEasyExcelUrl, getCheckExcelByEasyExcelUrl, getExportXlsHeadersUrl, saveOrUpdate, bgTakepulseFeedbackList} from './BgTakepulse.api';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { showImportValidationErrors } from '/@/utils/helper/importError';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
@@ -176,6 +181,7 @@
|
||||
const queryParam = reactive<any>({});
|
||||
const expandedRowKeys = ref<Array<string | number>>([]);
|
||||
const feedbackTableData = reactive<Record<string, Recordable[]>>({});
|
||||
const statsData = reactive({ notStarted: 0, inProgress: 0, overdue: 0, completed: 0 });
|
||||
const feedbackTableLoading = reactive<Record<string, boolean>>({});
|
||||
//注册model
|
||||
const [registerModal, {openModal}] = useModal();
|
||||
@@ -335,6 +341,27 @@
|
||||
reload({ page: 1 });
|
||||
}
|
||||
|
||||
async function fetchStatusStats() {
|
||||
try {
|
||||
const params: Recordable = {};
|
||||
Object.keys(queryParam).forEach((key) => {
|
||||
if (queryParam[key] !== undefined && queryParam[key] !== null && queryParam[key] !== '') {
|
||||
params[key] = queryParam[key];
|
||||
}
|
||||
});
|
||||
const res = await statusStats(params);
|
||||
if (res) {
|
||||
Object.assign(statsData, res);
|
||||
}
|
||||
} catch (e) {
|
||||
// stats fetch failure is non-critical
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
fetchStatusStats();
|
||||
});
|
||||
|
||||
/**
|
||||
* 新增事件
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user