Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
功
功能演示系统
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
示例
功能演示系统
提交
77cceab3
提交
77cceab3
编写于
11月 04, 2022
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
tony001 发布系统代码 [后台服务,演示应用]
上级
22b8292a
变更
31
隐藏空白字符变更
内嵌
并排
正在显示
31 个修改的文件
包含
1519 行增加
和
561 行删除
+1519
-561
panel-detail.ts
app_Web/src/model/panel-detail/panel-detail.ts
+18
-0
ibizbookinter-func-edit-view-layout-base.vue
...-view-layout/ibizbookinter-func-edit-view-layout-base.vue
+67
-0
ibizbooktest-clcalendar-view-base.vue
...est-clcalendar-view/ibizbooktest-clcalendar-view-base.vue
+67
-0
ibizbooktest-cldata-view-base.vue
...bizbooktest-cldata-view/ibizbooktest-cldata-view-base.vue
+67
-0
ibizbooktest-cllist-view-base.vue
...bizbooktest-cllist-view/ibizbooktest-cllist-view-base.vue
+67
-0
ibizbooktest-cltree-view-base.vue
...bizbooktest-cltree-view/ibizbooktest-cltree-view-base.vue
+67
-0
ibizcustomer-media-test-edit-view-base.vue
...test-edit-view/ibizcustomer-media-test-edit-view-base.vue
+67
-0
ibizorder-sedit-view2-layout-base.vue
...-sedit-view2-layout/ibizorder-sedit-view2-layout-base.vue
+116
-106
ibizorder-sedit-view2-layout.less
...rder-sedit-view2-layout/ibizorder-sedit-view2-layout.less
+2
-59
ibizorder-sedit-view3-layout-base.vue
...-sedit-view3-layout/ibizorder-sedit-view3-layout-base.vue
+143
-153
ibizorder-sedit-view3-layout.less
...rder-sedit-view3-layout/ibizorder-sedit-view3-layout.less
+3
-28
ibizorder-sedit-view4-layout-base.vue
...-sedit-view4-layout/ibizorder-sedit-view4-layout-base.vue
+147
-131
ibizorder-sedit-view4-layout.less
...rder-sedit-view4-layout/ibizorder-sedit-view4-layout.less
+2
-23
ibizorder-sedit-view4-layout.vue
...order-sedit-view4-layout/ibizorder-sedit-view4-layout.vue
+2
-2
ibizorder-test-clchart-view-base.vue
...er-test-clchart-view/ibizorder-test-clchart-view-base.vue
+67
-0
ibizorder-test-cledit-view2-base.vue
...er-test-cledit-view2/ibizorder-test-cledit-view2-base.vue
+67
-0
ibizorder-test-cltree-exp-view-base.vue
...t-cltree-exp-view/ibizorder-test-cltree-exp-view-base.vue
+67
-0
ibizorder-test-custom-layout-panel-grid-exp-view-base.vue
...ibizorder-test-custom-layout-panel-grid-exp-view-base.vue
+67
-0
ibizorder-usr2-grid-view-base.vue
...bizorder-usr2-grid-view/ibizorder-usr2-grid-view-base.vue
+67
-0
ibizsample0003-stab-exp-view-layout-base.vue
...-view-layout/ibizsample0003-stab-exp-view-layout-base.vue
+115
-17
ibizsample0003-stab-exp-view-layout.less
...-exp-view-layout/ibizsample0003-stab-exp-view-layout.less
+3
-12
index-base.vue
app_Web/src/pages/sample/index/index-base.vue
+67
-0
app-index-view-base.vue
.../src/pages/ungroup/app-index-view/app-index-view-base.vue
+67
-0
app-login-view-base.vue
.../src/pages/ungroup/app-login-view/app-login-view-base.vue
+67
-0
state.ts
app_Web/src/store/modules/view-action/state.ts
+1
-1
default-searchform-base.vue
...s/ibizbook/default-searchform/default-searchform-base.vue
+2
-2
guide-borrow-form-form-base.vue
...ok/guide-borrow-form-form/guide-borrow-form-form-base.vue
+5
-5
stab-exp-view-layouttabexppanel-tabexppanel-base.vue
...anel/stab-exp-view-layouttabexppanel-tabexppanel-base.vue
+16
-16
stab-exp-view-layouttabexppanel-tabexppanel.vue
...bexppanel/stab-exp-view-layouttabexppanel-tabexppanel.vue
+2
-2
h2_table.xml
demo-core/src/main/resources/liquibase/h2_table.xml
+2
-2
view.xml
demo-core/src/main/resources/liquibase/view.xml
+2
-2
未找到文件。
app_Web/src/model/panel-detail/panel-detail.ts
浏览文件 @
77cceab3
...
...
@@ -199,6 +199,22 @@ export class PanelDetailModel {
*/
public
predefinedType
:
string
=
''
;
/**
* 下标
*
* @type {number}
* @memberof PanelDetailModel
*/
public
index
:
number
=
0
;
/**
* 父项名称
*
* @type {string | undefined}
* @memberof PanelDetailModel
*/
public
parentName
:
string
|
undefined
=
undefined
;
/**
* Creates an instance of PanelDetailModel.
* PanelDetailModel 实例
...
...
@@ -231,6 +247,8 @@ export class PanelDetailModel {
this
.
predefinedType
=
opts
.
predefinedType
;
this
.
itemStyle
=
opts
.
itemStyle
;
this
.
sysImage
=
opts
.
sysImage
;
this
.
index
=
opts
.
index
?
opts
.
index
:
0
;
this
.
parentName
=
opts
.
parentName
;
}
/**
...
...
app_Web/src/pages/sample/ibizbookinter-func-edit-view-layout/ibizbookinter-func-edit-view-layout-base.vue
浏览文件 @
77cceab3
...
...
@@ -301,6 +301,14 @@ export default class IBIZBOOKInterFuncEditView_layoutBase extends Vue {
};
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKInterFuncEditView_layoutBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'page_container'
];
/**
* 视图布局数据
*
...
...
@@ -335,6 +343,65 @@ export default class IBIZBOOKInterFuncEditView_layoutBase extends Vue {
page_container
:
new
PanelContainerModel
({
name
:
'page_container'
,
caption
:
'容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
'column'
,
vAlign
:
''
},
panel
:
this
,
details
:[
'container_grid1'
,
'container3'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof IBIZBOOKInterFuncEditView_layoutBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKInterFuncEditView_layoutBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/sample/ibizbooktest-clcalendar-view/ibizbooktest-clcalendar-view-base.vue
浏览文件 @
77cceab3
...
...
@@ -246,6 +246,14 @@ export default class IBIZBOOKTestCLCalendarViewBase extends Vue {
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKTestCLCalendarViewBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'page_container'
];
/**
* 视图布局数据
*
...
...
@@ -276,6 +284,65 @@ export default class IBIZBOOKTestCLCalendarViewBase extends Vue {
page_container
:
new
PanelContainerModel
({
name
:
'page_container'
,
caption
:
'容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
'column'
,
vAlign
:
''
},
panel
:
this
,
details
:[
'container2'
,
'container_grid1'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof IBIZBOOKTestCLCalendarViewBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKTestCLCalendarViewBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/sample/ibizbooktest-cldata-view/ibizbooktest-cldata-view-base.vue
浏览文件 @
77cceab3
...
...
@@ -381,6 +381,14 @@ export default class IBIZBOOKTestCLDataViewBase extends Vue {
};
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKTestCLDataViewBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'page_container'
];
/**
* 视图布局数据
*
...
...
@@ -421,6 +429,65 @@ export default class IBIZBOOKTestCLDataViewBase extends Vue {
page_container
:
new
PanelContainerModel
({
name
:
'page_container'
,
caption
:
'容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
'column'
,
vAlign
:
''
},
panel
:
this
,
details
:[
'container_grid1'
,
'container4'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof IBIZBOOKTestCLDataViewBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKTestCLDataViewBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/sample/ibizbooktest-cllist-view/ibizbooktest-cllist-view-base.vue
浏览文件 @
77cceab3
...
...
@@ -381,6 +381,14 @@ export default class IBIZBOOKTestCLListViewBase extends Vue {
};
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKTestCLListViewBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'page_container'
];
/**
* 视图布局数据
*
...
...
@@ -421,6 +429,65 @@ export default class IBIZBOOKTestCLListViewBase extends Vue {
page_container
:
new
PanelContainerModel
({
name
:
'page_container'
,
caption
:
'容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
'column'
,
vAlign
:
''
},
panel
:
this
,
details
:[
'container_grid1'
,
'container5'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof IBIZBOOKTestCLListViewBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKTestCLListViewBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/sample/ibizbooktest-cltree-view/ibizbooktest-cltree-view-base.vue
浏览文件 @
77cceab3
...
...
@@ -247,6 +247,14 @@ export default class IBIZBOOKTestCLTreeViewBase extends Vue {
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZBOOKTestCLTreeViewBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'page_container'
];
/**
* 视图布局数据
*
...
...
@@ -277,6 +285,65 @@ export default class IBIZBOOKTestCLTreeViewBase extends Vue {
page_container
:
new
PanelContainerModel
({
name
:
'page_container'
,
caption
:
'容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
'column'
,
vAlign
:
''
},
panel
:
this
,
details
:[
'container2'
,
'container_grid1'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof IBIZBOOKTestCLTreeViewBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZBOOKTestCLTreeViewBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/sample/ibizcustomer-media-test-edit-view/ibizcustomer-media-test-edit-view-base.vue
浏览文件 @
77cceab3
...
...
@@ -336,6 +336,14 @@ export default class IBIZCustomerMediaTestEditViewBase extends Vue {
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZCustomerMediaTestEditViewBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'page_container'
];
/**
* 视图布局数据
*
...
...
@@ -396,6 +404,65 @@ export default class IBIZCustomerMediaTestEditViewBase extends Vue {
page_container
:
new
PanelContainerModel
({
name
:
'page_container'
,
caption
:
'容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
'column'
,
vAlign
:
''
},
panel
:
this
,
details
:[
'container_grid1'
,
'container3'
,
'container2'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof IBIZCustomerMediaTestEditViewBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZCustomerMediaTestEditViewBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/sample/ibizorder-sedit-view2-layout/ibizorder-sedit-view2-layout-base.vue
浏览文件 @
77cceab3
<
template
>
<div
class=
"view-container deeditview2 ibizorder-sedit-view2-layout"
>
<app-studioaction
:viewTitle=
"$t(model.srfCaption)"
viewName=
"ibizorderseditview2_layout"
></app-studioaction>
<card
class=
'view-card '
:dis-hover=
"true"
:bordered=
"false"
>
<div
class=
'view-top-messages'
>
<app-alert-group
position=
'TOP'
:context=
"context"
:viewparam=
"viewparams"
infoGroup=
'VMGroup30'
viewname=
'ibizorderseditview2_layout'
></app-alert-group>
</div>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfCaption
)
}}
</span>
<template
v-if=
"!(drItem && drItem.id && drItem.id !== 'form')"
>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.deuiaction1.visabled"
:disabled=
"toolBarModels.deuiaction1.disabled"
class=
''
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'deuiaction1' }, $event)">
<i
class=
'fa fa-file-text-o'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview2_layouttoolbar_toolbar.deuiaction1.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview2_layouttoolbar_toolbar.deuiaction1.tip'
)
}}
</div>
</tooltip>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem3.visabled"
:disabled=
"toolBarModels.tbitem3.disabled"
class=
' deepskyblueToolBar'
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'tbitem3' }, $event)">
<i
class=
'fa fa-save'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem3.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem3.tip'
)
}}
</div>
</tooltip>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem5.visabled"
:disabled=
"toolBarModels.tbitem5.disabled"
class=
''
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'tbitem5' }, $event)">
<i
class=
'sx-tb-saveandclose'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem5.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem5.tip'
)
}}
</div>
</tooltip>
<span
class=
'seperator'
>
|
</span>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem9_saveandstart.visabled"
:disabled=
"toolBarModels.tbitem9_saveandstart.disabled"
class=
''
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'tbitem9_saveandstart' }, $event)">
<i
class=
''
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem9_saveandstart.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem9_saveandstart.tip'
)
}}
</div>
</tooltip>
<span
class=
'seperator'
>
|
</span>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem15.visabled"
:disabled=
"toolBarModels.tbitem15.disabled"
class=
''
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'tbitem15' }, $event)">
<i
class=
'fa fa-print'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem15.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview2_layouttoolbar_toolbar.tbitem15.tip'
)
}}
</div>
</tooltip>
</div>
</
template
>
</div>
<div
class=
"content-container"
>
<layout
class=
"edit-view2"
>
<sider
class=
"edit-view2-drbar"
:width=
"240"
>
<div
:class=
"{'edit-view2-drbar__caption': true, 'is-active': !(drItem && drItem.id && drItem.id !== 'form')}"
@
click=
"drBarChange"
>
<span>
订单
</span>
</div>
<view
_drbar
:viewState=
"viewState"
loadAction=
'get'
name=
'drbar'
ref=
'drbar'
:viewparams=
"viewparams"
:context=
"context"
:formData=
"formData"
@
load=
"drbar_load($event)"
@
selectionchange=
"drbar_selectionchange($event)"
@
closeview=
"closeView($event)"
>
</view
_drbar
>
</sider>
<content
class=
"edit-view2-content"
:style=
"{ width: 'calc(100% - 241px)' }"
>
<div
class=
"edit-view2-content__form"
:style=
"drItem && drItem.id && drItem.id !== 'form' ? 'display: none' : ''"
>
<view
_form
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:autosave=
"false"
:viewtag=
"viewtag"
:showBusyIndicator=
"true"
updateAction=
"Update"
removeAction=
"Remove"
loaddraftAction=
"GetDraft"
loadAction=
"Get"
createAction=
"Create"
WFSubmitAction=
""
WFStartAction=
""
style=
''
name=
"form"
ref=
'form'
@
load=
"form_load($event)"
@
save=
"form_save($event)"
@
remove=
"form_remove($event)"
@
closeview=
"closeView($event)"
>
</view
_form
>
</div>
<component
class=
"view-container2"
v-if=
"drItem && drItem.id && drItem.id !== 'form'"
:is=
"drItem.navView"
:viewDefaultUsage=
"false"
:viewdata=
"JSON.stringify(drItem.srfnavdata.context)"
:viewparam=
"JSON.stringify(drItem.srfnavdata.viewparams)"
>
</component>
</content>
</layout>
</div>
</card>
</div>
<div
class=
"app-view-layout ibizorder-sedit-view2-layout"
style=
"height: '100%'; width: '100%';'display': 'flex'; 'flex-direction': 'column';"
>
</div>
</
template
>
<
script
lang=
'tsx'
>
...
...
@@ -118,6 +14,7 @@ import IBIZOrderAuthService from '@/authservice/ibizorder/ibizorder-auth-service
import
EditView2Engine
from
'@engine/view/edit-view2-engine'
;
import
IBIZOrderUIService
from
'@/uiservice/ibizorder/ibizorder-ui-service'
;
import
{
PanelContainerModel
,
PanelRawitemModel
,
PanelFieldModel
,
PanelControlModel
,
PanelButtonModel
,
PanelUserControlModel
,
PanelTabPanelModel
,
PanelTabPageModel
,
PanelCtrlPosModel
}
from
'@/model/panel-detail'
;
@
Component
({
...
...
@@ -338,6 +235,119 @@ export default class IBIZOrderSEditView2_layoutBase extends Vue {
};
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
];
/**
* 视图布局数据
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public
layoutData
:
any
=
{
};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public
layoutModelDetails
:
any
=
{
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public
handleValueChange
(
$event
:
{
name
:
string
,
value
:
any
})
{
if
(
!
$event
||
!
$event
.
name
||
Object
.
is
(
$event
.
name
,
''
)
||
!
this
.
layoutData
.
hasOwnProperty
(
$event
.
name
))
{
return
;
}
this
.
layoutData
[
$event
.
name
]
=
$event
.
value
;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZOrderSEditView2_layoutBase
*/
public
handleButtonClick
(
name
:
string
,
$event
?:
any
)
{
let
datas
:
any
[]
=
[
this
.
layoutData
];
let
xData
:
any
=
null
;
let
paramJO
:
any
=
{};
let
contextJO
:
any
=
{};
const
_this
:
any
=
this
;
}
/**
...
...
app_Web/src/pages/sample/ibizorder-sedit-view2-layout/ibizorder-sedit-view2-layout.less
浏览文件 @
77cceab3
.view-card {
>.ivu-card-extra {
top: 5px;
right: 0px;
}
.ibizorder-sedit-view2-layout {
display: block;
}
.edit-view2-drbar__caption {
height: 40px;
line-height: 40px;
padding-left: 20px;
background: #fff;
color: #303133;
border-left: 3px solid #fff;
}
.edit-view2-drbar__caption.is-active {
background: #e9e9e9;
color: #666666;
border-left: 3px solid #3fd5c0;
}
.edit-view2-drbar {
background-color: #FFF;
.app-dr-bar {
height: calc(100% - 40px);
padding: 0;
}
}
.edit-view2-content {
background-color: #fff;
.edit-view2-content__form,
.view-container2 {
height: 100%;
}
.edit-view2-content__form {
padding: 0 12px;
}
}
.ibizorder-sedit-view2-layout{
position: relative;
}
.toolbar-container {
button {
margin: 6px 0px 4px 4px;
.caption {
margin-left: 4px;
}
}
.seperator {
color: #dcdee2;
margin: 0 0px 0 4px;
}
}
// this is less
.deepskyblueToolBar {color:white !important;background-color:#108cee !important;}
app_Web/src/pages/sample/ibizorder-sedit-view3-layout/ibizorder-sedit-view3-layout-base.vue
浏览文件 @
77cceab3
<
template
>
<div
class=
"view-container deeditview3 ibizorder-sedit-view3-layout"
>
<app-studioaction
:viewTitle=
"$t(model.srfCaption)"
viewName=
"ibizorderseditview3_layout"
></app-studioaction>
<card
class=
'view-card '
:dis-hover=
"true"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfCaption
)
}}
</span>
<template
v-if=
"Object.is(this.selection.id, 'form')"
>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.deuiaction1.visabled"
:disabled=
"toolBarModels.deuiaction1.disabled"
class=
''
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'deuiaction1' }, $event)">
<i
class=
'fa fa-file-text-o'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview3_layouttoolbar_toolbar.deuiaction1.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview3_layouttoolbar_toolbar.deuiaction1.tip'
)
}}
</div>
</tooltip>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem3.visabled"
:disabled=
"toolBarModels.tbitem3.disabled"
class=
' deepskyblueToolBar'
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'tbitem3' }, $event)">
<i
class=
'fa fa-save'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem3.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem3.tip'
)
}}
</div>
</tooltip>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem5.visabled"
:disabled=
"toolBarModels.tbitem5.disabled"
class=
''
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'tbitem5' }, $event)">
<i
class=
'sx-tb-saveandclose'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem5.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem5.tip'
)
}}
</div>
</tooltip>
<span
class=
'seperator'
>
|
</span>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem9_saveandstart.visabled"
:disabled=
"toolBarModels.tbitem9_saveandstart.disabled"
class=
''
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'tbitem9_saveandstart' }, $event)">
<i
class=
''
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem9_saveandstart.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem9_saveandstart.tip'
)
}}
</div>
</tooltip>
<span
class=
'seperator'
>
|
</span>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem15.visabled"
:disabled=
"toolBarModels.tbitem15.disabled"
class=
''
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'tbitem15' }, $event)">
<i
class=
'fa fa-print'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem15.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview3_layouttoolbar_toolbar.tbitem15.tip'
)
}}
</div>
</tooltip>
</div>
</
template
>
</div>
<div
class=
'view-top-messages'
>
<app-alert-group
position=
'TOP'
:context=
"context"
:viewparam=
"viewparams"
infoGroup=
'VMGroup32'
viewname=
'ibizorderseditview3_layout'
></app-alert-group>
</div>
<div
class=
"content-container"
>
<div
class=
"edit-view3"
>
<div
class=
"edit-view3-drheader"
>
<span
:class=
"{ 'dr-tab-item': true, 'is-active': drItem && drItem.id !== 'form' }"
@
click=
"handleDrTabChange"
>
订单
</span>
<view
_drtab
:viewState=
"viewState"
name=
'drtab'
ref=
'drtab'
:viewparams=
"viewparams"
:context=
"context"
parentName =
"IBIZOrder"
@
selectionchange=
'drtab_selectionchange($event)'
@
closeview=
'closeView($event)'
>
<view
_form
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:autosave=
"false"
:viewtag=
"viewtag"
:showBusyIndicator=
"true"
updateAction=
"Update"
removeAction=
"Remove"
loaddraftAction=
"GetDraft"
loadAction=
"Get"
createAction=
"Create"
WFSubmitAction=
""
WFStartAction=
""
style=
''
name=
"form"
ref=
'form'
@
load=
"form_load($event)"
@
save=
"form_save($event)"
@
remove=
"form_remove($event)"
@
closeview=
"closeView($event)"
>
</view
_form
>
</view
_drtab
>
</div>
<div
class=
"edit-view3-content"
>
<div
class=
"edit-view3-content__form"
:style=
"drItem && drItem.id !== 'form' ? 'display: none;' : ''"
>
<view
_form
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:autosave=
"false"
:viewtag=
"viewtag"
:showBusyIndicator=
"true"
updateAction=
"Update"
removeAction=
"Remove"
loaddraftAction=
"GetDraft"
loadAction=
"Get"
createAction=
"Create"
WFSubmitAction=
""
WFStartAction=
""
style=
''
name=
"form"
ref=
'form'
@
load=
"form_load($event)"
@
save=
"form_save($event)"
@
remove=
"form_remove($event)"
@
closeview=
"closeView($event)"
>
</view
_form
>
</div>
<component
class=
"view-container2"
v-if=
"drItem && drItem.id && drItem.id !== 'form'"
:is=
"drItem.navView"
:viewDefaultUsage=
"false"
:viewdata=
"JSON.stringify(drItem.srfnavdata.context)"
:viewparam=
"JSON.stringify(drItem.srfnavdata.viewparams)"
>
</component>
</div>
</div>
</div>
</card>
</div>
<div
class=
"app-view-layout ibizorder-sedit-view3-layout"
style=
"height: '100%'; width: '100%';'display': 'flex'; 'flex-direction': 'column';"
>
</div>
</
template
>
<
script
lang=
'tsx'
>
...
...
@@ -138,6 +14,7 @@ import IBIZOrderAuthService from '@/authservice/ibizorder/ibizorder-auth-service
import
EditView3Engine
from
'@engine/view/edit-view3-engine'
;
import
IBIZOrderUIService
from
'@/uiservice/ibizorder/ibizorder-ui-service'
;
import
{
PanelContainerModel
,
PanelRawitemModel
,
PanelFieldModel
,
PanelControlModel
,
PanelButtonModel
,
PanelUserControlModel
,
PanelTabPanelModel
,
PanelTabPageModel
,
PanelCtrlPosModel
}
from
'@/model/panel-detail'
;
@
Component
({
...
...
@@ -296,8 +173,8 @@ export default class IBIZOrderSEditView3_layoutBase extends Vue {
*/
public
containerModel
:
any
=
{
view_drtab
:
{
name
:
'drtab'
,
type
:
'DRTAB'
},
view_toolbar
:
{
name
:
'toolbar'
,
type
:
'TOOLBAR'
},
view_form
:
{
name
:
'form'
,
type
:
'FORM'
},
view_toolbar
:
{
name
:
'toolbar'
,
type
:
'TOOLBAR'
},
wflinks
:
[],
};
...
...
@@ -358,6 +235,119 @@ export default class IBIZOrderSEditView3_layoutBase extends Vue {
};
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
];
/**
* 视图布局数据
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public
layoutData
:
any
=
{
};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public
layoutModelDetails
:
any
=
{
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public
handleValueChange
(
$event
:
{
name
:
string
,
value
:
any
})
{
if
(
!
$event
||
!
$event
.
name
||
Object
.
is
(
$event
.
name
,
''
)
||
!
this
.
layoutData
.
hasOwnProperty
(
$event
.
name
))
{
return
;
}
this
.
layoutData
[
$event
.
name
]
=
$event
.
value
;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZOrderSEditView3_layoutBase
*/
public
handleButtonClick
(
name
:
string
,
$event
?:
any
)
{
let
datas
:
any
[]
=
[
this
.
layoutData
];
let
xData
:
any
=
null
;
let
paramJO
:
any
=
{};
let
contextJO
:
any
=
{};
const
_this
:
any
=
this
;
}
/**
...
...
@@ -714,32 +704,6 @@ export default class IBIZOrderSEditView3_layoutBase extends Vue {
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZOrderSEditView3_layoutBase
*/
public
toolbar_click
(
$event
:
any
,
$event2
?:
any
)
{
if
(
Object
.
is
(
$event
.
tag
,
'deuiaction1'
))
{
this
.
toolbar_deuiaction1_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem3'
))
{
this
.
toolbar_tbitem3_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem5'
))
{
this
.
toolbar_tbitem5_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem9_saveandstart'
))
{
this
.
toolbar_tbitem9_saveandstart_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem15'
))
{
this
.
toolbar_tbitem15_click
(
null
,
''
,
$event2
);
}
}
/**
* form 部件 load 事件
*
...
...
@@ -776,6 +740,32 @@ export default class IBIZOrderSEditView3_layoutBase extends Vue {
}
/**
* toolbar 部件 click 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZOrderSEditView3_layoutBase
*/
public
toolbar_click
(
$event
:
any
,
$event2
?:
any
)
{
if
(
Object
.
is
(
$event
.
tag
,
'deuiaction1'
))
{
this
.
toolbar_deuiaction1_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem3'
))
{
this
.
toolbar_tbitem3_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem5'
))
{
this
.
toolbar_tbitem5_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem9_saveandstart'
))
{
this
.
toolbar_tbitem9_saveandstart_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem15'
))
{
this
.
toolbar_tbitem15_click
(
null
,
''
,
$event2
);
}
}
/**
* 逻辑事件
...
...
app_Web/src/pages/sample/ibizorder-sedit-view3-layout/ibizorder-sedit-view3-layout.less
浏览文件 @
77cceab3
.view-card {
>.ivu-card-extra {
top: 5px;
right: 0px;
}
}
.ibizorder-sedit-view3-layout{
position: relative;
}
.toolbar-container {
button {
margin: 6px 0px 4px 4px;
.caption {
margin-left: 4px;
}
}
.seperator {
color: #dcdee2;
margin: 0 0px 0 4px;
}
}
// this is less
.deepskyblueToolBar {color:white !important;background-color:#108cee !important;}
.ibizorder-sedit-view3-layout {
display: block;
}
app_Web/src/pages/sample/ibizorder-sedit-view4-layout/ibizorder-sedit-view4-layout-base.vue
浏览文件 @
77cceab3
<
template
>
<div
class=
"view-container deeditview4 ibizorder-sedit-view4-layout"
>
<app-studioaction
:viewTitle=
"$t(model.srfCaption)"
viewName=
"ibizorderseditview4_layout"
></app-studioaction>
<card
class=
'view-card '
:disHover=
"true"
:padding=
"0"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfCaption
)
}}
</span>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.deuiaction1.visabled"
:disabled=
"toolBarModels.deuiaction1.disabled"
class=
''
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'deuiaction1' }, $event)">
<i
class=
'fa fa-file-text-o'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview4_layouttoolbar_toolbar.deuiaction1.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview4_layouttoolbar_toolbar.deuiaction1.tip'
)
}}
</div>
</tooltip>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem3.visabled"
:disabled=
"toolBarModels.tbitem3.disabled"
class=
' deepskyblueToolBar'
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'tbitem3' }, $event)">
<i
class=
'fa fa-save'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem3.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem3.tip'
)
}}
</div>
</tooltip>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem5.visabled"
:disabled=
"toolBarModels.tbitem5.disabled"
class=
''
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'tbitem5' }, $event)">
<i
class=
'sx-tb-saveandclose'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem5.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem5.tip'
)
}}
</div>
</tooltip>
<span
class=
'seperator'
>
|
</span>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem9_saveandstart.visabled"
:disabled=
"toolBarModels.tbitem9_saveandstart.disabled"
class=
''
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'tbitem9_saveandstart' }, $event)">
<i
class=
''
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem9_saveandstart.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem9_saveandstart.tip'
)
}}
</div>
</tooltip>
<span
class=
'seperator'
>
|
</span>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem15.visabled"
:disabled=
"toolBarModels.tbitem15.disabled"
class=
''
v-loading:i-button
@
click=
"toolbar_click(
{ tag: 'tbitem15' }, $event)">
<i
class=
'fa fa-print'
></i>
<span
class=
'caption'
>
{{
$t
(
'entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem15.caption'
)
}}
</span>
</i-button>
<div
slot=
'content'
>
{{
$t
(
'entities.ibizorder.seditview4_layouttoolbar_toolbar.tbitem15.tip'
)
}}
</div>
</tooltip>
</div>
</div>
<div
class=
'view-top-messages'
>
<app-alert-group
position=
'TOP'
:context=
"context"
:viewparam=
"viewparams"
infoGroup=
'VMGroup31'
viewname=
'ibizorderseditview4_layout'
></app-alert-group>
</div>
<div
class=
"content-container"
>
<div
class=
"edit-view4"
>
<div
class=
"edit-view4-form"
>
<view
_form
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
:autosave=
"false"
:viewtag=
"viewtag"
:showBusyIndicator=
"true"
updateAction=
"Update"
removeAction=
"Remove"
loaddraftAction=
"GetDraft"
loadAction=
"Get"
createAction=
"Create"
WFSubmitAction=
""
WFStartAction=
""
style=
''
name=
"form"
ref=
'form'
@
load=
"form_load($event)"
@
save=
"form_save($event)"
@
remove=
"form_remove($event)"
@
closeview=
"closeView($event)"
>
</view
_form
>
</div>
<div
class=
"edit-view4-content"
>
<view
_drtab
:viewState=
"viewState"
name=
'drtab'
ref=
'drtab'
:viewparams=
"viewparams"
:context=
"context"
parentName =
"IBIZOrder"
:isShowSlot=
"false"
@
selectionchange=
'drtab_selectionchange($event)'
@
closeview=
'closeView($event)'
>
</view
_drtab
>
<component
class=
"view-container2"
v-if=
"drItem && !drItem.disabled"
:is=
"drItem.navView"
:viewDefaultUsage=
"false"
:viewdata=
"JSON.stringify(drItem.srfnavdata.context)"
:viewparam=
"JSON.stringify(drItem.srfnavdata.viewparams)"
>
</component>
</div>
</div>
</div>
</card>
</div>
<div
class=
"app-view-layout ibizorder-sedit-view4-layout"
style=
"height: '100%'; width: '100%';'display': 'flex'; 'flex-direction': 'column';"
>
</div>
</
template
>
<
script
lang=
'tsx'
>
...
...
@@ -113,6 +15,7 @@ import IBIZOrderAuthService from '@/authservice/ibizorder/ibizorder-auth-service
import
EditView4Engine
from
'@engine/view/edit-view4-engine'
;
import
IBIZOrderUIService
from
'@/uiservice/ibizorder/ibizorder-ui-service'
;
import
{
PanelContainerModel
,
PanelRawitemModel
,
PanelFieldModel
,
PanelControlModel
,
PanelButtonModel
,
PanelUserControlModel
,
PanelTabPanelModel
,
PanelTabPageModel
,
PanelCtrlPosModel
}
from
'@/model/panel-detail'
;
@
Component
({
...
...
@@ -270,9 +173,9 @@ export default class IBIZOrderSEditView4_layoutBase extends Vue {
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
containerModel
:
any
=
{
view_drtab
:
{
name
:
'drtab'
,
type
:
'DRTAB'
},
view_toolbar
:
{
name
:
'toolbar'
,
type
:
'TOOLBAR'
},
view_form
:
{
name
:
'form'
,
type
:
'FORM'
},
view_toolbar
:
{
name
:
'toolbar'
,
type
:
'TOOLBAR'
},
view_drtab
:
{
name
:
'drtab'
,
type
:
'DRTAB'
},
wflinks
:
[],
};
...
...
@@ -334,6 +237,119 @@ export default class IBIZOrderSEditView4_layoutBase extends Vue {
};
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
];
/**
* 视图布局数据
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
layoutData
:
any
=
{
};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
layoutModelDetails
:
any
=
{
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
handleValueChange
(
$event
:
{
name
:
string
,
value
:
any
})
{
if
(
!
$event
||
!
$event
.
name
||
Object
.
is
(
$event
.
name
,
''
)
||
!
this
.
layoutData
.
hasOwnProperty
(
$event
.
name
))
{
return
;
}
this
.
layoutData
[
$event
.
name
]
=
$event
.
value
;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
handleButtonClick
(
name
:
string
,
$event
?:
any
)
{
let
datas
:
any
[]
=
[
this
.
layoutData
];
let
xData
:
any
=
null
;
let
paramJO
:
any
=
{};
let
contextJO
:
any
=
{};
const
_this
:
any
=
this
;
}
/**
* 视图引擎
...
...
@@ -678,76 +694,76 @@ export default class IBIZOrderSEditView4_layoutBase extends Vue {
/**
*
drtab 部件 selectionchange
事件
*
form 部件 load
事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
drtab_selectionchange
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'
drtab'
,
'selectionchange
'
,
$event
);
public
form_load
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'
form'
,
'load
'
,
$event
);
}
/**
*
toolbar 部件 click
事件
*
form 部件 save
事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
toolbar_click
(
$event
:
any
,
$event2
?:
any
)
{
if
(
Object
.
is
(
$event
.
tag
,
'deuiaction1'
))
{
this
.
toolbar_deuiaction1_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem3'
))
{
this
.
toolbar_tbitem3_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem5'
))
{
this
.
toolbar_tbitem5_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem9_saveandstart'
))
{
this
.
toolbar_tbitem9_saveandstart_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem15'
))
{
this
.
toolbar_tbitem15_click
(
null
,
''
,
$event2
);
}
public
form_save
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'save'
,
$event
);
}
/**
* form 部件
load
事件
* form 部件
remove
事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
form_
load
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'
load
'
,
$event
);
public
form_
remove
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'
remove
'
,
$event
);
}
/**
*
form 部件 save
事件
*
toolbar 部件 click
事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
form_save
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'form'
,
'save'
,
$event
);
public
toolbar_click
(
$event
:
any
,
$event2
?:
any
)
{
if
(
Object
.
is
(
$event
.
tag
,
'deuiaction1'
))
{
this
.
toolbar_deuiaction1_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem3'
))
{
this
.
toolbar_tbitem3_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem5'
))
{
this
.
toolbar_tbitem5_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem9_saveandstart'
))
{
this
.
toolbar_tbitem9_saveandstart_click
(
null
,
''
,
$event2
);
}
if
(
Object
.
is
(
$event
.
tag
,
'tbitem15'
))
{
this
.
toolbar_tbitem15_click
(
null
,
''
,
$event2
);
}
}
/**
*
form 部件 remov
e 事件
*
drtab 部件 selectionchang
e 事件
*
* @param {*} [args={}]
* @param {*} $event
* @memberof IBIZOrderSEditView4_layoutBase
*/
public
form_remov
e
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'
form'
,
'remov
e'
,
$event
);
public
drtab_selectionchang
e
(
$event
:
any
,
$event2
?:
any
)
{
this
.
engine
.
onCtrlEvent
(
'
drtab'
,
'selectionchang
e'
,
$event
);
}
...
...
app_Web/src/pages/sample/ibizorder-sedit-view4-layout/ibizorder-sedit-view4-layout.less
浏览文件 @
77cceab3
.ibizorder-sedit-view4-layout{
position: relative;
}
.toolbar-container {
button {
margin: 6px 0px 4px 4px;
.caption {
margin-left: 4px;
}
}
.seperator {
color: #dcdee2;
margin: 0 0px 0 4px;
}
}
// this is less
.deepskyblueToolBar {color:white !important;background-color:#108cee !important;}
.view-container.ibizorder-sedit-view4-layout > .view-card > .ivu-card-body > .content-container {
height: calc(100% - 30px);
.ibizorder-sedit-view4-layout {
display: block;
}
app_Web/src/pages/sample/ibizorder-sedit-view4-layout/ibizorder-sedit-view4-layout.vue
浏览文件 @
77cceab3
...
...
@@ -2,12 +2,12 @@
import
{
Component
}
from
'vue-property-decorator'
;
import
IBIZOrderSEditView4_layoutBase
from
'./ibizorder-sedit-view4-layout-base.vue'
;
import
view_drtab
from
'@widgets/ibizorder/default-drtab/default-drtab.vue'
;
import
view_form
from
'@widgets/ibizorder/sform-form/sform-form.vue'
;
import
view_drtab
from
'@widgets/ibizorder/default-drtab/default-drtab.vue'
;
@
Component
({
components
:
{
view_drtab
,
view_form
,
view_drtab
,
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
...
...
app_Web/src/pages/sample/ibizorder-test-clchart-view/ibizorder-test-clchart-view-base.vue
浏览文件 @
77cceab3
...
...
@@ -275,6 +275,14 @@ export default class IBIZOrderTestCLChartViewBase extends Vue {
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderTestCLChartViewBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'page_container'
];
/**
* 视图布局数据
*
...
...
@@ -315,6 +323,65 @@ export default class IBIZOrderTestCLChartViewBase extends Vue {
page_container
:
new
PanelContainerModel
({
name
:
'page_container'
,
caption
:
'容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
'column'
,
vAlign
:
''
},
panel
:
this
,
details
:[
'container_grid1'
,
'container_5'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderTestCLChartViewBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderTestCLChartViewBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/sample/ibizorder-test-cledit-view2/ibizorder-test-cledit-view2-base.vue
浏览文件 @
77cceab3
...
...
@@ -360,6 +360,14 @@ export default class IBIZOrderTestCLEditView2Base extends Vue {
};
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderTestCLEditView2Base
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'page_container'
];
/**
* 视图布局数据
*
...
...
@@ -406,6 +414,65 @@ export default class IBIZOrderTestCLEditView2Base extends Vue {
page_container
:
new
PanelContainerModel
({
name
:
'page_container'
,
caption
:
'容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
'column'
,
vAlign
:
''
},
panel
:
this
,
details
:[
'page_container2'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderTestCLEditView2Base
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderTestCLEditView2Base
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/sample/ibizorder-test-cltree-exp-view/ibizorder-test-cltree-exp-view-base.vue
浏览文件 @
77cceab3
...
...
@@ -242,6 +242,14 @@ export default class IBIZOrderTestCLTreeExpViewBase extends Vue {
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderTestCLTreeExpViewBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'page_container'
];
/**
* 视图布局数据
*
...
...
@@ -276,6 +284,65 @@ export default class IBIZOrderTestCLTreeExpViewBase extends Vue {
page_container
:
new
PanelContainerModel
({
name
:
'page_container'
,
caption
:
'容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
'column'
,
vAlign
:
''
},
panel
:
this
,
details
:[
'container2'
,
'container_grid1'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderTestCLTreeExpViewBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderTestCLTreeExpViewBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/sample/ibizorder-test-custom-layout-panel-grid-exp-view/ibizorder-test-custom-layout-panel-grid-exp-view-base.vue
浏览文件 @
77cceab3
...
...
@@ -244,6 +244,14 @@ export default class IBIZOrderTestCustomLayoutPanelGridExpViewBase extends Vue {
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderTestCustomLayoutPanelGridExpViewBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'page_container'
];
/**
* 视图布局数据
*
...
...
@@ -278,6 +286,65 @@ export default class IBIZOrderTestCustomLayoutPanelGridExpViewBase extends Vue {
page_container
:
new
PanelContainerModel
({
name
:
'page_container'
,
caption
:
'容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
'column'
,
vAlign
:
''
},
panel
:
this
,
details
:[
'container2'
,
'container_scroll1'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderTestCustomLayoutPanelGridExpViewBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderTestCustomLayoutPanelGridExpViewBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/sample/ibizorder-usr2-grid-view/ibizorder-usr2-grid-view-base.vue
浏览文件 @
77cceab3
...
...
@@ -434,6 +434,14 @@ export default class IBIZOrderUsr2GridViewBase extends Vue {
};
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZOrderUsr2GridViewBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'page_container'
];
/**
* 视图布局数据
*
...
...
@@ -472,6 +480,65 @@ export default class IBIZOrderUsr2GridViewBase extends Vue {
page_container
:
new
PanelContainerModel
({
name
:
'page_container'
,
caption
:
''
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
'column'
,
vAlign
:
''
},
panel
:
this
,
details
:[
'container_grid1'
,
'container4'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof IBIZOrderUsr2GridViewBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZOrderUsr2GridViewBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/sample/ibizsample0003-stab-exp-view-layout/ibizsample0003-stab-exp-view-layout-base.vue
浏览文件 @
77cceab3
<
template
>
<div
class=
'view-container detabexpview ibizsample0003-stab-exp-view-layout'
>
<app-studioaction
:viewTitle=
"$t(model.srfCaption)"
viewName=
"ibizsample0003stabexpview_layout"
></app-studioaction>
<card
class=
'view-card view-no-caption view-no-toolbar'
:dis-hover=
"true"
:bordered=
"false"
>
<div
class=
'view-top-messages'
>
<app-alert-group
position=
'TOP'
:context=
"context"
:viewparam=
"viewparams"
infoGroup=
'VMGroup34'
viewname=
'ibizsample0003stabexpview_layout'
></app-alert-group></div>
<div
class=
'content-container'
>
<view
_tabexppanel
:viewState=
"viewState"
:viewparams=
"viewparams"
:context=
"context"
name=
"tabexppanel"
ref=
'tabexppanel'
@
closeview=
"closeView($event)"
>
</view
_tabexppanel
>
<div
class=
"app-view-layout ibizsample0003-stab-exp-view-layout"
style=
"height: '100%'; width: '100%'; overflow: 'auto';"
>
</div>
</card>
</div>
</
template
>
<
script
lang=
'tsx'
>
...
...
@@ -31,6 +15,7 @@ import IBIZSample0003AuthService from '@/authservice/ibizsample0003/ibizsample00
import
TabExpViewEngine
from
'@engine/view/tab-exp-view-engine'
;
import
IBIZSample0003UIService
from
'@/uiservice/ibizsample0003/ibizsample0003-ui-service'
;
import
{
PanelContainerModel
,
PanelRawitemModel
,
PanelFieldModel
,
PanelControlModel
,
PanelButtonModel
,
PanelUserControlModel
,
PanelTabPanelModel
,
PanelTabPageModel
,
PanelCtrlPosModel
}
from
'@/model/panel-detail'
;
@
Component
({
...
...
@@ -215,6 +200,119 @@ export default class IBIZSample0003STabExpView_layoutBase extends Vue {
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
];
/**
* 视图布局数据
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public
layoutData
:
any
=
{
};
/**
* 视图布局面板模型对象
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public
layoutModelDetails
:
any
=
{
};
/**
* 初始化布局
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public
handleValueChange
(
$event
:
{
name
:
string
,
value
:
any
})
{
if
(
!
$event
||
!
$event
.
name
||
Object
.
is
(
$event
.
name
,
''
)
||
!
this
.
layoutData
.
hasOwnProperty
(
$event
.
name
))
{
return
;
}
this
.
layoutData
[
$event
.
name
]
=
$event
.
value
;
}
/**
* 处理按钮点击
*
* @public
* @memberof IBIZSample0003STabExpView_layoutBase
*/
public
handleButtonClick
(
name
:
string
,
$event
?:
any
)
{
let
datas
:
any
[]
=
[
this
.
layoutData
];
let
xData
:
any
=
null
;
let
paramJO
:
any
=
{};
let
contextJO
:
any
=
{};
const
_this
:
any
=
this
;
}
/**
* 视图引擎
...
...
app_Web/src/pages/sample/ibizsample0003-stab-exp-view-layout/ibizsample0003-stab-exp-view-layout.less
浏览文件 @
77cceab3
.ibizsample0003-stab-exp-view-layout{
position: relative;
}
.ibizsample0003-stab-exp-view-layout {
> .view-card > .ivu-card-body > .content-container > .tabviewpanel {
overflow: auto;
}
}
.ibizsample0003-stab-exp-view-layout {
display: block;
}
app_Web/src/pages/sample/index/index-base.vue
浏览文件 @
77cceab3
...
...
@@ -259,6 +259,14 @@ export default class IndexBase extends Vue {
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof IndexBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'container_scroll1'
];
/**
* 视图布局数据
*
...
...
@@ -315,6 +323,65 @@ export default class IndexBase extends Vue {
container_scroll1
:
new
PanelContainerModel
({
name
:
'container_scroll1'
,
caption
:
'滚动条容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'BORDER'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
''
,
vAlign
:
''
},
panel
:
this
,
details
:[
'container_scroll_main1'
,
'container_scroll_left1'
,
'container_scroll_header1'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof IndexBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof IndexBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/ungroup/app-index-view/app-index-view-base.vue
浏览文件 @
77cceab3
...
...
@@ -290,6 +290,14 @@ export default class AppIndexViewBase extends Vue {
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof AppIndexViewBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'container1'
];
/**
* 视图布局数据
*
...
...
@@ -346,6 +354,65 @@ export default class AppIndexViewBase extends Vue {
container1
:
new
PanelContainerModel
({
name
:
'container1'
,
caption
:
'容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
0
,
heightMode
:
''
,
layoutWidth
:
0
,
widthMode
:
''
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
'column'
,
vAlign
:
''
},
panel
:
this
,
details
:[
'app_apptitle'
,
'view_pagecaption'
,
'static_label1'
,
'static_text1'
,
'field_text_dynamic'
,
'field_switch'
,
'field_textbox'
,
'field_qrcode'
,
'button_link1'
,
'button_openview1'
,
'button_calluilogic1'
,
'button_calluilogic2'
,
'button_calluilogic3'
,
'button_calluilogic5'
,
'button_calluilogic6'
,
'button_calluilogic8'
,
'button_calluilogic9'
,
'button_calluilogic10'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof AppIndexViewBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof AppIndexViewBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/pages/ungroup/app-login-view/app-login-view-base.vue
浏览文件 @
77cceab3
...
...
@@ -217,6 +217,14 @@ export default class AppLoginViewBase extends Vue {
*/
public
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 视图布局顶级成员名称
*
* @public
* @memberof AppLoginViewBase
*/
public
rootLayoutDetailNames
:
string
[]
=
[
'page_container'
];
/**
* 视图布局数据
*
...
...
@@ -259,6 +267,65 @@ export default class AppLoginViewBase extends Vue {
page_container
:
new
PanelContainerModel
({
name
:
'page_container'
,
caption
:
'图片背景容器'
,
titleBarCloseMode
:
0
,
isShowCaption
:
false
,
sysCss
:
''
,
itemType
:
'CONTAINER'
,
itemStyle
:
'DEFAULT'
,
visible
:
true
,
disabled
:
false
,
layout
:
'FLEX'
,
layoutPos
:
''
,
layoutHeight
:
100
,
heightMode
:
'PERCENTAGE'
,
layoutWidth
:
100
,
widthMode
:
'PERCENTAGE'
,
spacingBottom
:
''
,
spacingLeft
:
''
,
spacingRight
:
''
,
spacingTop
:
''
,
hAlignSelf
:
''
,
vAlignSelf
:
''
,
flexGrow
:
-
1
,
flexParams
:{
align
:
''
,
dir
:
''
,
vAlign
:
''
},
panel
:
this
,
details
:[
'container1'
]
,
dataRegionType
:
'INHERIT'
})
};
/**
* 初始化布局
*
* @public
* @memberof AppLoginViewBase
*/
public
async
initLayout
()
{
if
(
this
.
rootLayoutDetailNames
.
length
>
0
)
{
this
.
rootLayoutDetailNames
.
forEach
(
async
(
name
:
string
)
=>
{
const
rootLayoutModelDetail
=
this
.
layoutModelDetails
[
name
];
if
(
!
rootLayoutModelDetail
)
{
return
;
}
await
this
.
initLayoutItem
(
rootLayoutModelDetail
);
})
}
}
/**
* 初始化布局项
*
* @public
* @memberof AppLoginViewBase
*/
public
async
initLayoutItem
(
layoutModelDetail
:
any
,
index
:
number
=
0
)
{
const
{
name
}
=
layoutModelDetail
;
if
(
!
index
)
{
await
layoutModelDetail
.
load
();
this
.
layoutData
[
name
]
=
layoutModelDetail
.
getData
();
}
else
{
const
clonelayoutModelDetail
=
Util
.
deepCopy
(
layoutModelDetail
);
clonelayoutModelDetail
.
setIndex
(
index
);
await
clonelayoutModelDetail
.
load
();
this
.
layoutModelDetails
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
);
this
.
layoutData
.
$set
(
`
${
name
}
_
${
index
}
`
,
clonelayoutModelDetail
.
getData
());
}
if
(
layoutModelDetail
&&
layoutModelDetail
.
details
)
{
if
(
layoutModelDetail
.
dataRegionType
===
'MULTIDATA'
)
{
const
multiData
=
layoutModelDetail
.
getData
();
if
(
multiData
&&
multiData
.
length
>
0
)
{
multiData
.
forEach
(
async
(
data
:
any
,
index
:
number
)
=>
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
],
index
);
}
}
})
}
}
else
{
for
(
const
key
of
layoutModelDetail
.
details
)
{
if
(
this
.
layoutModelDetails
[
key
])
{
await
this
.
initLayoutItem
(
this
.
layoutModelDetails
[
key
]);
}
}
}
}
}
/**
* 处理值改变
*
...
...
app_Web/src/store/modules/view-action/state.ts
浏览文件 @
77cceab3
...
...
@@ -553,8 +553,8 @@ export const viewstate: any = {
viewdatachange
:
false
,
refviews
:
[
'1ec7069b18d0c9b18fb55c839b2e0822'
,
'2e7cbc7793bdd49ea744b56e6e14571c'
,
'cbf09cbd2a5b6c65479dec84af3fe874'
,
'2e7cbc7793bdd49ea744b56e6e14571c'
,
],
},
{
...
...
app_Web/src/widgets/ibizbook/default-searchform/default-searchform-base.vue
浏览文件 @
77cceab3
...
...
@@ -663,7 +663,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public
load
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loadAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
Usr9Grid
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loadAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
GroupByCodelistList
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loadAction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
};
...
...
@@ -699,7 +699,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public
loadDraft
(
opt
:
any
=
{},
mode
?:
string
):
void
{
if
(
!
this
.
loaddraftAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
Usr9Grid
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loaddraftAction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOK
GroupByCodelistList
View'
+
(
this
.
$t
(
'app.searchForm.notConfig.loaddraftAction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
}
;
...
...
app_Web/src/widgets/ibizbook/guide-borrow-form-form/guide-borrow-form-form-base.vue
浏览文件 @
77cceab3
...
...
@@ -1300,7 +1300,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
*/
public
load
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loadAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView'
+
(
this
.
$t
(
'app.formpage.notconfig.loadaction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.loadaction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
};
...
...
@@ -1335,7 +1335,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
*/
public
loadDraft
(
opt
:
any
=
{}):
void
{
if
(
!
this
.
loaddraftAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView'
+
(
this
.
$t
(
'app.formpage.notconfig.loaddraftaction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.loaddraftaction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
{
...
opt
}
;
...
...
@@ -1396,7 +1396,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
if
(
!
action
){
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
return
;
}
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
...
...
@@ -1504,7 +1504,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
const
action
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)
?
this
.
updateAction
:
this
.
createAction
;
if
(
!
action
){
let
actionName
:
any
=
Object
.
is
(
data
.
srfuf
,
'1'
)?
"updateAction"
:
"createAction"
;
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.actionname'
)
as
string
)
});
return
;
}
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
...
...
@@ -1578,7 +1578,7 @@ export default class GuideBorrowFormBase extends Vue implements ControlInterface
public
remove
(
opt
:
Array
<
any
>
=
[],
showResultInfo
?:
boolean
):
Promise
<
any
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
if
(
!
this
.
removeAction
){
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView'
+
(
this
.
$t
(
'app.formpage.notconfig.removeaction'
)
as
string
)
});
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
'IBIZBOOKWizardView
_layout
'
+
(
this
.
$t
(
'app.formpage.notconfig.removeaction'
)
as
string
)
});
return
;
}
const
arg
:
any
=
opt
[
0
];
...
...
app_Web/src/widgets/ibizsample0003/stab-exp-view-layouttabexppanel-tabexppanel/stab-exp-view-layouttabexppanel-tabexppanel-base.vue
浏览文件 @
77cceab3
...
...
@@ -26,10 +26,10 @@
@
closeview=
"closeView($event)"
>
</view
_tabviewpanel
>
</tab-pane>
<tab-pane
:index=
"1"
name=
'tabviewpanel
2'
tab=
'stabexpview_layouttabexppanel'
class=
''
v-if=
"authResourceObject['tabviewpanel2
'].visabled"
<tab-pane
:index=
"1"
name=
'tabviewpanel
3'
tab=
'stabexpview_layouttabexppanel'
class=
''
v-if=
"authResourceObject['tabviewpanel3
'].visabled"
:label=
"(h) =>
{
return h('div', [
h('span', '
硬
件'),
h('span', '
软
件'),
h('Badge', {
props: {
count: undefined,
...
...
@@ -38,22 +38,22 @@
})
])
}" >
<view
_tabviewpanel
2
<view
_tabviewpanel
3
:viewState=
"viewState"
:viewparams=
"JSON.parse(JSON.stringify(viewparams))"
:context=
"JSON.parse(JSON.stringify(context))"
:activeData=
"JSON.stringify(activeData)"
v-if=
"isInit.tabviewpanel
2
"
name=
"tabviewpanel
2
"
ref=
'tabviewpanel
2
'
v-if=
"isInit.tabviewpanel
3
"
name=
"tabviewpanel
3
"
ref=
'tabviewpanel
3
'
@
viewpanelDatasChange =
"tabViewPanelDatasChange"
@
closeview=
"closeView($event)"
>
</view
_tabviewpanel
2
>
</view
_tabviewpanel
3
>
</tab-pane>
<tab-pane
:index=
"2"
name=
'tabviewpanel
3'
tab=
'stabexpview_layouttabexppanel'
class=
''
v-if=
"authResourceObject['tabviewpanel3
'].visabled"
<tab-pane
:index=
"2"
name=
'tabviewpanel
2'
tab=
'stabexpview_layouttabexppanel'
class=
''
v-if=
"authResourceObject['tabviewpanel2
'].visabled"
:label=
"(h) =>
{
return h('div', [
h('span', '
软
件'),
h('span', '
硬
件'),
h('Badge', {
props: {
count: undefined,
...
...
@@ -62,17 +62,17 @@
})
])
}" >
<view
_tabviewpanel
3
<view
_tabviewpanel
2
:viewState=
"viewState"
:viewparams=
"JSON.parse(JSON.stringify(viewparams))"
:context=
"JSON.parse(JSON.stringify(context))"
:activeData=
"JSON.stringify(activeData)"
v-if=
"isInit.tabviewpanel
3
"
name=
"tabviewpanel
3
"
ref=
'tabviewpanel
3
'
v-if=
"isInit.tabviewpanel
2
"
name=
"tabviewpanel
2
"
ref=
'tabviewpanel
2
'
@
viewpanelDatasChange =
"tabViewPanelDatasChange"
@
closeview=
"closeView($event)"
>
</view
_tabviewpanel
3
>
</view
_tabviewpanel
2
>
</tab-pane>
</tabs>
</div>
...
...
@@ -243,8 +243,8 @@ export default class STabExpView_layouttabexppanelBase extends Vue implements Co
*/
public
isInit
:
any
=
{
tabviewpanel
:
true
,
tabviewpanel2
:
false
,
tabviewpanel3
:
false
,
tabviewpanel2
:
false
,
}
/**
...
...
@@ -312,7 +312,7 @@ export default class STabExpView_layouttabexppanelBase extends Vue implements Co
* @type {*}
* @memberof STabExpView_layouttabexppanelBase
*/
public
authResourceObject
:
any
=
{
'tabviewpanel'
:{
resourcetag
:
null
,
visabled
:
true
,
disabled
:
false
},
'tabviewpanel
2'
:{
resourcetag
:
null
,
visabled
:
true
,
disabled
:
false
},
'tabviewpanel3
'
:{
resourcetag
:
null
,
visabled
:
true
,
disabled
:
false
}};
public
authResourceObject
:
any
=
{
'tabviewpanel'
:{
resourcetag
:
null
,
visabled
:
true
,
disabled
:
false
},
'tabviewpanel
3'
:{
resourcetag
:
null
,
visabled
:
true
,
disabled
:
false
},
'tabviewpanel2
'
:{
resourcetag
:
null
,
visabled
:
true
,
disabled
:
false
}};
/**
* 被激活的分页面板
...
...
app_Web/src/widgets/ibizsample0003/stab-exp-view-layouttabexppanel-tabexppanel/stab-exp-view-layouttabexppanel-tabexppanel.vue
浏览文件 @
77cceab3
...
...
@@ -2,15 +2,15 @@
import
{
Component
}
from
'vue-property-decorator'
;
import
STabExpView_layouttabexppanelBase
from
'./stab-exp-view-layouttabexppanel-tabexppanel-base.vue'
;
import
view_tabviewpanel
from
'@widgets/ibizsample0003/stab-exp-view-layouttabviewpanel-tabviewpanel/stab-exp-view-layouttabviewpanel-tabviewpanel.vue'
;
import
view_tabviewpanel2
from
'@widgets/ibizsample0003/stab-exp-view-layouttabviewpanel2-tabviewpanel/stab-exp-view-layouttabviewpanel2-tabviewpanel.vue'
;
import
view_tabviewpanel3
from
'@widgets/ibizsample0003/stab-exp-view-layouttabviewpanel3-tabviewpanel/stab-exp-view-layouttabviewpanel3-tabviewpanel.vue'
;
import
view_tabviewpanel2
from
'@widgets/ibizsample0003/stab-exp-view-layouttabviewpanel2-tabviewpanel/stab-exp-view-layouttabviewpanel2-tabviewpanel.vue'
;
@
Component
({
components
:
{
view_tabviewpanel
,
view_tabviewpanel2
,
view_tabviewpanel3
,
view_tabviewpanel2
,
}
})
...
...
demo-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
77cceab3
...
...
@@ -340,7 +340,7 @@
<!--输出实体[IBIZORDER]数据结构 -->
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"tab-ibizorder-
75
-14"
>
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"tab-ibizorder-
87
-14"
>
<createTable
tableName=
"T_IBIZORDER"
>
<column
name=
"TP"
remarks=
""
type=
"TEXT(1048576)"
>
</column>
...
...
@@ -640,7 +640,7 @@
<!--输出实体[IBIZSAMPLE0003]数据结构 -->
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"tab-ibizsample0003-3-21"
>
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"tab-ibizsample0003-3
5
-21"
>
<createTable
tableName=
"T_IBIZSAMPLE0003"
>
<column
name=
"IBIZSAMPLE0003NAME"
remarks=
""
type=
"VARCHAR(200)"
>
</column>
...
...
demo-core/src/main/resources/liquibase/view.xml
浏览文件 @
77cceab3
...
...
@@ -37,7 +37,7 @@
</createView>
</changeSet>
<!--输出实体[IBIZORDER]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步-->
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"view-ibizorder-
75
-8"
runOnChange=
"true"
>
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"view-ibizorder-
87
-8"
runOnChange=
"true"
>
<createView
fullDefinition=
"false"
replaceIfExists=
"true"
viewName=
"V_IBIZORDER"
>
<![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>
...
...
@@ -79,7 +79,7 @@
</createView>
</changeSet>
<!--输出实体[IBIZSAMPLE0003]视图结构信息 runOnChange="true" 当视图发生变更时,通过liquibase强刷prod的视图,实现视图的同步-->
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"view-ibizsample0003-3-15"
runOnChange=
"true"
>
<changeSet
author=
"a_LAB01_df847bdfd"
id=
"view-ibizsample0003-3
5
-15"
runOnChange=
"true"
>
<createView
fullDefinition=
"false"
replaceIfExists=
"true"
viewName=
"V_IBIZSAMPLE0003"
>
<![CDATA[ SELECT t1.[CREATEDATE], t1.[CREATEMAN], t1.[FIELD01], t1.[IBIZSAMPLE0003ID], t1.[IBIZSAMPLE0003NAME], t1.[MEMO], t1.[PIBIZSAMPLE0003ID], t11.[IBIZSAMPLE0003NAME] AS [PIBIZSAMPLE0003NAME], t1.[UPDATEDATE], t1.[UPDATEMAN] FROM [T_IBIZSAMPLE0003] t1 LEFT JOIN T_IBIZSAMPLE0003 t11 ON t1.PIBIZSAMPLE0003ID = t11.IBIZSAMPLE0003ID ]]>
</createView>
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录