Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibizlab-generator
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibizlab-generator
提交
4f787a99
提交
4f787a99
编写于
2月 24, 2022
作者:
Mosher
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update:更新表单锚点位置计算逻辑
上级
eb6d59ba
变更
6
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
30 行增加
和
17 行删除
+30
-17
view-base-config.hbs
...rces/templ/r7/@macro/front-end/views/view-base-config.hbs
+1
-1
app-anchor.vue
...empl/r7/app_{{apps}}/src/components/common/app-anchor.vue
+24
-13
app-form-item.vue
...l/r7/app_{{apps}}/src/components/common/app-form-item.vue
+1
-1
form-control.ts
...s}}/src/core/modules/widgets/form-control/form-control.ts
+1
-0
app-split.scss
...7/app_{{apps}}/src/style/components/common/app-split.scss
+1
-1
{{ctrls@FORM}}-form.vue.hbs
...ntities}}/{{ctrls@FORM}}-form/{{ctrls@FORM}}-form.vue.hbs
+2
-1
未找到文件。
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/front-end/views/view-base-config.hbs
浏览文件 @
4f787a99
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
viewName: '
{{
page
.
name
}}
',
viewName: '
{{
page
.
name
}}
',
viewCaption: '
{{
page
.
caption
}}
',
viewCaption: '
{{
page
.
caption
}}
',
subCaption: '
{{
page
.
subCaption
}}
',
subCaption: '
{{
page
.
subCaption
}}
',
viewSysCss: '
{{
page
.
psSysCss
.
cssName
}}
',
viewSysCss: '
{{
lowerCase
page
.
codeName
}}
{{
page
.
psSysCss
.
cssName
}}
',
{{!-- viewSysImage: '{{page.psSysImage}}', --}}
{{!-- viewSysImage: '{{page.psSysImage}}', --}}
showCaptionBar:
{{
page
.
showCaptionBar
}}
,
showCaptionBar:
{{
page
.
showCaptionBar
}}
,
viewType: '
{{
page
.
viewType
}}
',
viewType: '
{{
page
.
viewType
}}
',
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/components/common/app-anchor.vue
浏览文件 @
4f787a99
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
IActionParam
,
IParam
}
from
'@cor
e'
;
import
{
Ref
}
from
'vu
e'
;
interface
Props
{
interface
Props
{
anchorDatas
:
any
[];
anchorDatas
:
any
[];
viewType
:
string
;
viewType
:
string
;
viewTag
:
string
;
}
}
const
props
=
withDefaults
(
defineProps
<
Props
>
(),
{});
const
props
=
withDefaults
(
defineProps
<
Props
>
(),
{});
...
@@ -21,7 +22,7 @@ let datas: any[] = props.anchorDatas;
...
@@ -21,7 +22,7 @@ let datas: any[] = props.anchorDatas;
* @type {any}
* @type {any}
* @memberof AppAnchor
* @memberof AppAnchor
*/
*/
let
appAnchor
=
ref
(
null
);
let
appAnchor
:
Ref
<
any
>
=
ref
(
null
);
/**
/**
* 滚动盒子
* 滚动盒子
...
@@ -46,6 +47,7 @@ onBeforeMount(() => {
...
@@ -46,6 +47,7 @@ onBeforeMount(() => {
onMounted
(()
=>
{
onMounted
(()
=>
{
// 需要异步获取,有些编辑器绘制慢,确保高度获取正确
// 需要异步获取,有些编辑器绘制慢,确保高度获取正确
setTimeout
(()
=>
{
setTimeout
(()
=>
{
computeAppAnchorLayout
();
// 获取滚动区域
// 获取滚动区域
getScrollContainer
();
getScrollContainer
();
// 获取锚点到滚动条盒子顶部的距离
// 获取锚点到滚动条盒子顶部的距离
...
@@ -74,6 +76,21 @@ onUnmounted(() => {
...
@@ -74,6 +76,21 @@ onUnmounted(() => {
}
}
});
});
/**
* 计算锚点位置
*
* @memberof AppAnchor
*/
const
computeAppAnchorLayout
=
()
=>
{
if
(
appAnchor
.
value
&&
appAnchor
.
value
.
parentNode
)
{
const
parent
=
appAnchor
.
value
.
parentNode
;
const
top
=
parent
.
getBoundingClientRect
()?.
top
;
const
right
=
document
.
body
.
clientWidth
-
parent
.
getBoundingClientRect
()?.
right
;
appAnchor
.
value
.
style
.
top
=
top
+
20
+
'px'
;
appAnchor
.
value
.
style
.
right
=
right
+
'px'
;
}
}
/**
/**
* 获取滚动区域
* 获取滚动区域
*
*
...
@@ -81,14 +98,12 @@ onUnmounted(() => {
...
@@ -81,14 +98,12 @@ onUnmounted(() => {
*/
*/
const
getScrollContainer
=
()
=>
{
const
getScrollContainer
=
()
=>
{
switch
(
props
.
viewType
)
{
switch
(
props
.
viewType
)
{
case
'DEEDITVIEW'
:
container
.
value
=
document
.
querySelector
(
`.app-view-layout__body`
);
break
;
case
'DEEDITVIEW3'
:
case
'DEEDITVIEW3'
:
//TODO
//
TODO
break
;
break
;
case
'DEEDITVIEW'
:
default
:
default
:
container
.
value
=
document
.
querySelector
(
`.app-view-layout__body`
);
container
.
value
=
document
.
querySelector
(
`.
${
props
.
viewTag
?.
toLowerCase
()}
.
app
-
view
-
layout__body
`);
break;
break;
}
}
};
};
...
@@ -112,10 +127,6 @@ const scrollEvent = (e: any) => {
...
@@ -112,10 +127,6 @@ const scrollEvent = (e: any) => {
break;
break;
}
}
}
}
// 滚动当前组件高度
if
(
appAnchor
.
value
)
{
(
appAnchor
.
value
as
any
).
style
.
top
=
scrollTop
+
20
+
'px'
;
}
};
};
/**
/**
...
@@ -205,9 +216,9 @@ const handleClick = (item: any, index: any) => {
...
@@ -205,9 +216,9 @@ const handleClick = (item: any, index: any) => {
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.app-anchor
{
.app-anchor
{
position
:
absolute
;
position
:
fixed
;
top
:
20px
;
top
:
20px
;
right
:
-13
px
;
max-width
:
200
px
;
z-index
:
99
;
z-index
:
99
;
border-radius
:
4px
;
border-radius
:
4px
;
padding
:
10px
10px
10px
20px
;
padding
:
10px
10px
10px
20px
;
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/components/common/app-form-item.vue
浏览文件 @
4f787a99
...
@@ -54,7 +54,7 @@ const initRules = () => {
...
@@ -54,7 +54,7 @@ const initRules = () => {
</
script
>
</
script
>
<
template
>
<
template
>
<AppCol
:visible=
"visible"
noRoot
:layoutOpts=
"layoutOpts"
:class=
"['app-form-item', `app-form-item-$
{name}`, `${name}`]">
<AppCol
:visible=
"visible"
noRoot
:layoutOpts=
"layoutOpts"
:class=
"['app-form-item', `
label-$
{labelPos.toLowerCase()}`, `
app-form-item-${name}`, `${name}`]">
<template
v-slot:default=
"
{slotStyle, slotClass}">
<template
v-slot:default=
"
{slotStyle, slotClass}">
<a-form-item
<a-form-item
:class=
"slotClass"
:class=
"slotClass"
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/core/modules/widgets/form-control/form-control.ts
浏览文件 @
4f787a99
...
@@ -72,6 +72,7 @@ export class FormControl extends MainControl {
...
@@ -72,6 +72,7 @@ export class FormControl extends MainControl {
*/
*/
private
setAnchorDatas
()
{
private
setAnchorDatas
()
{
const
{
detailsModel
}
=
this
.
state
;
const
{
detailsModel
}
=
this
.
state
;
this
.
state
.
anchorDatas
=
[];
Object
.
values
(
detailsModel
).
forEach
((
item
:
IParam
)
=>
{
Object
.
values
(
detailsModel
).
forEach
((
item
:
IParam
)
=>
{
if
(
item
.
enableAnchor
)
{
if
(
item
.
enableAnchor
)
{
this
.
state
.
anchorDatas
.
push
({
this
.
state
.
anchorDatas
.
push
({
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/style/components/common/app-split.scss
浏览文件 @
4f787a99
...
@@ -48,7 +48,7 @@
...
@@ -48,7 +48,7 @@
}
}
.app-split-trigger-horizontal
.trigger-icon
{
.app-split-trigger-horizontal
.trigger-icon
{
top
:
50%
;
top
:
50%
;
transform
:
translate
(
-50%
,
-36px
);
transform
:
translate
(
0
,
-36px
);
width
:
100%
;
width
:
100%
;
height
:
36px
;
height
:
36px
;
cursor
:
col-resize
;
cursor
:
col-resize
;
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/widgets/{{appEntities}}/{{ctrls@FORM}}-form/{{ctrls@FORM}}-form.vue.hbs
浏览文件 @
4f787a99
...
@@ -57,7 +57,8 @@ defineExpose({ name, state, load, loadDraft, save, remove, refresh, getData });
...
@@ -57,7 +57,8 @@ defineExpose({ name, state, load, loadDraft, save, remove, refresh, getData });
<AppAnchor
<AppAnchor
v-if=
"state.anchorDatas.length > 0"
v-if=
"state.anchorDatas.length > 0"
:anchorDatas=
"state.anchorDatas"
:anchorDatas=
"state.anchorDatas"
:viewType=
"state.parent.state.viewType"
>
:viewType=
"state.parent.state.viewType"
:viewTag=
"state.parent.state.viewCodeName"
>
</AppAnchor>
</AppAnchor>
{{#if
ctrl
.
noTabHeader
}}
{{#if
ctrl
.
noTabHeader
}}
{{#
each
ctrl
.
psDEFormPages
as
|
ctrlPage
|
}}
{{#
each
ctrl
.
psDEFormPages
as
|
ctrlPage
|
}}
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录