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

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

上级 5e480858
<template>
<div class="view-container dempickupview ibizcustomer-mpickup-view-layout">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizcustomermpickupview_layout"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :padding="0" :bordered="false">
<div class="content-container pickup-view">
<div class="translate-contant">
<div class="center" :style="{width : !isShowButton ? '100%' : ''}">
<view_pickupviewpanel
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
:isSingleSelect="isSingleSelect"
:selectedData="selectedData"
:isShowButton="isShowButton"
name="pickupviewpanel"
ref='pickupviewpanel'
@selectionchange="pickupviewpanel_selectionchange($event)"
@load="pickupviewpanel_load($event)"
@activated="pickupviewpanel_activated($event)"
@closeview="closeView($event)">
</view_pickupviewpanel>
</div>
<div v-if="isShowButton" class="translate-buttons">
<div class="buttons">
<i-button type="primary" :title="this.containerModel.view_rightbtn.text"
:disabled="this.containerModel.view_rightbtn.disabled"
@click="onCLickRight">
<i class="el-icon-arrow-right"></i>
</i-button>
<i-button type="primary" :title="this.containerModel.view_leftbtn.text"
:disabled="this.containerModel.view_leftbtn.disabled"
@click="onCLickLeft">
<i class="el-icon-arrow-left"></i>
</i-button>
<i-button type="primary" :title="this.containerModel.view_allrightbtn.text"
@click="onCLickAllRight">
<i class="el-icon-d-arrow-right"></i>
</i-button>
<i-button type="primary" :title="this.containerModel.view_allleftbtn.text"
@click="onCLickAllLeft">
<i class="el-icon-d-arrow-left"></i>
</i-button>
</div>
</div>
<div v-if="isShowButton" class="right">
<div class="mpicker-select">
<div v-for="(item, index) in viewSelections" :key="index" :class="item._select ? 'select' : ''" @click="selectionsClick(item)" @dblclick="selectionsDBLClick(item)">
<span>{{item.srfmajortext}}</span>
</div>
</div>
</div>
</div>
<card v-if="isShowButton" :dis-hover="true" :bordered="false" class="footer">
<row :style="{ textAlign: 'right' }">
<i-button type="primary" :disabled="this.viewSelections.length > 0 ? false : true" @click="onClickOk">{{this.containerModel.view_okbtn.text}}</i-button>
&nbsp;&nbsp;
<i-button @click="onClickCancel">{{this.containerModel.view_cancelbtn.text}}</i-button>
</row>
</card>
</div>
</card>
</div>
<div class="app-view-layout app-view-layout__dempickupview ibizcustomer-mpickup-view-layout" v-loading="isLayoutLoadding" :style="{height: '100%', width: '100%', overflow: 'auto'}">
<template v-show="!isLayoutLoadding">
<app-scroll-container name="container_scroll1" :layoutModelDetails="layoutModelDetails">
<template #container_scroll_main1>
<app-scroll-container name="container_scroll_main1" :layoutModelDetails="layoutModelDetails">
<template #pickupviewpanel>
<app-ctrl-pos name="pickupviewpanel" :layoutModelDetails="layoutModelDetails">
<view_pickupviewpanel
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
:isSingleSelect="isSingleSelect"
:selectedData="selectedData"
:isShowButton="isShowButton"
name="pickupviewpanel"
ref='pickupviewpanel'
@selectionchange="pickupviewpanel_selectionchange($event)"
@load="pickupviewpanel_load($event)"
@activated="pickupviewpanel_activated($event)"
@closeview="closeView($event)">
</view_pickupviewpanel>
</app-ctrl-pos>
</template>
</app-scroll-container>
</template>
<template #container_scroll_bottom1>
<app-scroll-container name="container_scroll_bottom1" :layoutModelDetails="layoutModelDetails">
<template #container1>
<app-standard-container name="container1" :isMultiContainer="false" :layoutModelDetails="layoutModelDetails">
<template #button_calluilogic2>
<app-login-button class="app-reset-button" name="button_calluilogic2" :layoutModelDetails="layoutModelDetails" defaultStyle='success' @itemClick="handleButtonClick" />
</template>
<template #button_calluilogic1>
<app-preset-button name="button_calluilogic1" :layoutModelDetails="layoutModelDetails" caption="确认" tooltip="" @itemClick="handleButtonClick" />
</template>
</app-standard-container>
</template>
</app-scroll-container>
</template>
</app-scroll-container>
</template>
</div>
</template>
......@@ -75,6 +56,7 @@ import IBIZCustomerAuthService from '@/authservice/ibizcustomer/ibizcustomer-aut
import MPickupViewEngine from '@engine/view/mpickup-view-engine';
import IBIZCustomerUIService from '@/uiservice/ibizcustomer/ibizcustomer-ui-service';
import { PanelContainerModel, PanelRawitemModel, PanelFieldModel, PanelControlModel, PanelButtonModel, PanelUserControlModel, PanelTabPanelModel, PanelTabPageModel, PanelCtrlPosModel} from '@/model/panel-detail';
@Component({
......@@ -286,6 +268,284 @@ export default class IBIZCustomerMPickupView_layoutBase extends Vue {
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZCustomerMPickupView_layoutBase
*/
public rootLayoutDetailNames: string[] = [ 'container_scroll1' ];
/**
* 视图布局面板项模型对象
*
* @public
* @memberof IBIZCustomerMPickupView_layoutBase
*/
public layoutItems:any = {
pickupviewpanel:{ name: 'pickupviewpanel', type: 'VIEWLAYOUT', caption: 'PICKUPVIEWPANEL部件', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'CENTER', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'FULL', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_scroll_main1', panel: this },
container_scroll_main1:{ name: 'container_scroll_main1', type: 'VIEWLAYOUT', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: true, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'BORDER', layoutPos:'CENTER', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_scroll1', panel: this , details:['pickupviewpanel'] , dataRegionType: 'INHERIT' },
button_calluilogic2:{ name: 'button_calluilogic2', type: 'VIEWLAYOUT', caption: '确认', isShowCaption: true, sysCss: '', itemType: 'BUTTON', itemStyle: 'PRIMARY', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:32, heightMode:'PX', layoutWidth:60, widthMode:'PX', spacingBottom:'', spacingLeft:'', spacingRight:'OUTERSMALL', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , buttonStyle: 'PRIMARY', borderStyle: '', iconAlign: '', uiAction: { actiontarget: '', noprivdisplaymode: '2', dataaccaction: '', visabled: true, disabled: false }, predefinedType: 'DATA_CANCELCHANGES', renderMode: '', },
button_calluilogic1:{ name: 'button_calluilogic1', type: 'VIEWLAYOUT', caption: '取消', isShowCaption: true, sysCss: '', itemType: 'BUTTON', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:32, heightMode:'PX', layoutWidth:60, widthMode:'PX', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , buttonStyle: 'DEFAULT', borderStyle: '', iconAlign: '', uiAction: { actiontarget: '', noprivdisplaymode: '2', dataaccaction: '', visabled: true, disabled: false }, predefinedType: 'DATA_SAVECHANGES', renderMode: '', },
container1:{ name: 'container1', type: 'VIEWLAYOUT', caption: '容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'FLEX', layoutPos:'CENTER', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'FULL', spacingBottom:'INNERMEDIUM', spacingLeft:'', spacingRight:'', spacingTop:'INNERMEDIUM', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'flex-end',dir:'row',vAlign:'center'}, parentName: 'container_scroll_bottom1', panel: this , details:['button_calluilogic2','button_calluilogic1'] , dataRegionType: 'INHERIT' },
container_scroll_bottom1:{ name: 'container_scroll_bottom1', type: 'VIEWLAYOUT', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: true, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'BORDER', layoutPos:'SOUTH', layoutHeight:80, heightMode:'PX', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_scroll1', panel: this , details:['container1'] , dataRegionType: 'INHERIT' },
container_scroll1:{ name: 'container_scroll1', type: 'VIEWLAYOUT', caption: '滚动条容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'BORDER', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['container_scroll_main1','container_scroll_bottom1'] , dataRegionType: 'INHERIT' }
};
/**
* 视图布局是否加载
*
* @public
* @memberof IBIZCustomerMPickupView_layoutBase
*/
public isLayoutLoadding: boolean = true;
/**
* 视图布局数据
*
* @public
* @memberof IBIZCustomerMPickupView_layoutBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZCustomerMPickupView_layoutBase
*/
public layoutModelDetails:any = {};
/**
* 初始化布局
*
* @public
* @memberof IBIZCustomerMPickupView_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 IBIZCustomerMPickupView_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.$set(this.layoutModelDetails, name, layoutModelDetail);
this.$set(this.layoutData, name, layoutModelDetail.getData());
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZCustomerMPickupView_layoutBase
*/
public handleValueChange(args: { name: string, value: any }) {
if (!args || !args.name || Object.is(args.name, '') || !this.layoutData.hasOwnProperty(args.name)) {
return;
}
const {name,value} = args;
this.layoutData[name] = value;
this.layoutModelDetails[name].setData(value);
this.panelLogic(name);
}
/**
* 面板逻辑
*
* @public
* @memberof IBIZCustomerMPickupView_layoutBase
*/
public panelLogic(name: string): void {
}
/**
* 获取按钮行为xData
*
* @public
* @memberof IBIZCustomerMPickupView_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 IBIZCustomerMPickupView_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;
if (Object.is(name, 'button_calluilogic2')) {
_this.panel_Layoutpanel_button_calluilogic2_click(datas, contextJO, paramJO, $event, xData, this, undefined);
}
if (Object.is(name, 'button_calluilogic1')) {
_this.panel_Layoutpanel_button_calluilogic1_click(datas, contextJO, paramJO, $event, xData, this, undefined);
}
}
/**
* 取消
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
*/
public panel_Layoutpanel_button_calluilogic2_click(args: any[], contextJO?:any, params?: any, $event?: any, xData?: any, actionContext?:any, srfParentDeName?:string) {
if (actionContext.viewType === 'APPLOGINVIEW') {
const length = Object.keys(actionContext.layoutData).length;
for (let i = length - 1; i >= 0; i--) {
const name = Object.keys(actionContext.layoutData)[i];
if (actionContext.layoutData.hasOwnProperty(name) && !Object.is(actionContext.layoutModelDetails[name].itemType, 'CONTAINER')) {
actionContext.handleValueChange({ name, value: null });
}
}
actionContext.$nextTick(() => {
actionContext.$forceUpdate();
})
} else {
const parentRef = actionContext.$parent;
if (parentRef.closeView && (parentRef.closeView instanceof Function)) {
parentRef.closeView(args);
} else if (actionContext.closeView && (actionContext.closeView instanceof Function)) {
actionContext.closeView(args);
}
}
}
/**
* 确认
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
*/
public async panel_Layoutpanel_button_calluilogic1_click(args: any[], context: any = {}, params: any = {}, $event?: any, xData?: any, actionContext?: any, srfParentDeName?: string) {
// 准备上下文参数
const tempContext = {...context};
if (xData && xData.context) {
Object.assign(tempContext, xData.context);
}
const data = args[0];
let action: string | undefined = undefined;
const service = await window.entityServiceRegister.getService('IBIZCustomer');
if (service) {
const key = service.APPDEKEY.toLowerCase();
const name = service.APPDENAME.toLowerCase();
if (data.hasOwnProperty(key) || data.hasOwnProperty(name)) {
if (data.hasOwnProperty(key)) {
Object.assign(context, { [name]: data[key] });
} else {
Object.assign(context, { [name]: data[name] });
}
action = 'Update';
} else {
action = 'Create';
}
try {
if (service[action] && service[action] instanceof Function) {
service[action](tempContext, data).then((response: any) => {
if (!response.status || response.status !== 200) {
this.$Notice.error({ title: '错误', desc: '当前环境无法执行保存变更逻辑[执行行为异常]' });
}
})
} else {
this.$Notice.error({ title: '错误', desc: '当前环境无法执行保存变更逻辑[执行行为异常]' });
}
} catch (error: any) {
this.$Notice.error({ title: '错误', desc: '当前环境无法执行保存变更逻辑[执行行为异常]' });
}
}
}
/**
......@@ -654,7 +914,9 @@ export default class IBIZCustomerMPickupView_layoutBase extends Vue {
*/
public afterMounted(){
const _this: any = this;
_this.engineInit();
_this.initLayout().then((result: any) => {
_this.isLayoutLoadding = false;
_this.engineInit();
if (_this.loadModel && _this.loadModel instanceof Function) {
_this.loadModel();
}
......@@ -662,6 +924,7 @@ export default class IBIZCustomerMPickupView_layoutBase extends Vue {
this.engine.onCtrlEvent('pickupviewpanel', 'selectionchange', this.viewparams.selectedData);
this.onCLickRight();
}
})
}
......
.ibizcustomer-mpickup-view-layout{
position: relative;
}
.pickup-view {
>.translate-contant {
overflow: auto;
flex-grow: 1;
display: flex;
justify-content: flex-end;
height: calc(100% - 64px);
.translate-buttons {
width: 80px;
display: flex;
align-items: center;
text-align: center;
button {
margin-bottom: 5px;
}
}
.left, .right {
width: 300px;
}
.right {
border: 1px solid #e9e9e9;
.mpicker-select {
font-family: helvetica, sans-serif;
font-size: 16px;
text-align: justify;
word-spacing: -3.8pt;
line-height: 1.6;
font-weight: bold;
word-spacing: 10px;
height: 100%;
overflow: auto;
}
.mpicker-select > div {
padding: 3px 10px;
font-size: 14px;
color: rgba(0, 0, 0, 0.85);
font-weight: initial;
cursor: pointer;
min-height: 28px;
border: 1px solid #e9e9e9;
margin: 4px 4px;
transition: all .3s;
}
.mpicker-select > div:hover {
background: #ecf6fd;
}
.mpicker-select > .select{
color: #108ee9;
background: #ecf6fd;
}
}
.center{
width: calc(100% - 380px);
.pickupviewpanel {
width: 100%;
height: 100%;
}
}
}
>.footer {
height: 64px;
}
.ibizcustomer-mpickup-view-layout {
display: block;
}
<template>
<div class="view-container depickupview ibizcustomer-pickup-view-layout">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizcustomerpickupview_layout"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :padding="0" :bordered="false">
<div class="content-container pickup-view">
<view_pickupviewpanel
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
:isSingleSelect="isSingleSelect"
:selectedData="selectedData"
:isShowButton="isShowButton"
name="pickupviewpanel"
ref='pickupviewpanel'
@selectionchange="pickupviewpanel_selectionchange($event)"
@load="pickupviewpanel_load($event)"
@activated="pickupviewpanel_activated($event)"
@closeview="closeView($event)">
</view_pickupviewpanel>
<card v-if="isShowButton" :dis-hover="true" :bordered="false" class="footer">
<row :style="{ textAlign: 'right' }">
<i-button type="primary" :disabled="this.viewSelections.length > 0 ? false : true" @click="onClickOk">{{this.containerModel.view_okbtn.text}}</i-button>
&nbsp;&nbsp;
<i-button @click="onClickCancel">{{this.containerModel.view_cancelbtn.text}}</i-button>
</row>
</card>
</div>
</card>
</div>
<div class="app-view-layout app-view-layout__depickupview ibizcustomer-pickup-view-layout" v-loading="isLayoutLoadding" :style="{height: '100%', width: '100%', overflow: 'auto'}">
<template v-show="!isLayoutLoadding">
<app-scroll-container name="container_scroll1" :layoutModelDetails="layoutModelDetails">
<template #container_scroll_main1>
<app-scroll-container name="container_scroll_main1" :layoutModelDetails="layoutModelDetails">
<template #pickupviewpanel>
<app-ctrl-pos name="pickupviewpanel" :layoutModelDetails="layoutModelDetails">
<view_pickupviewpanel
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
:isSingleSelect="isSingleSelect"
:selectedData="selectedData"
:isShowButton="isShowButton"
name="pickupviewpanel"
ref='pickupviewpanel'
@selectionchange="pickupviewpanel_selectionchange($event)"
@load="pickupviewpanel_load($event)"
@activated="pickupviewpanel_activated($event)"
@closeview="closeView($event)">
</view_pickupviewpanel>
</app-ctrl-pos>
</template>
</app-scroll-container>
</template>
<template #container_scroll_bottom1>
<app-scroll-container name="container_scroll_bottom1" :layoutModelDetails="layoutModelDetails">
<template #container1>
<app-standard-container name="container1" :isMultiContainer="false" :layoutModelDetails="layoutModelDetails">
<template #button_calluilogic2>
<app-login-button class="app-reset-button" name="button_calluilogic2" :layoutModelDetails="layoutModelDetails" defaultStyle='success' @itemClick="handleButtonClick" />
</template>
<template #button_calluilogic1>
<app-preset-button name="button_calluilogic1" :layoutModelDetails="layoutModelDetails" caption="确认" tooltip="" @itemClick="handleButtonClick" />
</template>
</app-standard-container>
</template>
</app-scroll-container>
</template>
</app-scroll-container>
</template>
</div>
</template>
......@@ -42,6 +56,7 @@ import IBIZCustomerAuthService from '@/authservice/ibizcustomer/ibizcustomer-aut
import PickupViewEngine from '@engine/view/pickup-view-engine';
import IBIZCustomerUIService from '@/uiservice/ibizcustomer/ibizcustomer-ui-service';
import { PanelContainerModel, PanelRawitemModel, PanelFieldModel, PanelControlModel, PanelButtonModel, PanelUserControlModel, PanelTabPanelModel, PanelTabPageModel, PanelCtrlPosModel} from '@/model/panel-detail';
@Component({
......@@ -252,6 +267,284 @@ export default class IBIZCustomerPickupView_layoutBase extends Vue {
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZCustomerPickupView_layoutBase
*/
public rootLayoutDetailNames: string[] = [ 'container_scroll1' ];
/**
* 视图布局面板项模型对象
*
* @public
* @memberof IBIZCustomerPickupView_layoutBase
*/
public layoutItems:any = {
pickupviewpanel:{ name: 'pickupviewpanel', type: 'VIEWLAYOUT', caption: 'PICKUPVIEWPANEL部件', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'CENTER', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'FULL', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_scroll_main1', panel: this },
container_scroll_main1:{ name: 'container_scroll_main1', type: 'VIEWLAYOUT', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: true, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'BORDER', layoutPos:'CENTER', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_scroll1', panel: this , details:['pickupviewpanel'] , dataRegionType: 'INHERIT' },
button_calluilogic2:{ name: 'button_calluilogic2', type: 'VIEWLAYOUT', caption: '确认', isShowCaption: true, sysCss: '', itemType: 'BUTTON', itemStyle: 'PRIMARY', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:32, heightMode:'PX', layoutWidth:60, widthMode:'PX', spacingBottom:'', spacingLeft:'', spacingRight:'OUTERSMALL', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , buttonStyle: 'PRIMARY', borderStyle: '', iconAlign: '', uiAction: { actiontarget: '', noprivdisplaymode: '2', dataaccaction: '', visabled: true, disabled: false }, predefinedType: 'DATA_CANCELCHANGES', renderMode: '', },
button_calluilogic1:{ name: 'button_calluilogic1', type: 'VIEWLAYOUT', caption: '取消', isShowCaption: true, sysCss: '', itemType: 'BUTTON', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:32, heightMode:'PX', layoutWidth:60, widthMode:'PX', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , buttonStyle: 'DEFAULT', borderStyle: '', iconAlign: '', uiAction: { actiontarget: '', noprivdisplaymode: '2', dataaccaction: '', visabled: true, disabled: false }, predefinedType: 'DATA_SAVECHANGES', renderMode: '', },
container1:{ name: 'container1', type: 'VIEWLAYOUT', caption: '容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'FLEX', layoutPos:'CENTER', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'FULL', spacingBottom:'INNERMEDIUM', spacingLeft:'', spacingRight:'', spacingTop:'INNERMEDIUM', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'flex-end',dir:'row',vAlign:'center'}, parentName: 'container_scroll_bottom1', panel: this , details:['button_calluilogic2','button_calluilogic1'] , dataRegionType: 'INHERIT' },
container_scroll_bottom1:{ name: 'container_scroll_bottom1', type: 'VIEWLAYOUT', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: true, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'BORDER', layoutPos:'SOUTH', layoutHeight:64, heightMode:'PX', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_scroll1', panel: this , details:['container1'] , dataRegionType: 'INHERIT' },
container_scroll1:{ name: 'container_scroll1', type: 'VIEWLAYOUT', caption: '滚动条容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'BORDER', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['container_scroll_main1','container_scroll_bottom1'] , dataRegionType: 'INHERIT' }
};
/**
* 视图布局是否加载
*
* @public
* @memberof IBIZCustomerPickupView_layoutBase
*/
public isLayoutLoadding: boolean = true;
/**
* 视图布局数据
*
* @public
* @memberof IBIZCustomerPickupView_layoutBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZCustomerPickupView_layoutBase
*/
public layoutModelDetails:any = {};
/**
* 初始化布局
*
* @public
* @memberof IBIZCustomerPickupView_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 IBIZCustomerPickupView_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.$set(this.layoutModelDetails, name, layoutModelDetail);
this.$set(this.layoutData, name, layoutModelDetail.getData());
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZCustomerPickupView_layoutBase
*/
public handleValueChange(args: { name: string, value: any }) {
if (!args || !args.name || Object.is(args.name, '') || !this.layoutData.hasOwnProperty(args.name)) {
return;
}
const {name,value} = args;
this.layoutData[name] = value;
this.layoutModelDetails[name].setData(value);
this.panelLogic(name);
}
/**
* 面板逻辑
*
* @public
* @memberof IBIZCustomerPickupView_layoutBase
*/
public panelLogic(name: string): void {
}
/**
* 获取按钮行为xData
*
* @public
* @memberof IBIZCustomerPickupView_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 IBIZCustomerPickupView_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;
if (Object.is(name, 'button_calluilogic2')) {
_this.panel_Layoutpanel_button_calluilogic2_click(datas, contextJO, paramJO, $event, xData, this, undefined);
}
if (Object.is(name, 'button_calluilogic1')) {
_this.panel_Layoutpanel_button_calluilogic1_click(datas, contextJO, paramJO, $event, xData, this, undefined);
}
}
/**
* 取消
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
*/
public panel_Layoutpanel_button_calluilogic2_click(args: any[], contextJO?:any, params?: any, $event?: any, xData?: any, actionContext?:any, srfParentDeName?:string) {
if (actionContext.viewType === 'APPLOGINVIEW') {
const length = Object.keys(actionContext.layoutData).length;
for (let i = length - 1; i >= 0; i--) {
const name = Object.keys(actionContext.layoutData)[i];
if (actionContext.layoutData.hasOwnProperty(name) && !Object.is(actionContext.layoutModelDetails[name].itemType, 'CONTAINER')) {
actionContext.handleValueChange({ name, value: null });
}
}
actionContext.$nextTick(() => {
actionContext.$forceUpdate();
})
} else {
const parentRef = actionContext.$parent;
if (parentRef.closeView && (parentRef.closeView instanceof Function)) {
parentRef.closeView(args);
} else if (actionContext.closeView && (actionContext.closeView instanceof Function)) {
actionContext.closeView(args);
}
}
}
/**
* 确认
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
*/
public async panel_Layoutpanel_button_calluilogic1_click(args: any[], context: any = {}, params: any = {}, $event?: any, xData?: any, actionContext?: any, srfParentDeName?: string) {
// 准备上下文参数
const tempContext = {...context};
if (xData && xData.context) {
Object.assign(tempContext, xData.context);
}
const data = args[0];
let action: string | undefined = undefined;
const service = await window.entityServiceRegister.getService('IBIZCustomer');
if (service) {
const key = service.APPDEKEY.toLowerCase();
const name = service.APPDENAME.toLowerCase();
if (data.hasOwnProperty(key) || data.hasOwnProperty(name)) {
if (data.hasOwnProperty(key)) {
Object.assign(context, { [name]: data[key] });
} else {
Object.assign(context, { [name]: data[name] });
}
action = 'Update';
} else {
action = 'Create';
}
try {
if (service[action] && service[action] instanceof Function) {
service[action](tempContext, data).then((response: any) => {
if (!response.status || response.status !== 200) {
this.$Notice.error({ title: '错误', desc: '当前环境无法执行保存变更逻辑[执行行为异常]' });
}
})
} else {
this.$Notice.error({ title: '错误', desc: '当前环境无法执行保存变更逻辑[执行行为异常]' });
}
} catch (error: any) {
this.$Notice.error({ title: '错误', desc: '当前环境无法执行保存变更逻辑[执行行为异常]' });
}
}
}
/**
......@@ -620,13 +913,16 @@ export default class IBIZCustomerPickupView_layoutBase extends Vue {
*/
public afterMounted(){
const _this: any = this;
_this.engineInit();
_this.initLayout().then((result: any) => {
_this.isLayoutLoadding = false;
_this.engineInit();
if (_this.loadModel && _this.loadModel instanceof Function) {
_this.loadModel();
}
if(this.viewparams.selectedData){
this.engine.onCtrlEvent('pickupviewpanel', 'selectionchange', this.viewparams.selectedData);
}
})
}
......
.ibizcustomer-pickup-view-layout{
position: relative;
}
.pickup-view {
>.pickupviewpanel {
flex-grow: 1;
display: flex;
justify-content: flex-end;
height: calc(100% - 64px);
}
>.footer {
height: 64px;
}
.ibizcustomer-pickup-view-layout {
display: block;
}
<template>
<div class="view-container dempickupview ibizcustomer-usr2-mpickup-view-layout">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizcustomerusr2mpickupview_layout"></app-studioaction>
<card class='view-card view-no-caption view-no-toolbar' :dis-hover="true" :padding="0" :bordered="false">
<div class="content-container pickup-view">
<div class="translate-contant">
<div class="center" :style="{width : !isShowButton ? '100%' : ''}">
<view_pickupviewpanel
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
:isSingleSelect="isSingleSelect"
:selectedData="selectedData"
:isShowButton="isShowButton"
name="pickupviewpanel"
ref='pickupviewpanel'
@selectionchange="pickupviewpanel_selectionchange($event)"
@load="pickupviewpanel_load($event)"
@activated="pickupviewpanel_activated($event)"
@closeview="closeView($event)">
</view_pickupviewpanel>
</div>
<div v-if="isShowButton" class="translate-buttons">
<div class="buttons">
<i-button type="primary" :title="this.containerModel.view_rightbtn.text"
:disabled="this.containerModel.view_rightbtn.disabled"
@click="onCLickRight">
<i class="el-icon-arrow-right"></i>
</i-button>
<i-button type="primary" :title="this.containerModel.view_leftbtn.text"
:disabled="this.containerModel.view_leftbtn.disabled"
@click="onCLickLeft">
<i class="el-icon-arrow-left"></i>
</i-button>
<i-button type="primary" :title="this.containerModel.view_allrightbtn.text"
@click="onCLickAllRight">
<i class="el-icon-d-arrow-right"></i>
</i-button>
<i-button type="primary" :title="this.containerModel.view_allleftbtn.text"
@click="onCLickAllLeft">
<i class="el-icon-d-arrow-left"></i>
</i-button>
</div>
</div>
<div v-if="isShowButton" class="right">
<div class="mpicker-select">
<div v-for="(item, index) in viewSelections" :key="index" :class="item._select ? 'select' : ''" @click="selectionsClick(item)" @dblclick="selectionsDBLClick(item)">
<span>{{item.srfmajortext}}</span>
</div>
</div>
</div>
</div>
<card v-if="isShowButton" :dis-hover="true" :bordered="false" class="footer">
<row :style="{ textAlign: 'right' }">
<i-button type="primary" :disabled="this.viewSelections.length > 0 ? false : true" @click="onClickOk">{{this.containerModel.view_okbtn.text}}</i-button>
&nbsp;&nbsp;
<i-button @click="onClickCancel">{{this.containerModel.view_cancelbtn.text}}</i-button>
</row>
</card>
</div>
</card>
</div>
<div class="app-view-layout app-view-layout__dempickupview ibizcustomer-usr2-mpickup-view-layout" v-loading="isLayoutLoadding" :style="{height: '100%', width: '100%', overflow: 'auto'}">
<template v-show="!isLayoutLoadding">
<app-scroll-container name="container_scroll1" :layoutModelDetails="layoutModelDetails">
<template #container_scroll_main1>
<app-scroll-container name="container_scroll_main1" :layoutModelDetails="layoutModelDetails">
<template #pickupviewpanel>
<app-ctrl-pos name="pickupviewpanel" :layoutModelDetails="layoutModelDetails">
<view_pickupviewpanel
:viewState="viewState"
:viewparams="JSON.parse(JSON.stringify(viewparams))"
:context="JSON.parse(JSON.stringify(context))"
:isSingleSelect="isSingleSelect"
:selectedData="selectedData"
:isShowButton="isShowButton"
name="pickupviewpanel"
ref='pickupviewpanel'
@selectionchange="pickupviewpanel_selectionchange($event)"
@load="pickupviewpanel_load($event)"
@activated="pickupviewpanel_activated($event)"
@closeview="closeView($event)">
</view_pickupviewpanel>
</app-ctrl-pos>
</template>
</app-scroll-container>
</template>
<template #container_scroll_bottom1>
<app-scroll-container name="container_scroll_bottom1" :layoutModelDetails="layoutModelDetails">
<template #container1>
<app-standard-container name="container1" :isMultiContainer="false" :layoutModelDetails="layoutModelDetails">
<template #button_calluilogic2>
<app-login-button class="app-reset-button" name="button_calluilogic2" :layoutModelDetails="layoutModelDetails" defaultStyle='success' @itemClick="handleButtonClick" />
</template>
<template #button_calluilogic1>
<app-preset-button name="button_calluilogic1" :layoutModelDetails="layoutModelDetails" caption="确认" tooltip="" @itemClick="handleButtonClick" />
</template>
</app-standard-container>
</template>
</app-scroll-container>
</template>
</app-scroll-container>
</template>
</div>
</template>
......@@ -75,6 +56,7 @@ import IBIZCustomerAuthService from '@/authservice/ibizcustomer/ibizcustomer-aut
import MPickupViewEngine from '@engine/view/mpickup-view-engine';
import IBIZCustomerUIService from '@/uiservice/ibizcustomer/ibizcustomer-ui-service';
import { PanelContainerModel, PanelRawitemModel, PanelFieldModel, PanelControlModel, PanelButtonModel, PanelUserControlModel, PanelTabPanelModel, PanelTabPageModel, PanelCtrlPosModel} from '@/model/panel-detail';
@Component({
......@@ -286,6 +268,284 @@ export default class IBIZCustomerUsr2MPickupView_layoutBase extends Vue {
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZCustomerUsr2MPickupView_layoutBase
*/
public rootLayoutDetailNames: string[] = [ 'container_scroll1' ];
/**
* 视图布局面板项模型对象
*
* @public
* @memberof IBIZCustomerUsr2MPickupView_layoutBase
*/
public layoutItems:any = {
pickupviewpanel:{ name: 'pickupviewpanel', type: 'VIEWLAYOUT', caption: 'PICKUPVIEWPANEL部件', isShowCaption: true, sysCss: '', itemType: 'CTRLPOS', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'CENTER', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'FULL', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_scroll_main1', panel: this },
container_scroll_main1:{ name: 'container_scroll_main1', type: 'VIEWLAYOUT', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: true, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'BORDER', layoutPos:'CENTER', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_scroll1', panel: this , details:['pickupviewpanel'] , dataRegionType: 'INHERIT' },
button_calluilogic2:{ name: 'button_calluilogic2', type: 'VIEWLAYOUT', caption: '确认', isShowCaption: true, sysCss: '', itemType: 'BUTTON', itemStyle: 'PRIMARY', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:32, heightMode:'PX', layoutWidth:60, widthMode:'PX', spacingBottom:'', spacingLeft:'', spacingRight:'OUTERSMALL', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , buttonStyle: 'PRIMARY', borderStyle: '', iconAlign: '', uiAction: { actiontarget: '', noprivdisplaymode: '2', dataaccaction: '', visabled: true, disabled: false }, predefinedType: 'DATA_CANCELCHANGES', renderMode: '', },
button_calluilogic1:{ name: 'button_calluilogic1', type: 'VIEWLAYOUT', caption: '取消', isShowCaption: true, sysCss: '', itemType: 'BUTTON', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'', layoutPos:'', layoutHeight:32, heightMode:'PX', layoutWidth:60, widthMode:'PX', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:-1, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container1', panel: this , buttonStyle: 'DEFAULT', borderStyle: '', iconAlign: '', uiAction: { actiontarget: '', noprivdisplaymode: '2', dataaccaction: '', visabled: true, disabled: false }, predefinedType: 'DATA_SAVECHANGES', renderMode: '', },
container1:{ name: 'container1', type: 'VIEWLAYOUT', caption: '容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'FLEX', layoutPos:'CENTER', layoutHeight:0, heightMode:'FULL', layoutWidth:0, widthMode:'FULL', spacingBottom:'INNERMEDIUM', spacingLeft:'', spacingRight:'', spacingTop:'INNERMEDIUM', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'flex-end',dir:'row',vAlign:'center'}, parentName: 'container_scroll_bottom1', panel: this , details:['button_calluilogic2','button_calluilogic1'] , dataRegionType: 'INHERIT' },
container_scroll_bottom1:{ name: 'container_scroll_bottom1', type: 'VIEWLAYOUT', caption: '面板容器', titleBarCloseMode: 0, isShowCaption: true, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'BORDER', layoutPos:'SOUTH', layoutHeight:64, heightMode:'PX', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, parentName: 'container_scroll1', panel: this , details:['container1'] , dataRegionType: 'INHERIT' },
container_scroll1:{ name: 'container_scroll1', type: 'VIEWLAYOUT', caption: '滚动条容器', titleBarCloseMode: 0, isShowCaption: false, sysCss: '', itemType: 'CONTAINER', itemStyle: 'DEFAULT', visible: true, disabled: false, layout:'BORDER', layoutPos:'', layoutHeight:0, heightMode:'', layoutWidth:0, widthMode:'', spacingBottom:'', spacingLeft:'', spacingRight:'', spacingTop:'', hAlignSelf:'', vAlignSelf:'', flexGrow:0, flexParams:{align:'',dir:'',vAlign:''}, panel: this , details:['container_scroll_main1','container_scroll_bottom1'] , dataRegionType: 'INHERIT' }
};
/**
* 视图布局是否加载
*
* @public
* @memberof IBIZCustomerUsr2MPickupView_layoutBase
*/
public isLayoutLoadding: boolean = true;
/**
* 视图布局数据
*
* @public
* @memberof IBIZCustomerUsr2MPickupView_layoutBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZCustomerUsr2MPickupView_layoutBase
*/
public layoutModelDetails:any = {};
/**
* 初始化布局
*
* @public
* @memberof IBIZCustomerUsr2MPickupView_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 IBIZCustomerUsr2MPickupView_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.$set(this.layoutModelDetails, name, layoutModelDetail);
this.$set(this.layoutData, name, layoutModelDetail.getData());
} else {
layoutModelDetail.setIndex(index);
await layoutModelDetail.load(this.context, this.viewparams);
this.$set(this.layoutModelDetails, `${name}_${index}`, layoutModelDetail);
this.$set(this.layoutData, `${name}_${index}`, layoutModelDetail.getData());
}
if (layoutModelDetail && layoutModelDetail.details) {
if (layoutModelDetail.dataRegionType === 'MULTIDATA') {
const multiData = layoutModelDetail.getData();
if (multiData && multiData.length > 0) {
for (let i = 0; i < multiData.length; i++) {
for (let j = 0; j < layoutModelDetail.details.length; j++) {
const key = layoutModelDetail.details[j];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key], i);
}
}
}
}
} else {
for (let i = 0; i < layoutModelDetail.details.length; i++) {
const key = layoutModelDetail.details[i];
if (this.layoutItems[key]) {
await this.initLayoutItem(this.layoutItems[key],index);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZCustomerUsr2MPickupView_layoutBase
*/
public handleValueChange(args: { name: string, value: any }) {
if (!args || !args.name || Object.is(args.name, '') || !this.layoutData.hasOwnProperty(args.name)) {
return;
}
const {name,value} = args;
this.layoutData[name] = value;
this.layoutModelDetails[name].setData(value);
this.panelLogic(name);
}
/**
* 面板逻辑
*
* @public
* @memberof IBIZCustomerUsr2MPickupView_layoutBase
*/
public panelLogic(name: string): void {
}
/**
* 获取按钮行为xData
*
* @public
* @memberof IBIZCustomerUsr2MPickupView_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 IBIZCustomerUsr2MPickupView_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;
if (Object.is(name, 'button_calluilogic2')) {
_this.panel_Layoutpanel_button_calluilogic2_click(datas, contextJO, paramJO, $event, xData, this, undefined);
}
if (Object.is(name, 'button_calluilogic1')) {
_this.panel_Layoutpanel_button_calluilogic1_click(datas, contextJO, paramJO, $event, xData, this, undefined);
}
}
/**
* 取消
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
*/
public panel_Layoutpanel_button_calluilogic2_click(args: any[], contextJO?:any, params?: any, $event?: any, xData?: any, actionContext?:any, srfParentDeName?:string) {
if (actionContext.viewType === 'APPLOGINVIEW') {
const length = Object.keys(actionContext.layoutData).length;
for (let i = length - 1; i >= 0; i--) {
const name = Object.keys(actionContext.layoutData)[i];
if (actionContext.layoutData.hasOwnProperty(name) && !Object.is(actionContext.layoutModelDetails[name].itemType, 'CONTAINER')) {
actionContext.handleValueChange({ name, value: null });
}
}
actionContext.$nextTick(() => {
actionContext.$forceUpdate();
})
} else {
const parentRef = actionContext.$parent;
if (parentRef.closeView && (parentRef.closeView instanceof Function)) {
parentRef.closeView(args);
} else if (actionContext.closeView && (actionContext.closeView instanceof Function)) {
actionContext.closeView(args);
}
}
}
/**
* 确认
*
* @param {any[]} args 当前数据
* @param {any} context 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @param {*} [srfParentDeName] 父实体名称
*/
public async panel_Layoutpanel_button_calluilogic1_click(args: any[], context: any = {}, params: any = {}, $event?: any, xData?: any, actionContext?: any, srfParentDeName?: string) {
// 准备上下文参数
const tempContext = {...context};
if (xData && xData.context) {
Object.assign(tempContext, xData.context);
}
const data = args[0];
let action: string | undefined = undefined;
const service = await window.entityServiceRegister.getService('IBIZCustomer');
if (service) {
const key = service.APPDEKEY.toLowerCase();
const name = service.APPDENAME.toLowerCase();
if (data.hasOwnProperty(key) || data.hasOwnProperty(name)) {
if (data.hasOwnProperty(key)) {
Object.assign(context, { [name]: data[key] });
} else {
Object.assign(context, { [name]: data[name] });
}
action = 'Update';
} else {
action = 'Create';
}
try {
if (service[action] && service[action] instanceof Function) {
service[action](tempContext, data).then((response: any) => {
if (!response.status || response.status !== 200) {
this.$Notice.error({ title: '错误', desc: '当前环境无法执行保存变更逻辑[执行行为异常]' });
}
})
} else {
this.$Notice.error({ title: '错误', desc: '当前环境无法执行保存变更逻辑[执行行为异常]' });
}
} catch (error: any) {
this.$Notice.error({ title: '错误', desc: '当前环境无法执行保存变更逻辑[执行行为异常]' });
}
}
}
/**
......@@ -654,7 +914,9 @@ export default class IBIZCustomerUsr2MPickupView_layoutBase extends Vue {
*/
public afterMounted(){
const _this: any = this;
_this.engineInit();
_this.initLayout().then((result: any) => {
_this.isLayoutLoadding = false;
_this.engineInit();
if (_this.loadModel && _this.loadModel instanceof Function) {
_this.loadModel();
}
......@@ -662,6 +924,7 @@ export default class IBIZCustomerUsr2MPickupView_layoutBase extends Vue {
this.engine.onCtrlEvent('pickupviewpanel', 'selectionchange', this.viewparams.selectedData);
this.onCLickRight();
}
})
}
......
.ibizcustomer-usr2-mpickup-view-layout{
position: relative;
}
.pickup-view {
>.translate-contant {
overflow: auto;
flex-grow: 1;
display: flex;
justify-content: flex-end;
height: calc(100% - 64px);
.translate-buttons {
width: 80px;
display: flex;
align-items: center;
text-align: center;
button {
margin-bottom: 5px;
}
}
.left, .right {
width: 300px;
}
.right {
border: 1px solid #e9e9e9;
.mpicker-select {
font-family: helvetica, sans-serif;
font-size: 16px;
text-align: justify;
word-spacing: -3.8pt;
line-height: 1.6;
font-weight: bold;
word-spacing: 10px;
height: 100%;
overflow: auto;
}
.mpicker-select > div {
padding: 3px 10px;
font-size: 14px;
color: rgba(0, 0, 0, 0.85);
font-weight: initial;
cursor: pointer;
min-height: 28px;
border: 1px solid #e9e9e9;
margin: 4px 4px;
transition: all .3s;
}
.mpicker-select > div:hover {
background: #ecf6fd;
}
.mpicker-select > .select{
color: #108ee9;
background: #ecf6fd;
}
}
.center{
width: calc(100% - 380px);
.pickupviewpanel {
width: 100%;
height: 100%;
}
}
}
>.footer {
height: 64px;
}
.ibizcustomer-usr2-mpickup-view-layout {
display: block;
}
......@@ -598,7 +598,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORGridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORListView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -634,7 +634,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORGridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZAPPEDITORListView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
......@@ -671,7 +671,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr5DataView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr3GridView' + (this.$t('app.searchForm.notConfig.loadAction') as string) });
return;
}
const arg: any = { ...opt };
......@@ -707,7 +707,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr5DataView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
this.$Notice.error({ title: (this.$t('app.commonWords.wrong') as string), desc: 'IBIZBOOKUsr3GridView' + (this.$t('app.searchForm.notConfig.loaddraftAction') as string) });
return;
}
const arg: any = { ...opt } ;
......
......@@ -530,7 +530,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};
......@@ -646,7 +646,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) {
......@@ -741,7 +741,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);
......@@ -749,7 +749,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){
......
......@@ -572,17 +572,227 @@
"getPSDEViewId" : "D23EF112-DA99-4DA9-9B57-4EEC55DB69EB",
"getPSViewLayoutPanel" : {
"codeName" : "Layoutpanel",
"controlStyle" : "APPDEMPICKUPVIEW",
"controlType" : "VIEWLAYOUTPANEL",
"layoutMode" : "TABLE_24COL",
"logicName" : "数据多选视图面板",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"getPSAppViewLogics" : [ {
"logicTrigger" : "CUSTOM",
"logicType" : "APPVIEWUIACTION",
"name" : "layoutpanel_button_calluilogic2_click",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "layoutpanel_button_calluilogic2"
}
}, {
"logicTrigger" : "CUSTOM",
"logicType" : "APPVIEWUIACTION",
"name" : "layoutpanel_button_calluilogic1_click",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "layoutpanel_button_calluilogic1"
}
} ],
"getPSAppViewUIActions" : [ {
"name" : "layoutpanel_button_calluilogic2",
"getPSUIAction" : {
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"modelref" : true,
"id" : "panel_Layoutpanel_button_calluilogic2_click"
},
"xDataControlName" : "layoutpanel"
}, {
"name" : "layoutpanel_button_calluilogic1",
"getPSUIAction" : {
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"modelref" : true,
"id" : "panel_Layoutpanel_button_calluilogic1_click"
},
"xDataControlName" : "layoutpanel"
} ],
"getPSControlParam" : { },
"getPSLayout" : {
"columnCount" : 24,
"layout" : "TABLE_24COL"
},
"getRootPSPanelItems" : [ {
"caption" : "滚动条容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_scroll1",
"getPSLayout" : {
"layout" : "BORDER"
},
"getPSLayoutPos" : {
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"getPSPanelItems" : [ {
"caption" : "面板容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_scroll_main1",
"getPSLayout" : {
"layout" : "BORDER"
},
"getPSLayoutPos" : {
"layout" : "BORDER",
"layoutPos" : "CENTER"
},
"getPSPanelItems" : [ {
"caption" : "PICKUPVIEWPANEL部件",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "pickupviewpanel",
"getPSLayoutPos" : {
"heightMode" : "FULL",
"layout" : "BORDER",
"layoutPos" : "CENTER",
"widthMode" : "FULL"
},
"showCaption" : true
} ],
"showCaption" : true
}, {
"caption" : "面板容器",
"contentHeight" : 80.0,
"height" : 80.0,
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_scroll_bottom1",
"getPSLayout" : {
"layout" : "BORDER"
},
"getPSLayoutPos" : {
"height" : 80,
"heightMode" : "PX",
"layout" : "BORDER",
"layoutPos" : "SOUTH"
},
"getPSPanelItems" : [ {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container1",
"getPSLayout" : {
"align" : "flex-end",
"dir" : "row",
"layout" : "FLEX",
"vAlign" : "center"
},
"getPSLayoutPos" : {
"heightMode" : "FULL",
"layout" : "BORDER",
"layoutPos" : "CENTER",
"spacingBottom" : "INNERMEDIUM",
"spacingTop" : "INNERMEDIUM",
"widthMode" : "FULL"
},
"getPSPanelItems" : [ {
"actionType" : "UIACTION",
"buttonHeight" : 32.0,
"buttonStyle" : "PRIMARY",
"buttonWidth" : 60.0,
"caption" : "确认",
"contentHeight" : 32.0,
"contentWidth" : 60.0,
"height" : 32.0,
"itemStyle" : "PRIMARY",
"itemType" : "BUTTON",
"name" : "button_calluilogic2",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "layoutpanel_button_calluilogic2"
},
"getPSLayoutPos" : {
"grow" : -1,
"height" : 32,
"heightMode" : "PX",
"layout" : "FLEX",
"spacingRight" : "OUTERSMALL",
"width" : 60,
"widthMode" : "PX"
},
"getPSUIAction" : {
"caption" : "取消",
"codeName" : "panel_Layoutpanel_button_calluilogic2_click",
"fullCodeName" : "panel_Layoutpanel_button_calluilogic2_click",
"name" : "取消",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"predefinedType" : "DATA_CANCELCHANGES",
"timeout" : 60000,
"uIActionMode" : "SYS",
"uIActionTag" : "panel_Layoutpanel_button_calluilogic2_click",
"uIActionType" : "DEUIACTION"
},
"tooltip" : "确认",
"width" : 60.0,
"showCaption" : true
}, {
"actionType" : "UIACTION",
"buttonHeight" : 32.0,
"buttonStyle" : "DEFAULT",
"buttonWidth" : 60.0,
"caption" : "取消",
"contentHeight" : 32.0,
"contentWidth" : 60.0,
"height" : 32.0,
"itemStyle" : "DEFAULT",
"itemType" : "BUTTON",
"name" : "button_calluilogic1",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "layoutpanel_button_calluilogic1"
},
"getPSLayoutPos" : {
"grow" : -1,
"height" : 32,
"heightMode" : "PX",
"layout" : "FLEX",
"width" : 60,
"widthMode" : "PX"
},
"getPSUIAction" : {
"caption" : "确认",
"codeName" : "panel_Layoutpanel_button_calluilogic1_click",
"fullCodeName" : "panel_Layoutpanel_button_calluilogic1_click",
"name" : "确认",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"predefinedType" : "DATA_SAVECHANGES",
"timeout" : 60000,
"uIActionMode" : "SYS",
"uIActionTag" : "panel_Layoutpanel_button_calluilogic1_click",
"uIActionType" : "DEUIACTION"
},
"tooltip" : "取消",
"width" : 60.0,
"showCaption" : true
} ]
} ],
"showCaption" : true
} ]
} ],
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
"useDefaultLayout" : false,
"modelid" : "A853930B-8872-4600-9FB0-81DDFCD8FF39",
"modeltype" : "PSSYSVIEWLAYOUTPANEL"
},
"title" : "客户数据多项选择视图",
"getTitlePSLanguageRes" : {
......
......@@ -572,17 +572,227 @@
"getPSDEViewId" : "412C7E1B-2D9A-4244-B51F-4964AEB314ED",
"getPSViewLayoutPanel" : {
"codeName" : "Layoutpanel",
"controlStyle" : "APPDEPICKUPVIEW",
"controlType" : "VIEWLAYOUTPANEL",
"layoutMode" : "TABLE_24COL",
"logicName" : "数据选择视图面板",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"getPSAppViewLogics" : [ {
"logicTrigger" : "CUSTOM",
"logicType" : "APPVIEWUIACTION",
"name" : "layoutpanel_button_calluilogic2_click",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "layoutpanel_button_calluilogic2"
}
}, {
"logicTrigger" : "CUSTOM",
"logicType" : "APPVIEWUIACTION",
"name" : "layoutpanel_button_calluilogic1_click",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "layoutpanel_button_calluilogic1"
}
} ],
"getPSAppViewUIActions" : [ {
"name" : "layoutpanel_button_calluilogic2",
"getPSUIAction" : {
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"modelref" : true,
"id" : "panel_Layoutpanel_button_calluilogic2_click"
},
"xDataControlName" : "layoutpanel"
}, {
"name" : "layoutpanel_button_calluilogic1",
"getPSUIAction" : {
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"modelref" : true,
"id" : "panel_Layoutpanel_button_calluilogic1_click"
},
"xDataControlName" : "layoutpanel"
} ],
"getPSControlParam" : { },
"getPSLayout" : {
"columnCount" : 24,
"layout" : "TABLE_24COL"
},
"getRootPSPanelItems" : [ {
"caption" : "滚动条容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_scroll1",
"getPSLayout" : {
"layout" : "BORDER"
},
"getPSLayoutPos" : {
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"getPSPanelItems" : [ {
"caption" : "面板容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_scroll_main1",
"getPSLayout" : {
"layout" : "BORDER"
},
"getPSLayoutPos" : {
"layout" : "BORDER",
"layoutPos" : "CENTER"
},
"getPSPanelItems" : [ {
"caption" : "PICKUPVIEWPANEL部件",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "pickupviewpanel",
"getPSLayoutPos" : {
"heightMode" : "FULL",
"layout" : "BORDER",
"layoutPos" : "CENTER",
"widthMode" : "FULL"
},
"showCaption" : true
} ],
"showCaption" : true
}, {
"caption" : "面板容器",
"contentHeight" : 64.0,
"height" : 64.0,
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_scroll_bottom1",
"getPSLayout" : {
"layout" : "BORDER"
},
"getPSLayoutPos" : {
"height" : 64,
"heightMode" : "PX",
"layout" : "BORDER",
"layoutPos" : "SOUTH"
},
"getPSPanelItems" : [ {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container1",
"getPSLayout" : {
"align" : "flex-end",
"dir" : "row",
"layout" : "FLEX",
"vAlign" : "center"
},
"getPSLayoutPos" : {
"heightMode" : "FULL",
"layout" : "BORDER",
"layoutPos" : "CENTER",
"spacingBottom" : "INNERMEDIUM",
"spacingTop" : "INNERMEDIUM",
"widthMode" : "FULL"
},
"getPSPanelItems" : [ {
"actionType" : "UIACTION",
"buttonHeight" : 32.0,
"buttonStyle" : "PRIMARY",
"buttonWidth" : 60.0,
"caption" : "确认",
"contentHeight" : 32.0,
"contentWidth" : 60.0,
"height" : 32.0,
"itemStyle" : "PRIMARY",
"itemType" : "BUTTON",
"name" : "button_calluilogic2",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "layoutpanel_button_calluilogic2"
},
"getPSLayoutPos" : {
"grow" : -1,
"height" : 32,
"heightMode" : "PX",
"layout" : "FLEX",
"spacingRight" : "OUTERSMALL",
"width" : 60,
"widthMode" : "PX"
},
"getPSUIAction" : {
"caption" : "取消",
"codeName" : "panel_Layoutpanel_button_calluilogic2_click",
"fullCodeName" : "panel_Layoutpanel_button_calluilogic2_click",
"name" : "取消",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"predefinedType" : "DATA_CANCELCHANGES",
"timeout" : 60000,
"uIActionMode" : "SYS",
"uIActionTag" : "panel_Layoutpanel_button_calluilogic2_click",
"uIActionType" : "DEUIACTION"
},
"tooltip" : "确认",
"width" : 60.0,
"showCaption" : true
}, {
"actionType" : "UIACTION",
"buttonHeight" : 32.0,
"buttonStyle" : "DEFAULT",
"buttonWidth" : 60.0,
"caption" : "取消",
"contentHeight" : 32.0,
"contentWidth" : 60.0,
"height" : 32.0,
"itemStyle" : "DEFAULT",
"itemType" : "BUTTON",
"name" : "button_calluilogic1",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "layoutpanel_button_calluilogic1"
},
"getPSLayoutPos" : {
"grow" : -1,
"height" : 32,
"heightMode" : "PX",
"layout" : "FLEX",
"width" : 60,
"widthMode" : "PX"
},
"getPSUIAction" : {
"caption" : "确认",
"codeName" : "panel_Layoutpanel_button_calluilogic1_click",
"fullCodeName" : "panel_Layoutpanel_button_calluilogic1_click",
"name" : "确认",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"predefinedType" : "DATA_SAVECHANGES",
"timeout" : 60000,
"uIActionMode" : "SYS",
"uIActionTag" : "panel_Layoutpanel_button_calluilogic1_click",
"uIActionType" : "DEUIACTION"
},
"tooltip" : "取消",
"width" : 60.0,
"showCaption" : true
} ]
} ],
"showCaption" : true
} ]
} ],
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
"useDefaultLayout" : false,
"modelid" : "AF8674AF-67C5-4129-9E3F-85014B741EC9",
"modeltype" : "PSSYSVIEWLAYOUTPANEL"
},
"title" : "客户数据选择视图",
"getTitlePSLanguageRes" : {
......
......@@ -332,17 +332,227 @@
"getPSDEViewId" : "F1CE3F74-F765-41BA-91DC-C0BEF0A50934",
"getPSViewLayoutPanel" : {
"codeName" : "Layoutpanel",
"controlStyle" : "APPDEMPICKUPVIEW",
"controlType" : "VIEWLAYOUTPANEL",
"layoutMode" : "TABLE_24COL",
"logicName" : "多选视图布局面板",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"getPSAppViewLogics" : [ {
"logicTrigger" : "CUSTOM",
"logicType" : "APPVIEWUIACTION",
"name" : "layoutpanel_button_calluilogic2_click",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "layoutpanel_button_calluilogic2"
}
}, {
"logicTrigger" : "CUSTOM",
"logicType" : "APPVIEWUIACTION",
"name" : "layoutpanel_button_calluilogic1_click",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "layoutpanel_button_calluilogic1"
}
} ],
"getPSAppViewUIActions" : [ {
"name" : "layoutpanel_button_calluilogic2",
"getPSUIAction" : {
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"modelref" : true,
"id" : "panel_Layoutpanel_button_calluilogic2_click"
},
"xDataControlName" : "layoutpanel"
}, {
"name" : "layoutpanel_button_calluilogic1",
"getPSUIAction" : {
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"modelref" : true,
"id" : "panel_Layoutpanel_button_calluilogic1_click"
},
"xDataControlName" : "layoutpanel"
} ],
"getPSControlParam" : { },
"getPSLayout" : {
"columnCount" : 24,
"layout" : "TABLE_24COL"
},
"getRootPSPanelItems" : [ {
"caption" : "滚动条容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_scroll1",
"getPSLayout" : {
"layout" : "BORDER"
},
"getPSLayoutPos" : {
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"getPSPanelItems" : [ {
"caption" : "面板容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_scroll_main1",
"getPSLayout" : {
"layout" : "BORDER"
},
"getPSLayoutPos" : {
"layout" : "BORDER",
"layoutPos" : "CENTER"
},
"getPSPanelItems" : [ {
"caption" : "PICKUPVIEWPANEL部件",
"itemStyle" : "DEFAULT",
"itemType" : "CTRLPOS",
"name" : "pickupviewpanel",
"getPSLayoutPos" : {
"heightMode" : "FULL",
"layout" : "BORDER",
"layoutPos" : "CENTER",
"widthMode" : "FULL"
},
"showCaption" : true
} ],
"showCaption" : true
}, {
"caption" : "面板容器",
"contentHeight" : 64.0,
"height" : 64.0,
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container_scroll_bottom1",
"getPSLayout" : {
"layout" : "BORDER"
},
"getPSLayoutPos" : {
"height" : 64,
"heightMode" : "PX",
"layout" : "BORDER",
"layoutPos" : "SOUTH"
},
"getPSPanelItems" : [ {
"caption" : "容器",
"itemStyle" : "DEFAULT",
"itemType" : "CONTAINER",
"name" : "container1",
"getPSLayout" : {
"align" : "flex-end",
"dir" : "row",
"layout" : "FLEX",
"vAlign" : "center"
},
"getPSLayoutPos" : {
"heightMode" : "FULL",
"layout" : "BORDER",
"layoutPos" : "CENTER",
"spacingBottom" : "INNERMEDIUM",
"spacingTop" : "INNERMEDIUM",
"widthMode" : "FULL"
},
"getPSPanelItems" : [ {
"actionType" : "UIACTION",
"buttonHeight" : 32.0,
"buttonStyle" : "PRIMARY",
"buttonWidth" : 60.0,
"caption" : "确认",
"contentHeight" : 32.0,
"contentWidth" : 60.0,
"height" : 32.0,
"itemStyle" : "PRIMARY",
"itemType" : "BUTTON",
"name" : "button_calluilogic2",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "layoutpanel_button_calluilogic2"
},
"getPSLayoutPos" : {
"grow" : -1,
"height" : 32,
"heightMode" : "PX",
"layout" : "FLEX",
"spacingRight" : "OUTERSMALL",
"width" : 60,
"widthMode" : "PX"
},
"getPSUIAction" : {
"caption" : "取消",
"codeName" : "panel_Layoutpanel_button_calluilogic2_click",
"fullCodeName" : "panel_Layoutpanel_button_calluilogic2_click",
"name" : "取消",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"predefinedType" : "DATA_CANCELCHANGES",
"timeout" : 60000,
"uIActionMode" : "SYS",
"uIActionTag" : "panel_Layoutpanel_button_calluilogic2_click",
"uIActionType" : "DEUIACTION"
},
"tooltip" : "确认",
"width" : 60.0,
"showCaption" : true
}, {
"actionType" : "UIACTION",
"buttonHeight" : 32.0,
"buttonStyle" : "DEFAULT",
"buttonWidth" : 60.0,
"caption" : "取消",
"contentHeight" : 32.0,
"contentWidth" : 60.0,
"height" : 32.0,
"itemStyle" : "DEFAULT",
"itemType" : "BUTTON",
"name" : "button_calluilogic1",
"getPSAppViewUIAction" : {
"modelref" : true,
"id" : "layoutpanel_button_calluilogic1"
},
"getPSLayoutPos" : {
"grow" : -1,
"height" : 32,
"heightMode" : "PX",
"layout" : "FLEX",
"width" : 60,
"widthMode" : "PX"
},
"getPSUIAction" : {
"caption" : "确认",
"codeName" : "panel_Layoutpanel_button_calluilogic1_click",
"fullCodeName" : "panel_Layoutpanel_button_calluilogic1_click",
"name" : "确认",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZCustomer.json"
},
"predefinedType" : "DATA_SAVECHANGES",
"timeout" : 60000,
"uIActionMode" : "SYS",
"uIActionTag" : "panel_Layoutpanel_button_calluilogic1_click",
"uIActionType" : "DEUIACTION"
},
"tooltip" : "取消",
"width" : 60.0,
"showCaption" : true
} ]
} ],
"showCaption" : true
} ]
} ],
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
"useDefaultLayout" : false,
"modelid" : "9DF27994-991E-4C7F-9D18-79656175072E",
"modeltype" : "PSSYSVIEWLAYOUTPANEL"
},
"title" : "客户实体数据多项选择视图(树视图)",
"viewStyle" : "DEFAULT",
......
......@@ -278,7 +278,7 @@
<!--输出实体[IBIZCUSTOMER]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizcustomer-210-10">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizcustomer-242-10">
<createTable tableName="T_IBIZCUSTOMER">
<column name="CREATEMAN" remarks="" type="VARCHAR(60)">
</column>
......
......@@ -19,7 +19,7 @@
</createView>
</changeSet>
<!--输出实体[IBIZCUSTOMER]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步-->
<changeSet author="a_LAB01_df847bdfd" id="view-ibizcustomer-210-4" runOnChange="true">
<changeSet author="a_LAB01_df847bdfd" id="view-ibizcustomer-242-4" runOnChange="true">
<createView fullDefinition="false" replaceIfExists="true" viewName="V_IBIZCUSTOMER">
<![CDATA[ SELECT t1.[ADDRESS], t1.[CREATEDATE], t1.[CREATEMAN], t1.[CUSTOMERUID], t1.[IBIZCUSTOMERID], t1.[IBIZCUSTOMERNAME], t1.[SN], t1.[UPDATEDATE], t1.[UPDATEMAN] FROM [T_IBIZCUSTOMER] t1 ]]>
</createView>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册