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

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

上级 22b8292a
...@@ -199,6 +199,22 @@ export class PanelDetailModel { ...@@ -199,6 +199,22 @@ export class PanelDetailModel {
*/ */
public predefinedType: string = ''; public predefinedType: string = '';
/**
* 下标
*
* @type {number}
* @memberof PanelDetailModel
*/
public index: number = 0;
/**
* 父项名称
*
* @type {string | undefined}
* @memberof PanelDetailModel
*/
public parentName: string | undefined = undefined;
/** /**
* Creates an instance of PanelDetailModel. * Creates an instance of PanelDetailModel.
* PanelDetailModel 实例 * PanelDetailModel 实例
...@@ -231,6 +247,8 @@ export class PanelDetailModel { ...@@ -231,6 +247,8 @@ export class PanelDetailModel {
this.predefinedType = opts.predefinedType; this.predefinedType = opts.predefinedType;
this.itemStyle = opts.itemStyle; this.itemStyle = opts.itemStyle;
this.sysImage = opts.sysImage; this.sysImage = opts.sysImage;
this.index = opts.index ? opts.index : 0;
this.parentName = opts.parentName;
} }
/** /**
......
...@@ -301,6 +301,14 @@ export default class IBIZBOOKInterFuncEditView_layoutBase extends Vue { ...@@ -301,6 +301,14 @@ export default class IBIZBOOKInterFuncEditView_layoutBase extends Vue {
}; };
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKInterFuncEditView_layoutBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -335,6 +343,65 @@ export default class IBIZBOOKInterFuncEditView_layoutBase extends Vue { ...@@ -335,6 +343,65 @@ export default class IBIZBOOKInterFuncEditView_layoutBase extends Vue {
page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container_grid1','container3'] , dataRegionType: 'INHERIT' }) page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container_grid1','container3'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof IBIZBOOKInterFuncEditView_layoutBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKInterFuncEditView_layoutBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
...@@ -246,6 +246,14 @@ export default class IBIZBOOKTestCLCalendarViewBase extends Vue { ...@@ -246,6 +246,14 @@ export default class IBIZBOOKTestCLCalendarViewBase extends Vue {
*/ */
public viewState: Subject<ViewState> = new Subject(); public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKTestCLCalendarViewBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -276,6 +284,65 @@ export default class IBIZBOOKTestCLCalendarViewBase extends Vue { ...@@ -276,6 +284,65 @@ export default class IBIZBOOKTestCLCalendarViewBase extends Vue {
page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container2','container_grid1'] , dataRegionType: 'INHERIT' }) page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container2','container_grid1'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof IBIZBOOKTestCLCalendarViewBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKTestCLCalendarViewBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
...@@ -381,6 +381,14 @@ export default class IBIZBOOKTestCLDataViewBase extends Vue { ...@@ -381,6 +381,14 @@ export default class IBIZBOOKTestCLDataViewBase extends Vue {
}; };
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKTestCLDataViewBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -421,6 +429,65 @@ export default class IBIZBOOKTestCLDataViewBase extends Vue { ...@@ -421,6 +429,65 @@ export default class IBIZBOOKTestCLDataViewBase extends Vue {
page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container_grid1','container4'] , dataRegionType: 'INHERIT' }) page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container_grid1','container4'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof IBIZBOOKTestCLDataViewBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKTestCLDataViewBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
...@@ -381,6 +381,14 @@ export default class IBIZBOOKTestCLListViewBase extends Vue { ...@@ -381,6 +381,14 @@ export default class IBIZBOOKTestCLListViewBase extends Vue {
}; };
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKTestCLListViewBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -421,6 +429,65 @@ export default class IBIZBOOKTestCLListViewBase extends Vue { ...@@ -421,6 +429,65 @@ export default class IBIZBOOKTestCLListViewBase extends Vue {
page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container_grid1','container5'] , dataRegionType: 'INHERIT' }) page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container_grid1','container5'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof IBIZBOOKTestCLListViewBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKTestCLListViewBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
...@@ -247,6 +247,14 @@ export default class IBIZBOOKTestCLTreeViewBase extends Vue { ...@@ -247,6 +247,14 @@ export default class IBIZBOOKTestCLTreeViewBase extends Vue {
*/ */
public viewState: Subject<ViewState> = new Subject(); public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKTestCLTreeViewBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -277,6 +285,65 @@ export default class IBIZBOOKTestCLTreeViewBase extends Vue { ...@@ -277,6 +285,65 @@ export default class IBIZBOOKTestCLTreeViewBase extends Vue {
page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container2','container_grid1'] , dataRegionType: 'INHERIT' }) page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container2','container_grid1'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof IBIZBOOKTestCLTreeViewBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKTestCLTreeViewBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
...@@ -336,6 +336,14 @@ export default class IBIZCustomerMediaTestEditViewBase extends Vue { ...@@ -336,6 +336,14 @@ export default class IBIZCustomerMediaTestEditViewBase extends Vue {
*/ */
public viewState: Subject<ViewState> = new Subject(); public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZCustomerMediaTestEditViewBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -396,6 +404,65 @@ export default class IBIZCustomerMediaTestEditViewBase extends Vue { ...@@ -396,6 +404,65 @@ export default class IBIZCustomerMediaTestEditViewBase extends Vue {
page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container_grid1','container3','container2'] , dataRegionType: 'INHERIT' }) page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container_grid1','container3','container2'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof IBIZCustomerMediaTestEditViewBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZCustomerMediaTestEditViewBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
<template> <template>
<div class="view-container deeditview2 ibizorder-sedit-view2-layout"> <div class="app-view-layout ibizorder-sedit-view2-layout" style="height: '100%'; width: '100%';'display': 'flex'; 'flex-direction': 'column';">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizorderseditview2_layout"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup30' viewname='ibizorderseditview2_layout'></app-alert-group> </div>
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
<template v-if="!(drItem && drItem.id && drItem.id !== 'form')">
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.deuiaction1.visabled" :disabled="toolBarModels.deuiaction1.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'deuiaction1' }, $event)">
<i class='fa fa-file-text-o'></i>
<span class='caption'>{{$t('entities.ibizorder.seditview2_layouttoolbar_toolbar.deuiaction1.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview2_layouttoolbar_toolbar.deuiaction1.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem3.visabled" :disabled="toolBarModels.tbitem3.disabled" class=' deepskyblueToolBar' v-loading:i-button @click="toolbar_click({ tag: 'tbitem3' }, $event)">
<i class='fa fa-save'></i>
<span class='caption'>{{$t('entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem3.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem3.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem5.visabled" :disabled="toolBarModels.tbitem5.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'tbitem5' }, $event)">
<i class='sx-tb-saveandclose'></i>
<span class='caption'>{{$t('entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem5.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem5.tip')}}</div>
</tooltip>
<span class='seperator'>|</span>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem9_saveandstart.visabled" :disabled="toolBarModels.tbitem9_saveandstart.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'tbitem9_saveandstart' }, $event)">
<i class=''></i>
<span class='caption'>{{$t('entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem9_saveandstart.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem9_saveandstart.tip')}}</div>
</tooltip>
<span class='seperator'>|</span>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem15.visabled" :disabled="toolBarModels.tbitem15.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'tbitem15' }, $event)">
<i class='fa fa-print'></i>
<span class='caption'>{{$t('entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem15.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem15.tip')}}</div>
</tooltip>
</div> </div>
</template>
</div>
<div class="content-container">
<layout class="edit-view2">
<sider class="edit-view2-drbar" :width="240">
<div :class="{'edit-view2-drbar__caption': true, 'is-active': !(drItem && drItem.id && drItem.id !== 'form')}" @click="drBarChange">
<span>订单</span>
</div>
<view_drbar
:viewState="viewState"
loadAction='get'
name='drbar'
ref='drbar'
:viewparams="viewparams"
:context="context"
:formData="formData"
@load="drbar_load($event)"
@selectionchange="drbar_selectionchange($event)"
@closeview="closeView($event)">
</view_drbar>
</sider>
<content class="edit-view2-content" :style="{ width: 'calc(100% - 241px)' }">
<div class="edit-view2-content__form" :style="drItem && drItem.id && drItem.id !== 'form' ? 'display: none' : ''">
<view_form
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:autosave="false"
:viewtag="viewtag"
:showBusyIndicator="true"
updateAction="Update"
removeAction="Remove"
loaddraftAction="GetDraft"
loadAction="Get"
createAction="Create"
WFSubmitAction=""
WFStartAction=""
style=''
name="form"
ref='form'
@load="form_load($event)"
@save="form_save($event)"
@remove="form_remove($event)"
@closeview="closeView($event)">
</view_form>
</div>
<component
class="view-container2"
v-if="drItem && drItem.id && drItem.id !== 'form'"
:is="drItem.navView"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(drItem.srfnavdata.context)"
:viewparam="JSON.stringify(drItem.srfnavdata.viewparams)">
</component>
</content>
</layout>
</div>
</card>
</div>
</template> </template>
<script lang='tsx'> <script lang='tsx'>
...@@ -118,6 +14,7 @@ import IBIZOrderAuthService from '@/authservice/ibizorder/ibizorder-auth-service ...@@ -118,6 +14,7 @@ import IBIZOrderAuthService from '@/authservice/ibizorder/ibizorder-auth-service
import EditView2Engine from '@engine/view/edit-view2-engine'; import EditView2Engine from '@engine/view/edit-view2-engine';
import IBIZOrderUIService from '@/uiservice/ibizorder/ibizorder-ui-service'; import IBIZOrderUIService from '@/uiservice/ibizorder/ibizorder-ui-service';
import { PanelContainerModel, PanelRawitemModel, PanelFieldModel, PanelControlModel, PanelButtonModel, PanelUserControlModel, PanelTabPanelModel, PanelTabPageModel, PanelCtrlPosModel} from '@/model/panel-detail';
@Component({ @Component({
...@@ -339,6 +236,119 @@ export default class IBIZOrderSEditView2_layoutBase extends Vue { ...@@ -339,6 +236,119 @@ export default class IBIZOrderSEditView2_layoutBase extends Vue {
}; };
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public rootLayoutDetailNames: string[] = [ ];
/**
* 视图布局数据
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public layoutData:any = {
};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public layoutModelDetails:any = {
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public handleValueChange($event: { name: string, value: any }) {
if (!$event || !$event.name || Object.is($event.name, '') || !this.layoutData.hasOwnProperty($event.name)) {
return;
}
this.layoutData[$event.name] = $event.value;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public handleButtonClick(name: string, $event?: any) {
let datas: any[] = [this.layoutData];
let xData: any = null;
let paramJO: any = {};
let contextJO: any = {};
const _this: any = this;
}
/** /**
* 视图引擎 * 视图引擎
......
.view-card { .ibizorder-sedit-view2-layout {
>.ivu-card-extra { display: block;
top: 5px;
right: 0px;
}
} }
.edit-view2-drbar__caption {
height: 40px;
line-height: 40px;
padding-left: 20px;
background: #fff;
color: #303133;
border-left: 3px solid #fff;
}
.edit-view2-drbar__caption.is-active {
background: #e9e9e9;
color: #666666;
border-left: 3px solid #3fd5c0;
}
.edit-view2-drbar {
background-color: #FFF;
.app-dr-bar {
height: calc(100% - 40px);
padding: 0;
}
}
.edit-view2-content {
background-color: #fff;
.edit-view2-content__form,
.view-container2 {
height: 100%;
}
.edit-view2-content__form {
padding: 0 12px;
}
}
.ibizorder-sedit-view2-layout{
position: relative;
}
.toolbar-container {
button {
margin: 6px 0px 4px 4px;
.caption {
margin-left: 4px;
}
}
.seperator {
color: #dcdee2;
margin: 0 0px 0 4px;
}
}
// this is less
.deepskyblueToolBar {color:white !important;background-color:#108cee !important;}
<template> <template>
<div class="view-container deeditview3 ibizorder-sedit-view3-layout"> <div class="app-view-layout ibizorder-sedit-view3-layout" style="height: '100%'; width: '100%';'display': 'flex'; 'flex-direction': 'column';">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizorderseditview3_layout"></app-studioaction>
<card class='view-card ' :dis-hover="true" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
<template v-if="Object.is(this.selection.id, 'form')">
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.deuiaction1.visabled" :disabled="toolBarModels.deuiaction1.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'deuiaction1' }, $event)">
<i class='fa fa-file-text-o'></i>
<span class='caption'>{{$t('entities.ibizorder.seditview3_layouttoolbar_toolbar.deuiaction1.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview3_layouttoolbar_toolbar.deuiaction1.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem3.visabled" :disabled="toolBarModels.tbitem3.disabled" class=' deepskyblueToolBar' v-loading:i-button @click="toolbar_click({ tag: 'tbitem3' }, $event)">
<i class='fa fa-save'></i>
<span class='caption'>{{$t('entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem3.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem3.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem5.visabled" :disabled="toolBarModels.tbitem5.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'tbitem5' }, $event)">
<i class='sx-tb-saveandclose'></i>
<span class='caption'>{{$t('entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem5.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem5.tip')}}</div>
</tooltip>
<span class='seperator'>|</span>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem9_saveandstart.visabled" :disabled="toolBarModels.tbitem9_saveandstart.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'tbitem9_saveandstart' }, $event)">
<i class=''></i>
<span class='caption'>{{$t('entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem9_saveandstart.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem9_saveandstart.tip')}}</div>
</tooltip>
<span class='seperator'>|</span>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem15.visabled" :disabled="toolBarModels.tbitem15.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'tbitem15' }, $event)">
<i class='fa fa-print'></i>
<span class='caption'>{{$t('entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem15.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem15.tip')}}</div>
</tooltip>
</div> </div>
</template>
</div>
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup32' viewname='ibizorderseditview3_layout'></app-alert-group> </div>
<div class="content-container">
<div class="edit-view3">
<div class="edit-view3-drheader">
<span :class="{ 'dr-tab-item': true, 'is-active': drItem && drItem.id !== 'form' }" @click="handleDrTabChange">订单</span>
<view_drtab
:viewState="viewState"
name='drtab'
ref='drtab'
:viewparams="viewparams"
:context="context"
parentName = "IBIZOrder"
@selectionchange='drtab_selectionchange($event)'
@closeview='closeView($event)'>
<view_form
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:autosave="false"
:viewtag="viewtag"
:showBusyIndicator="true"
updateAction="Update"
removeAction="Remove"
loaddraftAction="GetDraft"
loadAction="Get"
createAction="Create"
WFSubmitAction=""
WFStartAction=""
style=''
name="form"
ref='form'
@load="form_load($event)"
@save="form_save($event)"
@remove="form_remove($event)"
@closeview="closeView($event)">
</view_form>
</view_drtab>
</div>
<div class="edit-view3-content">
<div class="edit-view3-content__form" :style="drItem && drItem.id !== 'form' ? 'display: none;' : ''">
<view_form
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:autosave="false"
:viewtag="viewtag"
:showBusyIndicator="true"
updateAction="Update"
removeAction="Remove"
loaddraftAction="GetDraft"
loadAction="Get"
createAction="Create"
WFSubmitAction=""
WFStartAction=""
style=''
name="form"
ref='form'
@load="form_load($event)"
@save="form_save($event)"
@remove="form_remove($event)"
@closeview="closeView($event)">
</view_form>
</div>
<component
class="view-container2"
v-if="drItem && drItem.id && drItem.id !== 'form'"
:is="drItem.navView"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(drItem.srfnavdata.context)"
:viewparam="JSON.stringify(drItem.srfnavdata.viewparams)">
</component>
</div>
</div>
</div>
</card>
</div>
</template> </template>
<script lang='tsx'> <script lang='tsx'>
...@@ -138,6 +14,7 @@ import IBIZOrderAuthService from '@/authservice/ibizorder/ibizorder-auth-service ...@@ -138,6 +14,7 @@ import IBIZOrderAuthService from '@/authservice/ibizorder/ibizorder-auth-service
import EditView3Engine from '@engine/view/edit-view3-engine'; import EditView3Engine from '@engine/view/edit-view3-engine';
import IBIZOrderUIService from '@/uiservice/ibizorder/ibizorder-ui-service'; import IBIZOrderUIService from '@/uiservice/ibizorder/ibizorder-ui-service';
import { PanelContainerModel, PanelRawitemModel, PanelFieldModel, PanelControlModel, PanelButtonModel, PanelUserControlModel, PanelTabPanelModel, PanelTabPageModel, PanelCtrlPosModel} from '@/model/panel-detail';
@Component({ @Component({
...@@ -296,8 +173,8 @@ export default class IBIZOrderSEditView3_layoutBase extends Vue { ...@@ -296,8 +173,8 @@ export default class IBIZOrderSEditView3_layoutBase extends Vue {
*/ */
public containerModel: any = { public containerModel: any = {
view_drtab: { name: 'drtab', type: 'DRTAB' }, view_drtab: { name: 'drtab', type: 'DRTAB' },
view_toolbar: { name: 'toolbar', type: 'TOOLBAR' },
view_form: { name: 'form', type: 'FORM' }, view_form: { name: 'form', type: 'FORM' },
view_toolbar: { name: 'toolbar', type: 'TOOLBAR' },
wflinks: [], wflinks: [],
}; };
...@@ -359,6 +236,119 @@ export default class IBIZOrderSEditView3_layoutBase extends Vue { ...@@ -359,6 +236,119 @@ export default class IBIZOrderSEditView3_layoutBase extends Vue {
}; };
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public rootLayoutDetailNames: string[] = [ ];
/**
* 视图布局数据
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public layoutData:any = {
};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public layoutModelDetails:any = {
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public handleValueChange($event: { name: string, value: any }) {
if (!$event || !$event.name || Object.is($event.name, '') || !this.layoutData.hasOwnProperty($event.name)) {
return;
}
this.layoutData[$event.name] = $event.value;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public handleButtonClick(name: string, $event?: any) {
let datas: any[] = [this.layoutData];
let xData: any = null;
let paramJO: any = {};
let contextJO: any = {};
const _this: any = this;
}
/** /**
* 视图引擎 * 视图引擎
...@@ -714,32 +704,6 @@ export default class IBIZOrderSEditView3_layoutBase extends Vue { ...@@ -714,32 +704,6 @@ export default class IBIZOrderSEditView3_layoutBase extends Vue {
} }
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZOrderSEditView3_layoutBase
*/
public toolbar_click($event: any, $event2?: any) {
if (Object.is($event.tag, 'deuiaction1')) {
this.toolbar_deuiaction1_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem3')) {
this.toolbar_tbitem3_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem5')) {
this.toolbar_tbitem5_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem9_saveandstart')) {
this.toolbar_tbitem9_saveandstart_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem15')) {
this.toolbar_tbitem15_click(null, '', $event2);
}
}
/** /**
* form 部件 load 事件 * form 部件 load 事件
* *
...@@ -776,6 +740,32 @@ export default class IBIZOrderSEditView3_layoutBase extends Vue { ...@@ -776,6 +740,32 @@ export default class IBIZOrderSEditView3_layoutBase extends Vue {
} }
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZOrderSEditView3_layoutBase
*/
public toolbar_click($event: any, $event2?: any) {
if (Object.is($event.tag, 'deuiaction1')) {
this.toolbar_deuiaction1_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem3')) {
this.toolbar_tbitem3_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem5')) {
this.toolbar_tbitem5_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem9_saveandstart')) {
this.toolbar_tbitem9_saveandstart_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem15')) {
this.toolbar_tbitem15_click(null, '', $event2);
}
}
/** /**
* 逻辑事件 * 逻辑事件
......
.view-card { .ibizorder-sedit-view3-layout {
>.ivu-card-extra { display: block;
top: 5px;
right: 0px;
}
} }
.ibizorder-sedit-view3-layout{
position: relative;
}
.toolbar-container {
button {
margin: 6px 0px 4px 4px;
.caption {
margin-left: 4px;
}
}
.seperator {
color: #dcdee2;
margin: 0 0px 0 4px;
}
}
// this is less
.deepskyblueToolBar {color:white !important;background-color:#108cee !important;}
<template> <template>
<div class="view-container deeditview4 ibizorder-sedit-view4-layout"> <div class="app-view-layout ibizorder-sedit-view4-layout" style="height: '100%'; width: '100%';'display': 'flex'; 'flex-direction': 'column';">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizorderseditview4_layout"></app-studioaction>
<card class='view-card ' :disHover="true" :padding="0" :bordered="false">
<div slot='title' class="header-container">
<span class='caption-info'>{{$t(model.srfCaption)}}</span>
<div class='toolbar-container'>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.deuiaction1.visabled" :disabled="toolBarModels.deuiaction1.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'deuiaction1' }, $event)">
<i class='fa fa-file-text-o'></i>
<span class='caption'>{{$t('entities.ibizorder.seditview4_layouttoolbar_toolbar.deuiaction1.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview4_layouttoolbar_toolbar.deuiaction1.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem3.visabled" :disabled="toolBarModels.tbitem3.disabled" class=' deepskyblueToolBar' v-loading:i-button @click="toolbar_click({ tag: 'tbitem3' }, $event)">
<i class='fa fa-save'></i>
<span class='caption'>{{$t('entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem3.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem3.tip')}}</div>
</tooltip>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem5.visabled" :disabled="toolBarModels.tbitem5.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'tbitem5' }, $event)">
<i class='sx-tb-saveandclose'></i>
<span class='caption'>{{$t('entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem5.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem5.tip')}}</div>
</tooltip>
<span class='seperator'>|</span>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem9_saveandstart.visabled" :disabled="toolBarModels.tbitem9_saveandstart.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'tbitem9_saveandstart' }, $event)">
<i class=''></i>
<span class='caption'>{{$t('entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem9_saveandstart.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem9_saveandstart.tip')}}</div>
</tooltip>
<span class='seperator'>|</span>
<tooltip :transfer="true" :max-width="600">
<i-button v-show="toolBarModels.tbitem15.visabled" :disabled="toolBarModels.tbitem15.disabled" class='' v-loading:i-button @click="toolbar_click({ tag: 'tbitem15' }, $event)">
<i class='fa fa-print'></i>
<span class='caption'>{{$t('entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem15.caption')}}</span>
</i-button>
<div slot='content'>{{$t('entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem15.tip')}}</div>
</tooltip>
</div> </div>
</div>
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup31' viewname='ibizorderseditview4_layout'></app-alert-group> </div>
<div class="content-container">
<div class="edit-view4">
<div class="edit-view4-form">
<view_form
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:autosave="false"
:viewtag="viewtag"
:showBusyIndicator="true"
updateAction="Update"
removeAction="Remove"
loaddraftAction="GetDraft"
loadAction="Get"
createAction="Create"
WFSubmitAction=""
WFStartAction=""
style=''
name="form"
ref='form'
@load="form_load($event)"
@save="form_save($event)"
@remove="form_remove($event)"
@closeview="closeView($event)">
</view_form>
</div>
<div class="edit-view4-content">
<view_drtab
:viewState="viewState"
name='drtab'
ref='drtab'
:viewparams="viewparams"
:context="context"
parentName = "IBIZOrder"
:isShowSlot="false"
@selectionchange='drtab_selectionchange($event)'
@closeview='closeView($event)'>
</view_drtab>
<component
class="view-container2"
v-if="drItem && !drItem.disabled"
:is="drItem.navView"
:viewDefaultUsage="false"
:viewdata="JSON.stringify(drItem.srfnavdata.context)"
:viewparam="JSON.stringify(drItem.srfnavdata.viewparams)">
</component>
</div>
</div>
</div>
</card>
</div>
</template> </template>
<script lang='tsx'> <script lang='tsx'>
...@@ -113,6 +15,7 @@ import IBIZOrderAuthService from '@/authservice/ibizorder/ibizorder-auth-service ...@@ -113,6 +15,7 @@ import IBIZOrderAuthService from '@/authservice/ibizorder/ibizorder-auth-service
import EditView4Engine from '@engine/view/edit-view4-engine'; import EditView4Engine from '@engine/view/edit-view4-engine';
import IBIZOrderUIService from '@/uiservice/ibizorder/ibizorder-ui-service'; import IBIZOrderUIService from '@/uiservice/ibizorder/ibizorder-ui-service';
import { PanelContainerModel, PanelRawitemModel, PanelFieldModel, PanelControlModel, PanelButtonModel, PanelUserControlModel, PanelTabPanelModel, PanelTabPageModel, PanelCtrlPosModel} from '@/model/panel-detail';
@Component({ @Component({
...@@ -270,9 +173,9 @@ export default class IBIZOrderSEditView4_layoutBase extends Vue { ...@@ -270,9 +173,9 @@ export default class IBIZOrderSEditView4_layoutBase extends Vue {
* @memberof IBIZOrderSEditView4_layoutBase * @memberof IBIZOrderSEditView4_layoutBase
*/ */
public containerModel: any = { public containerModel: any = {
view_drtab: { name: 'drtab', type: 'DRTAB' },
view_toolbar: { name: 'toolbar', type: 'TOOLBAR' },
view_form: { name: 'form', type: 'FORM' }, view_form: { name: 'form', type: 'FORM' },
view_toolbar: { name: 'toolbar', type: 'TOOLBAR' },
view_drtab: { name: 'drtab', type: 'DRTAB' },
wflinks: [], wflinks: [],
}; };
...@@ -334,6 +237,119 @@ export default class IBIZOrderSEditView4_layoutBase extends Vue { ...@@ -334,6 +237,119 @@ export default class IBIZOrderSEditView4_layoutBase extends Vue {
}; };
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public rootLayoutDetailNames: string[] = [ ];
/**
* 视图布局数据
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public layoutData:any = {
};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public layoutModelDetails:any = {
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public handleValueChange($event: { name: string, value: any }) {
if (!$event || !$event.name || Object.is($event.name, '') || !this.layoutData.hasOwnProperty($event.name)) {
return;
}
this.layoutData[$event.name] = $event.value;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public handleButtonClick(name: string, $event?: any) {
let datas: any[] = [this.layoutData];
let xData: any = null;
let paramJO: any = {};
let contextJO: any = {};
const _this: any = this;
}
/** /**
* 视图引擎 * 视图引擎
...@@ -678,76 +694,76 @@ export default class IBIZOrderSEditView4_layoutBase extends Vue { ...@@ -678,76 +694,76 @@ export default class IBIZOrderSEditView4_layoutBase extends Vue {
/** /**
* drtab 部件 selectionchange 事件 * form 部件 load 事件
* *
* @param {*} [args={}] * @param {*} [args={}]
* @param {*} $event * @param {*} $event
* @memberof IBIZOrderSEditView4_layoutBase * @memberof IBIZOrderSEditView4_layoutBase
*/ */
public drtab_selectionchange($event: any, $event2?: any) { public form_load($event: any, $event2?: any) {
this.engine.onCtrlEvent('drtab', 'selectionchange', $event); this.engine.onCtrlEvent('form', 'load', $event);
} }
/** /**
* toolbar 部件 click 事件 * form 部件 save 事件
* *
* @param {*} [args={}] * @param {*} [args={}]
* @param {*} $event * @param {*} $event
* @memberof IBIZOrderSEditView4_layoutBase * @memberof IBIZOrderSEditView4_layoutBase
*/ */
public toolbar_click($event: any, $event2?: any) { public form_save($event: any, $event2?: any) {
if (Object.is($event.tag, 'deuiaction1')) { this.engine.onCtrlEvent('form', 'save', $event);
this.toolbar_deuiaction1_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem3')) {
this.toolbar_tbitem3_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem5')) {
this.toolbar_tbitem5_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem9_saveandstart')) {
this.toolbar_tbitem9_saveandstart_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem15')) {
this.toolbar_tbitem15_click(null, '', $event2);
}
} }
/** /**
* form 部件 load 事件 * form 部件 remove 事件
* *
* @param {*} [args={}] * @param {*} [args={}]
* @param {*} $event * @param {*} $event
* @memberof IBIZOrderSEditView4_layoutBase * @memberof IBIZOrderSEditView4_layoutBase
*/ */
public form_load($event: any, $event2?: any) { public form_remove($event: any, $event2?: any) {
this.engine.onCtrlEvent('form', 'load', $event); this.engine.onCtrlEvent('form', 'remove', $event);
} }
/** /**
* form 部件 save 事件 * toolbar 部件 click 事件
* *
* @param {*} [args={}] * @param {*} [args={}]
* @param {*} $event * @param {*} $event
* @memberof IBIZOrderSEditView4_layoutBase * @memberof IBIZOrderSEditView4_layoutBase
*/ */
public form_save($event: any, $event2?: any) { public toolbar_click($event: any, $event2?: any) {
this.engine.onCtrlEvent('form', 'save', $event); if (Object.is($event.tag, 'deuiaction1')) {
this.toolbar_deuiaction1_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem3')) {
this.toolbar_tbitem3_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem5')) {
this.toolbar_tbitem5_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem9_saveandstart')) {
this.toolbar_tbitem9_saveandstart_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem15')) {
this.toolbar_tbitem15_click(null, '', $event2);
}
} }
/** /**
* form 部件 remove 事件 * drtab 部件 selectionchange 事件
* *
* @param {*} [args={}] * @param {*} [args={}]
* @param {*} $event * @param {*} $event
* @memberof IBIZOrderSEditView4_layoutBase * @memberof IBIZOrderSEditView4_layoutBase
*/ */
public form_remove($event: any, $event2?: any) { public drtab_selectionchange($event: any, $event2?: any) {
this.engine.onCtrlEvent('form', 'remove', $event); this.engine.onCtrlEvent('drtab', 'selectionchange', $event);
} }
......
.ibizorder-sedit-view4-layout{ .ibizorder-sedit-view4-layout {
position: relative; display: block;
}
.toolbar-container {
button {
margin: 6px 0px 4px 4px;
.caption {
margin-left: 4px;
}
}
.seperator {
color: #dcdee2;
margin: 0 0px 0 4px;
}
}
// this is less
.deepskyblueToolBar {color:white !important;background-color:#108cee !important;}
.view-container.ibizorder-sedit-view4-layout > .view-card > .ivu-card-body > .content-container {
height: calc(100% - 30px);
} }
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
import { Component } from 'vue-property-decorator'; import { Component } from 'vue-property-decorator';
import IBIZOrderSEditView4_layoutBase from './ibizorder-sedit-view4-layout-base.vue'; import IBIZOrderSEditView4_layoutBase from './ibizorder-sedit-view4-layout-base.vue';
import view_drtab from '@widgets/ibizorder/default-drtab/default-drtab.vue';
import view_form from '@widgets/ibizorder/sform-form/sform-form.vue'; import view_form from '@widgets/ibizorder/sform-form/sform-form.vue';
import view_drtab from '@widgets/ibizorder/default-drtab/default-drtab.vue';
@Component({ @Component({
components: { components: {
view_drtab,
view_form, view_form,
view_drtab,
}, },
beforeRouteEnter: (to: any, from: any, next: any) => { beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => { next((vm: any) => {
......
...@@ -275,6 +275,14 @@ export default class IBIZOrderTestCLChartViewBase extends Vue { ...@@ -275,6 +275,14 @@ export default class IBIZOrderTestCLChartViewBase extends Vue {
*/ */
public viewState: Subject<ViewState> = new Subject(); public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderTestCLChartViewBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -315,6 +323,65 @@ export default class IBIZOrderTestCLChartViewBase extends Vue { ...@@ -315,6 +323,65 @@ export default class IBIZOrderTestCLChartViewBase extends Vue {
page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container_grid1','container_5'] , dataRegionType: 'INHERIT' }) page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container_grid1','container_5'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderTestCLChartViewBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderTestCLChartViewBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
...@@ -360,6 +360,14 @@ export default class IBIZOrderTestCLEditView2Base extends Vue { ...@@ -360,6 +360,14 @@ export default class IBIZOrderTestCLEditView2Base extends Vue {
}; };
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderTestCLEditView2Base
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -406,6 +414,65 @@ export default class IBIZOrderTestCLEditView2Base extends Vue { ...@@ -406,6 +414,65 @@ export default class IBIZOrderTestCLEditView2Base extends Vue {
page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['page_container2'] , dataRegionType: 'INHERIT' }) page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['page_container2'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderTestCLEditView2Base
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderTestCLEditView2Base
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
...@@ -242,6 +242,14 @@ export default class IBIZOrderTestCLTreeExpViewBase extends Vue { ...@@ -242,6 +242,14 @@ export default class IBIZOrderTestCLTreeExpViewBase extends Vue {
*/ */
public viewState: Subject<ViewState> = new Subject(); public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderTestCLTreeExpViewBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -276,6 +284,65 @@ export default class IBIZOrderTestCLTreeExpViewBase extends Vue { ...@@ -276,6 +284,65 @@ export default class IBIZOrderTestCLTreeExpViewBase extends Vue {
page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container2','container_grid1'] , dataRegionType: 'INHERIT' }) page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container2','container_grid1'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderTestCLTreeExpViewBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderTestCLTreeExpViewBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
...@@ -244,6 +244,14 @@ export default class IBIZOrderTestCustomLayoutPanelGridExpViewBase extends Vue { ...@@ -244,6 +244,14 @@ export default class IBIZOrderTestCustomLayoutPanelGridExpViewBase extends Vue {
*/ */
public viewState: Subject<ViewState> = new Subject(); public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderTestCustomLayoutPanelGridExpViewBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -278,6 +286,65 @@ export default class IBIZOrderTestCustomLayoutPanelGridExpViewBase extends Vue { ...@@ -278,6 +286,65 @@ export default class IBIZOrderTestCustomLayoutPanelGridExpViewBase extends Vue {
page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container2','container_scroll1'] , dataRegionType: 'INHERIT' }) page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container2','container_scroll1'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderTestCustomLayoutPanelGridExpViewBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderTestCustomLayoutPanelGridExpViewBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
...@@ -434,6 +434,14 @@ export default class IBIZOrderUsr2GridViewBase extends Vue { ...@@ -434,6 +434,14 @@ export default class IBIZOrderUsr2GridViewBase extends Vue {
}; };
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderUsr2GridViewBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -472,6 +480,65 @@ export default class IBIZOrderUsr2GridViewBase extends Vue { ...@@ -472,6 +480,65 @@ export default class IBIZOrderUsr2GridViewBase extends Vue {
page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container_grid1','container4'] , dataRegionType: 'INHERIT' }) page_container:new PanelContainerModel({ name: 'page_container', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['container_grid1','container4'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderUsr2GridViewBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderUsr2GridViewBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
<template> <template>
<div class='view-container detabexpview ibizsample0003-stab-exp-view-layout'> <div class="app-view-layout ibizsample0003-stab-exp-view-layout" style="height: '100%'; width: '100%'; overflow: 'auto';">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizsample0003stabexpview_layout"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup34' viewname='ibizsample0003stabexpview_layout'></app-alert-group></div>
<div class='content-container'>
<view_tabexppanel
:viewState="viewState"
:viewparams="viewparams"
:context="context"
name="tabexppanel"
ref='tabexppanel'
@closeview="closeView($event)">
</view_tabexppanel>
</div> </div>
</card>
</div>
</template> </template>
<script lang='tsx'> <script lang='tsx'>
...@@ -31,6 +15,7 @@ import IBIZSample0003AuthService from '@/authservice/ibizsample0003/ibizsample00 ...@@ -31,6 +15,7 @@ import IBIZSample0003AuthService from '@/authservice/ibizsample0003/ibizsample00
import TabExpViewEngine from '@engine/view/tab-exp-view-engine'; import TabExpViewEngine from '@engine/view/tab-exp-view-engine';
import IBIZSample0003UIService from '@/uiservice/ibizsample0003/ibizsample0003-ui-service'; import IBIZSample0003UIService from '@/uiservice/ibizsample0003/ibizsample0003-ui-service';
import { PanelContainerModel, PanelRawitemModel, PanelFieldModel, PanelControlModel, PanelButtonModel, PanelUserControlModel, PanelTabPanelModel, PanelTabPageModel, PanelCtrlPosModel} from '@/model/panel-detail';
@Component({ @Component({
...@@ -215,6 +200,119 @@ export default class IBIZSample0003STabExpView_layoutBase extends Vue { ...@@ -215,6 +200,119 @@ export default class IBIZSample0003STabExpView_layoutBase extends Vue {
*/ */
public viewState: Subject<ViewState> = new Subject(); public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public rootLayoutDetailNames: string[] = [ ];
/**
* 视图布局数据
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public layoutData:any = {
};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public layoutModelDetails:any = {
};
/**
* 初始化布局
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public handleValueChange($event: { name: string, value: any }) {
if (!$event || !$event.name || Object.is($event.name, '') || !this.layoutData.hasOwnProperty($event.name)) {
return;
}
this.layoutData[$event.name] = $event.value;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public handleButtonClick(name: string, $event?: any) {
let datas: any[] = [this.layoutData];
let xData: any = null;
let paramJO: any = {};
let contextJO: any = {};
const _this: any = this;
}
/** /**
* 视图引擎 * 视图引擎
......
.ibizsample0003-stab-exp-view-layout{
position: relative;
}
.ibizsample0003-stab-exp-view-layout { .ibizsample0003-stab-exp-view-layout {
> .view-card > .ivu-card-body > .content-container > .tabviewpanel { display: block;
overflow: auto;
}
} }
...@@ -259,6 +259,14 @@ export default class IndexBase extends Vue { ...@@ -259,6 +259,14 @@ export default class IndexBase extends Vue {
*/ */
public viewState: Subject<ViewState> = new Subject(); public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IndexBase
*/
public rootLayoutDetailNames: string[] = [ 'container_scroll1' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -315,6 +323,65 @@ export default class IndexBase extends Vue { ...@@ -315,6 +323,65 @@ export default class IndexBase extends Vue {
container_scroll1:new PanelContainerModel({ name: 'container_scroll1', caption: '滚动条容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'BORDER', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['container_scroll_main1','container_scroll_left1','container_scroll_header1'] , dataRegionType: 'INHERIT' }) container_scroll1:new PanelContainerModel({ name: 'container_scroll1', caption: '滚动条容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'BORDER', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['container_scroll_main1','container_scroll_left1','container_scroll_header1'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof IndexBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IndexBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
...@@ -290,6 +290,14 @@ export default class AppIndexViewBase extends Vue { ...@@ -290,6 +290,14 @@ export default class AppIndexViewBase extends Vue {
*/ */
public viewState: Subject<ViewState> = new Subject(); public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof AppIndexViewBase
*/
public rootLayoutDetailNames: string[] = [ 'container1' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -346,6 +354,65 @@ export default class AppIndexViewBase extends Vue { ...@@ -346,6 +354,65 @@ export default class AppIndexViewBase extends Vue {
container1:new PanelContainerModel({ name: 'container1', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['app_apptitle','view_pagecaption','static_label1','static_text1','field_text_dynamic','field_switch','field_textbox','field_qrcode','button_link1','button_openview1','button_calluilogic1','button_calluilogic2','button_calluilogic3','button_calluilogic5','button_calluilogic6','button_calluilogic8','button_calluilogic9','button_calluilogic10'] , dataRegionType: 'INHERIT' }) container1:new PanelContainerModel({ name: 'container1', 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:-1, flexParams:{align:'',dir:'column',vAlign:''}, panel: this , details:['app_apptitle','view_pagecaption','static_label1','static_text1','field_text_dynamic','field_switch','field_textbox','field_qrcode','button_link1','button_openview1','button_calluilogic1','button_calluilogic2','button_calluilogic3','button_calluilogic5','button_calluilogic6','button_calluilogic8','button_calluilogic9','button_calluilogic10'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof AppIndexViewBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof AppIndexViewBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
...@@ -217,6 +217,14 @@ export default class AppLoginViewBase extends Vue { ...@@ -217,6 +217,14 @@ export default class AppLoginViewBase extends Vue {
*/ */
public viewState: Subject<ViewState> = new Subject(); public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof AppLoginViewBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/** /**
* 视图布局数据 * 视图布局数据
* *
...@@ -259,6 +267,65 @@ export default class AppLoginViewBase extends Vue { ...@@ -259,6 +267,65 @@ export default class AppLoginViewBase extends Vue {
page_container:new PanelContainerModel({ name: 'page_container', caption: '图片背景容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'FLEX', layoutPos:'', layoutHeight:100, heightMode:'PERCENTAGE', layoutWidth:100, widthMode:'PERCENTAGE', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['container1'] , dataRegionType: 'INHERIT' }) page_container:new PanelContainerModel({ name: 'page_container', caption: '图片背景容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'FLEX', layoutPos:'', layoutHeight:100, heightMode:'PERCENTAGE', layoutWidth:100, widthMode:'PERCENTAGE', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['container1'] , dataRegionType: 'INHERIT' })
}; };
/**
* 初始化布局
*
* @public
* @memberof AppLoginViewBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
this.rootLayoutDetailNames.forEach(async (name: string) => {
const rootLayoutModelDetail = this.layoutModelDetails[name];
if (!rootLayoutModelDetail) {
return;
}
await this.initLayoutItem(rootLayoutModelDetail);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof AppLoginViewBase
*/
public async initLayoutItem(layoutModelDetail: any, index: number = 0) {
const { name } = layoutModelDetail;
if (!index) {
await layoutModelDetail.load();
this.layoutData[name] = layoutModelDetail.getData();
} else {
const clonelayoutModelDetail = Util.deepCopy(layoutModelDetail);
clonelayoutModelDetail.setIndex(index);
await clonelayoutModelDetail.load();
this.layoutModelDetails.$set(`${name}_${index}`, clonelayoutModelDetail);
this.layoutData.$set(`${name}_${index}`, clonelayoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
multiData.forEach(async (data: any, index: number) => {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key], index);
}
}
})
}
} else {
for (const key of layoutModelDetail.details) {
if (this.layoutModelDetails[key]) {
await this.initLayoutItem(this.layoutModelDetails[key]);
}
}
}
}
}
/** /**
* 处理值改变 * 处理值改变
* *
......
...@@ -553,8 +553,8 @@ export const viewstate: any = { ...@@ -553,8 +553,8 @@ export const viewstate: any = {
viewdatachange: false, viewdatachange: false,
refviews: [ refviews: [
'1ec7069b18d0c9b18fb55c839b2e0822', '1ec7069b18d0c9b18fb55c839b2e0822',
'2e7cbc7793bdd49ea744b56e6e14571c',
'cbf09cbd2a5b6c65479dec84af3fe874', 'cbf09cbd2a5b6c65479dec84af3fe874',
'2e7cbc7793bdd49ea744b56e6e14571c',
], ],
}, },
{ {
......
...@@ -663,7 +663,7 @@ export default class DefaultBase extends Vue implements ControlInterface { ...@@ -663,7 +663,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/ */
public load(opt: any = {}): void { public load(opt: any = {}): void {
if(!this.loadAction){ 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: 'IBIZBOOKGroupByCodelistListView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return; return;
} }
const arg: any = { ...opt }; const arg: any = { ...opt };
...@@ -699,7 +699,7 @@ export default class DefaultBase extends Vue implements ControlInterface { ...@@ -699,7 +699,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/ */
public loadDraft(opt: any = {},mode?:string): void { public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){ 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: 'IBIZBOOKGroupByCodelistListView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return; return;
} }
const arg: any = { ...opt } ; const arg: any = { ...opt } ;
......
...@@ -1300,7 +1300,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface ...@@ -1300,7 +1300,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
*/ */
public load(opt: any = {}): void { public load(opt: any = {}): void {
if(!this.loadAction){ if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.loadaction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.loadaction') as string) });
return; return;
} }
const arg: any = { ...opt }; const arg: any = { ...opt };
...@@ -1335,7 +1335,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface ...@@ -1335,7 +1335,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
*/ */
public loadDraft(opt: any = {}): void { public loadDraft(opt: any = {}): void {
if(!this.loaddraftAction){ if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) });
return; return;
} }
const arg: any = { ...opt } ; const arg: any = { ...opt } ;
...@@ -1396,7 +1396,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface ...@@ -1396,7 +1396,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction; const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){ if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction"; let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.actionname') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) });
return; return;
} }
Object.assign(arg,{viewparams:this.viewparams}); Object.assign(arg,{viewparams:this.viewparams});
...@@ -1504,7 +1504,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface ...@@ -1504,7 +1504,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction; const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){ if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction"; let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.actionname') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) });
return; return;
} }
Object.assign(arg,{viewparams:this.viewparams}); Object.assign(arg,{viewparams:this.viewparams});
...@@ -1578,7 +1578,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface ...@@ -1578,7 +1578,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> { public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> {
return new Promise((resolve: any, reject: any) => { return new Promise((resolve: any, reject: any) => {
if(!this.removeAction){ if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView' + (this.$t('app.formpage.notconfig.removeaction') as string) }); this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKWizardView_layout' + (this.$t('app.formpage.notconfig.removeaction') as string) });
return; return;
} }
const arg: any = opt[0]; const arg: any = opt[0];
......
...@@ -26,10 +26,10 @@ ...@@ -26,10 +26,10 @@
@closeview="closeView($event)"> @closeview="closeView($event)">
</view_tabviewpanel> </view_tabviewpanel>
</tab-pane> </tab-pane>
<tab-pane :index="1" name='tabviewpanel2' tab='stabexpview_layouttabexppanel' class='' v-if="authResourceObject['tabviewpanel2'].visabled" <tab-pane :index="1" name='tabviewpanel3' tab='stabexpview_layouttabexppanel' class='' v-if="authResourceObject['tabviewpanel3'].visabled"
:label="(h) =>{ :label="(h) =>{
return h('div', [ return h('div', [
h('span', '件'), h('span', '件'),
h('Badge', { h('Badge', {
props: { props: {
count: undefined, count: undefined,
...@@ -38,22 +38,22 @@ ...@@ -38,22 +38,22 @@
}) })
]) ])
}" > }" >
<view_tabviewpanel2 <view_tabviewpanel3
:viewState="viewState" :viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))" :viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))" :context="JSON.parse(JSON.stringify(context))"
:activeData="JSON.stringify(activeData)" :activeData="JSON.stringify(activeData)"
v-if="isInit.tabviewpanel2" v-if="isInit.tabviewpanel3"
name="tabviewpanel2" name="tabviewpanel3"
ref='tabviewpanel2' ref='tabviewpanel3'
@viewpanelDatasChange = "tabViewPanelDatasChange" @viewpanelDatasChange = "tabViewPanelDatasChange"
@closeview="closeView($event)"> @closeview="closeView($event)">
</view_tabviewpanel2> </view_tabviewpanel3>
</tab-pane> </tab-pane>
<tab-pane :index="2" name='tabviewpanel3' tab='stabexpview_layouttabexppanel' class='' v-if="authResourceObject['tabviewpanel3'].visabled" <tab-pane :index="2" name='tabviewpanel2' tab='stabexpview_layouttabexppanel' class='' v-if="authResourceObject['tabviewpanel2'].visabled"
:label="(h) =>{ :label="(h) =>{
return h('div', [ return h('div', [
h('span', '件'), h('span', '件'),
h('Badge', { h('Badge', {
props: { props: {
count: undefined, count: undefined,
...@@ -62,17 +62,17 @@ ...@@ -62,17 +62,17 @@
}) })
]) ])
}" > }" >
<view_tabviewpanel3 <view_tabviewpanel2
:viewState="viewState" :viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))" :viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))" :context="JSON.parse(JSON.stringify(context))"
:activeData="JSON.stringify(activeData)" :activeData="JSON.stringify(activeData)"
v-if="isInit.tabviewpanel3" v-if="isInit.tabviewpanel2"
name="tabviewpanel3" name="tabviewpanel2"
ref='tabviewpanel3' ref='tabviewpanel2'
@viewpanelDatasChange = "tabViewPanelDatasChange" @viewpanelDatasChange = "tabViewPanelDatasChange"
@closeview="closeView($event)"> @closeview="closeView($event)">
</view_tabviewpanel3> </view_tabviewpanel2>
</tab-pane> </tab-pane>
</tabs> </tabs>
</div> </div>
...@@ -243,8 +243,8 @@ export default class STabExpView_layouttabexppanelBase extends Vue implements Co ...@@ -243,8 +243,8 @@ export default class STabExpView_layouttabexppanelBase extends Vue implements Co
*/ */
public isInit: any = { public isInit: any = {
tabviewpanel: true , tabviewpanel: true ,
tabviewpanel2: false ,
tabviewpanel3: false , tabviewpanel3: false ,
tabviewpanel2: false ,
} }
/** /**
...@@ -312,7 +312,7 @@ export default class STabExpView_layouttabexppanelBase extends Vue implements Co ...@@ -312,7 +312,7 @@ export default class STabExpView_layouttabexppanelBase extends Vue implements Co
* @type {*} * @type {*}
* @memberof STabExpView_layouttabexppanelBase * @memberof STabExpView_layouttabexppanelBase
*/ */
public authResourceObject:any = {'tabviewpanel':{resourcetag:null,visabled: true,disabled: false},'tabviewpanel2':{resourcetag:null,visabled: true,disabled: false},'tabviewpanel3':{resourcetag:null,visabled: true,disabled: false}}; public authResourceObject:any = {'tabviewpanel':{resourcetag:null,visabled: true,disabled: false},'tabviewpanel3':{resourcetag:null,visabled: true,disabled: false},'tabviewpanel2':{resourcetag:null,visabled: true,disabled: false}};
/** /**
* 被激活的分页面板 * 被激活的分页面板
......
...@@ -2,15 +2,15 @@ ...@@ -2,15 +2,15 @@
import { Component } from 'vue-property-decorator'; import { Component } from 'vue-property-decorator';
import STabExpView_layouttabexppanelBase from './stab-exp-view-layouttabexppanel-tabexppanel-base.vue'; import STabExpView_layouttabexppanelBase from './stab-exp-view-layouttabexppanel-tabexppanel-base.vue';
import view_tabviewpanel from '@widgets/ibizsample0003/stab-exp-view-layouttabviewpanel-tabviewpanel/stab-exp-view-layouttabviewpanel-tabviewpanel.vue'; import view_tabviewpanel from '@widgets/ibizsample0003/stab-exp-view-layouttabviewpanel-tabviewpanel/stab-exp-view-layouttabviewpanel-tabviewpanel.vue';
import view_tabviewpanel2 from '@widgets/ibizsample0003/stab-exp-view-layouttabviewpanel2-tabviewpanel/stab-exp-view-layouttabviewpanel2-tabviewpanel.vue';
import view_tabviewpanel3 from '@widgets/ibizsample0003/stab-exp-view-layouttabviewpanel3-tabviewpanel/stab-exp-view-layouttabviewpanel3-tabviewpanel.vue'; import view_tabviewpanel3 from '@widgets/ibizsample0003/stab-exp-view-layouttabviewpanel3-tabviewpanel/stab-exp-view-layouttabviewpanel3-tabviewpanel.vue';
import view_tabviewpanel2 from '@widgets/ibizsample0003/stab-exp-view-layouttabviewpanel2-tabviewpanel/stab-exp-view-layouttabviewpanel2-tabviewpanel.vue';
@Component({ @Component({
components: { components: {
view_tabviewpanel, view_tabviewpanel,
view_tabviewpanel2,
view_tabviewpanel3, view_tabviewpanel3,
view_tabviewpanel2,
} }
}) })
......
...@@ -340,7 +340,7 @@ ...@@ -340,7 +340,7 @@
<!--输出实体[IBIZORDER]数据结构 --> <!--输出实体[IBIZORDER]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizorder-75-14"> <changeSet author="a_LAB01_df847bdfd" id="tab-ibizorder-87-14">
<createTable tableName="T_IBIZORDER"> <createTable tableName="T_IBIZORDER">
<column name="TP" remarks="" type="TEXT(1048576)"> <column name="TP" remarks="" type="TEXT(1048576)">
</column> </column>
...@@ -640,7 +640,7 @@ ...@@ -640,7 +640,7 @@
<!--输出实体[IBIZSAMPLE0003]数据结构 --> <!--输出实体[IBIZSAMPLE0003]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizsample0003-3-21"> <changeSet author="a_LAB01_df847bdfd" id="tab-ibizsample0003-35-21">
<createTable tableName="T_IBIZSAMPLE0003"> <createTable tableName="T_IBIZSAMPLE0003">
<column name="IBIZSAMPLE0003NAME" remarks="" type="VARCHAR(200)"> <column name="IBIZSAMPLE0003NAME" remarks="" type="VARCHAR(200)">
</column> </column>
......
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
</createView> </createView>
</changeSet> </changeSet>
<!--输出实体[IBIZORDER]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步--> <!--输出实体[IBIZORDER]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步-->
<changeSet author="a_LAB01_df847bdfd" id="view-ibizorder-75-8" runOnChange="true"> <changeSet author="a_LAB01_df847bdfd" id="view-ibizorder-87-8" runOnChange="true">
<createView fullDefinition="false" replaceIfExists="true" viewName="V_IBIZORDER"> <createView fullDefinition="false" replaceIfExists="true" viewName="V_IBIZORDER">
<![CDATA[ SELECT t1.[AMOUNT], t1.[CREATEDATE], t1.[CREATEMAN], t1.[DETAILNUM], t1.[IBIZCUSTOMERID], t11.[IBIZCUSTOMERNAME], t1.[IBIZORDERID], t1.[IBIZORDERNAME], t1.[MEMO], t1.[ORDERSTATE], t1.[ORDERTIME], t1.[ORDERTYPE], t1.[ORDERUID], t1.[UPDATEDATE], t1.[UPDATEMAN], t1.[WFINSTANCEID], t1.[WFSTATE], t1.[WFSTEP] FROM [T_IBIZORDER] t1 LEFT JOIN T_IBIZCUSTOMER t11 ON t1.IBIZCUSTOMERID = t11.IBIZCUSTOMERID ]]> <![CDATA[ SELECT t1.[AMOUNT], t1.[CREATEDATE], t1.[CREATEMAN], t1.[DETAILNUM], t1.[IBIZCUSTOMERID], t11.[IBIZCUSTOMERNAME], t1.[IBIZORDERID], t1.[IBIZORDERNAME], t1.[MEMO], t1.[ORDERSTATE], t1.[ORDERTIME], t1.[ORDERTYPE], t1.[ORDERUID], t1.[UPDATEDATE], t1.[UPDATEMAN], t1.[WFINSTANCEID], t1.[WFSTATE], t1.[WFSTEP] FROM [T_IBIZORDER] t1 LEFT JOIN T_IBIZCUSTOMER t11 ON t1.IBIZCUSTOMERID = t11.IBIZCUSTOMERID ]]>
</createView> </createView>
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
</createView> </createView>
</changeSet> </changeSet>
<!--输出实体[IBIZSAMPLE0003]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步--> <!--输出实体[IBIZSAMPLE0003]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步-->
<changeSet author="a_LAB01_df847bdfd" id="view-ibizsample0003-3-15" runOnChange="true"> <changeSet author="a_LAB01_df847bdfd" id="view-ibizsample0003-35-15" runOnChange="true">
<createView fullDefinition="false" replaceIfExists="true" viewName="V_IBIZSAMPLE0003"> <createView fullDefinition="false" replaceIfExists="true" viewName="V_IBIZSAMPLE0003">
<![CDATA[ SELECT t1.[CREATEDATE], t1.[CREATEMAN], t1.[FIELD01], t1.[IBIZSAMPLE0003ID], t1.[IBIZSAMPLE0003NAME], t1.[MEMO], t1.[PIBIZSAMPLE0003ID], t11.[IBIZSAMPLE0003NAME] AS [PIBIZSAMPLE0003NAME], t1.[UPDATEDATE], t1.[UPDATEMAN] FROM [T_IBIZSAMPLE0003] t1 LEFT JOIN T_IBIZSAMPLE0003 t11 ON t1.PIBIZSAMPLE0003ID = t11.IBIZSAMPLE0003ID ]]> <![CDATA[ SELECT t1.[CREATEDATE], t1.[CREATEMAN], t1.[FIELD01], t1.[IBIZSAMPLE0003ID], t1.[IBIZSAMPLE0003NAME], t1.[MEMO], t1.[PIBIZSAMPLE0003ID], t11.[IBIZSAMPLE0003NAME] AS [PIBIZSAMPLE0003NAME], t1.[UPDATEDATE], t1.[UPDATEMAN] FROM [T_IBIZSAMPLE0003] t1 LEFT JOIN T_IBIZSAMPLE0003 t11 ON t1.PIBIZSAMPLE0003ID = t11.IBIZSAMPLE0003ID ]]>
</createView> </createView>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册