提交 c8211490 编写于 作者: tony001's avatar tony001

update:更新

上级 3c2a1f68
......@@ -130,25 +130,25 @@ export class PanelContainerModel extends PanelDetailModel {
const nullData = {};
switch (this.dataRegionType) {
case 'LOGINFORM':
this.setData(nullData);
this.data = nullData;
break;
case 'INHERIT':
if (!this.parentName) {
this.setData(nullData);
this.data = nullData;
} else {
const parentItem = this.panel.layoutModelDetails[this.parentName];
if (this.parentName) {
if (parentItem) {
if (parentItem.dataRegionType === 'MULTIDATA' && parentItem['data'] && parentItem['data'].length > 0) {
this.setData(parentItem.getData()[this.getIndex()]);
this.data = parentItem.getData()[this.getIndex()];
} else {
this.setData(parentItem.getData());
this.data = parentItem.getData();
}
}
}
break;
case 'SINGLEDATA':
case 'MULTIDATA':
this.setData(await this.loadData(context, viewParams));
this.data = await this.loadData(context, viewParams);
break;
default:
console.warn(`${this.dataRegionType}数据域未实现`);
......@@ -187,4 +187,67 @@ export class PanelContainerModel extends PanelDetailModel {
}
return data;
}
/**
* 设置数据
*
* @param {*} args
* @memberof PanelContainerModel
*/
public setData(args: any) {
const { name, value, index } = args;
switch (this.dataRegionType) {
case 'LOGINFORM':
this.data[name] = value;
break;
case 'INHERIT':
this.data[name] = value;
if (this.parentName) {
const parentItem = this.panel.layoutModelDetails[this.parentName];
this.data[name] = value;
if (parentItem) {
if (parentItem.dataRegionType && parentItem.dataRegionType === "MULTIDATA") {
// 多数据域第一层子项传整条数据值
parentItem.setData({ name, value: this.data, index });
} else {
parentItem.setData({ name, value, index });
}
}
}
break;
case 'SINGLEDATA':
this.data[name] = value;
break;
case 'MULTIDATA':
this.data[index] = value;
break;
default:
this.data[name] = value;
break;
}
}
/**
* 重置当前项数据
*
* @memberof PanelContainerModel
*/
public reSetData() {
switch (this.dataRegionType) {
case 'LOGINFORM':
case 'SINGLEDATA':
this.data = {};
break;
case 'INHERIT':
case 'USER':
this.data = {};
break;
case 'MULTIDATA':
this.data = [];
break;
default:
this.data = {};
break;
}
}
}
\ No newline at end of file
......@@ -8,6 +8,14 @@ import { Util } from "@/utils";
*/
export class PanelDetailModel {
/**
* 类型 视图布局/项布局
*
* @type {('VIEWLAYOUT' | 'ITEMLAYOUT')}
* @memberof PanelDetailModel
*/
public type: 'VIEWLAYOUT' | 'ITEMLAYOUT' = 'VIEWLAYOUT';
/**
* 成员标题
*
......@@ -62,7 +70,7 @@ export class PanelDetailModel {
* @type {*}
* @memberof PanelDetailModel
*/
private data: any;
protected data: any;
/**
* 布局模式
......@@ -213,7 +221,7 @@ export class PanelDetailModel {
* @type {number}
* @memberof PanelDetailModel
*/
private index: number = 0;
protected index: number = 0;
/**
* 父项名称
......@@ -231,6 +239,7 @@ export class PanelDetailModel {
* @memberof PanelDetailModel
*/
constructor(opts: any = {}) {
this.type = opts.type;
this.caption = opts.caption;
this.itemType = opts.itemType;
this.panel = opts.panel;
......
......@@ -48,6 +48,14 @@ export class PanelFieldModel extends PanelDetailModel {
*/
public fieldState: '0' | '1' | '2';
/**
* 绑定数据项
*
* @type {(string | undefined)}
* @memberof PanelFieldModel
*/
public dataItemName: string | undefined = undefined;
/**
* Creates an instance of PanelFieldModel.
* PanelFieldModel 实例
......@@ -60,6 +68,7 @@ export class PanelFieldModel extends PanelDetailModel {
this.disabled = opts.disabled ? true : false;
this.enableCond = opts.enableCond;
this.fieldState = opts.fieldState;
this.dataItemName = opts.dataItemName;
}
/**
......@@ -108,4 +117,60 @@ export class PanelFieldModel extends PanelDetailModel {
this.setDisabled(state);
}
/**
* 加载数据
*
* @param {*} context
* @param {*} viewParams
* @memberof PanelFieldModel
*/
public async load(context: any, viewParams: any) {
if (this.parentName) {
let parentItem = this.panel.layoutModelDetails[`${this.parentName}_${this.index}`];
// 尝试找
if (!parentItem) {
parentItem = this.panel.layoutModelDetails[this.parentName];
}
if (parentItem && parentItem.getData()) {
const parentItemData = parentItem.getData();
const key = this.dataItemName ? this.dataItemName : this.name;
if (parentItemData) {
this.data = parentItemData[key];
}
}
}
}
/**
* 设置数据
*
* @param {*} value
* @memberof PanelFieldModel
*/
public setData(value: any): void {
this.data = value;
if (!this.parentName) {
return;
} else {
let parentItem = this.panel.layoutModelDetails[`${this.parentName}_${this.index}`];
// 尝试找
if (!parentItem) {
parentItem = this.panel.layoutModelDetails[this.parentName];
}
if (parentItem) {
const key = this.dataItemName ? this.dataItemName : this.name;
parentItem.setData({ name: key, value: value, index: this.index });
}
}
}
/**
* 重置当前项数据
*
* @memberof PanelFieldModel
*/
public reSetData() {
this.data = null;
}
}
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册