Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzdisk
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzdisk
提交
5fb2b1c7
提交
5fb2b1c7
编写于
11月 09, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ibiz4j 发布系统代码 [ibz-disk,存储]
上级
fa41b02f
变更
38
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
38 个修改的文件
包含
3333 行增加
和
105 行删除
+3333
-105
CHANGELOG.md
app_web/CHANGELOG.md
+72
-0
app-register.ts
app_web/src/app-register.ts
+2
-0
app-actionbar.vue
app_web/src/components/app-actionbar/app-actionbar.vue
+2
-0
app-column-link.vue
app_web/src/components/app-column-link/app-column-link.vue
+1
-1
app-form-group.vue
app_web/src/components/app-form-group/app-form-group.vue
+2
-0
app-format-data.vue
app_web/src/components/app-format-data/app-format-data.vue
+1
-1
app-image-romate.vue
app_web/src/components/app-image-romate/app-image-romate.vue
+102
-0
app-orgsector.vue
app_web/src/components/app-orgsector/app-orgsector.vue
+24
-7
app-picker.vue
app_web/src/components/app-picker/app-picker.vue
+25
-3
app-rawitem.vue
app_web/src/components/app-rawitem/app-rawitem.vue
+25
-21
login.vue
app_web/src/components/login/login.vue
+3
-0
tab-exp-view-engine.ts
app_web/src/engine/view/tab-exp-view-engine.ts
+10
-0
view-engine.ts
app_web/src/engine/view/view-engine.ts
+2
-0
en-US.ts
app_web/src/locale/lang/en-US.ts
+0
-1
zh-CN.ts
app_web/src/locale/lang/zh-CN.ts
+0
-1
components_en_US.ts
app_web/src/locale/lanres/components/components_en_US.ts
+4
-0
components_zh_CN.ts
app_web/src/locale/lanres/components/components_zh_CN.ts
+4
-0
sdfile_en_US.ts
app_web/src/locale/lanres/entities/sdfile/sdfile_en_US.ts
+1
-0
sdfile_zh_CN.ts
app_web/src/locale/lanres/entities/sdfile/sdfile_zh_CN.ts
+1
-0
sdfile-edit-view-base.vue
...src/pages/disk/sdfile-edit-view/sdfile-edit-view-base.vue
+2
-2
sdfile-grid-view-base.vue
...src/pages/disk/sdfile-grid-view/sdfile-grid-view-base.vue
+2
-2
sdindex-view-base.vue
app_web/src/pages/disk/sdindex-view/sdindex-view-base.vue
+2
-2
sdfile-ui-service-base.ts
app_web/src/uiservice/sdfile/sdfile-ui-service-base.ts
+7
-0
view-tool.ts
app_web/src/utils/view-tool/view-tool.ts
+1
-1
main-grid-base.vue
app_web/src/widgets/sdfile/main-grid/main-grid-base.vue
+1
-1
application-dev.yml
ibzdisk-boot/src/main/resources/application-dev.yml
+52
-52
SDFile.java
...ore/src/main/java/cn/ibizlab/core/disk/domain/SDFile.java
+1
-0
ISDFileService.java
...ain/java/cn/ibizlab/core/disk/service/ISDFileService.java
+0
-1
SDFileServiceImpl.java
.../cn/ibizlab/core/disk/service/impl/SDFileServiceImpl.java
+1
-0
ibzdisk.json
ibzdisk-core/src/main/resources/sysmodel/ibzdisk.json
+14
-0
pom.xml
ibzdisk-dependencies/pom.xml
+2
-6
DEField.java
...til/src/main/java/cn/ibizlab/util/annotation/DEField.java
+10
-0
StaticDict.java
...k-util/src/main/java/cn/ibizlab/util/dict/StaticDict.java
+2911
-0
EntityClient.java
...il/src/main/java/cn/ibizlab/util/domain/EntityClient.java
+1
-1
DupCheck.java
...sk-util/src/main/java/cn/ibizlab/util/enums/DupCheck.java
+23
-0
ExceptionTranslator.java
...main/java/cn/ibizlab/util/errors/ExceptionTranslator.java
+11
-2
PermissionSyncJob.java
.../src/main/java/cn/ibizlab/util/job/PermissionSyncJob.java
+2
-0
AppController.java
...til/src/main/java/cn/ibizlab/util/rest/AppController.java
+9
-0
未找到文件。
app_web/CHANGELOG.md
浏览文件 @
5fb2b1c7
## v7.0.0-alpha.21 [2020-10-31]
### Bug修复
修复视图类型门户部件通知嵌入视图刷新问题
修复表格行编辑传值无效和设置表格行编辑禁用无效问题
修复表格列触发行为权限控制无效问题
修复表格导出代码表转化问题
修复行编辑时合并行主键到上下文中
修复多表单编辑视图(部件视图)临时模式异常问题
修复修复表单值规则异常问题
### 功能新增及优化
#### 模板
新增导航类部件快速搜索栏提示
新增分页导航面板主状态逻辑
新增图片预览(可旋转)控件
新增多数据部件无值显示内容适配
新增分页导航视图工具栏权限状态逻辑
新增适配界面行为中显示处理
新增支持是否支持实体主状态属性
优化列表加载、刷新逻辑
优化直接内容项组件
优化甘特图部件和树表格部件加载逻辑
优化后台界面行为异常处理逻辑
优化分页导航面板切换分页刷新逻辑
优化树导航视图树节点刷新逻辑
优化表单更新项传入调用方法名称
优化行编辑值校验错误信息提示
#### 基础文件
新增图片预览(可旋转)控件
新增计算分页导航视图工具栏权限状态逻辑
新增支持是否支持实体主状态逻辑
新增切换组织部门功能
优化数据选择下拉控件(下拉列表宽度和编辑器宽度保持一致)
优化直接内容项组件
修复数据选择无值抛出null
修复登录完成user存储到localStorage
修复表格值为0不显示问题
## v7.0.0-alpha.20 [2020-10-18]
### Bug修复
...
...
app_web/src/app-register.ts
浏览文件 @
5fb2b1c7
...
...
@@ -97,6 +97,7 @@ import AppFormPart from './components/app-form-part/app-form-part.vue'
import
AppAlert
from
'./components/app-alert/app-alert.vue'
import
AppAlertGroup
from
'./components/app-alert-group/app-alert-group.vue'
import
AppRawItem
from
'./components/app-rawitem/app-rawitem.vue'
import
AppImageRomate
from
'./components/app-image-romate/app-image-romate.vue'
// 全局挂载UI实体服务注册中心
window
[
'uiServiceRegister'
]
=
uiServiceRegister
;
...
...
@@ -209,5 +210,6 @@ export const AppComponents = {
v
.
component
(
'app-alert'
,
AppAlert
);
v
.
component
(
'app-alert-group'
,
AppAlertGroup
);
v
.
component
(
'app-rawitem'
,
AppRawItem
);
v
.
component
(
'app-image-romate'
,
AppImageRomate
)
},
};
\ No newline at end of file
app_web/src/components/app-actionbar/app-actionbar.vue
浏览文件 @
5fb2b1c7
...
...
@@ -100,6 +100,8 @@ export default class AppActionBar extends Vue {
* @memberof AppActionBar
*/
public
calcActionItemAuthState
(
data
:
any
,
ActionModel
:
any
,
UIService
:
any
){
if
(
!
UIService
.
isEnableDEMainState
)
return
;
for
(
const
key
in
ActionModel
)
{
if
(
!
ActionModel
.
hasOwnProperty
(
key
))
{
return
;
...
...
app_web/src/components/app-column-link/app-column-link.vue
浏览文件 @
5fb2b1c7
...
...
@@ -279,7 +279,7 @@ export default class AppColumnLink extends Vue {
if
(
result
.
datas
&&
Array
.
isArray
(
result
.
datas
))
{
Object
.
assign
(
item
,
result
.
datas
[
0
]);
}
console
.
log
(
item
);
this
.
$emit
(
'refresh'
,
item
);
}
/**
...
...
app_web/src/components/app-form-group/app-form-group.vue
浏览文件 @
5fb2b1c7
...
...
@@ -158,6 +158,8 @@ export default class AppFormGroup extends Vue {
* @memberof AppFormGroup
*/
public
calcActionItemAuthState
(
data
:
any
,
ActionModel
:
any
,
UIService
:
any
){
if
(
!
UIService
.
isEnableDEMainState
)
return
;
for
(
const
key
in
ActionModel
)
{
if
(
!
ActionModel
.
hasOwnProperty
(
key
))
{
return
;
...
...
app_web/src/components/app-format-data/app-format-data.vue
浏览文件 @
5fb2b1c7
...
...
@@ -47,7 +47,7 @@ export default class AppFormatData extends Vue {
* @memberof AppFormatData
*/
getcurValue
(){
if
(
this
.
data
){
if
(
this
.
data
||
this
.
data
==
0
){
if
(
Object
.
is
(
this
.
dataType
,
"DECIMAL"
)
||
Object
.
is
(
this
.
dataType
,
"FLOAT"
)
||
Object
.
is
(
this
.
dataType
,
"CURRENCY"
)){
let
number
=
Number
(
this
.
data
);
let
precision
=
Number
(
this
.
precision
);
...
...
app_web/src/components/app-image-romate/app-image-romate.vue
0 → 100644
浏览文件 @
5fb2b1c7
<
template
>
<div
class=
'app-image-preview'
>
<el-image
:src=
"data[name]"
:previewSrcList=
"previewList"
:disabled=
"disabled"
>
</el-image>
</div>
</
template
>
<
script
lang =
'ts'
>
import
{
Vue
,
Component
,
Prop
,
Watch
,
Provide
}
from
'vue-property-decorator'
;
import
{
Subject
,
Unsubscribable
}
from
'rxjs'
;
@
Component
({})
export
default
class
AppImageRomate
extends
Vue
{
/**
* 表单状态
*
* @type {any}
* @memberof AppImageRomate
*/
@
Prop
()
public
formState
:
any
;
/**
* 图片数据
*
* @type {any}
* @memberof AppImageRomate
*/
@
Prop
()
public
data
!
:
any
;
/**
* 字段名
*
* @type {any}
* @memberof AppImageRomate
*/
@
Prop
()
public
name
:
any
;
/**
* 禁用状态
*
* @type {boolean}
* @memberof AppImageRomate
*/
@
Prop
()
public
disabled
:
boolean
=
false
;
/**
* 预览图片数组
*
* @type {boolean}
* @memberof AppImageRomate
*/
public
previewList
:
Array
<
any
>
=
[];
/**
* 表单状态事件
*
* @private
* @type {(Unsubscribable | undefined)}
* @memberof AppImageUpload
*/
private
formStateEvent
:
Unsubscribable
|
undefined
;
/**
* Vue生命周期
*
* @type {boolean}
* @memberof AppImageRomate
*/
public
created
()
{
if
(
this
.
formState
)
{
this
.
formStateEvent
=
this
.
formState
.
subscribe
((
$event
:
any
)
=>
{
// 表单加载完成
if
(
this
.
data
&&
this
.
name
)
{
this
.
handleData
();
}
});
}
}
/**
* 数据处理
*
* @type {boolean}
* @memberof AppImageRomate
*/
public
handleData
()
{
this
.
previewList
.
push
(
this
.
data
[
this
.
name
]);
}
/**
* 组件销毁
*
* @memberof AppImageRomate
*/
public
destroyed
():
void
{
if
(
this
.
formStateEvent
)
{
this
.
formStateEvent
.
unsubscribe
();
}
}
}
</
script
>
\ No newline at end of file
app_web/src/components/app-orgsector/app-orgsector.vue
浏览文件 @
5fb2b1c7
...
...
@@ -22,6 +22,7 @@
</div>
</
template
>
<
script
lang =
'ts'
>
import
{
Http
}
from
'@/utils/http/http'
;
import
{
Vue
,
Component
,
Inject
}
from
"vue-property-decorator"
;
@
Component
({})
...
...
@@ -110,17 +111,33 @@ export default class AppOrgSector extends Vue {
let
item
:
any
=
this
.
selectedOrgArray
.
find
((
_item
:
any
)
=>
{
return
_item
.
srforgsectorid
===
data
;
});
if
(
item
.
srforgsectorid
&&
item
.
srforgsectorname
)
{
this
.
selectedOrgId
=
item
.
srforgsectorid
;
this
.
selectedOrgName
=
item
.
srforgsectorname
;
this
.
reload
();
this
.
switchDepartment
(
data
).
then
((
response
:
any
)
=>
{
if
(
response
.
status
==
200
)
{
if
(
item
.
srforgsectorid
&&
item
.
srforgsectorname
)
{
this
.
selectedOrgId
=
item
.
srforgsectorid
;
this
.
selectedOrgName
=
item
.
srforgsectorname
;
}
this
.
updateStoreOrgData
(
item
);
this
.
reload
();
}
else
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
response
.
data
?
response
.
data
.
message
:(
this
.
$t
(
'components.appOrgSector.errorSwitch'
)
as
string
)
});
}
}).
catch
((
error
:
any
)
=>
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
this
.
$t
(
'components.appOrgSector.errorSwitch'
)
as
string
)
});
})
}
}
this
.
updateStoreOrgData
(
item
);
/**
* 调用远端切换部门接口
*
* @memberof AppOrgSector
*/
public
async
switchDepartment
(
data
:
any
){
return
await
Http
.
getInstance
().
post
(
`/oumaps/switch`
,
data
,
false
);
}
/**
* 更新仓库
Org
信息
* 更新仓库
部门
信息
*
* @memberof AppOrgSector
*/
...
...
app_web/src/components/app-picker/app-picker.vue
浏览文件 @
5fb2b1c7
...
...
@@ -37,7 +37,7 @@
</div>
<div
v-else-if=
"Object.is(editortype, 'dropdown')"
class=
'app-picker'
>
<el-select
ref=
"appPicker"
remote
:remote-method=
"(query) => this.onSearch(query, null, true)"
:value=
"refvalue"
size=
'small'
filterable
@
change=
"onSelect"
:disabled=
"disabled"
style=
'width:100%;'
clearable
@
change=
"onSelect"
:disabled=
"disabled"
style=
'width:100%;'
clearable
popper-class=
"app-picker-dropdown"
@
clear=
"onClear"
@
visible-change=
"onSelectOpen"
>
<
template
v-if=
"items"
>
<template
v-for=
"_item in items"
>
...
...
@@ -260,6 +260,14 @@ export default class AppPicker extends Vue {
*/
public
selectValue
=
this
.
value
;
/**
* 下拉列表节点元素
*
* @type {*}
* @memberof AppPicker
*/
public
dropdownDom
:
any
=
{};
/**
* 获取关联数据项值
*
...
...
@@ -314,6 +322,8 @@ export default class AppPicker extends Vue {
* @memberof AppPicker
*/
public
mounted
()
{
const
dropdownDom
:
any
=
this
.
$el
.
getElementsByClassName
(
'app-picker-dropdown'
)[
0
];
this
.
dropdownDom
=
dropdownDom
;
}
/**
...
...
@@ -331,10 +341,22 @@ export default class AppPicker extends Vue {
public
onSelectOpen
(
flag
:
boolean
):
void
{
this
.
open
=
flag
;
if
(
this
.
open
)
{
//设置下拉列表的最大宽度
this
.
setDropdownWidth
();
this
.
onSearch
(
this
.
curvalue
,
null
,
true
);
}
}
/**
* 设置下拉列表最大宽度使下拉列表宽度和编辑器宽度一致
*
* @memberof AppPicker
*/
public
setDropdownWidth
(){
const
elInput
:
any
=
this
.
$el
.
getElementsByClassName
(
'el-input__inner'
)[
0
];
this
.
dropdownDom
.
style
.
maxWidth
=
elInput
.
offsetWidth
+
'px'
;
}
/**
* 执行搜索数据
* @param query
...
...
@@ -434,10 +456,10 @@ export default class AppPicker extends Vue {
*/
public
onClear
(
$event
:
any
):
void
{
if
(
this
.
valueitem
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
valueitem
,
value
:
''
});
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
valueitem
,
value
:
null
});
}
if
(
this
.
name
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
name
,
value
:
''
});
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
name
,
value
:
null
});
}
this
.
fillPickUpData
();
this
.
$forceUpdate
();
...
...
app_web/src/components/app-rawitem/app-rawitem.vue
浏览文件 @
5fb2b1c7
<
template
>
<div>
<span
v-if=
"caption"
>
{{
caption
}}
</span>
<div
:class=
"contentStyle"
:style=
"sizeStyle"
>
<template
v-if=
"Object.is(contentType,'RAW')"
>
{{
rawContent
?
rawContent
:
''
}}
</
template
>
<
template
v-else-if=
"Object.is(contentType,'HTML')"
>
{{
htmlContent
?
htmlContent
:
''
}}
</
template
>
<
template
v-else-if=
"Object.is(contentType,'IMAGE')"
>
<i
:class=
"imageClass ? imageClass : ''"
></i>
</
template
>
<div
:style=
"sizeStyle"
>
<span>
{{
caption
}}
</span>
<div
v-if=
"Object.is(contentType,'RAW')"
:class=
"contentStyle"
>
<slot></slot>
</div>
<div
v-else-if=
"Object.is(contentType,'HTML')"
:class=
"contentStyle"
v-html=
"htmlContent"
/>
<div
v-else-if=
"Object.is(contentType,'IMAGE')"
:class=
"contentStyle"
>
<i
:class=
"imageClass ? imageClass : ''"
></i>
</div>
</div>
</
template
>
...
...
@@ -22,20 +18,28 @@ import { Component, Vue, Prop, Model, Watch } from "vue-property-decorator";
export
default
class
AppRawItem
extends
Vue
{
/**
*
内容类型
*
应用上下文
*
* @type {string}
* @memberof AppRawItem
*/
@
Prop
()
public
conte
ntType
!
:
string
;
@
Prop
()
public
conte
xt
!
:
any
;
/**
* 直接内容
*
* @type {strin}
* @memberof AppRawItem
*/
@
Prop
()
public
rawContent
?:
string
;
* 视图参数
*
* @type {string}
* @memberof AppRawItem
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 内容类型
*
* @type {string}
* @memberof AppRawItem
*/
@
Prop
()
public
contentType
!
:
string
;
/**
* html内容
...
...
@@ -46,7 +50,7 @@ export default class AppRawItem extends Vue {
@
Prop
()
public
htmlContent
?:
string
;
/**
*
html内容
*
图片
*
* @type {strin}
* @memberof AppRawItem
...
...
app_web/src/components/login/login.vue
浏览文件 @
5fb2b1c7
...
...
@@ -183,6 +183,9 @@ export default class Login extends Vue {
localStorage
.
setItem
(
'token'
,
data
.
token
);
this
.
setCookie
(
'ibzuaa-token'
,
data
.
token
,
0
);
}
if
(
data
&&
data
.
user
){
localStorage
.
setItem
(
'user'
,
JSON
.
stringify
(
data
.
user
));
}
// 设置cookie,保存账号密码7天
this
.
setCookie
(
"loginname"
,
loginname
,
7
);
// 跳转首页
...
...
app_web/src/engine/view/tab-exp-view-engine.ts
浏览文件 @
5fb2b1c7
...
...
@@ -44,4 +44,14 @@ export default class TabExpViewEngine extends ViewEngine {
this
.
setViewState2
({
tag
:
_item
.
name
,
action
:
'load'
,
viewdata
:
this
.
view
.
context
});
});
}
/**
* 计算按钮状态
*
* @memberof TabExpViewEngine
*/
public
computeToolbarState
(
state
:
boolean
,
data
:
any
){
this
.
calcToolbarItemState
(
state
);
this
.
calcToolbarItemAuthState
(
data
);
}
}
\ No newline at end of file
app_web/src/engine/view/view-engine.ts
浏览文件 @
5fb2b1c7
...
...
@@ -187,6 +187,8 @@ export default class ViewEngine {
*/
public
calcToolbarItemAuthState
(
data
:
any
){
const
_this
:
any
=
this
;
if
(
!
_this
.
view
.
appUIService
.
isEnableDEMainState
)
return
;
for
(
const
key
in
_this
.
view
.
toolBarModels
)
{
if
(
!
_this
.
view
.
toolBarModels
.
hasOwnProperty
(
key
))
{
return
;
...
...
app_web/src/locale/lang/en-US.ts
浏览文件 @
5fb2b1c7
...
...
@@ -38,7 +38,6 @@ export default {
show
:
"Show"
,
records
:
"records"
,
totle
:
"totle"
,
noData
:
"No data"
,
valueVail
:
"Value cannot be empty"
,
group
:
"Group"
,
other
:
"Other"
,
...
...
app_web/src/locale/lang/zh-CN.ts
浏览文件 @
5fb2b1c7
...
...
@@ -38,7 +38,6 @@ export default {
show
:
"显示"
,
records
:
"条"
,
totle
:
"共"
,
noData
:
"无数据"
,
valueVail
:
"值不能为空"
,
group
:
"分组"
,
other
:
"其他"
,
...
...
app_web/src/locale/lanres/components/components_en_US.ts
浏览文件 @
5fb2b1c7
...
...
@@ -11,6 +11,10 @@ export default {
indexPage
:
'home page'
,
continue
:
'to continue browsing'
,
},
appOrgSector
:{
successSwitch
:
'The switch was successful'
,
errorSwitch
:
'The switchover failed'
,
},
appAutocomplete
:
{
error
:
'Error'
,
miss
:
'Missing parameter '
,
...
...
app_web/src/locale/lanres/components/components_zh_CN.ts
浏览文件 @
5fb2b1c7
...
...
@@ -11,6 +11,10 @@ export default {
indexPage
:
'首页'
,
continue
:
'继续浏览'
,
},
appOrgSector
:{
successSwitch
:
'切换成功'
,
errorSwitch
:
'切换失败'
,
},
appAutocomplete
:
{
error
:
'错误'
,
miss
:
'缺少参数'
,
...
...
app_web/src/locale/lanres/entities/sdfile/sdfile_en_US.ts
浏览文件 @
5fb2b1c7
...
...
@@ -53,6 +53,7 @@ export default {
createdate
:
"创建日期"
,
updatedate
:
"更新时间"
,
},
nodata
:
""
,
uiactions
:
{
},
},
...
...
app_web/src/locale/lanres/entities/sdfile/sdfile_zh_CN.ts
浏览文件 @
5fb2b1c7
...
...
@@ -52,6 +52,7 @@ export default {
createdate
:
"创建日期"
,
updatedate
:
"更新时间"
,
},
nodata
:
""
,
uiactions
:
{
},
},
...
...
app_web/src/pages/disk/sdfile-edit-view/sdfile-edit-view-base.vue
浏览文件 @
5fb2b1c7
...
...
@@ -274,11 +274,11 @@ export default class SDFileEditViewBase extends Vue {
@
Watch
(
'viewdata'
)
onViewData
(
newVal
:
any
,
oldVal
:
any
)
{
const
_this
:
any
=
this
;
if
(
!
Object
.
is
(
newVal
,
oldVal
)
&&
_this
.
engine
)
{
this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
();
_this
.
engine
.
load
();
});
}
else
if
(
!
Object
.
is
(
newVal
,
oldVal
)
&&
_this
.
refresh
&&
_this
.
refresh
instanceof
Function
)
{
_this
.
refresh
();
...
...
@@ -645,7 +645,7 @@ export default class SDFileEditViewBase extends Vue {
});
if
(
_this
.
portletState
){
_this
.
portletStateEvent
=
_this
.
portletState
.
subscribe
((
res
:
any
)
=>
{
if
(
!
Object
.
is
(
res
.
name
,
'
calendar-view9
'
)){
if
(
!
Object
.
is
(
res
.
name
,
'
SDFileEditView
'
)){
return
;
}
if
(
Object
.
is
(
res
.
action
,
'refresh'
)
&&
_this
.
refresh
&&
_this
.
refresh
instanceof
Function
){
...
...
app_web/src/pages/disk/sdfile-grid-view/sdfile-grid-view-base.vue
浏览文件 @
5fb2b1c7
...
...
@@ -303,11 +303,11 @@ export default class SDFileGridViewBase extends Vue {
@
Watch
(
'viewdata'
)
onViewData
(
newVal
:
any
,
oldVal
:
any
)
{
const
_this
:
any
=
this
;
if
(
!
Object
.
is
(
newVal
,
oldVal
)
&&
_this
.
engine
)
{
this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
();
_this
.
engine
.
load
();
});
}
else
if
(
!
Object
.
is
(
newVal
,
oldVal
)
&&
_this
.
refresh
&&
_this
.
refresh
instanceof
Function
)
{
_this
.
refresh
();
...
...
@@ -679,7 +679,7 @@ export default class SDFileGridViewBase extends Vue {
});
if
(
_this
.
portletState
){
_this
.
portletStateEvent
=
_this
.
portletState
.
subscribe
((
res
:
any
)
=>
{
if
(
!
Object
.
is
(
res
.
name
,
'
calendar-view9
'
)){
if
(
!
Object
.
is
(
res
.
name
,
'
SDFileGridView
'
)){
return
;
}
if
(
Object
.
is
(
res
.
action
,
'refresh'
)
&&
_this
.
refresh
&&
_this
.
refresh
instanceof
Function
){
...
...
app_web/src/pages/disk/sdindex-view/sdindex-view-base.vue
浏览文件 @
5fb2b1c7
...
...
@@ -187,11 +187,11 @@ export default class SDIndexViewBase extends Vue {
@
Watch
(
'viewdata'
)
onViewData
(
newVal
:
any
,
oldVal
:
any
)
{
const
_this
:
any
=
this
;
if
(
!
Object
.
is
(
newVal
,
oldVal
)
&&
_this
.
engine
)
{
this
.
$nextTick
(()
=>
{
_this
.
parseViewParam
();
_this
.
engine
.
load
();
});
}
else
if
(
!
Object
.
is
(
newVal
,
oldVal
)
&&
_this
.
refresh
&&
_this
.
refresh
instanceof
Function
)
{
_this
.
refresh
();
...
...
@@ -489,7 +489,7 @@ export default class SDIndexViewBase extends Vue {
});
if
(
_this
.
portletState
){
_this
.
portletStateEvent
=
_this
.
portletState
.
subscribe
((
res
:
any
)
=>
{
if
(
!
Object
.
is
(
res
.
name
,
'
calendar-view9
'
)){
if
(
!
Object
.
is
(
res
.
name
,
'
SDIndexView
'
)){
return
;
}
if
(
Object
.
is
(
res
.
action
,
'refresh'
)
&&
_this
.
refresh
&&
_this
.
refresh
instanceof
Function
){
...
...
app_web/src/uiservice/sdfile/sdfile-ui-service-base.ts
浏览文件 @
5fb2b1c7
...
...
@@ -20,6 +20,13 @@ export default class SDFileUIServiceBase extends UIService {
*/
public
isEnableWorkflow
:
boolean
=
false
;
/**
* 是否支持实体主状态
*
* @memberof SDFileUIServiceBase
*/
public
isEnableDEMainState
:
boolean
=
false
;
/**
* 当前UI服务对应的数据服务对象
*
...
...
app_web/src/utils/view-tool/view-tool.ts
浏览文件 @
5fb2b1c7
...
...
@@ -258,7 +258,7 @@ export class ViewTool {
return
result
;
}
const
_item
=
ActionModel
[
key
];
if
(
_item
&&
_item
[
'dataaccaction'
]
&&
UIService
){
if
(
_item
&&
_item
[
'dataaccaction'
]
&&
UIService
&&
UIService
.
isEnableDEMainState
){
let
dataActionResult
:
any
;
if
(
Object
.
is
(
_item
[
'actiontarget'
],
"NONE"
)
||
Object
.
is
(
_item
[
'actiontarget'
],
""
)){
dataActionResult
=
UIService
.
getResourceOPPrivs
(
_item
[
'dataaccaction'
]);
...
...
app_web/src/widgets/sdfile/main-grid/main-grid-base.vue
浏览文件 @
5fb2b1c7
...
...
@@ -4,5 +4,5 @@ Tip: If the failing expression is known to be legally refer to something that's
----
FTL stack trace ("~" means nesting-related):
- Failed at: ${ctrl.getPSAppDataEntity().getMajorP... [in template "TEMPLCODE_en_US" at line 11
56
, column 39]
- Failed at: ${ctrl.getPSAppDataEntity().getMajorP... [in template "TEMPLCODE_en_US" at line 11
74
, column 39]
----
\ No newline at end of file
ibzdisk-boot/src/main/resources/application-dev.yml
浏览文件 @
5fb2b1c7
...
...
@@ -4,57 +4,57 @@ server:
#zuul网关路由设置
zuul
:
routes
:
loginv7
:
path
:
/v7/login
serviceId
:
${ibiz.ref.service.uaa:ibzuaa-api}
stripPrefix
:
false
changepwd
:
path
:
/v7/changepwd
serviceId
:
${ibiz.ref.service.uaa:ibzuaa-api}
stripPrefix
:
false
uaa
:
path
:
/uaa/**
serviceId
:
${ibiz.ref.service.uaa:ibzuaa-api}
stripPrefix
:
false
config
:
path
:
/configs/**
serviceId
:
${ibiz.ref.service.uaa:ibzuaa-api}
stripPrefix
:
false
oucore
:
path
:
/ibzorganizations/**
serviceId
:
${ibiz.ref.service.ou:ibzou-api}
stripPrefix
:
false
oudict
:
path
:
/dictionarys/**/Ibzou**
serviceId
:
${ibiz.ref.service.ou:ibzou-api}
stripPrefix
:
false
ou
:
path
:
/ibzdepartments/**
serviceId
:
${ibiz.ref.service.ou:ibzou-api}
stripPrefix
:
false
uaadict
:
path
:
/dictionarys/**/SysOperator
serviceId
:
${ibiz.ref.service.uaa:ibzuaa-api}
stripPrefix
:
false
dict
:
path
:
/dictionarys/**
serviceId
:
${ibiz.ref.service.dict:ibzdict-api}
stripPrefix
:
false
disk
:
path
:
/net-disk/**
serviceId
:
${ibiz.ref.service.disk:ibzdisk-api}
stripPrefix
:
false
ou_sys_org
:
path
:
/sysorganizations/**
serviceId
:
${ibiz.ref.service.ou:ibzou-api}
stripPrefix
:
false
ou_sys_dept
:
path
:
/sysdepartments/**
serviceId
:
${ibiz.ref.service.ou:ibzou-api}
stripPrefix
:
false
lite-core
:
path
:
/lite/**
serviceId
:
${ibiz.ref.service.lite:ibzlite-api}
stripPrefix
:
false
loginv7
:
path
:
/v7/login
serviceId
:
${ibiz.ref.service.uaa:ibzuaa-api}
stripPrefix
:
false
changepwd
:
path
:
/v7/changepwd
serviceId
:
${ibiz.ref.service.uaa:ibzuaa-api}
stripPrefix
:
false
uaa
:
path
:
/uaa/**
serviceId
:
${ibiz.ref.service.uaa:ibzuaa-api}
stripPrefix
:
false
config
:
path
:
/configs/**
serviceId
:
${ibiz.ref.service.uaa:ibzuaa-api}
stripPrefix
:
false
oucore
:
path
:
/ibzorganizations/**
serviceId
:
${ibiz.ref.service.ou:ibzou-api}
stripPrefix
:
false
oudict
:
path
:
/dictionarys/**/Ibzou**
serviceId
:
${ibiz.ref.service.ou:ibzou-api}
stripPrefix
:
false
ou
:
path
:
/ibzdepartments/**
serviceId
:
${ibiz.ref.service.ou:ibzou-api}
stripPrefix
:
false
uaadict
:
path
:
/dictionarys/**/SysOperator
serviceId
:
${ibiz.ref.service.uaa:ibzuaa-api}
stripPrefix
:
false
dict
:
path
:
/dictionarys/**
serviceId
:
${ibiz.ref.service.dict:ibzdict-api}
stripPrefix
:
false
disk
:
path
:
/net-disk/**
serviceId
:
${ibiz.ref.service.disk:ibzdisk-api}
stripPrefix
:
false
ou_sys_org
:
path
:
/sysorganizations/**
serviceId
:
${ibiz.ref.service.ou:ibzou-api}
stripPrefix
:
false
ou_sys_dept
:
path
:
/sysdepartments/**
serviceId
:
${ibiz.ref.service.ou:ibzou-api}
stripPrefix
:
false
lite-core
:
path
:
/lite/**
serviceId
:
${ibiz.ref.service.lite:ibzlite-api}
stripPrefix
:
false
sensitive-headers
:
-
Cookie,Set-Cookie,Authorization
ibzdisk-core/src/main/java/cn/ibizlab/core/disk/domain/SDFile.java
浏览文件 @
5fb2b1c7
...
...
@@ -19,6 +19,7 @@ import cn.ibizlab.util.annotation.DEField;
import
cn.ibizlab.util.enums.DEPredefinedFieldType
;
import
cn.ibizlab.util.enums.DEFieldDefaultValueType
;
import
cn.ibizlab.util.helper.DataObject
;
import
cn.ibizlab.util.enums.DupCheck
;
import
java.io.Serializable
;
import
lombok.*
;
import
org.springframework.data.annotation.Transient
;
...
...
ibzdisk-core/src/main/java/cn/ibizlab/core/disk/service/ISDFileService.java
浏览文件 @
5fb2b1c7
...
...
@@ -18,7 +18,6 @@ import org.springframework.cache.annotation.CacheEvict;
import
cn.ibizlab.core.disk.domain.SDFile
;
import
cn.ibizlab.core.disk.filter.SDFileSearchContext
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
...
...
ibzdisk-core/src/main/java/cn/ibizlab/core/disk/service/impl/SDFileServiceImpl.java
浏览文件 @
5fb2b1c7
...
...
@@ -210,6 +210,7 @@ public class SDFileServiceImpl extends ServiceImpl<SDFileMapper, SDFile> impleme
}
...
...
ibzdisk-core/src/main/resources/sysmodel/ibzdisk.json
浏览文件 @
5fb2b1c7
...
...
@@ -21,6 +21,7 @@
"data_type"
:
"VARCHAR"
,
"data_length"
:
100
,
"key_field"
:
1
,
"show_order"
:
1
,
"major_field"
:
0
},
{
...
...
@@ -34,6 +35,7 @@
"data_type"
:
"VARCHAR"
,
"data_length"
:
200
,
"key_field"
:
0
,
"show_order"
:
2
,
"major_field"
:
1
},
{
...
...
@@ -47,6 +49,7 @@
"data_type"
:
"VARCHAR"
,
"data_length"
:
500
,
"key_field"
:
0
,
"show_order"
:
3
,
"major_field"
:
0
},
{
...
...
@@ -60,6 +63,7 @@
"data_type"
:
"VARCHAR"
,
"data_length"
:
40
,
"key_field"
:
0
,
"show_order"
:
4
,
"major_field"
:
0
},
{
...
...
@@ -72,6 +76,7 @@
"physical_field"
:
1
,
"data_type"
:
"INT"
,
"key_field"
:
0
,
"show_order"
:
5
,
"major_field"
:
0
},
{
...
...
@@ -85,6 +90,7 @@
"data_type"
:
"VARCHAR"
,
"data_length"
:
20
,
"key_field"
:
0
,
"show_order"
:
6
,
"major_field"
:
0
},
{
...
...
@@ -98,6 +104,7 @@
"data_type"
:
"VARCHAR"
,
"data_length"
:
100
,
"key_field"
:
0
,
"show_order"
:
9
,
"major_field"
:
0
},
{
...
...
@@ -111,6 +118,7 @@
"data_type"
:
"VARCHAR"
,
"data_length"
:
100
,
"key_field"
:
0
,
"show_order"
:
10
,
"major_field"
:
0
},
{
...
...
@@ -124,6 +132,7 @@
"data_type"
:
"VARCHAR"
,
"data_length"
:
500
,
"key_field"
:
0
,
"show_order"
:
12
,
"major_field"
:
0
},
{
...
...
@@ -137,6 +146,7 @@
"data_type"
:
"VARCHAR"
,
"data_length"
:
64
,
"key_field"
:
0
,
"show_order"
:
13
,
"major_field"
:
0
},
{
...
...
@@ -152,6 +162,7 @@
"data_length"
:
100
,
"predefined"
:
"CREATEMAN"
,
"key_field"
:
0
,
"show_order"
:
31
,
"major_field"
:
0
},
{
...
...
@@ -165,6 +176,7 @@
"data_type"
:
"DATETIME"
,
"predefined"
:
"CREATEDATE"
,
"key_field"
:
0
,
"show_order"
:
32
,
"major_field"
:
0
},
{
...
...
@@ -180,6 +192,7 @@
"data_length"
:
100
,
"predefined"
:
"UPDATEMAN"
,
"key_field"
:
0
,
"show_order"
:
33
,
"major_field"
:
0
},
{
...
...
@@ -193,6 +206,7 @@
"data_type"
:
"DATETIME"
,
"predefined"
:
"UPDATEDATE"
,
"key_field"
:
0
,
"show_order"
:
34
,
"major_field"
:
0
}
],
...
...
ibzdisk-dependencies/pom.xml
浏览文件 @
5fb2b1c7
...
...
@@ -233,12 +233,6 @@
<version>
${jsonwebtoken-jjwt.version}
</version>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
druid-spring-boot-starter
</artifactId>
<version>
${alibaba-druid.version}
</version>
</dependency>
<dependency>
<groupId>
org.zalando
</groupId>
<artifactId>
problem-spring-web
</artifactId>
...
...
@@ -351,6 +345,8 @@
</dependency>
</dependencies>
</project>
ibzdisk-util/src/main/java/cn/ibizlab/util/annotation/DEField.java
浏览文件 @
5fb2b1c7
...
...
@@ -2,6 +2,7 @@ package cn.ibizlab.util.annotation;
import
cn.ibizlab.util.enums.DEFieldDefaultValueType
;
import
cn.ibizlab.util.enums.DEPredefinedFieldType
;
import
cn.ibizlab.util.enums.DupCheck
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
...
...
@@ -66,5 +67,14 @@ public @interface DEField
* @return
*/
String
format
()
default
""
;
/**
* 重复性检查
* @return
*/
DupCheck
dupCheck
()
default
DupCheck
.
NONE
;
/**
* 范围属性
*/
String
dupCheckField
()
default
""
;
}
ibzdisk-util/src/main/java/cn/ibizlab/util/dict/StaticDict.java
0 → 100644
浏览文件 @
5fb2b1c7
此差异已折叠。
点击以展开。
ibzdisk-util/src/main/java/cn/ibizlab/util/domain/EntityClient.java
浏览文件 @
5fb2b1c7
...
...
@@ -6,9 +6,9 @@ public class EntityClient extends EntityBase {
@Override
public
void
modify
(
String
field
,
Object
val
)
{
getExtensionparams
().
put
(
"dirtyflagenable"
,
true
);
if
(
val
==
null
){
this
.
getFocusNull
().
add
(
field
.
toLowerCase
());
getExtensionparams
().
put
(
"dirtyflagenable"
,
true
);
getExtensionparams
().
put
(
field
.
toLowerCase
()+
"dirtyflag"
,
true
);
}
else
{
...
...
ibzdisk-util/src/main/java/cn/ibizlab/util/enums/DupCheck.java
0 → 100644
浏览文件 @
5fb2b1c7
package
cn
.
ibizlab
.
util
.
enums
;
/**
* 属性重复值检查
*/
public
enum
DupCheck
{
/**
* 不检查
*/
NONE
,
/**
* 全部检查
*/
ALL
,
/**
* 非空检查
*/
NOTNULL
,
/**
* 指定范围检查
*/
RANGE
,
}
ibzdisk-util/src/main/java/cn/ibizlab/util/errors/ExceptionTranslator.java
浏览文件 @
5fb2b1c7
package
cn
.
ibizlab
.
util
.
errors
;
import
org.springframework.dao.
ConcurrencyFailureException
;
import
org.springframework.dao.
*
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.validation.BindingResult
;
...
...
@@ -90,9 +90,18 @@ public class ExceptionTranslator implements ProblemHandling {
return
create
(
ex
,
problem
,
request
);
}
@ExceptionHandler
(
DataAccessException
.
class
)
public
ResponseEntity
<
Problem
>
handlerDataAccessFailure
(
DataAccessException
ex
,
NativeWebRequest
request
){
Problem
problem
=
Problem
.
builder
()
.
withStatus
(
Status
.
INTERNAL_SERVER_ERROR
)
.
with
(
"message"
,
ex
.
getMessage
())
.
build
();
return
create
(
ex
,
problem
,
request
,
createFailureAlert
(
ex
.
getClass
().
getSimpleName
(),
ex
.
getClass
().
getSimpleName
(),
ex
.
getMessage
()));
}
public
static
HttpHeaders
createFailureAlert
(
String
entityName
,
String
errorKey
,
String
defaultMessage
)
{
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
add
(
"X-ibz-error"
,
"error."
+
errorKey
);
headers
.
add
(
"X-ibz-error"
,
errorKey
);
headers
.
add
(
"X-ibz-params"
,
entityName
);
return
headers
;
}
...
...
ibzdisk-util/src/main/java/cn/ibizlab/util/job/PermissionSyncJob.java
浏览文件 @
5fb2b1c7
...
...
@@ -41,6 +41,7 @@ public class PermissionSyncJob implements ApplicationRunner {
@Lazy
IBZLiteFeignClient
liteFeignClient
;
@Override
public
void
run
(
ApplicationArguments
args
)
{
try
{
...
...
@@ -76,5 +77,6 @@ public class PermissionSyncJob implements ApplicationRunner {
}
}
}
\ No newline at end of file
ibzdisk-util/src/main/java/cn/ibizlab/util/rest/AppController.java
浏览文件 @
5fb2b1c7
...
...
@@ -59,6 +59,7 @@ public class AppController {
appData
.
put
(
"enablepermissionvalid"
,
false
);
else
appData
.
put
(
"enablepermissionvalid"
,
enablePermissionValid
);
fillAppData
(
appData
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
appData
);
}
...
...
@@ -87,4 +88,12 @@ public class AppController {
throw
new
BadRequestAlertException
(
"获取配置失败,参数缺失"
,
"IBZConfig"
,
configType
);
return
ResponseEntity
.
ok
(
ibzConfigService
.
getConfig
(
configType
,
targetType
,
userId
));
}
/**
* 应用参数扩展
* @param appData
*/
protected
void
fillAppData
(
JSONObject
appData
){
}
}
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录