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

update:更新

上级 3054500d
......@@ -33,13 +33,29 @@ export class PanelContainerModel extends PanelDetailModel {
*/
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
*
* @type {(string | undefined)}
* @memberof PanelContainerModel
*/
public appDataEntityCodeName:string | undefined = undefined;
public appDataEntityCodeName: string | undefined = undefined;
/**
* 应用实体方法CodeName
......@@ -47,7 +63,7 @@ export class PanelContainerModel extends PanelDetailModel {
* @type {(string | undefined)}
* @memberof PanelContainerModel
*/
public appDEMethodCodeName:string | undefined = undefined;
public appDEMethodCodeName: string | undefined = undefined;
/**
* Creates an instance of PanelContainerModel.
......@@ -61,6 +77,8 @@ export class PanelContainerModel extends PanelDetailModel {
this.sysImage = opts.sysImage;
this.appDataEntityCodeName = opts.appDataEntityCodeName;
this.appDEMethodCodeName = opts.appDEMethodCodeName;
this.dataRegionType = opts.dataRegionType;
this.dataSourceType = opts.dataSourceType;
}
/**
......@@ -101,5 +119,72 @@ export class PanelContainerModel extends PanelDetailModel {
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 {
*/
public visible: boolean = true;
/**
* 当前数据
*
* @type {*}
* @memberof PanelDetailModel
*/
private data: any;
/**
* 布局模式
*
......@@ -205,7 +213,7 @@ export class PanelDetailModel {
* @type {number}
* @memberof PanelDetailModel
*/
public index: number = 0;
private index: number = 0;
/**
* 父项名称
......@@ -251,6 +259,46 @@ export class PanelDetailModel {
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 {
return boxStyle;
}
/**
* 加载
* @param context
* @param viewParams
*/
public async load(context: any, viewParams: any) { }
}
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册