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

update:更新

上级 3c2a1f68
...@@ -130,25 +130,25 @@ export class PanelContainerModel extends PanelDetailModel { ...@@ -130,25 +130,25 @@ export class PanelContainerModel extends PanelDetailModel {
const nullData = {}; const nullData = {};
switch (this.dataRegionType) { switch (this.dataRegionType) {
case 'LOGINFORM': case 'LOGINFORM':
this.setData(nullData); this.data = nullData;
break; break;
case 'INHERIT': case 'INHERIT':
if (!this.parentName) { if (!this.parentName) {
this.setData(nullData); this.data = nullData;
} else { } else {
const parentItem = this.panel.layoutModelDetails[this.parentName]; const parentItem = this.panel.layoutModelDetails[this.parentName];
if (this.parentName) { if (parentItem) {
if (parentItem.dataRegionType === 'MULTIDATA' && parentItem['data'] && parentItem['data'].length > 0) { if (parentItem.dataRegionType === 'MULTIDATA' && parentItem['data'] && parentItem['data'].length > 0) {
this.setData(parentItem.getData()[this.getIndex()]); this.data = parentItem.getData()[this.getIndex()];
} else { } else {
this.setData(parentItem.getData()); this.data = parentItem.getData();
} }
} }
} }
break; break;
case 'SINGLEDATA': case 'SINGLEDATA':
case 'MULTIDATA': case 'MULTIDATA':
this.setData(await this.loadData(context, viewParams)); this.data = await this.loadData(context, viewParams);
break; break;
default: default:
console.warn(`${this.dataRegionType}数据域未实现`); console.warn(`${this.dataRegionType}数据域未实现`);
...@@ -187,4 +187,67 @@ export class PanelContainerModel extends PanelDetailModel { ...@@ -187,4 +187,67 @@ export class PanelContainerModel extends PanelDetailModel {
} }
return data; 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"; ...@@ -8,6 +8,14 @@ import { Util } from "@/utils";
*/ */
export class PanelDetailModel { export class PanelDetailModel {
/**
* 类型 视图布局/项布局
*
* @type {('VIEWLAYOUT' | 'ITEMLAYOUT')}
* @memberof PanelDetailModel
*/
public type: 'VIEWLAYOUT' | 'ITEMLAYOUT' = 'VIEWLAYOUT';
/** /**
* 成员标题 * 成员标题
* *
...@@ -62,7 +70,7 @@ export class PanelDetailModel { ...@@ -62,7 +70,7 @@ export class PanelDetailModel {
* @type {*} * @type {*}
* @memberof PanelDetailModel * @memberof PanelDetailModel
*/ */
private data: any; protected data: any;
/** /**
* 布局模式 * 布局模式
...@@ -213,7 +221,7 @@ export class PanelDetailModel { ...@@ -213,7 +221,7 @@ export class PanelDetailModel {
* @type {number} * @type {number}
* @memberof PanelDetailModel * @memberof PanelDetailModel
*/ */
private index: number = 0; protected index: number = 0;
/** /**
* 父项名称 * 父项名称
...@@ -231,6 +239,7 @@ export class PanelDetailModel { ...@@ -231,6 +239,7 @@ export class PanelDetailModel {
* @memberof PanelDetailModel * @memberof PanelDetailModel
*/ */
constructor(opts: any = {}) { constructor(opts: any = {}) {
this.type = opts.type;
this.caption = opts.caption; this.caption = opts.caption;
this.itemType = opts.itemType; this.itemType = opts.itemType;
this.panel = opts.panel; this.panel = opts.panel;
......
...@@ -48,6 +48,14 @@ export class PanelFieldModel extends PanelDetailModel { ...@@ -48,6 +48,14 @@ export class PanelFieldModel extends PanelDetailModel {
*/ */
public fieldState: '0' | '1' | '2'; public fieldState: '0' | '1' | '2';
/**
* 绑定数据项
*
* @type {(string | undefined)}
* @memberof PanelFieldModel
*/
public dataItemName: string | undefined = undefined;
/** /**
* Creates an instance of PanelFieldModel. * Creates an instance of PanelFieldModel.
* PanelFieldModel 实例 * PanelFieldModel 实例
...@@ -60,6 +68,7 @@ export class PanelFieldModel extends PanelDetailModel { ...@@ -60,6 +68,7 @@ export class PanelFieldModel extends PanelDetailModel {
this.disabled = opts.disabled ? true : false; this.disabled = opts.disabled ? true : false;
this.enableCond = opts.enableCond; this.enableCond = opts.enableCond;
this.fieldState = opts.fieldState; this.fieldState = opts.fieldState;
this.dataItemName = opts.dataItemName;
} }
/** /**
...@@ -108,4 +117,60 @@ export class PanelFieldModel extends PanelDetailModel { ...@@ -108,4 +117,60 @@ export class PanelFieldModel extends PanelDetailModel {
this.setDisabled(state); 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 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册