Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibizlab-generator
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibizlab-generator
提交
f69abccb
提交
f69abccb
编写于
1月 13, 2022
作者:
sq3536
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/master'
上级
f6b278fe
16b07373
变更
10
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
127 行增加
和
30 行删除
+127
-30
app-code.vue
...templ/r7/app_{{apps}}/src/components/editors/app-code.vue
+3
-3
app-toolbar.vue
...mpl/r7/app_{{apps}}/src/components/render/app-toolbar.vue
+11
-4
search-form-control-prop.ts
...s/widgets/search-form-control/search-form-control-prop.ts
+22
-1
search-form-control.ts
...odules/widgets/search-form-control/search-form-control.ts
+29
-5
component.scss
...ources/templ/r7/app_{{apps}}/src/style/var/component.scss
+1
-1
view-base.scss
...rces/templ/r7/app_{{apps}}/src/style/views/view-base.scss
+10
-3
search-form.scss
.../templ/r7/app_{{apps}}/src/style/widgets/search-form.scss
+32
-6
{{pages@DEGRIDVIEW}}.vue.hbs
...dules}}/{{pages@DEGRIDVIEW}}/{{pages@DEGRIDVIEW}}.vue.hbs
+2
-2
{{ctrls@SEARCHFORM}}-searchForm-config.ts.hbs
...-searchForm/{{ctrls@SEARCHFORM}}-searchForm-config.ts.hbs
+3
-0
{{ctrls@SEARCHFORM}}-searchForm.vue.hbs
...FORM}}-searchForm/{{ctrls@SEARCHFORM}}-searchForm.vue.hbs
+14
-5
未找到文件。
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/components/editors/app-code.vue
浏览文件 @
f69abccb
...
...
@@ -244,7 +244,7 @@ const onLanguageChange = (item: string) => {
<a-select
ref=
"select"
v-model:value=
"presentLanguage"
style=
"width: 1
1
0px"
style=
"width: 1
2
0px"
:disabled=
"!isChangeLanguage"
:bordered=
"false"
@
change=
"onLanguageChange"
...
...
@@ -253,7 +253,7 @@ const onLanguageChange = (item: string) => {
:value=
"language"
v-for=
"(language,index) in languages"
:key=
"index"
>
{{
language
}}
</a-select-option>
>
\
{{
language
}}
</a-select-option>
</a-select>
</div>
<div
class=
"right-toolbar"
>
...
...
@@ -282,7 +282,7 @@ const onLanguageChange = (item: string) => {
</template>
<
style
lang=
'scss'
>
.app-code
-editor
{
.app-code
{
width
:
100%
;
height
:
100%
;
min-width
:
300px
;
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/components/render/app-toolbar.vue
浏览文件 @
f69abccb
...
...
@@ -35,7 +35,7 @@ const itemClick = (item: IParam) => {
</
script
>
<
template
>
<div
class=
"toolbar"
>
<a-space
v-if=
"Object.is(mode,'button')"
class=
"toolbar-button"
style=
"gap: 4px;"
>
<a-space
v-if=
"Object.is(mode,'button')"
class=
"toolbar-button
s
"
style=
"gap: 4px;"
>
<template
v-for=
"(item, index) in items"
:key=
"index"
>
<a-tooltip
v-if=
"Object.is(item.itemType, 'DEUIACTION')"
...
...
@@ -54,8 +54,9 @@ const itemClick = (item: IParam) => {
:imgPath=
"item.showIcon && item.imgPath"
/>
</a-button>
</a-tooltip>
<a-dropdown
v-else-if=
"Object.is(item.itemType, 'ITEMS')"
>
<a-menu
slot=
"overlay"
@
click=
"itemClick"
>
<a-dropdown
v-else-if=
"Object.is(item.itemType, 'ITEMS')"
v-show=
"item.visible"
>
<!-- todo 模型缺失 -->
<!--
<a-menu
slot=
"overlay"
@
click=
"itemClick"
>
<a-tooltip
v-for=
"(childItem, index) in item"
v-if=
"Object.is(item.itemType, 'DEUIACTION')"
...
...
@@ -73,7 +74,7 @@ const itemClick = (item: IParam) => {
:imgPath=
"item.showIcon && item.imgPath"
/>
</a-menu-item>
</a-tooltip>
</a-menu>
</a-menu>
-->
</a-dropdown>
<template
v-else-if=
"Object.is(item.itemType, 'SEPERATOR')"
>
<span
class=
'separator'
>
|
</span>
...
...
@@ -104,6 +105,12 @@ const itemClick = (item: IParam) => {
.toolbar
{
display
:
flex
;
align-items
:
center
;
.toolbar-buttons
{
flex-wrap
:
wrap
;
.ant-space-item
{
padding
:
3px
0
3px
6px
}
}
.toolbar-link
{
gap
:
0
!
important
;
display
:
flex
;
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/core/modules/widgets/search-form-control/search-form-control-prop.ts
浏览文件 @
f69abccb
import
{
FormControlProps
}
from
"@core"
;
import
{
FormControlProps
,
IParam
}
from
"@core"
;
/**
* @description 表单部件的props
...
...
@@ -8,4 +8,25 @@ import { FormControlProps } from "@core";
*/
export
interface
SearchFormControlProps
extends
FormControlProps
{
/**
* @description 是否显示气泡框
* @type {boolean}
* @memberof SearchFormControlProps
*/
showPopover
:
boolean
;
/**
* @description 选中历史项
* @type {IParam}
* @memberof SearchFormControlProps
*/
selectHistoryItem
:
IParam
;
/**
* @description 历史项
* @type {IParam[]}
* @memberof SearchFormControlProps
*/
historyItems
:
IParam
[];
}
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/core/modules/widgets/search-form-control/search-form-control.ts
浏览文件 @
f69abccb
import
{
FormControl
,
FormControlState
}
from
'@core'
;
import
{
FormControl
,
FormControlState
,
IParam
}
from
'@core'
;
/**
* @description 搜索表单部件
...
...
@@ -33,15 +33,38 @@ export class SearchFormControl extends FormControl {
* @memberof SearchFormControl
*/
public
onCancel
()
{
//todo 获取部件实列
this
.
state
.
showPopover
=
false
;
}
/**
* @description
确认保存
* @description
添加历史项
* @memberof SearchFormControl
*/
public
onOk
()
{
public
addHistoryItem
()
{
//todo saveModel服务
this
.
state
.
showPopover
=
false
;
}
/**
* @description 删除历史项
* @param {IParam} item
* @memberof SearchFormControl
*/
public
removeHistoryItem
(
item
:
IParam
)
{
const
index
=
this
.
state
.
historyItems
.
findIndex
((
_item
:
IParam
)
=>
{
return
item
.
name
==
_item
.
name
&&
item
.
value
==
_item
.
value
;
})
this
.
state
.
historyItems
.
splice
(
index
,
1
);
//todo saveModel服务
}
/**
* @description 加载历史项
* @param {IParam} item
* @memberof SearchFormControl
*/
public
loadHistoryItem
()
{
//todo loadModel服务
}
/**
...
...
@@ -58,7 +81,8 @@ export class SearchFormControl extends FormControl {
loadDraft
,
onSearch
:
this
.
onSearch
.
bind
(
this
),
onCancel
:
this
.
onCancel
.
bind
(
this
),
onOk
:
this
.
onOk
.
bind
(
this
),
addHistoryItem
:
this
.
addHistoryItem
.
bind
(
this
),
removeHistoryItem
:
this
.
removeHistoryItem
.
bind
(
this
),
handleEditorEvent
:
this
.
handleEditorEvent
.
bind
(
this
),
handleComponentEvent
:
this
.
handleComponentEvent
.
bind
(
this
),
};
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/style/var/component.scss
浏览文件 @
f69abccb
...
...
@@ -24,7 +24,7 @@
--app-view-layout-header-bg-color
:
var
(
--
app-color-white
);
--app-view-layout-body-bg-color
:
var
(
--
app-color-white
);
--app-view-layout-footer-bg-color
:
var
(
--
app-color-white
);
--app-view-layout-header-height
:
48px
;
--app-view-layout-header-height
:
auto
;
--app-view-layout-header-border-bottom
:
var
(
--
app-color-border
);
--app-view-caption-font-size
:
var
(
--
app-font-size-lg
)
}
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/style/views/view-base.scss
浏览文件 @
f69abccb
.app-quick-search
{
display
:
flex
;
align-items
:
center
;
.app-view-layout--default
{
.app-view-layout__header
{
.app-view-layout__header-content
{
white-space
:
nowrap
;
}
}
.app-quick-search
{
display
:
flex
;
align-items
:
center
;
}
}
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/style/widgets/search-form.scss
浏览文件 @
f69abccb
...
...
@@ -16,14 +16,40 @@
.ant-btn
{
margin-right
:
4px
;
}
.search-form-history
{
margin-right
:
12px
;
width
:
200px
;
.ant-select-selection-item
{
text-align
:
left
;
}
}
}
}
//搜索表单气泡
.search-form-popover-button
{
margin-top
:
8px
;
display
:
flex
;
justify-content
:
right
;
.ant-btn
{
margin-left
:
4px
;
.search-form-popover
{
.ant-popover-inner-content
{
.search-form-buttons
{
margin-top
:
8px
;
display
:
flex
;
justify-content
:
right
;
.ant-btn
{
margin-left
:
4px
;
}
}
}
}
.search-form-history-option
{
.ant-select-item-option-content
{
&
:hover
{
color
:
var
(
--
app-color-primary
);
}
position
:
relative
;
.anticon-close
{
font-size
:
12px
;
position
:
absolute
;
right
:
0
;
top
:
50%
;
transform
:
translateY
(
-50%
);
}
}
}
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/views/{{appModules}}/{{pages@DEGRIDVIEW}}/{{pages@DEGRIDVIEW}}.vue.hbs
浏览文件 @
f69abccb
...
...
@@ -57,7 +57,7 @@ const { state, grid, handleCtrlEvent, handleToolbarEvent } = new GridView(ViewCo
<template
v-slot:quickSearch
>
<div
class=
'app-quick-search'
>
<a-input
/>
<a-popover>
<a-popover
trigger=
"click"
:overlayStyle=
"{width: '50%'}"
>
<template
#
content
>
<
{{
codeName
}}
SearchForm
:context=
"state.context"
...
...
@@ -67,7 +67,7 @@ const { state, grid, handleCtrlEvent, handleToolbarEvent } = new GridView(ViewCo
@
ctrlEvent=
"handleCtrlEvent"
></
{{
codeName
}}
SearchForm>
</template>
<a-button
trigger=
"click"
><filter-outlined
/></a-button>
<a-button><filter-outlined
/></a-button>
</a-popover>
</div>
</template>
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/widgets/{{appEntities}}/{{ctrls@SEARCHFORM}}-searchForm/{{ctrls@SEARCHFORM}}-searchForm-config.ts.hbs
浏览文件 @
f69abccb
...
...
@@ -54,6 +54,9 @@ export const CtrlConfig = {
controlName: '
{{
ctrl
.
name
}}
',
controlService: new EditFormService
<ControlVO>
(ControlVO, new
{{
pascalCase
ctrl
.
psAppDataEntity
.
codeName
}}
Service() ),
data: new ControlVO({}),
showPopover: false,
selectHistoryItem: {},
historyItems: [],
detailsModel: {
{{#
each
ctrl
.
psDEFormPages
as
|
FormPage
|
}}
{{>
(
lookup
'FORMDETAILSMODEL'
)
items
=
FormPage
.
psDEFormDetails
}}
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/widgets/{{appEntities}}/{{ctrls@SEARCHFORM}}-searchForm/{{ctrls@SEARCHFORM}}-searchForm.vue.hbs
浏览文件 @
f69abccb
{{>
@macro
/
front-end
/
widgets
/
form-detail
/
include-form
.
hbs
}}
<script
setup
lang=
"ts"
>
import
{
Subject
}
from
'rxjs'
;
import
{
SaveOutlined
}
from
'@ant-design/icons-vue'
;
import
{
SaveOutlined
,
CloseOutlined
}
from
'@ant-design/icons-vue'
;
import
{
CtrlConfig
}
from
'./
{{
spinalCase
ctrl
.
codeName
}}
-searchForm-config'
;
import
{
SearchFormControl
,
IActionParam
,
IParam
,
ControlAction
,
IContext
}
from
'@core'
;
...
...
@@ -26,7 +26,7 @@ interface CtrlEmit {
const
emit
=
defineEmits
<
CtrlEmit
>
();
// 安装功能模块,提供状态和能力方法
const
{
state
,
handleEditorEvent
,
handleComponentEvent
,
onSearch
,
loadDraft
,
onOk
,
onCancel
}
=
new
SearchFormControl
(
CtrlConfig
,
props
,
emit
).
moduleInstall
();
const
{
state
,
handleEditorEvent
,
handleComponentEvent
,
onSearch
,
loadDraft
,
addHistoryItem
,
onCancel
,
removeHistoryItem
}
=
new
SearchFormControl
(
CtrlConfig
,
props
,
emit
).
moduleInstall
();
</script>
<template>
...
...
@@ -55,14 +55,23 @@ const { state, handleEditorEvent, handleComponentEvent, onSearch, loadDraft, onO
</a-col>
<a-col
class=
'search-form-footer'
>
{{#if
(
eq
ctrl
.
searchButtonStyle
'DEFAULT'
)
}}
<a-select
allowClear
class=
"search-form-history"
v-show=
"state.historyItems.length > 0"
v-model:Value=
"state.selectHistoryItem"
@
change=
"handleChange"
>
<a-select-option
class=
"search-form-history-option"
v-for=
"(item,index) in state.historyItems"
:key=
"index"
:value=
"item.value"
>
\{{item.name}}
<close-outlined
@
click=
"() => removeHistoryItem(item)"
/></a-select-option>
</a-select>
<a-button
class=
'search-button'
@
click=
"onSearch"
type=
"primary"
>
搜索
</a-button>
<a-button
class=
'reset-button'
@
click=
'loadDraft'
>
重置
</a-button>
<a-popover
title=
"存储自定义查询"
>
<a-popover
title=
"存储自定义查询"
v-model:visible=
'state.showPopover'
overlayClassName=
"search-form-popover"
>
<template
#
content
>
<a-input
/>
<div
class=
"search-form-
popover-button
"
>
<div
class=
"search-form-
buttons
"
>
<a-button
@
click=
"onCancel"
>
取消
</a-button>
<a-button
@
click=
"
onOk
"
type=
"primary"
>
保存
</a-button>
<a-button
@
click=
"
addHistoryItem
"
type=
"primary"
>
保存
</a-button>
</div>
</template>
<a-button><save-outlined
/></a-button>
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录