Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzdisk
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzdisk
提交
34d03f50
提交
34d03f50
编写于
6月 05, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
lab_qyk 发布系统代码
上级
31f15352
变更
38
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
38 个修改的文件
包含
1521 行增加
和
765 行删除
+1521
-765
CHANGELOG.md
app_web/CHANGELOG.md
+63
-3
package.json
app_web/package.json
+1
-1
app-register.ts
app_web/src/app-register.ts
+2
-0
app-autocomplete.vue
app_web/src/components/app-autocomplete/app-autocomplete.vue
+39
-18
app-breadcrumb.less
app_web/src/components/app-breadcrumb/app-breadcrumb.less
+17
-0
app-breadcrumb.vue
app_web/src/components/app-breadcrumb/app-breadcrumb.vue
+91
-0
app-checkbox-list.vue
...eb/src/components/app-checkbox-list/app-checkbox-list.vue
+85
-2
app-column-link.vue
app_web/src/components/app-column-link/app-column-link.vue
+2
-2
app-embed-picker.vue
app_web/src/components/app-embed-picker/app-embed-picker.vue
+3
-3
app-mpicker.vue
app_web/src/components/app-mpicker/app-mpicker.vue
+56
-5
app-picker-select-view.less
...onents/app-picker-select-view/app-picker-select-view.less
+8
-0
app-picker-select-view.vue
...ponents/app-picker-select-view/app-picker-select-view.vue
+4
-8
app-picker.vue
app_web/src/components/app-picker/app-picker.vue
+10
-14
app-radio-group.vue
app_web/src/components/app-radio-group/app-radio-group.vue
+89
-4
app-rich-text-editor.vue
.../components/app-rich-text-editor/app-rich-text-editor.vue
+1
-1
app-span.vue
app_web/src/components/app-span/app-span.vue
+33
-2
app-tree-picker.vue
app_web/src/components/app-tree-picker/app-tree-picker.vue
+3
-3
codelist.vue
app_web/src/components/codelist/codelist.vue
+78
-7
dropdown-list-dynamic.vue
...omponents/dropdown-list-dynamic/dropdown-list-dynamic.vue
+49
-23
dropdown-list-mpicker.vue
...omponents/dropdown-list-mpicker/dropdown-list-mpicker.vue
+68
-2
dropdown-list.vue
app_web/src/components/dropdown-list/dropdown-list.vue
+49
-23
tab-page-exp.less
app_web/src/components/tab-page-exp/tab-page-exp.less
+110
-84
tab-page-exp.vue
app_web/src/components/tab-page-exp/tab-page-exp.vue
+258
-241
chart-series.ts
app_web/src/model/chart-detail/chart-series.ts
+19
-0
sdindex-view-base.vue
app_web/src/pages/disk/sdindex-view/sdindex-view-base.vue
+28
-22
sdindex-view.less
app_web/src/pages/disk/sdindex-view/sdindex-view.less
+40
-8
codelist-service.ts
app_web/src/service/app/codelist-service.ts
+22
-23
default.less
app_web/src/styles/default.less
+12
-6
blue.theme.less
app_web/src/theme/blue.theme.less
+36
-32
dark-blue.theme.less
app_web/src/theme/dark-blue.theme.less
+95
-98
default.theme.less
app_web/src/theme/default.theme.less
+95
-97
app-modal.less
app_web/src/utils/app-modal/app-modal.less
+1
-1
util.d.ts
app_web/src/utils/types/util.d.ts
+3
-1
util.ts
app_web/src/utils/util/util.ts
+9
-2
sdindex-view-appmenu.less
...idgets/app/sdindex-view-appmenu/sdindex-view-appmenu.less
+17
-13
yarn.lock
app_web/yarn.lock
+8
-8
DEPredefinedFieldType.java
...ain/java/cn/ibizlab/util/enums/DEPredefinedFieldType.java
+4
-0
IBZConfigService.java
...c/main/java/cn/ibizlab/util/service/IBZConfigService.java
+13
-8
未找到文件。
app_web/CHANGELOG.md
浏览文件 @
34d03f50
## v7.0.0-alpha.8 [2020-6-4]
### Bug修复
修复树右键菜单事件传值bug
修复树节点图标样式
修复viewdata和viewparams解析不同步
修复界面行为多主键分隔符由";"改为","
修复多层导航失效
数据选择,自动填充编辑器参数处理,动态代码表编辑器参数
修复富文本国际化bug
修复坐标轴的自定义参数
修复分页面板配置导航参数
修复实体处理逻辑
修复应用级context对象特性丢失的问题
修复新建逻辑
修复动态代码表传递上下文、参数逻辑
### 功能新增及优化
#### 模板
树选择双击
列表快速分组和快速搜索表单
数据视图快速分组和快速搜索表单
日历图例、日历快速分组和批处理工具栏
实体国际化路径调整
面板界面行为支持
列表,数据视图下拉加载
增加图表名称代码表识别、雷达图支持
uaa菜单权限
增加数据看板动态模型数据存库
应用样式调整
#### 基础文件
人员选择标准控件样式调整
应用样式调整
## v7.0.0-alpha.7 [2020-5-28]
### Bug修复
...
...
@@ -219,6 +281,4 @@
## v7.0.0-alpha.1 [2020-4-29]
初始化文件
初始化文件
\ No newline at end of file
app_web/package.json
浏览文件 @
34d03f50
...
...
@@ -26,7 +26,7 @@
"element-ui"
:
"^2.13.0"
,
"file-saver"
:
"^2.0.2"
,
"font-awesome"
:
"^4.7.0"
,
"ibiz-gantt-elastic"
:
"^1.0.1
5
"
,
"ibiz-gantt-elastic"
:
"^1.0.1
6
"
,
"ibiz-vue-lib"
:
"^0.1.10"
,
"interactjs"
:
"^1.9.4"
,
"moment"
:
"^2.24.0"
,
...
...
app_web/src/app-register.ts
浏览文件 @
34d03f50
...
...
@@ -76,6 +76,7 @@ import AppDepartmentSelect from './components/app-department-select/app-departme
import
IBizGroupSelect
from
'./components/ibiz-group-select/ibiz-group-select.vue'
import
IBizGroupPicker
from
'./components/ibiz-group-picker/ibiz-group-picker.vue'
import
AppWFApproval
from
'./components/app-wf-approval/app-wf-approval.vue'
import
Breadcrumb
from
'./components/app-breadcrumb/app-breadcrumb.vue'
;
// 全局挂载UI实体服务注册中心
window
[
'uiServiceRegister'
]
=
uiServiceRegister
;
...
...
@@ -161,5 +162,6 @@ export const AppComponents = {
v
.
component
(
'ibiz-group-select'
,
IBizGroupSelect
);
v
.
component
(
'ibiz-group-picker'
,
IBizGroupPicker
);
v
.
component
(
'app-wf-approval'
,
AppWFApproval
);
v
.
component
(
'app-breadcrumb'
,
Breadcrumb
);
},
};
\ No newline at end of file
app_web/src/components/app-autocomplete/app-autocomplete.vue
浏览文件 @
34d03f50
...
...
@@ -173,29 +173,22 @@ export default class AppAutocomplete extends Vue {
* @param callback
*/
public
onSearch
(
query
:
any
,
callback
:
any
):
void
{
// 公共参数处理
let
data
:
any
=
{};
const
bcancel
:
boolean
=
this
.
handlePublicParams
(
data
);
if
(
!
bcancel
)
{
return
;
}
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
// 处理搜索参数
query
=
!
query
?
''
:
query
;
if
(
!
this
.
inputState
&&
Object
.
is
(
query
,
this
.
value
))
{
query
=
''
;
}
this
.
inputState
=
false
;
// 合并视图上下文参数和视图参数
let
param
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
));
let
context
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
));
Object
.
assign
(
param
,
{
query
:
query
});
// 附加参数处理
if
(
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
this
.
data
,
this
.
itemParam
.
context
);
Object
.
assign
(
context
,
_context
);
}
if
(
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
this
.
data
,
this
.
itemParam
.
param
);
Object
.
assign
(
param
,
_param
);
}
if
(
this
.
itemParam
.
parentdata
)
{
let
_parentdata
=
this
.
$util
.
formatData
(
this
.
data
,
this
.
itemParam
.
parentdata
);
Object
.
assign
(
param
,
_parentdata
);
}
Object
.
assign
(
_param
,
{
query
:
query
});
// 错误信息国际化
let
error
:
string
=
(
this
.
$t
(
'components.appAutocomplete.error'
)
as
any
);
let
miss
:
string
=
(
this
.
$t
(
'components.appAutocomplete.miss'
)
as
any
);
...
...
@@ -208,7 +201,7 @@ export default class AppAutocomplete extends Vue {
}
else
if
(
!
this
.
acParams
.
interfaceName
)
{
this
.
$Notice
.
error
({
title
:
error
,
desc
:
miss
+
'interfaceName'
});
}
else
{
this
.
service
.
getItems
(
this
.
acParams
.
serviceName
,
this
.
acParams
.
interfaceName
,
context
,
param
).
then
((
response
:
any
)
=>
{
this
.
service
.
getItems
(
this
.
acParams
.
serviceName
,
this
.
acParams
.
interfaceName
,
_context
,
_
param
).
then
((
response
:
any
)
=>
{
if
(
!
response
)
{
this
.
$Notice
.
error
({
title
:
error
,
desc
:
requestException
});
}
else
{
...
...
@@ -274,6 +267,34 @@ export default class AppAutocomplete extends Vue {
this
.
$forceUpdate
();
}
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof AppAutocomplete
*/
public
handlePublicParams
(
arg
:
any
):
boolean
{
if
(
!
this
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'components.appPicker.error'
)
as
any
),
desc
:
(
this
.
$t
(
'components.appPicker.formdataException'
)
as
any
)
});
return
false
;
}
// 合并表单参数
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{};
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{};
// 附加参数处理
if
(
this
.
itemParam
&&
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
context
,
this
.
itemParam
.
context
);
Object
.
assign
(
arg
.
context
,
_context
);
}
if
(
this
.
itemParam
&&
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
param
,
this
.
itemParam
.
param
);
Object
.
assign
(
arg
.
param
,
_param
);
}
return
true
;
}
}
</
script
>
...
...
app_web/src/components/app-breadcrumb/app-breadcrumb.less
0 → 100644
浏览文件 @
34d03f50
.el-breadcrumb__inner,
.el-breadcrumb__inner a {
font-weight: 400 !important;
}
.app-breadcrumb.el-breadcrumb {
display: inline-block;
font-size: 14px;
line-height: 50px;
margin-left: 8px;
.no-redirect {
color: #97a8be;
cursor: text;
}
}
\ No newline at end of file
app_web/src/components/app-breadcrumb/app-breadcrumb.vue
0 → 100644
浏览文件 @
34d03f50
<
template
>
<el-breadcrumb
class=
"app-breadcrumb"
separator=
"/"
>
<transition-group
name=
"breadcrumb"
>
<el-breadcrumb-item
v-for=
"(item, index) in breadcrumbs"
:key=
"item.path"
>
<span
v-if=
"item.redirect === 'noredirect' || index === breadcrumbs.length-1"
class=
"no-redirect"
>
{{
$t
(
item
.
meta
.
caption
)
}}
</span>
<a
v-else
@
click
.
prevent=
"handleLink(item)"
>
{{
$t
(
item
.
meta
.
caption
)
}}
</a>
</el-breadcrumb-item>
</transition-group>
</el-breadcrumb>
</
template
>
<
script
lang=
"ts"
>
import
{
compile
}
from
'path-to-regexp'
import
{
Component
,
Vue
,
Watch
,
Prop
}
from
'vue-property-decorator'
import
{
RouteRecord
,
Route
}
from
'vue-router'
@
Component
({
name
:
'Breadcrumb'
})
export
default
class
extends
Vue
{
private
breadcrumbs
:
RouteRecord
[]
=
[]
@
Prop
()
public
defPSAppView
?:
any
;
@
Watch
(
'$route'
)
private
onRouteChange
(
route
:
Route
)
{
// if you go to the redirect page, do not update the breadcrumbs
if
(
route
.
path
.
startsWith
(
'/redirect/'
))
{
return
}
this
.
getBreadcrumb
()
}
created
()
{
this
.
getBreadcrumb
()
}
private
getBreadcrumb
()
{
let
matched
=
this
.
$route
.
matched
.
filter
((
item
)
=>
item
.
meta
&&
item
.
meta
.
caption
)
const
first
=
matched
[
0
]
if
(
!
this
.
isDashboard
(
first
))
{
matched
=
[{
path
:
"/index/:index?"
,
meta
:
{
caption
:
'app.views.index.caption'
,
viewType
:
'APPINDEX'
,
parameters
:
[
{
pathName
:
'index'
,
parameterName
:
'index'
},
],
requireAuth
:
true
,
}
}
as
RouteRecord
].
concat
(
matched
)
}
this
.
breadcrumbs
=
matched
.
filter
((
item
)
=>
{
return
item
.
meta
&&
item
.
meta
.
caption
&&
item
.
meta
.
breadcrumb
!==
false
})
}
private
isDashboard
(
route
:
RouteRecord
)
{
const
name
=
route
&&
route
.
meta
.
parameters
[
0
].
pathName
;
if
(
!
name
)
{
return
false
}
return
name
.
trim
().
toLocaleLowerCase
()
===
'index'
.
toLocaleLowerCase
()
}
private
pathCompile
(
item
:
any
)
{
const
{
params
,
path
,
query
}
=
item
;
return
{
params
,
path
,
query
};
}
private
handleLink
(
item
:
any
)
{
this
.
$router
.
push
(
this
.
pathCompile
(
item
)).
catch
(
err
=>
{
console
.
warn
(
err
);
});
}
}
</
script
>
<
style
lang=
'less'
>
@import "./app-breadcrumb.less";
</
style
>
\ No newline at end of file
app_web/src/components/app-checkbox-list/app-checkbox-list.vue
浏览文件 @
34d03f50
...
...
@@ -7,7 +7,7 @@
</
template
>
<
script
lang=
"ts"
>
import
{
Component
,
Vue
,
Prop
,
Model
}
from
'vue-property-decorator'
;
import
{
Component
,
Vue
,
Prop
,
Model
,
Watch
}
from
'vue-property-decorator'
;
import
CodeListService
from
"@service/app/codelist-service"
;
@
Component
({
...
...
@@ -53,6 +53,38 @@ export default class AppCheckBox extends Vue {
*/
@
Prop
()
disabled
?:
boolean
;
/**
* 传入表单数据
*
* @type {*}
* @memberof DropDownList
*/
@
Prop
()
public
data
?:
any
;
/**
* 传入额外参数
*
* @type {*}
* @memberof DropDownList
*/
@
Prop
()
public
itemParam
?:
any
;
/**
* 视图上下文
*
* @type {*}
* @memberof AppAutocomplete
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 获取启用禁用状态
*
...
...
@@ -166,6 +198,28 @@ export default class AppCheckBox extends Vue {
*/
public
items
:
any
[]
=
[];
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof DropDownList
*/
public
handlePublicParams
(
arg
:
any
)
{
// 合并表单参数
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{};
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{};
// 附加参数处理
if
(
this
.
itemParam
&&
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
context
,
this
.
itemParam
.
context
);
Object
.
assign
(
arg
.
context
,
_context
);
}
if
(
this
.
itemParam
&&
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
param
,
this
.
itemParam
.
param
);
Object
.
assign
(
arg
.
param
,
_param
);
}
}
/**
* vue 生命周期
*
...
...
@@ -181,7 +235,13 @@ export default class AppCheckBox extends Vue {
console
.
log
(
`----
${
this
.
tag
}
----$t('components.appCheckBox.notExist')`
);
}
}
else
if
(
Object
.
is
(
this
.
codelistType
,
"DYNAMIC"
))
{
this
.
codeListService
.
getItems
(
this
.
tag
).
then
((
res
:
any
)
=>
{
// 公共参数处理
let
data
:
any
=
{};
this
.
handlePublicParams
(
data
);
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
this
.
codeListService
.
getItems
(
this
.
tag
,
_context
,
_param
).
then
((
res
:
any
)
=>
{
this
.
items
=
res
;
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
this
.
tag
}
----$t('components.appCheckBox.notExist')`
);
...
...
@@ -190,6 +250,29 @@ export default class AppCheckBox extends Vue {
}
}
/**
* 监听表单数据变化
*
* @memberof AppOrgSelect
*/
@
Watch
(
'data'
,{
immediate
:
true
,
deep
:
true
})
onDataChange
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
){
if
(
this
.
tag
&&
this
.
codelistType
==
'DYNAMIC'
){
// 公共参数处理
let
data
:
any
=
{};
this
.
handlePublicParams
(
data
);
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
this
.
codeListService
.
getItems
(
this
.
tag
,
_context
,
_param
).
then
((
res
:
any
)
=>
{
this
.
items
=
res
;
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
this
.
tag
}
----代码表不存在!`
);
})
}
}
}
}
</
script
>
...
...
app_web/src/components/app-column-link/app-column-link.vue
浏览文件 @
34d03f50
...
...
@@ -279,8 +279,8 @@ export default class AppColumnLink extends Vue {
return
false
;
}
// 合并表单参数
arg
.
param
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
;
arg
.
context
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
;
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{}
;
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{}
;
return
true
;
}
...
...
app_web/src/components/app-embed-picker/app-embed-picker.vue
浏览文件 @
34d03f50
...
...
@@ -170,15 +170,15 @@ export default class AppEmbedPicker extends Vue {
let
context
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
));
// 附加参数处理
if
(
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
activeData
,
this
.
itemParam
.
context
);
let
_context
=
this
.
$util
.
formatData
(
activeData
,
context
,
this
.
itemParam
.
context
);
Object
.
assign
(
context
,
_context
);
}
if
(
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
activeData
,
this
.
itemParam
.
param
);
let
_param
=
this
.
$util
.
formatData
(
activeData
,
param
,
this
.
itemParam
.
param
);
Object
.
assign
(
param
,
_param
);
}
if
(
this
.
itemParam
.
parentdata
)
{
let
_parentdata
=
this
.
$util
.
formatData
(
activeData
,
this
.
itemParam
.
parentdata
);
let
_parentdata
=
this
.
$util
.
formatData
(
activeData
,
param
,
this
.
itemParam
.
parentdata
);
Object
.
assign
(
param
,
_parentdata
);
}
this
.
viewdata
=
JSON
.
stringify
(
context
);
...
...
app_web/src/components/app-mpicker/app-mpicker.vue
浏览文件 @
34d03f50
...
...
@@ -44,6 +44,14 @@ export default class AppMpicker extends Vue {
*/
@
Prop
()
curvalue
?:
any
;
/**
* 表单项参数
*
* @type {any}
* @memberof AppPicker
*/
@
Prop
()
public
itemParam
:
any
;
/**
* 表单项名称
*/
...
...
@@ -147,9 +155,18 @@ export default class AppMpicker extends Vue {
* @memberof AppMpicker
*/
public
onSearch
(
query
:
any
)
{
let
param
:
any
=
{
query
:
query
};
// 公共参数处理
let
data
:
any
=
{};
const
bcancel
:
boolean
=
this
.
handlePublicParams
(
data
);
if
(
!
bcancel
)
{
return
;
}
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
Object
.
assign
(
_param
,{
query
:
query
});
if
(
this
.
activeData
)
{
Object
.
assign
(
param
,
{
srfreferdata
:
this
.
activeData
});
Object
.
assign
(
_
param
,
{
srfreferdata
:
this
.
activeData
});
}
// 错误信息国际化
let
error
:
string
=
(
this
.
$t
(
'components.appMpicker.error'
)
as
any
);
...
...
@@ -162,7 +179,7 @@ export default class AppMpicker extends Vue {
}
else
if
(
!
this
.
acParams
.
interfaceName
)
{
this
.
$Notice
.
error
({
title
:
error
,
desc
:
miss
+
'interfaceName'
});
}
else
{
this
.
service
.
getItems
(
this
.
acParams
.
serviceName
,
this
.
acParams
.
interfaceName
,
param
).
then
((
response
:
any
)
=>
{
this
.
service
.
getItems
(
this
.
acParams
.
serviceName
,
this
.
acParams
.
interfaceName
,
_context
,
_
param
).
then
((
response
:
any
)
=>
{
if
(
!
response
)
{
this
.
$Notice
.
error
({
title
:
error
,
desc
:
requestException
});
}
else
{
...
...
@@ -216,6 +233,33 @@ export default class AppMpicker extends Vue {
}
}
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof AppMpicker
*/
public
handlePublicParams
(
arg
:
any
):
boolean
{
if
(
!
this
.
activeData
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'components.appPicker.error'
)
as
any
),
desc
:
(
this
.
$t
(
'components.appPicker.formdataException'
)
as
any
)
});
return
false
;
}
// 合并表单参数
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{};
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{};
// 附加参数处理
if
(
this
.
itemParam
&&
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
this
.
activeData
,
arg
.
context
,
this
.
itemParam
.
context
);
Object
.
assign
(
arg
.
context
,
_context
);
}
if
(
this
.
itemParam
&&
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
this
.
activeData
,
arg
.
param
,
this
.
itemParam
.
param
);
Object
.
assign
(
arg
.
param
,
_param
);
}
return
true
;
}
/**
* 打开视图
*
...
...
@@ -229,8 +273,15 @@ export default class AppMpicker extends Vue {
if
(
this
.
pickupView
&&
Object
.
keys
(
this
.
pickupView
).
length
>
0
)
{
// 参数处理
const
view
=
{
...
this
.
pickupView
};
let
_viewparams
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
));
let
_context
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
));
// 公共参数处理
let
data
:
any
=
{};
const
bcancel
:
boolean
=
this
.
handlePublicParams
(
data
);
if
(
!
bcancel
)
{
return
;
}
// 参数处理
let
_context
=
data
.
context
;
let
_viewparams
=
data
.
param
;
let
_selectItems
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
selectItems
));
if
(
!
Object
.
is
(
this
.
deKeyField
,
"srfkey"
)){
_selectItems
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
...
...
app_web/src/components/app-picker-select-view/app-picker-select-view.less
浏览文件 @
34d03f50
...
...
@@ -22,6 +22,14 @@
.ivu-select-dropdown{
max-height: 200px;
overflow: scroll;
margin: 0;
padding: 0;
.ivu-dropdown-menu{
.view-container{
margin: 0;
padding: 0;
}
}
.tree-contant{
overflow:inherit;
}
...
...
app_web/src/components/app-picker-select-view/app-picker-select-view.vue
浏览文件 @
34d03f50
...
...
@@ -255,21 +255,17 @@ export default class AppPickerSelectView extends Vue {
return
false
;
}
// 合并表单参数
arg
.
param
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
;
arg
.
context
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
;
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{}
;
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{}
;
// 附加参数处理
if
(
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
this
.
data
,
this
.
itemParam
.
context
);
let
_context
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
context
,
this
.
itemParam
.
context
);
Object
.
assign
(
arg
.
context
,
_context
);
}
if
(
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
this
.
data
,
this
.
itemParam
.
param
);
let
_param
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
param
,
this
.
itemParam
.
param
);
Object
.
assign
(
arg
.
param
,
_param
);
}
if
(
this
.
itemParam
.
parentdata
)
{
let
_parentdata
=
this
.
$util
.
formatData
(
this
.
data
,
this
.
itemParam
.
parentdata
);
Object
.
assign
(
arg
.
param
,
_parentdata
);
}
return
true
;
}
...
...
app_web/src/components/app-picker/app-picker.vue
浏览文件 @
34d03f50
...
...
@@ -410,9 +410,9 @@ export default class AppPicker extends Vue {
// 判断打开方式
if
(
view
.
placement
&&
!
Object
.
is
(
view
.
placement
,
''
))
{
if
(
Object
.
is
(
view
.
placement
,
'POPOVER'
))
{
this
.
openPopOver
(
$event
,
view
,
_context
,
data
);
this
.
openPopOver
(
$event
,
view
,
_context
,
_param
);
}
else
{
this
.
openDrawer
(
view
,
_context
,
data
);
this
.
openDrawer
(
view
,
_context
,
_param
);
}
}
else
{
this
.
openPopupModal
(
view
,
_context
,
_param
);
...
...
@@ -647,21 +647,17 @@ export default class AppPicker extends Vue {
return
false
;
}
// 合并表单参数
arg
.
param
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
;
arg
.
context
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
;
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{}
;
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{}
;
// 附加参数处理
if
(
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
this
.
data
,
this
.
itemParam
.
context
);
if
(
this
.
itemParam
&&
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
context
,
this
.
itemParam
.
context
);
Object
.
assign
(
arg
.
context
,
_context
);
}
if
(
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
this
.
data
,
this
.
itemParam
.
param
);
if
(
this
.
itemParam
&&
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
param
,
this
.
itemParam
.
param
);
Object
.
assign
(
arg
.
param
,
_param
);
}
if
(
this
.
itemParam
.
parentdata
)
{
let
_parentdata
=
this
.
$util
.
formatData
(
this
.
data
,
this
.
itemParam
.
parentdata
);
Object
.
assign
(
arg
.
param
,
_parentdata
);
}
return
true
;
}
...
...
@@ -691,9 +687,9 @@ export default class AppPicker extends Vue {
// 判断打开方式
if
(
view
.
placement
&&
!
Object
.
is
(
view
.
placement
,
''
))
{
if
(
Object
.
is
(
view
.
placement
,
'POPOVER'
))
{
this
.
openPopOver
(
$event
,
view
,
_context
,
data
);
this
.
openPopOver
(
$event
,
view
,
_context
,
_param
);
}
else
{
this
.
openDrawer
(
view
,
_context
,
data
);
this
.
openDrawer
(
view
,
_context
,
_param
);
}
}
else
{
this
.
openPopupModal
(
view
,
_context
,
_param
);
...
...
app_web/src/components/app-radio-group/app-radio-group.vue
浏览文件 @
34d03f50
...
...
@@ -6,7 +6,7 @@
</radio-group>
</
template
>
<
script
lang =
'ts'
>
import
{
Component
,
Vue
,
Prop
,
Model
}
from
'vue-property-decorator'
;
import
{
Component
,
Vue
,
Prop
,
Model
,
Watch
}
from
'vue-property-decorator'
;
import
CodeListService
from
"@service/app/codelist-service"
;
@
Component
({})
...
...
@@ -61,6 +61,39 @@ export default class AppRadioGroup extends Vue {
*/
@
Prop
()
public
codelistType
?:
string
;
/**
* 传入表单数据
*
* @type {*}
* @memberof DropDownList
*/
@
Prop
()
public
data
?:
any
;
/**
* 监听表单数据变化
*
* @memberof AppOrgSelect
*/
@
Watch
(
'data'
,{
immediate
:
true
,
deep
:
true
})
onDataChange
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
){
if
(
this
.
tag
&&
this
.
codelistType
==
'DYNAMIC'
){
// 公共参数处理
let
data
:
any
=
{};
this
.
handlePublicParams
(
data
);
// 参数处理
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
;
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
this
.
tag
}
----代码表不存在!`
);
})
}
}
}
/**
* 是否禁用
*
...
...
@@ -69,6 +102,30 @@ export default class AppRadioGroup extends Vue {
*/
@
Prop
()
public
disabled
?:
boolean
;
/**
* 传入额外参数
*
* @type {*}
* @memberof DropDownList
*/
@
Prop
()
public
itemParam
?:
any
;
/**
* 视图上下文
*
* @type {*}
* @memberof AppAutocomplete
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 属性名称
*
...
...
@@ -99,6 +156,28 @@ export default class AppRadioGroup extends Vue {
*/
public
items
:
any
[]
=
[];
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof DropDownList
*/
public
handlePublicParams
(
arg
:
any
)
{
// 合并表单参数
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{};
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{};
// 附加参数处理
if
(
this
.
itemParam
&&
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
context
,
this
.
itemParam
.
context
);
Object
.
assign
(
arg
.
context
,
_context
);
}
if
(
this
.
itemParam
&&
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
param
,
this
.
itemParam
.
param
);
Object
.
assign
(
arg
.
param
,
_param
);
}
}
/**
* vue 生命周期
*
...
...
@@ -108,9 +187,15 @@ export default class AppRadioGroup extends Vue {
if
(
this
.
tag
&&
this
.
codelistType
==
'STATIC'
){
this
.
items
=
this
.
$store
.
getters
.
getCodeListItems
(
this
.
tag
);
}
else
if
(
this
.
tag
&&
this
.
codelistType
==
'DYNAMIC'
){
this
.
codeListService
.
getItems
(
this
.
tag
).
then
((
data
:
any
)
=>
{
this
.
items
=
data
;
}).
catch
((
data
:
any
)
=>
{
// 公共参数处理
let
data
:
any
=
{};
this
.
handlePublicParams
(
data
);
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
this
.
codeListService
.
getItems
(
this
.
tag
,
_context
,
_param
).
then
((
res
:
any
)
=>
{
this
.
items
=
res
;
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
this
.
tag
}
----代码表不存在!`
);
})
}
...
...
app_web/src/components/app-rich-text-editor/app-rich-text-editor.vue
浏览文件 @
34d03f50
...
...
@@ -104,7 +104,7 @@ export default class AppRichTextEditor extends Vue {
* @type {*}
* @memberof AppRichTextEditor
*/
public
langu
:
any
=
localStorage
.
getItem
(
'local'
)
?
localStorage
.
getItem
(
'local'
)
:
'zh
_
CN'
;
public
langu
:
any
=
localStorage
.
getItem
(
'local'
)
?
localStorage
.
getItem
(
'local'
)
:
'zh
-
CN'
;
/**
* 语言映射文件
...
...
app_web/src/components/app-span/app-span.vue
浏览文件 @
34d03f50
<
template
>
<codelist
v-if=
"tag"
:tag=
"tag"
:value=
"value"
:codelistType=
"codelistType"
:renderMode=
"renderMode"
:valueSeparator=
"valueSeparator"
:textSeparator=
"textSeparator"
></codelist>
<codelist
v-if=
"tag"
:tag=
"tag"
:value=
"value"
:codelistType=
"codelistType"
:renderMode=
"renderMode"
:valueSeparator=
"valueSeparator"
:textSeparator=
"textSeparator"
:data=
"data"
:itemParam=
"itemParam"
:context=
"context"
:viewparams=
"viewparams"
></codelist>
<app-upload-file-info
v-else-if=
"Object.is(this.editorType,'PICTURE') || Object.is(this.editorType,'PICTURE_ONE') || Object.is(this.editorType,'FILEUPLOADER')"
:value=
"value"
:name=
"name"
></app-upload-file-info>
<span
class=
"app-span"
v-else
>
{{
text
}}
</span>
</
template
>
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Prop
,
Watch
,
Model
}
from
'vue-property-decorator'
;
import
CodeListService
from
"@service/app/codelist-service"
;
@
Component
({})
export
default
class
AppSpan
extends
Vue
{
...
...
@@ -64,6 +63,38 @@ export default class AppSpan extends Vue {
*/
@
Prop
({
default
:
','
})
public
valueSeparator
?:
string
;
/**
* 传入表单数据
*
* @type {*}
* @memberof AppSpan
*/
@
Prop
()
public
data
?:
any
;
/**
* 传入额外参数
*
* @type {*}
* @memberof AppSpan
*/
@
Prop
()
public
itemParam
?:
any
;
/**
* 视图上下文
*
* @type {*}
* @memberof AppSpan
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof AppSpan
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 监控表单属性 data 值
*
...
...
app_web/src/components/app-tree-picker/app-tree-picker.vue
浏览文件 @
34d03f50
...
...
@@ -220,15 +220,15 @@ export default class AppTreePicker extends Vue {
let
context
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
));
// 附加参数处理
if
(
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
activeData
,
this
.
itemParam
.
context
);
let
_context
=
this
.
$util
.
formatData
(
activeData
,
context
,
this
.
itemParam
.
context
);
Object
.
assign
(
context
,
_context
);
}
if
(
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
activeData
,
this
.
itemParam
.
param
);
let
_param
=
this
.
$util
.
formatData
(
activeData
,
param
,
this
.
itemParam
.
param
);
Object
.
assign
(
param
,
_param
);
}
if
(
this
.
itemParam
.
parentdata
)
{
let
_parentdata
=
this
.
$util
.
formatData
(
activeData
,
this
.
itemParam
.
parentdata
);
let
_parentdata
=
this
.
$util
.
formatData
(
activeData
,
param
,
this
.
itemParam
.
parentdata
);
Object
.
assign
(
param
,
_parentdata
);
}
this
.
viewdata
=
JSON
.
stringify
(
context
);
...
...
app_web/src/components/codelist/codelist.vue
浏览文件 @
34d03f50
...
...
@@ -37,14 +37,14 @@ export default class CodeList extends Vue {
* 代码表类型
*
* @type {string}
* @memberof
AppCheckBox
* @memberof
CodeList
*/
@
Prop
()
public
codelistType
?:
string
;
/**
* 当前值
* @type {any}
* @memberof
SelectPicker
* @memberof
CodeList
*
*/
@
Prop
()
public
value
?:
string
;
...
...
@@ -52,24 +52,56 @@ export default class CodeList extends Vue {
/**
* 获取或模式
* @type {boolean}
* @memberof
SelectPicker
* @memberof
CodeList
*/
@
Prop
({
default
:
"STR"
})
public
renderMode
?:
string
;
/**
* 文本分隔符
* @type {boolean}
* @memberof
SelectPicker
* @memberof
CodeList
*/
@
Prop
({
default
:
'、'
})
public
textSeparator
?:
string
;
/**
* 值分隔符
* @type {boolean}
* @memberof
SelectPicker
* @memberof
CodeList
*/
@
Prop
({
default
:
','
})
public
valueSeparator
?:
string
;
/**
* 传入表单数据
*
* @type {*}
* @memberof CodeList
*/
@
Prop
()
public
data
?:
any
;
/**
* 传入额外参数
*
* @type {*}
* @memberof CodeList
*/
@
Prop
()
public
itemParam
?:
any
;
/**
* 视图上下文
*
* @type {*}
* @memberof CodeList
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof CodeList
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 是否为空
*
...
...
@@ -101,7 +133,7 @@ export default class CodeList extends Vue {
*/
public
isUseLangres
:
boolean
=
false
;
/**
/**
* 数据值变化
*
* @param {*} newval
...
...
@@ -112,7 +144,18 @@ export default class CodeList extends Vue {
@
Watch
(
'value'
)
public
onValueChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
dataHandle
();
}
/**
* 监听表单数据变化
*
* @memberof CodeList
*/
@
Watch
(
'data'
,{
immediate
:
true
,
deep
:
true
})
onDataChange
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
){
this
.
dataHandle
();
}
}
/**
...
...
@@ -131,7 +174,13 @@ export default class CodeList extends Vue {
this
.
ifEmpty
=
false
;
// 动态代码表处理
if
(
Object
.
is
(
this
.
codelistType
,
"DYNAMIC"
))
{
this
.
codeListService
.
getItems
(
this
.
tag
).
then
((
res
:
any
)
=>
{
// 公共参数处理
let
data
:
any
=
{};
this
.
handlePublicParams
(
data
);
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
this
.
codeListService
.
getItems
(
this
.
tag
,
_context
,
_param
).
then
((
res
:
any
)
=>
{
let
items
=
res
;
_this
.
setItems
(
items
,
_this
);
}).
catch
((
error
:
any
)
=>
{
...
...
@@ -209,6 +258,28 @@ export default class CodeList extends Vue {
}
}
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof CodeList
*/
public
handlePublicParams
(
arg
:
any
)
{
// 合并表单参数
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{};
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{};
// 附加参数处理
if
(
this
.
itemParam
&&
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
context
,
this
.
itemParam
.
context
);
Object
.
assign
(
arg
.
context
,
_context
);
}
if
(
this
.
itemParam
&&
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
param
,
this
.
itemParam
.
param
);
Object
.
assign
(
arg
.
param
,
_param
);
}
}
}
</
script
>
...
...
app_web/src/components/dropdown-list-dynamic/dropdown-list-dynamic.vue
浏览文件 @
34d03f50
...
...
@@ -81,7 +81,7 @@ export default class DropDownListDynamic extends Vue {
@
Watch
(
'data'
,{
deep
:
true
})
onDataChange
(
newVal
:
any
,
val
:
any
){
if
(
newVal
){
this
.
handleOtherParam
();
}
}
...
...
@@ -145,26 +145,40 @@ export default class DropDownListDynamic extends Vue {
public
items
:
any
[]
=
[];
/**
* 处理额外参数
*/
public
handleOtherParam
(){
if
(
this
.
itemParam
){
this
.
queryParam
=
{};
this
.
otherParam
=
this
.
itemParam
.
parentdata
;
if
(
this
.
otherParam
&&
Object
.
keys
(
this
.
otherParam
).
length
>
0
){
Object
.
keys
(
this
.
otherParam
).
forEach
((
item
:
any
)
=>
{
let
value
:
string
|
null
=
this
.
otherParam
[
item
];
if
(
value
&&
value
.
startsWith
(
'%'
)
&&
value
.
endsWith
(
'%'
))
{
const
key
=
value
.
substring
(
1
,
value
.
length
-
1
);
if
(
this
.
data
&&
this
.
data
.
hasOwnProperty
(
key
))
{
value
=
(
this
.
data
[
key
]
!==
null
&&
this
.
data
[
key
]
!==
undefined
)
?
this
.
data
[
key
]
:
null
;
}
else
{
value
=
null
;
}
}
Object
.
assign
(
this
.
queryParam
,{[
item
]:
value
});
})
}
* 视图上下文
*
* @type {*}
* @memberof AppAutocomplete
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof DropDownListDynamic
*/
public
handlePublicParams
(
arg
:
any
)
{
// 合并表单参数
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{};
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{};
// 附加参数处理
if
(
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
context
,
this
.
itemParam
.
context
);
Object
.
assign
(
arg
.
context
,
_context
);
}
if
(
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
param
,
this
.
itemParam
.
param
);
Object
.
assign
(
arg
.
param
,
_param
);
}
}
...
...
@@ -182,7 +196,13 @@ export default class DropDownListDynamic extends Vue {
console
.
log
(
`----
${
this
.
tag
}
----代码表不存在`
);
}
}
else
if
(
this
.
tag
&&
Object
.
is
(
this
.
codelistType
,
"DYNAMIC"
)){
this
.
codeListService
.
getItems
(
this
.
tag
,{},
this
.
queryParam
).
then
((
res
:
any
)
=>
{
// 公共参数处理
let
data
:
any
=
{};
this
.
handlePublicParams
(
data
);
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
this
.
codeListService
.
getItems
(
this
.
tag
,
_context
,
_param
).
then
((
res
:
any
)
=>
{
this
.
items
=
res
;
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
this
.
tag
}
----代码表不存在`
);
...
...
@@ -199,7 +219,13 @@ export default class DropDownListDynamic extends Vue {
public
onClick
(
$event
:
any
){
if
(
$event
){
if
(
this
.
tag
&&
Object
.
is
(
this
.
codelistType
,
"DYNAMIC"
)){
this
.
codeListService
.
getItems
(
this
.
tag
,{},
this
.
queryParam
).
then
((
res
:
any
)
=>
{
// 公共参数处理
let
data
:
any
=
{};
this
.
handlePublicParams
(
data
);
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
this
.
codeListService
.
getItems
(
this
.
tag
,
_context
,
_param
).
then
((
res
:
any
)
=>
{
this
.
items
=
res
;
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
this
.
tag
}
----代码表不存在`
);
...
...
app_web/src/components/dropdown-list-mpicker/dropdown-list-mpicker.vue
浏览文件 @
34d03f50
...
...
@@ -84,6 +84,38 @@ export default class DropDownListMpicker extends Vue {
*/
@
Prop
()
public
placeholder
?:
string
;
/**
* 传入额外参数
*
* @type {*}
* @memberof DropDownListMpicker
*/
@
Prop
()
public
itemParam
?:
any
;
/**
* 视图上下文
*
* @type {*}
* @memberof DropDownListMpicker
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof DropDownListMpicker
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 传入表单数据
*
* @type {*}
* @memberof DropDownListMpicker
*/
@
Prop
()
public
data
?:
any
;
/**
* 计算属性(当前值)
* @type {any}
...
...
@@ -113,6 +145,28 @@ export default class DropDownListMpicker extends Vue {
*/
public
items
:
any
[]
=
[];
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof DropDownList
*/
public
handlePublicParams
(
arg
:
any
)
{
// 合并表单参数
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{};
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{};
// 附加参数处理
if
(
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
context
,
this
.
itemParam
.
context
);
Object
.
assign
(
arg
.
context
,
_context
);
}
if
(
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
param
,
this
.
itemParam
.
param
);
Object
.
assign
(
arg
.
param
,
_param
);
}
}
/**
* vue 生命周期
*
...
...
@@ -127,7 +181,13 @@ export default class DropDownListMpicker extends Vue {
console
.
log
(
`----
${
this
.
tag
}
----代码表不存在`
);
}
}
else
if
(
this
.
tag
&&
Object
.
is
(
this
.
codelistType
,
"DYNAMIC"
)){
this
.
codeListService
.
getItems
(
this
.
tag
).
then
((
res
:
any
)
=>
{
// 公共参数处理
let
data
:
any
=
{};
this
.
handlePublicParams
(
data
);
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
this
.
codeListService
.
getItems
(
this
.
tag
,
_context
,
_param
).
then
((
res
:
any
)
=>
{
this
.
items
=
res
;
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
this
.
tag
}
----代码表不存在`
);
...
...
@@ -143,7 +203,13 @@ export default class DropDownListMpicker extends Vue {
*/
public
onClick
(
$event
:
any
){
if
(
this
.
tag
&&
Object
.
is
(
this
.
codelistType
,
"DYNAMIC"
)){
this
.
codeListService
.
getItems
(
this
.
tag
).
then
((
res
:
any
)
=>
{
// 公共参数处理
let
data
:
any
=
{};
this
.
handlePublicParams
(
data
);
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
this
.
codeListService
.
getItems
(
this
.
tag
,
_context
,
_param
).
then
((
res
:
any
)
=>
{
this
.
items
=
res
;
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
this
.
tag
}
----代码表不存在`
);
...
...
app_web/src/components/dropdown-list/dropdown-list.vue
浏览文件 @
34d03f50
...
...
@@ -81,7 +81,7 @@ export default class DropDownList extends Vue {
@
Watch
(
'data'
,{
deep
:
true
})
onDataChange
(
newVal
:
any
,
val
:
any
){
if
(
newVal
){
this
.
handleOtherParam
();
}
}
...
...
@@ -93,6 +93,22 @@ export default class DropDownList extends Vue {
*/
@
Prop
()
public
itemParam
?:
any
;
/**
* 视图上下文
*
* @type {*}
* @memberof AppAutocomplete
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof AppFormDRUIPart
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 是否禁用
* @type {any}
...
...
@@ -145,26 +161,24 @@ export default class DropDownList extends Vue {
public
items
:
any
[]
=
[];
/**
* 处理额外参数
*/
public
handleOtherParam
(){
if
(
this
.
itemParam
){
this
.
queryParam
=
{};
this
.
otherParam
=
this
.
itemParam
.
parentdata
;
if
(
this
.
otherParam
&&
Object
.
keys
(
this
.
otherParam
).
length
>
0
){
Object
.
keys
(
this
.
otherParam
).
forEach
((
item
:
any
)
=>
{
let
value
:
string
|
null
=
this
.
otherParam
[
item
];
if
(
value
&&
value
.
startsWith
(
'%'
)
&&
value
.
endsWith
(
'%'
))
{
const
key
=
value
.
substring
(
1
,
value
.
length
-
1
);
if
(
this
.
data
&&
this
.
data
.
hasOwnProperty
(
key
))
{
value
=
(
this
.
data
[
key
]
!==
null
&&
this
.
data
[
key
]
!==
undefined
)
?
this
.
data
[
key
]
:
null
;
}
else
{
value
=
null
;
}
}
Object
.
assign
(
this
.
queryParam
,{[
item
]:
value
});
})
}
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof DropDownList
*/
public
handlePublicParams
(
arg
:
any
)
{
// 合并表单参数
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{};
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{};
// 附加参数处理
if
(
this
.
itemParam
&&
this
.
itemParam
.
context
)
{
let
_context
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
context
,
this
.
itemParam
.
context
);
Object
.
assign
(
arg
.
context
,
_context
);
}
if
(
this
.
itemParam
&&
this
.
itemParam
.
param
)
{
let
_param
=
this
.
$util
.
formatData
(
this
.
data
,
arg
.
param
,
this
.
itemParam
.
param
);
Object
.
assign
(
arg
.
param
,
_param
);
}
}
...
...
@@ -182,7 +196,13 @@ export default class DropDownList extends Vue {
console
.
log
(
`----
${
this
.
tag
}
----代码表不存在`
);
}
}
else
if
(
this
.
tag
&&
Object
.
is
(
this
.
codelistType
,
"DYNAMIC"
)){
this
.
codeListService
.
getItems
(
this
.
tag
,{},
this
.
queryParam
).
then
((
res
:
any
)
=>
{
// 公共参数处理
let
data
:
any
=
{};
this
.
handlePublicParams
(
data
);
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
this
.
codeListService
.
getItems
(
this
.
tag
,
_context
,
_param
).
then
((
res
:
any
)
=>
{
this
.
items
=
res
;
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
this
.
tag
}
----代码表不存在`
);
...
...
@@ -199,7 +219,13 @@ export default class DropDownList extends Vue {
public
onClick
(
$event
:
any
){
if
(
$event
){
if
(
this
.
tag
&&
Object
.
is
(
this
.
codelistType
,
"DYNAMIC"
)){
this
.
codeListService
.
getItems
(
this
.
tag
,{},
this
.
queryParam
).
then
((
res
:
any
)
=>
{
// 公共参数处理
let
data
:
any
=
{};
this
.
handlePublicParams
(
data
);
// 参数处理
let
_context
=
data
.
context
;
let
_param
=
data
.
param
;
this
.
codeListService
.
getItems
(
this
.
tag
,
_context
,
_param
).
then
((
res
:
any
)
=>
{
this
.
items
=
res
;
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
`----
${
this
.
tag
}
----代码表不存在`
);
...
...
app_web/src/components/tab-page-exp/tab-page-exp.less
浏览文件 @
34d03f50
// .ibiz-page-tag {
// position: relative;
// box-sizing: border-box;
// // width: calc(100% + 30px);
// height: 38px;
// padding: 0 60px 0 30px;
// background: #f6f6f6;
// .tags-body {
// position: relative;
// width: 100%;
// height: 100%;
// overflow: hidden;
// .tags-container {
// position: absolute;
// overflow: visible;
// white-space: nowrap;
// transition: left .3s ease;
// .ivu-tag {
// margin: 0;
// height: 38px;
// line-height: 38px;
// border: 0;
// border-radius: 0;
// border-right: 1px solid #ddd;
// font-size: 14px;
// .text-icon {
// height: 16px;
// margin-bottom: -3px;
// }
// .ivu-icon-ios-close {
// visibility: hidden;
// }
// .tag-text {
// display: table-cell;
// .ivu-tooltip {
// display: block;
// .ivu-tooltip-rel {
// display: block;
// max-width: 200px;
// overflow: hidden;
// text-overflow: ellipsis;
// }
// }
// }
// }
// .ivu-tag.tag-is-active {
// background: #fff;
// }
// .ivu-tag:hover,.ivu-tag.tag-is-active {
// .ivu-icon-ios-close {
// visibility: initial;
// }
// }
// }
// }
// .move-btn {
// font-size: 18px;
// width: 30px;
// height: 38px;
// line-height: 38px;
// border-left: 1px solid #ddd;
// border-right: 1px solid #ddd;
// text-align: center;
// cursor: pointer;
// }
// .move-btn:hover {
// background: #efefef;
// }
// .move-left, .move-right, .ivu-dropdown{
// position: absolute;
// top: 0;
// }
// .move-left {
// left: 0;
// }
// .move-right {
// right: 30px;
// }
// .ivu-dropdown {
// right: 0;
// }
// }
// .tags-transition-move {
// transition: transform .3s;
// }
// .tags-transition-enter,.tags-transition-leave-to{
// opacity: 0;
// }
.ibiz-page-tag {
position: relative;
box-sizing: border-box;
// width: calc(100% + 30px);
height: 38px;
padding: 0 60px 0 30px;
background: #f6f6f6;
.tags-body {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
.tags-container {
position: absolute;
overflow: visible;
white-space: nowrap;
transition: left .3s ease;
.ivu-tag {
margin: 0;
height: 38px;
line-height: 38px;
border: 0;
border-radius: 0;
border-right: 1px solid #ddd;
font-size: 14px;
.text-icon {
height: 16px;
margin-bottom: -3px;
}
.ivu-icon-ios-close {
visibility: hidden;
}
.tag-text {
display: table-cell;
.ivu-tooltip {
display: block;
.ivu-tooltip-rel {
display: block;
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
}
.ivu-tag.tag-is-active {
background: #fff;
}
.ivu-tag:hover,.ivu-tag.tag-is-active {
.ivu-icon-ios-close {
visibility: initial;
}
}
.el-tabs{
.el-tabs__nav{
padding:0px 10px;
border:none;
}
.el-tabs__item{
color:#ccc;
border:none;
}
.el-tabs__item:hover{
color:#409eff;
}
.is-active{
color:#409eff;
border-bottom:2px solid #409eff !important;
}
.el-tabs__nav-scroll{
background-color: white;
}
.el-tabs__header{
box-shadow: 0 1px 2px 0 rgba(0,0,0,.15);
margin:0 0 1 0;
}
}
.move-btn {
font-size: 18px;
width: 30px;
height: 38px;
line-height: 38px;
border-left: 1px solid #ddd;
border-right: 1px solid #ddd;
text-align: center;
cursor: pointer;
}
.move-btn:hover {
background: #efefef;
}
.move-left, .move-right, .ivu-dropdown{
position: absolute;
top: 0;
}
.move-left {
left: 0;
}
.move-right {
right: 30px;
}
.ivu-dropdown {
right: 0;
}
}
.tags-transition-move {
transition: transform .3s;
}
.tags-transition-enter,.tags-transition-leave-to{
opacity: 0;
}
\ No newline at end of file
app_web/src/components/tab-page-exp/tab-page-exp.vue
浏览文件 @
34d03f50
此差异已折叠。
点击以展开。
app_web/src/model/chart-detail/chart-series.ts
浏览文件 @
34d03f50
...
...
@@ -122,6 +122,14 @@ export class ChartSeries {
*/
public
seriesLayoutBy
:
string
=
"column"
;
/**
* 序列代码表
*
* @type {*}
* @memberof ChartSeries
*/
public
seriesCodeList
:
any
;
/**
* Creates an instance of ChartSeries.
* ChartSeries 实例
...
...
@@ -144,6 +152,7 @@ export class ChartSeries {
this
.
dataSetFields
=
opts
.
dataSetFields
?
opts
.
dataSetFields
:[];
this
.
seriesMap
=
opts
.
seriesMap
?
opts
.
seriesMap
:
null
;
this
.
seriesIndex
=
opts
.
seriesIndex
?
opts
.
seriesIndex
:
0
;
this
.
seriesCodeList
=
opts
.
seriesCodeList
?
opts
.
seriesCodeList
:
null
;
}
/**
...
...
@@ -285,4 +294,14 @@ export class ChartSeries {
public
setSeriesIndex
(
state
:
number
):
void
{
this
.
seriesIndex
=
state
;
}
/**
* 设置序列代码表
*
* @param {any} state
* @memberof ChartSeries
*/
public
setSeriesCodeList
(
state
:
any
):
void
{
this
.
seriesCodeList
=
state
;
}
}
\ No newline at end of file
app_web/src/pages/disk/sdindex-view/sdindex-view-base.vue
浏览文件 @
34d03f50
...
...
@@ -2,25 +2,13 @@
<div
class=
"index_view sdindex-view"
>
<app-studioaction
:viewTitle=
"$t(model.srfCaption)"
viewName=
"sdindexview"
></app-studioaction>
<layout
:class=
"themeClasses"
:style=
"themeStyle"
>
<header
class=
"index_header"
>
<div
class=
"header-left"
>
<div
class=
"page-logo"
>
<img
src=
"../../../assets/img/logo.png"
height=
"32"
/>
<span
style=
"display: inline-block;margin-left: 10px;font-size: 22px;"
>
{{
$t
(
model
.
srfCaption
)
}}
</span>
</div>
</div>
<div
class=
"header-right"
style=
"display: flex;align-items: center;justify-content: space-between;"
>
<app-header-menus
/>
<app-lang
style=
'font-size: 15px;padding: 0 10px;'
></app-lang>
<app-orgsector></app-orgsector>
<app-user></app-user>
<app-theme
style=
"width:45px;display: flex;justify-content: center;"
></app-theme>
</div>
</header>
<layout>
<sider
:width=
"collapseChange ? 64 : 200"
hide-trigger
v-model=
"collapseChange"
>
<div
class=
"sider-top"
>
<i
class=
"ivu-icon ivu-icon-md-menu"
@
click=
"handleClick"
></i>
<div
class=
"page-logo"
>
<img
v-show=
"collapseChange"
src=
"../../../assets/img/logo.png"
height=
"16"
/>
<span
v-show=
"!collapseChange"
style=
"display: block;text-align: center;font-weight: 300;font-size: 20px;"
>
{{
$t
(
model
.
srfCaption
)
}}
</span>
</div>
</div>
<view
_appmenu
:viewState=
"viewState"
...
...
@@ -37,12 +25,30 @@
@
closeview=
"closeView($event)"
>
</view
_appmenu
>
</sider>
<content
class=
"index_content"
:style=
"
{'width':this.collapseChange ? 'calc(100vw - 64px)' : 'calc(100vw - 200px)' }">
<tab-page-exp></tab-page-exp>
<app-keep-alive
:routerList=
"getRouterList"
>
<router-view
:key=
"getRouterViewKey"
></router-view>
</app-keep-alive>
</content>
<layout>
<header
class=
"index_header"
>
<div
class=
"header-left"
>
<div
class=
"page-logo"
>
<i
v-show=
"!collapseChange"
class=
"ivu-icon el-icon-s-fold"
@
click=
"handleClick"
></i>
<i
v-show=
"collapseChange"
class=
"ivu-icon el-icon-s-unfold"
@
click=
"handleClick"
></i>
<app-breadcrumb
:defPSAppView=
"defPSAppView"
></app-breadcrumb>
</div>
</div>
<div
class=
"header-right"
style=
"display: flex;align-items: center;justify-content: space-between;"
>
<app-header-menus
/>
<app-lang
style=
'font-size: 15px;padding: 0 10px;'
></app-lang>
<app-orgsector></app-orgsector>
<app-user></app-user>
<app-theme
style=
"width:45px;display: flex;justify-content: center;"
></app-theme>
</div>
</header>
<content
class=
"index_content"
:style=
"
{'width':this.collapseChange ? 'calc(100vw - 64px)' : 'calc(100vw - 200px)' }">
<tab-page-exp></tab-page-exp>
<app-keep-alive
:routerList=
"getRouterList"
>
<router-view
:key=
"getRouterViewKey"
></router-view>
</app-keep-alive>
</content>
</layout>
</layout>
</layout>
</div>
...
...
app_web/src/pages/disk/sdindex-view/sdindex-view.less
浏览文件 @
34d03f50
...
...
@@ -5,12 +5,16 @@
.index_view{
margin-bottom: 1px;
width: 100%;
height: 100%;
padding: 0;
margin: 0;
overflow: hidden;
color:#303133;
background-color: #fff;
.index_header{
height:
50
px;
height:
65
px;
padding:0 20px;
display: flex;
align-items: center;
...
...
@@ -20,6 +24,29 @@
align-items: center;
}
.header-left{
i{
color:#b4bcc8;
}
i:hover{
color:#1890ff;
}
> .app-breadcrumb{
> span .el-breadcrumb__item .el-breadcrumb__inner{
a{
color:#606d80 !important;
cursor: pointer !important;
}
a:last-child:hover{
color:#1890ff !important;
}
}
}
.ivu-icon{
font-size: 20px;
padding: 4px;
margin-top: -2px;
cursor: pointer;
}
display: flex;
align-items: center;
justify-content: space-between;
...
...
@@ -35,7 +62,7 @@
}
}
.index_content{
background-color:#
fff
;
background-color:#
F0F2F5
;
height:calc(100vh - 50px);
overflow-x: hidden;
overflow-y: hidden;
...
...
@@ -46,16 +73,21 @@
}
}
.ivu-layout .ivu-layout-sider .ivu-layout-sider-children .sider-top{
line-height: 58px;
text-align: right;
padding-right: 18px;
}
.ivu-layout .ivu-layout-sider .ivu-layout-sider-children .sider-top .ivu-icon{
font-size: 20px;
padding: 4px;
margin-top: -2px;
line-height: 58px;
text-align: center;
font-size: 20px;
cursor: pointer;
}
.sider-top{
margin-bottom: 1px;
height:65px;
box-shadow: 0 1px 2px 0 rgba(0,0,0,.15);
> .page-logo{
text-align: center;
}
}
}
/*** BRGIN:滚动条样式 ***/
...
...
app_web/src/service/app/codelist-service.ts
浏览文件 @
34d03f50
...
...
@@ -41,6 +41,14 @@ export default class CodeListService {
*/
public
static
codelistCache
:
Map
<
string
,
any
>
=
new
Map
();
/**
* 动态代码表缓存(已完成)
*
* @type {Map<string,any>}
* @memberof CodeListService
*/
public
static
codelistCached
:
Map
<
string
,
any
>
=
new
Map
();
/**
* 代码表--云系统操作者
...
...
@@ -60,31 +68,22 @@ export default class CodeListService {
*/
public
getItems
(
tag
:
string
,
context
:
any
=
{},
data
?:
any
,
isloading
?:
boolean
,):
Promise
<
any
[]
>
{
let
_this
:
any
=
this
;
if
(
context
&&
context
.
srfsessionid
){
delete
context
.
srfsessionid
;
}
let
isEnableCache
:
boolean
=
_this
[
tag
].
isEnableCache
;
let
cacheTimeout
:
any
=
_this
[
tag
].
cacheTimeout
;
return
new
Promise
((
resolve
:
any
,
reject
:
any
)
=>
{
// 如有查询参数传递过来,需直接加载,不能使用缓存
if
(
data
&&
Object
.
keys
(
data
).
length
>
0
){
if
(
_this
[
tag
])
{
_this
[
tag
].
getItems
(
context
,
JSON
.
parse
(
JSON
.
stringify
(
data
)),
isloading
).
then
((
result
:
any
)
=>
{
resolve
(
result
);
}).
catch
((
error
:
any
)
=>
{
Promise
.
reject
([]);
})
}
else
{
return
Promise
.
reject
([]);
}
}
else
{
// 启用缓存
if
(
isEnableCache
){
// 加载完成,从
store
获取
if
(
this
.
$store
&&
_this
.
$store
.
getters
){
let
items
:
any
=
_this
.
$store
.
getters
.
getCodeListItems
(
tag
);
// 加载完成,从
本地缓存
获取
if
(
CodeListService
.
codelistCached
.
get
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
)
){
let
items
:
any
=
CodeListService
.
codelistCached
.
get
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
);
if
(
items
.
length
>
0
){
if
(
cacheTimeout
!==
-
1
){
if
(
new
Date
().
getTime
()
>
_this
[
tag
].
expirationTime
){
_this
[
tag
].
getItems
(
context
,
data
,
isloading
).
then
((
result
:
any
)
=>
{
_this
.
$store
.
commit
(
'updateCodeList'
,{
srfkey
:
tag
,
items
:
result
});
CodeListService
.
codelistCached
.
set
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
,{
items
:
result
});
_this
[
tag
].
expirationTime
=
new
Date
().
getTime
()
+
cacheTimeout
;
resolve
(
result
);
}).
catch
((
error
:
any
)
=>
{
...
...
@@ -99,10 +98,11 @@ export default class CodeListService {
}
}
if
(
_this
[
tag
])
{
const
callback
:
Function
=
(
tag
:
string
,
promise
:
Promise
<
any
>
)
=>
{
const
callback
:
Function
=
(
context
:
any
=
{},
data
:
any
=
{},
tag
:
string
,
promise
:
Promise
<
any
>
)
=>
{
promise
.
then
((
result
:
any
)
=>
{
console
.
log
()
if
(
result
.
length
>
0
){
_this
.
$store
.
commit
(
'updateCodeList'
,{
srfkey
:
tag
,
items
:
result
});
CodeListService
.
codelistCached
.
set
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
,{
items
:
result
});
return
resolve
(
result
);
}
else
{
return
resolve
([]);
...
...
@@ -112,15 +112,15 @@ export default class CodeListService {
})
}
// 加载中,UI又需要数据,解决连续加载同一代码表问题
if
(
CodeListService
.
codelistCache
.
get
(
tag
)){
callback
(
tag
,
CodeListService
.
codelistCache
.
get
(
tag
));
if
(
CodeListService
.
codelistCache
.
get
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
)){
callback
(
context
,
data
,
tag
,
CodeListService
.
codelistCache
.
get
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
));
}
else
{
let
result
:
Promise
<
any
>
=
_this
[
tag
].
getItems
(
context
,
data
,
isloading
);
CodeListService
.
codelistCache
.
set
(
tag
,
result
);
CodeListService
.
codelistCache
.
set
(
`
${
JSON
.
stringify
(
context
)}
-
${
JSON
.
stringify
(
data
)}
-
${
tag
}
`
,
result
);
if
(
cacheTimeout
!==
-
1
){
_this
[
tag
].
expirationTime
=
new
Date
().
getTime
()
+
cacheTimeout
;
}
callback
(
tag
,
result
);
callback
(
context
,
data
,
tag
,
result
);
}
}
}
else
{
...
...
@@ -134,7 +134,6 @@ export default class CodeListService {
return
Promise
.
reject
([]);
}
}
}
})
}
}
\ No newline at end of file
app_web/src/styles/default.less
浏览文件 @
34d03f50
...
...
@@ -63,10 +63,11 @@
}
.view-container {
height: calc(100% - 38px);
// height: 100%;
// display: flex;
padding: 0 15px;
height: calc(100% - 65px);
padding: 0 12px;
margin: 0px 12px;
background: white;
box-shadow: 0 2px 4px 0 rgba(0,0,0,.12), 0 0 6px 0 rgba(0,0,0,.04);
// flex-direction: column;
> .view-card {
height: 100%;
...
...
@@ -110,11 +111,16 @@
.viewcontainer2 {
height: 100%;
width: 100%;
padding: 0px 12px !important;
margin: 0px !important;
-webkit-box-shadow: none !important;
}
.viewcontainer3 {
height: 100%;
width: 100%;
padding: 0px;
padding: 0px 12px !important;
margin: 0px !important;
-webkit-box-shadow: none !important;
}
...
...
@@ -207,7 +213,7 @@
}
}
.view-container.degridview, .view-container.degridview9, .view-container.dewfgridview, .view-container.delistview, .view-container.delistview9, .view-container.dedataview, .view-container.dedataview9
, .view-container.decalendarview, .view-container.decalendarview9
{
.view-container.degridview, .view-container.degridview9, .view-container.dewfgridview, .view-container.delistview, .view-container.delistview9, .view-container.dedataview, .view-container.dedataview9{
>.view-card.view-no-caption{
>.ivu-card-body{
height: 100%;
...
...
app_web/src/theme/blue.theme.less
浏览文件 @
34d03f50
/*** BRGIN:默认蓝色主题 ***/
.app_theme_blue {
> header {
background-color: #2d5f8b;
color: #6ba1d1;
> .ivu-layout-has-sider > .ivu-layout > header{
.app-theme-icon {
color: #6ba1d1;
}
.page-logo {
color: #fff;
}
.header-right {
> div:hover {
background: #3774aa;
}
}
.el-menu.el-menu--horizontal {
/* .el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #2d5f8b;
color: #6ba1d1;
...
...
@@ -36,40 +26,41 @@
color: #f1f1f1;
}
}
}
}
*/
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #4276a4;
.sider-top {
.ivu-icon {
background: #2d5f8b;
color: #6ba1d1;
}
}
.app-menu {
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
border-left: 4px solid #d64635;
}
}
> .ivu-layout-sider {
background-color: #4276a4;
.sider-top {
color: hsla(0,0%,100%,.8);
background: #2d5f8b;
}
}
}
> .el-menu , > .ivu-layout > .ivu-layout-sider .app-app-menu > .app-menu {
background: #4276a4;
.el-menu-item:hover, .el-menu-item
.is-active
{
.el-menu-item:hover, .el-menu-item
:hover
{
background: #3c6c95 !important;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-submenu_title:hover{
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-menu-item.is-active{
border-left: 4px solid #d64635;
background: #3c6c95 !important;
}
.el-submenu.is-opened, .el-submenu:hover, .el-submenu.is-active {
> .el-submenu__title {
background: #3c6c95 !important;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
background: #4276a4;
}
}
.el-submenu__title, .el-menu-item {
...
...
@@ -78,9 +69,16 @@
color: #c9dff5;
}
}
.el-submenu__title:hover{
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-menu-item {
border-top: 1px solid #4276a4;
background: #4276a4;
border-left: 4px solid transparent;
}
.el-submenu {
border-top: 1px solid #4276a4;
...
...
@@ -97,5 +95,11 @@
.ivu-menu-submenu-title{
color: #f5f5f5;
}
.sider-top{
color:#fff;
}
div.ivu-divider{
background-color: #c9dff5;
}
}
/*** END:默认蓝色主题 ***/
\ No newline at end of file
app_web/src/theme/dark-blue.theme.less
浏览文件 @
34d03f50
/*** BRGIN:默认Dark Blue主题 ***/
.app_theme_darkblue {
> header {
background-color: #2b3643;
color: #606d80;
.app-theme-icon {
color: #606d80;
}
.page-logo {
color: #fff;
}
.header-right {
> div:hover {
background: #3b4a5c;
}
}
.el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #2b3643;
color: #606d80;
i {
color: #606d80;
}
}
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
background-color: #364150;
color: #f1f1f1;
i {
color: #f1f1f1;
}
}
> .el-menu-item:hover, > .el-submenu:hover > .el-submenu__title {
background-color: #3e4b5c;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
}
> .ivu-layout-has-sider > .ivu-layout > header{
.app-theme-icon {
color: #606d80;
}/*
.el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #20222A;
color: #606d80;
i {
color: #606d80;
}
}
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
background-color: #20222A;
color: #f1f1f1;
i {
color: #f1f1f1;
}
}
> .el-menu-item:hover, > .el-submenu:hover > .el-submenu__title {
background-color: #3e4b5c;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
} */
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #20222A;
.sider-top {
color: hsla(0,0%,100%,.8);
background-color: #20222A;
}
}
}
> .el-menu , > .ivu-layout > .ivu-layout-sider .app-app-menu > .app-menu {
background: #20222A;
.el-menu-item:hover, .el-menu-item:hover {
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-submenu__title:hover{
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-menu-item.is-active{
border-left: 4px solid #409EFF;
background: #060708 !important;
color:white;
}
.el-submenu.is-opened, .el-submenu:hover, .el-submenu.is-active {
> .el-submenu__title {
background: #20222A;
}
}
.el-submenu__title, .el-menu-item {
color: #b4bcc8;
i {
color: #b4bcc8;
}
}
.el-menu-item {
border-top: 1px solid #20222A;
background: #20222A;
border-left: 4px solid transparent;
}
.el-submenu {
border-top: 1px solid #20222A;
background: #20222A;
> .el-menu {
border-top: 1px solid #20222A;
background: #20222A;
}
}
}
.ivu-menu-light{
background: #20222A;
}
.ivu-menu-submenu-title{
color: #fff;
}
.sider-top{
color:#fff;
}
div.ivu-divider{
background-color: #b4bcc8;
}
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #364150;
.sider-top {
.ivu-icon {
background: #2b3643;
color: #606d80;
}
}
.app-menu {
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
border-left: 4px solid #1caf9a;
}
}
}
}
> .el-menu , > .ivu-layout > .ivu-layout-sider .app-app-menu > .app-menu {
background: #364150;
.el-menu-item:hover, .el-menu-item.is-active {
background: #3e4b5c !important;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-submenu.is-opened, .el-submenu:hover, .el-submenu.is-active {
> .el-submenu__title {
background: #3e4b5c !important;
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
}
.el-submenu__title, .el-menu-item {
color: #b4bcc8;
i {
color: #b4bcc8;
}
}
.el-menu-item {
border-top: 1px solid #364150;
background: #364150;
}
.el-submenu {
border-top: 1px solid #364150;
background: #364150;
> .el-menu {
border-top: 1px solid #364150;
background: #364150;
}
}
}
.ivu-menu-light{
background: #364150;
}
.ivu-menu-submenu-title{
color: #fff;
}
}
/*** END:默认Dark Blue主题 ***/
\ No newline at end of file
/*** END:默认Dark Blue主题 ***/
\ No newline at end of file
app_web/src/theme/default.theme.less
浏览文件 @
34d03f50
/*** BRGIN:默认亮色主题 ***/
.app-default-theme {
> header {
background-color: #e8eaec;
color: #aaaaaa;
.app-theme-icon {
color: #aaaaaa;
}
.page-logo {
color: #535c70;
}
.header-right {
> div:hover {
background: #d4d4d4;
}
}
.el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #e1e1e1;
color: #aaaaaa;
i {
color: #aaaaaa;
}
}
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
background-color: #f6f6f6;
color: #666666;
i {
color: #666666;
}
}
> .el-menu-item:hover, > .el-submenu:hover > .el-submenu__title {
background-color: #e9e9e9;
color: #666666 !important;
i {
color: #666666;
}
}
}
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #f6f6f6;
.sider-top {
.ivu-icon {
background: #f6f6f6;
color: #aaaaaa;
}
}
.app-menu {
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
border-left: 4px solid #1890ff;
}
}
}
}
> .el-menu , > .ivu-layout > .ivu-layout-sider .app-app-menu > .app-menu {
background: #f6f6f6;
.el-menu-item:hover, .el-menu-item.is-active {
> .ivu-layout-has-sider > .ivu-layout > header {
.app-theme-icon {
color: #aaaaaa;
}
/* .el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #e1e1e1;
color: #aaaaaa;
i {
color: #aaaaaa;
}
}
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
background-color: #f6f6f6;
color: #666666;
i {
color: #666666;
}
}
> .el-menu-item:hover, > .el-submenu:hover > .el-submenu__title {
background-color: #e9e9e9;
color: #666666 !important;
i {
color: #666666;
}
}
} */
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #f6f6f6;
.sider-top {
background-color: #e8eaec;
.ivu-icon {
color: #aaaaaa;
}
}
}
}
> .el-menu , > .ivu-layout > .ivu-layout-sider .app-app-menu > .app-menu {
background: #f6f6f6;
.el-menu-item:hover, .el-menu-item:hover,.el-menu-item.is-active {
background: #fff !important;
color: #1890ff !important;
i {
color: #1890ff;
}
}
.el-submenu__title:hover{
color: #1890ff !important;
i {
color: #1890ff;
}
}
.el-menu-item.is-active{
border-left: 4px solid #1890ff;
background: #fff !important;
color: #1890ff !important;
i
{
color: #1890ff;
}
}
.el-submenu.is-opened, .el-submenu:hover, .el-submenu.is-active {
> .el-submenu__title
{
background: #fff !important
;
color: #1890ff !important;
i {
color: #1890ff;
}
}
}
.el-submenu__title, .el-menu-item {
color: #666666
;
i {
color: #666666;
}
}
.el-menu-item
{
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
}
.el-submenu {
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
> .el-menu {
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
}
}
}
.ivu-menu-light{
background: #f6f6f6;
}
.ivu-menu-submenu-title{
color: #000;
}
.el-submenu.is-opened, .el-submenu:hover
{
> .el-submenu__title {
background: #f6f6f6;
}
}
.el-submenu__title, .el-menu-item
{
color: #666666
;
i {
color: #666666;
}
}
.el-menu-item {
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
border-left: 4px solid transparent
;
}
.el-submenu {
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
> .el-menu
{
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
}
}
}
.ivu-menu-light{
background: #f6f6f6;
}
.ivu-menu-submenu-title{
color: #000;
}
.sider-top{
color:#000;
}
div.ivu-divider{
background-color: #b3b3b3;
}
}
}
/*** END:默认亮色主题 ***/
\ No newline at end of file
/*** END:默认亮色主题 ***/
\ No newline at end of file
app_web/src/utils/app-modal/app-modal.less
浏览文件 @
34d03f50
...
...
@@ -11,7 +11,7 @@
padding: 0;
height: calc(100% - 52px);
.view-container{
padding: 1
5
px;
padding: 1
2
px;
}
}
}
...
...
app_web/src/utils/types/util.d.ts
浏览文件 @
34d03f50
...
...
@@ -117,16 +117,18 @@ export declare interface Util {
* @memberof Util
*/
srfFilePath2
(
name
:
string
):
string
;
/**
* 附加参数格式化
*
* @static
* @param {any} arg 表单数据
* @param {any} parent 外层context或viewparams
* @param {any} params 附加参数
* @returns {any}
* @memberof Util
*/
formatData
(
arg
:
any
,
params
:
any
):
any
formatData
(
arg
:
any
,
parent
:
any
,
params
:
any
):
any
;
/**
* 日期格式化
...
...
app_web/src/utils/util/util.ts
浏览文件 @
34d03f50
...
...
@@ -293,11 +293,12 @@ export class Util {
*
* @static
* @param {any} arg 表单数据
* @param {any} parent 外层context或viewparams
* @param {any} params 附加参数
* @returns {any}
* @memberof Util
*/
public
static
formatData
(
arg
:
any
,
params
:
any
):
any
{
public
static
formatData
(
arg
:
any
,
parent
:
any
,
params
:
any
):
any
{
let
_data
:
any
=
{};
Object
.
keys
(
params
).
forEach
((
name
:
string
)
=>
{
if
(
!
name
)
{
...
...
@@ -307,7 +308,13 @@ export class Util {
if
(
value
&&
value
.
startsWith
(
'%'
)
&&
value
.
endsWith
(
'%'
))
{
const
key
=
value
.
substring
(
1
,
value
.
length
-
1
);
if
(
arg
&&
arg
.
hasOwnProperty
(
key
))
{
value
=
(
arg
[
key
]
!==
null
&&
arg
[
key
]
!==
undefined
)
?
arg
[
key
]
:
null
;
if
(
arg
[
key
]
!==
null
&&
arg
[
key
]
!==
undefined
){
value
=
arg
[
key
];
}
else
if
(
parent
[
key
]
!==
null
&&
parent
[
key
]
!==
undefined
){
value
=
parent
[
key
];
}
else
{
value
=
null
;
}
}
else
{
value
=
null
;
}
...
...
app_web/src/widgets/app/sdindex-view-appmenu/sdindex-view-appmenu.less
浏览文件 @
34d03f50
...
...
@@ -21,28 +21,32 @@
}
}
.el-submenu__title i, .el-menu-item i {
font-size: 16px;
width: 16px;
font-size: 12px;
width: 18px;
}
.el-submenu__title .app-menu-icon,.el-submenu__title .app-menu-icon{
width:20px;
font-size: 14px;
}
.el-submenu__title .text {
font-size: 16px;
}
.el-menu-item, .el-submenu__title {
height:
36
px;
font-size: 1
6
px;
line-height:
32
px;
height:
50
px;
font-size: 1
4
px;
line-height:
50
px;
}
.el-menu-item, .el-submenu, .el-menu {
border-top: 1px solid #fff;
}
> .el-menu-item, > .el-submenu > .el-submenu__title {
height: 40px;
line-height: 36px;
border-left: 4px solid transparent;
height: 56px;
line-height: 56px;
padding-left: 16px !important;
}
.app-menu-icon {
margin-right: 4px;
margin: 4px;
text-align: center;
}
> .el-submenu {
> .el-menu {
...
...
@@ -70,8 +74,8 @@
}
}
.ivu-divider-horizontal {
width:
calc(100% - 32px)
;
min-width:
calc(100% - 32px)
;
width:
100%
;
min-width:
100%
;
margin: 4px auto;
margin-bottom: 1px;
}
...
...
@@ -99,8 +103,8 @@
}
}
.ivu-divider-horizontal {
width:
calc(100% - 12px)
;
min-width:
calc(100% - 12px)
;
width:
100%
;
min-width:
100%
;
margin: 4px auto;
margin-bottom: 1px;
}
...
...
app_web/yarn.lock
浏览文件 @
34d03f50
...
...
@@ -5238,10 +5238,10 @@ human-signals@^1.1.1:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
ibiz-gantt-elastic@^1.0.1
5
:
version "1.0.1
5
"
resolved "https://registry.
yarnpkg.com/ibiz-gantt-elastic/-/ibiz-gantt-elastic-1.0.15.tgz#e57736254aaf5baea28225bce2d29d8bd8adcc2d
"
integrity sha
512-V3uLoN3BN32BagpV1kLm4nFSs4neJ/Cnykd7OIyLv11rjqTWFAENHBpZekioPFF4k2iCyAdRr5smzZbGJdSQxg=
=
ibiz-gantt-elastic@^1.0.1
6
:
version "1.0.1
6
"
resolved "https://registry.
npm.taobao.org/ibiz-gantt-elastic/download/ibiz-gantt-elastic-1.0.16.tgz#e2de7e8d4bdb3c292cfbc97c4f970c8ecfe6c43b
"
integrity sha
1-4t5+jUvbPCks+8l8T5cMjs/mxDs
=
dependencies:
dayjs "^1.8.16"
resize-observer-polyfill "^1.5.1"
...
...
@@ -5249,10 +5249,10 @@ ibiz-gantt-elastic@^1.0.15:
vue-slider-component "^3.0.40"
vue-switches "^2.0.1"
ibiz-vue-lib@^0.1.
9
:
version "0.1.
9
"
resolved "https://registry.
yarnpkg.com/ibiz-vue-lib/-/ibiz-vue-lib-0.1.9.tgz#d7088deb5577af3095887ca897c1710bae174682
"
integrity sha
512-CotV3xIB04+QUUeMlfsVj5BseVPQ+IHyKdwU+MXGh+2e91Nt7N/z/LElakhAiGkSpaaKoMdlKCOdhD0qqJ3wNQ=
=
ibiz-vue-lib@^0.1.
10
:
version "0.1.
10
"
resolved "https://registry.
npm.taobao.org/ibiz-vue-lib/download/ibiz-vue-lib-0.1.10.tgz#660f6f7fb73b5c63e3daa0921faf13c0cdc96de5
"
integrity sha
1-Zg9vf7c7XGPj2qCSH68TwM3JbeU
=
dependencies:
axios "^0.19.2"
core-js "^3.6.4"
...
...
ibzdisk-util/src/main/java/cn/ibizlab/util/enums/DEPredefinedFieldType.java
浏览文件 @
34d03f50
...
...
@@ -48,6 +48,10 @@ public enum DEPredefinedFieldType {
* 逻辑有效
*/
LOGICVALID
,
/**
* 排序
*/
ORDERVALUE
,
/**
* 不处理
*/
...
...
ibzdisk-util/src/main/java/cn/ibizlab/util/service/IBZConfigService.java
浏览文件 @
34d03f50
...
...
@@ -20,23 +20,28 @@ import org.springframework.util.StringUtils;
@Service
public
class
IBZConfigService
extends
ServiceImpl
<
IBZConfigMapper
,
IBZConfig
>
implements
IService
<
IBZConfig
>
{
@Value
(
"${ibiz.systemid:ibzdisk}"
)
private
String
systemId
;
@Cacheable
(
value
=
"ibzou_configs"
,
key
=
"'cfgid:'+#p0+'||'+#p1+'||'+#p2"
)
@Value
(
"${ibiz.admin.userid:0100}"
)
private
String
adminuserid
;
@Cacheable
(
value
=
"ibzrt_configs"
,
key
=
"'cfgid:'+#p0+'||'+#p1+'||'+#p2"
)
public
JSONObject
getConfig
(
String
cfgType
,
String
targetType
,
String
userId
)
{
if
(
StringUtils
.
isEmpty
(
userId
)||
StringUtils
.
isEmpty
(
cfgType
)||
StringUtils
.
isEmpty
(
targetType
))
throw
new
BadRequestAlertException
(
"获取配置失败,参数缺失"
,
"IBZConfig"
,
cfgType
);
IBZConfig
config
=
this
.
getOne
(
Wrappers
.
query
(
IBZConfig
.
builder
().
systemId
(
systemId
).
cfgType
(
cfgType
).
targetType
(
targetType
).
userId
(
userId
).
build
()),
false
);
if
(
config
==
null
)
return
new
JSONObject
();
else
return
JSON
.
parseObject
(
config
.
getCfg
());
if
(
config
==
null
)
{
config
=
this
.
getOne
(
Wrappers
.
query
(
IBZConfig
.
builder
().
systemId
(
systemId
).
cfgType
(
cfgType
).
targetType
(
targetType
).
userId
(
adminuserid
).
build
()),
false
);
if
(
config
==
null
)
{
return
new
JSONObject
();
}
}
return
JSON
.
parseObject
(
config
.
getCfg
());
}
@CacheEvict
(
value
=
"ibz
ou
_configs"
,
key
=
"'cfgid:'+#p0+'||'+#p1+'||'+#p2"
)
@CacheEvict
(
value
=
"ibz
rt
_configs"
,
key
=
"'cfgid:'+#p0+'||'+#p1+'||'+#p2"
)
public
boolean
saveConfig
(
String
cfgType
,
String
targetType
,
String
userId
,
JSONObject
config
)
{
if
(
StringUtils
.
isEmpty
(
userId
)||
StringUtils
.
isEmpty
(
cfgType
)||
StringUtils
.
isEmpty
(
targetType
))
...
...
@@ -47,7 +52,7 @@ public class IBZConfigService extends ServiceImpl<IBZConfigMapper, IBZConfig> im
return
this
.
saveOrUpdate
(
IBZConfig
.
builder
().
systemId
(
systemId
).
cfgType
(
cfgType
).
targetType
(
targetType
).
userId
(
userId
).
cfg
(
cfg
).
updateDate
(
DataObject
.
getNow
()).
build
());
}
@CacheEvict
(
value
=
"ibz
ou
_configs"
,
key
=
"'cfgid:'+#p0+'||'+#p1+'||'+#p2"
)
@CacheEvict
(
value
=
"ibz
rt
_configs"
,
key
=
"'cfgid:'+#p0+'||'+#p1+'||'+#p2"
)
public
void
resetConfig
(
String
cfgType
,
String
targetType
,
String
userId
)
{
if
(
StringUtils
.
isEmpty
(
userId
)||
StringUtils
.
isEmpty
(
cfgType
)||
StringUtils
.
isEmpty
(
targetType
))
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录