feat:【antd】【crm】优化 statistics 的整体代码

This commit is contained in:
YunaiV
2025-09-30 13:16:52 +08:00
parent 0d1901abdb
commit 2d5f24c626
8 changed files with 28 additions and 17 deletions

View File

@@ -100,9 +100,10 @@ export function useGridFormSchema(): VbenFormSchema[] {
component: 'ApiSelect',
componentProps: {
api: getSimpleUserList,
allowClear: true,
labelField: 'nickname',
valueField: 'id',
placeholder: '请选择员工',
allowClear: true,
},
},
];

View File

@@ -36,8 +36,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
ajax: {
query: async (_, formValues) => {
const res = await getChartDatas(activeTabName.value, formValues);
renderEcharts(getChartOptions(activeTabName.value, res));
return await getDatas(activeTabName.value, formValues);
await renderEcharts(getChartOptions(activeTabName.value, res));
return getDatas(activeTabName.value, formValues);
},
},
},
@@ -51,12 +51,13 @@ const [Grid, gridApi] = useVbenVxeGrid({
} as VxeTableGridOptions<CrmStatisticsCustomerApi.CustomerSummaryByUser>,
});
/** tab 切换 */
async function handleTabChange(key: any) {
activeTabName.value = key;
gridApi.setGridOptions({
columns: useGridColumns(key),
});
gridApi.reload();
await gridApi.reload();
}
</script>

View File

@@ -38,10 +38,10 @@ const [Grid, gridApi] = useVbenVxeGrid({
ajax: {
query: async ({ page }, formValues) => {
const res = await getChartDatas(activeTabName.value, formValues);
renderEcharts(
await renderEcharts(
getChartOptions(activeTabName.value, active.value, res),
);
return await getDatas(activeTabName.value, {
return getDatas(activeTabName.value, {
pageNo: page.currentPage,
pageSize: page.pageSize,
...formValues,
@@ -59,6 +59,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
} as VxeTableGridOptions<CrmStatisticsFunnelApi.BusinessSummaryByDate>,
});
/** tab 切换 */
async function handleTabChange(key: any) {
activeTabName.value = key;
gridApi.setGridOptions({
@@ -67,9 +68,10 @@ async function handleTabChange(key: any) {
enabled: activeTabName.value !== 'funnelRef',
},
});
gridApi.reload();
await gridApi.reload();
}
/** 视角切换 */
function handleActive(value: boolean) {
active.value = value;
renderEcharts(

View File

@@ -65,9 +65,10 @@ export function useGridFormSchema(): VbenFormSchema[] {
component: 'ApiSelect',
componentProps: {
api: getSimpleUserList,
allowClear: true,
labelField: 'nickname',
valueField: 'id',
placeholder: '请选择员工',
allowClear: true,
},
},
];

View File

@@ -53,6 +53,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
} as VxeTableGridOptions<CrmStatisticsCustomerApi.CustomerSummaryByUser>,
});
/** tab 切换 */
async function handleTabChange(key: any) {
activeTabName.value = key;
const params = (await gridApi.formApi.getValues()) as any;
@@ -128,10 +129,12 @@ async function handleTabChange(key: any) {
100
).toFixed(2);
});
renderEcharts(getChartOptions(key, data), true);
gridApi.grid.reloadColumn(columnsData);
gridApi.grid.reloadData(tableData);
await renderEcharts(getChartOptions(key, data), true);
await gridApi.grid.reloadColumn(columnsData);
await gridApi.grid.reloadData(tableData);
}
/** 初始化加载 */
onMounted(() => {
handleTabChange(activeTabName.value);
});

View File

@@ -69,9 +69,10 @@ export function useGridFormSchema(): VbenFormSchema[] {
component: 'ApiSelect',
componentProps: {
api: getSimpleUserList,
allowClear: true,
labelField: 'nickname',
valueField: 'id',
placeholder: '请选择员工',
allowClear: true,
},
},
];

View File

@@ -38,8 +38,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
ajax: {
query: async (_, formValues) => {
const res = await getDatas(activeTabName.value, formValues);
renderLeftEcharts(getChartOptions(activeTabName.value, res).left);
renderRightEcharts(getChartOptions(activeTabName.value, res).right);
await renderLeftEcharts(getChartOptions(activeTabName.value, res).left);
await renderRightEcharts(getChartOptions(activeTabName.value, res).right);
return res;
},
},
@@ -54,12 +54,13 @@ const [Grid, gridApi] = useVbenVxeGrid({
} as VxeTableGridOptions<CrmStatisticsCustomerApi.CustomerSummaryByUser>,
});
/** tab 切换 */
async function handleTabChange(key: any) {
activeTabName.value = key;
gridApi.setGridOptions({
columns: useGridColumns(key),
});
gridApi.reload();
await gridApi.reload();
}
</script>

View File

@@ -36,7 +36,7 @@ const [Grid, gridApi] = useVbenVxeGrid({
ajax: {
query: async (_, formValues) => {
const res = await getDatas(activeTabName.value, formValues);
renderEcharts(getChartOptions(activeTabName.value, res));
await renderEcharts(getChartOptions(activeTabName.value, res));
return res;
},
},
@@ -51,12 +51,13 @@ const [Grid, gridApi] = useVbenVxeGrid({
} as VxeTableGridOptions<CrmStatisticsCustomerApi.CustomerSummaryByUser>,
});
/** tab 切换 */
async function handleTabChange(key: any) {
activeTabName.value = key;
gridApi.setGridOptions({
columns: useGridColumns(key),
});
gridApi.reload();
await gridApi.reload();
}
</script>