Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
iBiz-Vue-R7-Res
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
iBiz-R7前端标准模板
iBiz-Vue-R7-Res
提交
e46f23d8
提交
e46f23d8
编写于
12月 13, 2022
作者:
hisoka0728
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update: 重新提交模板
上级
a6b1e4d9
变更
16
显示空白字符变更
内嵌
并排
正在显示
16 个修改的文件
包含
300 行增加
和
137 行删除
+300
-137
codelist-service.ts
src/codelist/codelist-service.ts
+92
-83
app-file-upload.vue
src/components/app-file-upload/app-file-upload.vue
+1
-1
app-form-item.less
src/components/app-form-item/app-form-item.less
+2
-1
app-menu-item.vue
src/components/app-menu-item/app-menu-item.vue
+5
-5
app-org-select.vue
src/components/app-org-select/app-org-select.vue
+2
-2
app-quick-menus.vue
src/components/app-quick-menus/app-quick-menus.vue
+2
-2
app-radio-group.vue
src/components/app-radio-group/app-radio-group.vue
+126
-33
app-rate.less
src/components/app-rate/app-rate.less
+4
-1
app-rich-text-editor.vue
src/components/app-rich-text-editor/app-rich-text-editor.vue
+4
-0
disk-file-upload.vue
src/components/disk-file-upload/disk-file-upload.vue
+11
-1
input-box.vue
src/components/input-box/input-box.vue
+26
-0
tab-exp-view-engine.ts
src/engine/view/tab-exp-view-engine.ts
+1
-1
view-engine.ts
src/engine/view/view-engine.ts
+4
-4
default.less
src/styles/default.less
+0
-1
template.html
src/template.html
+18
-0
http.d.ts
src/utils/types/http.d.ts
+2
-2
未找到文件。
src/codelist/codelist-service.ts
浏览文件 @
e46f23d8
...
...
@@ -39,7 +39,7 @@ export default class CodeListService {
* @type {Map<string,any>}
* @memberof CodeListService
*/
public
static
codelistCache
:
Map
<
string
,
any
>
=
new
Map
();
public
static
codelistCache
:
Map
<
string
,
any
>
=
new
Map
();
/**
* 动态代码表缓存(已完成)
...
...
@@ -47,7 +47,7 @@ export default class CodeListService {
* @type {Map<string,any>}
* @memberof CodeListService
*/
public
static
codelistCached
:
Map
<
string
,
any
>
=
new
Map
();
public
static
codelistCached
:
Map
<
string
,
any
>
=
new
Map
();
/**
* 数据服务基类
...
...
@@ -55,7 +55,7 @@ export default class CodeListService {
* @type {Minorentity}
* @memberof CodeListService
*/
public
entityService
:
EntityService
=
new
EntityService
();
public
entityService
:
EntityService
=
new
EntityService
();
/**
* 获取代码表服务
...
...
@@ -79,15 +79,15 @@ export default class CodeListService {
* @returns {Promise<any[]>}
* @memberof CodeListService
*/
public
async
getDataItems
(
codelist
:
any
,
context
?:
any
,
data
?:
any
,
isloading
?:
boolean
)
{
let
dataItems
:
Array
<
any
>
=
[];
try
{
if
(
codelist
.
tag
&&
Object
.
is
(
codelist
.
type
,
"STATIC"
))
{
public
async
getDataItems
(
codelist
:
any
,
context
?:
any
,
data
?:
any
,
isloading
?:
boolean
)
{
let
dataItems
:
Array
<
any
>
=
[];
try
{
if
(
codelist
.
tag
&&
Object
.
is
(
codelist
.
type
,
"STATIC"
))
{
dataItems
=
await
this
.
getStaticItems
(
codelist
.
tag
);
}
else
{
dataItems
=
await
this
.
getItems
(
codelist
.
tag
,
codelist
.
context
,
codelist
.
viewparam
,
codelist
.
isloading
);
}
else
{
dataItems
=
await
this
.
getItems
(
codelist
.
tag
,
codelist
.
context
,
codelist
.
viewparam
,
codelist
.
isloading
);
}
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
warn
(
"代码表加载异常"
+
error
);
}
return
dataItems
;
...
...
@@ -100,8 +100,8 @@ export default class CodeListService {
* @returns {Promise<any[]>}
* @memberof CodeListService
*/
public
getStaticItems
(
tag
:
string
):
Promise
<
any
[]
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
public
getStaticItems
(
tag
:
string
):
Promise
<
any
[]
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
const
codelist
=
this
.
$store
.
getters
.
getCodeList
(
tag
);
if
(
codelist
)
{
let
items
:
Array
<
any
>
=
[...
JSON
.
parse
(
JSON
.
stringify
(
codelist
.
items
))];
...
...
@@ -117,17 +117,33 @@ export default class CodeListService {
* @returns {Promise<any[]>}
* @memberof CodeListService
*/
public
getPredefinedItems
(
tag
:
string
,
data
?:
any
,
isloading
?:
boolean
):
Promise
<
any
[]
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
this
.
entityService
.
getPredefinedCodelist
(
tag
).
then
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
===
200
&&
response
.
data
&&
response
.
data
.
items
)
{
resolve
(
response
.
data
.
items
);
}
else
{
resolve
([]);
}
}).
catch
((
error
:
any
)
=>
{
resolve
([]);
});
public
getPredefinedItems
(
tag
:
string
,
data
?:
any
,
isloading
?:
boolean
):
Promise
<
any
[]
>
{
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
if
(
CodeListService
.
codelistCached
.
get
(
`
${
tag
}
`
)){
let
items
:
any
=
CodeListService
.
codelistCached
.
get
(
`
${
tag
}
`
).
items
;
if
(
items
.
length
>
0
)
resolve
(
items
);
}
const
callback
:
Function
=
(
tag
:
string
,
promise
:
Promise
<
any
>
)
=>
{
promise
.
then
((
res
:
any
)
=>
{
let
result
:
any
=
res
.
data
;
if
(
result
.
items
&&
result
.
items
.
length
>
0
){
CodeListService
.
codelistCached
.
set
(
`
${
tag
}
`
,{
items
:
result
.
items
});
return
resolve
(
result
.
items
);
}
else
{
return
resolve
([]);
}
}).
catch
((
result
:
any
)
=>
{
return
reject
(
result
);
})
}
// 加载中,UI又需要数据,解决连续加载同一代码表问题
if
(
CodeListService
.
codelistCache
.
get
(
`
${
tag
}
`
)){
callback
(
tag
,
CodeListService
.
codelistCache
.
get
(
`
${
tag
}
`
));
}
else
{
let
result
:
Promise
<
any
>
=
this
.
entityService
.
getPredefinedCodelist
(
tag
);
CodeListService
.
codelistCache
.
set
(
`
${
tag
}
`
,
result
);
callback
(
tag
,
result
);
}
})
}
...
...
@@ -139,77 +155,70 @@ export default class CodeListService {
* @returns {Promise<any[]>}
* @memberof CodeListService
*/
public
getItems
(
tag
:
string
,
context
:
any
=
{},
data
?:
any
,
isloading
?:
boolean
):
Promise
<
any
[]
>
{
public
getItems
(
tag
:
string
,
context
:
any
=
{},
data
?:
any
,
isloading
?:
boolean
):
Promise
<
any
[]
>
{
let
_this
:
any
=
this
;
if
(
context
&&
context
.
srfsessionid
)
{
if
(
context
&&
context
.
srfsessionid
)
{
delete
context
.
srfsessionid
;
}
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
this
.
getService
(
tag
).
then
((
codelist
:
any
)
=>
{
let
isEnableCache
:
boolean
=
codelist
.
isEnableCache
;
let
cacheTimeout
:
any
=
codelist
.
cacheTimeout
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
this
.
getService
(
tag
).
then
((
codelist
:
any
)
=>
{
if
(
Object
.
is
(
codelist
.
predefinedType
,
"RUNTIME"
)){
this
.
getPredefinedItems
(
tag
).
then
((
res
:
any
)
=>
{
resolve
(
res
);
})
return
;
}
let
isEnableCache
:
boolean
=
codelist
.
isEnableCache
;
let
cacheTimeout
:
any
=
codelist
.
cacheTimeout
;
// 启用缓存
if
(
isEnableCache
)
{
const
callback
:
Function
=
(
context
:
any
=
{},
data
:
any
=
{},
tag
:
string
,
promise
:
Promise
<
any
>
)
=>
{
const
callbackKey
:
string
=
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
;
promise
.
then
((
result
:
any
)
=>
{
if
(
result
.
length
>
0
)
{
CodeListService
.
codelistCached
.
set
(
callbackKey
,
{
items
:
result
});
if
(
isEnableCache
)
{
const
callback
:
Function
=
(
context
:
any
=
{},
data
:
any
=
{},
tag
:
string
,
promise
:
Promise
<
any
>
)
=>
{
const
callbackKey
:
string
=
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
;
promise
.
then
((
result
:
any
)
=>
{
if
(
result
.
length
>
0
)
{
CodeListService
.
codelistCached
.
set
(
callbackKey
,{
items
:
result
});
CodeListService
.
codelistCache
.
delete
(
callbackKey
);
return
resolve
(
result
);
}
else
{
}
else
{
return
resolve
([]);
}
}).
catch
((
result
:
any
)
=>
{
}).
catch
((
result
:
any
)
=>
{
return
reject
(
result
);
})
}
// 加载完成,从本地缓存获取
const
key
:
string
=
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
;
if
(
CodeListService
.
codelistCached
.
get
(
key
))
{
let
items
:
any
=
CodeListService
.
codelistCached
.
get
(
key
).
items
;
if
(
items
.
length
>
0
)
{
if
(
new
Date
().
getTime
()
<=
codelist
.
getExpirationTime
())
{
const
key
:
string
=
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
;
if
(
CodeListService
.
codelistCached
.
get
(
key
))
{
let
items
:
any
=
CodeListService
.
codelistCached
.
get
(
key
).
items
;
if
(
items
.
length
>
0
)
{
if
(
new
Date
().
getTime
()
<=
codelist
.
getExpirationTime
())
{
return
resolve
(
items
);
}
}
}
if
(
codelist
)
{
// 加载中,UI又需要数据,解决连续加载同一代码表问题
if
(
CodeListService
.
codelistCache
.
get
(
key
))
{
callback
(
context
,
data
,
tag
,
CodeListService
.
codelistCache
.
get
(
key
));
}
else
{
let
result
:
Promise
<
any
>
;
if
(
Object
.
is
(
codelist
.
predefinedType
,
"RUNTIME"
))
{
result
=
this
.
getPredefinedItems
(
tag
);
}
else
{
result
=
codelist
.
getItems
(
context
,
data
,
isloading
);
}
CodeListService
.
codelistCache
.
set
(
key
,
result
);
if
(
CodeListService
.
codelistCache
.
get
(
key
)){
callback
(
context
,
data
,
tag
,
CodeListService
.
codelistCache
.
get
(
key
));
}
else
{
let
result
:
Promise
<
any
>
=
codelist
.
getItems
(
context
,
data
,
isloading
);
CodeListService
.
codelistCache
.
set
(
key
,
result
);
codelist
.
setExpirationTime
(
new
Date
().
getTime
()
+
cacheTimeout
);
callback
(
context
,
data
,
tag
,
result
);
callback
(
context
,
data
,
tag
,
result
);
}
}
}
else
{
}
else
{
if
(
codelist
)
{
if
(
Object
.
is
(
codelist
.
predefinedType
,
"RUNTIME"
))
{
this
.
getPredefinedItems
(
tag
).
then
((
res
:
any
)
=>
{
resolve
(
res
);
}).
catch
((
error
:
any
)
=>
{
Promise
.
reject
([]);
})
}
else
{
codelist
.
getItems
(
context
,
data
,
isloading
).
then
((
result
:
any
)
=>
{
codelist
.
getItems
(
context
,
data
,
isloading
).
then
((
result
:
any
)
=>
{
resolve
(
result
);
}).
catch
((
error
:
any
)
=>
{
}).
catch
((
error
:
any
)
=>
{
Promise
.
reject
([]);
})
}
}
else
{
}
else
{
return
Promise
.
reject
([]);
}
}
}).
catch
((
error
:
any
)
=>
{
}).
catch
((
error
:
any
)
=>
{
console
.
warn
(
"获取代码表异常"
);
return
Promise
.
reject
([]);
})
...
...
src/components/app-file-upload/app-file-upload.vue
浏览文件 @
e46f23d8
...
...
@@ -22,7 +22,7 @@
:show-file-list="!rowPreview"
:on-exceed = "handleExceed"
>
<el-button
v-if=
"!isdrag"
size=
'small'
icon=
'el-icon-upload'
:disabled=
"disabled"
>
{{
this
.
$t
(
'app.fileUpload.caption'
)
}}
</el-button>
<el-button
v-if=
"!isdrag"
size=
'small'
icon=
'el-icon-upload'
:disabled=
"disabled
|| !(multiple || files.length === 0)
"
>
{{
this
.
$t
(
'app.fileUpload.caption'
)
}}
</el-button>
<i
v-if=
"isdrag"
class=
"el-icon-upload"
></i>
<div
v-if=
"isdrag"
class=
"el-upload__text"
v-html=
"$t('components.appFileUpload.uploadText')"
></div>
</el-upload>
...
...
src/components/app-form-item/app-form-item.less
浏览文件 @
e46f23d8
...
...
@@ -9,6 +9,7 @@
}
}
.app-form-item-label {
line-height: 21px;
padding: 6px 10px 6px 0px;
overflow: hidden;
text-overflow: ellipsis;
...
...
@@ -43,7 +44,7 @@
}
.app-form-item.label-none {
.app-form-item-label {
>
.app-form-item-label {
display: none !important;
}
}
\ No newline at end of file
src/components/app-menu-item/app-menu-item.vue
浏览文件 @
e46f23d8
...
...
@@ -13,7 +13,7 @@
<
template
v-else
>
<i
v-if=
"isFirst"
class=
'fa fa-cogs app-menu-icon'
></i>
</
template
>
<span
ref=
"circleText"
:class=
"{'app-menu-circle' : appMenuCollapseFlag, 'text' : true}"
:title=
"$t(`app.menus.${ctrlName}.${item.name
.toLowerCase()}`)"
>
{{$t(`app.menus.${ctrlName}.${item.name.toLowerCase()
}`)}}
</span>
<span
ref=
"circleText"
:class=
"{'app-menu-circle' : appMenuCollapseFlag, 'text' : true}"
:title=
"$t(`app.menus.${ctrlName}.${item.name
}`)"
>
{{$t(`app.menus.${ctrlName}.${item.name
}`)}}
</span>
</template>
<app-menu-item
:isCollapse=
"isCollapse"
:menus=
"item.items"
:ctrlName=
"ctrlName"
:isFirst=
"false"
:counterdata=
"counterdata"
:popper-class=
"popperClass"
></app-menu-item>
</el-submenu>
...
...
@@ -23,18 +23,18 @@
<el-menu-item
:class=
"[
{'isFirst' : isFirst},item.textcls]" v-show="!item.hidden" :index="item.name" :key="item.id">
<template
v-if=
"item.icon && item.icon != ''"
>
<img
:src=
"item.icon"
class=
'app-menu-icon'
/>
<span
v-if=
"(isFirst && isCollapse) ? true : false"
ref=
"circleText"
:class=
"
{'app-menu-circle' : appMenuCollapseFlag, 'text' : true}" :title="$t(`app.menus.${ctrlName}.${item.name
.toLowerCase()}`)">
{{
$t
(
`app.menus.${ctrlName
}
.${item.name.toLowerCase()
}
`
)
}}
<
/span
>
<span
v-if=
"(isFirst && isCollapse) ? true : false"
ref=
"circleText"
:class=
"
{'app-menu-circle' : appMenuCollapseFlag, 'text' : true}" :title="$t(`app.menus.${ctrlName}.${item.name
}`)">
{{
$t
(
`app.menus.${ctrlName
}
.${item.name
}
`
)
}}
<
/span
>
<
/template
>
<
template
v
-
else
-
if
=
"item.iconcls && item.iconcls != ''"
>
<
i
:
class
=
"[item.iconcls, 'app-menu-icon']"
><
/i
>
<
span
v
-
if
=
"(isFirst && isCollapse) ? true : false"
ref
=
"circleText"
:
class
=
"{'app-menu-circle' : appMenuCollapseFlag, 'text' : true
}
"
:
title
=
"$t(`app.menus.${ctrlName
}
.${item.name
.toLowerCase()
}
`)"
>
{{
$t
(
`app.menus.${ctrlName
}
.${item.name.toLowerCase()
}
`
)
}}
<
/span
>
<
span
v
-
if
=
"(isFirst && isCollapse) ? true : false"
ref
=
"circleText"
:
class
=
"{'app-menu-circle' : appMenuCollapseFlag, 'text' : true
}
"
:
title
=
"$t(`app.menus.${ctrlName
}
.${item.name
}
`)"
>
{{
$t
(
`app.menus.${ctrlName
}
.${item.name
}
`
)
}}
<
/span
>
<
/template
>
<
template
v
-
else
>
<
i
v
-
if
=
"isFirst"
class
=
'fa fa-cogs app-menu-icon'
><
/i
>
<
span
v
-
if
=
"(isFirst && isCollapse) ? true : false"
ref
=
"circleText"
:
class
=
"{'app-menu-circle' : appMenuCollapseFlag, 'text' : true
}
"
:
title
=
"$t(`app.menus.${ctrlName
}
.${item.name
.toLowerCase()
}
`)"
>
{{
$t
(
`app.menus.${ctrlName
}
.${item.name.toLowerCase()
}
`
)
}}
<
/span
>
<
span
v
-
if
=
"(isFirst && isCollapse) ? true : false"
ref
=
"circleText"
:
class
=
"{'app-menu-circle' : appMenuCollapseFlag, 'text' : true
}
"
:
title
=
"$t(`app.menus.${ctrlName
}
.${item.name
}
`)"
>
{{
$t
(
`app.menus.${ctrlName
}
.${item.name
}
`
)
}}
<
/span
>
<
/template
>
<
template
slot
=
"title"
>
<
span
:
class
=
"{'app-menu-circle' : appMenuCollapseFlag, 'text' : true
}
"
:
title
=
"$t(`app.menus.${ctrlName
}
.${item.name
.toLowerCase()
}
`)"
>
{{
$t
(
`app.menus.${ctrlName
}
.${item.name.toLowerCase()
}
`
)
}}
<
/span
>
<
span
:
class
=
"{'app-menu-circle' : appMenuCollapseFlag, 'text' : true
}
"
:
title
=
"$t(`app.menus.${ctrlName
}
.${item.name
}
`)"
>
{{
$t
(
`app.menus.${ctrlName
}
.${item.name
}
`
)
}}
<
/span
>
<
template
v
-
if
=
"counterdata && counterdata[item.counterid] && counterdata[item.counterid] > 0"
>
<
span
class
=
"pull-right"
>
<
badge
:
count
=
"counterdata[item.counterid]"
:
overflow
-
count
=
"9999"
><
/badge
>
...
...
src/components/app-org-select/app-org-select.vue
浏览文件 @
e46f23d8
...
...
@@ -219,7 +219,7 @@ export default class AppOrgSelect extends Vue {
*/
public
loadTreeData
(
requestUrl
:
string
){
if
(
this
.
filter
){
const
result
:
any
=
this
.
$store
.
getters
.
getOrgData
(
this
.
filter
);
const
result
:
any
=
this
.
$store
.
getters
.
getOrgData
(
requestUrl
);
if
(
result
){
this
.
NodesData
=
result
;
return
;
...
...
@@ -232,7 +232,7 @@ export default class AppOrgSelect extends Vue {
}
this
.
NodesData
=
res
.
data
;
if
(
this
.
filter
){
this
.
$store
.
commit
(
'addOrgData'
,
{
srfkey
:
this
.
filter
,
orgData
:
res
.
data
});
this
.
$store
.
commit
(
'addOrgData'
,
{
srfkey
:
requestUrl
,
orgData
:
res
.
data
});
}
})
}
...
...
src/components/app-quick-menus/app-quick-menus.vue
浏览文件 @
e46f23d8
...
...
@@ -8,7 +8,7 @@
<img
:src=
"item.iconcls"
v-else-if=
"!Object.is(item.iconcls, '')"
/>
<i
class=
"fa fa-cogs"
v-else
></i>
</span>
<span>
{{
$t
(
`app.menus.${ctrlName
}
.${item.name
.toLowerCase()
}
`
)
}}
<
/span
>
<span>
{{
$t
(
`app.menus.${ctrlName
}
.${item.name
}
`
)
}}
<
/span
>
<
span
class
=
"line"
><
/span
>
<
/p
>
<
p
style
=
" display: 'flex' "
>
...
...
@@ -37,7 +37,7 @@
<
img
:
src
=
"item.iconcls"
v
-
else
-
if
=
"!Object.is(item.iconcls, '')"
/>
<
i
class
=
"fa fa-cogs"
v
-
else
><
/i
>
<
/span
>
<
h4
>
{{
$t
(
`app.menus.${ctrlName
}
.${item.name
.toLowerCase()
}
`
)
}}
<
/h4
>
<
h4
>
{{
$t
(
`app.menus.${ctrlName
}
.${item.name
}
`
)
}}
<
/h4
>
<
/div
>
<
/card
>
<
/template
>
...
...
src/components/app-radio-group/app-radio-group.vue
浏览文件 @
e46f23d8
<
template
>
<radio-group
class=
"app-radio-group"
v-model=
"
value"
>
<radio-group
class=
"app-radio-group"
v-model=
"
currentVal"
>
<radio
v-for=
"(_item,index) in items"
:key =
"index"
:label=
"_item.value"
:disabled=
"isDisabled || _item.disabled"
>
<span>
{{
Object
.
is
(
codelistType
,
'STATIC'
)
?
$t
(
'codelist.'
+
tag
+
'.'
+
_item
.
value
)
:
_item
.
text
}}
</span>
</radio>
...
...
@@ -28,22 +28,12 @@ export default class AppRadioGroup extends Vue {
@
Model
(
'change'
)
item
?:
any
;
/**
* 获取值
*
* @memberof AppRadioGroup
*/
get
value
()
{
return
this
.
item
;
}
/**
* 设置值
* 实际值
*
* @type {*}
* @memberof AppRadioGroup
*/
set
value
(
val
:
any
)
{
this
.
$emit
(
'change'
,
val
);
}
public
value
:
any
=
null
;
/**
* 代码表标识
...
...
@@ -69,13 +59,50 @@ export default class AppRadioGroup extends Vue {
*/
@
Prop
()
public
data
?:
any
;
/**
* 属性类型
*
* @type {'string' | 'number'}
* @memberof AppRadioGroup
*/
@
Prop
({
default
:
'string'
})
public
valueType
!
:
'string'
|
'number'
;
/**
* 监控值变化,根据属性类型强制转换
*
* @memberof AppRadioGroup
*/
@
Watch
(
'item'
,{
immediate
:
true
,
deep
:
true
})
public
itemWatch
(){
this
.
readyValue
();
}
/**
* 获取值
*
* @memberof AppRadioGroup
*/
get
currentVal
()
{
return
this
.
item
;
}
/**
* 设置值
*
* @memberof AppRadioGroup
*/
set
currentVal
(
val
:
any
)
{
this
.
$emit
(
'change'
,
val
);
}
/**
* 监听表单数据变化
*
* @memberof AppRadioGroup
*/
@
Watch
(
'data'
,{
immediate
:
true
,
deep
:
true
})
onDataChange
(
newVal
:
any
,
oldVal
:
any
)
{
public
onDataChange
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
){
if
(
this
.
tag
&&
this
.
codelistType
==
'DYNAMIC'
){
// 公共参数处理
...
...
@@ -84,9 +111,8 @@ export default class AppRadioGroup extends Vue {
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
console
.
log
(
"app-radio-group"
)
this
.
codeListService
.
getItems
(
this
.
tag
,
_context
,
_param
).
then
((
res
:
any
)
=>
{
this
.
items
=
res
;
this
.
formatCodeList
(
this
.
$util
.
deepCopy
(
res
))
;
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
this
.
tag
}
----
${(
this
.
$t
(
'app.commonWords.codeNotExist'
)
as
string
)}
`
);
})
...
...
@@ -193,7 +219,8 @@ export default class AppRadioGroup extends Vue {
*/
public
created
()
{
if
(
this
.
tag
&&
this
.
codelistType
==
'STATIC'
){
this
.
items
=
this
.
$store
.
getters
.
getCodeListItems
(
this
.
tag
);
const
items
=
this
.
$store
.
getters
.
getCodeListItems
(
this
.
tag
);
this
.
formatCodeList
(
this
.
$util
.
deepCopy
(
items
));
}
else
if
(
this
.
tag
&&
this
.
codelistType
==
'DYNAMIC'
){
// 公共参数处理
let
data
:
any
=
{};
...
...
@@ -202,12 +229,78 @@ export default class AppRadioGroup extends Vue {
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
this
.
codeListService
.
getItems
(
this
.
tag
,
_context
,
_param
).
then
((
res
:
any
)
=>
{
this
.
items
=
res
;
this
.
formatCodeList
(
this
.
$util
.
deepCopy
(
res
))
;
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
this
.
tag
}
----
${(
this
.
$t
(
'app.commonWords.codeNotExist'
)
as
string
)}
`
);
})
}
}
/**
* 格式化代码表值类型
*
* @param {any[]} items
* @returns
* @memberof AppRadioGroup
*/
protected
formatCodeList
(
items
:
any
[]):
void
{
// 判断类型是否和属性一致
let
judge
=
false
;
this
.
items
=
[];
try
{
items
.
forEach
((
item
:
any
)
=>
{
const
type
=
this
.
$util
.
typeOf
(
item
.
value
);
if
(
type
!==
this
.
valueType
)
{
judge
=
true
;
if
(
type
===
'number'
)
{
item
.
value
=
item
.
value
.
toString
();
}
else
{
if
(
type
==
"null"
)
{
this
.
valueType
==
"number"
?
item
.
value
=
0
:
item
.
value
=
''
;
}
else
if
(
item
.
value
.
indexOf
(
'.'
)
===
-
1
)
{
item
.
value
=
parseInt
(
item
.
value
);
}
else
{
item
.
value
=
parseFloat
(
item
.
value
);
}
}
}
this
.
items
.
push
(
item
);
});
if
(
judge
)
{
console
.
warn
(
`代码表「
${
this
.
tag
}
」值类型和属性类型不符,目前采用强制转换模式。请修正代码表值类型和属性类型匹配。`
);
}
}
catch
(
error
)
{
console
.
warn
(
'代码表值类型和属性类型不符,目前采用强制转换模式。转换过程异常,请修正代码表值类型和属性类型匹配。'
);
}
}
/**
* 准备值
*
* @memberof AppRadioGroup
*/
public
readyValue
()
{
if
(
this
.
item
==
null
)
{
this
.
value
=
null
;
return
;
}
if
(
this
.
$util
.
typeOf
(
this
.
item
)
===
this
.
valueType
)
{
this
.
value
=
this
.
item
;
}
else
if
(
this
.
valueType
===
'number'
)
{
if
(
this
.
item
.
indexOf
(
'.'
)
===
-
1
)
{
this
.
value
=
parseInt
(
this
.
item
);
}
else
{
this
.
value
=
parseFloat
(
this
.
item
);
}
}
else
{
this
.
value
=
this
.
item
.
toString
();
}
this
.
$emit
(
'change'
,
this
.
value
);
}
}
</
script
>
<
style
lang=
"less"
>
...
...
src/components/app-rate/app-rate.less
浏览文件 @
e46f23d8
.el-rate__item{
font-size: 14px;
line-height: 32px;
}
src/components/app-rich-text-editor/app-rich-text-editor.vue
浏览文件 @
e46f23d8
...
...
@@ -290,6 +290,10 @@ export default class AppRichTextEditor extends Vue {
min_height
:
400
,
branding
:
false
,
plugins
:
[
'link'
,
'paste'
,
'table'
,
'image'
,
'codesample'
,
'code'
,
'fullscreen'
,
'preview'
],
toolbar
:
'undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | link image | fontselect fontsizeselect'
,
fontsize_formats
:
"8pt 10pt 12pt 14pt 18pt 24pt 36pt"
,
font_formats
:
"微软雅黑=Microsoft YaHei,'微软雅黑';宋体=SimSun,'宋体';黑体=SimHei,'黑体';仿宋=FangSong,'仿宋';楷体=KaiTi,'楷体';隶书=LiSu,'隶书';幼圆=YouYuan,'幼圆';Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings"
,
content_style
:
".mce-content-body {font-size:14pt;font-family:Microsoft YaHei,'微软雅黑',sans-serif;}"
,
codesample_languages
:
[
{
text
:
'HTML/XML'
,
value
:
'markup'
},
{
text
:
'JavaScript'
,
value
:
'javascript'
},
...
...
src/components/disk-file-upload/disk-file-upload.vue
浏览文件 @
e46f23d8
...
...
@@ -8,6 +8,7 @@
drag
multiple
list-type=
"text"
:disabled=
"disabled"
:action=
"getAction()"
:headers=
"myHeaders"
:file-list=
"uploadFileList"
...
...
@@ -28,6 +29,7 @@
ref=
"upload"
multiple
list-type=
"text"
:disabled=
"disabled"
:action=
"getAction()"
:headers=
"myHeaders"
:file-list=
"uploadFileList"
...
...
@@ -158,6 +160,14 @@
*/
@
Prop
({
default
:
false
})
public
persistence
?:
boolean
;
/**
* 是否启用
*
* @type {boolean}
* @memberof DiskFileUpload
*/
@
Prop
({
default
:
false
})
public
disabled
?:
boolean
;
/**
* 是否显示拖拽区域
*
...
...
@@ -407,7 +417,7 @@
// 拼接url
const
uploadUrl
=
this
.
getAction
();
// 发送post请求
Axios
.
post
(
uploadUrl
,
formData
,
{
timeout
:
2000
}
).
then
((
response
:
any
)
=>
{
Axios
.
post
(
uploadUrl
,
formData
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!=
200
)
{
Message
.
error
(
_this
.
$t
(
'components.diskFileUpload.loadFailure'
)
+
'!'
);
}
...
...
src/components/input-box/input-box.vue
浏览文件 @
e46f23d8
...
...
@@ -13,6 +13,7 @@
:placeholder=
"placeholder"
:size=
"size"
:type=
"type"
:rows=
"rows"
v-model=
"CurrentVal"
:disabled=
"disabled ? true : false"
:element-id=
"textareaId"
...
...
@@ -37,6 +38,17 @@ export default class InputBox extends Vue {
*/
@
Model
(
"change"
)
readonly
itemValue
?:
any
;
/**
* 生命周期 (多行文本十行高度问题)
* @type {any}
* @memberof InputBox
*/
public
created
()
{
if
(
this
.
editorType
&&
this
.
editorType
==
"TEXTAREA_10"
)
{
this
.
rows
=
10
;
}
}
/**
* 生命周期 (多行文本十行高度问题)
* @type {any}
...
...
@@ -80,6 +92,20 @@ export default class InputBox extends Vue {
*/
@
Prop
()
public
size
?:
string
;
/**
* 编辑器样式
* @type {String}
* @memberof InputBoxUnit
*/
@
Prop
()
public
editorType
?:
string
;
/**
* 文本行数
* @type {String}
* @memberof InputBoxUnit
*/
public
rows
:
number
=
2
;
/**
* placeholder值
* @type {String}
...
...
src/engine/view/tab-exp-view-engine.ts
浏览文件 @
e46f23d8
...
...
@@ -41,7 +41,7 @@ export default class TabExpViewEngine extends ViewEngine {
if
(
!
Object
.
is
(
_item
.
type
,
'TABEXPPANEL'
))
{
return
;
}
if
(
this
.
view
.
context
&&
!
this
.
view
.
context
[(
this
.
keyPSDEField
as
string
)]){
if
(
this
.
view
.
context
&&
this
.
view
.
context
[(
this
.
keyPSDEField
as
string
)]){
return
;
}
this
.
setViewState2
({
tag
:
_item
.
name
,
action
:
'load'
,
viewdata
:
this
.
view
.
context
});
...
...
src/engine/view/view-engine.ts
浏览文件 @
e46f23d8
...
...
@@ -187,17 +187,17 @@ export default class ViewEngine {
*/
public
calcToolbarItemAuthState
(
data
:
any
){
const
_this
:
any
=
this
;
if
(
!
_this
.
view
.
appUIService
.
isEnableDEMainState
)
if
(
!
_this
.
view
.
appUIService
)
return
;
for
(
const
key
in
_this
.
view
.
toolBarModels
)
{
if
(
!
_this
.
view
.
toolBarModels
.
hasOwnProperty
(
key
))
{
return
;
}
const
_item
=
_this
.
view
.
toolBarModels
[
key
];
if
(
_item
&&
_item
[
'dataaccaction'
]
&&
_this
.
view
.
appUIService
){
if
(
_item
&&
_item
[
'dataaccaction'
]){
let
dataActionResult
:
any
;
if
(
_item
.
uiaction
&&
(
Object
.
is
(
_item
.
uiaction
.
target
,
"NONE"
)
||
Object
.
is
(
_item
.
uiaction
.
target
,
""
))){
if
(
Object
.
is
(
_item
.
uiaction
.
target
,
""
)
&&
Object
.
is
(
_item
.
uiaction
.
tag
,
"Save"
)){
if
(
Object
.
is
(
_item
.
uiaction
.
target
,
""
)
&&
Object
.
is
(
_item
.
uiaction
.
tag
,
"Save"
)
&&
_this
.
view
.
appUIService
.
isEnableDEMainState
){
if
(
data
&&
Object
.
keys
(
data
).
length
>
0
){
dataActionResult
=
_this
.
view
.
appUIService
.
getAllOPPrivs
(
data
)[
_item
[
'dataaccaction'
]];
}
...
...
@@ -205,7 +205,7 @@ export default class ViewEngine {
dataActionResult
=
_this
.
view
.
appUIService
.
getResourceOPPrivs
(
_item
[
'dataaccaction'
]);
}
}
else
{
if
(
data
&&
Object
.
keys
(
data
).
length
>
0
){
if
(
data
&&
Object
.
keys
(
data
).
length
>
0
&&
_this
.
view
.
appUIService
.
isEnableDEMainState
){
dataActionResult
=
_this
.
view
.
appUIService
.
getAllOPPrivs
(
data
)[
_item
[
'dataaccaction'
]];
}
}
...
...
src/styles/default.less
浏览文件 @
e46f23d8
...
...
@@ -274,7 +274,6 @@
}
}
// 工作流流程版本选择
.start-workflow-select-wraper {
z-index: 3000 !important;
}
...
...
src/template.html
0 → 100644
浏览文件 @
e46f23d8
<!DOCTYPE html>
<html
lang=
"en"
>
<head>
<meta
charset=
"utf-8"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<meta
name=
"viewport"
content=
"width=device-width,initial-scale=1.0"
>
<link
rel=
"icon"
href=
"<%= BASE_URL %>favicon.ico"
>
<title><
%=
htmlWebpackPlugin
.
options
.
title
%
></title>
</head>
<body>
<noscript>
<strong>
We're sorry but app doesn't work properly without JavaScript enabled. Please enable it to continue.
</strong>
</noscript>
<div
id=
"app"
></div>
<script
src=
"./environments/environment.js"
></script>
<script
src=
"./assets/js/avue.min.js"
></script>
</body>
</html>
src/utils/types/http.d.ts
浏览文件 @
e46f23d8
...
...
@@ -17,7 +17,7 @@ export declare interface Http {
* @returns {Promise<any>}
* @memberof Http
*/
post
(
url
:
string
,
params
?
:
any
,
isloading
?:
boolean
,
serialnumber
?:
number
):
Promise
<
any
>
;
post
(
url
:
string
,
params
:
any
,
isloading
?:
boolean
,
serialnumber
?:
number
):
Promise
<
any
>
;
/**
* 获取
*
...
...
@@ -27,7 +27,7 @@ export declare interface Http {
* @returns {Promise<any>}
* @memberof Http
*/
get
(
url
:
string
,
params
?:
any
,
isloading
?:
boolean
,
serialnumber
?:
number
):
Promise
<
any
>
;
get
(
url
:
string
,
isloading
?:
boolean
,
serialnumber
?:
number
):
Promise
<
any
>
;
/**
* 删除
*
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录