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

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

上级 20f04015
<template>
<div class='view-container dekanbanview ibizbookinter-func-kan-ban-view-layout'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizbookinterfunckanbanview_layout"></app-studioaction>
<card class='view-card view-no-caption ' :dis-hover="true" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup59' viewname='ibizbookinterfunckanbanview_layout'></app-alert-group> </div>
<div class='content-container'>
<div style="margin-bottom:6px;">
<div class="quick-group-container">
<app-quick-group :items="quickGroupModel" @valuechange="quickGroupValueChange"></app-quick-group>
</div>
<i-input v-show='!this.isExpandSearchForm ' v-model='query' search @on-search='onSearch' placeholder="图书名称" class='pull-left' style='max-width: 400px;margin-top:6px;' />
<div class='pull-right'>
<div class="app-view-layout ibizbookinter-func-kan-ban-view-layout" :style="{height: '100%', width: '100%','display': 'flex', 'flex-direction': 'column'}">
<app-standard-container name="page_container" :layoutModelDetails="layoutModelDetails">
<template #container_grid1>
<app-simpleflex-container name="container_grid1" :layoutModelDetails="layoutModelDetails">
<template #container1>
<app-simpleflex-container name="container1" :layoutModelDetails="layoutModelDetails">
<template #view_pagecaption>
<app-preset-caption name="view_pagecaption" :layoutModelDetails="layoutModelDetails">实体看板视图(内置功能)</app-preset-caption>
</template>
</app-simpleflex-container>
</template>
<template #container2>
<app-simpleflex-container name="container2" :layoutModelDetails="layoutModelDetails">
<template #quicksearchbar>
<app-ctrl-pos name="quicksearchbar" :layoutModelDetails="layoutModelDetails">
<i-input v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="图书名称" />
</app-ctrl-pos>
</template>
</app-simpleflex-container>
</template>
<template #container_2>
<app-simpleflex-container name="container_2" :layoutModelDetails="layoutModelDetails">
<template #toolbar>
<app-ctrl-pos name="toolbar" :layoutModelDetails="layoutModelDetails">
<div class='toolbar-container'>
<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)">
......@@ -87,15 +99,22 @@
</dropdown-item>
</dropdown-menu>
</dropdown>
</div>
</div>
</div>
</div>
</app-ctrl-pos>
</template>
</app-simpleflex-container>
</template>
</app-simpleflex-container>
</template>
<template #container4>
<app-standard-container name="container4" :layoutModelDetails="layoutModelDetails">
<template #searchform>
<app-ctrl-pos name="searchform" :layoutModelDetails="layoutModelDetails">
<view_searchform
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:showBusyIndicator="true"
v-show="isExpandSearchForm"
loaddraftAction="FilterGetDraft"
loadAction="FilterGet"
......@@ -105,7 +124,11 @@
@load="searchform_load($event)"
@save="searchform_save($event)"
@closeview="closeView($event)">
</view_searchform>
</view_searchform>
</app-ctrl-pos>
</template>
<template #kanban>
<app-ctrl-pos name="kanban" :layoutModelDetails="layoutModelDetails">
<view_kanban
:viewState="viewState"
:viewparams="viewparams"
......@@ -126,11 +149,13 @@
@load="kanban_load($event)"
@beforeload="kanban_beforeload($event)"
@closeview="closeView($event)">
</view_kanban>
</view_kanban>
</app-ctrl-pos>
</template>
</app-standard-container>
</template>
</app-standard-container>
</div>
</card>
</div>
</template>
......@@ -145,6 +170,7 @@ import IBIZBOOKAuthService from '@/authservice/ibizbook/ibizbook-auth-service';
import KanBanViewEngine from '@engine/view/kan-ban-view-engine';
import IBIZBOOKUIService from '@/uiservice/ibizbook/ibizbook-ui-service';
import { PanelContainerModel, PanelRawitemModel, PanelFieldModel, PanelControlModel, PanelButtonModel, PanelUserControlModel, PanelTabPanelModel, PanelTabPageModel, PanelCtrlPosModel} from '@/model/panel-detail';
import CodeListService from "@/codelist/codelist-service";
......@@ -314,6 +340,7 @@ export default class IBIZBOOKInterFuncKanBanView_layoutBase extends Vue {
view_kanban: { name: 'kanban', type: 'KANBAN' },
view_toolbar: { name: 'toolbar', type: 'TOOLBAR' },
view_searchform: { name: 'searchform', type: 'SEARCHFORM' },
view_searchbar: { name: 'searchbar', type: 'SEARCHBAR' },
};
/**
......@@ -383,6 +410,215 @@ export default class IBIZBOOKInterFuncKanBanView_layoutBase extends Vue {
};
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKInterFuncKanBanView_layoutBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/**
* 视图布局面板项模型对象
*
* @public
* @memberof IBIZBOOKInterFuncKanBanView_layoutBase
*/
public layoutItems:any = {
view_pagecaption:{ name: 'view_pagecaption', caption: '页面标题', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'FULL', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'LEFT', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', },
container1:{ name: 'container1', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:6, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['view_pagecaption'] , dataRegionType: 'INHERIT' },
quicksearchbar:{ name: 'quicksearchbar', caption: 'QUICKSEARCHBAR', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'RIGHT', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container2', panel: this },
container2:{ name: 'container2', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:3, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['quicksearchbar'] , dataRegionType: 'INHERIT' },
toolbar:{ name: 'toolbar', caption: 'TOOLBAR', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'RIGHT', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_2', panel: this },
container_2:{ name: 'container_2', caption: '容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['toolbar'] , dataRegionType: 'INHERIT' },
container_grid1:{ name: 'container_grid1', caption: '栅格容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'page_container', panel: this , details:['container1','container2','container_2'] , dataRegionType: 'INHERIT' },
searchform:{ name: 'searchform', caption: 'SEARCHFORM', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container4', panel: this },
kanban:{ name: 'kanban', caption: 'KANBAN', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:100, heightMode:'PERCENTAGE', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container4', panel: this },
container4:{ name: 'container4', caption: '容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'FLEX', layoutPos:'', layoutHeight:100, heightMode:'PERCENTAGE', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'page_container', panel: this , details:['searchform','kanban'] , dataRegionType: 'INHERIT' },
page_container:{ 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 IBIZBOOKInterFuncKanBanView_layoutBase
*/
public isLayoutLoadding: boolean = true;
/**
* 视图布局数据
*
* @public
* @memberof IBIZBOOKInterFuncKanBanView_layoutBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZBOOKInterFuncKanBanView_layoutBase
*/
public layoutModelDetails:any = {
view_pagecaption:new PanelFieldModel({ name: 'view_pagecaption', caption: '页面标题', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'FULL', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'LEFT', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: 'VIEW_PAGECAPTION', }),
container1:new PanelContainerModel({ name: 'container1', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:6, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['view_pagecaption'] , dataRegionType: 'INHERIT' }),
quicksearchbar:new PanelCtrlPosModel({ name: 'quicksearchbar', caption: 'QUICKSEARCHBAR', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'RIGHT', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container2', panel: this }),
container2:new PanelContainerModel({ name: 'container2', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:3, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['quicksearchbar'] , dataRegionType: 'INHERIT' }),
toolbar:new PanelCtrlPosModel({ name: 'toolbar', caption: 'TOOLBAR', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'RIGHT', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_2', panel: this }),
container_2:new PanelContainerModel({ name: 'container_2', caption: '容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['toolbar'] , dataRegionType: 'INHERIT' }),
container_grid1:new PanelContainerModel({ name: 'container_grid1', caption: '栅格容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'page_container', panel: this , details:['container1','container2','container_2'] , dataRegionType: 'INHERIT' }),
searchform:new PanelCtrlPosModel({ name: 'searchform', caption: 'SEARCHFORM', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container4', panel: this }),
kanban:new PanelCtrlPosModel({ name: 'kanban', caption: 'KANBAN', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:100, heightMode:'PERCENTAGE', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container4', panel: this }),
container4:new PanelContainerModel({ name: 'container4', caption: '容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'FLEX', layoutPos:'', layoutHeight:100, heightMode:'PERCENTAGE', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'page_container', panel: this , details:['searchform','kanban'] , 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 IBIZBOOKInterFuncKanBanView_layoutBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKInterFuncKanBanView_layoutBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.layoutData[name] = layoutModelDetail.getData();
this.$set(this.layoutData, name, layoutModelDetail.getData());
this.$set(this.layoutModelDetails, name, layoutModelDetail);
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZBOOKInterFuncKanBanView_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;
}
/**
* 获取按钮行为xData
*
* @public
* @memberof IBIZBOOKInterFuncKanBanView_layoutBase
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
// 获取激活部件
if (!xData) {
const xDataControlName = "kanban";
let xDataControl = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name.toLowerCase() == xDataControlName.toLowerCase()) {
xDataControl = layoutModel;
return
}
})
xData = xDataControl;
}
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZBOOKInterFuncKanBanView_layoutBase
*/
public handleButtonClick(name: string, $event?: any) {
const datas: any[] = [this.layoutData];
const xData: any = this.getButtonXData(name);
const paramJO: any = {};
const contextJO: any = {};
const _this: any = this;
}
/**
......
.ibizbookinter-func-kan-ban-view-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;}
.ibizbookinter-func-kan-ban-view-layout{
.ibizbookinter-func-kan-ban-view-layout {
display: block;
}
......@@ -4,10 +4,12 @@ import IBIZBOOKInterFuncKanBanView_layoutBase from './ibizbookinter-func-kan-ban
import view_kanban from '@widgets/ibizbook/inter-func-kanban-kanban/inter-func-kanban-kanban.vue';
import view_searchform from '@widgets/ibizbook/default-searchform/default-searchform.vue';
import view_searchbar from '@widgets/ibizbook/-searchbar/-searchbar.vue';
@Component({
components: {
view_kanban,
view_searchform,
view_searchbar,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
......
<template>
<div class="view-container demeditview9 ibizbookusr2-medit-view9-layout">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizbookusr2meditview9_layout"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :disHover="true" :padding="0" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup35' viewname='ibizbookusr2meditview9_layout'></app-alert-group> </div>
<div class="content-container">
<div class="app-view-layout ibizbookusr2-medit-view9-layout" :style="{height: '100%', width: '100%','display': 'flex', 'flex-direction': 'column'}">
<app-standard-container name="page_container" :layoutModelDetails="layoutModelDetails">
<template #container_grid1>
<app-simpleflex-container name="container_grid1" :layoutModelDetails="layoutModelDetails">
<template #container1>
<app-simpleflex-container name="container1" :layoutModelDetails="layoutModelDetails">
<template #view_pagecaption>
<app-preset-caption name="view_pagecaption" :layoutModelDetails="layoutModelDetails">实体多表单编辑视图</app-preset-caption>
</template>
</app-simpleflex-container>
</template>
</app-simpleflex-container>
</template>
<template #container2>
<app-standard-container name="container2" :layoutModelDetails="layoutModelDetails">
<template #meditviewpanel>
<app-ctrl-pos name="meditviewpanel" :layoutModelDetails="layoutModelDetails">
<view_meditviewpanel
:viewState="viewState"
:viewparams="viewparams"
......@@ -24,10 +33,13 @@
name="meditviewpanel"
ref='meditviewpanel'
@closeview="closeView($event)">
</view_meditviewpanel>
</view_meditviewpanel>
</app-ctrl-pos>
</template>
</app-standard-container>
</template>
</app-standard-container>
</div>
</card>
</div>
</template>
<script lang='tsx'>
......@@ -40,6 +52,7 @@ import IBIZBOOKAuthService from '@/authservice/ibizbook/ibizbook-auth-service';
import IBIZBOOKUIService from '@/uiservice/ibizbook/ibizbook-ui-service';
import { PanelContainerModel, PanelRawitemModel, PanelFieldModel, PanelControlModel, PanelButtonModel, PanelUserControlModel, PanelTabPanelModel, PanelTabPageModel, PanelCtrlPosModel} from '@/model/panel-detail';
@Component({
......@@ -209,6 +222,7 @@ export default class IBIZBOOKUsr2MEditView9_layoutBase extends Vue {
*/
public containerModel: any = {
view_meditviewpanel: { name: 'meditviewpanel', type: 'MULTIEDITVIEWPANEL' },
view_searchbar: { name: 'searchbar', type: 'SEARCHBAR' },
};
/**
......@@ -236,6 +250,193 @@ export default class IBIZBOOKUsr2MEditView9_layoutBase extends Vue {
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKUsr2MEditView9_layoutBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/**
* 视图布局面板项模型对象
*
* @public
* @memberof IBIZBOOKUsr2MEditView9_layoutBase
*/
public layoutItems:any = {
view_pagecaption:{ name: 'view_pagecaption', caption: '页面标题', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', },
container1:{ name: 'container1', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:12, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['view_pagecaption'] , dataRegionType: 'INHERIT' },
container_grid1:{ name: 'container_grid1', caption: '栅格容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'page_container', panel: this , details:['container1'] , dataRegionType: 'INHERIT' },
meditviewpanel:{ name: 'meditviewpanel', caption: '多表单面板', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container2', panel: this },
container2:{ name: 'container2', 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:'',vAlign:''}, parentName: 'page_container', panel: this , details:['meditviewpanel'] , dataRegionType: 'INHERIT' },
page_container:{ 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:'',vAlign:''}, panel: this , details:['container_grid1','container2'] , dataRegionType: 'INHERIT' }
};
/**
* 视图布局是否加载
*
* @public
* @memberof IBIZBOOKUsr2MEditView9_layoutBase
*/
public isLayoutLoadding: boolean = true;
/**
* 视图布局数据
*
* @public
* @memberof IBIZBOOKUsr2MEditView9_layoutBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZBOOKUsr2MEditView9_layoutBase
*/
public layoutModelDetails:any = {
view_pagecaption:new PanelFieldModel({ name: 'view_pagecaption', caption: '页面标题', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: 'VIEW_PAGECAPTION', }),
container1:new PanelContainerModel({ name: 'container1', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:12, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['view_pagecaption'] , dataRegionType: 'INHERIT' }),
container_grid1:new PanelContainerModel({ name: 'container_grid1', caption: '栅格容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'page_container', panel: this , details:['container1'] , dataRegionType: 'INHERIT' }),
meditviewpanel:new PanelCtrlPosModel({ name: 'meditviewpanel', caption: '多表单面板', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container2', panel: this }),
container2:new PanelContainerModel({ name: 'container2', 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:'',vAlign:''}, parentName: 'page_container', panel: this , details:['meditviewpanel'] , 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:'',vAlign:''}, panel: this , details:['container_grid1','container2'] , dataRegionType: 'INHERIT' })
};
/**
* 初始化布局
*
* @public
* @memberof IBIZBOOKUsr2MEditView9_layoutBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKUsr2MEditView9_layoutBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.layoutData[name] = layoutModelDetail.getData();
this.$set(this.layoutData, name, layoutModelDetail.getData());
this.$set(this.layoutModelDetails, name, layoutModelDetail);
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZBOOKUsr2MEditView9_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;
}
/**
* 获取按钮行为xData
*
* @public
* @memberof IBIZBOOKUsr2MEditView9_layoutBase
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZBOOKUsr2MEditView9_layoutBase
*/
public handleButtonClick(name: string, $event?: any) {
const datas: any[] = [this.layoutData];
const xData: any = this.getButtonXData(name);
const paramJO: any = {};
const contextJO: any = {};
const _this: any = this;
}
......
.ibizbookusr2-medit-view9-layout{
position: relative;
}
.ibizbookusr2-medit-view9-layout{
.ibizbookusr2-medit-view9-layout {
display: block;
}
......@@ -3,9 +3,11 @@ import { Component } from 'vue-property-decorator';
import IBIZBOOKUsr2MEditView9_layoutBase from './ibizbookusr2-medit-view9-layout-base.vue';
import view_meditviewpanel from '@widgets/ibizbook/main-multieditviewpanel/main-multieditviewpanel.vue';
import view_searchbar from '@widgets/ibizbook/-searchbar/-searchbar.vue';
@Component({
components: {
view_meditviewpanel,
view_searchbar,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
......
<template>
<div class='view-container delistview ibizbookusr4-list-view-layout'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizbookusr4listview_layout"></app-studioaction>
<card class='view-card view-no-caption ' :bordered="false" :dis-hover="true" >
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup96' viewname='ibizbookusr4listview_layout'></app-alert-group> </div>
<div class='content-container'>
<div style="margin-bottom:6px;">
<div class="quick-group-container">
<app-quick-group :items="quickGroupModel" @valuechange="quickGroupValueChange"></app-quick-group>
</div>
<i-input v-show="!isExpandSearchForm" v-model="query" search enter-button @on-search="onSearch($event)" class='pull-left' placeholder="图书名称" style='max-width: 400px;margin-top:6px;padding-left: 24px' />
<div class='pull-right'>
<div class="app-view-layout ibizbookusr4-list-view-layout" :style="{height: '100%', width: '100%','display': 'flex', 'flex-direction': 'column'}">
<app-standard-container name="page_container" :layoutModelDetails="layoutModelDetails">
<template #container_grid1>
<app-simpleflex-container name="container_grid1" :layoutModelDetails="layoutModelDetails">
<template #container1>
<app-simpleflex-container name="container1" :layoutModelDetails="layoutModelDetails">
<template #view_pagecaption>
<app-preset-caption name="view_pagecaption" :layoutModelDetails="layoutModelDetails">实体列表视图</app-preset-caption>
</template>
</app-simpleflex-container>
</template>
<template #container2>
<app-simpleflex-container name="container2" :layoutModelDetails="layoutModelDetails">
<template #quicksearchbar>
<app-ctrl-pos name="quicksearchbar" :layoutModelDetails="layoutModelDetails">
<i-input v-model="query" search enter-button @on-search="onSearch($event)" class='quick-search-input' style='max-width: 400px;' placeholder="图书名称" />
</app-ctrl-pos>
</template>
</app-simpleflex-container>
</template>
<template #container_2>
<app-simpleflex-container name="container_2" :layoutModelDetails="layoutModelDetails">
<template #toolbar>
<app-ctrl-pos name="toolbar" :layoutModelDetails="layoutModelDetails">
<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)">
......@@ -43,15 +52,22 @@
</i-button>
<div slot='content'>{{$t('entities.ibizbook.usr4listview_layouttoolbar_toolbar.deuiaction4.tip')}}</div>
</tooltip>
</div>
</div>
</div>
<view_searchform
</app-ctrl-pos>
</template>
</app-simpleflex-container>
</template>
</app-simpleflex-container>
</template>
<template #container5>
<app-standard-container name="container5" :layoutModelDetails="layoutModelDetails">
<template #searchform>
<app-ctrl-pos name="searchform" :layoutModelDetails="layoutModelDetails">
<view_searchform
:viewState="viewState"
:viewparams="viewparams"
:context="context"
:showBusyIndicator="true"
v-show="isExpandSearchForm"
loaddraftAction="FilterGetDraft"
loadAction="FilterGet"
......@@ -62,7 +78,11 @@
@save="searchform_save($event)"
@closeview="closeView($event)">
</view_searchform>
<view_list
</app-ctrl-pos>
</template>
<template #list>
<app-ctrl-pos name="list" :layoutModelDetails="layoutModelDetails">
<view_list
:viewState="viewState"
:viewparams="viewparams"
:context="context"
......@@ -83,10 +103,12 @@
@beforeload="list_beforeload($event)"
@closeview="closeView($event)">
</view_list>
</app-ctrl-pos>
</template>
</app-standard-container>
</template>
</app-standard-container>
</div>
</card>
</div>
</template>
......@@ -101,6 +123,7 @@ import IBIZBOOKAuthService from '@/authservice/ibizbook/ibizbook-auth-service';
import ListViewEngine from '@engine/view/list-view-engine';
import IBIZBOOKUIService from '@/uiservice/ibizbook/ibizbook-ui-service';
import { PanelContainerModel, PanelRawitemModel, PanelFieldModel, PanelControlModel, PanelButtonModel, PanelUserControlModel, PanelTabPanelModel, PanelTabPageModel, PanelCtrlPosModel} from '@/model/panel-detail';
import CodeListService from "@/codelist/codelist-service";
......@@ -270,6 +293,7 @@ export default class IBIZBOOKUsr4ListView_layoutBase extends Vue {
view_searchform: { name: 'searchform', type: 'SEARCHFORM' },
view_list: { name: 'list', type: 'LIST' },
view_toolbar: { name: 'toolbar', type: 'TOOLBAR' },
view_searchbar: { name: 'searchbar', type: 'SEARCHBAR' },
};
/**
......@@ -326,6 +350,215 @@ export default class IBIZBOOKUsr4ListView_layoutBase extends Vue {
};
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKUsr4ListView_layoutBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/**
* 视图布局面板项模型对象
*
* @public
* @memberof IBIZBOOKUsr4ListView_layoutBase
*/
public layoutItems:any = {
view_pagecaption:{ name: 'view_pagecaption', caption: '页面标题', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'FULL', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'LEFT', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', },
container1:{ name: 'container1', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:6, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['view_pagecaption'] , dataRegionType: 'INHERIT' },
quicksearchbar:{ name: 'quicksearchbar', caption: 'QUICKSEARCHBAR', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'RIGHT', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container2', panel: this },
container2:{ name: 'container2', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:3, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['quicksearchbar'] , dataRegionType: 'INHERIT' },
toolbar:{ name: 'toolbar', caption: 'TOOLBAR', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'RIGHT', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_2', panel: this },
container_2:{ name: 'container_2', caption: '容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['toolbar'] , dataRegionType: 'INHERIT' },
container_grid1:{ name: 'container_grid1', caption: '栅格容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'page_container', panel: this , details:['container1','container2','container_2'] , dataRegionType: 'INHERIT' },
searchform:{ name: 'searchform', caption: 'SEARCHFORM', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container5', panel: this },
list:{ name: 'list', caption: 'LIST', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:100, heightMode:'PERCENTAGE', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container5', panel: this },
container5:{ name: 'container5', 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:''}, parentName: 'page_container', panel: this , details:['searchform','list'] , dataRegionType: 'INHERIT' },
page_container:{ 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 IBIZBOOKUsr4ListView_layoutBase
*/
public isLayoutLoadding: boolean = true;
/**
* 视图布局数据
*
* @public
* @memberof IBIZBOOKUsr4ListView_layoutBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZBOOKUsr4ListView_layoutBase
*/
public layoutModelDetails:any = {
view_pagecaption:new PanelFieldModel({ name: 'view_pagecaption', caption: '页面标题', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'FULL', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'LEFT', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: 'VIEW_PAGECAPTION', }),
container1:new PanelContainerModel({ name: 'container1', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:6, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['view_pagecaption'] , dataRegionType: 'INHERIT' }),
quicksearchbar:new PanelCtrlPosModel({ name: 'quicksearchbar', caption: 'QUICKSEARCHBAR', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'RIGHT', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container2', panel: this }),
container2:new PanelContainerModel({ name: 'container2', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:3, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['quicksearchbar'] , dataRegionType: 'INHERIT' }),
toolbar:new PanelCtrlPosModel({ name: 'toolbar', caption: 'TOOLBAR', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'RIGHT', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_2', panel: this }),
container_2:new PanelContainerModel({ name: 'container_2', caption: '容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['toolbar'] , dataRegionType: 'INHERIT' }),
container_grid1:new PanelContainerModel({ name: 'container_grid1', caption: '栅格容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'page_container', panel: this , details:['container1','container2','container_2'] , dataRegionType: 'INHERIT' }),
searchform:new PanelCtrlPosModel({ name: 'searchform', caption: 'SEARCHFORM', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container5', panel: this }),
list:new PanelCtrlPosModel({ name: 'list', caption: 'LIST', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:100, heightMode:'PERCENTAGE', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container5', panel: this }),
container5:new PanelContainerModel({ name: 'container5', 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:''}, parentName: 'page_container', panel: this , details:['searchform','list'] , 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 IBIZBOOKUsr4ListView_layoutBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKUsr4ListView_layoutBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.layoutData[name] = layoutModelDetail.getData();
this.$set(this.layoutData, name, layoutModelDetail.getData());
this.$set(this.layoutModelDetails, name, layoutModelDetail);
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZBOOKUsr4ListView_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;
}
/**
* 获取按钮行为xData
*
* @public
* @memberof IBIZBOOKUsr4ListView_layoutBase
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
// 获取激活部件
if (!xData) {
const xDataControlName = "list";
let xDataControl = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name.toLowerCase() == xDataControlName.toLowerCase()) {
xDataControl = layoutModel;
return
}
})
xData = xDataControl;
}
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZBOOKUsr4ListView_layoutBase
*/
public handleButtonClick(name: string, $event?: any) {
const datas: any[] = [this.layoutData];
const xData: any = this.getButtonXData(name);
const paramJO: any = {};
const contextJO: any = {};
const _this: any = this;
}
/**
......
.ibizbookusr4-list-view-layout{
position: relative;
.ibizbookusr4-list-view-layout {
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
......@@ -4,10 +4,12 @@ import IBIZBOOKUsr4ListView_layoutBase from './ibizbookusr4-list-view-layout-bas
import view_searchform from '@widgets/ibizbook/default-searchform/default-searchform.vue';
import view_list from '@widgets/ibizbook/lnternal-func-list-list/lnternal-func-list-list.vue';
import view_searchbar from '@widgets/ibizbook/-searchbar/-searchbar.vue';
@Component({
components: {
view_searchform,
view_list,
view_searchbar,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
......
<template>
<div class="view-container deganttview ibizorder-gantt-view-layout">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizorderganttview_layout"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :disHover="true" :padding="0" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup73' viewname='ibizorderganttview_layout'></app-alert-group> </div>
<div class="content-container">
<div class="app-view-layout ibizorder-gantt-view-layout" :style="{height: '100%', width: '100%', overflow: 'auto'}">
<app-standard-container name="page_container" :layoutModelDetails="layoutModelDetails">
<template #container_grid1>
<app-simpleflex-container name="container_grid1" :layoutModelDetails="layoutModelDetails">
<template #container1>
<app-simpleflex-container name="container1" :layoutModelDetails="layoutModelDetails">
<template #view_pagecaption>
<app-preset-caption name="view_pagecaption" :layoutModelDetails="layoutModelDetails">实体甘特视图</app-preset-caption>
</template>
</app-simpleflex-container>
</template>
</app-simpleflex-container>
</template>
<template #container2>
<app-standard-container name="container2" :layoutModelDetails="layoutModelDetails">
<template #gantt>
<app-ctrl-pos name="gantt" :layoutModelDetails="layoutModelDetails">
<view_gantt
:viewState="viewState"
:viewparams="viewparams"
......@@ -15,10 +24,13 @@
name="gantt"
ref='gantt'
@closeview="closeView($event)">
</view_gantt>
</view_gantt>
</app-ctrl-pos>
</template>
</app-standard-container>
</template>
</app-standard-container>
</div>
</card>
</div>
</template>
<script lang='tsx'>
......@@ -31,6 +43,7 @@ import IBIZOrderAuthService from '@/authservice/ibizorder/ibizorder-auth-service
import IBIZOrderUIService from '@/uiservice/ibizorder/ibizorder-ui-service';
import { PanelContainerModel, PanelRawitemModel, PanelFieldModel, PanelControlModel, PanelButtonModel, PanelUserControlModel, PanelTabPanelModel, PanelTabPageModel, PanelCtrlPosModel} from '@/model/panel-detail';
@Component({
......@@ -236,6 +249,205 @@ export default class IBIZOrderGanttView_layoutBase extends Vue {
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderGanttView_layoutBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/**
* 视图布局面板项模型对象
*
* @public
* @memberof IBIZOrderGanttView_layoutBase
*/
public layoutItems:any = {
view_pagecaption:{ name: 'view_pagecaption', caption: '页面标题', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', },
container1:{ name: 'container1', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:12, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['view_pagecaption'] , dataRegionType: 'INHERIT' },
container_grid1:{ name: 'container_grid1', caption: '栅格容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'page_container', panel: this , details:['container1'] , dataRegionType: 'INHERIT' },
gantt:{ name: 'gantt', caption: '甘特部件', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container2', panel: this },
container2:{ name: 'container2', 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:'',vAlign:''}, parentName: 'page_container', panel: this , details:['gantt'] , dataRegionType: 'INHERIT' },
page_container:{ 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:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['container_grid1','container2'] , dataRegionType: 'INHERIT' }
};
/**
* 视图布局是否加载
*
* @public
* @memberof IBIZOrderGanttView_layoutBase
*/
public isLayoutLoadding: boolean = true;
/**
* 视图布局数据
*
* @public
* @memberof IBIZOrderGanttView_layoutBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZOrderGanttView_layoutBase
*/
public layoutModelDetails:any = {
view_pagecaption:new PanelFieldModel({ name: 'view_pagecaption', caption: '页面标题', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: 'VIEW_PAGECAPTION', }),
container1:new PanelContainerModel({ name: 'container1', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:12, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['view_pagecaption'] , dataRegionType: 'INHERIT' }),
container_grid1:new PanelContainerModel({ name: 'container_grid1', caption: '栅格容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'page_container', panel: this , details:['container1'] , dataRegionType: 'INHERIT' }),
gantt:new PanelCtrlPosModel({ name: 'gantt', caption: '甘特部件', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container2', panel: this }),
container2:new PanelContainerModel({ name: 'container2', 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:'',vAlign:''}, parentName: 'page_container', panel: this , details:['gantt'] , 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:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['container_grid1','container2'] , dataRegionType: 'INHERIT' })
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderGanttView_layoutBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderGanttView_layoutBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.layoutData[name] = layoutModelDetail.getData();
this.$set(this.layoutData, name, layoutModelDetail.getData());
this.$set(this.layoutModelDetails, name, layoutModelDetail);
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZOrderGanttView_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;
}
/**
* 获取按钮行为xData
*
* @public
* @memberof IBIZOrderGanttView_layoutBase
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
// 获取激活部件
if (!xData) {
const xDataControlName = "gantt";
let xDataControl = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name.toLowerCase() == xDataControlName.toLowerCase()) {
xDataControl = layoutModel;
return
}
})
xData = xDataControl;
}
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZOrderGanttView_layoutBase
*/
public handleButtonClick(name: string, $event?: any) {
const datas: any[] = [this.layoutData];
const xData: any = this.getButtonXData(name);
const paramJO: any = {};
const contextJO: any = {};
const _this: any = this;
}
/**
......
.ibizorder-gantt-view-layout{
position: relative;
}
.ibizorder-gantt-view-layout {
> .view-card > .ivu-card-body > .content-container > .gantt {
overflow: auto;
}
display: block;
}
<template>
<div class='view-container detreegridexview ibizorder-tree-grid-ex-view-layout'>
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizordertreegridexview_layout"></app-studioaction>
<card class='view-card view-no-caption' :dis-hover="true" :bordered="false">
<div class='view-top-messages'>
<app-alert-group position='TOP' :context="context" :viewparam="viewparams" infoGroup='VMGroup58' viewname='ibizordertreegridexview_layout'></app-alert-group> </div>
<div class='content-container'>
<div style='margin-bottom: 6px;'>
<div class='pull-right'>
<div class="app-view-layout ibizorder-tree-grid-ex-view-layout" :style="{height: '100%', width: '100%', overflow: 'auto'}">
<app-standard-container name="page_container" :layoutModelDetails="layoutModelDetails">
<template #container_grid1>
<app-simpleflex-container name="container_grid1" :layoutModelDetails="layoutModelDetails">
<template #container1>
<app-simpleflex-container name="container1" :layoutModelDetails="layoutModelDetails">
<template #view_pagecaption>
<app-preset-caption name="view_pagecaption" :layoutModelDetails="layoutModelDetails">实体树表格视图(增强)</app-preset-caption>
</template>
</app-simpleflex-container>
</template>
<template #container2>
<app-simpleflex-container name="container2" :layoutModelDetails="layoutModelDetails">
<template #toolbar>
<app-ctrl-pos name="toolbar" :layoutModelDetails="layoutModelDetails">
<div class='toolbar-container'>
</div>
</div>
</div>
</div>
</app-ctrl-pos>
</template>
</app-simpleflex-container>
</template>
</app-simpleflex-container>
</template>
<template #container3>
<app-standard-container name="container3" :layoutModelDetails="layoutModelDetails">
<template #treegridex>
<app-ctrl-pos name="treegridex" :layoutModelDetails="layoutModelDetails">
<view_treegridex
:viewState="viewState"
:viewparams="viewparams"
......@@ -24,10 +39,13 @@
@load="treegridex_load($event)"
@beforeload="treegridex_beforeload($event)"
@closeview="closeView($event)">
</view_treegridex>
</view_treegridex>
</app-ctrl-pos>
</template>
</app-standard-container>
</template>
</app-standard-container>
</div>
</card>
</div>
</template>
<script lang='tsx'>
......@@ -41,6 +59,7 @@ import IBIZOrderAuthService from '@/authservice/ibizorder/ibizorder-auth-service
import TreeGridExViewEngine from '@engine/view/tree-grid-ex-view-engine';
import IBIZOrderUIService from '@/uiservice/ibizorder/ibizorder-ui-service';
import { PanelContainerModel, PanelRawitemModel, PanelFieldModel, PanelControlModel, PanelButtonModel, PanelUserControlModel, PanelTabPanelModel, PanelTabPageModel, PanelCtrlPosModel} from '@/model/panel-detail';
@Component({
......@@ -256,6 +275,209 @@ export default class IBIZOrderTreeGridExView_layoutBase extends Vue {
};
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderTreeGridExView_layoutBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/**
* 视图布局面板项模型对象
*
* @public
* @memberof IBIZOrderTreeGridExView_layoutBase
*/
public layoutItems:any = {
view_pagecaption:{ name: 'view_pagecaption', caption: '页面标题', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', },
container1:{ name: 'container1', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:3, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['view_pagecaption'] , dataRegionType: 'INHERIT' },
toolbar:{ name: 'toolbar', caption: '工具栏', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container2', panel: this },
container2:{ name: 'container2', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:9, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['toolbar'] , dataRegionType: 'INHERIT' },
container_grid1:{ name: 'container_grid1', caption: '栅格容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'page_container', panel: this , details:['container1','container2'] , dataRegionType: 'INHERIT' },
treegridex:{ name: 'treegridex', caption: '树表格部件', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container3', panel: this },
container3:{ name: 'container3', 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:'',vAlign:''}, parentName: 'page_container', panel: this , details:['treegridex'] , dataRegionType: 'INHERIT' },
page_container:{ 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:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['container_grid1','container3'] , dataRegionType: 'INHERIT' }
};
/**
* 视图布局是否加载
*
* @public
* @memberof IBIZOrderTreeGridExView_layoutBase
*/
public isLayoutLoadding: boolean = true;
/**
* 视图布局数据
*
* @public
* @memberof IBIZOrderTreeGridExView_layoutBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZOrderTreeGridExView_layoutBase
*/
public layoutModelDetails:any = {
view_pagecaption:new PanelFieldModel({ name: 'view_pagecaption', caption: '页面标题', isShowCaption: false, sysCss: '', itemType: 'FIELD', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , fieldState: '0', predefinedType: 'VIEW_PAGECAPTION', }),
container1:new PanelContainerModel({ name: 'container1', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:3, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['view_pagecaption'] , dataRegionType: 'INHERIT' }),
toolbar:new PanelCtrlPosModel({ name: 'toolbar', caption: '工具栏', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container2', panel: this }),
container2:new PanelContainerModel({ name: 'container2', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:9, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_grid1', panel: this , details:['toolbar'] , dataRegionType: 'INHERIT' }),
container_grid1:new PanelContainerModel({ name: 'container_grid1', caption: '栅格容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'SIMPLEFLEX', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'page_container', panel: this , details:['container1','container2'] , dataRegionType: 'INHERIT' }),
treegridex:new PanelCtrlPosModel({ name: 'treegridex', caption: '树表格部件', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container3', panel: this }),
container3:new PanelContainerModel({ name: 'container3', 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:'',vAlign:''}, parentName: 'page_container', panel: this , details:['treegridex'] , 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:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['container_grid1','container3'] , dataRegionType: 'INHERIT' })
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderTreeGridExView_layoutBase
*/
public async initLayout() {
if (this.rootLayoutDetailNames.length > 0) {
for (let i = 0; i < this.rootLayoutDetailNames.length; i++) {
const name = this.rootLayoutDetailNames[i];
const rootItem = this.layoutItems[name];
if (!rootItem) {
return;
}
await this.initLayoutItem(rootItem);
}
}
return true;
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderTreeGridExView_layoutBase
*/
public async initLayoutItem(layoutModelItem: any, index: number = 0) {
const { name } = layoutModelItem;
const layoutModelDetail = Util.getLayoutItemInstance(layoutModelItem);
if (!index) {
await layoutModelDetail.load(this.context, this.viewparams);
this.layoutData[name] = layoutModelDetail.getData();
this.$set(this.layoutData, name, layoutModelDetail.getData());
this.$set(this.layoutModelDetails, name, layoutModelDetail);
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZOrderTreeGridExView_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;
}
/**
* 获取按钮行为xData
*
* @public
* @memberof IBIZOrderTreeGridExView_layoutBase
*/
public getButtonXData(name: string): any {
let xData = null;
let curLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name == name) {
curLayoutModel = layoutModel;
}
})
// 获取数据容器
if (curLayoutModel) {
const getDataArea = (cLayoutModel: any): any => {
let dataArea = null;
let parentLayoutModel = null;
Object.values(this.layoutModelDetails).forEach((pLayoutModel: any) => {
if (pLayoutModel.name == cLayoutModel.parentName) {
parentLayoutModel = pLayoutModel;
if (parentLayoutModel.dataRegionType == 'SINGLEDATA' || parentLayoutModel.dataRegionType == 'MULTIDATA') {
dataArea = parentLayoutModel;
}
}
})
if (!dataArea && parentLayoutModel) {
dataArea = getDataArea(parentLayoutModel);
}
return dataArea;
}
xData = getDataArea(curLayoutModel);
// 获取激活部件
if (!xData) {
const xDataControlName = "treegridex";
let xDataControl = null;
Object.values(this.layoutModelDetails).forEach((layoutModel: any) => {
if (layoutModel.name.toLowerCase() == xDataControlName.toLowerCase()) {
xDataControl = layoutModel;
return
}
})
xData = xDataControl;
}
}
// 获取当前视图
if (!xData) {
xData = this;
}
return xData;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZOrderTreeGridExView_layoutBase
*/
public handleButtonClick(name: string, $event?: any) {
const datas: any[] = [this.layoutData];
const xData: any = this.getButtonXData(name);
const paramJO: any = {};
const contextJO: any = {};
const _this: any = this;
}
/**
* 视图引擎
......
.ibizorder-tree-grid-ex-view-layout{
position: relative;
.ibizorder-tree-grid-ex-view-layout {
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
......@@ -590,7 +590,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORListView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORGridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -626,7 +626,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORListView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORGridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
......@@ -663,7 +663,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr5DataView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -699,7 +699,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr9GridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr5DataView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
......@@ -1800,7 +1800,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView' + (this.$t('app.formpage.notconfig.loadaction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView_layout' + (this.$t('app.formpage.notconfig.loadaction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -1835,7 +1835,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {}): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView_layout' + (this.$t('app.formpage.notconfig.loaddraftaction') as string) });
return;
}
const arg: any = { ...opt } ;
......@@ -1897,7 +1897,7 @@ export default class MainBase extends Vue implements ControlInterface {
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView' + (this.$t('app.formpage.notconfig.actionname') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) });
return;
}
Object.assign(arg,{viewparams:this.viewparams});
......@@ -2005,7 +2005,7 @@ export default class MainBase extends Vue implements ControlInterface {
const action: any = Object.is(data.srfuf, '1') ? this.updateAction : this.createAction;
if(!action){
let actionName:any = Object.is(data.srfuf, '1')?"updateAction":"createAction";
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView' + (this.$t('app.formpage.notconfig.actionname') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView_layout' + (this.$t('app.formpage.notconfig.actionname') as string) });
return;
}
Object.assign(arg,{viewparams:this.viewparams});
......@@ -2082,7 +2082,7 @@ export default class MainBase extends Vue implements ControlInterface {
public remove(opt:Array<any> = [],showResultInfo?: boolean): Promise<any> {
return new Promise((resolve: any, reject: any) => {
if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView' + (this.$t('app.formpage.notconfig.removeaction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKOptionView_layout' + (this.$t('app.formpage.notconfig.removeaction') as string) });
return;
}
const arg: any = opt[0];
......
......@@ -522,7 +522,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderListExpView' + (this.$t('app.list.notConfig.fetchAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderListExpView_layout' + (this.$t('app.list.notConfig.fetchAction') as string) });
return;
}
const arg: any = {...opt};
......@@ -638,7 +638,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
*/
public async remove(datas: any[]): Promise<any> {
if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderListExpView' + (this.$t('app.list.notConfig.removeAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderListExpView_layout' + (this.$t('app.list.notConfig.removeAction') as string) });
return;
}
if (datas.length === 0) {
......@@ -733,7 +733,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
try {
if(Object.is(item.rowDataState, 'create')){
if(!this.createAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderListExpView' + (this.$t('app.list.notConfig.createAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderListExpView_layout' + (this.$t('app.list.notConfig.createAction') as string) });
}else{
Object.assign(item,{viewparams:this.viewparams});
let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
......@@ -741,7 +741,7 @@ export default class ListExpBase extends Vue implements ControlInterface {
}
}else if(Object.is(item.rowDataState, 'update')){
if(!this.updateAction){
this.$Notice.error({ title: (this.$t('app.commonWords.warning') as string), desc: 'IBIZOrderListExpView' + (this.$t('app.list.notConfig.updateAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.warning') as string), desc: 'IBIZOrderListExpView_layout' + (this.$t('app.list.notConfig.updateAction') as string) });
}else{
Object.assign(item,{viewparams:this.viewparams});
if(item.ibizorder){
......
......@@ -291,7 +291,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof IBIZOrderPickupGridViewBase
* @memberof IBIZOrderSF1GridViewBase
*/
public Edit(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
if (args.length === 0) {
......@@ -413,6 +413,20 @@ export default class MainBase extends Vue implements ControlInterface {
return this.selections[0];
}
/**
* 打开新建数据视图
*
* @type {any}
* @memberof MainBase
*/
@Prop() public newdata: any;
/**
* 打开编辑数据视图
*
* @type {any}
* @memberof MainBase
*/
@Prop() public opendata: any;
/**
* 是否嵌入关系界面
......@@ -945,7 +959,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}, pageReset: boolean = false): void {
if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
return;
}
if(pageReset){
......@@ -1040,7 +1054,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public async remove(datas: any[]): Promise<any> {
if(!this.removeAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.removeAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.removeAction') as string) });
return;
}
let _datas:any[] = [];
......@@ -1146,7 +1160,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public addBatch(arg: any = {}): void {
if(!this.fetchAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.fetchAction') as string) });
return;
}
if(!arg){
......@@ -2063,7 +2077,7 @@ export default class MainBase extends Vue implements ControlInterface {
try {
if(Object.is(item.rowDataState, 'create')){
if(!this.createAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.createAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.createAction') as string) });
}else{
Object.assign(item,{viewparams:this.viewparams});
let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
......@@ -2071,7 +2085,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
}else if(Object.is(item.rowDataState, 'update')){
if(!this.updateAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.updateAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.updateAction') as string) });
}else{
Object.assign(item,{viewparams:this.viewparams});
if(item.ibizorder){
......@@ -2138,7 +2152,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public newRow(args: any[], params?: any, $event?: any, xData?: any): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderPickupGridView'+(this.$t('app.gridpage.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZOrderSF1GridView'+(this.$t('app.gridpage.notConfig.loaddraftAction') as string) });
return;
}
let _this = this;
......
......@@ -104,6 +104,21 @@ export default class MainModel {
prop: 'n_ibizordername_like',
dataType: 'QUERYPARAM'
},
{
name: 'n_orderstate_eq',
prop: 'n_orderstate_eq',
dataType: 'QUERYPARAM'
},
{
name: 'n_ordertime_gt',
prop: 'n_ordertime_gt',
dataType: 'QUERYPARAM'
},
{
name: 'n_ordertime_lt',
prop: 'n_ordertime_lt',
dataType: 'QUERYPARAM'
},
{
name:'size',
......
......@@ -12,6 +12,189 @@
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSAppViewMsgGroup" : {
"modelref" : true,
"id" : "VMGroup59"
},
"getPSDEViewCodeName" : "InterFuncKanBanView_layout",
"getPSDEViewId" : "CB2C7479-B798-4435-9BF9-FAED8FFFA296",
"getPSViewLayoutPanel" : {
"getAllPSPanelFields" : [ {
"id" : "view_pagecaption"
} ],
"codeName" : "Usr1104711548",
"controlType" : "VIEWLAYOUTPANEL",
"layoutMode" : "FLEX",
"logicName" : "InterFuncKanBanView_layoutDEKANBANVIEW",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSControlParam" : { },
"getPSLayout" : {
"layout" : "FLEX"
},
"getRootPSPanelItems" : [ {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "page_container",
"getPSLayout" : {
"dir" : "column",
"layout" : "FLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "栅格容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_grid1",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "面板容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container1",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : 6,
"layout" : "SIMPLEFLEX"
},
"getPSPanelItems" : [ {
"caption" : "页面标题",
"itemStyle" : "DEFAULT",
"itemType" : "FIELD",
"name" : "view_pagecaption",
"getPSEditor" : {
"editorType" : "SPAN",
"name" : "view_pagecaption",
"predefinedType" : "VIEW_PAGECAPTION",
"renderMode" : "HEADING1",
"enableLinkView" : false
},
"getPSLayoutPos" : {
"grow" : -1,
"hAlignSelf" : "LEFT",
"heightMode" : "FULL",
"layout" : "SIMPLEFLEX",
"widthMode" : "FULL"
},
"hidden" : false,
"showCaption" : false
} ]
}, {
"caption" : "面板容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container2",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : 3,
"layout" : "SIMPLEFLEX"
},
"getPSPanelItems" : [ {
"caption" : "QUICKSEARCHBAR",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "quicksearchbar",
"getPSLayoutPos" : {
"grow" : -1,
"hAlignSelf" : "RIGHT",
"heightMode" : "FULL",
"layout" : "SIMPLEFLEX"
},
"showCaption" : true
} ]
}, {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_2",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "SIMPLEFLEX"
},
"getPSPanelItems" : [ {
"caption" : "TOOLBAR",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "toolbar",
"getPSLayoutPos" : {
"grow" : -1,
"hAlignSelf" : "RIGHT",
"heightMode" : "FULL",
"layout" : "SIMPLEFLEX"
},
"showCaption" : true
} ]
} ]
}, {
"caption" : "容器",
"contentHeight" : 100.0,
"height" : 100.0,
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container4",
"getPSLayout" : {
"layout" : "FLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"height" : 100,
"heightMode" : "PERCENTAGE",
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "SEARCHFORM",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "searchform",
"getPSLayoutPos" : {
"grow" : -1,
"heightMode" : "FULL",
"layout" : "FLEX"
},
"showCaption" : true
}, {
"caption" : "KANBAN",
"contentHeight" : 100.0,
"height" : 100.0,
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "kanban",
"getPSLayoutPos" : {
"grow" : -1,
"height" : 100,
"heightMode" : "PERCENTAGE",
"layout" : "FLEX"
},
"showCaption" : true
} ]
} ]
} ],
"layoutBodyOnly" : false,
"layoutPanel" : true,
"useDefaultLayout" : false,
"viewProxyMode" : true,
"modelid" : "ACEB7429-6FF9-4B69-9624-D233F48CCED1",
"modeltype" : "PSSYSVIEWLAYOUTPANEL",
"getPSAppViewEngines" : [ {
"engineCat" : "VIEW",
"engineType" : "KanBanView",
......@@ -229,10 +412,6 @@
"editMode" : true
}
} ],
"getPSAppViewMsgGroup" : {
"modelref" : true,
"id" : "VMGroup59"
},
"getPSAppViewRefs" : [ {
"name" : "NEWDATA",
"realTitle" : "图书编辑视图",
......@@ -1352,22 +1531,60 @@
"name" : "searchform",
"modelid" : "643b7d93870f8f5842b663af83ba85ae",
"modeltype" : "PSDEFORM_SEARCHFORM"
} ],
"getPSDEViewCodeName" : "InterFuncKanBanView_layout",
"getPSDEViewId" : "CB2C7479-B798-4435-9BF9-FAED8FFFA296",
"getPSViewLayoutPanel" : {
"codeName" : "Layoutpanel",
"controlStyle" : "APPDEKANBANVIEW",
"controlType" : "VIEWLAYOUTPANEL",
"name" : "layoutpanel",
}, {
"controlType" : "SEARCHBAR",
"dynaModelFilePath" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK/PSSEARCHBARS/.json",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSControlParam" : { },
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
"getPSControlParam" : {
"id" : "searchbar"
},
"getPSSearchBarGroups" : [ {
"caption" : "全部",
"itemType" : "GROUP",
"name" : "all",
"width" : 0.0,
"addSeparator" : false
}, {
"caption" : "已上架",
"data" : "{\"n_sailstate_eq\":400}",
"itemType" : "GROUP",
"name" : "onshelf",
"width" : 0.0,
"addSeparator" : false
}, {
"caption" : "未上架",
"data" : "{\"n_sailstate_eq\":300}",
"itemType" : "GROUP",
"name" : "noshelf",
"width" : 0.0,
"addSeparator" : false
}, {
"caption" : "未出版",
"data" : "{\"n_sailstate_eq\":100}",
"itemType" : "GROUP",
"name" : "nopublish",
"width" : 0.0,
"addSeparator" : false
}, {
"caption" : "等待出版",
"data" : "{\"n_sailstate_eq\":200}",
"itemType" : "GROUP",
"name" : "waitpublish",
"width" : 0.0,
"addSeparator" : false
} ],
"quickGroupCount" : 3,
"quickSearchMode" : 1,
"quickSearchWidth" : 0,
"enableFilter" : false,
"enableGroup" : true,
"enableQuickSearch" : true,
"mobileSearchBar" : false,
"name" : "searchbar"
} ]
},
"getQuickGroupPSCodeList" : {
"modelref" : true,
......
......@@ -11,6 +11,115 @@
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSAppViewMsgGroup" : {
"modelref" : true,
"id" : "VMGroup35"
},
"getPSDEViewCodeName" : "Usr2MEditView9_layout",
"getPSDEViewId" : "B2E75262-D2DD-4A82-AFF8-72B0051143E0",
"getPSViewLayoutPanel" : {
"getAllPSPanelFields" : [ {
"id" : "view_pagecaption"
} ],
"codeName" : "Usr1104334934",
"controlType" : "VIEWLAYOUTPANEL",
"layoutMode" : "FLEX",
"logicName" : "Usr2MEditView9_layoutDEMEDITVIEW9",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSControlParam" : { },
"getPSLayout" : {
"layout" : "FLEX"
},
"getRootPSPanelItems" : [ {
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "page_container",
"getPSLayout" : {
"layout" : "FLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "栅格容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_grid1",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "面板容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container1",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : 12,
"layout" : "SIMPLEFLEX"
},
"getPSPanelItems" : [ {
"caption" : "页面标题",
"itemStyle" : "DEFAULT",
"itemType" : "FIELD",
"name" : "view_pagecaption",
"getPSEditor" : {
"editorType" : "SPAN",
"name" : "view_pagecaption",
"predefinedType" : "VIEW_PAGECAPTION",
"renderMode" : "HEADING1",
"enableLinkView" : false
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "SIMPLEFLEX"
},
"hidden" : false,
"showCaption" : false
} ]
} ]
}, {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container2",
"getPSLayout" : {
"layout" : "FLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "多表单面板",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "meditviewpanel",
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"showCaption" : true
} ]
} ]
} ],
"layoutBodyOnly" : false,
"layoutPanel" : true,
"useDefaultLayout" : false,
"viewProxyMode" : true,
"modelid" : "B8601145-5056-4689-99BC-F170AFC419B1",
"modeltype" : "PSSYSVIEWLAYOUTPANEL",
"getPSAppViewLogics" : [ {
"logicTrigger" : "CUSTOM",
"logicType" : "SYSUILOGIC",
......@@ -35,10 +144,6 @@
"editMode" : true
}
} ],
"getPSAppViewMsgGroup" : {
"modelref" : true,
"id" : "VMGroup35"
},
"getPSControls" : [ {
"aggMode" : "NONE",
"codeName" : "Main",
......@@ -320,22 +425,25 @@
"name" : "meditviewpanel",
"modelid" : "6cd11a010cbbb4d2bad5e1aad7e8020a",
"modeltype" : "PSDEGRID"
} ],
"getPSDEViewCodeName" : "Usr2MEditView9_layout",
"getPSDEViewId" : "B2E75262-D2DD-4A82-AFF8-72B0051143E0",
"getPSViewLayoutPanel" : {
"codeName" : "Layoutpanel",
"controlStyle" : "APPDEMEDITVIEW9",
"controlType" : "VIEWLAYOUTPANEL",
"name" : "layoutpanel",
}, {
"controlType" : "SEARCHBAR",
"dynaModelFilePath" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK/PSSEARCHBARS/.json",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSControlParam" : { },
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
"getPSControlParam" : {
"id" : "searchbar"
},
"quickGroupCount" : -1,
"quickSearchMode" : 1,
"quickSearchWidth" : 0,
"enableFilter" : false,
"enableGroup" : false,
"enableQuickSearch" : true,
"mobileSearchBar" : false,
"name" : "searchbar"
} ]
},
"title" : "实体多表单编辑视图",
"getTitlePSLanguageRes" : {
......@@ -344,8 +452,9 @@
"viewStyle" : "DEFAULT",
"viewType" : "DEMEDITVIEW9",
"enableDP" : true,
"enableFilter" : false,
"enableFilter" : true,
"enableQuickSearch" : true,
"enableSearch" : true,
"showCaptionBar" : false,
"modelid" : "876c361caba385fee259f7a7359de8e3",
"modeltype" : "PSAPPDEVIEW"
......
......@@ -12,6 +12,186 @@
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSAppViewMsgGroup" : {
"modelref" : true,
"id" : "VMGroup96"
},
"getPSDEViewCodeName" : "Usr4ListView_layout",
"getPSDEViewId" : "C0DF96A9-FBC2-4D6F-85DE-ECDB2803BBAD",
"getPSViewLayoutPanel" : {
"getAllPSPanelFields" : [ {
"id" : "view_pagecaption"
} ],
"codeName" : "Usr1104642059",
"controlType" : "VIEWLAYOUTPANEL",
"layoutMode" : "FLEX",
"logicName" : "Usr4ListView_layoutDELISTVIEW",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSControlParam" : { },
"getPSLayout" : {
"layout" : "FLEX"
},
"getRootPSPanelItems" : [ {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "page_container",
"getPSLayout" : {
"dir" : "column",
"layout" : "FLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "栅格容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_grid1",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "面板容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container1",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : 6,
"layout" : "SIMPLEFLEX"
},
"getPSPanelItems" : [ {
"caption" : "页面标题",
"itemStyle" : "DEFAULT",
"itemType" : "FIELD",
"name" : "view_pagecaption",
"getPSEditor" : {
"editorType" : "SPAN",
"name" : "view_pagecaption",
"predefinedType" : "VIEW_PAGECAPTION",
"renderMode" : "HEADING1",
"enableLinkView" : false
},
"getPSLayoutPos" : {
"grow" : -1,
"hAlignSelf" : "LEFT",
"heightMode" : "FULL",
"layout" : "SIMPLEFLEX",
"widthMode" : "FULL"
},
"hidden" : false,
"showCaption" : false
} ]
}, {
"caption" : "面板容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container2",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : 3,
"layout" : "SIMPLEFLEX"
},
"getPSPanelItems" : [ {
"caption" : "QUICKSEARCHBAR",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "quicksearchbar",
"getPSLayoutPos" : {
"grow" : -1,
"hAlignSelf" : "RIGHT",
"heightMode" : "FULL",
"layout" : "SIMPLEFLEX"
},
"showCaption" : true
} ]
}, {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_2",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "SIMPLEFLEX"
},
"getPSPanelItems" : [ {
"caption" : "TOOLBAR",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "toolbar",
"getPSLayoutPos" : {
"grow" : -1,
"hAlignSelf" : "RIGHT",
"heightMode" : "FULL",
"layout" : "SIMPLEFLEX"
},
"showCaption" : true
} ]
} ]
}, {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container5",
"getPSLayout" : {
"dir" : "column",
"layout" : "FLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "SEARCHFORM",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "searchform",
"getPSLayoutPos" : {
"grow" : -1,
"heightMode" : "FULL",
"layout" : "FLEX"
},
"showCaption" : true
}, {
"caption" : "LIST",
"contentHeight" : 100.0,
"height" : 100.0,
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "list",
"getPSLayoutPos" : {
"grow" : -1,
"height" : 100,
"heightMode" : "PERCENTAGE",
"layout" : "FLEX"
},
"showCaption" : true
} ]
} ]
} ],
"layoutBodyOnly" : false,
"layoutPanel" : true,
"useDefaultLayout" : false,
"viewProxyMode" : true,
"modelid" : "E26532AF-9593-43E8-A9ED-B0835CB756F5",
"modeltype" : "PSSYSVIEWLAYOUTPANEL",
"getPSAppViewEngines" : [ {
"engineCat" : "VIEW",
"engineType" : "ListView",
......@@ -130,10 +310,6 @@
"editMode" : true
}
} ],
"getPSAppViewMsgGroup" : {
"modelref" : true,
"id" : "VMGroup96"
},
"getPSAppViewRefs" : [ {
"name" : "NEWDATA",
"realTitle" : "图书编辑视图",
......@@ -1150,22 +1326,60 @@
} ],
"modelid" : "86d87068d8256316499b9c87ff0783e2",
"modeltype" : "PSDETOOLBAR"
} ],
"getPSDEViewCodeName" : "Usr4ListView_layout",
"getPSDEViewId" : "C0DF96A9-FBC2-4D6F-85DE-ECDB2803BBAD",
"getPSViewLayoutPanel" : {
"codeName" : "Layoutpanel",
"controlStyle" : "APPDELISTVIEW",
"controlType" : "VIEWLAYOUTPANEL",
"name" : "layoutpanel",
}, {
"controlType" : "SEARCHBAR",
"dynaModelFilePath" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK/PSSEARCHBARS/.json",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.json"
},
"getPSControlParam" : { },
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
"getPSControlParam" : {
"id" : "searchbar"
},
"getPSSearchBarGroups" : [ {
"caption" : "全部",
"itemType" : "GROUP",
"name" : "all",
"width" : 0.0,
"addSeparator" : false
}, {
"caption" : "已上架",
"data" : "{\"n_sailstate_eq\":400}",
"itemType" : "GROUP",
"name" : "onshelf",
"width" : 0.0,
"addSeparator" : false
}, {
"caption" : "未上架",
"data" : "{\"n_sailstate_eq\":300}",
"itemType" : "GROUP",
"name" : "noshelf",
"width" : 0.0,
"addSeparator" : false
}, {
"caption" : "未出版",
"data" : "{\"n_sailstate_eq\":100}",
"itemType" : "GROUP",
"name" : "nopublish",
"width" : 0.0,
"addSeparator" : false
}, {
"caption" : "等待出版",
"data" : "{\"n_sailstate_eq\":200}",
"itemType" : "GROUP",
"name" : "waitpublish",
"width" : 0.0,
"addSeparator" : false
} ],
"quickGroupCount" : 3,
"quickSearchMode" : 1,
"quickSearchWidth" : 0,
"enableFilter" : false,
"enableGroup" : true,
"enableQuickSearch" : true,
"mobileSearchBar" : false,
"name" : "searchbar"
} ]
},
"getQuickGroupPSCodeList" : {
"modelref" : true,
......
......@@ -300,18 +300,109 @@
"getPSDEViewCodeName" : "GanttView_layout",
"getPSDEViewId" : "FABC81A7-B59E-4140-8630-84FE5ADB2EFC",
"getPSViewLayoutPanel" : {
"getAllPSPanelFields" : [ {
"id" : "view_pagecaption"
} ],
"codeName" : "Layoutpanel",
"controlStyle" : "APPDEGANTTVIEW",
"controlType" : "VIEWLAYOUTPANEL",
"layoutMode" : "TABLE_24COL",
"logicName" : "甘特视图",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZOrder.json"
},
"getPSControlParam" : { },
"getPSLayout" : {
"columnCount" : 24,
"layout" : "TABLE_24COL"
},
"getRootPSPanelItems" : [ {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "page_container",
"getPSLayout" : {
"layout" : "FLEX"
},
"getPSLayoutPos" : {
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"getPSPanelItems" : [ {
"caption" : "栅格容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_grid1",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "面板容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container1",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : 12,
"layout" : "SIMPLEFLEX"
},
"getPSPanelItems" : [ {
"caption" : "页面标题",
"itemStyle" : "DEFAULT",
"itemType" : "FIELD",
"name" : "view_pagecaption",
"getPSEditor" : {
"editorType" : "SPAN",
"name" : "view_pagecaption",
"predefinedType" : "VIEW_PAGECAPTION",
"renderMode" : "HEADING1",
"enableLinkView" : false
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "SIMPLEFLEX"
},
"hidden" : false,
"showCaption" : false
} ]
} ]
}, {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container2",
"getPSLayout" : {
"layout" : "FLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "甘特部件",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "gantt",
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"showCaption" : true
} ]
} ]
} ],
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
"useDefaultLayout" : false,
"modelid" : "3CF2CD83-FDEC-40C2-9FE7-AC4494127B7D",
"modeltype" : "PSSYSVIEWLAYOUTPANEL"
},
"title" : "实体甘特视图",
"viewStyle" : "DEFAULT",
......
......@@ -302,18 +302,132 @@
"getPSDEViewCodeName" : "TreeGridExView_layout",
"getPSDEViewId" : "D36B9D7E-B00F-4557-BFBE-5C306FD5F257",
"getPSViewLayoutPanel" : {
"getAllPSPanelFields" : [ {
"id" : "view_pagecaption"
} ],
"codeName" : "Layoutpanel",
"controlStyle" : "APPDETREEGRIDEXVIEW",
"controlType" : "VIEWLAYOUTPANEL",
"layoutMode" : "TABLE_24COL",
"logicName" : "树表格视图",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZOrder.json"
},
"getPSControlParam" : { },
"getPSLayout" : {
"columnCount" : 24,
"layout" : "TABLE_24COL"
},
"getRootPSPanelItems" : [ {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "page_container",
"getPSLayout" : {
"layout" : "FLEX"
},
"getPSLayoutPos" : {
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"getPSPanelItems" : [ {
"caption" : "栅格容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_grid1",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "面板容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container1",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : 3,
"layout" : "SIMPLEFLEX"
},
"getPSPanelItems" : [ {
"caption" : "页面标题",
"itemStyle" : "DEFAULT",
"itemType" : "FIELD",
"name" : "view_pagecaption",
"getPSEditor" : {
"editorType" : "SPAN",
"name" : "view_pagecaption",
"predefinedType" : "VIEW_PAGECAPTION",
"renderMode" : "HEADING1",
"enableLinkView" : false
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "SIMPLEFLEX"
},
"hidden" : false,
"showCaption" : false
} ]
}, {
"caption" : "面板容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container2",
"getPSLayout" : {
"layout" : "SIMPLEFLEX"
},
"getPSLayoutPos" : {
"grow" : 9,
"layout" : "SIMPLEFLEX"
},
"getPSPanelItems" : [ {
"caption" : "工具栏",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "toolbar",
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "SIMPLEFLEX"
},
"showCaption" : true
} ]
} ]
}, {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container3",
"getPSLayout" : {
"layout" : "FLEX"
},
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"getPSPanelItems" : [ {
"caption" : "树表格部件",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "treegridex",
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"showCaption" : true
} ]
} ]
} ],
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
"useDefaultLayout" : false,
"modelid" : "A45D1A7D-16A4-4752-A7AA-2C4AA8C04256",
"modeltype" : "PSSYSVIEWLAYOUTPANEL"
},
"title" : "实体树表格视图(增强)",
"viewStyle" : "DEFAULT",
......
......@@ -172,7 +172,7 @@
<!--输出实体[IBIZBOOK]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-166-7">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-189-7">
<createTable tableName="T_IBIZBOOK">
<column name="CREATEMAN" remarks="" type="VARCHAR(60)">
</column>
......@@ -340,7 +340,7 @@
<!--输出实体[IBIZORDER]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizorder-191-14">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizorder-220-14">
<createTable tableName="T_IBIZORDER">
<column name="TP" remarks="" type="TEXT(1048576)">
</column>
......@@ -1160,7 +1160,7 @@
<!--输出实体[IBIZSAMPLE0021]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizsample0021-27-39">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizsample0021-33-39">
<createTable tableName="T_IBIZSAMPLE0021">
<column name="IBIZSAMPLE0021ID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_IBIZSAMPLE0021_IBIZSAMPLE00"/>
......@@ -1306,7 +1306,7 @@
<!--输出实体[IBIZUNIPRODUCT]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizuniproduct-15-45">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizuniproduct-17-45">
<createTable tableName="T_IBIZUNIPRODUCT">
<column name="UNITPRICE" remarks="" type="FLOAT">
</column>
......
......@@ -37,7 +37,7 @@
</createView>
</changeSet>
<!--输出实体[IBIZORDER]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步-->
<changeSet author="a_LAB01_df847bdfd" id="view-ibizorder-191-8" runOnChange="true">
<changeSet author="a_LAB01_df847bdfd" id="view-ibizorder-220-8" runOnChange="true">
<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 ]]>
</createView>
......@@ -199,7 +199,7 @@
</createView>
</changeSet>
<!--输出实体[IBIZUNIPRODUCT]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步-->
<changeSet author="a_LAB01_df847bdfd" id="view-ibizuniproduct-15-35" runOnChange="true">
<changeSet author="a_LAB01_df847bdfd" id="view-ibizuniproduct-17-35" runOnChange="true">
<createView fullDefinition="false" replaceIfExists="true" viewName="V_IBIZUNIPRODUCT">
<![CDATA[ SELECT t1.[CREATEDATE], t1.[CREATEMAN], t1.[IBIZUNIPRODUCTID], t1.[IBIZUNIPRODUCTNAME], t1.[IBIZUNIPRODUCTTYPE], t1.[UNIT], t1.[UNITPRICE], t1.[UPDATEDATE], t1.[UPDATEMAN] FROM [T_IBIZUNIPRODUCT] t1 ]]>
</createView>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册