提交 77cc01a7 编写于 作者: ibizdev's avatar ibizdev

ShineKOT 发布系统代码 [后台服务,演示应用]

上级 35d2b4f3
......@@ -213,6 +213,30 @@ export default class AppPanelViewBase extends Vue implements ControlInterface {
*/
public appUIService:UIService = new UIService();
/**
* 视图布局是否加载
*
* @public
* @memberof PanelBase
*/
public isLayoutLoadding: boolean = false;
/**
* 视图布局数据
*
* @public
* @memberof PanelBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof PanelBase
*/
public layoutModelDetails:any = {};
/**
* 视图布局顶级成员名称
*
......@@ -221,6 +245,68 @@ export default class AppPanelViewBase extends Vue implements ControlInterface {
*/
public rootLayoutDetailNames: string[] = [ ];
/**
* 初始化布局
*
* @public
* @memberof PanelBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof PanelBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, name, layoutModelDetail);
this.$set(this.layoutData, name, layoutModelDetail.getData());
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 视图布局面板项模型对象
......@@ -412,6 +498,7 @@ export default class AppPanelViewBase extends Vue implements ControlInterface {
* @memberof AppPanelViewBase
*/
public panelLogic(name: string): void {
}
/**
......@@ -422,6 +509,36 @@ export default class AppPanelViewBase extends Vue implements ControlInterface {
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
......
......@@ -598,7 +598,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORListView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORGridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -634,7 +634,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORListView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORGridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
......@@ -247,6 +247,30 @@ export default class Auto1Base extends Vue implements ControlInterface {
*/
public appUIService:IBIZBOOKUIService = new IBIZBOOKUIService();
/**
* 视图布局是否加载
*
* @public
* @memberof Item1layoutpanelBase
*/
public isLayoutLoadding: boolean = false;
/**
* 视图布局数据
*
* @public
* @memberof Item1layoutpanelBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof Item1layoutpanelBase
*/
public layoutModelDetails:any = {};
/**
* 视图布局顶级成员名称
*
......@@ -255,6 +279,68 @@ export default class Auto1Base extends Vue implements ControlInterface {
*/
public rootLayoutDetailNames: string[] = [ 'container1' ];
/**
* 初始化布局
*
* @public
* @memberof Item1layoutpanelBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof Item1layoutpanelBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, name, layoutModelDetail);
this.$set(this.layoutData, name, layoutModelDetail.getData());
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 视图布局面板项模型对象
......@@ -263,6 +349,10 @@ export default class Auto1Base extends Vue implements ControlInterface {
* @memberof Item1layoutpanelBase
*/
public layoutItems:any = {
field1:{ name: 'field1', type: 'ITEMLAYOUT', caption: '图书名', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: '', renderMode: '', dataItemName:'title', wrapMode:'', vAlign:'', hAlign:'', },
field2:{ name: 'field2', type: 'ITEMLAYOUT', caption: '借出日期', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: '', renderMode: '', dataItemName:'start', wrapMode:'', vAlign:'', hAlign:'', },
field3:{ name: 'field3', type: 'ITEMLAYOUT', caption: '归还日期', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: '', renderMode: '', dataItemName:'end', wrapMode:'', vAlign:'', hAlign:'', },
container1:{ name: 'container1', type: 'ITEMLAYOUT', caption: '', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'TABLE_24COL', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['field1','field2','field3'] , dataRegionType: 'INHERIT' }
};
/**
......@@ -458,6 +548,11 @@ export default class Auto1Base extends Vue implements ControlInterface {
* @memberof Auto1Base
*/
public panelLogic(name: string): void {
}
/**
......@@ -468,6 +563,36 @@ export default class Auto1Base extends Vue implements ControlInterface {
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
......
......@@ -671,7 +671,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr5DataView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -707,7 +707,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr5DataView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
......@@ -247,6 +247,30 @@ export default class HasPanelKanBanBase extends Vue implements ControlInterface
*/
public appUIService:IBIZBOOKUIService = new IBIZBOOKUIService();
/**
* 视图布局是否加载
*
* @public
* @memberof ItemlayoutpanelBase
*/
public isLayoutLoadding: boolean = false;
/**
* 视图布局数据
*
* @public
* @memberof ItemlayoutpanelBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof ItemlayoutpanelBase
*/
public layoutModelDetails:any = {};
/**
* 视图布局顶级成员名称
*
......@@ -255,6 +279,68 @@ export default class HasPanelKanBanBase extends Vue implements ControlInterface
*/
public rootLayoutDetailNames: string[] = [ 'container1' ];
/**
* 初始化布局
*
* @public
* @memberof ItemlayoutpanelBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof ItemlayoutpanelBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, name, layoutModelDetail);
this.$set(this.layoutData, name, layoutModelDetail.getData());
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 视图布局面板项模型对象
......@@ -263,6 +349,10 @@ export default class HasPanelKanBanBase extends Vue implements ControlInterface
* @memberof ItemlayoutpanelBase
*/
public layoutItems:any = {
srfmajortext:{ name: 'srfmajortext', type: 'ITEMLAYOUT', caption: '', isShowCaption: false, sysCss: 'kanban-title', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: '', renderMode: '', dataItemName:'srfmajortext', wrapMode:'', vAlign:'', hAlign:'', },
author:{ name: 'author', type: 'ITEMLAYOUT', caption: '', isShowCaption: false, sysCss: 'kanban-author', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: '', renderMode: '', dataItemName:'author', wrapMode:'', vAlign:'', hAlign:'', },
srfdescription:{ name: 'srfdescription', type: 'ITEMLAYOUT', caption: '', isShowCaption: false, sysCss: 'kanban-description', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: '', renderMode: '', dataItemName:'srfdescription', wrapMode:'', vAlign:'', hAlign:'', },
container1:{ name: 'container1', type: 'ITEMLAYOUT', caption: '', titleBarCloseMode: 0, isShowCaption: false, sysCss: 'kanban-panel', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'TABLE_24COL', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:400, widthMode:'PX', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['srfmajortext','author','srfdescription'] , dataRegionType: 'INHERIT' }
};
/**
......@@ -458,6 +548,11 @@ export default class HasPanelKanBanBase extends Vue implements ControlInterface
* @memberof HasPanelKanBanBase
*/
public panelLogic(name: string): void {
}
/**
......@@ -468,6 +563,36 @@ export default class HasPanelKanBanBase extends Vue implements ControlInterface
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
......
......@@ -247,6 +247,30 @@ export default class HasPanelListBase extends Vue implements ControlInterface {
*/
public appUIService:IBIZBOOKUIService = new IBIZBOOKUIService();
/**
* 视图布局是否加载
*
* @public
* @memberof List_itempanelBase
*/
public isLayoutLoadding: boolean = false;
/**
* 视图布局数据
*
* @public
* @memberof List_itempanelBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof List_itempanelBase
*/
public layoutModelDetails:any = {};
/**
* 视图布局顶级成员名称
*
......@@ -255,6 +279,68 @@ export default class HasPanelListBase extends Vue implements ControlInterface {
*/
public rootLayoutDetailNames: string[] = [ 'container1' ];
/**
* 初始化布局
*
* @public
* @memberof List_itempanelBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof List_itempanelBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, name, layoutModelDetail);
this.$set(this.layoutData, name, layoutModelDetail.getData());
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 视图布局面板项模型对象
......@@ -263,6 +349,10 @@ export default class HasPanelListBase extends Vue implements ControlInterface {
* @memberof List_itempanelBase
*/
public layoutItems:any = {
bookname:{ name: 'bookname', type: 'ITEMLAYOUT', caption: '图书名称', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: '', renderMode: '', dataItemName:'IBIZBOOKNAME', wrapMode:'', vAlign:'', hAlign:'', },
author:{ name: 'author', type: 'ITEMLAYOUT', caption: '图书作者', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: '', renderMode: '', dataItemName:'AUTHOR', wrapMode:'', vAlign:'', hAlign:'', },
press:{ name: 'press', type: 'ITEMLAYOUT', caption: '图书出版社', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: '', renderMode: '', dataItemName:'PRESS', wrapMode:'', vAlign:'', hAlign:'', },
container1:{ name: 'container1', type: 'ITEMLAYOUT', caption: '', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'TABLE_24COL', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['bookname','author','press'] , dataRegionType: 'INHERIT' }
};
/**
......@@ -458,6 +548,11 @@ export default class HasPanelListBase extends Vue implements ControlInterface {
* @memberof HasPanelListBase
*/
public panelLogic(name: string): void {
}
/**
......@@ -468,6 +563,36 @@ export default class HasPanelListBase extends Vue implements ControlInterface {
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
......
......@@ -256,6 +256,30 @@ export default class ListpanelBase extends Vue implements ControlInterface {
*/
public appUIService:IBIZBOOKUIService = new IBIZBOOKUIService();
/**
* 视图布局是否加载
*
* @public
* @memberof List_itempanelBase
*/
public isLayoutLoadding: boolean = false;
/**
* 视图布局数据
*
* @public
* @memberof List_itempanelBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof List_itempanelBase
*/
public layoutModelDetails:any = {};
/**
* 视图布局顶级成员名称
*
......@@ -264,6 +288,68 @@ export default class ListpanelBase extends Vue implements ControlInterface {
*/
public rootLayoutDetailNames: string[] = [ 'container1' ];
/**
* 初始化布局
*
* @public
* @memberof List_itempanelBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof List_itempanelBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, name, layoutModelDetail);
this.$set(this.layoutData, name, layoutModelDetail.getData());
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 视图布局面板项模型对象
......@@ -272,6 +358,13 @@ export default class ListpanelBase extends Vue implements ControlInterface {
* @memberof List_itempanelBase
*/
public layoutItems:any = {
static_label1:{ name: 'static_label1', type: 'ITEMLAYOUT', caption: '标签', isShowCaption: true, sysCss: '', itemType: 'RAWITEM', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , viewType: 'DELISTVIEW', predefinedType: 'STATIC_LABEL', contentType: 'RAW', contentStyle: '', rawContent: '标签', htmlContent: '', renderMode: 'PARAGRAPH', wrapMode:'', vAlign:'', hAlign:'', },
static_text1:{ name: 'static_text1', type: 'ITEMLAYOUT', caption: '文本', isShowCaption: true, sysCss: '', itemType: 'RAWITEM', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , viewType: 'DELISTVIEW', predefinedType: 'STATIC_TEXT', contentType: 'RAW', contentStyle: '', rawContent: '文本内容', htmlContent: '', renderMode: 'TEXT', wrapMode:'', vAlign:'', hAlign:'', },
field_text_dynamic:{ name: 'field_text_dynamic', type: 'ITEMLAYOUT', caption: '文本(动态)', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: 'FIELD_TEXT_DYNAMIC', renderMode: 'TEXT_DYNAMIC', dataItemName:'author', wrapMode:'', vAlign:'', hAlign:'', },
field_textbox:{ name: 'field_textbox', type: 'ITEMLAYOUT', caption: '文本框', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: 'FIELD_TEXTBOX', dataItemName:'booknumber', },
button_link1:{ name: 'button_link1', type: 'ITEMLAYOUT', caption: '页面链接', isShowCaption: true, sysCss: '', itemType: 'BUTTON', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , buttonStyle: 'DEFAULT', borderStyle: '', iconAlign: '', renderMode: 'LINK', },
button_calluilogic1:{ name: 'button_calluilogic1', type: 'ITEMLAYOUT', caption: '按钮', isShowCaption: true, sysCss: '', itemType: 'BUTTON', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , buttonStyle: 'DEFAULT', borderStyle: '', iconAlign: '', renderMode: '', },
container1:{ name: 'container1', type: 'ITEMLAYOUT', caption: '容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'FLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['static_label1','static_text1','field_text_dynamic','field_textbox','button_link1','button_calluilogic1'] , dataRegionType: 'INHERIT' }
};
/**
......@@ -463,6 +556,14 @@ export default class ListpanelBase extends Vue implements ControlInterface {
* @memberof ListpanelBase
*/
public panelLogic(name: string): void {
}
/**
......@@ -473,6 +574,36 @@ export default class ListpanelBase extends Vue implements ControlInterface {
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
......
......@@ -238,6 +238,30 @@ export default class TIMELINEITEMLAYOUTPANELBase extends Vue implements ControlI
*/
public appUIService:IBIZBOOKUIService = new IBIZBOOKUIService();
/**
* 视图布局是否加载
*
* @public
* @memberof ItemlayoutpanelBase
*/
public isLayoutLoadding: boolean = false;
/**
* 视图布局数据
*
* @public
* @memberof ItemlayoutpanelBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof ItemlayoutpanelBase
*/
public layoutModelDetails:any = {};
/**
* 视图布局顶级成员名称
*
......@@ -246,6 +270,68 @@ export default class TIMELINEITEMLAYOUTPANELBase extends Vue implements ControlI
*/
public rootLayoutDetailNames: string[] = [ 'container1' ];
/**
* 初始化布局
*
* @public
* @memberof ItemlayoutpanelBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof ItemlayoutpanelBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, name, layoutModelDetail);
this.$set(this.layoutData, name, layoutModelDetail.getData());
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 视图布局面板项模型对象
......@@ -254,6 +340,7 @@ export default class TIMELINEITEMLAYOUTPANELBase extends Vue implements ControlI
* @memberof ItemlayoutpanelBase
*/
public layoutItems:any = {
container1:{ name: 'container1', type: 'ITEMLAYOUT', caption: '', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'TABLE_24COL', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:[] , dataRegionType: 'INHERIT' }
};
/**
......@@ -437,6 +524,8 @@ export default class TIMELINEITEMLAYOUTPANELBase extends Vue implements ControlI
* @memberof TIMELINEITEMLAYOUTPANELBase
*/
public panelLogic(name: string): void {
}
/**
......@@ -447,6 +536,36 @@ export default class TIMELINEITEMLAYOUTPANELBase extends Vue implements ControlI
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
......
......@@ -238,6 +238,30 @@ export default class UsrBase extends Vue implements ControlInterface {
*/
public appUIService:IBIZBOOKUIService = new IBIZBOOKUIService();
/**
* 视图布局是否加载
*
* @public
* @memberof List_itempanelBase
*/
public isLayoutLoadding: boolean = false;
/**
* 视图布局数据
*
* @public
* @memberof List_itempanelBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof List_itempanelBase
*/
public layoutModelDetails:any = {};
/**
* 视图布局顶级成员名称
*
......@@ -246,6 +270,68 @@ export default class UsrBase extends Vue implements ControlInterface {
*/
public rootLayoutDetailNames: string[] = [ 'container1' ];
/**
* 初始化布局
*
* @public
* @memberof List_itempanelBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof List_itempanelBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, name, layoutModelDetail);
this.$set(this.layoutData, name, layoutModelDetail.getData());
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 视图布局面板项模型对象
......@@ -254,6 +340,7 @@ export default class UsrBase extends Vue implements ControlInterface {
* @memberof List_itempanelBase
*/
public layoutItems:any = {
container1:{ name: 'container1', type: 'ITEMLAYOUT', caption: '', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'TABLE_24COL', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:[] , dataRegionType: 'INHERIT' }
};
/**
......@@ -437,6 +524,8 @@ export default class UsrBase extends Vue implements ControlInterface {
* @memberof UsrBase
*/
public panelLogic(name: string): void {
}
/**
......@@ -447,6 +536,36 @@ export default class UsrBase extends Vue implements ControlInterface {
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
......
......@@ -247,6 +247,30 @@ export default class Usr4Base extends Vue implements ControlInterface {
*/
public appUIService:IBIZBOOKUIService = new IBIZBOOKUIService();
/**
* 视图布局是否加载
*
* @public
* @memberof ItemlayoutpanelBase
*/
public isLayoutLoadding: boolean = false;
/**
* 视图布局数据
*
* @public
* @memberof ItemlayoutpanelBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof ItemlayoutpanelBase
*/
public layoutModelDetails:any = {};
/**
* 视图布局顶级成员名称
*
......@@ -255,6 +279,68 @@ export default class Usr4Base extends Vue implements ControlInterface {
*/
public rootLayoutDetailNames: string[] = [ 'container1' ];
/**
* 初始化布局
*
* @public
* @memberof ItemlayoutpanelBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof ItemlayoutpanelBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, name, layoutModelDetail);
this.$set(this.layoutData, name, layoutModelDetail.getData());
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 视图布局面板项模型对象
......@@ -263,6 +349,10 @@ export default class Usr4Base extends Vue implements ControlInterface {
* @memberof ItemlayoutpanelBase
*/
public layoutItems:any = {
author:{ name: 'author', type: 'ITEMLAYOUT', caption: '作者', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: '', renderMode: '', dataItemName:'author', wrapMode:'', vAlign:'', hAlign:'', },
press:{ name: 'press', type: 'ITEMLAYOUT', caption: '出版社', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: '', renderMode: '', dataItemName:'press', wrapMode:'', vAlign:'', hAlign:'', },
bookname:{ name: 'bookname', type: 'ITEMLAYOUT', caption: '图书名', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: '', renderMode: '', dataItemName:'IBIZBOOKNAME', wrapMode:'', vAlign:'', hAlign:'', },
container1:{ name: 'container1', type: 'ITEMLAYOUT', caption: '', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'TABLE_24COL', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['author','press','bookname'] , dataRegionType: 'INHERIT' }
};
/**
......@@ -458,6 +548,11 @@ export default class Usr4Base extends Vue implements ControlInterface {
* @memberof Usr4Base
*/
public panelLogic(name: string): void {
}
/**
......@@ -468,6 +563,36 @@ export default class Usr4Base extends Vue implements ControlInterface {
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
......
......@@ -238,6 +238,30 @@ export default class Usr5Base extends Vue implements ControlInterface {
*/
public appUIService:IBIZBOOKUIService = new IBIZBOOKUIService();
/**
* 视图布局是否加载
*
* @public
* @memberof ItemlayoutpanelBase
*/
public isLayoutLoadding: boolean = false;
/**
* 视图布局数据
*
* @public
* @memberof ItemlayoutpanelBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof ItemlayoutpanelBase
*/
public layoutModelDetails:any = {};
/**
* 视图布局顶级成员名称
*
......@@ -246,6 +270,68 @@ export default class Usr5Base extends Vue implements ControlInterface {
*/
public rootLayoutDetailNames: string[] = [ 'container1' ];
/**
* 初始化布局
*
* @public
* @memberof ItemlayoutpanelBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof ItemlayoutpanelBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, name, layoutModelDetail);
this.$set(this.layoutData, name, layoutModelDetail.getData());
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 视图布局面板项模型对象
......@@ -254,6 +340,7 @@ export default class Usr5Base extends Vue implements ControlInterface {
* @memberof ItemlayoutpanelBase
*/
public layoutItems:any = {
container1:{ name: 'container1', type: 'ITEMLAYOUT', caption: '', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'TABLE_24COL', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:[] , dataRegionType: 'INHERIT' }
};
/**
......@@ -437,6 +524,8 @@ export default class Usr5Base extends Vue implements ControlInterface {
* @memberof Usr5Base
*/
public panelLogic(name: string): void {
}
/**
......@@ -447,6 +536,36 @@ export default class Usr5Base extends Vue implements ControlInterface {
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
......
......@@ -299,7 +299,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof IBIZOrderPickupGridViewBase
* @memberof IBIZOrderSF1GridViewBase
*/
public Edit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
if (args.length === 0) {
......@@ -421,6 +421,20 @@ export default class MainBase extends Vue implements ControlInterface {
return this.selections[0];
}
/**
* 打开新建数据视图
*
* @type {any}
* @memberof MainBase
*/
@Prop() public newdata: any;
/**
* 打开编辑数据视图
*
* @type {any}
* @memberof MainBase
*/
@Prop() public opendata: any;
/**
* 是否嵌入关系界面
......@@ -953,7 +967,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}, pageReset: boolean = false): void {
if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
return;
}
if(pageReset){
......@@ -1048,7 +1062,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public async remove(datas: any[]): Promise<any> {
if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.removeAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.removeAction') as string) });
return;
}
let _datas:any[] = [];
......@@ -1154,7 +1168,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public addBatch(arg: any = {}): void {
if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
return;
}
if(!arg){
......@@ -2071,7 +2085,7 @@ export default class MainBase extends Vue implements ControlInterface {
try {
if(Object.is(item.rowDataState, 'create')){
if(!this.createAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.createAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.createAction') as string) });
}else{
Object.assign(item,{viewparams:this.viewparams});
let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
......@@ -2079,7 +2093,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
}else if(Object.is(item.rowDataState, 'update')){
if(!this.updateAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.updateAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.updateAction') as string) });
}else{
Object.assign(item,{viewparams:this.viewparams});
if(item.ibizorder){
......@@ -2146,7 +2160,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public newRow(args: any[], params?: any, $event?: any, xData?: any): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.loaddraftAction') as string) });
return;
}
let _this = this;
......
......@@ -104,6 +104,21 @@ export default class MainModel {
prop: 'n_ibizordername_like',
dataType: 'QUERYPARAM'
},
{
name: 'n_orderstate_eq',
prop: 'n_orderstate_eq',
dataType: 'QUERYPARAM'
},
{
name: 'n_ordertime_gt',
prop: 'n_ordertime_gt',
dataType: 'QUERYPARAM'
},
{
name: 'n_ordertime_lt',
prop: 'n_ordertime_lt',
dataType: 'QUERYPARAM'
},
{
name:'size',
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册