wangshaoping 10 months ago
parent
commit
bc737b0b8f
  1. 2
      io.sc.platform.core.frontend/package.json
  2. 24
      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.187", "version": "8.1.188",
"description": "前端核心包,用于快速构建前端的脚手架", "description": "前端核心包,用于快速构建前端的脚手架",
"//main": "库的主文件", "//main": "库的主文件",
"main": "dist/platform-core.js", "main": "dist/platform-core.js",

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

@ -20,6 +20,7 @@
:table-style="tableHeightComputed" :table-style="tableHeightComputed"
:row-key="rowKey_" :row-key="rowKey_"
:visible-columns="visibleColumnsComputed" :visible-columns="visibleColumnsComputed"
:hide-bottom="pageable ? false : true"
@request="onRequest" @request="onRequest"
@fullscreen="tableFullscreenFun" @fullscreen="tableFullscreenFun"
> >
@ -283,6 +284,13 @@ const props = defineProps({
treeRelationship: { type: String, default: 'parent' }, // parent, childrenparentchildren treeRelationship: { type: String, default: 'parent' }, // parent, childrenparentchildren
primaryKey: { type: String, default: 'id' }, // APIRestCrudControllerupdate primaryKey: { type: String, default: 'id' }, // APIRestCrudControllerupdate
foreignKey: { type: String, default: 'parent' }, // foreignKey: { type: String, default: 'parent' }, //
sortBy: {
// ['userName', '-lastModifyDate']-
type: Array,
default: () => {
return [];
},
},
queryCriteria: { queryCriteria: {
// //
type: Object, type: Object,
@ -470,6 +478,7 @@ watch(
tableColumns.value = newVal; tableColumns.value = newVal;
tableColumnsMap.value = arrayToMap('name', tableColumns.value); tableColumnsMap.value = arrayToMap('name', tableColumns.value);
extractTableColumns.value = extractTableColumnsProps(); extractTableColumns.value = extractTableColumnsProps();
handlerMoreRowColumnTitle();
}, },
); );
const queryFormFieldsMap = arrayToMap('name', props.queryFormFields); const queryFormFieldsMap = arrayToMap('name', props.queryFormFields);
@ -933,8 +942,8 @@ const state = reactive({
ellipses: false, // ellipses: false, //
maxPages: 5, // 0 maxPages: 5, // 0
}, },
sortBy: props.pagination.sortBy || '', sortBy: '',
descending: props.pagination.descending || false, descending: false,
reqPageStart: props.pagination.reqPageStart || 0, reqPageStart: props.pagination.reqPageStart || 0,
page: 1, page: 1,
rowsPerPage: props.pagination.rowsPerPage || 10, rowsPerPage: props.pagination.rowsPerPage || 10,
@ -1011,8 +1020,8 @@ type MoreColumnTitleType = {
parents: any; // name parents: any; // name
}; };
// map // map
const moreColumnTitleMap = new Map<string, MoreColumnTitleType>(); let moreColumnTitleMap = new Map<string, MoreColumnTitleType>();
const allColumnMap = new Map(); let allColumnMap = new Map();
// map // map
const columnToMap = (column: any) => { const columnToMap = (column: any) => {
@ -1082,6 +1091,8 @@ function findParents(arrData: any, name: any) {
} }
const handlerMoreRowColumnTitle = () => { const handlerMoreRowColumnTitle = () => {
moreColumnTitleMap = new Map<string, MoreColumnTitleType>();
allColumnMap = new Map();
tableColumns.value.forEach((tableColumn: any) => { tableColumns.value.forEach((tableColumn: any) => {
columnToMap(tableColumn); columnToMap(tableColumn);
}); });
@ -1136,6 +1147,7 @@ const handlerMoreRowColumnTitle = () => {
} }
const arr = Array.from(map); const arr = Array.from(map);
columnTitleState.columnTitleArr = [];
arr.sort((a, b) => a[0] - b[0]); arr.sort((a, b) => a[0] - b[0]);
arr.forEach((item) => { arr.forEach((item) => {
columnTitleState.columnTitleArr.push(item[1]); columnTitleState.columnTitleArr.push(item[1]);
@ -1340,6 +1352,8 @@ const requestHandler = async (ops) => {
} else { } else {
reqParams.sortBy = ops.pagination.sortBy; reqParams.sortBy = ops.pagination.sortBy;
} }
} else if (props.sortBy && props.sortBy.length > 0) {
reqParams.sortBy = props.sortBy;
} }
// RestCrudController // RestCrudController
@ -1365,7 +1379,7 @@ const onRequest = async (ops: any) => {
state.pagination.rowsNumber = responseData.length; state.pagination.rowsNumber = responseData.length;
} else if (typeof responseData === 'object' && responseData.content) { } else if (typeof responseData === 'object' && responseData.content) {
if (props.pageable) { if (props.pageable) {
state.pagination.page = state.pagination.reqPageStart === 0 ? responseData.number + 1 : responseData.number; state.pagination.page = state.pagination.reqPageStart === 0 && responseData.number === 0 ? responseData.number + 1 : responseData.number;
state.pagination.rowsPerPage = responseData.size || state.pagination.rowsPerPage; state.pagination.rowsPerPage = responseData.size || state.pagination.rowsPerPage;
} }
state.pagination.rowsNumber = responseData.totalElements; state.pagination.rowsNumber = responseData.totalElements;

Loading…
Cancel
Save