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

update:更新

上级 3054500d
...@@ -33,13 +33,29 @@ export class PanelContainerModel extends PanelDetailModel { ...@@ -33,13 +33,29 @@ export class PanelContainerModel extends PanelDetailModel {
*/ */
public sysImage: any = {}; public sysImage: any = {};
/**
* 数据区域类型
* @description 值模式 [数据面板模式] {NONE:无、 LOGINFORM:登录表单、 SINGLEDATA:单项数据、 MULTIDATA:多项数据、 INHERIT:继承、 USER:用户自定义 }
* @type {( string | 'NONE' | 'LOGINFORM' | 'SINGLEDATA' | 'MULTIDATA' | 'INHERIT' | 'USER')}
* @memberof PanelContainerModel
*/
public dataRegionType: string | 'NONE' | 'LOGINFORM' | 'SINGLEDATA' | 'MULTIDATA' | 'INHERIT' | 'USER' | '' = '';
/**
* 数据源类型
* @description 值模式 [数据面板源(全部)] {DEACTION:实体行为、 DEDATASET:实体集合、 DELOGIC:实体逻辑、 APPGLOBALPARAM:绑定应用全局变量、 TOPVIEWSESSIONPARAM:绑定顶级视图会话共享变量、 VIEWSESSIONPARAM:绑定当前视图会话共享变量 }
* @type {( string | 'DEACTION' | 'DEDATASET' | 'DELOGIC' | 'APPGLOBALPARAM' | 'TOPVIEWSESSIONPARAM' | 'VIEWSESSIONPARAM')}
* @memberof PanelContainerModel
*/
public dataSourceType: string | 'DEACTION' | 'DEDATASET' | 'DELOGIC' | 'APPGLOBALPARAM' | 'TOPVIEWSESSIONPARAM' | 'VIEWSESSIONPARAM' | '' = '';
/** /**
* 应用实体codeName * 应用实体codeName
* *
* @type {(string | undefined)} * @type {(string | undefined)}
* @memberof PanelContainerModel * @memberof PanelContainerModel
*/ */
public appDataEntityCodeName:string | undefined = undefined; public appDataEntityCodeName: string | undefined = undefined;
/** /**
* 应用实体方法CodeName * 应用实体方法CodeName
...@@ -47,7 +63,7 @@ export class PanelContainerModel extends PanelDetailModel { ...@@ -47,7 +63,7 @@ export class PanelContainerModel extends PanelDetailModel {
* @type {(string | undefined)} * @type {(string | undefined)}
* @memberof PanelContainerModel * @memberof PanelContainerModel
*/ */
public appDEMethodCodeName:string | undefined = undefined; public appDEMethodCodeName: string | undefined = undefined;
/** /**
* Creates an instance of PanelContainerModel. * Creates an instance of PanelContainerModel.
...@@ -61,6 +77,8 @@ export class PanelContainerModel extends PanelDetailModel { ...@@ -61,6 +77,8 @@ export class PanelContainerModel extends PanelDetailModel {
this.sysImage = opts.sysImage; this.sysImage = opts.sysImage;
this.appDataEntityCodeName = opts.appDataEntityCodeName; this.appDataEntityCodeName = opts.appDataEntityCodeName;
this.appDEMethodCodeName = opts.appDEMethodCodeName; this.appDEMethodCodeName = opts.appDEMethodCodeName;
this.dataRegionType = opts.dataRegionType;
this.dataSourceType = opts.dataSourceType;
} }
/** /**
...@@ -101,5 +119,72 @@ export class PanelContainerModel extends PanelDetailModel { ...@@ -101,5 +119,72 @@ export class PanelContainerModel extends PanelDetailModel {
return boxStyle; return boxStyle;
} }
/**
* 加载
*
* @param {*} context
* @param {*} viewParams
* @memberof PanelContainerModel
*/
public async load(context: any, viewParams: any) {
const nullData = {};
switch (this.dataRegionType) {
case 'LOGINFORM':
this.setData(nullData);
break;
case 'INHERIT':
if (!this.parentName) {
this.setData(nullData);
} else {
const parentItem = this.panel.layoutModelDetails[this.parentName];
if (this.parentName) {
if (parentItem.dataRegionType === 'MULTIDATA' && parentItem['data'] && parentItem['data'].length > 0) {
this.setData(parentItem.getData()[this.getIndex()]);
} else {
this.setData(parentItem.getData());
}
}
}
break;
case 'SINGLEDATA':
case 'MULTIDATA':
this.setData(await this.loadData(context, viewParams));
break;
default:
console.warn(`${this.dataRegionType}数据域未实现`);
break;
}
}
/**
* 加载数据
*
* @param {*} context
* @param {*} viewParams
* @return {*}
* @memberof PanelContainerModel
*/
public async loadData(context: any, viewParams: any) {
let data = {};
if (this.dataSourceType === 'DEACTION' || this.dataSourceType === 'DEDATASET') {
try {
if (this.appDataEntityCodeName && this.appDEMethodCodeName) {
const service = await window.entityServiceRegister.getService(this.appDataEntityCodeName);
if (service) {
if (service[this.appDEMethodCodeName] && service[this.appDEMethodCodeName] instanceof Function) {
const response = await service[this.appDEMethodCodeName](context, viewParams);
if (response && response.status === 200) {
data = response.data;
}
}
}
}
} catch (error) {
console.error(`${this.dataSourceType}数据源请求数据异常`);
}
} else {
console.warn(`${this.dataSourceType}数据源类型未实现`);
}
return data;
}
} }
\ No newline at end of file
...@@ -56,6 +56,14 @@ export class PanelDetailModel { ...@@ -56,6 +56,14 @@ export class PanelDetailModel {
*/ */
public visible: boolean = true; public visible: boolean = true;
/**
* 当前数据
*
* @type {*}
* @memberof PanelDetailModel
*/
private data: any;
/** /**
* 布局模式 * 布局模式
* *
...@@ -205,7 +213,7 @@ export class PanelDetailModel { ...@@ -205,7 +213,7 @@ export class PanelDetailModel {
* @type {number} * @type {number}
* @memberof PanelDetailModel * @memberof PanelDetailModel
*/ */
public index: number = 0; private index: number = 0;
/** /**
* 父项名称 * 父项名称
...@@ -251,6 +259,46 @@ export class PanelDetailModel { ...@@ -251,6 +259,46 @@ export class PanelDetailModel {
this.parentName = opts.parentName; this.parentName = opts.parentName;
} }
/**
* 设置数据
*
* @param {*} value
* @memberof PanelDetailModel
*/
public setData(value: any) {
this.data = value;
}
/**
* 获取数据
*
* @return {*}
* @memberof PanelDetailModel
*/
public getData() {
return this.data;
}
/**
* 设置当前下标
*
* @param {number} index
* @memberof PanelDetailModel
*/
public setIndex(index: number) {
this.index = index;
}
/**
* 获取当前下标
*
* @return {*}
* @memberof PanelDetailModel
*/
public getIndex() {
return this.index;
}
/** /**
* 获取元素样式(除容器之外的元素,包含内容盒子 大小/边距/内容 的样式) * 获取元素样式(除容器之外的元素,包含内容盒子 大小/边距/内容 的样式)
* *
...@@ -449,4 +497,11 @@ export class PanelDetailModel { ...@@ -449,4 +497,11 @@ export class PanelDetailModel {
return boxStyle; return boxStyle;
} }
/**
* 加载
* @param context
* @param viewParams
*/
public async load(context: any, viewParams: any) { }
} }
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册