Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
功
功能演示系统
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
示例
功能演示系统
提交
0b726c90
提交
0b726c90
编写于
11月 09, 2022
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
tony001 发布系统代码 [后台服务,演示应用]
上级
5e480858
变更
14
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
1627 行增加
和
321 行删除
+1627
-321
ibizcustomer-mpickup-view-layout-base.vue
...kup-view-layout/ibizcustomer-mpickup-view-layout-base.vue
+325
-62
ibizcustomer-mpickup-view-layout.less
...mpickup-view-layout/ibizcustomer-mpickup-view-layout.less
+2
-68
ibizcustomer-pickup-view-layout-base.vue
...ckup-view-layout/ibizcustomer-pickup-view-layout-base.vue
+325
-29
ibizcustomer-pickup-view-layout.less
...r-pickup-view-layout/ibizcustomer-pickup-view-layout.less
+2
-16
ibizcustomer-usr2-mpickup-view-layout-base.vue
...iew-layout/ibizcustomer-usr2-mpickup-view-layout-base.vue
+325
-62
ibizcustomer-usr2-mpickup-view-layout.less
...up-view-layout/ibizcustomer-usr2-mpickup-view-layout.less
+2
-68
default-searchform-base.vue
...zappeditor/default-searchform/default-searchform-base.vue
+2
-2
default-searchform-base.vue
...s/ibizbook/default-searchform/default-searchform-base.vue
+2
-2
list-exp-list-base.vue
...rc/widgets/ibizorder/list-exp-list/list-exp-list-base.vue
+4
-4
IBIZCustomerMPickupView_layout.json
...APPS/Web/PSAPPDEVIEWS/IBIZCustomerMPickupView_layout.json
+212
-2
IBIZCustomerPickupView_layout.json
...SAPPS/Web/PSAPPDEVIEWS/IBIZCustomerPickupView_layout.json
+212
-2
IBIZCustomerUsr2MPickupView_layout.json
.../Web/PSAPPDEVIEWS/IBIZCustomerUsr2MPickupView_layout.json
+212
-2
h2_table.xml
demo-core/src/main/resources/liquibase/h2_table.xml
+1
-1
view.xml
demo-core/src/main/resources/liquibase/view.xml
+1
-1
未找到文件。
app_Web/src/pages/sample/ibizcustomer-mpickup-view-layout/ibizcustomer-mpickup-view-layout-base.vue
浏览文件 @
0b726c90
<
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>
<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
();
}
})
}
...
...
app_Web/src/pages/sample/ibizcustomer-mpickup-view-layout/ibizcustomer-mpickup-view-layout.less
浏览文件 @
0b726c90
.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;
}
app_Web/src/pages/sample/ibizcustomer-pickup-view-layout/ibizcustomer-pickup-view-layout-base.vue
浏览文件 @
0b726c90
<
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>
<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
);
}
})
}
...
...
app_Web/src/pages/sample/ibizcustomer-pickup-view-layout/ibizcustomer-pickup-view-layout.less
浏览文件 @
0b726c90
.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;
}
app_Web/src/pages/sample/ibizcustomer-usr2-mpickup-view-layout/ibizcustomer-usr2-mpickup-view-layout-base.vue
浏览文件 @
0b726c90
<
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>
<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
();
}
})
}
...
...
app_Web/src/pages/sample/ibizcustomer-usr2-mpickup-view-layout/ibizcustomer-usr2-mpickup-view-layout.less
浏览文件 @
0b726c90
.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;
}
app_Web/src/widgets/ibizappeditor/default-searchform/default-searchform-base.vue
浏览文件 @
0b726c90
...
...
@@ -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
:
'IBIZAPPEDITOR
Grid
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loadAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZAPPEDITOR
List
View'
+
(
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
:
'IBIZAPPEDITOR
Grid
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loaddraftAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZAPPEDITOR
List
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loaddraftAction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
}
;
...
...
app_Web/src/widgets/ibizbook/default-searchform/default-searchform-base.vue
浏览文件 @
0b726c90
...
...
@@ -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
:
'IBIZBOOKUsr
5Data
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loadAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKUsr
3Grid
View'
+
(
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
:
'IBIZBOOKUsr
5Data
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loaddraftAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKUsr
3Grid
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loaddraftAction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
}
;
...
...
app_Web/src/widgets/ibizorder/list-exp-list/list-exp-list-base.vue
浏览文件 @
0b726c90
...
...
@@ -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
){
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZCustomerMPickupView_layout.json
浏览文件 @
0b726c90
...
...
@@ -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"
:
{
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZCustomerPickupView_layout.json
浏览文件 @
0b726c90
...
...
@@ -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"
:
{
...
...
demo-boot/src/main/resources/static/remotemodel/PSSYSAPPS/Web/PSAPPDEVIEWS/IBIZCustomerUsr2MPickupView_layout.json
浏览文件 @
0b726c90
...
...
@@ -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"
,
...
...
demo-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
0b726c90
...
...
@@ -278,7 +278,7 @@
<!--输出实体[IBIZCUSTOMER]数据结构 -->
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"tab-ibizcustomer-2
10
-10"
>
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"tab-ibizcustomer-2
42
-10"
>
<createTable
tableName=
"T_IBIZCUSTOMER"
>
<column
name=
"CREATEMAN"
remarks=
""
type=
"VARCHAR(60)"
>
</column>
...
...
demo-core/src/main/resources/liquibase/view.xml
浏览文件 @
0b726c90
...
...
@@ -19,7 +19,7 @@
</createView>
</changeSet>
<!--输出实体[IBIZCUSTOMER]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步-->
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"view-ibizcustomer-2
10
-4"
runOnChange=
"true"
>
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"view-ibizcustomer-2
42
-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
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录