Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzwf
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzwf
提交
e2a6060d
提交
e2a6060d
编写于
10月 23, 2021
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ibiz4j 发布系统代码 [ibz-wf,统一工作流]
上级
efa7d266
变更
34
隐藏空白字符变更
内嵌
并排
正在显示
34 个修改的文件
包含
743 行增加
和
91 行删除
+743
-91
package.json
app_web/package.json
+1
-1
app-mpicker.vue
app_web/src/components/app-mpicker/app-mpicker.vue
+1
-1
app-span.vue
app_web/src/components/app-span/app-span.vue
+2
-2
tab-exp-view-engine.ts
app_web/src/engine/view/tab-exp-view-engine.ts
+1
-1
wfgroup-edit-view-base.vue
...ges/workflow/wfgroup-edit-view/wfgroup-edit-view-base.vue
+110
-13
wfmember-edit-view-base.vue
...s/workflow/wfmember-edit-view/wfmember-edit-view-base.vue
+110
-13
wfmember-grid-view-base.vue
...s/workflow/wfmember-grid-view/wfmember-grid-view-base.vue
+12
-0
wfprocess-definition-edit-view-base.vue
...inition-edit-view/wfprocess-definition-edit-view-base.vue
+110
-13
wfprocess-definition-grid-view-base.vue
...inition-grid-view/wfprocess-definition-grid-view-base.vue
+12
-0
wftask-edit-view-base.vue
...pages/workflow/wftask-edit-view/wftask-edit-view-base.vue
+110
-13
wftask-grid-view-base.vue
...pages/workflow/wftask-grid-view/wftask-grid-view-base.vue
+12
-0
wfuser-edit-view-base.vue
...pages/workflow/wfuser-edit-view/wfuser-edit-view-base.vue
+110
-13
wfuser-grid-view-base.vue
...pages/workflow/wfuser-grid-view/wfuser-grid-view-base.vue
+12
-0
entity-service.ts
app_web/src/service/entity-service.ts
+17
-0
default.less
app_web/src/styles/default.less
+5
-0
http.d.ts
app_web/src/utils/types/http.d.ts
+2
-2
view-tool.ts
app_web/src/utils/view-tool/view-tool.ts
+1
-1
main-grid-model.ts
app_web/src/widgets/wfgroup/main-grid/main-grid-model.ts
+16
-0
main-grid-model.ts
app_web/src/widgets/wfmember/main-grid/main-grid-model.ts
+16
-0
main-grid-model.ts
...widgets/wfprocess-definition/main-grid/main-grid-model.ts
+16
-0
main-grid-model.ts
app_web/src/widgets/wftask/main-grid/main-grid-model.ts
+16
-0
main-grid-model.ts
app_web/src/widgets/wfuser/main-grid/main-grid-model.ts
+16
-0
tsconfig.json
app_web/tsconfig.json
+1
-0
WFGroupServiceImpl.java
...bizlab/core/workflow/service/impl/WFGroupServiceImpl.java
+3
-1
WFHistoryServiceImpl.java
...zlab/core/workflow/service/impl/WFHistoryServiceImpl.java
+3
-0
WFMemberServiceImpl.java
...izlab/core/workflow/service/impl/WFMemberServiceImpl.java
+3
-1
WFProcessDefinitionServiceImpl.java
...workflow/service/impl/WFProcessDefinitionServiceImpl.java
+3
-1
WFProcessInstanceServiceImpl.java
...e/workflow/service/impl/WFProcessInstanceServiceImpl.java
+3
-0
WFProcessNodeServiceImpl.java
.../core/workflow/service/impl/WFProcessNodeServiceImpl.java
+3
-0
WFSystemServiceImpl.java
...izlab/core/workflow/service/impl/WFSystemServiceImpl.java
+3
-1
WFTaskServiceImpl.java
...ibizlab/core/workflow/service/impl/WFTaskServiceImpl.java
+3
-0
WFTaskWayServiceImpl.java
...zlab/core/workflow/service/impl/WFTaskWayServiceImpl.java
+3
-0
WFUserServiceImpl.java
...ibizlab/core/workflow/service/impl/WFUserServiceImpl.java
+3
-1
h2_table.xml
ibzwf-core/src/main/resources/liquibase/h2_table.xml
+4
-13
未找到文件。
app_web/package.json
浏览文件 @
e2a6060d
...
...
@@ -41,7 +41,7 @@
"vue-amap"
:
"^0.5.10"
,
"vue-class-component"
:
"^7.0.2"
,
"vue-grid-layout"
:
"^2.3.7"
,
"vue-i18n"
:
"^8.
15.3
"
,
"vue-i18n"
:
"^8.
23.0
"
,
"vue-property-decorator"
:
"^9.1.2"
,
"vue-router"
:
"^3.1.3"
,
"vuex"
:
"^3.1.2"
,
...
...
app_web/src/components/app-mpicker/app-mpicker.vue
浏览文件 @
e2a6060d
...
...
@@ -159,7 +159,7 @@ export default class AppMpicker extends Vue {
}
});
}
catch
(
error
)
{
if
(
error
.
name
===
'SyntaxError'
){
if
(
(
error
as
any
)
.
name
===
'SyntaxError'
){
let
srfkeys
:
any
=
newVal
.
split
(
','
);
let
srfmajortexts
:
any
=
null
;
if
(
this
.
valueitem
&&
this
.
activeData
[
this
.
valueitem
]){
...
...
app_web/src/components/app-span/app-span.vue
浏览文件 @
e2a6060d
...
...
@@ -229,9 +229,9 @@ export default class AppSpan extends Vue {
public
dateFormat
(){
if
(
this
.
valueFormat
){
if
(
this
.
valueFormat
.
indexOf
(
'%1$t'
)
!==
-
1
){
this
.
text
=
moment
(
this
.
data
).
format
(
"YYYY-MM-DD HH:mm:ss"
);
this
.
text
=
moment
(
this
.
value
).
format
(
"YYYY-MM-DD HH:mm:ss"
);
}
else
if
(
this
.
valueFormat
.
indexOf
(
'%1$s'
)
==
-
1
){
this
.
text
=
moment
(
this
.
data
).
format
(
this
.
valueFormat
);
this
.
text
=
moment
(
this
.
value
).
format
(
this
.
valueFormat
);
}
else
{
this
.
text
=
this
.
value
;
}
...
...
app_web/src/engine/view/tab-exp-view-engine.ts
浏览文件 @
e2a6060d
...
...
@@ -41,7 +41,7 @@ export default class TabExpViewEngine extends ViewEngine {
if
(
!
Object
.
is
(
_item
.
type
,
'TABEXPPANEL'
))
{
return
;
}
if
(
this
.
view
.
context
&&
this
.
view
.
context
[(
this
.
keyPSDEField
as
string
)]){
if
(
this
.
view
.
context
&&
!
this
.
view
.
context
[(
this
.
keyPSDEField
as
string
)]){
return
;
}
this
.
setViewState2
({
tag
:
_item
.
name
,
action
:
'load'
,
viewdata
:
this
.
view
.
context
});
...
...
app_web/src/pages/workflow/wfgroup-edit-view/wfgroup-edit-view-base.vue
浏览文件 @
e2a6060d
...
...
@@ -1303,25 +1303,122 @@ export default class WFGroupEditViewBase extends Vue {
* @memberof WFGroupEditViewBase
*/
public
SaveAndStart
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
const
that
:
any
=
this
;
if
(
!
xData
||
!
(
xData
.
wfstart
instanceof
Function
))
{
return
;
}
xData
.
wfstart
(
args
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
return
;
let
validateStatus
:
boolean
=
true
;
if
(
xData
.
formValidateStatus
&&
xData
.
formValidateStatus
instanceof
Function
)
{
validateStatus
=
xData
.
formValidateStatus
();
}
if
(
!
validateStatus
)
{
if
(
xData
.
errorMessages
&&
xData
.
errorMessages
.
length
>
0
)
{
let
descMessage
:
string
=
''
;
xData
.
errorMessages
.
forEach
((
message
:
any
)
=>
{
descMessage
=
descMessage
+
'<p>'
+
message
.
error
+
'<p>'
;
})
xData
.
$Notice
.
error
({
title
:
(
xData
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
descMessage
});
}
else
{
xData
.
$Notice
.
error
({
title
:
(
xData
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
xData
.
$t
(
'app.formpage.valuecheckex'
)
as
string
)
});
}
const
{
data
:
_data
}
=
response
;
if
(
window
.
parent
){
window
.
parent
.
postMessage
({
...
_data
},
'*'
);
return
;
}
const
startWorkFlow
:
Function
=
(
param
:
any
,
localdata
:
any
)
=>
{
xData
.
wfstart
(
args
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
return
;
}
const
{
data
:
_data
}
=
response
;
that
.
closeView
(
_data
);
});
}
const
openStartView
:
Function
=
async
(
item
:
any
,
localdata
:
any
)
=>
{
if
(
item
[
'wfversion'
])
{
const
targetView
:
any
=
that
.
viewRefData
?
that
.
viewRefData
[
`WFSTART@
${
item
[
'wfversion'
]}
`
]
:
null
;
if
(
targetView
)
{
const
tempContext
=
Util
.
deepCopy
(
that
.
context
);
const
tempViewParams
=
{
actionView
:
`WFSTART@
${
item
[
'wfversion'
]}
`
,
actionForm
:
item
[
'process-form'
]
};
const
container
:
Subject
<
any
>
=
that
.
$appmodal
.
openModal
(
targetView
,
tempContext
,
tempViewParams
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
const
tempSubmitData
:
any
=
Util
.
deepCopy
(
args
[
0
]);
if
(
result
.
datas
&&
result
.
datas
[
0
])
{
const
resultData
:
any
=
result
.
datas
[
0
];
if
(
Object
.
keys
(
resultData
).
length
>
0
)
{
let
tempData
:
any
=
{};
Object
.
keys
(
resultData
).
forEach
((
key
:
any
)
=>
{
if
(
resultData
[
key
]
||
(
resultData
[
key
]
===
0
)
||
(
resultData
[
key
]
===
false
))
{
tempData
[
key
]
=
resultData
[
key
];
}
})
Object
.
assign
(
tempSubmitData
,
tempData
);
}
}
startWorkFlow
([
tempSubmitData
],
localdata
);
})
}
else
{
startWorkFlow
(
args
,
localdata
);
}
}
else
{
startWorkFlow
(
args
,
localdata
);
}
if
(
_this
.
viewdata
)
{
_this
.
$emit
(
'viewdataschange'
,
[{
...
_data
}]);
_this
.
$emit
(
'close'
);
}
else
if
(
this
.
$tabPageExp
)
{
this
.
$tabPageExp
.
onClose
(
this
.
$route
.
fullPath
);
}
let
localData
:
any
;
const
localContext
=
Util
.
deepCopy
(
that
.
context
);
const
requestResult
:
Promise
<
any
>
=
that
.
appEntityService
.
getStandWorkflow
(
localContext
);
requestResult
.
then
((
response
:
any
)
=>
{
const
{
data
:
targetData
,
status
}
=
response
;
if
(
status
!==
200
||
targetData
.
length
===
0
)
{
return
;
}
});
if
(
targetData
&&
targetData
.
length
>
1
)
{
const
h
=
that
.
$createElement
;
targetData
.
forEach
((
element
:
any
)
=>
{
Object
.
assign
(
element
,
{
value
:
element
.
definitionkey
,
label
:
element
.
definitionname
});
})
that
.
$msgbox
({
title
:
'请选择流程版本'
,
message
:
h
(
'i-select'
,
{
key
:
Util
.
createUUID
(),
props
:
{
value
:
localData
,
placeholder
:
"请选择流程版本..."
,
transfer
:
true
,
transferClassName
:
"start-workflow-select-wraper"
},
on
:
{
'on-change'
:
(
$event
:
any
)
=>
{
localData
=
{
processDefinitionKey
:
$event
};
}
}
},
targetData
.
map
((
item
:
any
)
=>
{
return
h
(
'i-option'
,
{
key
:
item
.
value
,
props
:
{
value
:
item
.
value
,
label
:
item
.
label
}
})
})),
showCancelButton
:
true
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
}).
then
((
action
:
string
)
=>
{
if
(
Object
.
is
(
action
,
'confirm'
)
&&
localData
&&
Object
.
keys
(
localData
).
length
>
0
)
{
let
targetItem
:
any
=
targetData
.
find
((
item
:
any
)
=>
{
return
item
.
definitionkey
===
localData
.
processDefinitionKey
;
})
openStartView
(
targetItem
,
localData
);
}
})
}
else
{
localData
=
{
processDefinitionKey
:
targetData
[
0
][
'definitionkey'
]
}
targetData
[
0
][
'process-view'
]
=
"WFSTART@1"
;
openStartView
(
targetData
[
0
],
localData
);
}
})
}
/**
* 当前流程步骤
...
...
app_web/src/pages/workflow/wfmember-edit-view/wfmember-edit-view-base.vue
浏览文件 @
e2a6060d
...
...
@@ -1303,25 +1303,122 @@ export default class WFMemberEditViewBase extends Vue {
* @memberof WFMemberEditViewBase
*/
public
SaveAndStart
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
const
that
:
any
=
this
;
if
(
!
xData
||
!
(
xData
.
wfstart
instanceof
Function
))
{
return
;
}
xData
.
wfstart
(
args
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
return
;
let
validateStatus
:
boolean
=
true
;
if
(
xData
.
formValidateStatus
&&
xData
.
formValidateStatus
instanceof
Function
)
{
validateStatus
=
xData
.
formValidateStatus
();
}
if
(
!
validateStatus
)
{
if
(
xData
.
errorMessages
&&
xData
.
errorMessages
.
length
>
0
)
{
let
descMessage
:
string
=
''
;
xData
.
errorMessages
.
forEach
((
message
:
any
)
=>
{
descMessage
=
descMessage
+
'<p>'
+
message
.
error
+
'<p>'
;
})
xData
.
$Notice
.
error
({
title
:
(
xData
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
descMessage
});
}
else
{
xData
.
$Notice
.
error
({
title
:
(
xData
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
xData
.
$t
(
'app.formpage.valuecheckex'
)
as
string
)
});
}
const
{
data
:
_data
}
=
response
;
if
(
window
.
parent
){
window
.
parent
.
postMessage
({
...
_data
},
'*'
);
return
;
}
const
startWorkFlow
:
Function
=
(
param
:
any
,
localdata
:
any
)
=>
{
xData
.
wfstart
(
args
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
return
;
}
const
{
data
:
_data
}
=
response
;
that
.
closeView
(
_data
);
});
}
const
openStartView
:
Function
=
async
(
item
:
any
,
localdata
:
any
)
=>
{
if
(
item
[
'wfversion'
])
{
const
targetView
:
any
=
that
.
viewRefData
?
that
.
viewRefData
[
`WFSTART@
${
item
[
'wfversion'
]}
`
]
:
null
;
if
(
targetView
)
{
const
tempContext
=
Util
.
deepCopy
(
that
.
context
);
const
tempViewParams
=
{
actionView
:
`WFSTART@
${
item
[
'wfversion'
]}
`
,
actionForm
:
item
[
'process-form'
]
};
const
container
:
Subject
<
any
>
=
that
.
$appmodal
.
openModal
(
targetView
,
tempContext
,
tempViewParams
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
const
tempSubmitData
:
any
=
Util
.
deepCopy
(
args
[
0
]);
if
(
result
.
datas
&&
result
.
datas
[
0
])
{
const
resultData
:
any
=
result
.
datas
[
0
];
if
(
Object
.
keys
(
resultData
).
length
>
0
)
{
let
tempData
:
any
=
{};
Object
.
keys
(
resultData
).
forEach
((
key
:
any
)
=>
{
if
(
resultData
[
key
]
||
(
resultData
[
key
]
===
0
)
||
(
resultData
[
key
]
===
false
))
{
tempData
[
key
]
=
resultData
[
key
];
}
})
Object
.
assign
(
tempSubmitData
,
tempData
);
}
}
startWorkFlow
([
tempSubmitData
],
localdata
);
})
}
else
{
startWorkFlow
(
args
,
localdata
);
}
}
else
{
startWorkFlow
(
args
,
localdata
);
}
if
(
_this
.
viewdata
)
{
_this
.
$emit
(
'viewdataschange'
,
[{
...
_data
}]);
_this
.
$emit
(
'close'
);
}
else
if
(
this
.
$tabPageExp
)
{
this
.
$tabPageExp
.
onClose
(
this
.
$route
.
fullPath
);
}
let
localData
:
any
;
const
localContext
=
Util
.
deepCopy
(
that
.
context
);
const
requestResult
:
Promise
<
any
>
=
that
.
appEntityService
.
getStandWorkflow
(
localContext
);
requestResult
.
then
((
response
:
any
)
=>
{
const
{
data
:
targetData
,
status
}
=
response
;
if
(
status
!==
200
||
targetData
.
length
===
0
)
{
return
;
}
});
if
(
targetData
&&
targetData
.
length
>
1
)
{
const
h
=
that
.
$createElement
;
targetData
.
forEach
((
element
:
any
)
=>
{
Object
.
assign
(
element
,
{
value
:
element
.
definitionkey
,
label
:
element
.
definitionname
});
})
that
.
$msgbox
({
title
:
'请选择流程版本'
,
message
:
h
(
'i-select'
,
{
key
:
Util
.
createUUID
(),
props
:
{
value
:
localData
,
placeholder
:
"请选择流程版本..."
,
transfer
:
true
,
transferClassName
:
"start-workflow-select-wraper"
},
on
:
{
'on-change'
:
(
$event
:
any
)
=>
{
localData
=
{
processDefinitionKey
:
$event
};
}
}
},
targetData
.
map
((
item
:
any
)
=>
{
return
h
(
'i-option'
,
{
key
:
item
.
value
,
props
:
{
value
:
item
.
value
,
label
:
item
.
label
}
})
})),
showCancelButton
:
true
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
}).
then
((
action
:
string
)
=>
{
if
(
Object
.
is
(
action
,
'confirm'
)
&&
localData
&&
Object
.
keys
(
localData
).
length
>
0
)
{
let
targetItem
:
any
=
targetData
.
find
((
item
:
any
)
=>
{
return
item
.
definitionkey
===
localData
.
processDefinitionKey
;
})
openStartView
(
targetItem
,
localData
);
}
})
}
else
{
localData
=
{
processDefinitionKey
:
targetData
[
0
][
'definitionkey'
]
}
targetData
[
0
][
'process-view'
]
=
"WFSTART@1"
;
openStartView
(
targetData
[
0
],
localData
);
}
})
}
/**
* 当前流程步骤
...
...
app_web/src/pages/workflow/wfmember-grid-view/wfmember-grid-view-base.vue
浏览文件 @
e2a6060d
...
...
@@ -1346,6 +1346,18 @@ export default class WFMemberGridViewBase extends Vue {
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
];
const
_this
:
any
=
this
;
if
(
fullargs
&&
fullargs
.
length
>
0
)
{
const
_args
=
fullargs
[
0
];
if
(
_args
[
'srfprocessdefinitionkey'
]
&&
_args
[
'srftaskdefinitionkey'
])
{
Object
.
assign
(
data
,
{
processDefinitionKey
:
_args
[
'srfprocessdefinitionkey'
],
taskDefinitionKey
:
_args
[
'srftaskdefinitionkey'
]
});
if
(
_args
[
'srftaskid'
])
{
Object
.
assign
(
data
,
{
'srftaskid'
:
_args
[
'srftaskid'
]
});
}
}
}
if
(
fullargs
&&
fullargs
.
copymode
){
Object
.
assign
(
data
,{
copymode
:
true
});
}
...
...
app_web/src/pages/workflow/wfprocess-definition-edit-view/wfprocess-definition-edit-view-base.vue
浏览文件 @
e2a6060d
...
...
@@ -1303,25 +1303,122 @@ export default class WFProcessDefinitionEditViewBase extends Vue {
* @memberof WFProcessDefinitionEditViewBase
*/
public
SaveAndStart
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
const
that
:
any
=
this
;
if
(
!
xData
||
!
(
xData
.
wfstart
instanceof
Function
))
{
return
;
}
xData
.
wfstart
(
args
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
return
;
let
validateStatus
:
boolean
=
true
;
if
(
xData
.
formValidateStatus
&&
xData
.
formValidateStatus
instanceof
Function
)
{
validateStatus
=
xData
.
formValidateStatus
();
}
if
(
!
validateStatus
)
{
if
(
xData
.
errorMessages
&&
xData
.
errorMessages
.
length
>
0
)
{
let
descMessage
:
string
=
''
;
xData
.
errorMessages
.
forEach
((
message
:
any
)
=>
{
descMessage
=
descMessage
+
'<p>'
+
message
.
error
+
'<p>'
;
})
xData
.
$Notice
.
error
({
title
:
(
xData
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
descMessage
});
}
else
{
xData
.
$Notice
.
error
({
title
:
(
xData
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
xData
.
$t
(
'app.formpage.valuecheckex'
)
as
string
)
});
}
const
{
data
:
_data
}
=
response
;
if
(
window
.
parent
){
window
.
parent
.
postMessage
({
...
_data
},
'*'
);
return
;
}
const
startWorkFlow
:
Function
=
(
param
:
any
,
localdata
:
any
)
=>
{
xData
.
wfstart
(
args
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
return
;
}
const
{
data
:
_data
}
=
response
;
that
.
closeView
(
_data
);
});
}
const
openStartView
:
Function
=
async
(
item
:
any
,
localdata
:
any
)
=>
{
if
(
item
[
'wfversion'
])
{
const
targetView
:
any
=
that
.
viewRefData
?
that
.
viewRefData
[
`WFSTART@
${
item
[
'wfversion'
]}
`
]
:
null
;
if
(
targetView
)
{
const
tempContext
=
Util
.
deepCopy
(
that
.
context
);
const
tempViewParams
=
{
actionView
:
`WFSTART@
${
item
[
'wfversion'
]}
`
,
actionForm
:
item
[
'process-form'
]
};
const
container
:
Subject
<
any
>
=
that
.
$appmodal
.
openModal
(
targetView
,
tempContext
,
tempViewParams
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
const
tempSubmitData
:
any
=
Util
.
deepCopy
(
args
[
0
]);
if
(
result
.
datas
&&
result
.
datas
[
0
])
{
const
resultData
:
any
=
result
.
datas
[
0
];
if
(
Object
.
keys
(
resultData
).
length
>
0
)
{
let
tempData
:
any
=
{};
Object
.
keys
(
resultData
).
forEach
((
key
:
any
)
=>
{
if
(
resultData
[
key
]
||
(
resultData
[
key
]
===
0
)
||
(
resultData
[
key
]
===
false
))
{
tempData
[
key
]
=
resultData
[
key
];
}
})
Object
.
assign
(
tempSubmitData
,
tempData
);
}
}
startWorkFlow
([
tempSubmitData
],
localdata
);
})
}
else
{
startWorkFlow
(
args
,
localdata
);
}
}
else
{
startWorkFlow
(
args
,
localdata
);
}
if
(
_this
.
viewdata
)
{
_this
.
$emit
(
'viewdataschange'
,
[{
...
_data
}]);
_this
.
$emit
(
'close'
);
}
else
if
(
this
.
$tabPageExp
)
{
this
.
$tabPageExp
.
onClose
(
this
.
$route
.
fullPath
);
}
let
localData
:
any
;
const
localContext
=
Util
.
deepCopy
(
that
.
context
);
const
requestResult
:
Promise
<
any
>
=
that
.
appEntityService
.
getStandWorkflow
(
localContext
);
requestResult
.
then
((
response
:
any
)
=>
{
const
{
data
:
targetData
,
status
}
=
response
;
if
(
status
!==
200
||
targetData
.
length
===
0
)
{
return
;
}
});
if
(
targetData
&&
targetData
.
length
>
1
)
{
const
h
=
that
.
$createElement
;
targetData
.
forEach
((
element
:
any
)
=>
{
Object
.
assign
(
element
,
{
value
:
element
.
definitionkey
,
label
:
element
.
definitionname
});
})
that
.
$msgbox
({
title
:
'请选择流程版本'
,
message
:
h
(
'i-select'
,
{
key
:
Util
.
createUUID
(),
props
:
{
value
:
localData
,
placeholder
:
"请选择流程版本..."
,
transfer
:
true
,
transferClassName
:
"start-workflow-select-wraper"
},
on
:
{
'on-change'
:
(
$event
:
any
)
=>
{
localData
=
{
processDefinitionKey
:
$event
};
}
}
},
targetData
.
map
((
item
:
any
)
=>
{
return
h
(
'i-option'
,
{
key
:
item
.
value
,
props
:
{
value
:
item
.
value
,
label
:
item
.
label
}
})
})),
showCancelButton
:
true
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
}).
then
((
action
:
string
)
=>
{
if
(
Object
.
is
(
action
,
'confirm'
)
&&
localData
&&
Object
.
keys
(
localData
).
length
>
0
)
{
let
targetItem
:
any
=
targetData
.
find
((
item
:
any
)
=>
{
return
item
.
definitionkey
===
localData
.
processDefinitionKey
;
})
openStartView
(
targetItem
,
localData
);
}
})
}
else
{
localData
=
{
processDefinitionKey
:
targetData
[
0
][
'definitionkey'
]
}
targetData
[
0
][
'process-view'
]
=
"WFSTART@1"
;
openStartView
(
targetData
[
0
],
localData
);
}
})
}
/**
* 当前流程步骤
...
...
app_web/src/pages/workflow/wfprocess-definition-grid-view/wfprocess-definition-grid-view-base.vue
浏览文件 @
e2a6060d
...
...
@@ -1316,6 +1316,18 @@ export default class WFProcessDefinitionGridViewBase extends Vue {
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
];
const
_this
:
any
=
this
;
if
(
fullargs
&&
fullargs
.
length
>
0
)
{
const
_args
=
fullargs
[
0
];
if
(
_args
[
'srfprocessdefinitionkey'
]
&&
_args
[
'srftaskdefinitionkey'
])
{
Object
.
assign
(
data
,
{
processDefinitionKey
:
_args
[
'srfprocessdefinitionkey'
],
taskDefinitionKey
:
_args
[
'srftaskdefinitionkey'
]
});
if
(
_args
[
'srftaskid'
])
{
Object
.
assign
(
data
,
{
'srftaskid'
:
_args
[
'srftaskid'
]
});
}
}
}
if
(
fullargs
&&
fullargs
.
copymode
){
Object
.
assign
(
data
,{
copymode
:
true
});
}
...
...
app_web/src/pages/workflow/wftask-edit-view/wftask-edit-view-base.vue
浏览文件 @
e2a6060d
...
...
@@ -1303,25 +1303,122 @@ export default class WFTaskEditViewBase extends Vue {
* @memberof WFTaskEditViewBase
*/
public
SaveAndStart
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
const
that
:
any
=
this
;
if
(
!
xData
||
!
(
xData
.
wfstart
instanceof
Function
))
{
return
;
}
xData
.
wfstart
(
args
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
return
;
let
validateStatus
:
boolean
=
true
;
if
(
xData
.
formValidateStatus
&&
xData
.
formValidateStatus
instanceof
Function
)
{
validateStatus
=
xData
.
formValidateStatus
();
}
if
(
!
validateStatus
)
{
if
(
xData
.
errorMessages
&&
xData
.
errorMessages
.
length
>
0
)
{
let
descMessage
:
string
=
''
;
xData
.
errorMessages
.
forEach
((
message
:
any
)
=>
{
descMessage
=
descMessage
+
'<p>'
+
message
.
error
+
'<p>'
;
})
xData
.
$Notice
.
error
({
title
:
(
xData
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
descMessage
});
}
else
{
xData
.
$Notice
.
error
({
title
:
(
xData
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
xData
.
$t
(
'app.formpage.valuecheckex'
)
as
string
)
});
}
const
{
data
:
_data
}
=
response
;
if
(
window
.
parent
){
window
.
parent
.
postMessage
({
...
_data
},
'*'
);
return
;
}
const
startWorkFlow
:
Function
=
(
param
:
any
,
localdata
:
any
)
=>
{
xData
.
wfstart
(
args
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
return
;
}
const
{
data
:
_data
}
=
response
;
that
.
closeView
(
_data
);
});
}
const
openStartView
:
Function
=
async
(
item
:
any
,
localdata
:
any
)
=>
{
if
(
item
[
'wfversion'
])
{
const
targetView
:
any
=
that
.
viewRefData
?
that
.
viewRefData
[
`WFSTART@
${
item
[
'wfversion'
]}
`
]
:
null
;
if
(
targetView
)
{
const
tempContext
=
Util
.
deepCopy
(
that
.
context
);
const
tempViewParams
=
{
actionView
:
`WFSTART@
${
item
[
'wfversion'
]}
`
,
actionForm
:
item
[
'process-form'
]
};
const
container
:
Subject
<
any
>
=
that
.
$appmodal
.
openModal
(
targetView
,
tempContext
,
tempViewParams
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
const
tempSubmitData
:
any
=
Util
.
deepCopy
(
args
[
0
]);
if
(
result
.
datas
&&
result
.
datas
[
0
])
{
const
resultData
:
any
=
result
.
datas
[
0
];
if
(
Object
.
keys
(
resultData
).
length
>
0
)
{
let
tempData
:
any
=
{};
Object
.
keys
(
resultData
).
forEach
((
key
:
any
)
=>
{
if
(
resultData
[
key
]
||
(
resultData
[
key
]
===
0
)
||
(
resultData
[
key
]
===
false
))
{
tempData
[
key
]
=
resultData
[
key
];
}
})
Object
.
assign
(
tempSubmitData
,
tempData
);
}
}
startWorkFlow
([
tempSubmitData
],
localdata
);
})
}
else
{
startWorkFlow
(
args
,
localdata
);
}
}
else
{
startWorkFlow
(
args
,
localdata
);
}
if
(
_this
.
viewdata
)
{
_this
.
$emit
(
'viewdataschange'
,
[{
...
_data
}]);
_this
.
$emit
(
'close'
);
}
else
if
(
this
.
$tabPageExp
)
{
this
.
$tabPageExp
.
onClose
(
this
.
$route
.
fullPath
);
}
let
localData
:
any
;
const
localContext
=
Util
.
deepCopy
(
that
.
context
);
const
requestResult
:
Promise
<
any
>
=
that
.
appEntityService
.
getStandWorkflow
(
localContext
);
requestResult
.
then
((
response
:
any
)
=>
{
const
{
data
:
targetData
,
status
}
=
response
;
if
(
status
!==
200
||
targetData
.
length
===
0
)
{
return
;
}
});
if
(
targetData
&&
targetData
.
length
>
1
)
{
const
h
=
that
.
$createElement
;
targetData
.
forEach
((
element
:
any
)
=>
{
Object
.
assign
(
element
,
{
value
:
element
.
definitionkey
,
label
:
element
.
definitionname
});
})
that
.
$msgbox
({
title
:
'请选择流程版本'
,
message
:
h
(
'i-select'
,
{
key
:
Util
.
createUUID
(),
props
:
{
value
:
localData
,
placeholder
:
"请选择流程版本..."
,
transfer
:
true
,
transferClassName
:
"start-workflow-select-wraper"
},
on
:
{
'on-change'
:
(
$event
:
any
)
=>
{
localData
=
{
processDefinitionKey
:
$event
};
}
}
},
targetData
.
map
((
item
:
any
)
=>
{
return
h
(
'i-option'
,
{
key
:
item
.
value
,
props
:
{
value
:
item
.
value
,
label
:
item
.
label
}
})
})),
showCancelButton
:
true
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
}).
then
((
action
:
string
)
=>
{
if
(
Object
.
is
(
action
,
'confirm'
)
&&
localData
&&
Object
.
keys
(
localData
).
length
>
0
)
{
let
targetItem
:
any
=
targetData
.
find
((
item
:
any
)
=>
{
return
item
.
definitionkey
===
localData
.
processDefinitionKey
;
})
openStartView
(
targetItem
,
localData
);
}
})
}
else
{
localData
=
{
processDefinitionKey
:
targetData
[
0
][
'definitionkey'
]
}
targetData
[
0
][
'process-view'
]
=
"WFSTART@1"
;
openStartView
(
targetData
[
0
],
localData
);
}
})
}
/**
* 当前流程步骤
...
...
app_web/src/pages/workflow/wftask-grid-view/wftask-grid-view-base.vue
浏览文件 @
e2a6060d
...
...
@@ -1245,6 +1245,18 @@ export default class WFTaskGridViewBase extends Vue {
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
];
const
_this
:
any
=
this
;
if
(
fullargs
&&
fullargs
.
length
>
0
)
{
const
_args
=
fullargs
[
0
];
if
(
_args
[
'srfprocessdefinitionkey'
]
&&
_args
[
'srftaskdefinitionkey'
])
{
Object
.
assign
(
data
,
{
processDefinitionKey
:
_args
[
'srfprocessdefinitionkey'
],
taskDefinitionKey
:
_args
[
'srftaskdefinitionkey'
]
});
if
(
_args
[
'srftaskid'
])
{
Object
.
assign
(
data
,
{
'srftaskid'
:
_args
[
'srftaskid'
]
});
}
}
}
if
(
fullargs
&&
fullargs
.
copymode
){
Object
.
assign
(
data
,{
copymode
:
true
});
}
...
...
app_web/src/pages/workflow/wfuser-edit-view/wfuser-edit-view-base.vue
浏览文件 @
e2a6060d
...
...
@@ -1303,25 +1303,122 @@ export default class WFUserEditViewBase extends Vue {
* @memberof WFUserEditViewBase
*/
public
SaveAndStart
(
args
:
any
[],
contextJO
?:
any
,
params
?:
any
,
$event
?:
any
,
xData
?:
any
,
actionContext
?:
any
,
srfParentDeName
?:
string
)
{
const
_this
:
any
=
this
;
const
that
:
any
=
this
;
if
(
!
xData
||
!
(
xData
.
wfstart
instanceof
Function
))
{
return
;
}
xData
.
wfstart
(
args
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
return
;
let
validateStatus
:
boolean
=
true
;
if
(
xData
.
formValidateStatus
&&
xData
.
formValidateStatus
instanceof
Function
)
{
validateStatus
=
xData
.
formValidateStatus
();
}
if
(
!
validateStatus
)
{
if
(
xData
.
errorMessages
&&
xData
.
errorMessages
.
length
>
0
)
{
let
descMessage
:
string
=
''
;
xData
.
errorMessages
.
forEach
((
message
:
any
)
=>
{
descMessage
=
descMessage
+
'<p>'
+
message
.
error
+
'<p>'
;
})
xData
.
$Notice
.
error
({
title
:
(
xData
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
descMessage
});
}
else
{
xData
.
$Notice
.
error
({
title
:
(
xData
.
$t
(
'app.commonWords.wrong'
)
as
string
),
desc
:
(
xData
.
$t
(
'app.formpage.valuecheckex'
)
as
string
)
});
}
const
{
data
:
_data
}
=
response
;
if
(
window
.
parent
){
window
.
parent
.
postMessage
({
...
_data
},
'*'
);
return
;
}
const
startWorkFlow
:
Function
=
(
param
:
any
,
localdata
:
any
)
=>
{
xData
.
wfstart
(
args
).
then
((
response
:
any
)
=>
{
if
(
!
response
||
response
.
status
!==
200
)
{
return
;
}
const
{
data
:
_data
}
=
response
;
that
.
closeView
(
_data
);
});
}
const
openStartView
:
Function
=
async
(
item
:
any
,
localdata
:
any
)
=>
{
if
(
item
[
'wfversion'
])
{
const
targetView
:
any
=
that
.
viewRefData
?
that
.
viewRefData
[
`WFSTART@
${
item
[
'wfversion'
]}
`
]
:
null
;
if
(
targetView
)
{
const
tempContext
=
Util
.
deepCopy
(
that
.
context
);
const
tempViewParams
=
{
actionView
:
`WFSTART@
${
item
[
'wfversion'
]}
`
,
actionForm
:
item
[
'process-form'
]
};
const
container
:
Subject
<
any
>
=
that
.
$appmodal
.
openModal
(
targetView
,
tempContext
,
tempViewParams
);
container
.
subscribe
((
result
:
any
)
=>
{
if
(
!
result
||
!
Object
.
is
(
result
.
ret
,
'OK'
))
{
return
;
}
const
tempSubmitData
:
any
=
Util
.
deepCopy
(
args
[
0
]);
if
(
result
.
datas
&&
result
.
datas
[
0
])
{
const
resultData
:
any
=
result
.
datas
[
0
];
if
(
Object
.
keys
(
resultData
).
length
>
0
)
{
let
tempData
:
any
=
{};
Object
.
keys
(
resultData
).
forEach
((
key
:
any
)
=>
{
if
(
resultData
[
key
]
||
(
resultData
[
key
]
===
0
)
||
(
resultData
[
key
]
===
false
))
{
tempData
[
key
]
=
resultData
[
key
];
}
})
Object
.
assign
(
tempSubmitData
,
tempData
);
}
}
startWorkFlow
([
tempSubmitData
],
localdata
);
})
}
else
{
startWorkFlow
(
args
,
localdata
);
}
}
else
{
startWorkFlow
(
args
,
localdata
);
}
if
(
_this
.
viewdata
)
{
_this
.
$emit
(
'viewdataschange'
,
[{
...
_data
}]);
_this
.
$emit
(
'close'
);
}
else
if
(
this
.
$tabPageExp
)
{
this
.
$tabPageExp
.
onClose
(
this
.
$route
.
fullPath
);
}
let
localData
:
any
;
const
localContext
=
Util
.
deepCopy
(
that
.
context
);
const
requestResult
:
Promise
<
any
>
=
that
.
appEntityService
.
getStandWorkflow
(
localContext
);
requestResult
.
then
((
response
:
any
)
=>
{
const
{
data
:
targetData
,
status
}
=
response
;
if
(
status
!==
200
||
targetData
.
length
===
0
)
{
return
;
}
});
if
(
targetData
&&
targetData
.
length
>
1
)
{
const
h
=
that
.
$createElement
;
targetData
.
forEach
((
element
:
any
)
=>
{
Object
.
assign
(
element
,
{
value
:
element
.
definitionkey
,
label
:
element
.
definitionname
});
})
that
.
$msgbox
({
title
:
'请选择流程版本'
,
message
:
h
(
'i-select'
,
{
key
:
Util
.
createUUID
(),
props
:
{
value
:
localData
,
placeholder
:
"请选择流程版本..."
,
transfer
:
true
,
transferClassName
:
"start-workflow-select-wraper"
},
on
:
{
'on-change'
:
(
$event
:
any
)
=>
{
localData
=
{
processDefinitionKey
:
$event
};
}
}
},
targetData
.
map
((
item
:
any
)
=>
{
return
h
(
'i-option'
,
{
key
:
item
.
value
,
props
:
{
value
:
item
.
value
,
label
:
item
.
label
}
})
})),
showCancelButton
:
true
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
}).
then
((
action
:
string
)
=>
{
if
(
Object
.
is
(
action
,
'confirm'
)
&&
localData
&&
Object
.
keys
(
localData
).
length
>
0
)
{
let
targetItem
:
any
=
targetData
.
find
((
item
:
any
)
=>
{
return
item
.
definitionkey
===
localData
.
processDefinitionKey
;
})
openStartView
(
targetItem
,
localData
);
}
})
}
else
{
localData
=
{
processDefinitionKey
:
targetData
[
0
][
'definitionkey'
]
}
targetData
[
0
][
'process-view'
]
=
"WFSTART@1"
;
openStartView
(
targetData
[
0
],
localData
);
}
})
}
/**
* 当前流程步骤
...
...
app_web/src/pages/workflow/wfuser-grid-view/wfuser-grid-view-base.vue
浏览文件 @
e2a6060d
...
...
@@ -1316,6 +1316,18 @@ export default class WFUserGridViewBase extends Vue {
{
pathName
:
'editview'
,
parameterName
:
'editview'
},
];
const
_this
:
any
=
this
;
if
(
fullargs
&&
fullargs
.
length
>
0
)
{
const
_args
=
fullargs
[
0
];
if
(
_args
[
'srfprocessdefinitionkey'
]
&&
_args
[
'srftaskdefinitionkey'
])
{
Object
.
assign
(
data
,
{
processDefinitionKey
:
_args
[
'srfprocessdefinitionkey'
],
taskDefinitionKey
:
_args
[
'srftaskdefinitionkey'
]
});
if
(
_args
[
'srftaskid'
])
{
Object
.
assign
(
data
,
{
'srftaskid'
:
_args
[
'srftaskid'
]
});
}
}
}
if
(
fullargs
&&
fullargs
.
copymode
){
Object
.
assign
(
data
,{
copymode
:
true
});
}
...
...
app_web/src/service/entity-service.ts
浏览文件 @
e2a6060d
...
...
@@ -902,6 +902,23 @@ export default class EntityService {
}
}
/**
* 获取标准工作流版本信息
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @param {*} [localdata]
* @returns {Promise<any>}
* @memberof EntityService
*/
public
async
getStandWorkflow
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
return
Http
.
getInstance
().
get
(
`/wfcore/
${
this
.
SYSTEMNAME
}
-app-
${
this
.
APPNAME
}
/
${
this
.
APPDENAME
}
/process-definitions`
,
isloading
,
);
}
/**
* WFGetProxyData接口方法
*
...
...
app_web/src/styles/default.less
浏览文件 @
e2a6060d
...
...
@@ -274,6 +274,11 @@
}
}
// 工作流流程版本选择
.start-workflow-select-wraper {
z-index: 3000 !important;
}
/*** END:多数据视图属性布局 ***/
// 看板视图,卡片模式
...
...
app_web/src/utils/types/http.d.ts
浏览文件 @
e2a6060d
...
...
@@ -17,7 +17,7 @@ export declare interface Http {
* @returns {Promise<any>}
* @memberof Http
*/
post
(
url
:
string
,
params
:
any
,
isloading
?:
boolean
,
serialnumber
?:
number
):
Promise
<
any
>
;
post
(
url
:
string
,
params
?
:
any
,
isloading
?:
boolean
,
serialnumber
?:
number
):
Promise
<
any
>
;
/**
* 获取
*
...
...
@@ -27,7 +27,7 @@ export declare interface Http {
* @returns {Promise<any>}
* @memberof Http
*/
get
(
url
:
string
,
isloading
?:
boolean
,
serialnumber
?:
number
):
Promise
<
any
>
;
get
(
url
:
string
,
params
?:
any
,
isloading
?:
boolean
,
serialnumber
?:
number
):
Promise
<
any
>
;
/**
* 删除
*
...
...
app_web/src/utils/view-tool/view-tool.ts
浏览文件 @
e2a6060d
...
...
@@ -76,7 +76,7 @@ export class ViewTool {
* @memberof ViewTool
*/
public
static
getIndexRoutePath
(
route
:
Route
):
string
{
const
{
parameters
:
_parameters
}:
{
parameters
:
any
[]
}
=
route
.
meta
;
const
{
parameters
:
_parameters
}:
{
parameters
:
any
[]
}
=
route
.
meta
as
any
;
const
{
pathName
:
_pathName
,
parameterName
:
_parameterName
}:
{
pathName
:
string
,
parameterName
:
string
}
=
_parameters
[
0
];
const
param
=
route
.
params
[
_parameterName
];
if
(
param
&&
!
Object
.
is
(
param
,
''
))
{
...
...
app_web/src/widgets/wfgroup/main-grid/main-grid-model.ts
浏览文件 @
e2a6060d
...
...
@@ -103,6 +103,22 @@ export default class MainModel {
prop
:
'srffrontuf'
,
dataType
:
'TEXT'
,
},
// 预置工作流数据字段
{
name
:
'srfprocessdefinitionkey'
,
prop
:
'srfprocessdefinitionkey'
,
dataType
:
'TEXT'
},
{
name
:
'srftaskdefinitionkey'
,
prop
:
'srftaskdefinitionkey'
,
dataType
:
'TEXT'
},
{
name
:
'srftaskid'
,
prop
:
'srftaskid'
,
dataType
:
'TEXT'
}
]
}
}
...
...
app_web/src/widgets/wfmember/main-grid/main-grid-model.ts
浏览文件 @
e2a6060d
...
...
@@ -118,6 +118,22 @@ export default class MainModel {
prop
:
'srffrontuf'
,
dataType
:
'TEXT'
,
},
// 预置工作流数据字段
{
name
:
'srfprocessdefinitionkey'
,
prop
:
'srfprocessdefinitionkey'
,
dataType
:
'TEXT'
},
{
name
:
'srftaskdefinitionkey'
,
prop
:
'srftaskdefinitionkey'
,
dataType
:
'TEXT'
},
{
name
:
'srftaskid'
,
prop
:
'srftaskid'
,
dataType
:
'TEXT'
}
]
}
}
...
...
app_web/src/widgets/wfprocess-definition/main-grid/main-grid-model.ts
浏览文件 @
e2a6060d
...
...
@@ -118,6 +118,22 @@ export default class MainModel {
prop
:
'srffrontuf'
,
dataType
:
'TEXT'
,
},
// 预置工作流数据字段
{
name
:
'srfprocessdefinitionkey'
,
prop
:
'srfprocessdefinitionkey'
,
dataType
:
'TEXT'
},
{
name
:
'srftaskdefinitionkey'
,
prop
:
'srftaskdefinitionkey'
,
dataType
:
'TEXT'
},
{
name
:
'srftaskid'
,
prop
:
'srftaskid'
,
dataType
:
'TEXT'
}
]
}
}
...
...
app_web/src/widgets/wftask/main-grid/main-grid-model.ts
浏览文件 @
e2a6060d
...
...
@@ -153,6 +153,22 @@ export default class MainModel {
prop
:
'srffrontuf'
,
dataType
:
'TEXT'
,
},
// 预置工作流数据字段
{
name
:
'srfprocessdefinitionkey'
,
prop
:
'srfprocessdefinitionkey'
,
dataType
:
'TEXT'
},
{
name
:
'srftaskdefinitionkey'
,
prop
:
'srftaskdefinitionkey'
,
dataType
:
'TEXT'
},
{
name
:
'srftaskid'
,
prop
:
'srftaskid'
,
dataType
:
'TEXT'
}
]
}
}
...
...
app_web/src/widgets/wfuser/main-grid/main-grid-model.ts
浏览文件 @
e2a6060d
...
...
@@ -113,6 +113,22 @@ export default class MainModel {
prop
:
'srffrontuf'
,
dataType
:
'TEXT'
,
},
// 预置工作流数据字段
{
name
:
'srfprocessdefinitionkey'
,
prop
:
'srfprocessdefinitionkey'
,
dataType
:
'TEXT'
},
{
name
:
'srftaskdefinitionkey'
,
prop
:
'srftaskdefinitionkey'
,
dataType
:
'TEXT'
},
{
name
:
'srftaskid'
,
prop
:
'srftaskid'
,
dataType
:
'TEXT'
}
]
}
}
...
...
app_web/tsconfig.json
浏览文件 @
e2a6060d
...
...
@@ -9,6 +9,7 @@
"esModuleInterop"
:
true
,
"experimentalDecorators"
:
true
,
"allowSyntheticDefaultImports"
:
true
,
"skipLibCheck"
:
true
,
"sourceMap"
:
true
,
"baseUrl"
:
"."
,
"types"
:
[
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFGroupServiceImpl.java
浏览文件 @
e2a6060d
...
...
@@ -31,6 +31,7 @@ import cn.ibizlab.core.workflow.service.IWFGroupService;
import
cn.ibizlab.util.helper.CachedBeanCopier
;
import
cn.ibizlab.util.helper.DEFieldCacheMap
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
...
...
@@ -38,7 +39,6 @@ import cn.ibizlab.core.workflow.mapper.WFGroupMapper;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.alibaba.fastjson.JSONObject
;
import
org.springframework.util.StringUtils
;
/**
...
...
@@ -227,6 +227,8 @@ public class WFGroupServiceImpl extends ServiceImpl<WFGroupMapper, WFGroup> impl
public
IWFGroupService
getProxyService
()
{
return
cn
.
ibizlab
.
util
.
security
.
SpringContextHolder
.
getBean
(
this
.
getClass
());
}
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFHistoryServiceImpl.java
浏览文件 @
e2a6060d
...
...
@@ -31,6 +31,7 @@ import cn.ibizlab.core.workflow.service.IWFHistoryService;
import
cn.ibizlab.util.helper.CachedBeanCopier
;
import
cn.ibizlab.util.helper.DEFieldCacheMap
;
import
com.alibaba.fastjson.JSONObject
;
/**
...
...
@@ -106,6 +107,8 @@ public class WFHistoryServiceImpl implements IWFHistoryService {
return
new
PageImpl
<
WFHistory
>(
new
ArrayList
(),
context
.
getPageable
(),
0
);
}
}
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFMemberServiceImpl.java
浏览文件 @
e2a6060d
...
...
@@ -31,6 +31,7 @@ import cn.ibizlab.core.workflow.service.IWFMemberService;
import
cn.ibizlab.util.helper.CachedBeanCopier
;
import
cn.ibizlab.util.helper.DEFieldCacheMap
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
...
...
@@ -38,7 +39,6 @@ import cn.ibizlab.core.workflow.mapper.WFMemberMapper;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.alibaba.fastjson.JSONObject
;
import
org.springframework.util.StringUtils
;
/**
...
...
@@ -334,6 +334,8 @@ public class WFMemberServiceImpl extends ServiceImpl<WFMemberMapper, WFMember> i
}
}
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFProcessDefinitionServiceImpl.java
浏览文件 @
e2a6060d
...
...
@@ -31,6 +31,7 @@ import cn.ibizlab.core.workflow.service.IWFProcessDefinitionService;
import
cn.ibizlab.util.helper.CachedBeanCopier
;
import
cn.ibizlab.util.helper.DEFieldCacheMap
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
...
...
@@ -38,7 +39,6 @@ import cn.ibizlab.core.workflow.mapper.WFProcessDefinitionMapper;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.alibaba.fastjson.JSONObject
;
import
org.springframework.util.StringUtils
;
/**
...
...
@@ -220,6 +220,8 @@ public class WFProcessDefinitionServiceImpl extends ServiceImpl<WFProcessDefinit
public
IWFProcessDefinitionService
getProxyService
()
{
return
cn
.
ibizlab
.
util
.
security
.
SpringContextHolder
.
getBean
(
this
.
getClass
());
}
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFProcessInstanceServiceImpl.java
浏览文件 @
e2a6060d
...
...
@@ -31,6 +31,7 @@ import cn.ibizlab.core.workflow.service.IWFProcessInstanceService;
import
cn.ibizlab.util.helper.CachedBeanCopier
;
import
cn.ibizlab.util.helper.DEFieldCacheMap
;
import
com.alibaba.fastjson.JSONObject
;
/**
...
...
@@ -106,6 +107,8 @@ public class WFProcessInstanceServiceImpl implements IWFProcessInstanceService {
return
new
PageImpl
<
WFProcessInstance
>(
new
ArrayList
(),
context
.
getPageable
(),
0
);
}
}
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFProcessNodeServiceImpl.java
浏览文件 @
e2a6060d
...
...
@@ -31,6 +31,7 @@ import cn.ibizlab.core.workflow.service.IWFProcessNodeService;
import
cn.ibizlab.util.helper.CachedBeanCopier
;
import
cn.ibizlab.util.helper.DEFieldCacheMap
;
import
com.alibaba.fastjson.JSONObject
;
/**
...
...
@@ -106,6 +107,8 @@ public class WFProcessNodeServiceImpl implements IWFProcessNodeService {
return
new
PageImpl
<
WFProcessNode
>(
new
ArrayList
(),
context
.
getPageable
(),
0
);
}
}
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFSystemServiceImpl.java
浏览文件 @
e2a6060d
...
...
@@ -31,6 +31,7 @@ import cn.ibizlab.core.workflow.service.IWFSystemService;
import
cn.ibizlab.util.helper.CachedBeanCopier
;
import
cn.ibizlab.util.helper.DEFieldCacheMap
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
...
...
@@ -38,7 +39,6 @@ import cn.ibizlab.core.workflow.mapper.WFSystemMapper;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.alibaba.fastjson.JSONObject
;
import
org.springframework.util.StringUtils
;
/**
...
...
@@ -220,6 +220,8 @@ public class WFSystemServiceImpl extends ServiceImpl<WFSystemMapper, WFSystem> i
public
IWFSystemService
getProxyService
()
{
return
cn
.
ibizlab
.
util
.
security
.
SpringContextHolder
.
getBean
(
this
.
getClass
());
}
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFTaskServiceImpl.java
浏览文件 @
e2a6060d
...
...
@@ -31,6 +31,7 @@ import cn.ibizlab.core.workflow.service.IWFTaskService;
import
cn.ibizlab.util.helper.CachedBeanCopier
;
import
cn.ibizlab.util.helper.DEFieldCacheMap
;
import
com.alibaba.fastjson.JSONObject
;
/**
...
...
@@ -154,6 +155,8 @@ public class WFTaskServiceImpl implements IWFTaskService {
return
new
PageImpl
<
WFTask
>(
new
ArrayList
(),
context
.
getPageable
(),
0
);
}
}
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFTaskWayServiceImpl.java
浏览文件 @
e2a6060d
...
...
@@ -31,6 +31,7 @@ import cn.ibizlab.core.workflow.service.IWFTaskWayService;
import
cn.ibizlab.util.helper.CachedBeanCopier
;
import
cn.ibizlab.util.helper.DEFieldCacheMap
;
import
com.alibaba.fastjson.JSONObject
;
/**
...
...
@@ -106,6 +107,8 @@ public class WFTaskWayServiceImpl implements IWFTaskWayService {
return
new
PageImpl
<
WFTaskWay
>(
new
ArrayList
(),
context
.
getPageable
(),
0
);
}
}
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/service/impl/WFUserServiceImpl.java
浏览文件 @
e2a6060d
...
...
@@ -31,6 +31,7 @@ import cn.ibizlab.core.workflow.service.IWFUserService;
import
cn.ibizlab.util.helper.CachedBeanCopier
;
import
cn.ibizlab.util.helper.DEFieldCacheMap
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
...
...
@@ -38,7 +39,6 @@ import cn.ibizlab.core.workflow.mapper.WFUserMapper;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.alibaba.fastjson.JSONObject
;
import
org.springframework.util.StringUtils
;
/**
...
...
@@ -244,6 +244,8 @@ public class WFUserServiceImpl extends ServiceImpl<WFUserMapper, WFUser> impleme
}
public
IWFUserService
getProxyService
()
{
return
cn
.
ibizlab
.
util
.
security
.
SpringContextHolder
.
getBean
(
this
.
getClass
());
}
...
...
ibzwf-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
e2a6060d
...
...
@@ -4,7 +4,7 @@
<!--输出实体[WF_GROUP]数据结构 -->
<changeSet
author=
"
a_A_5d9d78509
"
id=
"tab-wf_group-9-1"
>
<changeSet
author=
"
root
"
id=
"tab-wf_group-9-1"
>
<createTable
tableName=
"IBZWFGROUP"
>
<column
name=
"GROUPID"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_WF_GROUP_GROUPID"
/>
...
...
@@ -20,7 +20,7 @@
<!--输出实体[WF_GROUP_MEMBER]数据结构 -->
<changeSet
author=
"
a_A_5d9d78509
"
id=
"tab-wf_group_member-13-2"
>
<changeSet
author=
"
root
"
id=
"tab-wf_group_member-13-2"
>
<createTable
tableName=
"IBZWFMEMBER"
>
<column
name=
"MEMBERID"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_WF_GROUP_MEMBER_MEMBERID"
/>
...
...
@@ -36,7 +36,7 @@
<!--输出实体[WF_DEFINITION]数据结构 -->
<changeSet
author=
"
a_A_5d9d78509
"
id=
"tab-wf_definition-1-3"
>
<changeSet
author=
"
root
"
id=
"tab-wf_definition-1-3"
>
<createTable
tableName=
"IBZWFDEFINITION"
>
<column
name=
"DEFINITIONKEY"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_WF_DEFINITION_DEFINITIONKEY"
/>
...
...
@@ -70,15 +70,6 @@
<!--输出实体[WF_PSSYSTEM]数据结构 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-wf_pssystem-1-4"
>
<createTable
tableName=
"IBZPSSYSTEM"
>
<column
name=
"PSSYSTEMID"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_WF_PSSYSTEM_PSSYSTEMID"
/>
</column>
<column
name=
"PSSYSTEMNAME"
remarks=
""
type=
"VARCHAR(100)"
>
</column>
</createTable>
</changeSet>
...
...
@@ -88,7 +79,7 @@
<!--输出实体[WF_GROUP]外键关系 -->
<!--输出实体[WF_GROUP_MEMBER]外键关系 -->
<changeSet
author=
"
a_A_5d9d78509
"
id=
"fk-wf_group_member-13-5"
>
<changeSet
author=
"
root
"
id=
"fk-wf_group_member-13-5"
>
<addForeignKeyConstraint
baseColumnNames=
"GROUPID"
baseTableName=
"IBZWFMEMBER"
constraintName=
"DER1N_WF_GROUP_MEMBER_WF_GROUP"
deferrable=
"false"
initiallyDeferred=
"false"
onDelete=
"RESTRICT"
onUpdate=
"RESTRICT"
referencedColumnNames=
"GROUPID"
referencedTableName=
"IBZWFGROUP"
validate=
"true"
/>
</changeSet>
<!--输出实体[WF_DEFINITION]外键关系 -->
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录