fix: 调整报表

This commit is contained in:
sy2084 2024-07-17 21:30:30 +08:00
parent dfa40d207f
commit 91832d1e8c
8 changed files with 42 additions and 29 deletions

View File

@ -78,7 +78,6 @@ watch(
}, },
); );
const toFilt = () => { const toFilt = () => {
const cloneFilter = _.cloneDeep(props.filterConfig); const cloneFilter = _.cloneDeep(props.filterConfig);
const filter = cloneFilter const filter = cloneFilter
@ -89,8 +88,8 @@ const toFilt = () => {
return item.type === 'time' ? { return item.type === 'time' ? {
name: item.name, name: item.name,
type: item.type, type: item.type,
start_time: dateType.value === 'month' ? filterData.value[item.name][0].format('YYYY-MM') : filterData.value[item.name][0].format('YYYY-MM-DD'), start_time: filterData.value[item.name][0].format('YYYY-MM-DD'),
end_time: dateType.value === 'month' ? filterData.value[item.name][1].format('YYYY-MM') : filterData.value[item.name][1].format('YYYY-MM-DD'), end_time: filterData.value[item.name][1].format('YYYY-MM-DD'),
date_type: dateType.value, date_type: dateType.value,
} : { } : {
name: item.name, name: item.name,

View File

@ -49,7 +49,7 @@ const routeList: RouteType[] = [
path: 'module-cfg', path: 'module-cfg',
name: 'module-cfg', name: 'module-cfg',
component: () => import('@/views/config-manage/module-cfg/index.vue'), component: () => import('@/views/config-manage/module-cfg/index.vue'),
meta: { title: '数据配置' }, meta: { title: '数据来源配置' },
isMenu: true, isMenu: true,
children: [], children: [],
}, },

View File

@ -12,6 +12,7 @@
placeholder="请选择所属项目" placeholder="请选择所属项目"
v-model:value="formData.project_id" v-model:value="formData.project_id"
:options="projectSelect" :options="projectSelect"
@change="toGetDbTable"
/> />
</a-form-item> </a-form-item>
<a-form-item label="数据来源" name="modular_name"> <a-form-item label="数据来源" name="modular_name">
@ -49,7 +50,7 @@
name="table" name="table"
> >
<a-select <a-select
placeholder="请选择数据表" placeholder="请先选择项目再选择数据表"
v-model:value="formData.table" v-model:value="formData.table"
:options="tableTypes" :options="tableTypes"
/> />
@ -131,12 +132,12 @@ watch(
} }
); );
onMounted(() => { // onMounted(() => {
toGetDbTable(); // toGetDbTable();
}); // });
const toGetDbTable = () => { const toGetDbTable = () => {
getDbTableSelect().then((res) => { getDbTableSelect({ projectId: formData.value.project_id }).then((res) => {
tableTypes.value = res.data; tableTypes.value = res.data;
}); });
}; };

View File

@ -1,6 +1,6 @@
export const moduleCfgCols = [ export const moduleCfgCols = [
{ dataIndex: 'modular_id', title: '编号', align: 'center'}, { dataIndex: 'modular_id', title: '编号', align: 'center'},
{ dataIndex: 'modular_name', title: '数据名称', align: 'center'}, { dataIndex: 'modular_name', title: '数据来源名称', align: 'center'},
{ dataIndex: 'project_name', title: '项目名称', align: 'center'}, { dataIndex: 'project_name', title: '项目名称', align: 'center'},
{ dataIndex: 'is_show', title: '展示状态', align: 'center'}, { dataIndex: 'is_show', title: '展示状态', align: 'center'},
{ dataIndex: 'original_type_handle', title: '数据源类型', align: 'center'}, { dataIndex: 'original_type_handle', title: '数据源类型', align: 'center'},

View File

@ -4,7 +4,7 @@
<a-space> <a-space>
<a-input <a-input
v-model:value="modularName" v-model:value="modularName"
placeholder="请输入数据名称" placeholder="请输入数据来源名称"
allow-clear allow-clear
style="width: 200px" style="width: 200px"
@change="search" @change="search"

View File

@ -54,10 +54,13 @@ export function getProjectSelect() {
}); });
} }
// 数据表下拉 // 数据下拉
export function getDbTableSelect() { export function getDbTableSelect({ projectId }) {
return get({ return get({
url: `/api/v1/modular/get-database-table-drop`, url: `/api/v1/modular/get-database-table-drop`,
params: {
project_id: projectId,
},
}); });
} }

View File

@ -14,7 +14,7 @@
/> />
</a-form-item> </a-form-item>
<a-form-item label="项目标识" name="mark"> <a-form-item label="项目标识" name="mark">
<a-input placeholder="请输入项目标识例如oa" /> <a-input placeholder="请输入项目标识例如oa" v-model:value="formData.mark" />
</a-form-item> </a-form-item>
<a-form-item label="展示状态" name="is_show"> <a-form-item label="展示状态" name="is_show">
<a-switch <a-switch

View File

@ -106,7 +106,7 @@
/> />
</div> </div>
</div> </div>
<y-chart v-else-if="previewData.type === 'chart'" :chart-cfg="previewData.chartCfg"></y-chart> <y-chart v-else-if="previewData.type === 'chart'" :chart-cfg="previewData.chartCfg" :filter-config="previewData.filter" @toFilt="toPreview"></y-chart>
<div class="preview-area" v-else> <div class="preview-area" v-else>
<div><BarChartOutlined /></div> <div><BarChartOutlined /></div>
<div>预览区</div> <div>预览区</div>
@ -165,7 +165,8 @@ const previewData = reactive({
columnConfig: [], // columnConfig: [], //
dataList: [], // dataList: [], //
filterData: {}, filterData: {},
chartCfg: {}, config: {},
filter: [],
page: 1, page: 1,
perPage: 20, perPage: 20,
total: 0, total: 0,
@ -246,9 +247,12 @@ const resetPreviewData = () => {
previewData.total = 0; previewData.total = 0;
}; };
const toPreview = () => { const toPreview = ({filter}) => {
previewLoading.value = true; previewLoading.value = true;
const filter = previewData.filterConfig let filterData
if (!filter) {
filterData = previewData.filterConfig
.filter((item) => { .filter((item) => {
return previewData.filterData[item.name] !== undefined; return previewData.filterData[item.name] !== undefined;
}) })
@ -259,12 +263,17 @@ const toPreview = () => {
value: previewData.filterData[item.name], value: previewData.filterData[item.name],
}; };
}); });
} else {
filterData = filter;
}
console.log('filterData',filterData)
preview({ preview({
modularId: modularId.value, modularId: modularId.value,
fieldIds: fieldIds.value.toString(), fieldIds: fieldIds.value.toString(),
page: previewData.page, page: previewData.page,
perPage: previewData.perPage, perPage: previewData.perPage,
filter, filter: filterData,
showTypeId: showTypeId.value, showTypeId: showTypeId.value,
xDataId: xDataId.value?.toString(), xDataId: xDataId.value?.toString(),
yDataId: yDataId.value?.toString(), yDataId: yDataId.value?.toString(),
@ -283,6 +292,7 @@ const toPreview = () => {
previewData.total = res.data.count; previewData.total = res.data.count;
} else { } else {
previewData.chartCfg = res.data.config; previewData.chartCfg = res.data.config;
previewData.filter = res.data.filter;
} }
}) })
.finally(() => { .finally(() => {