Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzdisk
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzdisk
提交
34d03f50
提交
34d03f50
编写于
4年前
作者:
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修复
...
...
@@ -220,5 +282,3 @@
## v7.0.0-alpha.1 [2020-4-29]
初始化文件
\ No newline at end of file
This diff is collapsed.
Click to expand it.
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"
,
...
...
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
>
...
...
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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
>
...
...
This diff is collapsed.
Click to expand it.
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
;
}
...
...
This diff is collapsed.
Click to expand it.
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
);
...
...
This diff is collapsed.
Click to expand it.
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
)
=>
{
...
...
This diff is collapsed.
Click to expand it.
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;
}
...
...
This diff is collapsed.
Click to expand it.
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
;
}
...
...
This diff is collapsed.
Click to expand it.
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
);
...
...
This diff is collapsed.
Click to expand it.
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
}
----代码表不存在!`
);
})
}
...
...
This diff is collapsed.
Click to expand it.
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'
;
/**
* 语言映射文件
...
...
This diff is collapsed.
Click to expand it.
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 值
*
...
...
This diff is collapsed.
Click to expand it.
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
);
...
...
This diff is collapsed.
Click to expand it.
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
;
/**
* 是否为空
*
...
...
@@ -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
>
...
...
This diff is collapsed.
Click to expand it.
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
[]
=
[];
/**
* 处理额外参数
* 视图上下文
*
* @type {*}
* @memberof AppAutocomplete
*/
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
});
})
@
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
}
----代码表不存在`
);
...
...
This diff is collapsed.
Click to expand it.
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
}
----代码表不存在`
);
...
...
This diff is collapsed.
Click to expand it.
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
}
----代码表不存在`
);
...
...
This diff is collapsed.
Click to expand it.
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;
.el-tabs{
.el-tabs__nav{
padding:0px 10px;
border:none;
}
.ivu-icon-ios-close {
visibility: hidden;
.el-tabs__item{
color:#ccc;
border:none;
}
.tag-text {
display: table-cell;
.ivu-tooltip {
display: block;
.ivu-tooltip-rel {
display: block;
max-width: 200px;
overflow: hidden;
text-overflow: ellipsis;
.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;
}
.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;
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app_web/src/components/tab-page-exp/tab-page-exp.vue
浏览文件 @
34d03f50
<
template
>
<div
class=
"ibiz-page-tag"
v-if=
"$store.state.pageMetas.length > 0"
>
<div
class=
"move-btn move-left"
@
click=
"leftMove"
>
<icon
type=
"ios-arrow-back"
/>
<div
class=
"ibiz-page-tag"
>
<el-tabs
type=
"card"
@
tab-click=
"changePage"
v-model=
"editableTabsValue"
closable
@
tab-remove=
"onClose"
>
<el-tab-pane
v-for=
"(meta, index) of $store.state.pageMetas"
:label=
"getCaption(meta.caption, meta.info)"
:name=
"index+''"
:key=
"index+''"
></el-tab-pane>
</el-tabs>
</div>
<div
ref=
"scrollBody"
class=
"tags-body"
>
<div
ref=
"scrollChild"
class=
"tags-container"
:style=
"
{left: styleLeft + 'px'}">
<transition-group
name=
"tags-transition"
>
<template
v-for=
"(meta, index) of $store.state.pageMetas"
>
<Tag
ref=
"tagElement"
:key=
"index"
:class=
"isActive(index) ? 'tag-is-active' : ''"
:name=
"index"
closable
@
click
.
native=
"changePage(index)"
@
on-close=
"onClose(index)"
>
<div
class=
"tag-text"
>
<tooltip
:content=
"getCaption(meta.caption, meta.info)"
transfer
:max-width=
"300"
>
<i
v-if=
"meta.iconCls && !Object.is(meta.iconCls, '')"
:class=
"meta.iconCls"
></i>
<img
v-else
:src=
"meta.imgPath"
class=
"text-icon"
/>
{{
getCaption
(
meta
.
caption
,
meta
.
info
)
}}
</tooltip>
</div>
</Tag>
</
template
>
</transition-group>
</div>
</div>
<div
class=
"move-btn move-right"
@
click=
"rightMove"
>
<icon
type=
"ios-arrow-forward"
/>
</div>
<Dropdown
@
on-click=
"doTagAction"
placement=
"bottom-end"
>
<div
class=
"move-btn"
>
<icon
type=
"ios-close-circle-outline"
/>
</div>
<DropdownMenu
slot=
"list"
>
<
template
v-for=
"(action, index) of actions"
>
<DropdownItem
:key=
"index"
:name=
"action.value"
>
{{
$t
(
action
.
text
)
}}
</DropdownItem>
</
template
>
</DropdownMenu>
</Dropdown
>
</div
>
</
template
>
<
script
lang=
"ts"
>
import
{
Vue
,
Component
,
Provide
,
Prop
,
Watch
}
from
'vue-property-decorator'
;
import
{
Environment
}
from
'../../environments/environment'
;
import
{
Vue
,
Component
,
Provide
,
Prop
,
Watch
}
from
"vue-property-decorator"
;
import
{
Environment
}
from
"../../environments/environment"
;
@
Component
({})
export
default
class
TabPageExp
extends
Vue
{
...
...
@@ -46,20 +27,27 @@ export default class TabPageExp extends Vue {
public
styleLeft
:
number
=
0
;
@
Provide
()
public
actions
:
any
[]
=
[{
text
:
'app.tabpage.closeall'
,
value
:
'closeAll'
},
{
text
:
'app.tabpage.closeother'
,
value
:
'closeOther'
}];
public
actions
:
any
[]
=
[
{
text
:
"app.tabpage.closeall"
,
value
:
"closeAll"
},
{
text
:
"app.tabpage.closeother"
,
value
:
"closeOther"
}
];
public
editableTabsValue
:
any
=
""
;
@
Watch
(
"$route"
)
public
onRouteChange
(
newVal
:
any
)
{
this
.
moveToView
(
newVal
);
this
.
$emit
(
'change'
,
newVal
);
this
.
$emit
(
"change"
,
newVal
);
}
public
created
()
{
Vue
.
prototype
.
$tabPageExp
=
this
;
}
public
getCaption
(
caption
:
any
,
info
:
any
):
any
{
return
info
&&
!
Object
.
is
(
info
,
''
)
?
`
${
this
.
$t
(
caption
)}
-
${
info
}
`
:
this
.
$t
(
caption
);
public
getCaption
(
caption
:
any
,
info
:
any
):
any
{
return
info
&&
!
Object
.
is
(
info
,
""
)
?
`
${
this
.
$t
(
caption
)}
-
${
info
}
`
:
this
.
$t
(
caption
);
}
/**
...
...
@@ -70,8 +58,15 @@ export default class TabPageExp extends Vue {
public
leftMove
()
{
const
scrollBody
:
any
=
this
.
$refs
.
scrollBody
;
const
scrollChild
:
any
=
this
.
$refs
.
scrollChild
;
if
(
scrollBody
&&
scrollChild
&&
scrollChild
.
offsetWidth
>
scrollBody
.
offsetWidth
)
{
if
((
scrollChild
.
offsetWidth
-
scrollBody
.
offsetWidth
+
this
.
styleLeft
)
>
100
)
{
if
(
scrollBody
&&
scrollChild
&&
scrollChild
.
offsetWidth
>
scrollBody
.
offsetWidth
)
{
if
(
scrollChild
.
offsetWidth
-
scrollBody
.
offsetWidth
+
this
.
styleLeft
>
100
)
{
this
.
styleLeft
-=
100
;
}
else
{
this
.
styleLeft
=
scrollBody
.
offsetWidth
-
scrollChild
.
offsetWidth
;
...
...
@@ -122,10 +117,10 @@ export default class TabPageExp extends Vue {
this
.
$store
.
commit
(
"deletePage"
,
name
);
this
.
gotoPage
();
}
const
appview
=
this
.
$store
.
getters
[
'viewaction/getAppView'
](
page
.
viewtag
);
const
appview
=
this
.
$store
.
getters
[
"viewaction/getAppView"
](
page
.
viewtag
);
if
(
appview
&&
appview
.
viewdatachange
)
{
const
title
:
any
=
this
.
$t
(
'app.tabpage.sureclosetip.title'
);
const
content
:
any
=
this
.
$t
(
'app.tabpage.sureclosetip.content'
);
const
title
:
any
=
this
.
$t
(
"app.tabpage.sureclosetip.title"
);
const
content
:
any
=
this
.
$t
(
"app.tabpage.sureclosetip.content"
);
this
.
$Modal
.
confirm
({
title
:
title
,
content
:
content
,
...
...
@@ -133,8 +128,7 @@ export default class TabPageExp extends Vue {
this
.
$store
.
commit
(
"deletePage"
,
name
);
this
.
gotoPage
();
},
onCancel
:
()
=>
{
}
onCancel
:
()
=>
{}
});
}
else
{
this
.
$store
.
commit
(
"deletePage"
,
name
);
...
...
@@ -162,8 +156,9 @@ export default class TabPageExp extends Vue {
* @param {*} index
* @memberof TabPageExp
*/
public
changePage
(
index
:
any
)
{
this
.
$store
.
commit
(
"setCurPage"
,
index
);
public
changePage
(
tab
:
any
,
event
:
any
)
{
this
.
editableTabsValue
=
tab
.
index
;
this
.
$store
.
commit
(
"setCurPage"
,
tab
.
index
);
this
.
gotoPage
();
}
...
...
@@ -180,17 +175,25 @@ export default class TabPageExp extends Vue {
if
(
Object
.
is
(
path
,
this
.
$route
.
fullPath
))
{
return
;
}
const
index
=
this
.
$store
.
state
.
pageTagList
.
findIndex
((
page
:
any
)
=>
Object
.
is
(
page
.
fullPath
,
path
));
const
index
=
this
.
$store
.
state
.
pageTagList
.
findIndex
((
page
:
any
)
=>
Object
.
is
(
page
.
fullPath
,
path
)
);
if
(
index
>=
0
)
{
const
page
=
this
.
$store
.
state
.
pageTagList
[
index
];
this
.
$router
.
push
({
path
:
page
.
path
,
params
:
page
.
params
,
query
:
page
.
query
});
this
.
$router
.
push
({
path
:
page
.
path
,
params
:
page
.
params
,
query
:
page
.
query
});
}
}
else
{
let
path
:
string
|
null
=
window
.
sessionStorage
.
getItem
(
Environment
.
AppName
);
if
(
path
)
{
this
.
$router
.
push
({
path
:
path
});
let
path
:
string
|
null
=
window
.
sessionStorage
.
getItem
(
Environment
.
AppName
);
if
(
path
)
{
this
.
$router
.
push
({
path
:
path
});
}
else
{
this
.
$router
.
push
(
'/'
);
this
.
$router
.
push
(
"/"
);
}
}
}
...
...
@@ -202,15 +205,25 @@ export default class TabPageExp extends Vue {
* @memberof TabPageExp
*/
public
setCurPageCaption
(
caption
:
string
,
title
:
any
,
info
:
string
)
{
if
(
this
.
$route
.
meta
&&
(
!
Object
.
is
(
this
.
$route
.
meta
.
caption
,
caption
)
))
{
if
(
this
.
$route
.
meta
&&
!
Object
.
is
(
this
.
$route
.
meta
.
caption
,
caption
))
{
return
;
}
this
.
$store
.
commit
(
"setCurPageCaption"
,
{
route
:
this
.
$route
,
caption
:
title
,
info
:
info
});
this
.
$store
.
commit
(
"setCurPageCaption"
,
{
route
:
this
.
$route
,
caption
:
title
,
info
:
info
});
setTimeout
(()
=>
{
this
.
moveToView
(
this
.
$route
);
},
1
);
}
/**
* 移动至指定页面标签
*
* @param {*} to
* @memberof TabPageExp
*/
/**
* 移动至指定页面标签
*
...
...
@@ -218,21 +231,19 @@ export default class TabPageExp extends Vue {
* @memberof TabPageExp
*/
public
moveToView
(
to
:
any
)
{
let
that
:
any
=
this
;
const
pages
:
any
[]
=
this
.
$store
.
state
.
pageTagList
;
let
leftWidth
:
number
=
0
;
this
.
$nextTick
(()
=>
{
let
_index
:
any
=
""
;
pages
.
forEach
((
page
,
index
)
=>
{
const
tag
:
any
=
this
.
$refs
.
tagElement
;
if
(
!
tag
)
{
return
;
}
const
el
=
tag
[
index
].
$el
;
if
(
Object
.
is
(
page
.
fullPath
,
to
.
fullPath
))
{
this
.
setLeft
(
el
,
leftWidth
);
}
else
{
leftWidth
+=
el
.
offsetWidth
;
if
(
Object
.
is
(
page
.
path
,
to
.
path
))
{
_index
=
index
+
""
;
}
});
if
(
_index
!==
""
)
{
that
.
editableTabsValue
=
_index
+
""
;
}
});
}
...
...
@@ -243,13 +254,19 @@ export default class TabPageExp extends Vue {
* @param {number} leftWidth
* @memberof TabPageExp
*/
public
setLeft
(
tag
:
{
offsetWidth
:
number
;
},
leftWidth
:
number
)
{
public
setLeft
(
tag
:
{
offsetWidth
:
number
},
leftWidth
:
number
)
{
if
(
tag
)
{
const
scrollBody
:
any
=
this
.
$refs
.
scrollBody
;
if
(
leftWidth
<
-
this
.
styleLeft
)
{
this
.
styleLeft
=
-
leftWidth
;
}
else
if
((
leftWidth
+
tag
.
offsetWidth
)
>
(
scrollBody
.
offsetWidth
-
this
.
styleLeft
))
{
this
.
styleLeft
-=
(
leftWidth
+
tag
.
offsetWidth
)
-
(
scrollBody
.
offsetWidth
-
this
.
styleLeft
);
}
else
if
(
leftWidth
+
tag
.
offsetWidth
>
scrollBody
.
offsetWidth
-
this
.
styleLeft
)
{
this
.
styleLeft
-=
leftWidth
+
tag
.
offsetWidth
-
(
scrollBody
.
offsetWidth
-
this
.
styleLeft
);
}
}
}
...
...
@@ -261,10 +278,10 @@ export default class TabPageExp extends Vue {
* @memberof TabPageExp
*/
public
doTagAction
(
name
:
string
)
{
if
(
Object
.
is
(
name
,
'closeAll'
))
{
if
(
Object
.
is
(
name
,
"closeAll"
))
{
this
.
$store
.
commit
(
"removeAllPage"
);
this
.
gotoPage
();
}
else
if
(
Object
.
is
(
name
,
'closeOther'
))
{
}
else
if
(
Object
.
is
(
name
,
"closeOther"
))
{
this
.
$store
.
commit
(
"removeOtherPage"
);
this
.
moveToView
(
this
.
$route
);
}
...
...
@@ -273,5 +290,5 @@ export default class TabPageExp extends Vue {
</
script
>
<
style
lang=
"less"
>
@import
'./tab-page-exp.less'
;
@import
"./tab-page-exp.less"
;
</
style
>
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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,6 +25,23 @@
@
closeview=
"closeView($event)"
>
</view
_appmenu
>
</sider>
<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"
>
...
...
@@ -45,6 +50,7 @@
</content>
</layout>
</layout>
</layout>
</div>
</
template
>
...
...
This diff is collapsed.
Click to expand it.
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:滚动条样式 ***/
...
...
This diff is collapsed.
Click to expand it.
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
This diff is collapsed.
Click to expand it.
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%;
...
...
This diff is collapsed.
Click to expand it.
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,41 +26,42 @@
color: #f1f1f1;
}
}
} */
}
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #4276a4;
.sider-top {
.ivu-icon {
color: hsla(0,0%,100%,.8);
background: #2d5f8b;
color: #6ba1d1;
}
}
.app-menu {
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
border-left: 4px solid #d64635;
}
}
}
}
> .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.is-opened, .el-submenu:hover, .el-submenu.is-active {
> .el-submenu__title {
background: #3c6c95 !important;
.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: #4276a4;
}
}
.el-submenu__title, .el-menu-item {
color: #c9dff5;
...
...
@@ -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
This diff is collapsed.
Click to expand it.
app_web/src/theme/dark-blue.theme.less
浏览文件 @
34d03f50
/*** BRGIN:默认Dark Blue主题 ***/
.app_theme_darkblue {
> header {
background-color: #2b3643;
color: #606d80;
> .ivu-layout-has-sider > .ivu-layout > header{
.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
;
background: #20222A
;
color: #606d80;
i {
color: #606d80;
}
}
> .el-menu-item.is-active, > .el-submenu.is-active > .el-submenu__title {
background-color: #364150
;
background-color: #20222A
;
color: #f1f1f1;
i {
color: #f1f1f1;
...
...
@@ -36,41 +26,41 @@
color: #f1f1f1;
}
}
}
} */
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #364150
;
background-color: #20222A
;
.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;
}
color: hsla(0,0%,100%,.8);
background-color: #20222A;
}
}
}
> .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;
background: #20222A;
.el-menu-item:hover, .el-menu-item:hover {
color: #f1f1f1 !important;
i {
color: #f1f1f1;
}
}
.el-submenu.is-opened, .el-submenu:hover, .el-submenu.is-active {
> .el-submenu__title {
background: #3e4b5c !important;
.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;
...
...
@@ -79,23 +69,30 @@
}
}
.el-menu-item {
border-top: 1px solid #364150;
background: #364150;
border-top: 1px solid #20222A;
background: #20222A;
border-left: 4px solid transparent;
}
.el-submenu {
border-top: 1px solid #364150
;
background: #364150
;
border-top: 1px solid #20222A
;
background: #20222A
;
> .el-menu {
border-top: 1px solid #364150
;
background: #364150
;
border-top: 1px solid #20222A
;
background: #20222A
;
}
}
}
.ivu-menu-light{
background: #364150
;
background: #20222A
;
}
.ivu-menu-submenu-title{
color: #fff;
}
}
/*** END:默认Dark Blue主题 ***/
\ No newline at end of file
.sider-top{
color:#fff;
}
div.ivu-divider{
background-color: #b4bcc8;
}
}
/*** END:默认Dark Blue主题 ***/
\ No newline at end of file
This diff is collapsed.
Click to expand it.
app_web/src/theme/default.theme.less
浏览文件 @
34d03f50
/*** BRGIN:默认亮色主题 ***/
.app-default-theme {
> header {
background-color: #e8eaec;
color: #aaaaaa;
> .ivu-layout-has-sider > .ivu-layout > header {
.app-theme-icon {
color: #aaaaaa;
}
.page-logo {
color: #535c70;
}
.header-right {
> div:hover {
background: #d4d4d4;
}
}
.el-menu.el-menu--horizontal {
/* .el-menu.el-menu--horizontal {
> .el-menu-item, > .el-submenu > .el-submenu__title {
background: #e1e1e1;
color: #aaaaaa;
...
...
@@ -36,41 +26,42 @@
color: #666666;
}
}
}
} */
}
> .ivu-layout {
> .ivu-layout-sider {
background-color: #f6f6f6;
.sider-top {
background-color: #e8eaec;
.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 {
.el-menu-item:hover, .el-menu-item:hover,
.el-menu-item.is-active {
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;
.el-submenu__title:hover{
color: #1890ff !important;
i {
color: #1890ff;
}
}
.el-menu-item.is-active{
border-left: 4px solid #1890ff;
background: #fff !important;
}
.el-submenu.is-opened, .el-submenu:hover{
> .el-submenu__title {
background: #f6f6f6;
}
}
.el-submenu__title, .el-menu-item {
color: #666666;
...
...
@@ -81,6 +72,7 @@
.el-menu-item {
border-top: 1px solid #f6f6f6;
background: #f6f6f6;
border-left: 4px solid transparent;
}
.el-submenu {
border-top: 1px solid #f6f6f6;
...
...
@@ -97,5 +89,11 @@
.ivu-menu-submenu-title{
color: #000;
}
}
/*** END:默认亮色主题 ***/
\ No newline at end of file
.sider-top{
color:#000;
}
div.ivu-divider{
background-color: #b3b3b3;
}
}
/*** END:默认亮色主题 ***/
\ No newline at end of file
This diff is collapsed.
Click to expand it.
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;
}
}
}
...
...
This diff is collapsed.
Click to expand it.
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
;
/**
* 日期格式化
...
...
This diff is collapsed.
Click to expand it.
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
;
}
...
...
This diff is collapsed.
Click to expand it.
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;
}
...
...
This diff is collapsed.
Click to expand it.
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"
...
...
This diff is collapsed.
Click to expand it.
ibzdisk-util/src/main/java/cn/ibizlab/util/enums/DEPredefinedFieldType.java
浏览文件 @
34d03f50
...
...
@@ -48,6 +48,10 @@ public enum DEPredefinedFieldType {
* 逻辑有效
*/
LOGICVALID
,
/**
* 排序
*/
ORDERVALUE
,
/**
* 不处理
*/
...
...
This diff is collapsed.
Click to expand it.
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
)
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
();
else
}
}
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
))
...
...
This diff is collapsed.
Click to expand it.
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录