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

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

上级 e3750ee1
<template>
<div class="view-container decustomview ibizbookcustom-view">
<app-studioaction :viewTitle="$t(model.srfCaption)" viewName="ibizbookcustomview"></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='VMGroup85' viewname='ibizbookcustomview'></app-alert-group> </div>
<div class="content-container">
<div v-if="!isLayoutLoadding" class="app-view-layout ibizbookcustom-view" :style="{height: '100%', width: '100%', overflow: 'auto'}">
<app-standard-container name="page_container" :layoutModelDetails="layoutModelDetails">
</app-standard-container>
</div>
</card>
</div>
</template>
<script lang='tsx'>
......@@ -22,6 +15,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({
......@@ -213,6 +207,181 @@ export default class IBIZBOOKCustomViewBase extends Vue {
*/
public viewState: Subject<ViewState> = new Subject();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKCustomViewBase
*/
public rootLayoutDetailNames: string[] = [ 'page_container' ];
/**
* 视图布局面板项模型对象
*
* @public
* @memberof IBIZBOOKCustomViewBase
*/
public layoutItems:any = {
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:[] , dataRegionType: 'INHERIT' }
};
/**
* 视图布局是否加载
*
* @public
* @memberof IBIZBOOKCustomViewBase
*/
public isLayoutLoadding: boolean = true;
/**
* 视图布局数据
*
* @public
* @memberof IBIZBOOKCustomViewBase
*/
public layoutData:any = {};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZBOOKCustomViewBase
*/
public layoutModelDetails:any = {};
/**
* 初始化布局
*
* @public
* @memberof IBIZBOOKCustomViewBase
*/
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 IBIZBOOKCustomViewBase
*/
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 IBIZBOOKCustomViewBase
*/
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 IBIZBOOKCustomViewBase
*/
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 IBIZBOOKCustomViewBase
*/
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;
}
/**
......@@ -531,11 +700,14 @@ export default class IBIZBOOKCustomViewBase extends Vue {
*/
public afterMounted(){
const _this: any = this;
_this.initLayout().then((result: any) => {
_this.isLayoutLoadding = false;
_this.engineInit();
if (_this.loadModel && _this.loadModel instanceof Function) {
_this.loadModel();
}
})
}
......
.ibizbookcustom-view{
position: relative;
.ibizbookcustom-view {
display: block;
}
.ibizbookusr2-medit-view9 {
.ibizbookusr2-medit-view9{
position: relative;
}
.ibizbookusr2-medit-view9{
display: block;
}
......@@ -3,11 +3,9 @@ import { Component } from 'vue-property-decorator';
import IBIZBOOKUsr2MEditView9Base from './ibizbookusr2-medit-view9-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) => {
......
.ibizsample0021-wfdyna-action-view{
position: relative;
.ibizsample0021-wfdyna-action-view {
display: block;
}
......@@ -79,11 +79,11 @@ export default class GridViewLoadUILogicBase {
protected logicNodes: ILogicNode[] = [
{ codeName: 'Begin', name: '开始', logicNodeType: 'BEGIN', logicLinks: [ { name: '连接名称', dstLogicNode: 'BINDPARAM1', } ] }
{ codeName: 'BINDPARAM1', name: '绑定当前搜索表单', logicNodeType: 'BINDPARAM', dstParam: 'searchForm', srcParam: 'view', srcFieldName: 'searchForm', logicLinks: [ { name: '连接名称', dstLogicNode: 'VIEWCTRLINVOKE1', } ] }
{ codeName: 'VIEWCTRLINVOKE1', name: '视图部件调用', logicNodeType: 'VIEWCTRLINVOKE', dstParam: 'viewParam', srcParam: 'searchForm', logicLinks: [ { name: '连接名称', dstLogicNode: 'VIEWCTRLINVOKE2', } ] }
{ codeName: 'END1', name: '结束', logicNodeType: 'END', returnType: 'NONEVALUE', returnRawValue: '', }
{ codeName: 'VIEWCTRLINVOKE2', name: '视图部件调用', logicNodeType: 'VIEWCTRLINVOKE', dstParam: 'viewParam', srcParam: 'grid', logicLinks: [ { name: '连接名称', dstLogicNode: 'END1', } ] }
{ codeName: 'Begin', name: '开始', logicNodeType: 'BEGIN', logicLinks: [ { name: '连接名称', dstLogicNode: 'BINDPARAM1', } ] },
{ codeName: 'BINDPARAM1', name: '绑定当前搜索表单', logicNodeType: 'BINDPARAM', dstParam: 'searchForm', srcParam: 'view', srcFieldName: 'searchForm', logicLinks: [ { name: '连接名称', dstLogicNode: 'VIEWCTRLINVOKE1', } ] },
{ codeName: 'VIEWCTRLINVOKE1', name: '视图部件调用', logicNodeType: 'VIEWCTRLINVOKE', dstParam: 'viewParam', srcParam: 'searchForm', logicLinks: [ { name: '连接名称', dstLogicNode: 'VIEWCTRLINVOKE2', } ] },
{ codeName: 'END1', name: '结束', logicNodeType: 'END', returnType: 'NONEVALUE', returnRawValue: '', },
{ codeName: 'VIEWCTRLINVOKE2', name: '视图部件调用', logicNodeType: 'VIEWCTRLINVOKE', dstParam: 'viewParam', srcParam: 'grid', logicLinks: [ { name: '连接名称', dstLogicNode: 'END1', } ] },
];
public beforeExecute(args: any, context: any = {}, params: any = {},
......
......@@ -35,9 +35,9 @@ export default class OpenYuQueUILogicBase {
protected logicNodes: ILogicNode[] = [
{ codeName: 'Begin', name: '开始', logicNodeType: 'BEGIN', logicLinks: [ { name: '连接名称', dstLogicNode: 'DEUIACTION1', } ] }
{ codeName: 'END1', name: '结束', logicNodeType: 'END', returnType: 'NONEVALUE', returnRawValue: '', }
{ codeName: 'DEUIACTION1', name: '界面行为', logicNodeType: 'DEUIACTION', dstParam: 'Default', logicLinks: [ { name: '连接名称', dstLogicNode: 'END1', } ] }
{ codeName: 'Begin', name: '开始', logicNodeType: 'BEGIN', logicLinks: [ { name: '连接名称', dstLogicNode: 'DEUIACTION1', } ] },
{ codeName: 'END1', name: '结束', logicNodeType: 'END', returnType: 'NONEVALUE', returnRawValue: '', },
{ codeName: 'DEUIACTION1', name: '界面行为', logicNodeType: 'DEUIACTION', dstParam: 'Default', logicLinks: [ { name: '连接名称', dstLogicNode: 'END1', } ] },
];
public beforeExecute(args: any, context: any = {}, params: any = {},
......
......@@ -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 } ;
......
......@@ -69,11 +69,6 @@ export default class Usr4Model {
prop: 'n_ibizbookname_like',
dataType: 'QUERYPARAM'
},
{
name: 'n_price_gtandeq',
prop: 'n_price_gtandeq',
dataType: 'QUERYPARAM'
},
{
......
......@@ -19,17 +19,37 @@
"getPSDEViewId" : "621af848e45cfa22f4e35363132223de",
"getPSViewLayoutPanel" : {
"codeName" : "Layoutpanel",
"controlStyle" : "APPDECUSTOMVIEW",
"controlType" : "VIEWLAYOUTPANEL",
"layoutMode" : "TABLE_24COL",
"logicName" : "自定义视图",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZBOOK.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"
}
} ],
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
"useDefaultLayout" : false,
"modelid" : "01998BC8-AF5A-46BD-BA0A-4E87605B3F52",
"modeltype" : "PSSYSVIEWLAYOUTPANEL"
},
"title" : "实体自定义视图",
"getTitlePSLanguageRes" : {
......
......@@ -796,18 +796,109 @@
"getPSDEViewCodeName" : "WFDynaActionView",
"getPSDEViewId" : "19a3720def6d047565e10cc1c13ad528",
"getPSViewLayoutPanel" : {
"getAllPSPanelFields" : [ {
"id" : "view_pagecaption"
} ],
"codeName" : "Layoutpanel",
"controlStyle" : "APPDEWFDYNAACTIONVIEW",
"controlType" : "VIEWLAYOUTPANEL",
"layoutMode" : "TABLE_24COL",
"logicName" : "工作流动态操作视图",
"name" : "layoutpanel",
"getPSAppDataEntity" : {
"modelref" : true,
"path" : "PSSYSAPPS/Web/PSAPPDATAENTITIES/IBIZSample0021.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" : "form",
"getPSLayoutPos" : {
"grow" : -1,
"layout" : "FLEX"
},
"showCaption" : true
} ]
} ]
} ],
"layoutBodyOnly" : true,
"layoutPanel" : true,
"useDefaultLayout" : true
"useDefaultLayout" : false,
"modelid" : "097A58CF-B640-4092-B2A4-75A59BE2E1D3",
"modeltype" : "PSSYSVIEWLAYOUTPANEL"
},
"title" : "订单工作流动态操作视图",
"viewStyle" : "DEFAULT",
......
......@@ -172,7 +172,7 @@
<!--输出实体[IBIZBOOK]数据结构 -->
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-152-7">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizbook-156-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-178-14">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizorder-180-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-21-39">
<changeSet author="a_LAB01_df847bdfd" id="tab-ibizsample0021-27-39">
<createTable tableName="T_IBIZSAMPLE0021">
<column name="IBIZSAMPLE0021ID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_IBIZSAMPLE0021_IBIZSAMPLE00"/>
......
......@@ -37,7 +37,7 @@
</createView>
</changeSet>
<!--输出实体[IBIZORDER]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步-->
<changeSet author="a_LAB01_df847bdfd" id="view-ibizorder-178-8" runOnChange="true">
<changeSet author="a_LAB01_df847bdfd" id="view-ibizorder-180-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>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册