|
|
@@ -1,6 +1,7 @@
|
|
|
import BsTable from './Table.vue';
|
|
|
import { reactive, onMounted, onBeforeMount, toRaw } from 'vue';
|
|
|
import { set, get, isEmpty, isUndefined } from 'lodash';
|
|
|
+import { getTableDataApi } from '/@/api/system/table-api.js';
|
|
|
|
|
|
export const useBsTable = (options, tableRef) => {
|
|
|
let tableOptions = reactive(options.tableOptions);
|
|
|
@@ -39,6 +40,17 @@ export const useBsTable = (options, tableRef) => {
|
|
|
});
|
|
|
|
|
|
set(tableOptions, 'searchConfig.fields', newFields);
|
|
|
+
|
|
|
+ set(tableOptions, 'searchConfig.onSearch', async () => {
|
|
|
+ setPageNum(1);
|
|
|
+ await getTableData();
|
|
|
+ });
|
|
|
+
|
|
|
+ set(tableOptions, 'searchConfig.onReset', async () => {
|
|
|
+ setSearchParams({});
|
|
|
+ setPageNum(1);
|
|
|
+ await getTableData();
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
const toggleSearchFields = () => {
|
|
|
@@ -92,7 +104,7 @@ export const useBsTable = (options, tableRef) => {
|
|
|
const getTableData = () => {
|
|
|
options.tableSearchBeforeBiz && options.tableSearchBeforeBiz();
|
|
|
setLoading(true);
|
|
|
- return new Promise((resolve, reject) => {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
const pageNum = tableOptions?.pagerConfig.pageNum;
|
|
|
const pageSize = tableOptions?.pagerConfig.pageSize;
|
|
|
const searchParams = getSearchParams();
|
|
|
@@ -105,15 +117,22 @@ export const useBsTable = (options, tableRef) => {
|
|
|
resolve(tableOptions.gridOptions.data);
|
|
|
}, 500);
|
|
|
} else {
|
|
|
- // const resData = await getTableData(searchParams, {pageNum, pageSize});
|
|
|
- // resolve(resData);
|
|
|
|
|
|
- setTimeout(() => {
|
|
|
- setLoading(false);
|
|
|
- setTableData(data);
|
|
|
- setPageTotal(1000);
|
|
|
- resolve();
|
|
|
- }, 1000);
|
|
|
+ console.log("入参为 =====>", { pageNum, pageSize, ...searchParams })
|
|
|
+ const resData = await getTableDataApi(tableOptions?.url,{ pageNum, pageSize, ...searchParams });
|
|
|
+ const { data } = resData;
|
|
|
+ setLoading(false);
|
|
|
+ setTableData(data.list);
|
|
|
+ setPageTotal(data.total);
|
|
|
+ resolve(data);
|
|
|
+
|
|
|
+ // setTimeout(() => {
|
|
|
+ // setLoading(false);
|
|
|
+ // setTableData([{name: "12334"}]);
|
|
|
+ // setPageTotal(1000);
|
|
|
+ // resolve();
|
|
|
+ // }, 1000);
|
|
|
+
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
@@ -129,6 +148,10 @@ export const useBsTable = (options, tableRef) => {
|
|
|
const initPageEvent = () => {
|
|
|
const visible = get(tableOptions, 'pagerConfig.enable', true);
|
|
|
setPagerVisible(visible);
|
|
|
+
|
|
|
+ set(tableOptions, 'pagerConfig.onChange', async () => {
|
|
|
+ await getTableData();
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
const initSearchConfig = () => {
|
|
|
@@ -146,6 +169,12 @@ export const useBsTable = (options, tableRef) => {
|
|
|
const initToolbarConfig = () => {
|
|
|
const visible = get(tableOptions, 'toolbarConfig.enable', true);
|
|
|
setToolBarVisible(visible);
|
|
|
+
|
|
|
+ set(tableOptions, 'toolbarConfig.onRefresh', async () => {
|
|
|
+ setPageNum(1);
|
|
|
+ await getTableData();
|
|
|
+ });
|
|
|
+
|
|
|
};
|
|
|
|
|
|
const onTableBeforeMount = (callback) => {
|
|
|
@@ -173,6 +202,7 @@ export const useBsTable = (options, tableRef) => {
|
|
|
initSearchConfig();
|
|
|
onTableBeforeMount();
|
|
|
options.beforeMount && options.beforeMount();
|
|
|
+ await getTableData();
|
|
|
onTableMounted();
|
|
|
options.mounted && options.mounted();
|
|
|
});
|