Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibizlab-generator
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibizlab-generator
提交
408ba038
提交
408ba038
编写于
2月 10, 2022
作者:
Mosher
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update:表格列代码表值格式化支持
上级
87e8d584
变更
3
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
179 行增加
和
3 行删除
+179
-3
grid-column.hbs
...l/r7/@macro/front-end/widgets/grid-detail/grid-column.hbs
+43
-2
app-code-list-config.ts.hbs
...7/app_{{apps}}/src/app/config/app-code-list-config.ts.hbs
+3
-1
app-codelist.vue
...pl/r7/app_{{apps}}/src/components/common/app-codelist.vue
+133
-0
未找到文件。
modules/ibizlab-generator-core/src/main/resources/templ/r7/@macro/front-end/widgets/grid-detail/grid-column.hbs
浏览文件 @
408ba038
{{#
*
inline
"COLUMNTEXT"
}}
{{#if
(
and
item
.
psAppCodeList
(
eq
item
.
cLConvertMode
'FRONT'
))
}}
<AppCodelist
codeListTag=
"
{{
item
.
psAppCodeList
.
codeListTag
}}
"
:context=
"state.context"
:data=
"record"
:value=
"text"
:viewParams=
"state.viewParams"
></AppCodelist>
{{else
if
(
and
item
.
enableLinkView
item
.
linkPSAppView
)
}}
{{!-- 链接视图暂未支持 --}}
<span
class=
"text"
>
\{{text}}
</span>
{{else}}
{{#if
item
.
valueFormat
}}
<AppSpan
name=
"
{{
lowerCase
item
.
codeName
}}
"
:value=
"text"
{{#if
item
.
psAppDEField
}}
:dataType=
"
{{
item
.
psAppDEField
.
stdDataType
}}
"
{{/if}}
valueFormat=
"
{{
item
.
valueFormat
}}
"
:precision=
"
{{#if
item
.
precision
}}{{
item
.
precision
}}{{else}}
0
{{/if}}
"
></AppSpan>
{{else}}
{{!-- 自定义代码暂未支持, userTag暂未支持 --}}
<span
class=
"text"
>
\{{text}}
</span>
{{/if}}
{{/if}}
{{/
inline
}}
{{#if
(
eq
item
.
columnType
'GROUPGRIDCOLUMN'
)
}}
{{#
each
item
.
psDEGridColumns
as
|
column
|
}}
{{>
@macro
/
front-end
/
widgets
/
grid-detail
/
include-grid
.
hbs
type
=
"COLUMN"
item
=
column
}}
...
...
@@ -22,11 +51,23 @@
</AppFormItem>
</div>
<div
v-else
class=
"text-cell"
>
<span
class=
"text"
>
\{{text}}
</span>
{{#if
(
and
item
.
psDEUIAction
item
.
psDEUIAction
.
uIActionTag
)
}}
<a
style=
"{ display: 'block' }"
@
click=
"columnUIAction"
>
{{>
COLUMNTEXT
}}
</a>
{{else}}
{{>
COLUMNTEXT
}}
{{/if}}
</div>
{{else}}
<div
class=
"text-cell"
>
<span
class=
"text"
>
\{{text}}
</span>
{{#if
(
and
item
.
psDEUIAction
item
.
psDEUIAction
.
uIActionTag
)
}}
<a
style=
"{ display: 'block' }"
@
click=
"columnUIAction"
>
{{>
COLUMNTEXT
}}
</a>
{{else}}
{{>
COLUMNTEXT
}}
{{/if}}
</div>
{{/if}}
{{else
if
(
eq
item
.
columnType
'UAGRIDCOLUMN'
)
}}
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/app/config/app-code-list-config.ts.hbs
浏览文件 @
408ba038
...
...
@@ -24,7 +24,9 @@ export const AppCodeListConfig:IParam = {
{{#if
appCodeList
.
psCodeItems
}}
'items':[
{{#
each
appCodeList
.
psCodeItems
as
|
codeItem
|
}}
{'value':
{{#if
appCodeList
.
codeItemValueNumber
}}{{
codeItem
.
value
}}{{else}}
'
{{
codeItem
.
value
}}
'
{{/if}}
, 'text': '
{{
codeItem
.
text
}}
','codeName': '
{{
codeItem
.
codeName
}}
' }
{{#
unless
@last
}}
,
{{/
unless
}}
{{#
codeItem
}}
{'value':
{{#if
appCodeList
.
codeItemValueNumber
}}{{
value
}}{{else}}
'
{{
value
}}
'
{{/if}}
, 'text': '
{{
text
}}
','codeName': '
{{
codeName
}}
','textClass': '
{{#if
textCls
}}{{
textCls
}}{{else
if
psSysCss
}}{{
psSysCss
.
cssName
}}{{/if}}
',
{{#if
psSysImage
}}{{#if
psSysImage
.
cssClass
}}
'cssClass': '
{{
psSysImage
.
cssClass
}}
',
{{/if}}{{#if
psSysImage
.
imagePath
}}
'imagePath': '
{{
psSysImage
.
imagePath
}}
'
{{/if}}{{/if}}
}
{{#
unless
@last
}}
,
{{/
unless
}}
{{/
codeItem
}}
{{/
each
}}
]
{{/if}}
...
...
modules/ibizlab-generator-core/src/main/resources/templ/r7/app_{{apps}}/src/components/common/app-codelist.vue
0 → 100644
浏览文件 @
408ba038
<
script
setup
lang=
"ts"
>
import
{
AppCodeListConfig
}
from
'@/app/config'
;
import
{
deepCopy
,
IParam
,
isExistAndNotEmpty
}
from
'@core'
;
import
{
ref
,
Ref
}
from
'vue'
;
interface
Props
{
codeListTag
:
string
,
context
:
any
,
data
?:
any
,
localContext
?:
any
,
localParam
?:
any
,
name
:
string
,
textOnly
?:
boolean
,
textSeparator
?:
string
value
:
any
,
viewParams
?:
any
,
}
const
props
=
withDefaults
(
defineProps
<
Props
>
(),
{
textOnly
:
true
,
textSeparator
:
'、'
});
// 代码表服务
const
codeListService
=
App
.
getCodeListService
();
// 显示文本值
const
text
:
Ref
<
string
>
=
ref
(
''
);
// 代码表项
const
items
:
Ref
<
any
[]
>
=
ref
([]);
// 默认值分隔符
const
valueSeparator
:
string
=
','
;
// 数据处理
const
handleData
=
async
()
=>
{
const
tag
=
props
.
codeListTag
;
if
(
!
tag
)
{
return
;
}
const
context
=
deepCopy
(
props
.
context
);
const
viewParams
=
deepCopy
(
props
.
viewParams
);
handleParams
(
context
,
viewParams
);
codeListService
.
getCodeListItems
({
tag
,
context
,
viewParams
}).
then
((
codeListItems
:
IParam
[])
=>
{
items
.
value
=
getSelectedItems
(
codeListItems
);
if
(
props
.
textOnly
)
{
text
.
value
=
getText
();
}
}).
catch
((
error
)
=>
{
console
.
warn
(
`代码表
${
tag
}
获取数据项失败`
);
})
}
const
handleParams
=
(
context
:
IParam
,
viewParams
:
IParam
)
=>
{
}
// 获取文本
const
getText
=
():
string
=>
{
let
text
:
string
=
''
;
items
.
value
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
if
(
index
!==
0
)
{
text
+=
props
.
textSeparator
;
}
text
+=
item
.
text
;
});
return
isExistAndNotEmpty
(
text
)
?
text
:
'---'
;
}
// 获取选中数据
const
getSelectedItems
=
(
codeListItems
:
IParam
[]):
any
[]
=>
{
const
codeList
=
AppCodeListConfig
[
props
.
codeListTag
];
const
_valueSeparator
=
codeList
.
valueSeparator
||
valueSeparator
;
// 值的集合
let
values
:
any
[]
=
[];
// 选中代码表项的集合
const
selectedItems
:
any
[]
=
[];
if
(
codeList
.
orMode
==
'NUM'
){
codeListItems
.
forEach
((
_item
:
any
,
index
:
number
)
=>
{
const
nValue
=
parseInt
((
props
.
value
as
any
),
10
);
if
((
parseInt
(
_item
.
value
,
10
)
&
nValue
)
>
0
){
selectedItems
.
push
(
deepCopy
(
_item
));
}
});
}
else
{
// 数值直接赋值
if
(
typeof
props
.
value
===
'number'
){
values
=
[
props
.
value
];
}
else
{
values
=
[...
props
.
value
.
toString
().
split
(
_valueSeparator
)];
}
values
.
forEach
((
v
:
any
)
=>
{
let
selected
=
codeListItems
.
find
((
_item
:
any
)
=>
_item
.
value
==
v
);
if
(
selected
)
{
selectedItems
.
push
(
selected
);
}
else
{
selectedItems
.
push
({
text
:
v
});
}
})
}
return
selectedItems
;
}
// 部件挂载
onMounted
(()
=>
{
handleData
();
})
</
script
>
<
template
>
<div
class=
"app-codelist"
>
<span
v-if=
"textOnly"
>
{{
text
}}
</span>
<template
v-else
>
<template
v-if=
"items.length == 0"
>
<span>
---
</span>
</
template
>
<
template
v-else
>
<template
v-for=
"(item, index) in items"
:key=
"index"
>
<span
class=
"app-codelist-item"
>
<i
v-if=
"item.cssClass"
:class=
"item.cssClass"
></i>
<img
v-if=
"item.imagePath"
:src=
"item.imagePath"
/>
<span
:class=
"item.textClass"
:style=
"item.color ?
{ color: item.color } : ''">
{{
item
.
text
}}
</span>
<span
v-if=
"index !== items.length - 1"
>
{{
textSeparator
}}
</span>
</span>
</
template
>
</template>
</template>
</div>
</template>
\ No newline at end of file
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录