Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzuaa
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzuaa
提交
6b40c2d2
提交
6b40c2d2
编写于
5月 27, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ibiz4j 部署微服务应用
上级
d0432f8f
变更
26
展开全部
隐藏空白字符变更
内嵌
并排
正在显示
26 个修改的文件
包含
905 行增加
和
292 行删除
+905
-292
package.json
app_web/package.json
+4
-2
app-department-select.vue
...omponents/app-department-select/app-department-select.vue
+2
-2
app-org-select.vue
app_web/src/components/app-org-select/app-org-select.vue
+9
-9
ibiz-group-picker.vue
...eb/src/components/ibiz-group-picker/ibiz-group-picker.vue
+26
-7
ibiz-group-select.vue
...eb/src/components/ibiz-group-select/ibiz-group-select.vue
+14
-3
tab-page-exp.vue
app_web/src/components/tab-page-exp/tab-page-exp.vue
+3
-3
edit-view-engine.ts
app_web/src/engine/view/edit-view-engine.ts
+3
-3
main-appmenu.ts
app_web/src/mock/app/main-appmenu/main-appmenu.ts
+1
-1
entity-service.ts
app_web/src/service/entity-service.ts
+15
-0
util.d.ts
app_web/src/utils/types/util.d.ts
+11
-0
uiaction-tool.ts
app_web/src/utils/uiaction-tool/uiaction-tool.ts
+1
-1
util.ts
app_web/src/utils/util/util.ts
+20
-0
main-appmenu-base.vue
app_web/src/widgets/app/main-appmenu/main-appmenu-base.vue
+3
-3
main-appmenu-model.ts
app_web/src/widgets/app/main-appmenu/main-appmenu-model.ts
+2
-2
main-grid-base.vue
...web/src/widgets/sys-auth-log/main-grid/main-grid-base.vue
+128
-42
main-grid-base.vue
...b/src/widgets/sys-permission/main-grid/main-grid-base.vue
+122
-36
main-grid-base.vue
.../widgets/sys-role-permission/main-grid/main-grid-base.vue
+123
-37
main-grid-base.vue
app_web/src/widgets/sys-role/main-grid/main-grid-base.vue
+124
-38
main-grid-base.vue
...eb/src/widgets/sys-user-role/main-grid/main-grid-base.vue
+123
-37
main-grid-base.vue
app_web/src/widgets/sys-user/main-grid/main-grid-base.vue
+123
-37
yarn.lock
app_web/yarn.lock
+25
-8
config.xml
config.xml
+5
-5
Dockerfile
ibzuaa-app/ibzuaa-app-web/src/main/docker/Dockerfile
+1
-1
ibzuaa-app-web.yaml
...aa-app/ibzuaa-app-web/src/main/docker/ibzuaa-app-web.yaml
+15
-1
Dockerfile
...a-provider/ibzuaa-provider-api/src/main/docker/Dockerfile
+1
-1
ibzuaa-provider-api.yaml
...uaa-provider-api/src/main/docker/ibzuaa-provider-api.yaml
+1
-13
未找到文件。
app_web/package.json
浏览文件 @
6b40c2d2
...
...
@@ -18,14 +18,16 @@
"@fullcalendar/list"
:
"^4.4.0"
,
"@fullcalendar/timegrid"
:
"^4.4.0"
,
"@fullcalendar/vue"
:
"^4.4.0"
,
"vuedraggable"
:
"^2.23.2"
,
"async-validator"
:
"^3.3.0"
,
"axios"
:
"^0.19.1"
,
"core-js"
:
"^3.4.4"
,
"echarts"
:
"^4.6.0"
,
"element-ui"
:
"^2.13.0"
,
"file-saver"
:
"^2.0.2"
,
"font-awesome"
:
"^4.7.0"
,
"ibiz-gantt-elastic"
:
"^1.0.1
3
"
,
"ibiz-vue-lib"
:
"^0.1.
7
"
,
"ibiz-gantt-elastic"
:
"^1.0.1
5
"
,
"ibiz-vue-lib"
:
"^0.1.
9
"
,
"interactjs"
:
"^1.9.4"
,
"moment"
:
"^2.24.0"
,
"path-to-regexp"
:
"^6.1.0"
,
...
...
app_web/src/components/app-department-select/app-department-select.vue
浏览文件 @
6b40c2d2
...
...
@@ -17,7 +17,7 @@ export default class AppDepartmentSelect extends Vue {
* @type {*}
* @memberof AppDepartmentSelect
*/
@
Prop
(
{
default
:
'/ibzorganizations/{orgid}/ibzdepartments/picker'
}
)
public
url
?:
any
;
@
Prop
()
public
url
?:
any
;
/**
* 过滤项
...
...
@@ -108,7 +108,7 @@ export default class AppDepartmentSelect extends Vue {
public
searchNodesData
(){
// 处理过滤参数,生成url
let
param
=
this
.
handleFilter
();
let
_url
=
this
.
url
.
replace
(
/{orgid}/
,
param
)
let
_url
=
this
.
url
.
replace
(
'${orgid}'
,
param
)
if
(
this
.
oldurl
===
_url
){
return
;
}
...
...
app_web/src/components/app-org-select/app-org-select.vue
浏览文件 @
6b40c2d2
...
...
@@ -44,6 +44,13 @@ export default class AppOrgSelect extends Vue {
*/
@
Prop
({
default
:
false
})
public
multiple
?:
boolean
;
/**
* 查询单位路径
*
* @memberof AppOrgSelect
*/
@
Prop
()
public
url
!
:
string
;
/**
* 监听表单数据变化
*
...
...
@@ -57,20 +64,13 @@ export default class AppOrgSelect extends Vue {
let
tempFilterValue
:
any
=
this
.
initBasicData
();
// filter值变化才去请求数据
if
(
tempFilterValue
&&
(
this
.
copyFilterValue
!==
tempFilterValue
)){
this
.
loadTreeData
(
this
.
orgDataU
rl
.
replace
(
'${orgid}'
,
tempFilterValue
));
this
.
loadTreeData
(
this
.
u
rl
.
replace
(
'${orgid}'
,
tempFilterValue
));
this
.
copyFilterValue
=
tempFilterValue
;
}
}
}
}
/**
* 查询单位路径
*
* @memberof AppOrgSelect
*/
public
orgDataUrl
:
string
=
"/ibzorganizations/${orgid}/suborg/picker"
;
/**
* 选择值
*
...
...
@@ -99,7 +99,7 @@ export default class AppOrgSelect extends Vue {
*/
public
created
(){
if
(
!
this
.
filter
){
this
.
loadTreeData
(
this
.
orgDataUrl
.
replace
(
'${orgid}'
,
'alls'
)
);
this
.
loadTreeData
(
this
.
url
);
}
}
...
...
app_web/src/components/ibiz-group-picker/ibiz-group-picker.vue
浏览文件 @
6b40c2d2
...
...
@@ -2,7 +2,7 @@
<div
class=
"ibiz-group-picker"
>
<div
class=
"ibiz-group-container"
>
<div
v-if=
"showTree"
class=
"ibiz-group-tree"
>
<ibiz-select-tree
:NodesData=
"treeItems"
v-model=
"treeSelectVal"
:treeOnly=
"true"
@
select=
"treeSelect"
></ibiz-select-tree>
<ibiz-select-tree
:NodesData=
"treeItems"
v-model=
"treeSelectVal"
:treeOnly=
"true"
:defaultChecked=
"true"
@
select=
"treeSelect"
></ibiz-select-tree>
</div>
<div
class=
"ibiz-group-content"
>
<ibiz-group-card
:data=
"cardItems"
text=
"label"
value=
"id"
groupName=
"group"
:multiple=
"multiple"
:defaultSelect=
"cardSelctVal"
@
select=
"groupSelect"
></ibiz-group-card>
...
...
@@ -47,6 +47,22 @@ export default class IBizGroupPicker extends Vue {
*/
protected
multiple
:
boolean
=
false
;
/**
* 加载树url
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
treeurl
:
any
;
/**
* 加载人员url
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
url
:
any
;
/**
* 树数据集
*
...
...
@@ -110,10 +126,9 @@ export default class IBizGroupPicker extends Vue {
* @memberof IBizGroupPicker
*/
get
showTree
()
{
if
(
this
.
viewParam
.
hasfilter
&&
Object
.
is
(
this
.
viewData
.
srforgid
,
this
.
viewParam
.
filtervalue
)
)
{
return
fals
e
;
if
(
this
.
viewParam
)
{
return
this
.
viewParam
.
showtre
e
;
}
return
true
;
}
/**
...
...
@@ -129,6 +144,8 @@ export default class IBizGroupPicker extends Vue {
this
.
viewData
=
JSON
.
parse
(
this
.
viewdata
);
this
.
viewParam
=
JSON
.
parse
(
this
.
viewparam
);
this
.
multiple
=
this
.
viewParam
.
multiple
;
this
.
treeurl
=
this
.
viewParam
.
treeurl
;
this
.
url
=
this
.
viewParam
.
url
;
if
(
this
.
viewParam
.
selects
)
{
this
.
viewParam
.
selects
.
forEach
((
select
:
any
)
=>
{
this
.
selects
.
push
(
select
);
...
...
@@ -159,8 +176,9 @@ export default class IBizGroupPicker extends Vue {
* @memberof IBizGroupPicker
*/
public
loadTree
()
{
let
orgid
=
this
.
viewParam
.
filtervalue
?
this
.
viewParam
.
filtervalue
:
"alls"
;
let
get
=
Http
.
getInstance
().
get
(
`/ibzorganizations/
${
orgid
}
/suborg/ibzdepartments/picker`
,
true
);
let
orgid
=
this
.
viewParam
.
filtervalue
;
let
tempTreeUrl
:
string
=
this
.
treeurl
.
replace
(
'${orgid}'
,
orgid
);
let
get
=
Http
.
getInstance
().
get
(
tempTreeUrl
,
true
);
get
.
then
((
response
:
any
)
=>
{
if
(
response
.
status
===
200
)
{
this
.
treeItems
=
response
.
data
;
...
...
@@ -177,7 +195,8 @@ export default class IBizGroupPicker extends Vue {
* @memberof IBizGroupPicker
*/
public
loadGroupData
(
key
:
string
)
{
let
get
=
Http
.
getInstance
().
get
(
`/ibzorganizations/
${
key
}
/ibzemployees/picker`
,
true
);
let
tempUrl
=
this
.
url
.
replace
(
'${selected-orgid}'
,
key
);
let
get
=
Http
.
getInstance
().
get
(
tempUrl
,
true
);
get
.
then
((
response
:
any
)
=>
{
if
(
response
.
status
===
200
)
{
this
.
cardItems
=
response
.
data
;
...
...
app_web/src/components/ibiz-group-select/ibiz-group-select.vue
浏览文件 @
6b40c2d2
...
...
@@ -32,13 +32,21 @@ export default class IBizGroupSelect extends Vue {
*/
@
Prop
()
name
!
:
string
;
/**
* 树加载地址
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
treeurl
?:
boolean
;
/**
* 数据接口地址
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
url
?
:
string
;
@
Prop
()
url
!
:
string
;
/**
* 多选
...
...
@@ -175,10 +183,14 @@ export default class IBizGroupSelect extends Vue {
}
else
{
filtervalue
=
context
.
srforgid
;
}
}
else
{
filtervalue
=
context
.
srforgid
;
}
const
param
:
any
=
{};
Object
.
assign
(
param
,
{
hasfilter
:
this
.
filter
?
true
:
false
,
showtree
:
this
.
treeurl
?
true
:
false
,
url
:
this
.
url
,
treeurl
:
this
.
treeurl
,
filtervalue
:
filtervalue
,
multiple
:
this
.
multiple
,
selects
:
this
.
selects
...
...
@@ -199,7 +211,6 @@ export default class IBizGroupSelect extends Vue {
* @memberof IBizGroupSelect
*/
public
openViewClose
(
result
:
any
)
{
console
.
log
(
result
)
this
.
selects
=
[];
if
(
result
.
datas
&&
result
.
datas
.
length
>
0
)
{
this
.
selects
=
result
.
datas
...
...
app_web/src/components/tab-page-exp/tab-page-exp.vue
浏览文件 @
6b40c2d2
...
...
@@ -201,11 +201,11 @@ export default class TabPageExp extends Vue {
* @param {*} caption
* @memberof TabPageExp
*/
public
setCurPageCaption
(
routename
:
string
,
caption
:
any
,
info
:
string
)
{
if
(
!
Object
.
is
(
this
.
$route
.
name
,
routename
))
{
public
setCurPageCaption
(
caption
:
string
,
title
:
any
,
info
:
string
)
{
if
(
this
.
$route
.
meta
&&
(
!
Object
.
is
(
this
.
$route
.
meta
.
caption
,
caption
)
))
{
return
;
}
this
.
$store
.
commit
(
"setCurPageCaption"
,
{
route
:
this
.
$route
,
caption
:
caption
,
info
:
info
});
this
.
$store
.
commit
(
"setCurPageCaption"
,
{
route
:
this
.
$route
,
caption
:
title
,
info
:
info
});
setTimeout
(()
=>
{
this
.
moveToView
(
this
.
$route
);
},
1
);
...
...
app_web/src/engine/view/edit-view-engine.ts
浏览文件 @
6b40c2d2
...
...
@@ -247,9 +247,9 @@ export default class EditViewEngine extends ViewEngine {
*/
public
setTabCaption
(
info
:
string
):
void
{
let
viewdata
:
any
=
this
.
view
.
model
;
let
viewParam
=
this
.
view
.
$store
.
getters
[
'viewaction/getAppView'
](
this
.
view
.
viewtag
);
if
(
viewdata
&&
viewParam
&&
info
&&
!
Object
.
is
(
info
,
''
)
&&
this
.
view
.
$tabPageExp
)
{
this
.
view
.
$tabPageExp
.
setCurPageCaption
(
`
${
viewParam
.
viewmodule
}
_
${
viewParam
.
viewname
}
`
.
toLocaleLowerCase
(),
viewdata
.
srfCaption
,
info
)
;
if
(
viewdata
&&
info
&&
!
Object
.
is
(
info
,
''
)
&&
this
.
view
.
$tabPageExp
&&
(
viewdata
.
srfTitle
.
indexOf
(
" - "
)
===
-
1
))
{
this
.
view
.
$tabPageExp
.
setCurPageCaption
(
viewdata
.
srfCaption
,
viewdata
.
srfTitle
,
info
);
this
.
view
.
model
.
srfTitle
=
`
${
this
.
view
.
$t
(
viewdata
.
srfTitle
)}
-
${
viewdata
.
dataInfo
}
`
;
}
}
...
...
app_web/src/mock/app/main-appmenu/main-appmenu.ts
浏览文件 @
6b40c2d2
...
...
@@ -61,7 +61,7 @@ mock.onGet('v7/mainappmenu').reply((config: any) => {
iconcls
:
'fa fa-sort-amount-asc'
,
icon
:
''
,
textcls
:
''
,
appfunctag
:
'
_2
'
,
appfunctag
:
'
Auto6
'
,
resourcetag
:
''
,
},
],
...
...
app_web/src/service/entity-service.ts
浏览文件 @
6b40c2d2
...
...
@@ -622,6 +622,21 @@ export default class EntityService {
return
Http
.
getInstance
().
delete
(
`/
${
this
.
APPDENAME
}
/batch`
,
isloading
,
data
[
this
.
APPDEKEY
]);
}
/**
* getDataInfo接口方法
*
* @param {*} [context={}]
* @param {*} [data]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof EntityService
*/
public
async
getDataInfo
(
context
:
any
=
{},
data
:
any
,
isloading
?:
boolean
):
Promise
<
any
>
{
if
(
context
[
this
.
APPLYDEKEY
]){
return
this
.
Get
(
context
,
data
,
isloading
);
}
}
/**
* WFStart接口方法
*
...
...
app_web/src/utils/types/util.d.ts
浏览文件 @
6b40c2d2
...
...
@@ -138,6 +138,17 @@ export declare interface Util {
* @memberof Util
*/
dateFormat
(
date
:
any
,
fmt
?:
string
):
string
/**
* 表单项校验
*
* @param property 表单项属性名
* @param data 表单数据
* @param rules 表单值规则
* @returns {Promise}
* @memberof Util
*/
validateItem
(
property
:
string
,
data
:
any
,
rules
:
any
):
Promise
<
any
>
}
declare
module
"vue/types/vue"
{
...
...
app_web/src/utils/uiaction-tool/uiaction-tool.ts
浏览文件 @
6b40c2d2
...
...
@@ -73,7 +73,7 @@ export class UIActionTool {
values
.
push
(
value
);
});
}
Object
.
assign
(
_data
,
{
[
name
]:
values
.
length
>
0
?
values
.
join
(
'
;
'
)
:
value
});
Object
.
assign
(
_data
,
{
[
name
]:
values
.
length
>
0
?
values
.
join
(
'
,
'
)
:
value
});
});
}
return
_data
;
...
...
app_web/src/utils/util/util.ts
浏览文件 @
6b40c2d2
import
qs
from
'qs'
;
import
{
Route
}
from
'vue-router'
;
import
Schema
from
"async-validator"
;
/**
* 平台工具类
...
...
@@ -362,4 +363,23 @@ export class Util {
return
FirstOBJ
;
}
/**
* 表单项校验
*
* @param property 表单项属性名
* @param data 表单数据
* @param rules 表单值规则
* @returns {Promise}
* @memberof Util
*/
public
static
validateItem
(
property
:
string
,
data
:
any
,
rules
:
any
)
{
// 1.获取数值和规则
const
value
=
data
[
property
];
const
rule
=
rules
[
property
];
// 2.创建校验规则
const
schema
=
new
Schema
({
[
property
]:
rule
})
// 校验返回Promise
return
schema
.
validate
({
[
property
]:
value
})
}
}
\ No newline at end of file
app_web/src/widgets/app/main-appmenu/main-appmenu-base.vue
浏览文件 @
6b40c2d2
...
...
@@ -564,8 +564,8 @@ export default class MainBase extends Vue implements ControlInterface {
case
'Auto5'
:
this
.
clickAuto5
(
item
);
return
;
case
'
_2
'
:
this
.
click
_2
(
item
);
case
'
Auto6
'
:
this
.
click
Auto6
(
item
);
return
;
default
:
console
.
warn
(
'未指定应用功能'
);
...
...
@@ -616,7 +616,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @param {*} [item={}]
* @memberof Main
*/
public
click
_2
(
item
:
any
=
{})
{
public
click
Auto6
(
item
:
any
=
{})
{
const
viewparam
:
any
=
{};
Object
.
assign
(
viewparam
,
{});
const
deResParameters
:
any
[]
=
[];
...
...
app_web/src/widgets/app/main-appmenu/main-appmenu-model.ts
浏览文件 @
6b40c2d2
...
...
@@ -65,7 +65,7 @@ export default class MainModel {
iconcls
:
'fa fa-sort-amount-asc'
,
icon
:
''
,
textcls
:
''
,
appfunctag
:
'
_2
'
,
appfunctag
:
'
Auto6
'
,
resourcetag
:
''
,
},
];
...
...
@@ -103,7 +103,7 @@ export default class MainModel {
],
},
{
appfunctag
:
'
_2
'
,
appfunctag
:
'
Auto6
'
,
appfuncyype
:
'APPVIEW'
,
openmode
:
''
,
codename
:
'sys_authloggridview'
,
...
...
app_web/src/widgets/sys-auth-log/main-grid/main-grid-base.vue
浏览文件 @
6b40c2d2
此差异已折叠。
点击以展开。
app_web/src/widgets/sys-permission/main-grid/main-grid-base.vue
浏览文件 @
6b40c2d2
<
template
>
<div
class=
'grid'
style=
"height:100%;"
>
<el-table
v-if=
"isDisplay === true"
<i-form>
<el-table
v-if=
"isDisplay === true"
:default-sort=
"
{ prop: minorSortPSDEF, order: Object.is(minorSortDir, 'ASC') ? 'ascending' : Object.is(minorSortDir, 'DESC') ? 'descending' : '' }"
@sort-change="onSortChange($event)"
:border="isDragendCol"
...
...
@@ -28,7 +29,7 @@
{{
$t
(
'entities.syspermission.main_grid.columns.sys_permissionid'
)
}}
</span>
</
template
>
<
template
v-slot=
"{row,column}"
>
<
template
v-slot=
"{row,column
,$index
}"
>
<span>
{{
row
.
sys_permissionid
}}
</span>
</
template
>
</el-table-column>
...
...
@@ -40,7 +41,7 @@
{{
$t
(
'entities.syspermission.main_grid.columns.sys_permissionname'
)
}}
</span>
</
template
>
<
template
v-slot=
"{row,column}"
>
<
template
v-slot=
"{row,column
,$index
}"
>
<span>
{{
row
.
sys_permissionname
}}
</span>
</
template
>
</el-table-column>
...
...
@@ -49,6 +50,7 @@
<el-table-column></el-table-column>
</
template
>
</el-table>
</i-form>
<row
class=
'grid-pagination'
v-show=
"items.length > 0"
>
<page
class=
'pull-right'
@
on-change=
"pageOnChange($event)"
@
on-page-size-change=
"onPageSizeChange($event)"
...
...
@@ -96,6 +98,7 @@ import SysPermissionService from '@/service/sys-permission/sys-permission-servic
import
MainService
from
'./main-grid-service'
;
import
CodeListService
from
"@service/app/codelist-service"
;
import
{
FormItemModel
}
from
'@/model/form-detail'
;
@
Component
({
...
...
@@ -522,6 +525,26 @@ export default class MainBase extends Vue implements ControlInterface {
},
]
/**
* 表格模型集合
*
* @type {*}
* @memberof Main
*/
public
gridItemsModel
:
any
[]
=
[];
/**
* 获取表格行模型
*
* @type {*}
* @memberof Main
*/
public
getGridRowModel
(){
return
{
srfkey
:
new
FormItemModel
(),
}
}
/**
* 属性值规则
*
...
...
@@ -535,6 +558,50 @@ export default class MainBase extends Vue implements ControlInterface {
],
}
/**
* 表格行编辑项校验
*
* @param {string} property 属性名
* @param {*} data 行数据
* @param {number} rowIndex 行索引
* @returns Promise<any>
*
* @memberof Main
*/
public
validate
(
property
:
string
,
data
:
any
,
rowIndex
:
number
):
Promise
<
any
>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
$util
.
validateItem
(
property
,
data
,
this
.
rules
).
then
(()
=>
{
this
.
gridItemsModel
[
rowIndex
][
property
].
setError
(
null
);
resolve
(
true
);
}).
catch
(({
errors
,
fields
})
=>
{
this
.
gridItemsModel
[
rowIndex
][
property
].
setError
(
errors
[
0
].
message
);
resolve
(
false
);
});
});
}
/**
* 校验所有修改过的编辑项
*
* @returns Promise<any>
* @memberof Main
*/
public
async
validateAll
(){
let
validateState
=
true
;
let
index
=
-
1
;
for
(
let
item
of
this
.
items
){
index
++
;
if
(
item
.
rowDataState
===
"create"
||
item
.
rowDataState
===
"update"
){
for
(
let
property
of
Object
.
keys
(
this
.
rules
)){
if
(
!
await
this
.
validate
(
property
,
item
,
index
)){
validateState
=
false
;
}
}
}
}
return
validateState
;
}
/**
* 表格数据加载
*
...
...
@@ -577,8 +644,10 @@ export default class MainBase extends Vue implements ControlInterface {
const
data
:
any
=
response
.
data
;
this
.
totalrow
=
response
.
total
;
this
.
items
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
// 清空selections
// 清空selections
,gridItemsModel
this
.
selections
=
[];
this
.
gridItemsModel
=
[];
this
.
items
.
forEach
(()
=>
{
this
.
gridItemsModel
.
push
(
this
.
getGridRowModel
())});
this
.
$emit
(
'load'
,
this
.
items
);
// 设置默认选中
let
_this
=
this
;
...
...
@@ -627,6 +696,7 @@ export default class MainBase extends Vue implements ControlInterface {
this
.
items
.
some
((
val
:
any
,
num
:
number
)
=>
{
if
(
JSON
.
stringify
(
val
)
==
JSON
.
stringify
(
record
)){
this
.
items
.
splice
(
num
,
1
);
this
.
gridItemsModel
.
splice
(
num
,
1
);
return
true
;
}
});
...
...
@@ -676,9 +746,10 @@ export default class MainBase extends Vue implements ControlInterface {
//删除items中已删除的项
console
.
log
(
this
.
items
);
_datas
.
forEach
((
data
:
any
)
=>
{
this
.
items
.
some
((
item
:
any
,
index
:
number
)
=>
{
if
(
Object
.
is
(
item
.
srfkey
,
data
.
srfkey
)){
this
.
items
.
splice
(
index
,
1
);
this
.
items
.
some
((
item
:
any
,
index
:
number
)
=>
{
if
(
Object
.
is
(
item
.
srfkey
,
data
.
srfkey
)){
this
.
items
.
splice
(
index
,
1
);
this
.
gridItemsModel
.
splice
(
index
,
1
);
return
true
;
}
});
...
...
@@ -1241,41 +1312,56 @@ export default class MainBase extends Vue implements ControlInterface {
* 保存
*
* @param {*} $event
* @returns {
void
}
* @returns {
Promise<any>
}
* @memberof Main
*/
public
save
(
args
:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
):
void
{
public
async
save
(
args
:
any
[],
params
?:
any
,
$event
?:
any
,
xData
?:
any
)
{
let
_this
=
this
;
let
promises
:
any
=
[];
_this
.
items
.
forEach
((
item
:
any
)
=>
{
if
(
!
item
.
rowDataState
){
return
;
}
else
if
(
Object
.
is
(
item
.
rowDataState
,
'create'
)){
if
(
!
this
.
createAction
){
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'SYS_PERMISSIONPickupGridView视图表格createAction参数未配置'
});
return
;
}
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
promises
.
push
(
this
.
service
.
add
(
this
.
createAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
item
,
this
.
showBusyIndicator
));
}
else
if
(
Object
.
is
(
item
.
rowDataState
,
'update'
)){
if
(
!
this
.
updateAction
){
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'SYS_PERMISSIONPickupGridView视图表格updateAction参数未配置'
});
return
;
}
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
if
(
item
.
syspermission
){
Object
.
assign
(
this
.
context
,{
syspermission
:
item
.
syspermission
})
if
(
!
await
this
.
validateAll
()){
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'值规则校验异常'
});
return
[];
}
let
successItems
:
any
=
[];
let
errorItems
:
any
=
[];
let
errorMessage
:
any
=
[];
for
(
const
item
of
_this
.
items
)
{
try
{
if
(
Object
.
is
(
item
.
rowDataState
,
'create'
)){
if
(
!
this
.
createAction
){
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'SYS_PERMISSIONPickupGridView视图表格createAction参数未配置'
});
}
else
{
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
let
response
=
await
this
.
service
.
add
(
this
.
createAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
item
,
this
.
showBusyIndicator
);
successItems
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
response
.
data
)));
}
}
else
if
(
Object
.
is
(
item
.
rowDataState
,
'update'
)){
if
(
!
this
.
updateAction
){
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'SYS_PERMISSIONPickupGridView视图表格updateAction参数未配置'
});
}
else
{
Object
.
assign
(
item
,{
viewparams
:
this
.
viewparams
});
if
(
item
.
syspermission
){
Object
.
assign
(
this
.
context
,{
syspermission
:
item
.
syspermission
});
}
let
response
=
await
this
.
service
.
add
(
this
.
updateAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
item
,
this
.
showBusyIndicator
);
successItems
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
response
.
data
)));
}
}
promises
.
push
(
this
.
service
.
add
(
this
.
updateAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
item
,
this
.
showBusyIndicator
));
}
catch
(
error
)
{
errorItems
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
item
)));
errorMessage
.
push
(
error
);
}
});
Promise
.
all
(
promises
).
then
((
response
:
any
)
=>
{
this
.
$emit
(
'save'
,
response
);
}
this
.
$emit
(
'save'
,
successItems
);
this
.
refresh
([]);
if
(
errorItems
.
length
===
0
){
this
.
$Notice
.
success
({
title
:
''
,
desc
:
'保存成功!'
});
this
.
refresh
([]);
}).
catch
((
response
:
any
)
=>
{
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'系统异常'
});
});
}
else
{
errorItems
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
this
.
$Notice
.
error
({
title
:
'保存失败'
,
desc
:
item
.
majorentityname
+
'保存失败!'
});
console
.
error
(
errorMessage
[
index
]);
});
}
return
successItems
;
}
...
...
app_web/src/widgets/sys-role-permission/main-grid/main-grid-base.vue
浏览文件 @
6b40c2d2
此差异已折叠。
点击以展开。
app_web/src/widgets/sys-role/main-grid/main-grid-base.vue
浏览文件 @
6b40c2d2
此差异已折叠。
点击以展开。
app_web/src/widgets/sys-user-role/main-grid/main-grid-base.vue
浏览文件 @
6b40c2d2
此差异已折叠。
点击以展开。
app_web/src/widgets/sys-user/main-grid/main-grid-base.vue
浏览文件 @
6b40c2d2
此差异已折叠。
点击以展开。
app_web/yarn.lock
浏览文件 @
6b40c2d2
...
...
@@ -2089,6 +2089,11 @@ async-validator@^1.10.0:
resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.12.2.tgz#beae671e7174d2938b7b4b69d2fb7e722b7fd72c"
integrity sha512-57EETfCPFiB7M4QscvQzWSGNsmtkjjzZv318SK1CBlstk+hycV72ocjriMOOM48HjvmoAoJGpJNjC7Z76RlnZA==
async-validator@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-3.3.0.tgz#1d92193bbe60d6d6c8b246692c7005e9ed14a8ee"
integrity sha512-cAHGD9EL8aCqWXjnb44q94MWiDFzUo1tMhvLb2WzcpWqGiKugsjWG9cvl+jPgkPca7asNbsBU3fa0cwkI/P+Xg==
async-validator@~1.8.1:
version "1.8.5"
resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0"
...
...
@@ -5233,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
3
:
version "1.0.1
3
"
resolved "https://registry.yarnpkg.com/ibiz-gantt-elastic/-/ibiz-gantt-elastic-1.0.1
3.tgz#420751337f7d4352df7f351a72ba0e13551bdf23
"
integrity sha512-
floFaw93UNo9y/9BAExApvz8ATuUuxv2bOUOUbj9jvqY5WkWFKo4C9Bmu4779M5foTHy6SGWItNgZnvbm8i0QQ
==
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.1
5.tgz#e57736254aaf5baea28225bce2d29d8bd8adcc2d
"
integrity sha512-
V3uLoN3BN32BagpV1kLm4nFSs4neJ/Cnykd7OIyLv11rjqTWFAENHBpZekioPFF4k2iCyAdRr5smzZbGJdSQxg
==
dependencies:
dayjs "^1.8.16"
resize-observer-polyfill "^1.5.1"
...
...
@@ -5244,10 +5249,10 @@ ibiz-gantt-elastic@^1.0.13:
vue-slider-component "^3.0.40"
vue-switches "^2.0.1"
ibiz-vue-lib@^0.1.
7
:
version "0.1.
7
"
resolved "https://registry.yarnpkg.com/ibiz-vue-lib/-/ibiz-vue-lib-0.1.
7.tgz#33d51fd08f9e527b5576910c7314f6803714ff37
"
integrity sha512-
EFreVH9JOVSyIZY/1ZRrIYYlfBWCEZnDKeAs1339SZa1IhaJ06kzpwziOENc4vzGBDh+ps11LJLAWrIjUEjVL
Q==
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 sha512-
CotV3xIB04+QUUeMlfsVj5BseVPQ+IHyKdwU+MXGh+2e91Nt7N/z/LElakhAiGkSpaaKoMdlKCOdhD0qqJ3wN
Q==
dependencies:
axios "^0.19.2"
core-js "^3.6.4"
...
...
@@ -9103,6 +9108,11 @@ sort-keys@^1.0.0:
dependencies:
is-plain-obj "^1.0.0"
sortablejs@^1.10.1:
version "1.10.2"
resolved "https://registry.yarnpkg.com/sortablejs/-/sortablejs-1.10.2.tgz#6e40364d913f98b85a14f6678f92b5c1221f5290"
integrity sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==
source-list-map@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
...
...
@@ -10225,6 +10235,13 @@ vue@^2.2.6, vue@^2.6.10, vue@^2.6.11:
resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5"
integrity sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==
vuedraggable@^2.23.2:
version "2.23.2"
resolved "https://registry.yarnpkg.com/vuedraggable/-/vuedraggable-2.23.2.tgz#0d95d7fdf4f02f56755a26b3c9dca5c7ca9cfa72"
integrity sha512-PgHCjUpxEAEZJq36ys49HfQmXglattf/7ofOzUrW2/rRdG7tu6fK84ir14t1jYv4kdXewTEa2ieKEAhhEMdwkQ==
dependencies:
sortablejs "^1.10.1"
vuex@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.2.tgz#a2863f4005aa73f2587e55c3fadf3f01f69c7d4d"
...
...
config.xml
浏览文件 @
6b40c2d2
...
...
@@ -37,11 +37,11 @@
git clone -b master $para2 ibzuaa/
export NODE_OPTIONS=--max-old-space-size=4096
cd ibzuaa/
mvn clean package -P
api
cd ibzuaa-
provider/ibzuaa-provider-api
mvn -P
api
docker:build
mvn -P
api
docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzuaa-
provider-api.yaml ibzlab-rt --with-registry-auth
mvn clean package -P
web
cd ibzuaa-
app/ibzuaa-app-web
mvn -P
web
docker:build
mvn -P
web
docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzuaa-
app-web.yaml ibzlab-rt --with-registry-auth
</command>
</hudson.tasks.Shell>
</builders>
...
...
ibzuaa-app/ibzuaa-app-web/src/main/docker/Dockerfile
浏览文件 @
6b40c2d2
...
...
@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \
sleep ${IBZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzuaa-app-web.jar
EXPOSE
8080
EXPOSE
30002
ADD
ibzuaa-app-web.jar /ibzuaa-app-web.jar
ibzuaa-app/ibzuaa-app-web/src/main/docker/ibzuaa-app-web.yaml
浏览文件 @
6b40c2d2
...
...
@@ -3,9 +3,23 @@ services:
ibzuaa-app-web
:
image
:
registry.cn-shanghai.aliyuncs.com/ibizsys/ibzuaa-app-web:latest
ports
:
-
"
8080:8080
"
-
"
30002:30002
"
networks
:
-
agent_network
environment
:
-
SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.180.237
-
SERVER_PORT=30002
-
SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=172.16.102.211:8848
-
SPRING_REDIS_HOST=172.16.100.243
-
SPRING_REDIS_PORT=6379
-
SPRING_REDIS_DATABASE=0
-
SPRING_DATASOURCE_USERNAME=a_A_5d9d78509
-
SPRING_DATASOURCE_PASSWORD=@6dEfb3@
-
SPRING_DATASOURCE_URL=jdbc:mysql://172.16.180.232:3306/a_A_5d9d78509?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true
-
SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.jdbc.Driver
-
SPRING_DATASOURCE_DEFAULTSCHEMA=a_A_5d9d78509
-
ABC=1
-
DEC=2
deploy
:
mode
:
replicated
replicas
:
1
...
...
ibzuaa-provider/ibzuaa-provider-api/src/main/docker/Dockerfile
浏览文件 @
6b40c2d2
...
...
@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \
sleep ${IBZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzuaa-provider-api.jar
EXPOSE
40002
EXPOSE
8081
ADD
ibzuaa-provider-api.jar /ibzuaa-provider-api.jar
ibzuaa-provider/ibzuaa-provider-api/src/main/docker/ibzuaa-provider-api.yaml
浏览文件 @
6b40c2d2
...
...
@@ -3,21 +3,9 @@ services:
ibzuaa-provider-api
:
image
:
registry.cn-shanghai.aliyuncs.com/ibizsys/ibzuaa-provider-api:latest
ports
:
-
"
40002:40002
"
-
"
8081:8081
"
networks
:
-
agent_network
environment
:
-
SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.180.237
-
SERVER_PORT=40002
-
SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=172.16.102.211:8848
-
SPRING_REDIS_HOST=172.16.100.243
-
SPRING_REDIS_PORT=6379
-
SPRING_REDIS_DATABASE=0
-
SPRING_DATASOURCE_USERNAME=a_A_5d9d78509
-
SPRING_DATASOURCE_PASSWORD=@6dEfb3@
-
SPRING_DATASOURCE_URL=jdbc:mysql://172.16.180.232:3306/a_A_5d9d78509?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true
-
SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.jdbc.Driver
-
SPRING_DATASOURCE_DEFAULTSCHEMA=a_A_5d9d78509
deploy
:
mode
:
replicated
replicas
:
1
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录