Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzuaa
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzuaa
提交
39be8e25
提交
39be8e25
编写于
5月 09, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ibizdev提交
上级
095c58c2
变更
10
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
501 行增加
和
3 行删除
+501
-3
view-config.json
app_web/public/assets/json/view-config.json
+8
-0
sys-user-role_en_US.ts
...eb/src/locale/lanres/sys-user-role/sys-user-role_en_US.ts
+4
-0
sys-user-role_zh_CN.ts
...eb/src/locale/lanres/sys-user-role/sys-user-role_zh_CN.ts
+4
-0
viewconfig.ts
app_web/src/mock/viewconfig/viewconfig.ts
+8
-0
sys-user-rolecustom-view-base.vue
...ys-user-rolecustom-view/sys-user-rolecustom-view-base.vue
+442
-0
sys-user-rolecustom-view.less
...aa/sys-user-rolecustom-view/sys-user-rolecustom-view.less
+5
-0
sys-user-rolecustom-view.vue
...uaa/sys-user-rolecustom-view/sys-user-rolecustom-view.vue
+17
-0
state.ts
app_web/src/store/modules/view-action/state.ts
+9
-0
sys-user-role-ui-service-base.ts
.../uiservice/sys-user-role/sys-user-role-ui-service-base.ts
+1
-0
h2_table.xml
ibzuaa-core/src/main/resources/liquibase/h2_table.xml
+3
-3
未找到文件。
app_web/public/assets/json/view-config.json
浏览文件 @
39be8e25
...
...
@@ -191,6 +191,14 @@
"viewname"
:
"SYS_USEREditView"
,
"viewtag"
:
"9a896aa77c214ed87ab9be4fd6c6bec5"
},
"sys_user_rolecustomview"
:
{
"title"
:
"角色表自定义视图"
,
"caption"
:
"角色表自定义视图"
,
"viewtype"
:
"DECUSTOMVIEW"
,
"viewmodule"
:
"uaa"
,
"viewname"
:
"SYS_USER_ROLECustomView"
,
"viewtag"
:
"9b017760188bc666966521361d0ad5a1"
},
"sys_permissionpickupgridview"
:
{
"title"
:
"权限表选择表格视图"
,
"caption"
:
"权限/资源"
,
...
...
app_web/src/locale/lanres/sys-user-role/sys-user-role_en_US.ts
浏览文件 @
39be8e25
...
...
@@ -22,6 +22,10 @@ export default {
pickupgridview
:
{
caption
:
"用户角色关系"
,
title
:
'用户角色关系'
,
},
customview
:
{
caption
:
"角色表自定义视图"
,
title
:
'角色表自定义视图'
,
},
mpickupview
:
{
caption
:
"用户角色关系"
,
...
...
app_web/src/locale/lanres/sys-user-role/sys-user-role_zh_CN.ts
浏览文件 @
39be8e25
...
...
@@ -21,6 +21,10 @@ export default {
pickupgridview
:
{
caption
:
'用户角色关系'
,
title
:
'用户角色关系'
,
},
customview
:
{
caption
:
'角色表自定义视图'
,
title
:
'角色表自定义视图'
,
},
mpickupview
:
{
caption
:
'用户角色关系'
,
...
...
app_web/src/mock/viewconfig/viewconfig.ts
浏览文件 @
39be8e25
...
...
@@ -199,6 +199,14 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname"
:
"SYS_USEREditView"
,
"viewtag"
:
"9a896aa77c214ed87ab9be4fd6c6bec5"
},
"sys_user_rolecustomview"
:
{
"title"
:
"角色表自定义视图"
,
"caption"
:
"角色表自定义视图"
,
"viewtype"
:
"DECUSTOMVIEW"
,
"viewmodule"
:
"uaa"
,
"viewname"
:
"SYS_USER_ROLECustomView"
,
"viewtag"
:
"9b017760188bc666966521361d0ad5a1"
},
"sys_permissionpickupgridview"
:
{
"title"
:
"权限表选择表格视图"
,
"caption"
:
"权限/资源"
,
...
...
app_web/src/pages/uaa/sys-user-rolecustom-view/sys-user-rolecustom-view-base.vue
0 → 100644
浏览文件 @
39be8e25
<
template
>
<div
class=
"view-container decustomview sys-user-rolecustom-view"
>
<app-studioaction
:viewTitle=
"$t(model.srfTitle)"
viewName=
"sys_user_rolecustomview"
></app-studioaction>
<card
class=
'view-card'
:disHover=
"true"
:padding=
"0"
:bordered=
"false"
>
<p
slot=
'title'
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srfTitle
)
}}
</span>
</p>
<div
class=
"content-container"
>
</div>
</card>
</div>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
}
from
'vue-property-decorator'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
{
Subject
}
from
'rxjs'
;
import
SYS_USER_ROLEService
from
'@/service/sys-user-role/sys-user-role-service'
;
@
Component
({
components
:
{
},
})
export
default
class
SYS_USER_ROLECustomViewBase
extends
Vue
{
/**
* 实体服务对象
*
* @type {SYS_USER_ROLEService}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
appEntityService
:
SYS_USER_ROLEService
=
new
SYS_USER_ROLEService
;
/**
* 计数器服务对象集合
*
* @type {Array<*>}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
counterServiceArray
:
Array
<
any
>
=
[];
/**
* 数据变化
*
* @param {*} val
* @returns {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
@
Emit
()
protected
viewDatasChange
(
val
:
any
):
any
{
return
val
;
}
/**
* 传入视图上下文
*
* @type {string}
* @memberof SYS_USER_ROLECustomViewBase
*/
@
Prop
()
protected
viewdata
!
:
string
;
/**
* 传入视图参数
*
* @type {string}
* @memberof SYS_USER_ROLECustomViewBase
*/
@
Prop
()
protected
viewparam
!
:
string
;
/**
* 视图默认使用
*
* @type {boolean}
* @memberof SYS_USER_ROLECustomViewBase
*/
@
Prop
({
default
:
true
})
protected
viewDefaultUsage
!
:
boolean
;
/**
* 视图标识
*
* @type {string}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
viewtag
:
string
=
'9b017760188bc666966521361d0ad5a1'
;
/**
* 自定义视图导航上下文集合
*
* @type {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
customViewNavContexts
:
any
=
{
};
/**
* 自定义视图导航参数集合
*
* @type {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
customViewParams
:
any
=
{
};
/**
* 视图模型数据
*
* @type {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
model
:
any
=
{
srfCaption
:
'entities.sys_user_role.views.customview.caption'
,
srfTitle
:
'entities.sys_user_role.views.customview.title'
,
srfSubTitle
:
'entities.sys_user_role.views.customview.subtitle'
,
dataInfo
:
''
}
/**
* 视图参数变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof SYS_USER_ROLECustomViewBase
*/
@
Watch
(
'viewparam'
,{
immediate
:
true
,
deep
:
true
})
onParamData
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
){
for
(
let
key
in
this
.
viewparams
){
delete
this
.
viewparams
[
key
];
}
Object
.
assign
(
this
.
viewparams
,
JSON
.
parse
(
this
.
viewparam
));
}
}
/**
* 处理应用上下文变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof SYS_USER_ROLECustomViewBase
*/
@
Watch
(
'viewdata'
)
onViewData
(
newVal
:
any
,
oldVal
:
any
)
{
const
_this
:
any
=
this
;
if
(
!
Object
.
is
(
newVal
,
oldVal
)
&&
_this
.
engine
)
{
_this
.
parseViewParam
();
_this
.
engine
.
load
();
}
}
/**
* 容器模型
*
* @type {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
containerModel
:
any
=
{
};
/**
* 计数器刷新
*
* @memberof SYS_USER_ROLECustomViewBase
*/
public
counterRefresh
(){
const
_this
:
any
=
this
;
if
(
_this
.
counterServiceArray
&&
_this
.
counterServiceArray
.
length
>
0
){
_this
.
counterServiceArray
.
forEach
((
item
:
any
)
=>
{
if
(
item
.
refreshData
&&
item
.
refreshData
instanceof
Function
){
item
.
refreshData
();
}
})
}
}
/**
* 视图状态订阅对象
*
* @private
* @type {Subject<{action: string, data: any}>}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
viewState
:
Subject
<
ViewState
>
=
new
Subject
();
/**
* 引擎初始化
*
* @private
* @memberof SYS_USER_ROLECustomViewBase
*/
private
engineInit
():
void
{
}
/**
* 应用上下文
*
* @type {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
context
:
any
=
{};
/**
* 视图参数
*
* @type {*}
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
viewparams
:
any
=
{};
/**
* 解析视图参数
*
* @private
* @memberof SYS_USER_ROLECustomViewBase
*/
private
parseViewParam
():
void
{
for
(
let
key
in
this
.
context
){
delete
this
.
context
[
key
];
}
if
(
!
this
.
viewDefaultUsage
&&
this
.
viewdata
&&
!
Object
.
is
(
this
.
viewdata
,
''
))
{
Object
.
assign
(
this
.
context
,
JSON
.
parse
(
this
.
viewdata
));
if
(
this
.
context
&&
this
.
context
.
srfparentdename
){
Object
.
assign
(
this
.
viewparams
,{
srfparentdename
:
this
.
context
.
srfparentdename
});
}
if
(
this
.
context
&&
this
.
context
.
srfparentkey
){
Object
.
assign
(
this
.
viewparams
,{
srfparentkey
:
this
.
context
.
srfparentkey
});
}
this
.
handleCustomViewData
();
return
;
}
const
path
=
(
this
.
$route
.
matched
[
this
.
$route
.
matched
.
length
-
1
]).
path
;
const
keys
:
Array
<
any
>
=
[];
const
curReg
=
this
.
$pathToRegExp
.
pathToRegexp
(
path
,
keys
);
const
matchArray
=
curReg
.
exec
(
this
.
$route
.
path
);
let
tempValue
:
Object
=
{};
keys
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
.
name
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
this
.
$viewTool
.
formatRouteParams
(
tempValue
,
this
.
$route
,
this
.
context
,
this
.
viewparams
);
if
(
this
.
$store
.
getters
.
getAppData
()
&&
this
.
$store
.
getters
.
getAppData
().
context
){
Object
.
assign
(
this
.
context
,
this
.
$store
.
getters
.
getAppData
().
context
);
}
//初始化视图唯一标识
Object
.
assign
(
this
.
context
,{
srfsessionid
:
this
.
$util
.
createUUID
()});
this
.
handleCustomViewData
();
}
/**
* 处理自定义视图数据
*
* @memberof SYS_USER_ROLECustomViewBase
*/
public
handleCustomViewData
(){
if
(
Object
.
keys
(
this
.
customViewNavContexts
).
length
>
0
){
Object
.
keys
(
this
.
customViewNavContexts
).
forEach
((
item
:
any
)
=>
{
let
tempContext
:
any
=
{};
let
curNavContext
:
any
=
this
.
customViewNavContexts
[
item
];
this
.
handleCustomDataLogic
(
curNavContext
,
tempContext
,
item
);
Object
.
assign
(
this
.
context
,
tempContext
);
})
}
if
(
Object
.
keys
(
this
.
customViewParams
).
length
>
0
){
Object
.
keys
(
this
.
customViewParams
).
forEach
((
item
:
any
)
=>
{
let
tempParam
:
any
=
{};
let
curNavParam
:
any
=
this
.
customViewParams
[
item
];
this
.
handleCustomDataLogic
(
curNavParam
,
tempParam
,
item
);
Object
.
assign
(
this
.
viewparams
,
tempParam
);
})
}
}
/**
* 处理自定义视图数据逻辑
*
* @memberof SYS_USER_ROLECustomViewBase
*/
public
handleCustomDataLogic
(
curNavData
:
any
,
tempData
:
any
,
item
:
string
){
// 直接值直接赋值
if
(
curNavData
.
isRawValue
){
if
(
Object
.
is
(
curNavData
.
value
,
"null"
)
||
Object
.
is
(
curNavData
.
value
,
""
)){
Object
.
defineProperty
(
tempData
,
item
,
{
value
:
null
,
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
Object
.
defineProperty
(
tempData
,
item
,
{
value
:
curNavData
.
value
,
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
}
else
{
// 先从导航上下文取数,没有再从导航参数(URL)取数,如果导航上下文和导航参数都没有则为null
if
(
this
.
context
[(
curNavData
.
value
).
toLowerCase
()]){
Object
.
defineProperty
(
tempData
,
item
,
{
value
:
this
.
context
[(
curNavData
.
value
).
toLowerCase
()],
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
if
(
this
.
viewparams
[(
curNavData
.
value
).
toLowerCase
()]){
Object
.
defineProperty
(
tempData
,
item
,
{
value
:
this
.
viewparams
[(
curNavData
.
value
).
toLowerCase
()],
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
else
{
Object
.
defineProperty
(
tempData
,
item
,
{
value
:
null
,
writable
:
true
,
enumerable
:
true
,
configurable
:
true
});
}
}
}
}
/**
* Vue声明周期
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
created
()
{
this
.
afterCreated
();
}
/**
* 执行created后的逻辑
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
afterCreated
(){
const
secondtag
=
this
.
$util
.
createUUID
();
this
.
$store
.
commit
(
'viewaction/createdView'
,
{
viewtag
:
this
.
viewtag
,
secondtag
:
secondtag
});
this
.
viewtag
=
secondtag
;
this
.
parseViewParam
();
}
/**
* 销毁之前
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
beforeDestroy
()
{
this
.
$store
.
commit
(
'viewaction/removeView'
,
this
.
viewtag
);
}
/**
* Vue声明周期(组件初始化完毕)
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
mounted
()
{
this
.
afterMounted
();
}
/**
* 执行mounted后的逻辑
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
afterMounted
(){
const
_this
:
any
=
this
;
_this
.
engineInit
();
if
(
_this
.
loadModel
&&
_this
.
loadModel
instanceof
Function
)
{
_this
.
loadModel
();
}
}
/**
* 关闭视图
*
* @param {any[]} args
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
closeView
(
args
:
any
[]):
void
{
let
_view
:
any
=
this
;
if
(
_view
.
viewdata
)
{
_view
.
$emit
(
'viewdataschange'
,
[
args
]);
_view
.
$emit
(
'close'
,
[
args
]);
}
else
if
(
_view
.
$tabPageExp
)
{
_view
.
$tabPageExp
.
onClose
(
_view
.
$route
.
fullPath
);
}
}
/**
* 销毁视图回调
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
destroyed
(){
this
.
afterDestroyed
();
}
/**
* 执行destroyed后的逻辑
*
* @memberof SYS_USER_ROLECustomViewBase
*/
protected
afterDestroyed
(){
if
(
this
.
viewDefaultUsage
){
let
localStoreLength
=
Object
.
keys
(
localStorage
);
if
(
localStoreLength
.
length
>
0
){
localStoreLength
.
forEach
((
item
:
string
)
=>
{
if
(
item
.
startsWith
(
this
.
context
.
srfsessionid
)){
localStorage
.
removeItem
(
item
);
}
})
}
}
}
}
</
script
>
<
style
lang=
'less'
>
@import './sys-user-rolecustom-view.less';
</
style
>
\ No newline at end of file
app_web/src/pages/uaa/sys-user-rolecustom-view/sys-user-rolecustom-view.less
0 → 100644
浏览文件 @
39be8e25
.sys-user-rolecustom-view{
position: relative;
}
app_web/src/pages/uaa/sys-user-rolecustom-view/sys-user-rolecustom-view.vue
0 → 100644
浏览文件 @
39be8e25
<
script
lang=
'tsx'
>
import
{
Component
}
from
'vue-property-decorator'
;
import
SYS_USER_ROLECustomViewBase
from
'./sys-user-rolecustom-view-base.vue'
;
@
Component
({
components
:
{
},
beforeRouteEnter
:
(
to
:
any
,
from
:
any
,
next
:
any
)
=>
{
next
((
vm
:
any
)
=>
{
vm
.
$store
.
commit
(
'addCurPageViewtag'
,
{
fullPath
:
to
.
fullPath
,
viewtag
:
vm
.
viewtag
});
});
},
})
export
default
class
SYS_USER_ROLECustomView
extends
SYS_USER_ROLECustomViewBase
{
}
</
script
>
\ No newline at end of file
app_web/src/store/modules/view-action/state.ts
浏览文件 @
39be8e25
...
...
@@ -249,6 +249,15 @@ export const viewstate: any = {
'fb89f9af95f2caf92ccc1249025c9a1b'
,
],
},
{
viewtag
:
'9b017760188bc666966521361d0ad5a1'
,
viewmodule
:
'uaa'
,
viewname
:
'SYS_USER_ROLECustomView'
,
viewaction
:
''
,
viewdatachange
:
false
,
refviews
:
[
],
},
{
viewtag
:
'9c0b351150648f7661be53c10eaabd67'
,
viewmodule
:
'uaa'
,
...
...
app_web/src/uiservice/sys-user-role/sys-user-role-ui-service-base.ts
浏览文件 @
39be8e25
...
...
@@ -82,6 +82,7 @@ export default class SYS_USER_ROLEUIServiceBase extends UIService {
this
.
allViewMap
.
set
(
'REDIRECTVIEW:'
,{
viewname
:
'redirectview'
,
srfappde
:
'sys_user_roles'
});
this
.
allViewMap
.
set
(
'EDITVIEW:'
,{
viewname
:
'editview'
,
srfappde
:
'sys_user_roles'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'pickupgridview'
,
srfappde
:
'sys_user_roles'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'customview'
,
srfappde
:
'sys_user_roles'
});
this
.
allViewMap
.
set
(
'MPICKUPVIEW:'
,{
viewname
:
'mpickupview'
,
srfappde
:
'sys_user_roles'
});
this
.
allViewMap
.
set
(
':'
,{
viewname
:
'editview2'
,
srfappde
:
'sys_user_roles'
});
this
.
allViewMap
.
set
(
'PICKUPVIEW:'
,{
viewname
:
'pickupview'
,
srfappde
:
'sys_user_roles'
});
...
...
ibzuaa-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
39be8e25
...
...
@@ -94,7 +94,7 @@
</createTable>
</changeSet>
<!--输出实体[SYS_USER_ROLE]数据结构 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-sys_user_role-
37
-5"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-sys_user_role-
41
-5"
>
<createTable
tableName=
"IBZUSER_ROLE"
>
<column
name=
"SYS_USER_ROLEID"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_SYS_USER_ROLE_SYS_USER_ROLE"
/>
...
...
@@ -200,10 +200,10 @@
<!--输出实体[SYS_USER]外键关系 -->
<!--输出实体[SYS_PSSYSUNIRES]外键关系 -->
<!--输出实体[SYS_USER_ROLE]外键关系 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_user_role-
37
-12"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_user_role-
41
-12"
>
<addForeignKeyConstraint
baseColumnNames=
"SYS_ROLEID"
baseTableName=
"IBZUSER_ROLE"
constraintName=
"DER1N_SYS_USER_ROLE_SYS_ROLE_S"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"SYS_ROLEID"
referencedTableName=
"IBZROLE"
validate=
"true"
/>
</changeSet>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_user_role-
37
-13"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"fk-sys_user_role-
41
-13"
>
<addForeignKeyConstraint
baseColumnNames=
"SYS_USERID"
baseTableName=
"IBZUSER_ROLE"
constraintName=
"DER1N_SYS_USER_ROLE_SYS_USER_S"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"USERID"
referencedTableName=
"IBZUSER"
validate=
"true"
/>
</changeSet>
<!--输出实体[SYS_PERMISSION]外键关系 -->
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录