提交 173b6c8f 编写于 作者: Shine-zwj's avatar Shine-zwj

update:更新

上级 33a208df
{{#each items as | formDetail |}}
{
{{formDetail.codeName}}: {
caption: '{{formDetail.caption}}',
codeName: '{{formDetail.codeName}}',
name: '{{formDetail.name}}',
disabled: false,
visible: true,
detailStyle: '{{formDetail.detailStyle}}',
detailType: '{{formDetail.detailType}}',
showCaption: {{#if formDetail.showCaption}}true{{else}}false{{/if}},
{{#if (eq formDetail.detailType "FORMITEM")}}
dataType: '{{formDetail.dataType}}',
detailStyle: '{{formDetail.detailStyle}}',
{{#formDetail.resetItemName}}
{{#if formDetail.resetItemName}}
resetItemName: '{{formDetail.resetItemName}}',
{{/formDetail.resetItemName}}
{{#formDetail.valueItemName}}
{{/if}}
{{#if formDetail.valueItemName}}
valueItemName: '{{formDetail.valueItemName}}',
{{/formDetail.valueItemName}}
{{/if}}
{{/if}}
{{#if (and (eq formDetail.detailType "BUTTON") formDetail.psUIAction)}}
{{#formDetail.psUIAction}}
uIAction: {
uIActionType: '{{uIActionType}}',
uIActionTag: '{{uIActionTag}}',
}
{{/formDetail.psUIAction}}
{{/if}}
{{#if (eq formDetail.detailType "GROUPPANEL")}}
{{/if}}
{{#each formDetail.psDEFDGroupLogics as | groupLogic |}}
groupLogics: {
name: '{{groupLogic.name}}',
......@@ -27,7 +42,6 @@
],
}
{{/each}}
{{/if}}
},
{{#if formDetail.psDEFormDetails}}
{{>(lookup 'FORMDETAILSMODEL') items=formDetail.psDEFormDetails}}
......
......@@ -13,7 +13,7 @@ export interface GridControlState extends MainControlState {
* @type {IParam[]}
* @memberof GridControlState
*/
items: IParam[];
data: IParam[];
/**
* @description 表格列模型
......@@ -79,93 +79,30 @@ export interface GridControlState extends MainControlState {
selectFirstDefault: boolean;
/**
* @description 当前页
* @type {number}
* @memberof GridControlState
*/
current: number;
/**
* @description 分页大小
* @type {number}
* @memberof GridControlState
*/
pageSize: number;
/**
* @description 是否启用分页
* @type {boolean}
* @memberof GridControlState
*/
enablePagingBar: boolean;
/**
* @description 数据聚合
* @description 表格聚合
* @type {IParam}
* @memberof GridControlState
*/
dataAgg: string[];
/**
* @description 聚合模式
* @type {string}
* @memberof GridControlState
*/
aggMode: string;
/**
* @description 聚合实体
* @type {string}
* @memberof GridControlState
*/
aggEntity: string,
gridAgg: IParam;
/**
* @description 聚合数据集
* @type {string}
* @memberof GridControlState
*/
aggDataSet: string,
/**
* @description 分组模式
* @type {string}
* @memberof GridControlState
*/
groupMode: string;
/**
* @description 分组属性
* @type {string}
* @memberof GridControlState
*/
groupField: string;
/**
* @description 分组代码表
* @type {*}
* @memberof GridControlState
*/
groupCodeList: any;
/**
* @description 禁用排序
* @type {boolean}
* @description 表格分组
* @type {IParam}
* @memberof GridControlState
*/
noSort: boolean;
gridGroup: IParam;
/**
* @description 排序方向
* @type {string}
* @description 表格排序
* @type {IParam}
* @memberof GridControlState
*/
minorSortDir: string;
gridSort: IParam;
/**
* @description 排序属性
* @type {string}
* @description 表格分页
* @type {IParam}
* @memberof GridControlState
*/
minorSortPSDEF: string;
gridPaging: IParam;
}
......@@ -83,22 +83,21 @@ export class GridControl extends MainControl {
*/
public autoGroup() {
const { gridGroup } = this.controlState;
const { data, columnsModel } = toRefs(this.controlState);
const { groupField } = gridGroup;
const dataRef = toRef(this.controlState, "data");
let autoGroup: string[] = [];
dataRef.value.forEach((item: IParam) => {
data.value.forEach((item: IParam) => {
if (item.hasOwnProperty(groupField)) {
autoGroup.push(item[groupField]);
}
})
autoGroup = [...new Set(autoGroup)];
if (autoGroup.length > 0) {
const columnsModelRef = toRef(this.controlState, "columnsModel");
const groupColumn = this.getGridColumn(columnsModelRef.value, "GROUP");
const groupColumn = this.getGridColumn(columnsModel.value, "GROUP");
const gridData: IParam[] = [];
autoGroup.forEach((group: string, index: number) => {
const children: IParam[] = [];
dataRef.value.forEach((item: IParam) => {
data.value.forEach((item: IParam) => {
if (Object.is(group, item[groupField])) {
children.push(item);
}
......@@ -109,7 +108,7 @@ export class GridControl extends MainControl {
children: deepCopy(children),
})
});
dataRef.value = gridData;
data.value = gridData;
}
}
......@@ -119,18 +118,17 @@ export class GridControl extends MainControl {
*/
public async codeListGroup() {
const { gridGroup } = this.controlState;
const { data, columnsModel } = toRefs(this.controlState);
const { groupField } = gridGroup;
const dataRef = toRef(this.controlState, "data");
// TODO 代码表数据
let codeListGroup: IParam[] = [];
if (codeListGroup.length > 0) {
const columnsModelRef = toRef(this.controlState, "columnsModel");
const groupColumn = this.getGridColumn(columnsModelRef.value, "GROUP");
const groupColumn = this.getGridColumn(columnsModel.value, "GROUP");
const gridData: IParam[] = [];
const otherGroup: IParam[] = [];
codeListGroup.forEach((group: IParam) => {
const children: IParam[] = [];
dataRef.value.forEach((item: IParam) => {
data.value.forEach((item: IParam) => {
if (Object.is(group.value, item[groupField])) {
children.push(item);
}
......@@ -141,7 +139,7 @@ export class GridControl extends MainControl {
children: deepCopy(children),
})
});
dataRef.value.forEach((item: IParam) => {
data.value.forEach((item: IParam) => {
const index: number = codeListGroup.findIndex((_item: IParam) => Object.is(item[groupField], _item.value));
if (index < 0) {
otherGroup.push(item);
......@@ -154,7 +152,7 @@ export class GridControl extends MainControl {
children: deepCopy(otherGroup),
})
}
dataRef.value = gridData;
data.value = gridData;
}
}
......@@ -163,11 +161,10 @@ export class GridControl extends MainControl {
* @memberof GridControl
*/
public calcGridAuthState() {
const dataRef = toRef(this.controlState, "data");
const columnsModelRef = toRef(this.controlState, "columnsModel");
let columnModel = this.getGridColumn(columnsModelRef.value, "UAGRIDCOLUMN");
const { data, columnsModel } = toRefs(this.controlState);
let columnModel = this.getGridColumn(columnsModel.value, "UAGRIDCOLUMN");
if (columnModel) {
dataRef.value.forEach((item: IParam) => {
data.value.forEach((item: IParam) => {
Object.assign(item, {
[columnModel.dataIndex]: this.getActionAuthState(item),
})
......@@ -180,8 +177,8 @@ export class GridControl extends MainControl {
* @memberof GridControl
*/
public setGridColSpan() {
const columnsModelRef = toRef(this.controlState, "columnsModel");
columnsModelRef.value.forEach((columnModel: IParam) => {
const { columnsModel } = toRefs(this.controlState);
columnsModel.value.forEach((columnModel: IParam) => {
const customRender = ({text, record, index, column}: IParam) => {
const option = {
props: {} as IParam,
......@@ -189,7 +186,7 @@ export class GridControl extends MainControl {
if (record.children) {
if (Object.is(column.columnType, "GROUP")) {
Object.assign(option.props,{
colSpan: columnsModelRef.value.length,
colSpan: columnsModel.value.length,
});
} else {
Object.assign(option.props,{
......@@ -283,12 +280,12 @@ export class GridControl extends MainControl {
* @memberof GridControl
*/
public async handleDataAgg() {
const { gridPaging, gridGroup } = this.controlState;
const gridAggRef = toRef(this.controlState, "gridAgg");
let { aggMode, aggData } = gridAggRef.value;
const { gridPaging, gridGroup, columnsModel } = this.controlState;
const { gridAgg } = toRefs(this.controlState);
let { aggMode, aggData } = gridAgg.value;
const { enableGroup } = gridGroup;
if (!Object.is(aggMode, "NONE")) {
const { enablePagingBar, current, pageSize} = gridPaging;
const { enablePagingBar, current, pageSize } = gridPaging;
let dataAgg: IParam[] = [];
if (Object.is(aggMode, "PAGE")) {
const dataRef = toRef(this.controlState, "data");
......@@ -310,16 +307,16 @@ export class GridControl extends MainControl {
})
dataAgg = _dataAgg;
}
const columnsModelRef = toRef(this.controlState, "columnsModel");
const columnsModel: IParam[] = [];
columnsModelRef.value.forEach((column: IParam) => {
const _columnsModel: IParam[] = [];
columnsModel.forEach((column: IParam) => {
if (!Object.is(column.columnType, "GROUPGRIDCOLUMN")) {
columnsModel.push(column);
_columnsModel.push(column);
}
});
columnsModel.forEach((column: IParam) => {
_columnsModel.forEach((column: IParam) => {
console.log(this.getAggValue(dataAgg, column));
aggData.push(this.getAggValue(dataAgg, column))
})
});
}
}
......@@ -328,23 +325,22 @@ export class GridControl extends MainControl {
* @memberof GridControl
*/
public handleDefaultSelect() {
const { selectedData, selectFirstDefault, controlName } = this.controlState;
const { selectedData, selectFirstDefault, controlName, data } = this.controlState;
const { selectedRowKeys } = toRefs(this.controlState);
if (selectedData?.length > 0) {
const selectedRowKeys: string[] = [];
const selectedRowKeysRef = toRef(this.controlState, "selectedRowKeys");
const _selectedRowKeys: string[] = [];
selectedData.forEach((selected: IParam) => {
if (selected.srfkey) {
selectedRowKeys.push(selected.srfkey);
_selectedRowKeys.push(selected.srfkey);
}
});
selectedRowKeysRef.value = selectedRowKeys;
selectedRowKeys.value = _selectedRowKeys;
} else if (selectFirstDefault) {
const dataRef = toRef(this.controlState, "data");
if (dataRef.value[0]) {
if (data[0]) {
this.emit("ctrlEvent", {
tag: controlName,
action: "selectionChange",
data: [deepCopy(dataRef.value[0])],
data: [deepCopy(data[0])],
});
}
}
......@@ -363,16 +359,15 @@ export class GridControl extends MainControl {
const {
controlService, context, viewParams, showBusyIndicator, controlAction, gridSort
} = this.controlState;
const dataRef = toRef(this.controlState, "data");
const gridPagingRef = toRef(this.controlState, "gridPaging");
if(!controlAction.loadAction){
const { gridPaging, data } = toRefs(this.controlState);
if (!controlAction.loadAction) {
return;
}
const { noSort, minorSortDir, minorSortPSDEF} = gridSort;
let { enablePagingBar, pagination, current, pageSize} = gridPagingRef.value;
const { noSort, minorSortDir, minorSortPSDEF } = gridSort;
let { enablePagingBar, pagination, current, pageSize } = gridPaging.value;
const arg: any = { ...opt };
let _context = deepCopy(context ? context : {});
let _viewParams = deepCopy(viewParams ? context : {});
let _viewParams = deepCopy(viewParams ? viewParams : {});
if (noSort && minorSortDir && minorSortPSDEF) {
Object.assign(_viewParams, { sort: `${minorSortPSDEF},${minorSortDir}`});
}
......@@ -386,7 +381,7 @@ export class GridControl extends MainControl {
{ action: controlAction.loadAction, isLoading: showBusyIndicator}
);
if (response.status || response.status == 200) {
dataRef.value = response.data;
data.value = response.data;
if (enablePagingBar) {
pagination['total'] = response.total;
}
......@@ -487,26 +482,26 @@ export class GridControl extends MainControl {
const remove = async (opt: IParam[] = []) => {
try {
const { controlService, context, viewParams, showBusyIndicator, controlAction, appDeCodeName } = this.controlState;
const { data } = toRefs(this.controlState);
if (!controlAction.removeAction) {
return;
}
const dataRef = toRef(this.controlState, "data");
const data: IParam[] = [];
const _data: IParam[] = [];
opt.forEach((item: IParam, index: number) => {
if (Object.is(item.srfuf, "0")) {
dataRef.value.some((val: any, num: number) => {
data.value.some((val: any, num: number) => {
if (JSON.stringify(val) == JSON.stringify(item)) {
dataRef.value.splice(num, 1);
data.value.splice(num, 1);
return true;
}
});
} else {
data.push(opt[index]);
_data.push(opt[index]);
}
});
if (data.length > 0) {
if (_data.length > 0) {
const keys: string[] = [];
data.forEach((item: IParam) => {
_data.forEach((item: IParam) => {
keys.push(item.srfkey);
});
const _removeAction = keys.length > 1 ? "removeBatch" : controlAction.removeAction;
......@@ -561,10 +556,10 @@ export class GridControl extends MainControl {
const newRow = async (opt: any = {}) => {
try {
const { controlService, context, viewParams, showBusyIndicator, controlAction } = this.controlState;
const { data } = toRefs(this.controlState);
if (!controlAction.loadDraftAction) {
return;
}
const dataRef = toRef(this.controlState, "data");
let _context = deepCopy(context);
let _viewParams = deepCopy(viewParams);
const arg: any = {...opt};
......@@ -575,7 +570,7 @@ export class GridControl extends MainControl {
{ action: controlAction.loadDraftAction, isLoading: showBusyIndicator },
);
if (response.status || response.status == 200) {
dataRef.value = [...dataRef.value,[response.data]];
data.value = [...data.value,[response.data]];
}
} catch (error) {
// TODO 错误异常处理
......@@ -608,9 +603,8 @@ export class GridControl extends MainControl {
*/
public useCustom(props: GridControlProps) {
const { controlName, selectFirstDefault, rowEditState, rowActiveMode } = this.controlState;
const selectedRowKeysRef = toRef(this.controlState, "selectedRowKeys");
const gridPagingRef = toRef(this.controlState, "gridPaging");
let { current, pageSize } = gridPagingRef.value;
const { selectedRowKeys, gridPaging } = toRefs(this.controlState);
let { current, pageSize } = gridPaging.value;
// 滚动条配置
const scrollOption = computed(() => {
return {
......@@ -632,7 +626,7 @@ export class GridControl extends MainControl {
return {
onClick: () => {
if (!rowEditState) {
selectedRowKeysRef.value = [record.srfkey];
selectedRowKeys.value = [record.srfkey];
if (!record.children) {
this.emit("ctrlEvent",{ tag: controlName, action: "selectionChange", data: [deepCopy(record)] })
if (Object.is(rowActiveMode, 1)) {
......@@ -655,10 +649,10 @@ export class GridControl extends MainControl {
}
return {
columnWidth: 90,
selectedRowKeys: selectedRowKeysRef.value,
selectedRowKeys: selectedRowKeys.value,
checkStrictly: props.multiple ? false : true,
onChange: (selectedRowKeys: string[], selectedRows: IParam[]) => {
selectedRowKeysRef.value = selectedRowKeys;
onChange: (_selectedRowKeys: string[], selectedRows: IParam[]) => {
selectedRowKeys.value = _selectedRowKeys;
const selection: IParam[] = [];
selectedRows.forEach((select: IParam) => {
if (!select.children) {
......
......@@ -52,11 +52,11 @@ export const CtrlConfig = {
controlName: '{{ctrl.name}}',
controlService: new EditFormService<ControlVO>(ControlVO, new {{pascalCase ctrl.psAppDataEntity.codeName}}Service() ),
data: new ControlVO({}),
formDetails: [
formDetails: {
{{#each ctrl.psDEFormPages as | FormPage | }}
{{>(lookup 'FORMDETAILSMODEL') items=FormPage.psDEFormDetails}}
{{/each}}
],
},
rules: {
{{#each ctrl.psDEFormEditItemVRs as | ruleItem |}}
{{#neq ruleItem 2}}
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册