Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibizlab-generator
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibizlab-generator
提交
c5774523
提交
c5774523
编写于
12月 30, 2021
作者:
sq3536
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/master'
上级
9744b5dd
2a0b14a7
变更
56
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
56 个修改的文件
包含
1688 行增加
和
162 行删除
+1688
-162
AppEntityModel.java
...rc/main/java/cn/ibizlab/codegen/model/AppEntityModel.java
+52
-0
AppModel.java
...core/src/main/java/cn/ibizlab/codegen/model/AppModel.java
+2
-0
auto-complete.hbs
...c/main/resources/templ/r7/@macro/editor/auto-complete.hbs
+9
-2
checkbox-list.hbs
...c/main/resources/templ/r7/@macro/editor/checkbox-list.hbs
+9
-2
checkbox.hbs
...re/src/main/resources/templ/r7/@macro/editor/checkbox.hbs
+9
-2
data-picker-view.hbs
...ain/resources/templ/r7/@macro/editor/data-picker-view.hbs
+9
-2
data-picker.hbs
...src/main/resources/templ/r7/@macro/editor/data-picker.hbs
+9
-2
date-picker.hbs
...src/main/resources/templ/r7/@macro/editor/date-picker.hbs
+9
-2
dropdown-list.hbs
...c/main/resources/templ/r7/@macro/editor/dropdown-list.hbs
+9
-2
input-ip.hbs
...re/src/main/resources/templ/r7/@macro/editor/input-ip.hbs
+9
-2
input.hbs
...-core/src/main/resources/templ/r7/@macro/editor/input.hbs
+9
-2
radio-group.hbs
...src/main/resources/templ/r7/@macro/editor/radio-group.hbs
+9
-2
rating.hbs
...core/src/main/resources/templ/r7/@macro/editor/rating.hbs
+9
-2
raw.hbs
...or-core/src/main/resources/templ/r7/@macro/editor/raw.hbs
+9
-2
slider.hbs
...core/src/main/resources/templ/r7/@macro/editor/slider.hbs
+9
-2
span.hbs
...r-core/src/main/resources/templ/r7/@macro/editor/span.hbs
+6
-1
stepper.hbs
...ore/src/main/resources/templ/r7/@macro/editor/stepper.hbs
+9
-2
switch.hbs
...core/src/main/resources/templ/r7/@macro/editor/switch.hbs
+9
-2
upload.hbs
...core/src/main/resources/templ/r7/@macro/editor/upload.hbs
+9
-2
form-item.hbs
.../main/resources/templ/r7/@macro/form-detail/form-item.hbs
+2
-2
controlAction.hbs
...s/templ/r7/@macro/front-end/view/common/controlAction.hbs
+5
-9
viewBaseConfig.hbs
.../templ/r7/@macro/front-end/view/common/viewBaseConfig.hbs
+10
-0
grid-column.hbs
...ain/resources/templ/r7/@macro/grid-detail/grid-column.hbs
+5
-5
menu-item.hbs
.../main/resources/templ/r7/@macro/menu-detail/menu-item.hbs
+2
-2
views.json.hbs
...s/templ/r7/app_{{apps}}/public/assets/json/views.json.hbs
+28
-0
App.vue
...core/src/main/resources/templ/r7/app_{{apps}}/src/App.vue
+8
-0
IbizDefaultViewLayout.vue
..._{{apps}}/src/components/layout/IbizDefaultViewLayout.vue
+22
-10
IbizLoading.vue
...mpl/r7/app_{{apps}}/src/components/render/IbizLoading.vue
+91
-0
ibizToolbar.vue
...mpl/r7/app_{{apps}}/src/components/render/ibizToolbar.vue
+60
-19
app-func-config.ts.hbs
...ps}}/src/ibiz-core/helper/app-func/app-func-config.ts.hbs
+30
-0
app-func-service.ts
...{apps}}/src/ibiz-core/helper/app-func/app-func-service.ts
+116
-0
index.ts
...pl/r7/app_{{apps}}/src/ibiz-core/helper/app-func/index.ts
+2
-0
index.ts
...urces/templ/r7/app_{{apps}}/src/ibiz-core/helper/index.ts
+1
-0
index.ts
...in/resources/templ/r7/app_{{apps}}/src/ibiz-core/index.ts
+2
-1
view-state-base.ts
.../src/ibiz-core/modules/views/view-base/view-state-base.ts
+7
-0
grid-control-state.ts
...z-core/modules/widgets/grid-control/grid-control-state.ts
+2
-2
grid-control.ts
...rc/ibiz-core/modules/widgets/grid-control/grid-control.ts
+18
-6
menu-control.ts
...rc/ibiz-core/modules/widgets/menu-control/menu-control.ts
+4
-2
index.ts
...ources/templ/r7/app_{{apps}}/src/ibiz-core/utils/index.ts
+1
-0
route-tool.ts
...s/templ/r7/app_{{apps}}/src/ibiz-core/utils/route-tool.ts
+404
-0
util.ts
...sources/templ/r7/app_{{apps}}/src/ibiz-core/utils/util.ts
+10
-0
{{pages@DEEDITVIEW}}-config.ts.hbs
...}/{{pages@DEEDITVIEW}}/{{pages@DEEDITVIEW}}-config.ts.hbs
+5
-13
{{pages@DEEDITVIEW}}.vue.hbs
...dules}}/{{pages@DEEDITVIEW}}/{{pages@DEEDITVIEW}}.vue.hbs
+18
-18
{{pages@DEGRIDVIEW}}-config.ts.hbs
...}/{{pages@DEGRIDVIEW}}/{{pages@DEGRIDVIEW}}-config.ts.hbs
+6
-4
{{pages@DEGRIDVIEW}}.vue.hbs
...dules}}/{{pages@DEGRIDVIEW}}/{{pages@DEGRIDVIEW}}.vue.hbs
+21
-15
app.ts
...in/resources/templ/r7/app_{{apps}}/src/service/app/app.ts
+53
-0
index.ts
...main/resources/templ/r7/app_{{apps}}/src/service/index.ts
+2
-0
open-view-service.ts
...7/app_{{apps}}/src/service/open-view/open-view-service.ts
+104
-0
app-modal.scss
.../templ/r7/app_{{apps}}/src/utils/app-modal/app-modal.scss
+0
-0
app-modal.ts
...es/templ/r7/app_{{apps}}/src/utils/app-modal/app-modal.ts
+180
-0
app-modal.vue
...s/templ/r7/app_{{apps}}/src/utils/app-modal/app-modal.vue
+236
-0
index.ts
...c/main/resources/templ/r7/app_{{apps}}/src/utils/index.ts
+1
-0
{{ctrls@APPMENU}}-menu-config.ts.hbs
...ctrls@APPMENU}}-menu/{{ctrls@APPMENU}}-menu-config.ts.hbs
+1
-3
{{ctrls@FORM}}-form-config.ts.hbs
...s}}/{{ctrls@FORM}}-form/{{ctrls@FORM}}-form-config.ts.hbs
+3
-3
{{ctrls@GRID}}-grid-config.ts.hbs
...s}}/{{ctrls@GRID}}-grid/{{ctrls@GRID}}-grid-config.ts.hbs
+13
-6
{{ctrls@GRID}}-grid.vue.hbs
...ntities}}/{{ctrls@GRID}}-grid/{{ctrls@GRID}}-grid.vue.hbs
+11
-9
未找到文件。
modules/ibizlab-generator-core/src/main/java/cn/ibizlab/codegen/model/AppEntityModel.java
浏览文件 @
c5774523
package
cn
.
ibizlab
.
codegen
.
model
;
import
cn.ibizlab.codegen.utils.Inflector
;
import
cn.ibizlab.codegen.utils.StringAdvUtils
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
...
...
@@ -23,6 +26,49 @@ public class AppEntityModel extends BaseModel{
this
.
setName
(
appDataEntity
.
getName
());
this
.
setId
(
String
.
format
(
"%1$s-%2$s"
,
app
.
getCodeName
(),
appDataEntity
.
getCodeName
()));
// 初始化应用实体资源数据
if
(
getAppDataEntity
().
getMinorPSAppDERSs
()
!=
null
){
// 遍历多个主从关系
getAppDataEntity
().
getMinorPSAppDERSs
().
forEach
(
appDERS
->{
JSONObject
appEntityResource
=
new
JSONObject
();
String
majorCodeName
=
appDERS
.
getMajorPSAppDataEntity
().
getCodeName
();
String
minorCodeName
=
appDERS
.
getMinorPSAppDataEntity
().
getCodeName
();
String
path
=
String
.
format
(
"%1$s/:%2$s?/%3$s/:%4$s?"
,
Inflector
.
getInstance
().
pluralize
(
majorCodeName
),
majorCodeName
,
Inflector
.
getInstance
().
pluralize
(
minorCodeName
),
minorCodeName
).
toLowerCase
();
appEntityResource
.
put
(
"majorCodeName"
,
majorCodeName
.
toLowerCase
());
appEntityResource
.
put
(
"curCodeName"
,
minorCodeName
.
toLowerCase
());
appEntityResource
.
put
(
"path"
,
path
);
// 实体关系路径集合
List
deResPaths
=
new
JSONArray
();
// 主关系路径节点
JSONObject
majorResNode
=
new
JSONObject
();
majorResNode
.
put
(
"pathName"
,
Inflector
.
getInstance
().
pluralize
(
majorCodeName
).
toLowerCase
());
majorResNode
.
put
(
"parameterName"
,
majorCodeName
.
toLowerCase
());
deResPaths
.
add
(
majorResNode
);
// 从关系路径节点
JSONObject
minorResNode
=
new
JSONObject
();
minorResNode
.
put
(
"pathName"
,
Inflector
.
getInstance
().
pluralize
(
minorCodeName
).
toLowerCase
());
minorResNode
.
put
(
"parameterName"
,
minorCodeName
.
toLowerCase
());
deResPaths
.
add
(
minorResNode
);
appEntityResource
.
put
(
"deResPaths"
,
deResPaths
);
appEntityResources
.
add
(
appEntityResource
);
});
}
else
{
// 没有主从关系,路径就只有自己本身一个
JSONObject
appEntityResource
=
new
JSONObject
();
appEntityResource
.
put
(
"curCodeName"
,
appDataEntity
.
getCodeName
().
toLowerCase
());
appEntityResource
.
put
(
"path"
,
String
.
format
(
"%1$s/:%2$s?"
,
Inflector
.
getInstance
().
pluralize
(
appDataEntity
.
getCodeName
()),
appDataEntity
.
getCodeName
()).
toLowerCase
());
// 路由关系路径集合
List
deResPaths
=
new
JSONArray
();
// 实体本身关系路径节点
JSONObject
curResNode
=
new
JSONObject
();
curResNode
.
put
(
"pathName"
,
Inflector
.
getInstance
().
pluralize
(
appDataEntity
.
getCodeName
()).
toLowerCase
());
curResNode
.
put
(
"parameterName"
,
appDataEntity
.
getCodeName
().
toLowerCase
());
deResPaths
.
add
(
curResNode
);
appEntityResource
.
put
(
"deResPaths"
,
deResPaths
);
appEntityResource
.
put
(
"deResPathsString"
,
deResPaths
.
toString
());
appEntityResources
.
add
(
appEntityResource
);
}
}
public
IPSAppDataEntity
getAppDataEntity
()
...
...
@@ -64,4 +110,10 @@ public class AppEntityModel extends BaseModel{
return
ctrlsMap
.
values
();
}
/**
* 应用实体资源数据
*/
private
List
<
JSONObject
>
appEntityResources
=
new
ArrayList
<>();
}
modules/ibizlab-generator-core/src/main/java/cn/ibizlab/codegen/model/AppModel.java
浏览文件 @
c5774523
...
...
@@ -38,6 +38,7 @@ public class AppModel extends BaseModel{
if
(
getApplication
().
getAllPSAppDataEntities
()!=
null
)
{
getApplication
().
getAllPSAppDataEntities
().
forEach
(
appDataEntity
->{
if
(
appDataEntity
.
getMinorPSAppDERSs
()
!=
null
){
appDataEntity
.
getMinorPSAppDERSs
().
forEach
(
appDERS
->{
JSONObject
tempObj
=
new
JSONObject
();
...
...
@@ -59,6 +60,7 @@ public class AppModel extends BaseModel{
}
});
}
}
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/auto-complete.hbs
浏览文件 @
c5774523
<IbizAutoComplete
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
:data=
"state.data"
{{#if
item
.
valueItemName
}}
valueItem=
"
{{
item
.
valueItemName
}}
"
...
...
@@ -39,4 +38,12 @@
{{#
eq
item
.
psEditor
.
editorType
"AC_FS_NOBUTTON"
}}
:showButton=
"false"
{{/
eq
}}
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/checkbox-list.hbs
浏览文件 @
c5774523
<IbizCheckboxList
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
:data=
"state.data"
{{#if
item
.
psEditor
.
disabled
}}
:disabled=
"
{{
item
.
psEditor
.
disabled
}}
"
...
...
@@ -21,4 +20,12 @@
{{/if}}
:contextProp=
"state.context"
:viewParamsProp=
"state.viewParams"
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/checkbox.hbs
浏览文件 @
c5774523
<IbizCheckbox
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
{{#if
item
.
psEditor
.
disabled
}}
:disabled=
"
{{
item
.
psEditor
.
disabled
}}
"
{{/if}}
{{#if
item
.
psEditor
.
isReadOnly
}}
:readonly=
"
{{
item
.
psEditor
.
isReadOnly
}}
"
{{/if}}
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/data-picker-view.hbs
浏览文件 @
c5774523
<IbizDataPickerView
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
:data=
"state.data"
{{#if
item
.
valueItemName
}}
valueItem=
"
{{
item
.
valueItemName
}}
"
...
...
@@ -25,4 +24,12 @@
{{#if
item
.
psEditor
.
pickUpData
}}
pickUpData=
"
{{
item
.
psEditor
.
pickUpData
}}
"
{{/if}}
@
editorEvent=
"handleEditorEvent"
/>
\ No newline at end of file
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/data-picker.hbs
浏览文件 @
c5774523
<IbizDataPicker
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
:data=
"state.data"
{{#if
item
.
valueItemName
}}
valueItem=
"
{{
item
.
valueItemName
}}
"
...
...
@@ -48,4 +47,12 @@
{{#if
(
or
(
eq
item
.
psEditor
.
editorType
"ADDRESSPICKUP"
)
(
eq
item
.
psEditor
.
editorType
"ADDRESSPICKUP_AC"
))
}}
:multiple=
"true"
{{/if}}
@
editorEvent=
"handleEditorEvent"
/>
\ No newline at end of file
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/date-picker.hbs
浏览文件 @
c5774523
<IbizDatePicker
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
{{#if
item
.
psEditor
.
placeHolder
}}
placeholder=
"
{{
item
.
psEditor
.
placeHolder
}}
"
{{/if}}
...
...
@@ -46,4 +45,12 @@
dateFormat=
"YYYY-MM-DD HH:mm"
dateType=
"dateTime"
{{/
eq
}}
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/dropdown-list.hbs
浏览文件 @
c5774523
<IbizDropdownList
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
:data=
"state.data"
{{#if
item
.
psEditor
.
codeList
}}
codeListTag=
"
{{
item
.
psEditor
.
codeList
.
codeListTag
}}
"
...
...
@@ -27,4 +26,12 @@
{{/
eq
}}
:contextProp=
"state.context"
:viewParamsProp=
"state.viewParams"
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/input-ip.hbs
浏览文件 @
c5774523
<IbizInputIp
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
{{#if
item
.
psEditor
.
disabled
}}
:disabled=
"
{{
item
.
psEditor
.
disabled
}}
"
{{/if}}
{{#if
item
.
psEditor
.
readOnly
}}
:readonly=
"
{{
item
.
psEditor
.
readOnly
}}
"
{{/if}}
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/input.hbs
浏览文件 @
c5774523
<IbizInput
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
{{#if
item
.
psEditor
.
placeHolder
}}
placeholder=
"
{{
item
.
psEditor
.
placeHolder
}}
"
{{/if}}
...
...
@@ -37,5 +36,13 @@
{{#
eq
item
.
psEditor
.
editorType
"TEXTAREA"
}}
type=
"textarea"
{{/
eq
}}
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/radio-group.hbs
浏览文件 @
c5774523
<IbizRadioGroup
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
:data=
"state.data"
{{#if
item
.
psEditor
.
codeList
}}
codeListTag=
"
{{
item
.
psEditor
.
codeList
.
codeListTag
}}
"
...
...
@@ -21,4 +20,12 @@
{{/if}}
:contextProp=
"state.context"
:viewParamsProp=
"state.viewParams"
@
editorEvent=
"handleEditorEvent"
/>
\ No newline at end of file
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/rating.hbs
浏览文件 @
c5774523
<IbizRating
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
{{#if
item
.
psEditor
.
disabled
}}
:disabled=
"
{{
item
.
psEditor
.
disabled
}}
"
{{/if}}
...
...
@@ -13,4 +12,12 @@
{{#if
item
.
psEditor
.
editorParams
.
allowHalf
}}
:allowHalf=
"
{{
item
.
psEditor
.
editorParams
.
allowHalf
}}
"
{{/if}}
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/raw.hbs
浏览文件 @
c5774523
<IbizRaw
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
:date=
"state.data"
{{#if
item
.
psEditor
.
editorParams
.
contentType
}}
:contentType=
"
{{
item
.
psEditor
.
editorParams
.
contentType
}}
"
...
...
@@ -13,4 +12,12 @@
{{/if}}
:contextProp=
"state.context"
:viewParamsProp=
"state.viewParams"
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/slider.hbs
浏览文件 @
c5774523
<IbizSlider
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
:date=
"state.data"
{{#if
item
.
psEditor
.
disabled
}}
:disabled=
"
{{
item
.
psEditor
.
disabled
}}
"
...
...
@@ -17,4 +16,12 @@
{{#if
item
.
psEditor
.
editorParams
.
max
}}
:max=
"
{{
item
.
psEditor
.
editorParams
.
max
}}
"
{{/if}}
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/span.hbs
浏览文件 @
c5774523
<IbizSpan
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
{{#if
item
.
psEditor
.
codeList
}}
codeListTag=
"
{{
item
.
psEditor
.
codeList
.
codeListTag
}}
"
codeListType=
"
{{
item
.
psEditor
.
codeList
.
codeListType
}}
"
...
...
@@ -23,5 +22,11 @@
{{#if
item
.
psEditor
.
psNavigateParams
}}
localParam=
"
{{
item
.
psEditor
.
psNavigateParams
}}
"
{{/if}}
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
{{/
eq
}}
:contextProp=
"state.context"
:viewParamsProp=
"state.viewParams"
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/stepper.hbs
浏览文件 @
c5774523
<IbizStepper
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
{{#if
item
.
psEditor
.
disabled
}}
:disabled=
"
{{
item
.
psEditor
.
disabled
}}
"
{{/if}}
...
...
@@ -19,4 +18,12 @@
{{#if
item
.
psEditor
.
editorParams
.
max
}}
:max=
"
{{
item
.
psEditor
.
editorParams
.
max
}}
"
{{/if}}
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/switch.hbs
浏览文件 @
c5774523
<IbizSwitch
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
{{#if
item
.
psEditor
.
disabled
}}
:disabled=
"
{{
item
.
psEditor
.
disabled
}}
"
{{/if}}
...
...
@@ -10,4 +9,12 @@
{{#if
item
.
psEditor
.
editorParams
.
size
}}
size=
"
{{
item
.
psEditor
.
editorParams
.
size
}}
"
{{/if}}
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/editor/upload.hbs
浏览文件 @
c5774523
<IbizUpload
name=
"
{{
item
.
codeName
}}
"
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
{{#if
item
.
psEditor
.
editorParams
.
method
}}
method=
"
{{
item
.
psEditor
.
editorParams
.
method
}}
"
{{/if}}
...
...
@@ -30,4 +29,12 @@
accept=
'image/*'
listType=
"picture-card"
{{/
eq
}}
@
editorEvent=
"handleEditorEvent"
/>
{{#if
(
or
(
eq
ctrlType
'form'
)
(
eq
ctrlType
'panel'
))
}}
:value=
"state.data.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"handleEditorEvent"
{{/if}}
{{#
eq
ctrlType
'grid'
}}
:value=
"record.
{{
item
.
psEditor
.
name
}}
"
@
editorEvent=
"($event) => handleEditorEvent(index,$event)"
{{/
eq
}}
/>
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/form-detail/form-item.hbs
浏览文件 @
c5774523
...
...
@@ -3,7 +3,7 @@
<div
style=
"flex-grow:
{{#if
item
.
psLayoutPos
.
grow
}}{{
item
.
psLayoutPos
.
grow
}}{{else}}
0
{{/if}}
;"
>
<IbizFormItem
name=
"
{{
item
.
codeName
}}
"
label=
"
{{
item
.
caption
}}
"
>
{{#if
item
.
psEditor
}}
{{>
(
lookup
.
'item.psEditor.editorType'
)
item
=
item
}}
{{>
(
lookup
.
'item.psEditor.editorType'
)
item
=
item
ctrlType
=
"form"
}}
{{/if}}
</IbizFormItem>
</div>
...
...
@@ -11,7 +11,7 @@
<a-col
:span=
"24"
>
<IbizFormItem
name=
"
{{
item
.
codeName
}}
"
label=
"
{{
item
.
caption
}}
"
>
{{#if
item
.
psEditor
}}
{{>
(
lookup
.
'item.psEditor.editorType'
)
item
=
item
c
ontro
lType
=
"form"
}}
{{>
(
lookup
.
'item.psEditor.editorType'
)
item
=
item
c
tr
lType
=
"form"
}}
{{/if}}
</IbizFormItem>
</a-col>
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/front-end/view/common/controlAction.hbs
浏览文件 @
c5774523
controlsAction:{
{{#
each
page
.
ctrls
as
|
ctrl
|
}}
{{
ctrl
.
codeName
}}
:{
loadAction: '
{{
ctrl
.
getPSControlAction
.
psAppDEMethod
.
codeName
}}
',
removeAction: '
{{
ctrl
.
removePSControlAction
.
psAppDEMethod
.
codeName
}}
',
updateAction: '
{{
ctrl
.
updatePSControlAction
.
psAppDEMethod
.
codeName
}}
',
loadDraftAction: '
{{
ctrl
.
getDraftPSControlAction
.
psAppDEMethod
.
codeName
}}
',
createAction: '
{{
ctrl
.
getDraftPSControlAction
.
psAppDEMethod
.
codeName
}}
',
},
{{/
each
}}
loadAction: '
{{
ctrl
.
getPSControlAction
.
psAppDEMethod
.
codeName
}}
',
removeAction: '
{{
ctrl
.
removePSControlAction
.
psAppDEMethod
.
codeName
}}
',
updateAction: '
{{
ctrl
.
updatePSControlAction
.
psAppDEMethod
.
codeName
}}
',
loadDraftAction: '
{{
ctrl
.
getDraftPSControlAction
.
psAppDEMethod
.
codeName
}}
',
createAction: '
{{
ctrl
.
getDraftPSControlAction
.
psAppDEMethod
.
codeName
}}
',
}
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/front-end/view/common/viewBaseConfig.hbs
浏览文件 @
c5774523
...
...
@@ -11,4 +11,14 @@
viewType: '
{{
page
.
viewType
}}
',
viewStyle: '
{{
page
.
viewStyle
}}
',
showCaptionBar: '
{{
page
.
viewStyle
}}
',
viewToolbarModel: [
{{#
page
.
ctrls
}}
{{#
eq
controlType
"TOOLBAR"
}}
{{#
psDEToolbarItems
}}
{ name:'
{{
name
}}
',caption:'
{{
caption
}}
',groupExtractMode:'
{{
groupExtractMode
}}
',itemType:'
{{
itemType
}}
',noPrivDisplayMode:'
{{
noPrivDisplayMode
}}
',showIcon:
{{
showIcon
}}
,showCaption:
{{
showCaption
}}
,tooltip:'
{{
tooltip
}}
' },
{{/
psDEToolbarItems
}}
{{/
eq
}}
{{/
page
.
ctrls
}}
],
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/grid-detail/grid-column.hbs
浏览文件 @
c5774523
...
...
@@ -22,11 +22,11 @@
{{/if}}
{{/if}}
{{#if
(
eq
item
.
columnType
'UAGRIDCOLUMN'
)
}}
{{!--
<ibizToolbar
:toolbarModel="record.{{lowerCase item.codeName}}
"
:context="state.context
"
:
viewParams="state.viewParams
"
@toolbarEvent="($event
: ) => handleToolbarEvent()"/> --}}
<ibizToolbar
mode=
"link
"
name=
"
{{
lowerCase
item
.
codeName
}}
"
:
actionModel=
"record.
{{
lowerCase
item
.
codeName
}}
"
@
toolbarEvent=
"($event
) => handleToolbarEvent(record, $event)"
/>
{{/if}}
</div>
{{/if}}
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/menu-detail/menu-item.hbs
浏览文件 @
c5774523
...
...
@@ -4,7 +4,7 @@
itemType: "
{{
item
.
itemType
}}
",
expanded:
{{
item
.
expanded
}}
,
tooltip: "
{{
item
.
tooltip
}}
",
funcTag:
{{#if
item
.
psAppFunc
}}
"
{{
item
.
psAppFunc
.
id
}}
"
{{else}}
''
{{/if}}
,
funcTag:
"
{{
item
.
psAppFunc
.
id
}}
"
,
hidden:
{{#if
item
.
hidden
}}
true
{{else}}
false
{{/if}}
,
disableClose:
{{#if
item
.
disableClose
}}
true
{{else}}
false
{{/if}}
,
{{#if
item
.
counterId
}}
...
...
@@ -18,7 +18,7 @@
iconCls: "
{{
item
.
psSysImage
.
cssClass
}}
",
{{/if}}
{{#if
item
.
psSysImage
.
imagePath
}}
i
con
: "
{{
item
.
psSysImage
.
imagePath
}}
",
i
mgPath
: "
{{
item
.
psSysImage
.
imagePath
}}
",
{{/if}}
{{/if}}
{{#if
item
.
psNavigateContexts
}}
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/public/assets/json/views.json.hbs
0 → 100644
浏览文件 @
c5774523
{
{{#
each
app
.
pages
as
|
appView
|
}}
"
{{
appView
.
codeName
}}
":{
"name": "
{{
appView
.
name
}}
",
"codeName": "
{{
appView
.
codeName
}}
",
"openMode": "
{{#if
appView
.
openMode
}}{{
appView
.
openMode
}}{{else}}
INDEXVIEWTAB
{{/if}}
",
"redirectView":
{{
appView
.
redirectView
}}
,
"deResPaths": [
{{#
each
appView
.
appEntity
.
appEntityResources
as
|
appEntityResource
|
}}
{{
appEntityResource
.
deResPaths
}}{{#
unless
@last
}}
,
{{/
unless
}}
{{/
each
}}
],
"parameters": [
{ "pathName": "views", "parameterName": "
{{
lowerCase
appView
.
codeName
}}
" }
],
{{#if
appView
.
capPSLanguageRes
}}
"captionTag": "
{{
appView
.
capPSLanguageRes
.
lanResTag
}}
",
{{/if}}
"caption": "
{{
appView
.
caption
}}
",
{{#if
appView
.
psSysImage
}}
"imgPath": "
{{
appView
.
psSysImage
.
imagePath
}}
",
"iconCls": "
{{
appView
.
psSysImage
.
cssClass
}}
",
{{/if}}
"viewType": "
{{
appView
.
viewType
}}
",
"fileDir": "@page/
{{#if
psAppDataEntity
}}{{
spinalCase
psAppDataEntity
.
codeName
}}{{else}}
default
{{/if}}
/
{{
spinalCase
appView
.
codeName
}}
"
}
{{#
unless
(
and
@last
..
/
@last
)
}}
,
{{/
unless
}}
{{/
each
}}
}
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/App.vue
浏览文件 @
c5774523
<
script
setup
lang=
"ts"
>
// This starter template is using Vue 3
<
script
setup
>
SFCs
// Check out https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup
import
{
App
}
from
'@service'
onMounted
(
async
()
=>
{
await
App
.
init
();
// App.openViewService.openView({codeName: 'ExampleEditorEditView'},{context: {},viewParams:{}})
})
</
script
>
<
template
>
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/components/layout/IbizDefaultViewLayout.vue
浏览文件 @
c5774523
...
...
@@ -31,21 +31,33 @@ const showHeader = computed(()=> props.showHeader && (props.viewCaption || slot
</div>
<slot
name=
"header-bottom"
/>
</div>
<slot
/>
<slot
name=
"footer"
/>
<div
class=
"ibiz-view-layout__body"
>
<slot
/>
</div>
<div
class=
"ibiz-view-footer"
>
<slot
name=
"footer"
/>
</div>
</div>
</
template
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
>
.ibiz-view-layout
{
height
:
100%
;
width
:
100%
;
}
.ibiz-view-layout__header-content
{
display
:
flex
;
justify-content
:
space-between
;
.ibiz-view-layout__caption
{
font-weight
:
600
;
flex-direction
:
column
;
padding
:
0
24px
24px
;
.ibiz-view-layout__header
{
flex
:
none
;
.ibiz-view-layout__header-content
{
display
:
flex
;
justify-content
:
space-between
;
padding
:
16px
0
;
}
}
.ibiz-view-layout__body
{
flex
:
auto
;
}
.ibiz-view-layout__footer
{
flex
:
none
;
}
}
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/components/render/IbizLoading.vue
0 → 100644
浏览文件 @
c5774523
<
script
setup
lang=
"ts"
>
import
{
IParam
}
from
"@ibiz-core"
;
interface
Props
{
width
:
number
;
height
:
number
;
}
const
props
=
withDefaults
(
defineProps
<
Props
>
(),
{})
let
style
=
reactive
({
width
:
'600px'
,
height
:
'600px'
});
/**
* Vue生命周期beforeMount
*/
onBeforeMount
(()
=>
{
if
(
props
.
width
)
{
style
.
width
=
props
.
width
+
'px'
;
}
else
if
(
props
.
height
){
style
.
height
=
props
.
height
+
'px'
;
}
});
onMounted
(()
=>
{
})
</
script
>
<
template
>
<div
:style=
"style"
class=
"ar-loading"
>
<div
class=
"ar-loading-spinner"
>
<svg
class=
"circular"
viewBox=
"25 25 50 50"
>
<circle
id=
"circle1"
cx=
"50"
cy=
"50"
r=
"20"
fill=
"none"
></circle>
</svg>
</div>
</div>
</
template
>
<
style
lang=
"scss"
>
.ar-loading
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
&
-spinner
{
position
:
relative
;
display
:
inline-block
;
width
:
80px
;
height
:
80px
;
vertical-align
:
middle
;
animation
:
ar-rotate
0
.8s
linear
infinite
;
.circular
{
width
:
100%
;
height
:
100%
;
circle
{
stroke
:
skyblue
;
stroke-width
:
3
;
stroke-linecap
:
round
;
animation
:
ar-circular
1
.5s
ease-in-out
infinite
;
}
}
}
}
@keyframes
ar-rotate
{
from
{
transform
:
rotate
(
0deg
);
}
to
{
transform
:
rotate
(
360deg
);
}
}
@keyframes
ar-circular
{
0
%
{
stroke-dasharray
:
1
,
200
;
stroke-dashoffset
:
0
;
}
50
%
{
stroke-dasharray
:
90
,
150
;
stroke-dashoffset
:
-40
;
}
100
%
{
stroke-dasharray
:
90
,
150
;
stroke-dashoffset
:
-120
;
}
}
</
style
>
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/components/render/ibizToolbar.vue
浏览文件 @
c5774523
...
...
@@ -3,20 +3,31 @@ import { IParam, IActionParam } from "@ibiz-core";
import
{
onBeforeMount
,
ref
,
Ref
}
from
"vue"
;
interface
ToolbarProps
{
/**
* @description 名称
*/
name
:
string
;
/**
* @description
工具栏模型
* @description
模式
*/
toolbarModel
:
IParam
;
mode
:
'button'
|
'link'
;
/**
* @description 行为模型
*/
actionModel
:
IParam
[];
}
interface
toolbarEmit
{
(
name
:
"toolbarEvent"
,
value
:
IActionParam
):
void
;
}
const
props
=
withDefaults
(
defineProps
<
ToolbarProps
>
(),
{});
const
props
=
withDefaults
(
defineProps
<
ToolbarProps
>
(),
{
mode
:
'button'
,
});
const
emit
=
defineEmits
<
toolbarEmit
>
();
const
items
:
Ref
<
IParam
[]
>
=
ref
(
props
.
toolbarModel
?.
items
||
[]);
const
items
:
Ref
<
IParam
[]
>
=
ref
(
props
.
actionModel
||
[]);
console
.
log
(
items
);
const
getItemClass
=
(
item
:
IParam
)
=>
{
//todo 样式表
return
item
.
class
;
return
item
?.
class
;
};
const
getItemIcon
=
(
item
:
IParam
)
=>
{
if
(
item
.
getPSSysImage
)
{
...
...
@@ -25,19 +36,21 @@ const getItemIcon = (item: IParam) => {
};
const
itemClick
=
(
item
:
IParam
)
=>
{
emit
(
"toolbarEvent"
,
{
tag
:
item
.
name
,
tag
:
props
.
name
,
action
:
"toolbarEvent"
,
data
:
item
,
});
};
</
script
>
<
template
>
<div
class=
"app-toolbar"
>
<template
v-for=
"(item, index) in items"
:key=
"index"
>
<div
class=
"toolbar"
>
<a-space
v-if=
"Object.is(mode,'button')"
class=
"toolbar-button"
>
<template
v-for=
"(item, index) in items"
:key=
"index"
>
<a-tooltip
v-if=
"Object.is(item.itemType, 'DEUIACTION')"
:title=
"item.tooltip"
>
<!-- todo 无权限显示模式 -->
<a-button
v-show=
"true"
:class=
"['toolbar-item', getItemClass(item)]"
...
...
@@ -45,7 +58,7 @@ const itemClick = (item: IParam) => {
type=
"primary"
@
click=
"itemClick(item)"
>
<
a-icon
v-show=
"item.showIcon"
:type=
"getItemIcon(item)"
/
>
<
!--
<a-icon
v-show=
"item.showIcon"
:type=
"getItemIcon(item)"
/>
--
>
\
{{
item
.
showCaption
?
item
.
caption
:
""
}}
</a-button>
</a-tooltip>
...
...
@@ -63,24 +76,52 @@ const itemClick = (item: IParam) => {
type=
"primary"
@
click=
"itemClick(childItem)"
>
<a-icon
<
!--
<
a-icon
v-show=
"childItem.showIcon"
:type=
"getItemIcon(childItem)"
/>
/>
-->
\
{{
childItem
.
showCaption
?
childItem
.
caption
:
""
}}
</a-menu-item>
</a-tooltip>
</a-menu>
</a-dropdown>
</
template
>
</
template
>
</a-space>
<a-space
v-else
class=
"toolbar-link"
>
<
template
v-for=
"(item, index) in items"
:key=
"index"
>
<a-button
v-show=
"item.visabled"
:class=
"['toolbar-item', getItemClass(item)]"
:disabled=
"item.disabled"
type=
"link"
@
click=
"itemClick(item)"
>
<!--
<a-icon
v-show=
"item.showIcon"
:type=
"getItemIcon(item)"
/>
-->
\
{{
item
.
showCaption
?
item
.
caption
:
""
}}
</a-button>
<div
v-if=
"item.separator"
class=
"separator"
></div>
</
template
>
</a-space>
</div>
</template>
<
style
scoped
>
.app-toolbar
{
}
.app-toolbar
.toolbar-item
{
margin-right
:
8px
;
margin-bottom
:
12px
;
<
style
lang=
'scss'
>
.toolbar
{
.toolbar-link
{
gap
:
0
!
important
;
display
:
flex
;
flex-wrap
:
wrap
;
.ant-space-item
{
position
:
relative
;
.separator
{
position
:
absolute
;
right
:
0
;
top
:
15%
;
height
:
70%
;
width
:
1px
;
background
:
#1890ff
;
}
}
}
}
</
style
>
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/ibiz-core/helper/app-func/app-func-config.ts.hbs
0 → 100644
浏览文件 @
c5774523
export const FuncConfig = [
{{#
each
app
.
allPSAppFuncs
as
|
func
|
}}
{
name: "
{{
func
.
name
}}
",
funcTag: "
{{
func
.
codeName
}}
",
appFuncType: "
{{
func
.
appFuncType
}}
",
{{#if
(
eq
func
.
appFuncType
'OPENHTMLPAGE'
)
}}
htmlPageUrl: "
{{
func
.
htmlPageUrl
}}
",
{{/if}}
{{#if
(
eq
func
.
appFuncType
'APPVIEW'
)
}}
openMode: "
{{
func
.
openMode
}}
",
viewCodeName: "
{{
func
.
psAppView
.
codeName
}}
",
{{/if}}
navParam: {
{{#if
func
.
psNavigateParams
}}
{{#
each
func
.
psNavigateParams
as
|
param
|
}}
{{
lowerCase
param
.
key
}}
: "
{{#if
param
.
rawValue
}}{{
param
.
value
}}{{else}}
%
{{
lowerCase
param
.
value
}}
%
{{/if}}
",
{{/
each
}}
{{/if}}
},
navContext: {
{{#if
func
.
psNavigateContexts
}}
{{#
each
func
.
psNavigateContexts
as
|
context
|
}}
{{
lowerCase
context
.
key
}}
: "
{{#if
context
.
rawValue
}}{{
context
.
value
}}{{else}}
%
{{
lowerCase
context
.
value
}}
%
{{/if}}
",
{{/
each
}}
{{/if}}
},
},
{{/
each
}}
]
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/ibiz-core/helper/app-func/app-func-service.ts
0 → 100644
浏览文件 @
c5774523
import
{
IParam
,
FuncConfig
}
from
"@ibiz-core"
;
import
{
App
}
from
"@service"
;
export
class
AppFuncService
{
/**
* @description 唯一实例
* @private
* @static
* @memberof AppFuncService
*/
private
static
readonly
instance
=
new
AppFuncService
();
/**
* @description 获取唯一实例
* @static
* @return {*} {AppFuncService}
* @memberof AppFuncService
*/
public
static
getInstance
():
AppFuncService
{
return
AppFuncService
.
instance
;
}
/**
* @description 执行应用功能
* @param {string} menu 菜单项
* @param {IParam} context 上下文
* @param {IParam} viewParams 视图参数
* @memberof AppFuncService
*/
executeAppFunc
(
menu
:
IParam
,
context
:
IParam
,
viewParams
:
IParam
)
{
const
appFunc
=
FuncConfig
.
find
((
func
:
IParam
)
=>
Object
.
is
(
func
.
funcTag
,
menu
.
funcTag
));
if
(
appFunc
)
{
switch
(
appFunc
.
appFuncType
)
{
case
'APPVIEW'
:
return
this
.
openAppView
(
appFunc
,
context
,
viewParams
);
case
'OPENHTMLPAGE'
:
return
this
.
openHtmlPage
(
appFunc
,
context
,
viewParams
);
case
'PDTAPPFUNC'
:
return
this
.
executePresetFunc
(
appFunc
,
context
,
viewParams
);
case
'JAVASCRIPT'
:
return
this
.
executeJavaScript
(
appFunc
,
context
,
viewParams
);
case
'CUSTOM'
:
return
this
.
executeCustomFunc
(
appFunc
,
context
,
viewParams
);
default
:
console
.
warn
(
`
${
appFunc
.
appFuncType
}
类型应用功能暂未支持`
);
}
}
else
{
console
.
warn
(
`菜单项
${
menu
.
caption
}
未配置应用功能`
);
}
}
/**
* @description 执行自定义功能
* @param {IParam} appFunc 应用功能
* @param {IParam} context 上下文
* @param {IParam} viewParams 视图参数
* @memberof AppFuncService
*/
executeCustomFunc
(
appFunc
:
IParam
,
context
:
IParam
,
viewParams
:
IParam
)
{
console
.
warn
(
`
${
appFunc
.
appFuncType
}
类型应用功能暂未支持`
);
}
/**
* @description 执行JavaScript
* @param {IParam} appFunc 应用功能
* @param {IParam} context 上下文
* @param {IParam} viewParams 视图参数
* @memberof AppFuncService
*/
executeJavaScript
(
appFunc
:
IParam
,
context
:
IParam
,
viewParams
:
IParam
)
{
console
.
warn
(
`
${
appFunc
.
appFuncType
}
类型应用功能暂未支持`
);
}
/**
* @description 执行预置应用功能
* @static
* @param {IParam} appFunc 应用功能
* @param {IParam} context 上下文
* @param {IParam} viewParams 视图参数
* @memberof AppFuncService
*/
executePresetFunc
(
appFunc
:
IParam
,
context
:
IParam
,
viewParams
:
IParam
)
{
console
.
warn
(
`
${
appFunc
.
appFuncType
}
类型应用功能暂未支持`
);
}
/**
* @description 打开HTML页面
* @param {IParam} appFunc 应用功能
* @param {IParam} context 上下文
* @param {IParam} viewParams 视图参数
* @memberof AppFuncService
*/
openHtmlPage
(
appFunc
:
IParam
,
context
:
IParam
,
viewParams
:
IParam
)
{
window
.
open
(
appFunc
.
htmlPageUrl
,
'_blank'
);
}
/**
* @description 打开应用视图
* @param {IParam} appFunc 应用功能
* @param {IParam} context 上下文
* @param {IParam} viewParams 视图参数
* @memberof AppFuncService
*/
openAppView
(
appFunc
:
IParam
,
context
:
IParam
,
viewParams
:
IParam
)
{
const
view
=
{
codeName
:
appFunc
.
viewCodeName
,
openMode
:
appFunc
.
openMode
,
}
const
params
=
{
context
:
context
,
viewParams
:
viewParams
,
}
App
.
openViewService
.
openView
(
view
,
params
);
}
}
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/ibiz-core/helper/app-func/index.ts
0 → 100644
浏览文件 @
c5774523
export
*
from
'./app-func-service'
;
export
*
from
'./app-func-config'
;
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/ibiz-core/helper/index.ts
0 → 100644
浏览文件 @
c5774523
export
*
from
'./app-func'
;
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/ibiz-core/index.ts
浏览文件 @
c5774523
...
...
@@ -2,4 +2,5 @@ export * from './interface';
export
*
from
'./modules'
;
export
*
from
'./runtime'
;
export
*
from
'./service'
;
export
*
from
'./utils'
\ No newline at end of file
export
*
from
'./utils'
;
export
*
from
'./helper'
;
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/ibiz-core/modules/views/view-base/view-state-base.ts
浏览文件 @
c5774523
...
...
@@ -43,6 +43,13 @@ export interface ViewStateBase {
*/
viewSubject
:
Subject
<
IActionParam
>
;
/**
* @description 视图工具栏模型
* @type {IParam[]}
* @memberof ViewStateBase
*/
viewToolbarModel
:
IParam
[];
// 声明任意属性
[
propName
:
string
]:
any
;
}
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/ibiz-core/modules/widgets/grid-control/grid-control-state.ts
浏览文件 @
c5774523
...
...
@@ -23,11 +23,11 @@ export interface GridControlState extends MainControlState {
columnsModel
:
IParam
[];
/**
* @description 表格
界面
行为模型
* @description 表格
操作列
行为模型
* @type {IParam}
* @memberof GridControlState
*/
actionModel
:
IParam
;
uAColumnModel
:
IParam
[]
;
/**
* @description 值规则
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/ibiz-core/modules/widgets/grid-control/grid-control.ts
浏览文件 @
c5774523
...
...
@@ -53,10 +53,10 @@ export class GridControl extends MainControl {
* @memberof GridControl
*/
public
getActionAuthState
(
rowData
:
IParam
)
{
const
{
UIService
,
actio
nModel
}
=
this
.
controlState
;
let
temp
ActionModel
:
any
=
deepCopy
(
actio
nModel
);
calcActionItemAuthState
(
rowData
,
temp
Action
Model
,
UIService
);
return
temp
Action
Model
;
const
{
UIService
,
uAColum
nModel
}
=
this
.
controlState
;
let
temp
Model
:
any
=
deepCopy
(
uAColum
nModel
);
calcActionItemAuthState
(
rowData
,
tempModel
,
UIService
);
return
tempModel
;
}
/**
...
...
@@ -374,7 +374,7 @@ export class GridControl extends MainControl {
// return
// }
const
data
=
[];
for
(
let
i
=
0
;
i
<
10
0
;
i
++
)
{
for
(
let
i
=
0
;
i
<
4
0
;
i
++
)
{
data
.
push
({
group
:
i
%
2
===
1
?
"分组1"
:
"分组2"
,
srfkey
:
i
,
...
...
@@ -389,7 +389,7 @@ export class GridControl extends MainControl {
// dataRef.value = response.data;
if
(
enablePagingBar
)
{
// paginationRef.value['total'] = response.total;
paginationRef
.
value
[
"total"
]
=
10
0
;
paginationRef
.
value
[
"total"
]
=
4
0
;
}
this
.
calcGridAuthState
();
this
.
handleDefaultSelect
();
...
...
@@ -435,6 +435,17 @@ export class GridControl extends MainControl {
}
}
/**
* @description 处理工具栏事件
* @param {IActionParam} actionParam 行为参数
* @param {IParam} [row] 表格行数据
* @memberof GridControl
*/
public
handleToolbarEvent
(
actionParam
:
IActionParam
,
row
?:
IParam
)
{
const
{
tag
,
action
,
data
}
=
actionParam
;
console
.
log
(
'触发界面行为'
,
actionParam
,
row
);
}
/**
* @description 安装部件所有功能模块的方法
* @param {GridControlProps} props 传入的Props
...
...
@@ -451,6 +462,7 @@ export class GridControl extends MainControl {
state
:
this
.
controlState
,
load
,
handleEditorEvent
:
this
.
handleEditorEvent
.
bind
(
this
),
handleToolbarEvent
:
this
.
handleToolbarEvent
.
bind
(
this
),
};
}
}
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/ibiz-core/modules/widgets/menu-control/menu-control.ts
浏览文件 @
c5774523
import
{
Ref
}
from
'vue'
;
import
{
MenuControlProps
,
MenuControlState
,
IActionParam
,
ControlBase
,
IParam
}
from
'@ibiz-core'
;
import
{
MenuControlProps
,
MenuControlState
,
IActionParam
,
ControlBase
,
IParam
,
AppFuncService
,
deepCopy
}
from
'@ibiz-core'
;
import
{
App
}
from
'@service'
;
/**
* @description 菜单部件
...
...
@@ -163,7 +164,8 @@ export class MenuControl extends ControlBase {
* @memberof MenuControl
*/
public
menuClick
(
item
:
IParam
)
{
console
.
log
(
item
);
const
{
context
,
viewParams
}
=
this
.
controlState
;
App
.
appFuncService
.
executeAppFunc
(
item
,
deepCopy
(
context
),
deepCopy
(
viewParams
));
}
/**
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/ibiz-core/utils/index.ts
浏览文件 @
c5774523
export
*
from
'./util'
;
export
*
from
'./view-util'
;
export
*
from
'./route-tool'
;
export
{
Http
}
from
'./net/http'
;
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/ibiz-core/utils/route-tool.ts
0 → 100644
浏览文件 @
c5774523
此差异已折叠。
点击以展开。
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/ibiz-core/utils/util.ts
浏览文件 @
c5774523
...
...
@@ -20,6 +20,16 @@ export function isExist(arg: any): boolean{
return
arg
!==
undefined
&&
arg
!==
null
&&
arg
===
arg
;
}
/**
* @description 除undefined,null,NaN,空字符串以外都为true
* @export
* @param {*} arg
* @return {*} {boolean}
*/
export
function
notEmpty
(
arg
:
any
):
boolean
{
return
isExist
(
arg
)
&&
arg
!=
''
;
}
/**
* @description 是否拥有某个方法
* @param {*} arg 校验对象
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/page/{{appModules}}/{{pages@DEEDITVIEW}}/{{pages@DEEDITVIEW}}-config.ts.hbs
浏览文件 @
c5774523
export const ViewConfig = {
{{>
@macro
/
front-end
/
view
/
common
/
viewBaseConfig
.
hbs
}}
{{#
page
.
ctrls
}}
{{#
eq
controlType
"TOOLBAR"
}}
{{
lowerCase
codeName
}}
:{
name:'
{{
name
}}
',
items:[
{{#
psDEToolbarItems
}}
{ name:'
{{
name
}}
',caption:'
{{
caption
}}
',groupExtractMode:'
{{
groupExtractMode
}}
',itemType:'
{{
itemType
}}
',noPrivDisplayMode:'
{{
noPrivDisplayMode
}}
',showIcon:
{{
showIcon
}}
,showCaption:
{{
showCaption
}}
,tooltip:'
{{
tooltip
}}
' },
{{/
psDEToolbarItems
}}
]
},
{{/
eq
}}
{{/
page
.
ctrls
}}
{{>
@macro
/
front-end
/
view
/
common
/
controlAction
.
hbs
}}
{{#
each
page
.
ctrls
as
|
ctrl
|
}}
{{#if
(
eq
ctrl
.
controlType
"FORM"
)
}}
{{>
@macro
/
front-end
/
view
/
common
/
controlAction
.
hbs
ctrl
=
ctrl
}}
{{/if}}
{{/
each
}}
};
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/page/{{appModules}}/{{pages@DEEDITVIEW}}/{{pages@DEEDITVIEW}}.vue.hbs
浏览文件 @
c5774523
...
...
@@ -44,26 +44,26 @@ const { state, handleToolbarEvent } = new EditView(ViewConfig).moduleInstall(pro
:text=
"state.viewCaption"
/>
</template>
{{#
page
.
ctrls
}}
{{#
eq
controlType
"TOOLBAR"
}}
<template
v-slot:header-right
>
{{#
page
.
ctrls
}}
{{#
eq
controlType
"TOOLBAR"
}}
<template
v-slot:header-right
>
<IbizToolbar
:toolbarModel=
"state.
{{
lowerCase
codeName
}}
"
@
toolbarEvent=
"handleToolbarEvent
"
:
context=
"state.context
"
:viewParams=
"state.viewParams
"
/>
mode=
"button
"
name=
"
{{
lowerCase
codeName
}}
"
:
actionModel=
"state.viewToolbarModel
"
@
toolbarEvent=
"handleToolbarEvent
"
/>
</template>
{{/
eq
}}
{{#
eq
controlType
"FORM"
}}
<
{{
codeName
}}
Form
:showBusyIndicator=
"true"
:context=
"state.context"
:viewParams=
"state.viewParams"
:controlAction=
"state.controlsAction.
{{
codeName
}}
"
:viewSubject=
"state.viewSubject"
></
{{
codeName
}}
Form>
{{/
eq
}}
{{/
page
.
ctrls
}}
{{/
eq
}}
{{#
eq
controlType
"FORM"
}}
<
{{
codeName
}}
Form
:showBusyIndicator=
"true"
:context=
"state.context"
:viewParams=
"state.viewParams"
:controlAction=
"state.controlsAction.
{{
codeName
}}
"
:viewSubject=
"state.viewSubject"
></
{{
codeName
}}
Form>
{{/
eq
}}
{{/
page
.
ctrls
}}
</IbizDefaultViewLayout>
</template>
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/page/{{appModules}}/{{pages@DEGRIDVIEW}}/{{pages@DEGRIDVIEW}}-config.ts.hbs
浏览文件 @
c5774523
export const ViewConfig = {
viewCodeName: '
{{
page
.
codeName
}}
',
viewName: '
{{
page
.
name
}}
',
viewCaption: '
{{
page
.
caption
}}
',
gridRowActiveMode:
{{
page
.
gridRowActiveMode
}}
,
rowEditState:
{{#if
page
.
enableRowEdit
}}{{
page
.
rowEditDefault
}}{{else}}
false
{{/if}}
,
{{>
@macro
/
front-end
/
view
/
common
/
controlAction
.
hbs
}}
{{>
@macro
/
front-end
/
view
/
common
/
viewBaseConfig
.
hbs
}}
{{#
each
page
.
ctrls
as
|
ctrl
|
}}
{{#if
(
eq
ctrl
.
controlType
"GRID"
)
}}
{{>
@macro
/
front-end
/
view
/
common
/
controlAction
.
hbs
ctrl
=
ctrl
}}
{{/if}}
{{/
each
}}
};
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/page/{{appModules}}/{{pages@DEGRIDVIEW}}/{{pages@DEGRIDVIEW}}.vue.hbs
浏览文件 @
c5774523
...
...
@@ -38,23 +38,29 @@ const { state, handleCtrlEvent } = new GridView(ViewConfig).moduleInstall(props)
<template
v-slot:header-left
>
<IbizIconText
class=
"ibiz-view__caption"
size=
"large"
:text=
"state.viewCaption"
/>
</template>
{{#
page
.
ctrls
}}
{{#
eq
controlType
"TOOLBAR"
}}
<template
v-slot:header-right
>
<span>
工具栏部件
</span>
<IbizToolbar
mode=
"button"
name=
"
{{
lowerCase
codeName
}}
"
:actionModel=
"state.viewToolbarModel"
@
toolbarEvent=
"handleToolbarEvent"
/>
</template>
{{#
page
.
ctrls
}}
{{#
eq
controlType
"GRID"
}}
<
{{
codeName
}}
Grid
:context=
"state.context"
:rowEditState=
"state.rowEditState"
:rowActiveMode=
"state.gridRowActiveMode"
:showBusyIndicator=
"true"
:viewParams=
"state.viewParams"
:controlAction=
"state.controlsAction"
:viewSubject=
"state.viewSubject"
@
ctrlEvent=
"handleCtrlEvent"
></
{{
codeName
}}
Grid>
{{/
eq
}}
{{/
page
.
ctrls
}}
{{/
eq
}}
{{#
eq
controlType
"GRID"
}}
<
{{
codeName
}}
Grid
:context=
"state.context"
:rowEditState=
"state.rowEditState"
:rowActiveMode=
"state.gridRowActiveMode"
:showBusyIndicator=
"true"
:viewParams=
"state.viewParams"
:controlAction=
"state.controlsAction"
:viewSubject=
"state.viewSubject"
@
ctrlEvent=
"handleCtrlEvent"
></
{{
codeName
}}
Grid>
{{/
eq
}}
{{/
page
.
ctrls
}}
</IbizDefaultViewLayout>
</template>
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/service/app/app.ts
0 → 100644
浏览文件 @
c5774523
import
{
AppModal
}
from
'@/utils'
;
import
{
Http
,
deepCopy
}
from
'@ibiz-core'
;
import
{
OpenViewService
}
from
'@service'
;
import
{
AppFuncService
}
from
'@ibiz-core'
;
export
class
App
{
/**
* 打开视图服务
* @static
*/
public
static
openViewService
:
OpenViewService
=
OpenViewService
.
getInstance
();
/**
* 应用功能服务
* @static
*/
public
static
appFuncService
:
AppFuncService
=
AppFuncService
.
getInstance
();
/**
* 打开视图服务
* @static
*/
public
static
modalService
:
AppModal
=
AppModal
.
getInstance
();
/**
* 所有视图信息
*
* @static
*/
public
static
allViewInfos
:
any
;
/**
* 获取视图信息
*
* @static
* @param codeName 视图codeName
* @return {*}
*/
public
static
getViewInfo
(
codeName
:
string
){
return
App
.
allViewInfos
[
codeName
]
?
deepCopy
(
App
.
allViewInfos
[
codeName
])
:
undefined
;
}
/**
* 初始化
*
* @static
*/
public
static
async
init
(){
const
response
=
await
Http
.
getInstance
().
get
(
'./assets/json/views.json'
)
App
.
allViewInfos
=
response
.
data
;
}
}
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/service/index.ts
0 → 100644
浏览文件 @
c5774523
export
*
from
'./open-view/open-view-service'
;
export
*
from
'./app/app'
;
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/service/open-view/open-view-service.ts
0 → 100644
浏览文件 @
c5774523
import
{
deepCopy
,
IParam
,
RouteTool
}
from
'@ibiz-core'
;
import
{
App
}
from
'@service'
;
import
router
from
'@/router'
;
interface
View
extends
IParam
{
codeName
:
string
;
openMode
?:
string
;
}
interface
Params
extends
IParam
{
context
:
any
;
viewParams
:
any
;
}
/**
* 视图打开服务
* @export
* @class OpenViewService
*/
export
class
OpenViewService
{
/**
* 唯一实例
*
* @private
* @static
* @memberof OpenViewService
*/
private
static
readonly
instance
=
new
OpenViewService
();
/**
* 获取唯一实例
*
* @static
* @return {*} {OpenViewService}
* @memberof OpenViewService
*/
public
static
getInstance
():
OpenViewService
{
return
OpenViewService
.
instance
;
}
/**
* 打开视图
*
* @param view 视图信息
* @param params 相关参数
*/
public
openView
(
view
:
View
,
params
:
Params
)
{
// 获取详细视图信息
let
_view
:
any
=
App
.
getViewInfo
(
view
.
codeName
);
if
(
!
_view
)
{
console
.
error
(
`应用中不存在
${
view
.
codeName
}
视图`
);
return
;
}
// view的openMode覆盖配置的
if
(
view
.
openMode
)
{
_view
.
openMode
=
view
.
openMode
;
}
// 重定向视图走重定向逻辑,其他根据openMode打开
if
(
_view
.
redirectView
)
{
this
.
openRedirectView
(
_view
,
params
);
}
else
{
this
.
openByOpenMode
(
_view
,
params
);
}
}
/**
* 根据打开方式打开视图
*
* @param view 视图信息
* @param params 相关参数
*/
public
openByOpenMode
(
view
:
any
,
params
:
Params
)
{
const
{
openMode
}
=
view
;
const
{
viewParams
,
context
}
=
params
;
// 路由打开视图
if
(
openMode
==
'INDEXVIEWTAB'
||
openMode
==
'POPUPAPP'
)
{
// TODO 视图关系参数处理
const
routePath
=
RouteTool
.
buildUpRoutePath
(
view
,
context
,
viewParams
,
router
.
currentRoute
.
value
);
if
(
openMode
==
'INDEXVIEWTAB'
)
{
router
.
push
(
routePath
);
}
else
{
window
.
open
(
'./#'
+
routePath
,
'_blank'
);
}
}
else
if
(
openMode
==
'POPUPMODAL'
)
{
}
else
if
(
openMode
.
indexOf
(
'DRAWER'
)
!==
-
1
)
{
// TODO PMS上面抽屉DRAWER_TOP
}
else
if
(
openMode
==
'POPOVER'
)
{
// TODO 打开气泡卡片
}
else
{
console
.
error
(
`未支持
${
openMode
}
打开方式`
);
}
}
/**
* 重定向视图处理
*
* @param view 视图信息
* @param params 相关参数
*/
public
openRedirectView
(
view
:
any
,
params
:
Params
)
{
// TODO 重定向视图处理
}
}
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/utils/app-modal/app-modal.scss
0 → 100644
浏览文件 @
c5774523
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/utils/app-modal/app-modal.ts
0 → 100644
浏览文件 @
c5774523
import
{
createVNode
,
render
as
vueRender
}
from
'vue'
import
{
Subject
}
from
'rxjs'
;
import
Antd
from
'ant-design-vue'
;
// import { AppServiceBase, LogUtil } from 'ibiz-core';
import
AppModalComponent
from
"./app-modal.vue"
;
import
IbizLoading
from
'@components/render/IbizLoading.vue'
;
export
class
AppModal
{
/**
* 实例对象
*
* @private
* @static
* @memberof AppModal
*/
private
static
modal
=
new
AppModal
();
/**
* vue 实例
*
* @private
* @type {Vue}
* @memberof AppModal
*/
private
vueExample
!
:
any
;
/**
* store对象
*
* @private
* @memberof AppModal
*/
private
store
:
any
;
/**
* i18n对象
*
* @private
* @memberof AppModal
*/
private
i18n
:
any
;
/**
* router对象
*
* @private
* @memberof AppModal
*/
private
router
:
any
;
/**
* Creates an instance of AppModal.
*
* @memberof AppModal
*/
private
constructor
()
{
this
.
initBasicData
();
if
(
AppModal
.
modal
)
{
return
AppModal
.
modal
;
}
}
/**
* 获取单例对象
*
* @static
* @returns {AppModal}
* @memberof AppModal
*/
public
static
getInstance
():
AppModal
{
if
(
!
AppModal
.
modal
)
{
AppModal
.
modal
=
new
AppModal
();
}
return
AppModal
.
modal
;
}
/**
* 初始化基础数据
*
* @memberof AppModal
*/
private
initBasicData
()
{
// const appService = AppServiceBase.getInstance();
// this.store = appService.getAppStore();
// this.i18n = appService.getI18n();
// this.router = appService.getRouter();
}
/**
* 创建 Vue 实例对象
*
* @private
* @param \{{ name: string, title: string, fileDir: string, width?: number, height?: number,isfullscreen?:boolean }} view 视图数据
* @param {*} [context={}] 应用上下文参数
* @param {*} [viewparams={}] 视图参数
* @param {*} [navdatas=[]] 导航数据
* @param {string} uuid 标识
* @returns {Subject<any>}
* @memberof AppModal
*/
private
createVueExample
(
view
:
{
name
:
string
,
title
:
string
,
fileDir
:
string
,
width
?:
number
,
height
?:
number
,
isfullscreen
?:
boolean
,
customClass
?:
string
},
context
:
any
=
{},
viewparams
:
any
=
{},
navdatas
:
Array
<
any
>
=
[],
uuid
:
string
):
Subject
<
any
>
{
const
self
:
any
=
this
;
if
(
!
self
.
store
||
!
self
.
i18n
)
{
self
.
initBasicData
();
}
try
{
let
subject
:
null
|
Subject
<
any
>
=
new
Subject
<
any
>
();
let
props
=
{
view
:
view
,
viewdata
:
context
,
viewparams
:
viewparams
,
navdatas
:
navdatas
,
uuid
:
uuid
,
subject
:
subject
};
let
dir
=
view
.
fileDir
.
replace
(
/@/
,
'../../'
)
const
AsyncComp
=
defineAsyncComponent
({
// 工厂函数
loader
:
()
=>
import
(
dir
),
// 加载异步组件时要使用的组件
loadingComponent
:
IbizLoading
,
// 在显示 loadingComponent 之前的延迟 | 默认值:200(单位 ms)
delay
:
0
,
});
if
(
AsyncComp
)
{
const
component
=
AppModalComponent
;
const
div
=
document
.
createElement
(
'div'
);
document
.
body
.
appendChild
(
div
);
const
app
=
createApp
(
component
,
{
close
:
()
=>
{
document
.
body
.
removeChild
(
div
);
app
.
unmount
();
},
...
props
}
);
app
.
component
(
view
.
name
,
AsyncComp
);
const
vm
=
app
.
use
(
Antd
).
mount
(
div
);
this
.
vueExample
=
vm
;
}
return
subject
;
}
catch
(
error
)
{
console
.
error
(
error
);
return
new
Subject
<
any
>
();
}
}
/**
* 打开模态视图
*
* @param \{{ name: string, title: string, fileDir:string, width?: number, height?: number }} view 视图
* @param {*} [viewParam={}] 应用上下文参数
* @param {any[]} deResParameters 关系实体参数对象
* @param {any[]} parameters 当前应用视图参数对象
* @param {any[]} args 多项数据
* @param {*} [data={}] 行为参数
* @param {any[]} navdatas 导航数据
* @returns {Subject<any>}
* @memberof AppModal
*/
public
openModal
(
view
:
{
name
:
string
,
title
:
string
,
fileDir
:
string
,
width
?:
number
,
height
?:
number
,
isfullscreen
?:
boolean
,
customClass
?:
string
},
context
:
any
=
{},
data
:
any
=
{},
navdatas
:
Array
<
any
>
=
[]):
Subject
<
any
>
{
try
{
let
viewdata
:
any
=
{};
Object
.
assign
(
viewdata
,
JSON
.
parse
(
JSON
.
stringify
(
context
)));
const
uuid
=
this
.
getUUID
();
const
subject
=
this
.
createVueExample
(
view
,
viewdata
,
data
,
navdatas
,
uuid
);
return
subject
;
}
catch
(
error
)
{
console
.
log
(
error
);
return
new
Subject
<
any
>
();
}
}
/**
* 获取节点标识
*
* @private
* @returns {string}
* @memberof AppModal
*/
private
getUUID
():
string
{
function
s4
()
{
return
Math
.
floor
((
1
+
Math
.
random
())
*
0x10000
).
toString
(
16
).
substring
(
1
);
}
return
s4
()
+
s4
()
+
'-'
+
s4
()
+
'-'
+
s4
()
+
'-'
+
s4
()
+
'-'
+
s4
()
+
s4
()
+
s4
();
}
}
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/utils/app-modal/app-modal.vue
0 → 100644
浏览文件 @
c5774523
<
script
setup
lang=
"ts"
>
import
{
Subject
}
from
'rxjs'
;
import
{
Ref
,
ref
}
from
'vue'
;
interface
AppModalProps
{
/**
* @description 视图
*/
view
:
any
;
/**
* @description 视图上下文参数
*/
viewdata
?:
any
;
/**
* @description 视图参数
*/
viewparams
?:
any
;
/**
* @description 导航数据
*/
navdatas
?:
any
;
/**
* @description 数据传递对象
*/
subject
?:
any
/**
* @description 关闭回调
*/
close
:
Function
;
}
const
props
=
withDefaults
(
defineProps
<
AppModalProps
>
(),
{
view
:{},
viewdata
:
{},
viewparams
:
{},
navdatas
:
[],
});
/**
* 是否显示
*/
let
isShow
:
Ref
<
boolean
>
=
ref
(
false
);
/**
* 是否满屏
*/
let
isfullscreen
:
Ref
<
boolean
>
=
ref
(
false
);
/**
* 零时结果
*/
let
tempResult
=
{
ret
:
''
};
/**
* 视图名称
*/
let
viewname
:
Ref
<
string
>
=
ref
(
''
);
/**
* 视图标题
*/
let
title
:
string
=
''
;
/**
* 视图宽度
*/
let
width
:
Ref
<
number
>
=
ref
(
0
);
/**
* 视图高度
*/
let
height
:
Ref
<
number
>
=
ref
(
0
);
/**
* 视图层级
*/
let
zIndex
:
any
=
null
;
/**
* 视图样式
*/
let
style
:
any
=
{};
/**
* 暴露subject
*/
const
getSubject
=
()
=>
{
return
props
.
subject
;
}
/**
* 监听isShow
*/
watch
(
()
=>
isShow
,
(
newVal
,
oldVal
)
=>
{
if
(
newVal
!==
oldVal
&&
newVal
.
value
==
false
)
{
zIndex
-=
100
;
// this.$store.commit('updateZIndex', this.zIndex);
}
},
);
/**
* Vue生命周期beforeMount
*/
onBeforeMount
(()
=>
{
if
(
props
.
view
)
{
viewname
.
value
=
props
.
view
.
name
;
title
=
props
.
view
.
title
;
isfullscreen
.
value
=
props
.
view
.
isfullscreen
?
props
.
view
.
isfullscreen
:
false
;
if
(
isfullscreen
.
value
)
{
Object
.
assign
(
style
,
{
height
:
'auto'
});
}
else
{
if
(
!
props
.
view
.
width
||
props
.
view
.
width
===
0
||
Object
.
is
(
props
.
view
.
width
,
'0px'
))
{
let
viewWidth
=
600
;
if
(
window
&&
window
.
innerWidth
>
100
)
{
if
(
window
.
innerWidth
>
100
)
{
viewWidth
=
window
.
innerWidth
-
100
;
}
else
{
viewWidth
=
window
.
innerWidth
;
}
}
width
.
value
=
viewWidth
;
}
else
{
width
.
value
=
props
.
view
.
width
;
}
if
(
props
.
view
.
height
&&
!
Object
.
is
(
props
.
view
.
height
,
'0px'
))
{
Object
.
assign
(
style
,
{
height
:
props
.
view
.
height
+
'px'
});
height
.
value
=
props
.
view
.
height
;
}
else
{
height
.
value
=
800
;
}
}
}
});
/**
* Vue生命周期mounted
*/
onMounted
(()
=>
{
// const curmodal: any = this.$refs.curmodal;
// const zIndex = this.$store.getters.getZIndex();
// if (zIndex) {
// this.zIndex = zIndex + 100;
// this.$store.commit('updateZIndex', this.zIndex);
// }
isShow
.
value
=
true
;
});
/**
* 视图关闭
*/
const
close
=
(
result
:
any
)
=>
{
if
(
result
&&
Array
.
isArray
(
result
)
&&
result
.
length
>
0
)
{
if
(
zIndex
)
{
// this.$store.commit('updateZIndex', zIndex - 100);
}
Object
.
assign
(
tempResult
,
{
ret
:
'OK'
},
{
datas
:
JSON
.
parse
(
JSON
.
stringify
(
result
))
});
}
isShow
.
value
=
false
;
};
/**
* 视图数据变化
*/
const
dataChange
=
(
result
:
any
)
=>
{
tempResult
=
{
ret
:
''
};
if
(
result
&&
Array
.
isArray
(
result
)
&&
result
.
length
>
0
)
{
Object
.
assign
(
tempResult
,
{
ret
:
'OK'
},
{
datas
:
JSON
.
parse
(
JSON
.
stringify
(
result
))
});
}
};
/**
* 视图数据激活
*/
const
viewDatasActivated
=
(
result
:
any
)
=>
{
if
(
result
&&
Array
.
isArray
(
result
)
&&
result
.
length
>
0
)
{
close
(
result
);
}
};
/**
* 模态显示隐藏切换回调
*/
const
onVisibleChange
=
(
$event
:
any
)
=>
{
handleShowState
(
$event
);
};
/**
* 处理数据,向外抛值
*/
const
handleShowState
=
(
$event
:
any
)
=>
{
if
(
props
.
subject
&&
tempResult
)
{
props
.
subject
.
next
(
tempResult
);
}
setTimeout
(()
=>
{
props
.
close
();
},
500
);
};
</
script
>
<
template
>
<a-modal
ref=
"curModal"
class=
"app-modal"
v-model:visible=
"isShow"
:title=
"title"
:footer=
"null"
:maskClosable=
"true"
:destroyOnClose=
"true"
:width=
"width"
:bodyStyle=
"style"
@
cancel=
"onVisibleChange($event)"
>
<component
:is=
"viewname"
class=
"viewcontainer2"
:width=
"width"
:height=
"height"
:viewdata=
"JSON.stringify(viewdata)"
:viewparam=
"JSON.stringify(viewparams)"
:navdatas=
"navdatas"
:viewDefaultUsage=
"false"
:noViewCaption=
"true"
@
viewdataschange=
"dataChange($event)"
@
viewdatasactivated=
"viewDatasActivated($event)"
@
close=
"close($event)"
:ref=
"viewname"
></component>
</a-modal>
</
template
>
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/utils/index.ts
0 → 100644
浏览文件 @
c5774523
export
{
AppModal
}
from
'./app-modal/app-modal'
;
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/widgets/{{appEntities}}/{{ctrls@APPMENU}}-menu/{{ctrls@APPMENU}}-menu-config.ts.hbs
浏览文件 @
c5774523
...
...
@@ -9,7 +9,5 @@ export const CtrlConfig = {
{{>
(
lookup
'MENUITEM'
)
item
=
item
}}
{{/
each
}}
],
funcs: [
],
funcs: [],
};
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/widgets/{{appEntities}}/{{ctrls@FORM}}-form/{{ctrls@FORM}}-form-config.ts.hbs
浏览文件 @
c5774523
...
...
@@ -56,10 +56,10 @@ export class ControlVO extends ControlVOBase {
{{/
neq
}}
{{/
each
}}
// 表单里没有映射实体属性的字段
// 表单里没有映射实体属性的字段
(srfuf除外)
{{#
each
ctrl
.
psDEFormItems
as
|
formItem
|
}}
{{#
eq
formItem
.
psAppDEField
null
}}
{{#
if
(
and
(
eq
formItem
.
psAppDEField
null
)
(
neq
formItem
.
id
"srfuf"
))
}}
{{
lowerCase
formItem
.
id
}}
: any;
{{/
eq
}}
{{/
if
}}
{{/
each
}}
}
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/widgets/{{appEntities}}/{{ctrls@GRID}}-grid/{{ctrls@GRID}}-grid-config.ts.hbs
浏览文件 @
c5774523
...
...
@@ -43,6 +43,17 @@ export const CtrlConfig = {
enablePagingBar: false,
pagination: false,
{{/if}}
uAColumnModel:[
{{#
each
ctrl
.
psDEGridColumns
as
|
column
|
}}
{{#if
(
eq
column
.
columnType
'UAGRIDCOLUMN'
)
}}
{{#
each
column
.
psDEUIActionGroup
.
psUIActionGroupDetails
as
|
action
|
}}
{{#
action
}}
{ name: "
{{
name
}}
", caption: "
{{
psUIAction
.
caption
}}
", showIcon:
{{
showIcon
}}
, showCaption:
{{
showCaption
}}
, separator:
{{
addSeparator
}}
, uIActionTag: "
{{
psUIAction
.
uIActionTag
}}
", noPrivDisplayMode:
{{#if
psUIAction
.
noPrivDisplayMode
}}{{
psUIAction
.
noPrivDisplayMode
}}{{else}}
6
{{/if}}
, disabled: false, visabled: true,
{{#if
psUIAction
.
psSysImage
}}{{#if
psUIAction
.
psSysImage
.
imagePath
}}
imgPath: "
{{
psUIAction
.
psSysImage
.
imagePath
}}
",
{{/if}}{{#if
psUIAction
.
psSysImage
.
cssClass
}}
iconCls: "
{{
psUIAction
.
psSysImage
.
cssClass
}}
",
{{/if}}{{/if}}
},
{{/
action
}}
{{/
each
}}
{{/if}}
{{/
each
}}
],
columnsModel: [
{{#if
ctrl
.
enableGroup
}}
{{#if
ctrl
.
groupPSAppDEField
}}
...
...
@@ -58,11 +69,7 @@ export const CtrlConfig = {
{{/if}}
{{/if}}
{{#
each
ctrl
.
psDEGridColumns
as
|
column
|
}}
{{#if
@last
}}
{{>
(
lookup
'COLUMNMODEL'
)
item
=
column
lastColumn
=
true
}}
{{else}}
{{>
(
lookup
'COLUMNMODEL'
)
item
=
column
lastColumn
=
false
}}
{{/if}}
{{>
(
lookup
'COLUMNMODEL'
)
item
=
column
}}
{{/
each
}}
]
]
,
};
\ No newline at end of file
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/widgets/{{appEntities}}/{{ctrls@GRID}}-grid/{{ctrls@GRID}}-grid.vue.hbs
浏览文件 @
c5774523
...
...
@@ -32,7 +32,7 @@ interface CtrlEmit {
}
const
emit
=
defineEmits
<
CtrlEmit
>
();
// 安装功能模块,提供状态和能力方法
const
{
state
,
load
,
handleEditorEvent
}
=
new
GridControl
(
CtrlConfig
).
moduleInstall
(
props
);
const
{
state
,
load
,
handleEditorEvent
,
handleToolbarEvent
}
=
new
GridControl
(
CtrlConfig
).
moduleInstall
(
props
);
// 表格滚动条配置
const
gridScrollOption
=
computed
(()
=>
{
return
{
...
...
@@ -72,7 +72,7 @@ const customRow = (record: IParam, index: number) => {
}
// 表格选择功能配置
const
rowSelectionOption
=
computed
(()
=>
{
if
(
props
.
rowEditState
||
props
.
selectFirstDefault
)
{
if
(
props
.
selectFirstDefault
)
{
return
false
;
}
return
{
...
...
@@ -139,19 +139,21 @@ const handleChange = (pagination: IParam, filters: IParam, sorter: IParam, data:
</template>
{{#
neq
ctrl
.
aggMode
'NONE'
}}
<template
#
summary
>
<a-table-summary-row>
<a-table-summary-cell>
数据聚合
</a-table-summary-cell>
<a-table-summary-cell
v-for=
"(item, index) in state.dataAgg"
:key=
"index"
>
<span>
\{{item}}
</span>
</a-table-summary-cell>
</a-table-summary-row>
<a-table-summary>
<a-table-summary-row>
<a-table-summary-cell
align=
"center"
>
数据聚合
</a-table-summary-cell>
<a-table-summary-cell
v-for=
"(item, index) in state.dataAgg"
:key=
"index"
>
<span>
\{{item}}
</span>
</a-table-summary-cell>
</a-table-summary-row>
</a-table-summary>
</template>
{{/
neq
}}
</a-table>
</template>
<style
lang=
"scss"
>
.ibiz-grid
{
margin
:
20px
;
height
:
100%
;
.table-striped
{
background-color
:
#fafafa
;
}
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录