Browse Source

表格优化提交

main
likunming 8 months ago
parent
commit
b699ead589
  1. 2
      io.sc.platform.core.frontend/package.json
  2. 40
      io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue

2
io.sc.platform.core.frontend/package.json

@ -1,6 +1,6 @@
{ {
"name": "platform-core", "name": "platform-core",
"version": "8.1.245", "version": "8.1.246",
"description": "前端核心包,用于快速构建前端的脚手架", "description": "前端核心包,用于快速构建前端的脚手架",
"//main": "库的主文件", "//main": "库的主文件",
"main": "dist/platform-core.js", "main": "dist/platform-core.js",

40
io.sc.platform.core.frontend/src/platform/components/grid/WGrid.vue

@ -633,6 +633,17 @@ const resetDefaultValues = () => {
console.error(error); console.error(error);
}); });
}; };
const showLoading = (msg: string = '正在处理,请稍等...') => {
$q.loading.show({
message: msg,
boxClass: 'bg-grey-2 text-grey-9',
spinnerColor: 'primary',
});
};
const hideLoading = () => {
$q.loading.hide();
};
const buttonObj = reactive({ const buttonObj = reactive({
separator: 'separator', separator: 'separator',
query: { query: {
@ -791,10 +802,19 @@ const buttonObj = reactive({
icon: 'file_download', icon: 'file_download',
labelI18nKey: 'action.export', labelI18nKey: 'action.export',
label: t('action.export'), label: t('action.export'),
click: () => { click: async () => {
showLoading();
let exportData = table.rows;
// url
if (!Tools.isEmpty(props.fetchDataUrl) || !Tools.isEmpty(props.dataUrl)) {
const fetchResult = await getExportData();
if (fetchResult && fetchResult.length > 0) {
exportData = fetchResult;
}
}
const content = [tableColumns.value.map((col) => wrapCsvValue(col.label))] const content = [tableColumns.value.map((col) => wrapCsvValue(col.label))]
.concat( .concat(
table.rows.map((row) => exportData.map((row) =>
tableColumns.value tableColumns.value
.map((col) => wrapCsvValue(typeof col.field === 'function' ? col.field(row) : row[col.field === void 0 ? col.name : col.field], col.format, row)) .map((col) => wrapCsvValue(typeof col.field === 'function' ? col.field(row) : row[col.field === void 0 ? col.name : col.field], col.format, row))
.join(','), .join(','),
@ -811,6 +831,7 @@ const buttonObj = reactive({
if (status !== true) { if (status !== true) {
NotifyManager.error(t('action.export.failed')); NotifyManager.error(t('action.export.failed'));
} }
hideLoading();
}, },
}, },
addTop: { addTop: {
@ -890,6 +911,21 @@ const expandFun = (arr, treeExpand) => {
} }
}); });
}; };
const getExportData = async () => {
let resultData = <any>[];
const reqParams: any = { pageable: false };
let urlSearchParams = buildQueryCriterias(reqParams);
const resp = await axios.get(url.fetchDataUrl || url.dataUrl, { params: urlSearchParams });
if (resp && resp.data) {
const responseData = resp.data;
if (Array.isArray(responseData)) {
resultData = responseData;
} else if (typeof responseData === 'object' && responseData.content) {
resultData = responseData.content;
}
}
return resultData;
};
const screenCols = { xs: 1, sm: 2, md: 3, lg: 4, xl: 6 }; const screenCols = { xs: 1, sm: 2, md: 3, lg: 4, xl: 6 };
const queryFormColsNumComputed = computed(() => { const queryFormColsNumComputed = computed(() => {

Loading…
Cancel
Save