Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzwf
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzwf
提交
dcaf9043
提交
dcaf9043
编写于
5月 27, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ibiz4j 部署微服务应用
上级
90cbaeec
变更
38
展开全部
显示空白字符变更
内嵌
并排
正在显示
38 个修改的文件
包含
1312 行增加
和
310 行删除
+1312
-310
CHANGELOG.md
app_web/CHANGELOG.md
+19
-0
package.json
app_web/package.json
+4
-2
app-register.ts
app_web/src/app-register.ts
+2
-2
app-department-select.vue
...omponents/app-department-select/app-department-select.vue
+76
-31
app-org-select.vue
app_web/src/components/app-org-select/app-org-select.vue
+57
-15
app-wf-approval.less
app_web/src/components/app-wf-approval/app-wf-approval.less
+92
-0
app-wf-approval.vue
app_web/src/components/app-wf-approval/app-wf-approval.vue
+116
-0
ibiz-group-picker.vue
...eb/src/components/ibiz-group-picker/ibiz-group-picker.vue
+33
-25
ibiz-group-select.vue
...eb/src/components/ibiz-group-select/ibiz-group-select.vue
+79
-38
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.ts
app_web/src/pages/workflow/wfindex-view/main.ts
+1
-0
entity-service.ts
app_web/src/service/entity-service.ts
+29
-1
getters.ts
app_web/src/store/getters.ts
+20
-0
mutations.ts
app_web/src/store/mutations.ts
+24
-0
state.ts
app_web/src/store/state.ts
+2
-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-form-base.vue
app_web/src/widgets/wfgroup/main-form/main-form-base.vue
+12
-2
main-grid-base.vue
app_web/src/widgets/wfgroup/main-grid/main-grid-base.vue
+140
-38
main-grid.less
app_web/src/widgets/wfgroup/main-grid/main-grid.less
+4
-0
main-form-base.vue
app_web/src/widgets/wfmember/main-form/main-form-base.vue
+12
-2
main-grid-base.vue
app_web/src/widgets/wfmember/main-grid/main-grid-base.vue
+134
-37
main-grid.less
app_web/src/widgets/wfmember/main-grid/main-grid.less
+4
-0
main-form-base.vue
...widgets/wfprocess-definition/main-form/main-form-base.vue
+12
-2
main-grid-base.vue
...widgets/wfprocess-definition/main-grid/main-grid-base.vue
+152
-40
main-grid.less
...src/widgets/wfprocess-definition/main-grid/main-grid.less
+4
-0
main-form-base.vue
app_web/src/widgets/wfremodel/main-form/main-form-base.vue
+12
-2
main-form-base.vue
app_web/src/widgets/wfuser/main-form/main-form-base.vue
+12
-2
main-grid-base.vue
app_web/src/widgets/wfuser/main-grid/main-grid-base.vue
+140
-38
main-grid.less
app_web/src/widgets/wfuser/main-grid/main-grid.less
+4
-0
yarn.lock
app_web/yarn.lock
+57
-5
config.xml
config.xml
+5
-5
Dockerfile
ibzwf-app/ibzwf-app-web/src/main/docker/Dockerfile
+1
-1
ibzwf-app-web.yaml
ibzwf-app/ibzwf-app-web/src/main/docker/ibzwf-app-web.yaml
+13
-1
Dockerfile
ibzwf-provider/ibzwf-provider-api/src/main/docker/Dockerfile
+1
-1
ibzwf-provider-api.yaml
...bzwf-provider-api/src/main/docker/ibzwf-provider-api.yaml
+1
-13
未找到文件。
app_web/CHANGELOG.md
浏览文件 @
dcaf9043
## v7.0.0-alpha.6 [2020-5-23]
### Bug修复
修复处理快速分组模型动态数据部分
修复列表,数据视图默认排序
### 功能新增及优化
#### 模板
补充单位选择器、部门选择器、人员选择器
#### 基础文件
补充单位选择器、部门选择器、人员选择器
## v7.0.0-alpha.5 [2020-5-21]
## v7.0.0-alpha.5 [2020-5-21]
### Bug修复
### Bug修复
...
...
app_web/package.json
浏览文件 @
dcaf9043
...
@@ -18,14 +18,16 @@
...
@@ -18,14 +18,16 @@
"@fullcalendar/list"
:
"^4.4.0"
,
"@fullcalendar/list"
:
"^4.4.0"
,
"@fullcalendar/timegrid"
:
"^4.4.0"
,
"@fullcalendar/timegrid"
:
"^4.4.0"
,
"@fullcalendar/vue"
:
"^4.4.0"
,
"@fullcalendar/vue"
:
"^4.4.0"
,
"vuedraggable"
:
"^2.23.2"
,
"async-validator"
:
"^3.3.0"
,
"axios"
:
"^0.19.1"
,
"axios"
:
"^0.19.1"
,
"core-js"
:
"^3.4.4"
,
"core-js"
:
"^3.4.4"
,
"echarts"
:
"^4.6.0"
,
"echarts"
:
"^4.6.0"
,
"element-ui"
:
"^2.13.0"
,
"element-ui"
:
"^2.13.0"
,
"file-saver"
:
"^2.0.2"
,
"file-saver"
:
"^2.0.2"
,
"font-awesome"
:
"^4.7.0"
,
"font-awesome"
:
"^4.7.0"
,
"ibiz-gantt-elastic"
:
"^1.0.1
2
"
,
"ibiz-gantt-elastic"
:
"^1.0.1
5
"
,
"ibiz-vue-lib"
:
"^0.1.
4
"
,
"ibiz-vue-lib"
:
"^0.1.
9
"
,
"interactjs"
:
"^1.9.4"
,
"interactjs"
:
"^1.9.4"
,
"moment"
:
"^2.24.0"
,
"moment"
:
"^2.24.0"
,
"path-to-regexp"
:
"^6.1.0"
,
"path-to-regexp"
:
"^6.1.0"
,
...
...
app_web/src/app-register.ts
浏览文件 @
dcaf9043
...
@@ -75,8 +75,7 @@ import AppOrgSelect from './components/app-org-select/app-org-select.vue'
...
@@ -75,8 +75,7 @@ import AppOrgSelect from './components/app-org-select/app-org-select.vue'
import
AppDepartmentSelect
from
'./components/app-department-select/app-department-select.vue'
import
AppDepartmentSelect
from
'./components/app-department-select/app-department-select.vue'
import
IBizGroupSelect
from
'./components/ibiz-group-select/ibiz-group-select.vue'
import
IBizGroupSelect
from
'./components/ibiz-group-select/ibiz-group-select.vue'
import
IBizGroupPicker
from
'./components/ibiz-group-picker/ibiz-group-picker.vue'
import
IBizGroupPicker
from
'./components/ibiz-group-picker/ibiz-group-picker.vue'
import
AppWFApproval
from
'./components/app-wf-approval/app-wf-approval.vue'
// 全局挂载UI实体服务注册中心
// 全局挂载UI实体服务注册中心
window
[
'uiServiceRegister'
]
=
uiServiceRegister
;
window
[
'uiServiceRegister'
]
=
uiServiceRegister
;
...
@@ -161,5 +160,6 @@ export const AppComponents = {
...
@@ -161,5 +160,6 @@ export const AppComponents = {
v
.
component
(
'app-department-select'
,
AppDepartmentSelect
);
v
.
component
(
'app-department-select'
,
AppDepartmentSelect
);
v
.
component
(
'ibiz-group-select'
,
IBizGroupSelect
);
v
.
component
(
'ibiz-group-select'
,
IBizGroupSelect
);
v
.
component
(
'ibiz-group-picker'
,
IBizGroupPicker
);
v
.
component
(
'ibiz-group-picker'
,
IBizGroupPicker
);
v
.
component
(
'app-wf-approval'
,
AppWFApproval
);
},
},
};
};
\ No newline at end of file
app_web/src/components/app-department-select/app-department-select.vue
浏览文件 @
dcaf9043
<
template
>
<
template
>
<div
class=
"app-department-select"
>
<div
class=
"app-department-select"
>
<ibiz-select-tree
:NodesData=
"Nodesdata"
:value=
"v
alue"
:multiple=
"multiple"
@
select=
"onSelect"
></ibiz-select-tree>
<ibiz-select-tree
:NodesData=
"Nodesdata"
v-model=
"selectTreeV
alue"
:multiple=
"multiple"
@
select=
"onSelect"
></ibiz-select-tree>
</div>
</div>
</
template
>
</
template
>
...
@@ -17,7 +17,7 @@ export default class AppDepartmentSelect extends Vue {
...
@@ -17,7 +17,7 @@ export default class AppDepartmentSelect extends Vue {
* @type {*}
* @type {*}
* @memberof AppDepartmentSelect
* @memberof AppDepartmentSelect
*/
*/
@
Prop
(
{
default
:
'/ibzorganizations/{orgid}/ibzdepartments/picker'
}
)
public
url
?:
any
;
@
Prop
()
public
url
?:
any
;
/**
/**
* 过滤项
* 过滤项
...
@@ -43,14 +43,6 @@ export default class AppDepartmentSelect extends Vue {
...
@@ -43,14 +43,6 @@ export default class AppDepartmentSelect extends Vue {
*/
*/
@
Prop
({
default
:
false
})
public
multiple
?:
any
;
@
Prop
({
default
:
false
})
public
multiple
?:
any
;
/**
* 表单项名称
*
* @type {*}
* @memberof AppDepartmentSelect
*/
@
Prop
()
public
name
!
:
any
;
/**
/**
* 表单数据
* 表单数据
*
*
...
@@ -60,20 +52,20 @@ export default class AppDepartmentSelect extends Vue {
...
@@ -60,20 +52,20 @@ export default class AppDepartmentSelect extends Vue {
@
Prop
()
public
data
!
:
any
;
@
Prop
()
public
data
!
:
any
;
/**
/**
*
表单项值
*
上下文变量
*
*
* @type {*}
* @type {*}
* @memberof AppDepartmentSelect
* @memberof AppDepartmentSelect
*/
*/
@
Prop
()
public
value
!
:
any
;
@
Prop
()
public
context
!
:
any
;
/**
/**
*
上下文变量
*
选中数值
*
*
* @type {*}
* @type {*}
* @memberof AppDepartmentSelect
* @memberof AppDepartmentSelect
*/
*/
@
Prop
()
public
context
!
:
any
;
public
selectTreeValue
:
any
=
""
;
/**
/**
* 树节点数据
* 树节点数据
...
@@ -96,26 +88,40 @@ export default class AppDepartmentSelect extends Vue {
...
@@ -96,26 +88,40 @@ export default class AppDepartmentSelect extends Vue {
*
*
* @memberof AppDepartmentSelect
* @memberof AppDepartmentSelect
*/
*/
public
searchNodesData
(){
public
handleFilter
(){
// 处理请求参数
let
param
=
''
if
(
this
.
filter
){
if
(
this
.
filter
){
if
(
this
.
data
&&
this
.
data
[
this
.
filter
]){
if
(
this
.
data
&&
this
.
data
[
this
.
filter
]){
param
=
this
.
data
[
this
.
filter
];
return
this
.
data
[
this
.
filter
];
}
else
if
(
this
.
context
&&
this
.
context
[
this
.
filter
]){
}
else
if
(
this
.
context
&&
this
.
context
[
this
.
filter
]){
param
=
this
.
context
[
this
.
filter
];
return
this
.
context
[
this
.
filter
];
}
}
}
else
{
}
else
{
param
=
this
.
context
.
srforgid
;
return
this
.
context
.
srforgid
;
}
}
}
let
_url
=
this
.
url
.
replace
(
/{orgid}/
,
param
)
/**
* 获取节点数据
*
* @memberof AppDepartmentSelect
*/
public
searchNodesData
(){
// 处理过滤参数,生成url
let
param
=
this
.
handleFilter
();
let
_url
=
this
.
url
.
replace
(
'${orgid}'
,
param
)
if
(
this
.
oldurl
===
_url
){
if
(
this
.
oldurl
===
_url
){
return
;
return
;
}
}
this
.
oldurl
=
_url
;
// 缓存机制
const
result
:
any
=
this
.
$store
.
getters
.
getCopyData
(
_url
);
if
(
result
){
this
.
Nodesdata
=
result
;
return
;
}
this
.
$http
.
get
(
_url
).
then
((
response
:
any
)
=>
{
this
.
$http
.
get
(
_url
).
then
((
response
:
any
)
=>
{
console
.
log
(
response
)
this
.
Nodesdata
=
response
.
data
;
this
.
Nodesdata
=
response
.
data
;
this
.
oldurl
=
_url
;
this
.
$store
.
commit
(
'addDepData'
,
{
srfkey
:
this
.
filter
,
orgData
:
response
.
data
})
;
}).
catch
((
response
:
any
)
=>
{
}).
catch
((
response
:
any
)
=>
{
if
(
!
response
||
!
response
.
status
||
!
response
.
data
)
{
if
(
!
response
||
!
response
.
status
||
!
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'系统异常!'
});
this
.
$Notice
.
error
({
title
:
'错误'
,
desc
:
'系统异常!'
});
...
@@ -131,9 +137,53 @@ export default class AppDepartmentSelect extends Vue {
...
@@ -131,9 +137,53 @@ export default class AppDepartmentSelect extends Vue {
* @param {*} oldVal
* @param {*} oldVal
* @memberof AppDepartmentSelect
* @memberof AppDepartmentSelect
*/
*/
@
Watch
(
'data'
,{
deep
:
true
})
@
Watch
(
'data'
,{
immediate
:
true
,
deep
:
true
})
public
onValueChange
(
newVal
:
any
,
oldVal
:
any
)
{
public
onValueChange
(
newVal
:
any
,
oldVal
:
any
)
{
if
(
newVal
){
this
.
computedSelectedData
();
this
.
$nextTick
(()
=>
{
this
.
searchNodesData
();
this
.
searchNodesData
();
});
}
}
/**
* 计算选中值
*
* @memberof AppOrgSelect
*/
public
computedSelectedData
(){
// 单选
if
(
!
this
.
multiple
){
if
(
this
.
fillMap
&&
Object
.
keys
(
this
.
fillMap
).
length
>
0
){
let
templateValue
=
{};
Object
.
keys
(
this
.
fillMap
).
forEach
((
item
:
any
)
=>
{
if
(
this
.
data
&&
this
.
data
[
this
.
fillMap
[
item
]]){
Object
.
assign
(
templateValue
,{[
item
]:
this
.
data
[
this
.
fillMap
[
item
]]});
}
})
this
.
selectTreeValue
=
JSON
.
stringify
([
templateValue
]);
}
}
else
{
// 多选
if
(
this
.
fillMap
&&
Object
.
keys
(
this
.
fillMap
).
length
>
0
){
let
tempArray
:
Array
<
any
>
=
[];
Object
.
keys
(
this
.
fillMap
).
forEach
((
item
:
any
)
=>
{
if
(
this
.
data
&&
this
.
data
[
this
.
fillMap
[
item
]]){
let
tempDataArray
:
Array
<
any
>
=
(
this
.
data
[
this
.
fillMap
[
item
]]).
split
(
","
);
tempDataArray
.
forEach
((
tempData
:
any
,
index
:
number
)
=>
{
if
(
tempArray
.
length
<
tempDataArray
.
length
){
let
singleData
:
any
=
{[
item
]:
tempData
};
tempArray
.
push
(
singleData
);
}
else
{
Object
.
assign
(
tempArray
[
index
],{[
item
]:
tempData
});
}
})
}
})
this
.
selectTreeValue
=
JSON
.
stringify
(
tempArray
);
}
}
}
}
/**
/**
...
@@ -145,17 +195,12 @@ export default class AppDepartmentSelect extends Vue {
...
@@ -145,17 +195,12 @@ export default class AppDepartmentSelect extends Vue {
public
onSelect
(
$event
:
any
){
public
onSelect
(
$event
:
any
){
// 组件自身抛值事件
// 组件自身抛值事件
let
selectArr
=
JSON
.
parse
(
$event
);
let
selectArr
=
JSON
.
parse
(
$event
);
if
(
selectArr
.
length
===
0
){
return
;
}
let
valueArr
=
selectArr
.
map
((
item
:
any
)
=>
{
return
{
id
:
item
.
id
,
label
:
item
.
label
}});
this
.
$emit
(
'select-change'
,
{
name
:
this
.
name
,
value
:
JSON
.
stringify
(
valueArr
)
});
// fillMap抛值事件
// fillMap抛值事件
if
(
this
.
fillMap
&&
Object
.
keys
(
this
.
fillMap
).
length
>
0
){
if
(
this
.
fillMap
&&
Object
.
keys
(
this
.
fillMap
).
length
>
0
){
Object
.
keys
(
this
.
fillMap
).
forEach
((
attribute
:
string
)
=>
{
Object
.
keys
(
this
.
fillMap
).
forEach
((
attribute
:
string
)
=>
{
let
_name
=
this
.
fillMap
[
attribute
];
let
_name
=
this
.
fillMap
[
attribute
];
let
_value
=
selectArr
.
map
((
item
:
any
)
=>
item
[
attribute
]);
let
_value
=
selectArr
.
map
((
item
:
any
)
=>
item
[
attribute
]);
this
.
$emit
(
'select-change'
,{
name
:
_name
,
value
:
_value
.
join
(
","
)})
this
.
$emit
(
'select-change'
,{
name
:
this
.
fillMap
[
attribute
]
,
value
:
_value
.
join
(
","
)})
});
});
}
}
...
...
app_web/src/components/app-org-select/app-org-select.vue
浏览文件 @
dcaf9043
<
template
>
<
template
>
<div
class=
"app-org-select"
>
<div
class=
"app-org-select"
>
<ibiz-select-tree
:NodesData=
"NodesData"
v-model=
"selectTreeValue"
:multiple=
"
fals
e"
@
select=
"treeSelectChange"
></ibiz-select-tree>
<ibiz-select-tree
:NodesData=
"NodesData"
v-model=
"selectTreeValue"
:multiple=
"
multipl
e"
@
select=
"treeSelectChange"
></ibiz-select-tree>
</div>
</div>
</
template
>
</
template
>
<
script
lang =
'ts'
>
<
script
lang =
'ts'
>
...
@@ -44,6 +44,13 @@ export default class AppOrgSelect extends Vue {
...
@@ -44,6 +44,13 @@ export default class AppOrgSelect extends Vue {
*/
*/
@
Prop
({
default
:
false
})
public
multiple
?:
boolean
;
@
Prop
({
default
:
false
})
public
multiple
?:
boolean
;
/**
* 查询单位路径
*
* @memberof AppOrgSelect
*/
@
Prop
()
public
url
!
:
string
;
/**
/**
* 监听表单数据变化
* 监听表单数据变化
*
*
...
@@ -57,20 +64,13 @@ export default class AppOrgSelect extends Vue {
...
@@ -57,20 +64,13 @@ export default class AppOrgSelect extends Vue {
let
tempFilterValue
:
any
=
this
.
initBasicData
();
let
tempFilterValue
:
any
=
this
.
initBasicData
();
// filter值变化才去请求数据
// filter值变化才去请求数据
if
(
tempFilterValue
&&
(
this
.
copyFilterValue
!==
tempFilterValue
)){
if
(
tempFilterValue
&&
(
this
.
copyFilterValue
!==
tempFilterValue
)){
this
.
loadTreeData
(
this
.
orgDataU
rl
.
replace
(
'${orgid}'
,
tempFilterValue
));
this
.
loadTreeData
(
this
.
u
rl
.
replace
(
'${orgid}'
,
tempFilterValue
));
this
.
copyFilterValue
=
tempFilterValue
;
this
.
copyFilterValue
=
tempFilterValue
;
}
}
}
}
}
}
}
}
/**
* 查询单位路径
*
* @memberof AppOrgSelect
*/
public
orgDataUrl
:
string
=
"/ibzorganizations/${orgid}/suborg/picker"
;
/**
/**
* 选择值
* 选择值
*
*
...
@@ -99,7 +99,7 @@ export default class AppOrgSelect extends Vue {
...
@@ -99,7 +99,7 @@ export default class AppOrgSelect extends Vue {
*/
*/
public
created
(){
public
created
(){
if
(
!
this
.
filter
){
if
(
!
this
.
filter
){
this
.
loadTreeData
(
this
.
orgDataUrl
.
replace
(
'${orgid}'
,
'alls'
)
);
this
.
loadTreeData
(
this
.
url
);
}
}
}
}
...
@@ -140,7 +140,23 @@ export default class AppOrgSelect extends Vue {
...
@@ -140,7 +140,23 @@ export default class AppOrgSelect extends Vue {
}
}
}
else
{
}
else
{
// 多选
// 多选
if
(
this
.
fillMap
&&
Object
.
keys
(
this
.
fillMap
).
length
>
0
){
let
tempArray
:
Array
<
any
>
=
[];
Object
.
keys
(
this
.
fillMap
).
forEach
((
item
:
any
)
=>
{
if
(
this
.
data
&&
this
.
data
[
this
.
fillMap
[
item
]]){
let
tempDataArray
:
Array
<
any
>
=
(
this
.
data
[
this
.
fillMap
[
item
]]).
split
(
","
);
tempDataArray
.
forEach
((
tempData
:
any
,
index
:
number
)
=>
{
if
(
tempArray
.
length
<
tempDataArray
.
length
){
let
singleData
:
any
=
{[
item
]:
tempData
};
tempArray
.
push
(
singleData
);
}
else
{
Object
.
assign
(
tempArray
[
index
],{[
item
]:
tempData
});
}
})
}
})
this
.
selectTreeValue
=
JSON
.
stringify
(
tempArray
);
}
}
}
}
}
...
@@ -150,13 +166,22 @@ export default class AppOrgSelect extends Vue {
...
@@ -150,13 +166,22 @@ export default class AppOrgSelect extends Vue {
* @memberof AppOrgSelect
* @memberof AppOrgSelect
*/
*/
public
loadTreeData
(
requestUrl
:
string
){
public
loadTreeData
(
requestUrl
:
string
){
if
(
this
.
filter
){
const
result
:
any
=
this
.
$store
.
getters
.
getCopyData
(
this
.
filter
);
if
(
result
){
this
.
NodesData
=
result
;
return
;
}
}
Http
.
getInstance
().
get
(
requestUrl
).
then
((
res
:
any
)
=>
{
Http
.
getInstance
().
get
(
requestUrl
).
then
((
res
:
any
)
=>
{
if
(
!
res
.
status
&&
res
.
status
!==
200
){
if
(
!
res
.
status
&&
res
.
status
!==
200
){
console
.
error
(
"加载数据失败"
);
console
.
error
(
"加载数据失败"
);
return
;
return
;
}
}
this
.
NodesData
=
res
.
data
;
this
.
NodesData
=
res
.
data
;
console
.
log
(
this
.
NodesData
);
if
(
this
.
filter
){
this
.
$store
.
commit
(
'addOrgData'
,
{
srfkey
:
this
.
filter
,
orgData
:
res
.
data
});
}
})
})
}
}
...
@@ -168,10 +193,27 @@ export default class AppOrgSelect extends Vue {
...
@@ -168,10 +193,27 @@ export default class AppOrgSelect extends Vue {
public
treeSelectChange
(
$event
:
any
){
public
treeSelectChange
(
$event
:
any
){
// 多选
// 多选
if
(
this
.
multiple
){
if
(
this
.
multiple
){
if
(
!
Object
.
is
(
$event
,
'[]'
)){
const
tempValue
:
any
=
JSON
.
parse
(
$event
);
if
(
this
.
fillMap
&&
Object
.
keys
(
this
.
fillMap
).
length
>
0
){
Object
.
keys
(
this
.
fillMap
).
forEach
((
item
:
any
)
=>
{
let
tempResult
:
any
=
""
;
tempValue
.
forEach
((
value
:
any
,
index
:
number
)
=>
{
tempResult
+=
index
>
0
?
`,
${
value
[
item
]}
`
:
`
${
value
[
item
]}
`
;
})
this
.
emitValue
(
this
.
fillMap
[
item
],
tempResult
);
})
}
}
else
{
if
(
this
.
fillMap
&&
Object
.
keys
(
this
.
fillMap
).
length
>
0
){
Object
.
keys
(
this
.
fillMap
).
forEach
((
item
:
any
)
=>
{
this
.
emitValue
(
this
.
fillMap
[
item
],
null
);
})
}
}
}
else
{
}
else
{
// 单选
// 单选
if
(
$event
){
if
(
!
Object
.
is
(
$event
,
'[]'
)
){
const
tempValue
:
any
=
JSON
.
parse
(
$event
)[
0
];
const
tempValue
:
any
=
JSON
.
parse
(
$event
)[
0
];
if
(
this
.
fillMap
&&
Object
.
keys
(
this
.
fillMap
).
length
>
0
){
if
(
this
.
fillMap
&&
Object
.
keys
(
this
.
fillMap
).
length
>
0
){
Object
.
keys
(
this
.
fillMap
).
forEach
((
item
:
any
)
=>
{
Object
.
keys
(
this
.
fillMap
).
forEach
((
item
:
any
)
=>
{
...
@@ -194,7 +236,7 @@ export default class AppOrgSelect extends Vue {
...
@@ -194,7 +236,7 @@ export default class AppOrgSelect extends Vue {
* @memberof AppOrgSelect
* @memberof AppOrgSelect
*/
*/
public
emitValue
(
name
:
string
,
value
:
any
){
public
emitValue
(
name
:
string
,
value
:
any
){
this
.
$emit
(
'
formitemvalue
change'
,{
name
:
name
,
value
:
value
});
this
.
$emit
(
'
select-
change'
,{
name
:
name
,
value
:
value
});
}
}
}
}
...
...
app_web/src/components/app-wf-approval/app-wf-approval.less
0 → 100644
浏览文件 @
dcaf9043
.app-wf-approval{
width:100%;
.app-wf-approval-header{
width: 100%;
text-align: center;
background: #e5eaef;
height: 32px;
line-height: 32px;
font-size: 16px;
border: 1px solid #565656;
.approval-header-left{
margin-right: 24px;
}
}
.app-wf-approval-bottom{
width: 100%;
text-align: center;
background: #e5eaef;
height: 32px;
line-height: 32px;
font-size: 16px;
border-style: solid;
border-width: 0px 1px 1px 1px;
border-color: #565656;
}
.app-wf-approval-content{
border-left: 1px solid #565656;
border-right: 1px solid #565656;
.approval-content-item{
display: flex;
align-items: center;
font-size: 16px;
border-bottom: 1px solid #565656;
.approval-content-item-left{
width: 130px;
padding: 8px;
text-align: center;
}
.approval-content-item-right{
width: calc(100% - 130px);
border-left:1px solid #565656;
.approval-content-item-wait{
padding: 0px 4px;
height: 32px;
line-height: 32px;
font-size: 16px;
border-bottom:1px solid #565656;
background: #d1ef5c;
>span{
font-size: 18px;
color: #000;
font-weight: 600;
}
}
.approval-content-item-info{
.approval-content-item-info-item {
padding: 0px 4px;
height: 32px;
line-height: 32px;
border-bottom:1px solid #565656;
}
.approval-content-item-info-top{
font-size: 16px;
}
.approval-content-item-info-bottom{
font-size: 14px;
text-align: right;
>span{
margin-right:6px;
}
.info-bottom-name{
font-size: 18px;
font-weight: 600;
}
}
> div:nth-last-child(1){
> .approval-content-item-info-item:nth-last-child(1){
border-bottom: 0;
}
}
}
.approval-content-item-memo{
padding: 0px 4px;
.el-textarea__inner{
border: 0px !important;
padding: 0px !important;
}
}
}
}
}
}
\ No newline at end of file
app_web/src/components/app-wf-approval/app-wf-approval.vue
0 → 100644
浏览文件 @
dcaf9043
<
template
>
<div
class=
'app-wf-approval'
>
<div
class=
"app-wf-approval-header"
>
<span
class=
"approval-header-left"
>
{{
data
.
startTime
}}
</span>
<span>
{{
data
.
startUserName
}}
提交
</span>
</div>
<div
class=
"app-wf-approval-content"
v-if=
"data.usertasks && data.usertasks.length >0"
>
<div
class=
"approval-content-item"
v-for=
"(usertask,index) in data.usertasks"
:key=
"index"
>
<div
class=
"approval-content-item-left"
>
{{
usertask
.
userTaskName
}}
</div>
<div
class=
"approval-content-item-right"
>
<div
class=
"approval-content-item-wait"
v-if=
"usertask.identitylinks.length >0"
>
等待
<span
v-for=
"(identitylink,inx) in usertask.identitylinks"
:key=
"inx"
>
{{
identitylink
.
displayname
}}
<span
v-if=
"inx >0"
>
、
</span></span>
处理
</div>
<div
class=
"approval-content-item-info"
v-if=
"usertask.comments.length >0"
>
<div
v-for=
"(comment,commentInx) in usertask.comments"
:key=
"commentInx"
>
<div
class=
"approval-content-item-info-item approval-content-item-info-top"
>
{{
`【${comment.type
}
】${comment.fullMessage
}
`
}}
<
/div
>
<
div
class
=
"approval-content-item-info-item approval-content-item-info-bottom"
>
<
span
class
=
"info-bottom-name"
>
{{
comment
.
authorName
}}
<
/span
>
<
span
>
{{
comment
.
time
}}
<
/span
>
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"approval-content-item-memo"
v
-
if
=
"usertask.userTaskId === viewparams.userTaskId"
>
<
el
-
input
type
=
"textarea"
v
-
model
=
"initmemo"
:
rows
=
"2"
@
blur
=
"handleBlur"
placeholder
=
"请输入内容"
><
/el-input
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
div
class
=
"app-wf-approval-bottom"
>
<
span
v
-
if
=
"data.endTime"
>
{{
data
.
endTime
}}
结束
<
/span
>
<
/div
>
<
/div
>
<
/template
>
<
script
lang
=
'ts'
>
import
{
Vue
,
Component
,
Prop
,
Model
}
from
'vue-property-decorator'
;
@
Component
({
}
)
export
default
class
AppWFApproval
extends
Vue
{
/**
* 双向绑定值
*
* @memberof AppWFApproval
*/
@
Model
(
'change'
)
value
!
:
string
;
/**
* 数据
*
* @memberof AppWFApproval
*/
public
data
:
any
=
{
}
;
/**
* 初始化memo
*
* @memberof AppWFApproval
*/
public
initmemo
:
string
=
""
;
/**
* 传入数据服务
*
* @memberof AppWFApproval
*/
@
Prop
()
public
service
:
any
;
/**
* 上下文
*
* @memberof AppWFApproval
*/
@
Prop
()
public
context
:
any
;
/**
* 视图参数
*
* @memberof AppWFApproval
*/
@
Prop
()
public
viewparams
:
any
;
/**
* 初始化数据
*
* @memberof AppWFApproval
*/
public
created
(){
if
(
this
.
service
){
this
.
service
.
GetWFHistory
(
this
.
context
).
then
((
res
:
any
)
=>
{
if
(
res
&&
(
res
.
status
===
200
)){
this
.
data
=
res
.
data
;
}
}
)
}
}
/**
* 抛出wfprocmemo
*
* @memberof AppWFApproval
*/
public
handleBlur
(
$event
:
any
){
this
.
$emit
(
'change'
,
$event
.
target
.
value
);
}
}
<
/script
>
<
style
lang
=
"less"
>
@
import
'./app-wf-approval.less'
;
<
/style>
\ No newline at end of file
app_web/src/components/ibiz-group-picker/ibiz-group-picker.vue
浏览文件 @
dcaf9043
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"ibiz-group-picker"
>
<div
class=
"ibiz-group-picker"
>
<div
class=
"ibiz-group-container"
>
<div
class=
"ibiz-group-container"
>
<div
v-if=
"showTree"
class=
"ibiz-group-tree"
>
<div
v-if=
"showTree"
class=
"ibiz-group-tree"
>
<ibiz-select-tree
:NodesData=
"treeItems"
v-model=
"treeSelectVal"
:
isShowSearchBar=
"fals
e"
@
select=
"treeSelect"
></ibiz-select-tree>
<ibiz-select-tree
:NodesData=
"treeItems"
v-model=
"treeSelectVal"
:
treeOnly=
"true"
:defaultChecked=
"tru
e"
@
select=
"treeSelect"
></ibiz-select-tree>
</div>
</div>
<div
class=
"ibiz-group-content"
>
<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>
<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 {
...
@@ -47,6 +47,22 @@ export default class IBizGroupPicker extends Vue {
*/
*/
protected
multiple
:
boolean
=
false
;
protected
multiple
:
boolean
=
false
;
/**
* 加载树url
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
treeurl
:
any
;
/**
* 加载人员url
*
* @type {*}
* @memberof IBizGroupPicker
*/
protected
url
:
any
;
/**
/**
* 树数据集
* 树数据集
*
*
...
@@ -110,8 +126,8 @@ export default class IBizGroupPicker extends Vue {
...
@@ -110,8 +126,8 @@ export default class IBizGroupPicker extends Vue {
* @memberof IBizGroupPicker
* @memberof IBizGroupPicker
*/
*/
get
showTree
()
{
get
showTree
()
{
if
(
!
Object
.
is
(
this
.
viewData
.
srforgid
,
this
.
viewParam
.
srforgid
)
)
{
if
(
this
.
viewParam
)
{
return
t
ru
e
;
return
t
his
.
viewParam
.
showtre
e
;
}
}
}
}
...
@@ -128,8 +144,13 @@ export default class IBizGroupPicker extends Vue {
...
@@ -128,8 +144,13 @@ export default class IBizGroupPicker extends Vue {
this
.
viewData
=
JSON
.
parse
(
this
.
viewdata
);
this
.
viewData
=
JSON
.
parse
(
this
.
viewdata
);
this
.
viewParam
=
JSON
.
parse
(
this
.
viewparam
);
this
.
viewParam
=
JSON
.
parse
(
this
.
viewparam
);
this
.
multiple
=
this
.
viewParam
.
multiple
;
this
.
multiple
=
this
.
viewParam
.
multiple
;
this
.
treeurl
=
this
.
viewParam
.
treeurl
;
this
.
url
=
this
.
viewParam
.
url
;
if
(
this
.
viewParam
.
selects
)
{
if
(
this
.
viewParam
.
selects
)
{
this
.
cardSelctVal
=
this
.
viewParam
.
selects
;
this
.
viewParam
.
selects
.
forEach
((
select
:
any
)
=>
{
this
.
selects
.
push
(
select
);
this
.
cardSelctVal
.
push
(
select
.
id
)
})
}
}
this
.
load
();
this
.
load
();
}
}
...
@@ -144,7 +165,7 @@ export default class IBizGroupPicker extends Vue {
...
@@ -144,7 +165,7 @@ export default class IBizGroupPicker extends Vue {
if
(
this
.
showTree
)
{
if
(
this
.
showTree
)
{
this
.
loadTree
();
this
.
loadTree
();
}
else
{
}
else
{
this
.
loadGroupData
(
this
.
viewParam
.
srforgid
);
this
.
loadGroupData
(
this
.
viewParam
.
filtervalue
);
}
}
}
}
...
@@ -155,7 +176,9 @@ export default class IBizGroupPicker extends Vue {
...
@@ -155,7 +176,9 @@ export default class IBizGroupPicker extends Vue {
* @memberof IBizGroupPicker
* @memberof IBizGroupPicker
*/
*/
public
loadTree
()
{
public
loadTree
()
{
let
get
=
Http
.
getInstance
().
get
(
`/ibzorganizations/450000/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
)
=>
{
get
.
then
((
response
:
any
)
=>
{
if
(
response
.
status
===
200
)
{
if
(
response
.
status
===
200
)
{
this
.
treeItems
=
response
.
data
;
this
.
treeItems
=
response
.
data
;
...
@@ -172,7 +195,8 @@ export default class IBizGroupPicker extends Vue {
...
@@ -172,7 +195,8 @@ export default class IBizGroupPicker extends Vue {
* @memberof IBizGroupPicker
* @memberof IBizGroupPicker
*/
*/
public
loadGroupData
(
key
:
string
)
{
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
)
=>
{
get
.
then
((
response
:
any
)
=>
{
if
(
response
.
status
===
200
)
{
if
(
response
.
status
===
200
)
{
this
.
cardItems
=
response
.
data
;
this
.
cardItems
=
response
.
data
;
...
@@ -203,7 +227,7 @@ export default class IBizGroupPicker extends Vue {
...
@@ -203,7 +227,7 @@ export default class IBizGroupPicker extends Vue {
* @memberof IBizGroupPicker
* @memberof IBizGroupPicker
*/
*/
public
groupSelect
(
event
:
any
)
{
public
groupSelect
(
event
:
any
)
{
if
(
!
event
||
!
event
.
select
s
)
{
if
(
!
event
||
!
event
.
select
)
{
return
;
return
;
}
}
if
(
!
this
.
multiple
)
{
if
(
!
this
.
multiple
)
{
...
@@ -215,7 +239,7 @@ export default class IBizGroupPicker extends Vue {
...
@@ -215,7 +239,7 @@ export default class IBizGroupPicker extends Vue {
this
.
selects
.
splice
(
index
,
1
);
this
.
selects
.
splice
(
index
,
1
);
}
}
}
else
{
}
else
{
event
.
select
s
.
forEach
((
key
:
string
)
=>
{
event
.
select
.
forEach
((
key
:
string
)
=>
{
let
index
:
number
=
this
.
selects
.
findIndex
((
item
:
any
)
=>
Object
.
is
(
key
,
item
.
id
));
let
index
:
number
=
this
.
selects
.
findIndex
((
item
:
any
)
=>
Object
.
is
(
key
,
item
.
id
));
if
(
index
>=
0
)
{
if
(
index
>=
0
)
{
return
;
return
;
...
@@ -226,22 +250,6 @@ export default class IBizGroupPicker extends Vue {
...
@@ -226,22 +250,6 @@ export default class IBizGroupPicker extends Vue {
}
}
});
});
}
}
// 测试 start
// if(!this.multiple) {
// this.selects = [];
// }
// event.forEach((key: string) => {
// let index: number = this.selects.findIndex((item: any) => Object.is(key, item.id));
// if(index >= 0) {
// return;
// }
// let item: any = this.cardItems.find((item: any) => Object.is(key, item.id));
// if (item) {
// this.selects.push(item);
// }
// });
// 测试 end
}
}
/**
/**
...
...
app_web/src/components/ibiz-group-select/ibiz-group-select.vue
浏览文件 @
dcaf9043
...
@@ -32,13 +32,21 @@ export default class IBizGroupSelect extends Vue {
...
@@ -32,13 +32,21 @@ export default class IBizGroupSelect extends Vue {
*/
*/
@
Prop
()
name
!
:
string
;
@
Prop
()
name
!
:
string
;
/**
* 树加载地址
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
treeurl
?:
boolean
;
/**
/**
* 数据接口地址
* 数据接口地址
*
*
* @type {*}
* @type {*}
* @memberof IBizGroupSelect
* @memberof IBizGroupSelect
*/
*/
@
Prop
()
url
?
:
string
;
@
Prop
()
url
!
:
string
;
/**
/**
* 多选
* 多选
...
@@ -62,7 +70,7 @@ export default class IBizGroupSelect extends Vue {
...
@@ -62,7 +70,7 @@ export default class IBizGroupSelect extends Vue {
* @type {*}
* @type {*}
* @memberof IBizGroupSelect
* @memberof IBizGroupSelect
*/
*/
@
Prop
(
{
default
:
'orgid'
}
)
filter
?:
string
;
@
Prop
()
filter
?:
string
;
/**
/**
* 是否启用
* 是否启用
...
@@ -96,6 +104,14 @@ export default class IBizGroupSelect extends Vue {
...
@@ -96,6 +104,14 @@ export default class IBizGroupSelect extends Vue {
*/
*/
@
Prop
()
valueitem
:
any
;
@
Prop
()
valueitem
:
any
;
/**
* 填充属性
*
* @type {*}
* @memberof IBizGroupSelect
*/
@
Prop
()
fillmap
:
any
;
/**
/**
* 选中项集合
* 选中项集合
*
*
...
@@ -114,17 +130,22 @@ export default class IBizGroupSelect extends Vue {
...
@@ -114,17 +130,22 @@ export default class IBizGroupSelect extends Vue {
onValueChange
(
newVal
:
any
)
{
onValueChange
(
newVal
:
any
)
{
this
.
selects
=
[];
this
.
selects
=
[];
if
(
newVal
)
{
if
(
newVal
)
{
let
vals
:
any
[]
=
newVal
.
split
(
','
)
;
let
item
:
any
=
{}
;
let
vals2
:
any
[]
=
[]
;
item
.
label
=
newVal
.
split
(
','
)
;
if
(
this
.
valueitem
)
{
if
(
this
.
valueitem
)
{
vals2
=
this
.
data
[
this
.
valueitem
].
split
(
','
)
;
item
.
id
=
this
.
data
[
this
.
valueitem
]
?
this
.
data
[
this
.
valueitem
].
split
(
','
)
:
[]
;
}
}
console
.
log
(
this
.
data
[
this
.
valueitem
])
if
(
this
.
fillmap
)
{
vals
.
forEach
((
val
:
string
,
index
:
number
)
=>
{
for
(
let
key
in
this
.
fillmap
)
{
this
.
selects
.
push
({
item
[
this
.
fillmap
[
key
]]
=
this
.
data
[
key
]
?
this
.
data
[
key
].
split
(
','
)
:
[];
label
:
val
,
}
id
:
vals2
.
length
>
0
?
vals2
[
index
]
:
null
}
})
item
.
label
.
forEach
((
val
:
string
,
index
:
number
)
=>
{
let
_item
:
any
=
{};
for
(
let
key
in
item
)
{
_item
[
key
]
=
item
[
key
][
index
]
?
item
[
key
][
index
]
:
null
;
}
this
.
selects
.
push
(
_item
)
})
})
}
}
}
}
...
@@ -152,16 +173,27 @@ export default class IBizGroupSelect extends Vue {
...
@@ -152,16 +173,27 @@ export default class IBizGroupSelect extends Vue {
viewname
:
'ibiz-group-picker'
,
viewname
:
'ibiz-group-picker'
,
title
:
'分组选择'
title
:
'分组选择'
};
};
let
sels
:
any
=
this
.
selects
.
map
((
select
:
any
)
=>
{
return
select
.
id
;
})
const
context
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
));
const
context
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
));
let
filtervalue
:
string
=
""
;
if
(
this
.
filter
){
if
(
this
.
data
[
this
.
filter
]){
filtervalue
=
this
.
data
[
this
.
filter
];
}
else
if
(
context
[
this
.
filter
]){
filtervalue
=
context
[
this
.
filter
];
}
else
{
filtervalue
=
context
.
srforgid
;
}
}
else
{
filtervalue
=
context
.
srforgid
;
}
const
param
:
any
=
{};
const
param
:
any
=
{};
let
orgid
:
any
=
this
.
filter
;
Object
.
assign
(
param
,
{
Object
.
assign
(
param
,
{
orgid
:
this
.
data
[
orgid
],
showtree
:
this
.
treeurl
?
true
:
false
,
url
:
this
.
url
,
treeurl
:
this
.
treeurl
,
filtervalue
:
filtervalue
,
multiple
:
this
.
multiple
,
multiple
:
this
.
multiple
,
selects
:
sel
s
selects
:
this
.
select
s
});
});
let
container
:
Subject
<
any
>
=
this
.
$appmodal
.
openModal
(
view
,
context
,
param
);
let
container
:
Subject
<
any
>
=
this
.
$appmodal
.
openModal
(
view
,
context
,
param
);
container
.
subscribe
((
result
:
any
)
=>
{
container
.
subscribe
((
result
:
any
)
=>
{
...
@@ -179,15 +211,9 @@ export default class IBizGroupSelect extends Vue {
...
@@ -179,15 +211,9 @@ export default class IBizGroupSelect extends Vue {
* @memberof IBizGroupSelect
* @memberof IBizGroupSelect
*/
*/
public
openViewClose
(
result
:
any
)
{
public
openViewClose
(
result
:
any
)
{
console
.
log
(
result
)
this
.
selects
=
[];
this
.
selects
=
[];
if
(
result
.
datas
&&
result
.
datas
.
length
>
0
)
{
if
(
result
.
datas
&&
result
.
datas
.
length
>
0
)
{
result
.
datas
.
forEach
((
data
:
any
)
=>
{
this
.
selects
=
result
.
datas
this
.
selects
.
push
({
id
:
data
.
id
,
label
:
data
.
label
})
});
}
}
this
.
setValue
()
this
.
setValue
()
}
}
...
@@ -211,26 +237,41 @@ export default class IBizGroupSelect extends Vue {
...
@@ -211,26 +237,41 @@ export default class IBizGroupSelect extends Vue {
*/
*/
public
setValue
()
{
public
setValue
()
{
let
item
:
any
=
{};
let
item
:
any
=
{};
item
[
this
.
name
]
=
null
;
if
(
this
.
valueitem
)
{
item
[
this
.
valueitem
]
=
null
;
}
if
(
this
.
fillmap
)
{
for
(
let
key
in
this
.
fillmap
)
{
item
[
key
]
=
null
;
}
}
if
(
this
.
multiple
)
{
if
(
this
.
multiple
)
{
let
label
=
''
;
let
value
=
''
;
this
.
selects
.
forEach
((
select
:
any
)
=>
{
this
.
selects
.
forEach
((
select
:
any
)
=>
{
label
+=
','
+
select
.
label
;
item
[
this
.
name
]
=
item
[
this
.
name
]
?
`
${
item
[
this
.
name
]}
,
${
select
.
label
}
`
:
select
.
label
;
value
+=
','
+
select
.
id
;
if
(
this
.
valueitem
)
{
item
[
this
.
valueitem
]
=
item
[
this
.
valueitem
]
?
`
${
item
[
this
.
valueitem
]}
,
${
select
.
id
}
`
:
select
.
id
;
}
if
(
this
.
fillmap
)
{
for
(
let
key
in
this
.
fillmap
)
{
item
[
key
]
=
item
[
key
]
?
`
${
item
[
key
]}
,
${
select
[
this
.
fillmap
[
key
]]}
`
:
select
[
this
.
fillmap
[
key
]];
}
}
});
});
Object
.
assign
(
item
,
{
label
:
label
?
label
.
substring
(
1
)
:
null
,
id
:
value
?
value
.
substring
(
1
)
:
null
})
}
else
{
}
else
{
item
=
this
.
selects
.
length
>
0
?
this
.
selects
[
0
]
:
{};
item
=
this
.
selects
.
length
>
0
?
this
.
selects
[
0
]
:
{};
item
[
this
.
name
]
=
this
.
selects
.
length
>
0
?
this
.
selects
[
0
].
label
:
null
;
if
(
this
.
valueitem
)
{
item
[
this
.
valueitem
]
=
this
.
selects
.
length
>
0
?
this
.
selects
[
0
].
id
:
null
;
}
}
if
(
this
.
name
)
{
if
(
this
.
fillmap
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
name
,
value
:
item
.
label
});
for
(
let
key
in
this
.
fillmap
)
{
item
[
key
]
=
this
.
selects
.
length
>
0
?
this
.
selects
[
0
][
this
.
fillmap
[
key
]]
:
null
;
}
}
if
(
this
.
valueitem
)
{
}
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
valueitem
,
value
:
item
.
id
});
}
for
(
let
key
in
item
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
key
,
value
:
item
[
key
]
});
}
}
}
}
}
}
...
...
app_web/src/components/tab-page-exp/tab-page-exp.vue
浏览文件 @
dcaf9043
...
@@ -201,11 +201,11 @@ export default class TabPageExp extends Vue {
...
@@ -201,11 +201,11 @@ export default class TabPageExp extends Vue {
* @param {*} caption
* @param {*} caption
* @memberof TabPageExp
* @memberof TabPageExp
*/
*/
public
setCurPageCaption
(
routename
:
string
,
caption
:
any
,
info
:
string
)
{
public
setCurPageCaption
(
caption
:
string
,
title
:
any
,
info
:
string
)
{
if
(
!
Object
.
is
(
this
.
$route
.
name
,
routename
))
{
if
(
this
.
$route
.
meta
&&
(
!
Object
.
is
(
this
.
$route
.
meta
.
caption
,
caption
)
))
{
return
;
return
;
}
}
this
.
$store
.
commit
(
"setCurPageCaption"
,
{
route
:
this
.
$route
,
caption
:
caption
,
info
:
info
});
this
.
$store
.
commit
(
"setCurPageCaption"
,
{
route
:
this
.
$route
,
caption
:
title
,
info
:
info
});
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
moveToView
(
this
.
$route
);
this
.
moveToView
(
this
.
$route
);
},
1
);
},
1
);
...
...
app_web/src/engine/view/edit-view-engine.ts
浏览文件 @
dcaf9043
...
@@ -247,9 +247,9 @@ export default class EditViewEngine extends ViewEngine {
...
@@ -247,9 +247,9 @@ export default class EditViewEngine extends ViewEngine {
*/
*/
public
setTabCaption
(
info
:
string
):
void
{
public
setTabCaption
(
info
:
string
):
void
{
let
viewdata
:
any
=
this
.
view
.
model
;
let
viewdata
:
any
=
this
.
view
.
model
;
let
viewParam
=
this
.
view
.
$store
.
getters
[
'viewaction/getAppView'
](
this
.
view
.
viewtag
);
if
(
viewdata
&&
info
&&
!
Object
.
is
(
info
,
''
)
&&
this
.
view
.
$tabPageExp
&&
(
viewdata
.
srfTitle
.
indexOf
(
" - "
)
===
-
1
))
{
if
(
viewdata
&&
viewParam
&&
info
&&
!
Object
.
is
(
info
,
''
)
&&
this
.
view
.
$tabPageExp
)
{
this
.
view
.
$tabPageExp
.
setCurPageCaption
(
viewdata
.
srfCaption
,
viewdata
.
srfTitle
,
info
);
this
.
view
.
$tabPageExp
.
setCurPageCaption
(
`
${
viewParam
.
viewmodule
}
_
${
viewParam
.
viewname
}
`
.
toLocaleLowerCase
(),
viewdata
.
srfCaption
,
info
)
;
this
.
view
.
model
.
srfTitle
=
`
${
this
.
view
.
$t
(
viewdata
.
srfTitle
)}
-
${
viewdata
.
dataInfo
}
`
;
}
}
}
}
...
...
app_web/src/pages/workflow/wfindex-view/main.ts
浏览文件 @
dcaf9043
...
@@ -11,6 +11,7 @@ import i18n from '@/locale'
...
@@ -11,6 +11,7 @@ import i18n from '@/locale'
import
'element-ui/lib/theme-chalk/index.css'
;
import
'element-ui/lib/theme-chalk/index.css'
;
import
'view-design/dist/styles/iview.css'
;
import
'view-design/dist/styles/iview.css'
;
import
'ibiz-vue-lib/lib/ibiz-vue-lib.css'
;
import
'@/styles/default.less'
;
import
'@/styles/default.less'
;
...
...
app_web/src/service/entity-service.ts
浏览文件 @
dcaf9043
...
@@ -619,7 +619,22 @@ export default class EntityService {
...
@@ -619,7 +619,22 @@ export default class EntityService {
* @memberof EntityService
* @memberof EntityService
*/
*/
public
async
removeBatch
(
context
:
any
=
{},
data
:
any
,
isloading
?:
boolean
):
Promise
<
any
>
{
public
async
removeBatch
(
context
:
any
=
{},
data
:
any
,
isloading
?:
boolean
):
Promise
<
any
>
{
return
Http
.
getInstance
().
delete
(
`/
${
this
.
APPDENAME
}
/batch`
,
isloading
,
data
);
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
);
}
}
}
/**
/**
...
@@ -765,6 +780,19 @@ export default class EntityService {
...
@@ -765,6 +780,19 @@ export default class EntityService {
return
Http
.
getInstance
().
get
(
`/wfcore/
${
this
.
SYSTEMNAME
}
-app-
${
this
.
APPNAME
}
/
${
this
.
APPDENAME
}
/
${
context
[
this
.
APPLYDEKEY
]}
/usertasks/
${
data
[
'taskDefinitionKey'
]}
/ways`
);
return
Http
.
getInstance
().
get
(
`/wfcore/
${
this
.
SYSTEMNAME
}
-app-
${
this
.
APPNAME
}
/
${
this
.
APPDENAME
}
/
${
context
[
this
.
APPLYDEKEY
]}
/usertasks/
${
data
[
'taskDefinitionKey'
]}
/ways`
);
}
}
/**
* GetWFHistory接口方法(根据业务主键获取工作流程记录)
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof EntityService
*/
public
async
GetWFHistory
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
return
Http
.
getInstance
().
get
(
`/wfcore/
${
this
.
SYSTEMNAME
}
-app-
${
this
.
APPNAME
}
/
${
this
.
APPDENAME
}
/
${
context
[
this
.
APPLYDEKEY
]}
/process-instances/alls/history`
);
}
/**
/**
* WFSubmit接口方法
* WFSubmit接口方法
*
*
...
...
app_web/src/store/getters.ts
浏览文件 @
dcaf9043
...
@@ -89,3 +89,23 @@ export const getCopyData = (state: any) => (srfkey: string) => {
...
@@ -89,3 +89,23 @@ export const getCopyData = (state: any) => (srfkey: string) => {
}
}
return
copyData
;
return
copyData
;
}
}
/**
* 获取单位数据
*
* @param state
*/
export
const
getOrgData
=
(
state
:
any
)
=>
(
srfkey
:
string
)
=>
{
let
orgData
=
state
.
orgDataMap
[
srfkey
];
return
orgData
;
}
/**
* 获取部门数据
*
* @param state
*/
export
const
getDepData
=
(
state
:
any
)
=>
(
srfkey
:
string
)
=>
{
let
depData
=
state
.
depDataMap
[
srfkey
];
return
depData
;
}
\ No newline at end of file
app_web/src/store/mutations.ts
浏览文件 @
dcaf9043
...
@@ -266,3 +266,27 @@ export const addCopyData = (state: any, args: {srfkey: string,copyData: any}) =>
...
@@ -266,3 +266,27 @@ export const addCopyData = (state: any, args: {srfkey: string,copyData: any}) =>
state
.
copyDataMap
[
args
.
srfkey
]
=
JSON
.
parse
(
JSON
.
stringify
(
args
.
copyData
));
state
.
copyDataMap
[
args
.
srfkey
]
=
JSON
.
parse
(
JSON
.
stringify
(
args
.
copyData
));
}
}
}
}
/**
* 添加单位数据
*
* @param state
* @param args
*/
export
const
addOrgData
=
(
state
:
any
,
args
:
{
srfkey
:
string
,
orgData
:
any
})
=>
{
if
(
args
&&
args
.
srfkey
&&
args
.
orgData
){
state
.
orgDataMap
[
args
.
srfkey
]
=
JSON
.
parse
(
JSON
.
stringify
(
args
.
orgData
));
}
}
/**
* 添加部门数据
*
* @param state
* @param args
*/
export
const
addDepData
=
(
state
:
any
,
args
:
{
srfkey
:
string
,
depData
:
any
})
=>
{
if
(
args
&&
args
.
srfkey
&&
args
.
depData
){
state
.
depDataMap
[
args
.
srfkey
]
=
JSON
.
parse
(
JSON
.
stringify
(
args
.
depData
));
}
}
\ No newline at end of file
app_web/src/store/state.ts
浏览文件 @
dcaf9043
...
@@ -14,4 +14,6 @@ export const rootstate: any = {
...
@@ -14,4 +14,6 @@ export const rootstate: any = {
zIndex
:
300
,
zIndex
:
300
,
viewSplit
:
{},
viewSplit
:
{},
copyDataMap
:{},
copyDataMap
:{},
orgDataMap
:{},
depDataMap
:{},
}
}
\ No newline at end of file
app_web/src/utils/types/util.d.ts
浏览文件 @
dcaf9043
...
@@ -138,6 +138,17 @@ export declare interface Util {
...
@@ -138,6 +138,17 @@ export declare interface Util {
* @memberof Util
* @memberof Util
*/
*/
dateFormat
(
date
:
any
,
fmt
?:
string
):
string
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"
{
declare
module
"vue/types/vue"
{
...
...
app_web/src/utils/uiaction-tool/uiaction-tool.ts
浏览文件 @
dcaf9043
...
@@ -73,7 +73,7 @@ export class UIActionTool {
...
@@ -73,7 +73,7 @@ export class UIActionTool {
values
.
push
(
value
);
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
;
return
_data
;
...
...
app_web/src/utils/util/util.ts
浏览文件 @
dcaf9043
import
qs
from
'qs'
;
import
qs
from
'qs'
;
import
{
Route
}
from
'vue-router'
;
import
{
Route
}
from
'vue-router'
;
import
Schema
from
"async-validator"
;
/**
/**
* 平台工具类
* 平台工具类
...
@@ -362,4 +363,23 @@ export class Util {
...
@@ -362,4 +363,23 @@ export class Util {
return
FirstOBJ
;
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/wfgroup/main-form/main-form-base.vue
浏览文件 @
dcaf9043
<
template
>
<
template
>
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'
form
'
style=
""
>
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'
wfgroup_main
'
style=
""
>
<input
style=
"display:none;"
/>
<input
style=
"display:none;"
/>
<row
>
<row
>
...
@@ -180,6 +180,12 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -180,6 +180,12 @@ export default class MainBase extends Vue implements ControlInterface {
}
}
/**
* 工作流审批意见控件绑定值
*
* @memberof Main
*/
public
srfwfmemo
:
string
=
""
;
/**
/**
* 获取多项数据
* 获取多项数据
...
@@ -976,7 +982,7 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -976,7 +982,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
*/
public
print
(){
public
print
(){
let
_this
:
any
=
this
;
let
_this
:
any
=
this
;
_this
.
$print
({
id
:
'
form
'
,
popTitle
:
'主编辑表单'
});
_this
.
$print
({
id
:
'
wfgroup_main
'
,
popTitle
:
'主编辑表单'
});
}
}
/**
/**
...
@@ -1349,6 +1355,10 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -1349,6 +1355,10 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
this
.
viewparams
){
if
(
this
.
viewparams
){
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
}
}
// 强制补充srfwfmemo
if
(
this
.
srfwfmemo
){
Object
.
assign
(
arg
,{
srfwfmemo
:
this
.
srfwfmemo
});
}
const
result
:
Promise
<
any
>
=
this
.
service
.
wfsubmit
(
_this
.
WFSubmitAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
localdata
);
const
result
:
Promise
<
any
>
=
this
.
service
.
wfsubmit
(
_this
.
WFSubmitAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
localdata
);
result
.
then
((
response
:
any
)
=>
{
result
.
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
if
(
!
response
||
response
.
status
!==
200
)
{
...
...
app_web/src/widgets/wfgroup/main-grid/main-grid-base.vue
浏览文件 @
dcaf9043
此差异已折叠。
点击以展开。
app_web/src/widgets/wfgroup/main-grid/main-grid.less
浏览文件 @
dcaf9043
...
@@ -25,6 +25,10 @@
...
@@ -25,6 +25,10 @@
overflow: hidden;
overflow: hidden;
word-break: break-all;
word-break: break-all;
}
}
.el-table-column--selection .cell {
padding-left: 0px;
padding-right: 0px;
}
.app-column-link, .app-format-data{
.app-column-link, .app-format-data{
display: inline;
display: inline;
}
}
...
...
app_web/src/widgets/wfmember/main-form/main-form-base.vue
浏览文件 @
dcaf9043
<
template
>
<
template
>
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'
form
'
style=
""
>
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'
wfmember_main
'
style=
""
>
<input
style=
"display:none;"
/>
<input
style=
"display:none;"
/>
<row
>
<row
>
...
@@ -169,6 +169,12 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -169,6 +169,12 @@ export default class MainBase extends Vue implements ControlInterface {
}
}
/**
* 工作流审批意见控件绑定值
*
* @memberof Main
*/
public
srfwfmemo
:
string
=
""
;
/**
/**
* 获取多项数据
* 获取多项数据
...
@@ -984,7 +990,7 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -984,7 +990,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
*/
public
print
(){
public
print
(){
let
_this
:
any
=
this
;
let
_this
:
any
=
this
;
_this
.
$print
({
id
:
'
form
'
,
popTitle
:
'主编辑表单'
});
_this
.
$print
({
id
:
'
wfmember_main
'
,
popTitle
:
'主编辑表单'
});
}
}
/**
/**
...
@@ -1357,6 +1363,10 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -1357,6 +1363,10 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
this
.
viewparams
){
if
(
this
.
viewparams
){
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
}
}
// 强制补充srfwfmemo
if
(
this
.
srfwfmemo
){
Object
.
assign
(
arg
,{
srfwfmemo
:
this
.
srfwfmemo
});
}
const
result
:
Promise
<
any
>
=
this
.
service
.
wfsubmit
(
_this
.
WFSubmitAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
localdata
);
const
result
:
Promise
<
any
>
=
this
.
service
.
wfsubmit
(
_this
.
WFSubmitAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
localdata
);
result
.
then
((
response
:
any
)
=>
{
result
.
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
if
(
!
response
||
response
.
status
!==
200
)
{
...
...
app_web/src/widgets/wfmember/main-grid/main-grid-base.vue
浏览文件 @
dcaf9043
此差异已折叠。
点击以展开。
app_web/src/widgets/wfmember/main-grid/main-grid.less
浏览文件 @
dcaf9043
...
@@ -25,6 +25,10 @@
...
@@ -25,6 +25,10 @@
overflow: hidden;
overflow: hidden;
word-break: break-all;
word-break: break-all;
}
}
.el-table-column--selection .cell {
padding-left: 0px;
padding-right: 0px;
}
.app-column-link, .app-format-data{
.app-column-link, .app-format-data{
display: inline;
display: inline;
}
}
...
...
app_web/src/widgets/wfprocess-definition/main-form/main-form-base.vue
浏览文件 @
dcaf9043
<
template
>
<
template
>
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'
form
'
style=
""
>
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'
wfprocessdefinition_main
'
style=
""
>
<input
style=
"display:none;"
/>
<input
style=
"display:none;"
/>
<row
>
<row
>
...
@@ -186,6 +186,12 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -186,6 +186,12 @@ export default class MainBase extends Vue implements ControlInterface {
}
}
/**
* 工作流审批意见控件绑定值
*
* @memberof Main
*/
public
srfwfmemo
:
string
=
""
;
/**
/**
* 获取多项数据
* 获取多项数据
...
@@ -1089,7 +1095,7 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -1089,7 +1095,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
*/
public
print
(){
public
print
(){
let
_this
:
any
=
this
;
let
_this
:
any
=
this
;
_this
.
$print
({
id
:
'
form
'
,
popTitle
:
'主编辑表单'
});
_this
.
$print
({
id
:
'
wfprocessdefinition_main
'
,
popTitle
:
'主编辑表单'
});
}
}
/**
/**
...
@@ -1462,6 +1468,10 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -1462,6 +1468,10 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
this
.
viewparams
){
if
(
this
.
viewparams
){
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
}
}
// 强制补充srfwfmemo
if
(
this
.
srfwfmemo
){
Object
.
assign
(
arg
,{
srfwfmemo
:
this
.
srfwfmemo
});
}
const
result
:
Promise
<
any
>
=
this
.
service
.
wfsubmit
(
_this
.
WFSubmitAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
localdata
);
const
result
:
Promise
<
any
>
=
this
.
service
.
wfsubmit
(
_this
.
WFSubmitAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
localdata
);
result
.
then
((
response
:
any
)
=>
{
result
.
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
if
(
!
response
||
response
.
status
!==
200
)
{
...
...
app_web/src/widgets/wfprocess-definition/main-grid/main-grid-base.vue
浏览文件 @
dcaf9043
此差异已折叠。
点击以展开。
app_web/src/widgets/wfprocess-definition/main-grid/main-grid.less
浏览文件 @
dcaf9043
...
@@ -25,6 +25,10 @@
...
@@ -25,6 +25,10 @@
overflow: hidden;
overflow: hidden;
word-break: break-all;
word-break: break-all;
}
}
.el-table-column--selection .cell {
padding-left: 0px;
padding-right: 0px;
}
.app-column-link, .app-format-data{
.app-column-link, .app-format-data{
display: inline;
display: inline;
}
}
...
...
app_web/src/widgets/wfremodel/main-form/main-form-base.vue
浏览文件 @
dcaf9043
<
template
>
<
template
>
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'
form
'
style=
""
>
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'
wfremodel_main
'
style=
""
>
<input
style=
"display:none;"
/>
<input
style=
"display:none;"
/>
<row
>
<row
>
...
@@ -150,6 +150,12 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -150,6 +150,12 @@ export default class MainBase extends Vue implements ControlInterface {
}
}
/**
* 工作流审批意见控件绑定值
*
* @memberof Main
*/
public
srfwfmemo
:
string
=
""
;
/**
/**
* 获取多项数据
* 获取多项数据
...
@@ -921,7 +927,7 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -921,7 +927,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
*/
public
print
(){
public
print
(){
let
_this
:
any
=
this
;
let
_this
:
any
=
this
;
_this
.
$print
({
id
:
'
form
'
,
popTitle
:
'主编辑表单'
});
_this
.
$print
({
id
:
'
wfremodel_main
'
,
popTitle
:
'主编辑表单'
});
}
}
/**
/**
...
@@ -1294,6 +1300,10 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -1294,6 +1300,10 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
this
.
viewparams
){
if
(
this
.
viewparams
){
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
}
}
// 强制补充srfwfmemo
if
(
this
.
srfwfmemo
){
Object
.
assign
(
arg
,{
srfwfmemo
:
this
.
srfwfmemo
});
}
const
result
:
Promise
<
any
>
=
this
.
service
.
wfsubmit
(
_this
.
WFSubmitAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
localdata
);
const
result
:
Promise
<
any
>
=
this
.
service
.
wfsubmit
(
_this
.
WFSubmitAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
localdata
);
result
.
then
((
response
:
any
)
=>
{
result
.
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
if
(
!
response
||
response
.
status
!==
200
)
{
...
...
app_web/src/widgets/wfuser/main-form/main-form-base.vue
浏览文件 @
dcaf9043
<
template
>
<
template
>
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'
form
'
style=
""
>
<i-form
:model=
"this.data"
class=
'app-form'
ref=
'form'
id=
'
wfuser_main
'
style=
""
>
<input
style=
"display:none;"
/>
<input
style=
"display:none;"
/>
<row
>
<row
>
...
@@ -156,6 +156,12 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -156,6 +156,12 @@ export default class MainBase extends Vue implements ControlInterface {
}
}
/**
* 工作流审批意见控件绑定值
*
* @memberof Main
*/
public
srfwfmemo
:
string
=
""
;
/**
/**
* 获取多项数据
* 获取多项数据
...
@@ -949,7 +955,7 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -949,7 +955,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
*/
public
print
(){
public
print
(){
let
_this
:
any
=
this
;
let
_this
:
any
=
this
;
_this
.
$print
({
id
:
'
form
'
,
popTitle
:
'主编辑表单'
});
_this
.
$print
({
id
:
'
wfuser_main
'
,
popTitle
:
'主编辑表单'
});
}
}
/**
/**
...
@@ -1322,6 +1328,10 @@ export default class MainBase extends Vue implements ControlInterface {
...
@@ -1322,6 +1328,10 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
this
.
viewparams
){
if
(
this
.
viewparams
){
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
Object
.
assign
(
arg
,{
viewparams
:
this
.
viewparams
});
}
}
// 强制补充srfwfmemo
if
(
this
.
srfwfmemo
){
Object
.
assign
(
arg
,{
srfwfmemo
:
this
.
srfwfmemo
});
}
const
result
:
Promise
<
any
>
=
this
.
service
.
wfsubmit
(
_this
.
WFSubmitAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
localdata
);
const
result
:
Promise
<
any
>
=
this
.
service
.
wfsubmit
(
_this
.
WFSubmitAction
,
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
)),
arg
,
this
.
showBusyIndicator
,
localdata
);
result
.
then
((
response
:
any
)
=>
{
result
.
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
if
(
!
response
||
response
.
status
!==
200
)
{
...
...
app_web/src/widgets/wfuser/main-grid/main-grid-base.vue
浏览文件 @
dcaf9043
此差异已折叠。
点击以展开。
app_web/src/widgets/wfuser/main-grid/main-grid.less
浏览文件 @
dcaf9043
...
@@ -25,6 +25,10 @@
...
@@ -25,6 +25,10 @@
overflow: hidden;
overflow: hidden;
word-break: break-all;
word-break: break-all;
}
}
.el-table-column--selection .cell {
padding-left: 0px;
padding-right: 0px;
}
.app-column-link, .app-format-data{
.app-column-link, .app-format-data{
display: inline;
display: inline;
}
}
...
...
app_web/yarn.lock
浏览文件 @
dcaf9043
...
@@ -2089,6 +2089,11 @@ async-validator@^1.10.0:
...
@@ -2089,6 +2089,11 @@ async-validator@^1.10.0:
resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.12.2.tgz#beae671e7174d2938b7b4b69d2fb7e722b7fd72c"
resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.12.2.tgz#beae671e7174d2938b7b4b69d2fb7e722b7fd72c"
integrity sha512-57EETfCPFiB7M4QscvQzWSGNsmtkjjzZv318SK1CBlstk+hycV72ocjriMOOM48HjvmoAoJGpJNjC7Z76RlnZA==
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:
async-validator@~1.8.1:
version "1.8.5"
version "1.8.5"
resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0"
resolved "https://registry.yarnpkg.com/async-validator/-/async-validator-1.8.5.tgz#dc3e08ec1fd0dddb67e60842f02c0cd1cec6d7f0"
...
@@ -2157,6 +2162,13 @@ axios@^0.19.1:
...
@@ -2157,6 +2162,13 @@ axios@^0.19.1:
dependencies:
dependencies:
follow-redirects "1.5.10"
follow-redirects "1.5.10"
axios@^0.19.2:
version "0.19.2"
resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27"
integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==
dependencies:
follow-redirects "1.5.10"
babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
version "6.26.0"
version "6.26.0"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
...
@@ -3258,6 +3270,11 @@ core-js@^3.4.4:
...
@@ -3258,6 +3270,11 @@ core-js@^3.4.4:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647"
integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==
integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==
core-js@^3.6.4:
version "3.6.5"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a"
integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==
core-util-is@1.0.2, core-util-is@~1.0.0:
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
...
@@ -4022,6 +4039,18 @@ element-ui@^2.13.0:
...
@@ -4022,6 +4039,18 @@ element-ui@^2.13.0:
resize-observer-polyfill "^1.5.0"
resize-observer-polyfill "^1.5.0"
throttle-debounce "^1.0.1"
throttle-debounce "^1.0.1"
element-ui@^2.13.2:
version "2.13.2"
resolved "https://registry.yarnpkg.com/element-ui/-/element-ui-2.13.2.tgz#582bf47aaaaaafe23ea1958fae217a687ad06447"
integrity sha512-r761DRPssMPKDiJZWFlG+4e4vr0cRG/atKr3Eqr8Xi0tQMNbtmYU1QXvFnKiFPFFGkgJ6zS6ASkG+sellcoHlQ==
dependencies:
async-validator "~1.8.1"
babel-helper-vue-jsx-merge-props "^2.0.0"
deepmerge "^1.2.0"
normalize-wheel "^1.0.1"
resize-observer-polyfill "^1.5.0"
throttle-debounce "^1.0.1"
elliptic@^6.0.0:
elliptic@^6.0.0:
version "6.5.2"
version "6.5.2"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762"
...
@@ -5209,10 +5238,10 @@ human-signals@^1.1.1:
...
@@ -5209,10 +5238,10 @@ human-signals@^1.1.1:
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3"
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
ibiz-gantt-elastic@^1.0.1
2
:
ibiz-gantt-elastic@^1.0.1
5
:
version "1.0.1
2
"
version "1.0.1
5
"
resolved "https://registry.yarnpkg.com/ibiz-gantt-elastic/-/ibiz-gantt-elastic-1.0.1
2.tgz#6865ef41e94b8b31f00f4cd1f0f60f132f7398d3
"
resolved "https://registry.yarnpkg.com/ibiz-gantt-elastic/-/ibiz-gantt-elastic-1.0.1
5.tgz#e57736254aaf5baea28225bce2d29d8bd8adcc2d
"
integrity sha512-
UHmnTG5q13xUuCKXSf73ZpwN/iOM9M73jFQ+C9wJWAsZcrDVc/36bPaSalMcfRWpfWREtU9wMnONXtFGVvS6pw
==
integrity sha512-
V3uLoN3BN32BagpV1kLm4nFSs4neJ/Cnykd7OIyLv11rjqTWFAENHBpZekioPFF4k2iCyAdRr5smzZbGJdSQxg
==
dependencies:
dependencies:
dayjs "^1.8.16"
dayjs "^1.8.16"
resize-observer-polyfill "^1.5.1"
resize-observer-polyfill "^1.5.1"
...
@@ -5220,6 +5249,17 @@ ibiz-gantt-elastic@^1.0.12:
...
@@ -5220,6 +5249,17 @@ ibiz-gantt-elastic@^1.0.12:
vue-slider-component "^3.0.40"
vue-slider-component "^3.0.40"
vue-switches "^2.0.1"
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 sha512-CotV3xIB04+QUUeMlfsVj5BseVPQ+IHyKdwU+MXGh+2e91Nt7N/z/LElakhAiGkSpaaKoMdlKCOdhD0qqJ3wNQ==
dependencies:
axios "^0.19.2"
core-js "^3.6.4"
element-ui "^2.13.2"
view-design "^4.1.0"
vue "^2.6.11"
iconv-lite@0.4.24:
iconv-lite@0.4.24:
version "0.4.24"
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
...
@@ -9068,6 +9108,11 @@ sort-keys@^1.0.0:
...
@@ -9068,6 +9108,11 @@ sort-keys@^1.0.0:
dependencies:
dependencies:
is-plain-obj "^1.0.0"
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:
source-list-map@^2.0.0:
version "2.0.1"
version "2.0.1"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
...
@@ -10185,11 +10230,18 @@ vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0:
...
@@ -10185,11 +10230,18 @@ vue-template-es2015-compiler@^1.6.0, vue-template-es2015-compiler@^1.9.0:
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
vue@^2.2.6, vue@^2.6.10:
vue@^2.2.6, vue@^2.6.10
, vue@^2.6.11
:
version "2.6.11"
version "2.6.11"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5"
resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5"
integrity sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==
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:
vuex@^3.1.2:
version "3.1.2"
version "3.1.2"
resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.2.tgz#a2863f4005aa73f2587e55c3fadf3f01f69c7d4d"
resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.1.2.tgz#a2863f4005aa73f2587e55c3fadf3f01f69c7d4d"
...
...
config.xml
浏览文件 @
dcaf9043
...
@@ -37,11 +37,11 @@
...
@@ -37,11 +37,11 @@
git clone -b master $para2 ibzwf/
git clone -b master $para2 ibzwf/
export NODE_OPTIONS=--max-old-space-size=4096
export NODE_OPTIONS=--max-old-space-size=4096
cd ibzwf/
cd ibzwf/
mvn clean package -P
api
mvn clean package -P
web
cd ibzwf-
provider/ibzwf-provider-api
cd ibzwf-
app/ibzwf-app-web
mvn -P
api
docker:build
mvn -P
web
docker:build
mvn -P
api
docker:push
mvn -P
web
docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzwf-
provider-api.yaml ibzlab-rt --with-registry-auth
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzwf-
app-web.yaml ibzlab-rt --with-registry-auth
</command>
</command>
</hudson.tasks.Shell>
</hudson.tasks.Shell>
</builders>
</builders>
...
...
ibzwf-app/ibzwf-app-web/src/main/docker/Dockerfile
浏览文件 @
dcaf9043
...
@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \
...
@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \
sleep ${IBZ_SLEEP} && \
sleep ${IBZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzwf-app-web.jar
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzwf-app-web.jar
EXPOSE
8080
EXPOSE
30003
ADD
ibzwf-app-web.jar /ibzwf-app-web.jar
ADD
ibzwf-app-web.jar /ibzwf-app-web.jar
ibzwf-app/ibzwf-app-web/src/main/docker/ibzwf-app-web.yaml
浏览文件 @
dcaf9043
...
@@ -3,9 +3,21 @@ services:
...
@@ -3,9 +3,21 @@ services:
ibzwf-app-web
:
ibzwf-app-web
:
image
:
registry.cn-shanghai.aliyuncs.com/ibizsys/ibzwf-app-web:latest
image
:
registry.cn-shanghai.aliyuncs.com/ibizsys/ibzwf-app-web:latest
ports
:
ports
:
-
"
8080:8080
"
-
"
30003:30003
"
networks
:
networks
:
-
agent_network
-
agent_network
environment
:
-
SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.180.237
-
SERVER_PORT=30003
-
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
:
deploy
:
mode
:
replicated
mode
:
replicated
replicas
:
1
replicas
:
1
...
...
ibzwf-provider/ibzwf-provider-api/src/main/docker/Dockerfile
浏览文件 @
dcaf9043
...
@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \
...
@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \
sleep ${IBZ_SLEEP} && \
sleep ${IBZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzwf-provider-api.jar
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzwf-provider-api.jar
EXPOSE
40003
EXPOSE
8081
ADD
ibzwf-provider-api.jar /ibzwf-provider-api.jar
ADD
ibzwf-provider-api.jar /ibzwf-provider-api.jar
ibzwf-provider/ibzwf-provider-api/src/main/docker/ibzwf-provider-api.yaml
浏览文件 @
dcaf9043
...
@@ -3,21 +3,9 @@ services:
...
@@ -3,21 +3,9 @@ services:
ibzwf-provider-api
:
ibzwf-provider-api
:
image
:
registry.cn-shanghai.aliyuncs.com/ibizsys/ibzwf-provider-api:latest
image
:
registry.cn-shanghai.aliyuncs.com/ibizsys/ibzwf-provider-api:latest
ports
:
ports
:
-
"
40003:40003
"
-
"
8081:8081
"
networks
:
networks
:
-
agent_network
-
agent_network
environment
:
-
SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.180.237
-
SERVER_PORT=40003
-
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
:
deploy
:
mode
:
replicated
mode
:
replicated
replicas
:
1
replicas
:
1
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录