Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
I
ibzwf
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
ibiz4jteam
ibzwf
提交
d32da08b
提交
d32da08b
编写于
8月 10, 2020
作者:
ibizdev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ibiz4j 发布系统代码
上级
38ee66d3
变更
73
显示空白字符变更
内嵌
并排
正在显示
73 个修改的文件
包含
1979 行增加
和
290 行删除
+1979
-290
CHANGELOG.md
app_web/CHANGELOG.md
+48
-0
auth-service-register.ts
app_web/src/authservice/auth-service-register.ts
+1
-0
auth-service.ts
app_web/src/authservice/auth-service.ts
+1
-1
wftask-auth-service-base.ts
app_web/src/authservice/wftask/wftask-auth-service-base.ts
+37
-0
wftask-auth-service.ts
app_web/src/authservice/wftask/wftask-auth-service.ts
+24
-0
app-department-select.vue
...omponents/app-department-select/app-department-select.vue
+3
-3
app-group-select.vue
app_web/src/components/app-group-select/app-group-select.vue
+64
-12
app-upicker.less
app_web/src/components/app-upicker/app-upicker.less
+2
-2
app-upicker.vue
app_web/src/components/app-upicker/app-upicker.vue
+290
-113
edit-view-engine.ts
app_web/src/engine/view/edit-view-engine.ts
+4
-4
en-US.ts
app_web/src/locale/lang/en-US.ts
+2
-0
zh-CN.ts
app_web/src/locale/lang/zh-CN.ts
+2
-0
wfprocess-definition_en_US.ts
...tities/wfprocess-definition/wfprocess-definition_en_US.ts
+0
-1
wfprocess-definition_zh_CN.ts
...tities/wfprocess-definition/wfprocess-definition_zh_CN.ts
+0
-1
wftask_en_US.ts
app_web/src/locale/lanres/entities/wftask/wftask_en_US.ts
+15
-0
wftask_zh_CN.ts
app_web/src/locale/lanres/entities/wftask/wftask_zh_CN.ts
+14
-0
wftasks.ts
app_web/src/mock/entity/wftasks/wftasks.ts
+380
-0
index.ts
app_web/src/mock/index.ts
+1
-0
wfgroup-edit-view-base.vue
...ges/workflow/wfgroup-edit-view/wfgroup-edit-view-base.vue
+4
-4
wfgroup-grid-view-base.vue
...ges/workflow/wfgroup-grid-view/wfgroup-grid-view-base.vue
+4
-4
wfgroup-mpickup-view-base.vue
...rkflow/wfgroup-mpickup-view/wfgroup-mpickup-view-base.vue
+3
-3
wfgroup-pickup-grid-view-base.vue
...fgroup-pickup-grid-view/wfgroup-pickup-grid-view-base.vue
+3
-3
wfgroup-pickup-view-base.vue
...workflow/wfgroup-pickup-view/wfgroup-pickup-view-base.vue
+3
-3
router.ts
app_web/src/pages/workflow/wfindex-view/router.ts
+35
-35
wfindex-view-base.vue
...web/src/pages/workflow/wfindex-view/wfindex-view-base.vue
+2
-2
wfmember-edit-view-base.vue
...s/workflow/wfmember-edit-view/wfmember-edit-view-base.vue
+4
-4
wfmember-grid-view-base.vue
...s/workflow/wfmember-grid-view/wfmember-grid-view-base.vue
+4
-4
wfprocess-definition-edit-view-base.vue
...inition-edit-view/wfprocess-definition-edit-view-base.vue
+4
-4
wfprocess-definition-grid-view-base.vue
...inition-grid-view/wfprocess-definition-grid-view-base.vue
+4
-4
wfremodel-edit-view-base.vue
...workflow/wfremodel-edit-view/wfremodel-edit-view-base.vue
+4
-4
wfuser-edit-view-base.vue
...pages/workflow/wfuser-edit-view/wfuser-edit-view-base.vue
+4
-4
wfuser-grid-view-base.vue
...pages/workflow/wfuser-grid-view/wfuser-grid-view-base.vue
+4
-4
wfuser-mpickup-view-base.vue
...workflow/wfuser-mpickup-view/wfuser-mpickup-view-base.vue
+3
-3
wfuser-pickup-grid-view-base.vue
.../wfuser-pickup-grid-view/wfuser-pickup-grid-view-base.vue
+3
-3
wfuser-pickup-view-base.vue
...s/workflow/wfuser-pickup-view/wfuser-pickup-view-base.vue
+3
-3
entity-service-register.ts
app_web/src/service/entity-service-register.ts
+1
-0
wftask-service-base.ts
app_web/src/service/wftask/wftask-service-base.ts
+187
-0
wftask-service.ts
app_web/src/service/wftask/wftask-service.ts
+25
-0
ui-service-register.ts
app_web/src/uiservice/ui-service-register.ts
+1
-0
wftask-ui-service-base.ts
app_web/src/uiservice/wftask/wftask-ui-service-base.ts
+250
-0
wftask-ui-service.ts
app_web/src/uiservice/wftask/wftask-ui-service.ts
+21
-0
default-searchform-base.vue
...ts/wfgroup/default-searchform/default-searchform-base.vue
+1
-0
main-form-base.vue
app_web/src/widgets/wfgroup/main-form/main-form-base.vue
+3
-0
main-grid-base.vue
app_web/src/widgets/wfgroup/main-grid/main-grid-base.vue
+2
-2
main-grid.less
app_web/src/widgets/wfgroup/main-grid/main-grid.less
+9
-0
default-searchform-base.vue
...s/wfmember/default-searchform/default-searchform-base.vue
+1
-0
main-form-base.vue
app_web/src/widgets/wfmember/main-form/main-form-base.vue
+3
-0
main-grid-base.vue
app_web/src/widgets/wfmember/main-grid/main-grid-base.vue
+2
-2
main-grid.less
app_web/src/widgets/wfmember/main-grid/main-grid.less
+9
-0
default-searchform-base.vue
...definition/default-searchform/default-searchform-base.vue
+1
-0
main-form-base.vue
...widgets/wfprocess-definition/main-form/main-form-base.vue
+3
-0
main-grid-base.vue
...widgets/wfprocess-definition/main-grid/main-grid-base.vue
+2
-2
main-grid.less
...src/widgets/wfprocess-definition/main-grid/main-grid.less
+9
-0
main-form-base.vue
app_web/src/widgets/wfremodel/main-form/main-form-base.vue
+3
-0
default-searchform-base.vue
...ets/wfuser/default-searchform/default-searchform-base.vue
+1
-0
main-form-base.vue
app_web/src/widgets/wfuser/main-form/main-form-base.vue
+3
-0
main-grid-base.vue
app_web/src/widgets/wfuser/main-grid/main-grid-base.vue
+2
-2
main-grid.less
app_web/src/widgets/wfuser/main-grid/main-grid.less
+9
-0
application-web-prod.yml
...ibzwf-app-web/src/main/resources/application-web-prod.yml
+4
-0
WFProcessDefinition.java
.../cn/ibizlab/core/workflow/domain/WFProcessDefinition.java
+0
-16
WFProcessNode.java
...n/java/cn/ibizlab/core/workflow/domain/WFProcessNode.java
+7
-0
WFTask.java
...src/main/java/cn/ibizlab/core/workflow/domain/WFTask.java
+49
-9
WFTaskWay.java
.../main/java/cn/ibizlab/core/workflow/domain/WFTaskWay.java
+3
-4
WFProcessNodeSearchContext.java
...zlab/core/workflow/filter/WFProcessNodeSearchContext.java
+4
-0
WFTaskSearchContext.java
.../cn/ibizlab/core/workflow/filter/WFTaskSearchContext.java
+21
-1
h2_table.xml
ibzwf-core/src/main/resources/liquibase/h2_table.xml
+1
-3
WFProcessDefinitionMapper.xml
...orkflow/wfprocessdefinition/WFProcessDefinitionMapper.xml
+3
-4
systemResource.json
ibzwf-core/src/main/resources/permission/systemResource.json
+8
-0
WFProcessDefinitionDTO.java
.../main/java/cn/ibizlab/api/dto/WFProcessDefinitionDTO.java
+0
-16
WFTaskDTO.java
...vider-api/src/main/java/cn/ibizlab/api/dto/WFTaskDTO.java
+183
-0
WFTaskMapping.java
...i/src/main/java/cn/ibizlab/api/mapping/WFTaskMapping.java
+16
-0
WFTaskResource.java
...api/src/main/java/cn/ibizlab/api/rest/WFTaskResource.java
+152
-0
DTOClient.java
...-util/src/main/java/cn/ibizlab/util/domain/DTOClient.java
+1
-1
未找到文件。
app_web/CHANGELOG.md
浏览文件 @
d32da08b
## v7.0.0-alpha.17 [2020-8-9]
### Bug修复
修复系统级的操作标识异常问题
修复表格新增插件异常问题
修复表格单击行绑定数据异常bug
修复表格合计行样式问题
### 功能新增及优化
#### 模板
新增支持前后端分离部署
新增动态代码表预定义代码表支持
新增数据选择(调用接口)组件
新增部件样式表支持
优化数据服务逻辑
优化代码表服务基类、动态代码表
优化导航参数处理逻辑
优化数据拷贝逻辑
优化组织、部门、人员控件只绑定id逻辑
优化部件关联外键值
#### 基础文件
新增前后端分离部署
新增下拉列表控件支持树状代码表
新增数据选择(调用接口)组件
优化数据拷贝逻辑
优化组织、部门、人员控件只绑定id逻辑
## v7.0.0-alpha.16 [2020-8-2]
### Bug修复
...
...
app_web/src/authservice/auth-service-register.ts
浏览文件 @
d32da08b
...
...
@@ -43,6 +43,7 @@ export class AuthServiceRegister {
this
.
allAuthService
.
set
(
'wfmember'
,
()
=>
import
(
'@/authservice/wfmember/wfmember-auth-service'
));
this
.
allAuthService
.
set
(
'wfgroup'
,
()
=>
import
(
'@/authservice/wfgroup/wfgroup-auth-service'
));
this
.
allAuthService
.
set
(
'wfuser'
,
()
=>
import
(
'@/authservice/wfuser/wfuser-auth-service'
));
this
.
allAuthService
.
set
(
'wftask'
,
()
=>
import
(
'@/authservice/wftask/wftask-auth-service'
));
this
.
allAuthService
.
set
(
'wfprocessdefinition'
,
()
=>
import
(
'@/authservice/wfprocess-definition/wfprocess-definition-auth-service'
));
this
.
allAuthService
.
set
(
'wfsystem'
,
()
=>
import
(
'@/authservice/wfsystem/wfsystem-auth-service'
));
}
...
...
app_web/src/authservice/auth-service.ts
浏览文件 @
d32da08b
...
...
@@ -18,7 +18,7 @@ export default class AuthService {
public
$store
:
Store
<
any
>
|
null
=
null
;
/**
* 默认操作
符
* 默认操作
标识
*
* @public
* @type {(any)}
...
...
app_web/src/authservice/wftask/wftask-auth-service-base.ts
0 → 100644
浏览文件 @
d32da08b
import
AuthService
from
'../auth-service'
;
/**
* 工作流任务权限服务对象基类
*
* @export
* @class WFTaskAuthServiceBase
* @extends {AuthService}
*/
export
default
class
WFTaskAuthServiceBase
extends
AuthService
{
/**
* Creates an instance of WFTaskAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof WFTaskAuthServiceBase
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof WFTaskAuthServiceBase
*/
public
getOPPrivs
(
mainSateOPPrivs
:
any
):
any
{
let
curDefaultOPPrivs
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
defaultOPPrivs
));
if
(
mainSateOPPrivs
){
Object
.
assign
(
curDefaultOPPrivs
,
mainSateOPPrivs
);
}
return
curDefaultOPPrivs
;
}
}
\ No newline at end of file
app_web/src/authservice/wftask/wftask-auth-service.ts
0 → 100644
浏览文件 @
d32da08b
import
WFTaskAuthServiceBase
from
'./wftask-auth-service-base'
;
/**
* 工作流任务权限服务对象
*
* @export
* @class WFTaskAuthService
* @extends {WFTaskAuthServiceBase}
*/
export
default
class
WFTaskAuthService
extends
WFTaskAuthServiceBase
{
/**
* Creates an instance of WFTaskAuthService.
*
* @param {*} [opts={}]
* @memberof WFTaskAuthService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
}
}
\ No newline at end of file
app_web/src/components/app-department-select/app-department-select.vue
浏览文件 @
d32da08b
...
...
@@ -103,7 +103,7 @@ export default class AppDepartmentSelect extends Vue {
* @type {*}
* @memberof AppDepartmentSelect
*/
public
oldurl
:
any
[]
=
[]
;
public
oldurl
:
any
;
/**
* 获取节点数据
...
...
@@ -136,14 +136,14 @@ export default class AppDepartmentSelect extends Vue {
}
this
.
oldurl
=
_url
;
// 缓存机制
const
result
:
any
=
this
.
$store
.
getters
.
getDepData
(
this
.
filter
);
const
result
:
any
=
this
.
$store
.
getters
.
getDepData
(
_url
);
if
(
result
){
this
.
Nodesdata
=
result
;
return
;
}
this
.
$http
.
get
(
_url
).
then
((
response
:
any
)
=>
{
this
.
Nodesdata
=
response
.
data
;
this
.
$store
.
commit
(
'addDepData'
,
{
srfkey
:
this
.
filter
,
depData
:
response
.
data
});
this
.
$store
.
commit
(
'addDepData'
,
{
srfkey
:
_url
,
depData
:
response
.
data
});
}).
catch
((
response
:
any
)
=>
{
if
(
!
response
||
!
response
.
status
||
!
response
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'app.commonWords.error'
)
as
string
),
desc
:
(
this
.
$t
(
'app.commonWords.sysException'
)
as
string
)
});
...
...
app_web/src/components/app-group-select/app-group-select.vue
浏览文件 @
d32da08b
...
...
@@ -21,6 +21,7 @@
<
script
lang=
"ts"
>
import
{
Component
,
Vue
,
Prop
,
Watch
}
from
'vue-property-decorator'
;
import
{
Subject
}
from
'rxjs'
;
import
CodeListService
from
'@/service/app/codelist-service'
;
@
Component
({})
export
default
class
AppGroupSelect
extends
Vue
{
...
...
@@ -64,6 +65,20 @@ export default class AppGroupSelect extends Vue {
*/
@
Prop
()
data
:
any
;
/**
* 代码表标识
*
* @memberof AppGroupSelect
*/
@
Prop
()
public
tag
?:
string
;
/**
* 代码表类型
*
* @memberof AppGroupSelect
*/
@
Prop
()
public
codelistType
?:
string
;
/**
* 过滤属性标识
*
...
...
@@ -126,12 +141,12 @@ export default class AppGroupSelect extends Vue {
* @type {*}
* @memberof AppGroupSelect
*/
@
Watch
(
'
value'
)
onValueChange
(
newVal
:
any
)
{
@
Watch
(
'
data'
,{
immediate
:
true
,
deep
:
true
}
)
onValueChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
selects
=
[];
if
(
newVal
)
{
let
item
:
any
=
{};
item
.
label
=
newVal
.
split
(
','
)
;
item
.
label
=
this
.
data
[
this
.
name
]?
this
.
data
[
this
.
name
].
split
(
','
):[]
;
if
(
this
.
valueitem
)
{
item
.
id
=
this
.
data
[
this
.
valueitem
]
?
this
.
data
[
this
.
valueitem
].
split
(
','
)
:
[];
}
...
...
@@ -140,6 +155,7 @@ export default class AppGroupSelect extends Vue {
item
[
this
.
fillmap
[
key
]]
=
this
.
data
[
key
]
?
this
.
data
[
key
].
split
(
','
)
:
[];
}
}
const
callback
:
any
=
(
item
:
any
)
=>
{
item
.
label
.
forEach
((
val
:
string
,
index
:
number
)
=>
{
let
_item
:
any
=
{};
for
(
let
key
in
item
)
{
...
...
@@ -148,6 +164,16 @@ export default class AppGroupSelect extends Vue {
this
.
selects
.
push
(
_item
)
})
}
if
(
item
.
label
.
length
==
0
&&
item
.
id
.
length
>
0
){
this
.
fillLabel
(
item
,
item
.
id
,(
result
:
any
)
=>
{
item
.
label
=
result
.
label
;
callback
(
item
);
});
}
else
{
callback
(
item
);
}
}
}
/**
...
...
@@ -259,7 +285,6 @@ export default class AppGroupSelect extends Vue {
}
});
}
else
{
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
;
...
...
@@ -274,6 +299,33 @@ export default class AppGroupSelect extends Vue {
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
key
,
value
:
item
[
key
]
});
}
}
/**
* 填充label
*
* @memberof AppGroupSelect
*/
public
fillLabel
(
tempObject
:
any
,
valueItem
:
Array
<
any
>
,
callback
:
any
){
if
(
tempObject
.
label
.
length
===
0
&&
tempObject
.
id
.
length
>
0
&&
this
.
tag
&&
this
.
codelistType
&&
Object
.
is
(
this
.
codelistType
,
"DYNAMIC"
)){
let
codeListService
:
CodeListService
=
new
CodeListService
();
codeListService
.
getItems
(
this
.
tag
).
then
((
items
:
any
)
=>
{
if
(
items
&&
items
.
length
>
0
&&
valueItem
.
length
>
0
){
let
tempLabel
:
Array
<
any
>
=
[];
valueItem
.
forEach
((
value
:
any
)
=>
{
let
result
:
any
=
items
.
find
((
item
:
any
)
=>
{
return
item
.
id
===
value
;
})
tempLabel
.
push
(
result
.
label
);
})
Object
.
assign
(
tempObject
,{
label
:
tempLabel
});
}
callback
(
tempObject
);
}).
catch
((
error
:
any
)
=>
{
console
.
log
(
error
);
})
}
}
}
</
script
>
...
...
app_web/src/components/app-upicker/app-upicker.less
浏览文件 @
d32da08b
.app-picker {
.app-
u
picker {
width: 100%;
.el-select {
.el-input__suffix {
right: 20px
;
display: none
;
}
}
.text-value {
...
...
app_web/src/components/app-upicker/app-upicker.vue
浏览文件 @
d32da08b
<
template
>
<el-select
style=
"width: 100%;"
size=
'small'
@
change=
"onSelect"
v-model=
"value"
:disabled=
"disabled"
@
visible-change=
"onSelectOpen"
>
<el-option
v-for=
"(item, index) in items"
:key=
"index"
:label=
"item.label"
:value=
"item.value"
></el-option>
<div
class=
'app-upicker'
>
<el-select
ref=
"appUpicker"
:value=
"refvalue"
size=
'small'
filterable
@
change=
"onSelect"
:disabled=
"disabled"
style=
'width:100%;'
clearable
@
clear=
"onClear"
@
visible-change=
"onSelectOpen"
>
<template
v-if=
"items"
>
<el-option
v-for=
"(_item,index) in items"
:key=
"index"
:value=
"_item.value"
:label=
"_item.label"
></el-option>
</
template
>
</el-select>
<span
style=
'position: absolute;right: 5px;color: #c0c4cc;top:0;font-size: 13px;'
>
<i
v-show=
"open"
class=
'el-icon-arrow-up'
@
click=
"closeDropdown"
></i>
<i
v-show=
"!open"
class=
'el-icon-arrow-down'
@
click=
"openDropdown"
></i>
</span>
</div>
</template>
<
script
lang
=
"ts"
>
import
{
Component
,
Vue
,
Prop
,
Model
,
Watch
}
from
"vue-property-decorator"
;
import
{
Subject
}
from
"rxjs"
;
import
{
AppModal
}
from
"@/utils"
;
<
script
lang
=
'ts'
>
import
{
Component
,
Vue
,
Prop
,
Model
,
Watch
}
from
'vue-property-decorator'
;
import
{
Subject
}
from
'rxjs'
;
import
{
AppModal
}
from
'@/utils'
;
@
Component
({})
export
default
class
AppPicker
extends
Vue
{
@
Component
({
})
export
default
class
AppUpicker
extends
Vue
{
/**
* 请求到的数据
* @type {any[]}
* @memberof AppUpicker
*/
public
itemList
:
any
[]
=
[]
/**
* 列表项请求路径
*
* @type {string}
* @memberof AppUpicker
*/
public
url
:
string
=
''
;
/**
* 请求参数和请求数据的映射关系
*
* @type {*}
* @memberof AppUpicker
*/
public
interaction
:
any
=
{};
/**
* 编辑器参数
*
* @type {*}
* @memberof AppUpicker
*/
@
Prop
()
public
itemParams
?:
any
;
/**
* 视图上下文
*
* @type {*}
* @memberof AppUpicker
*/
@
Prop
()
public
context
!
:
any
;
/**
* 视图参数
*
* @type {*}
* @memberof AppUpicker
*/
@
Prop
()
public
viewparams
!
:
any
;
/**
* 表单数据
*
* @type {*}
* @memberof App
P
icker
* @memberof App
Up
icker
*/
@
Prop
()
public
data
!
:
any
;
...
...
@@ -24,113 +82,148 @@ export default class AppPicker extends Vue {
* 属性项名称
*
* @type {string}
* @memberof App
P
icker
* @memberof App
Up
icker
*/
@
Prop
()
public
name
!
:
string
;
/**
*
视图上下文
*
是否启用
*
* @type {
*
}
* @memberof App
FormDRUIPart
* @type {
boolean
}
* @memberof App
Upicker
*/
@
Prop
()
public
context
!
:
any
;
@
Prop
()
public
disabled
?:
boolean
;
/**
* 编辑器禁用
* 是否显示按钮
*
* @type {boolean}
* @memberof AppUpicker
*/
@
Prop
()
disabled
?:
boolean
;
@
Prop
({
default
:
true
})
public
showButton
?:
boolean
;
/**
*
视图
参数
*
局部上下文导航
参数
*
* @type {
*
}
* @memberof
SelectFormBase
* @type {
any
}
* @memberof
AppUpicker
*/
@
Prop
()
public
viewparams
:
any
;
@
Prop
()
public
localContext
!
:
any
;
/**
* 请求参数和请求数据的映射关系
* 局部导航参数
*
* @type {*
}
* @type {any
}
* @memberof AppUpicker
*/
public
interaction
:
any
=
{}
;
@
Prop
()
public
localParam
!
:
any
;
/**
* 当前表单项绑定的值
* 值项名称
*
* @type {string}
* @memberof AppUpicker
*/
public
value
:
string
=
""
;
@
Prop
()
public
valueitem
!
:
string
;
/**
* 编辑器参数
* 排序
*
* @type {*
}
* @type {string
}
* @memberof AppUpicker
*/
@
Prop
()
public
itemParams
?:
any
;
@
Prop
()
public
sort
?:
string
;
/**
* 编辑器参数
* 值
*
* @type {string
}
* @type {*
}
* @memberof AppUpicker
*/
@
Prop
()
public
valueItem
?:
string
;
@
Model
(
'change'
)
public
value
?:
any
;
/**
* 列表项请求路径
* 当前值
*
* @type {string}
* @memberof AppUpicker
*/
public
url
:
string
=
''
;
public
curvalue
:
string
=
''
;
/**
* 下拉数组
* @type {any[]}
* @memberof AppP
icker
* @memberof AppUp
icker
*/
public
items
:
any
[]
=
[];
/**
* 请求到的数据
* @type {any[]
}
* @memberof AppPicker
* 下拉图标指向状态管理
* @type {boolean
}
* @memberof AppUpicker
*/
public
itemList
:
any
[]
=
[{
a
:
1
,
b
:
"zhangsan"
},{
a
:
2
,
b
:
"lisi"
},{
a
:
3
,
b
:
"wangwu"
}]
public
open
:
boolean
=
false
;
/**
*
vue 生命周期
*
输入状态
*
* @memberof AppPicker
* @type {boolean}
* @memberof AppUpicker
*/
public
mounted
()
{
// 解析编辑器参数
public
inputState
:
boolean
=
false
;
/**
* 获取关联数据项值
*
* @readonly
* @memberof AppUpicker
*/
get
refvalue
()
{
if
(
this
.
valueitem
&&
this
.
data
)
{
return
this
.
data
[
this
.
valueitem
];
}
return
this
.
curvalue
;
}
/**
* 值变化
*
* @param {*} newVal
* @param {*} oldVal
* @memberof AppUpicker
*/
@
Watch
(
'value'
,{
immediate
:
true
})
public
onValueChange
(
newVal
:
any
,
oldVal
:
any
)
{
this
.
analysis
(
this
.
itemParams
);
// 请求下拉数据
this
.
fectchItemList
(
this
.
url
);
if
(
newVal
){
this
.
curvalue
=
newVal
;
const
value
=
this
.
data
[
this
.
valueitem
];
const
index
=
this
.
items
.
findIndex
((
item
:
any
)
=>
Object
.
is
(
item
.
value
,
value
));
if
(
index
!==
-
1
)
{
return
;
}
this
.
items
=
[];
if
(
value
)
{
this
.
items
.
push
({
text
:
newVal
,
value
:
value
});
}
}
}
/**
*
下拉重新加载数据
*
vue 生命周期
*
* @memberof App
P
icker
* @memberof App
Up
icker
*/
public
onSelectOpen
()
{
this
.
fectchItemList
(
this
.
url
);
public
created
()
{
// 解析编辑器参数
this
.
analysis
(
this
.
itemParams
);
}
/**
* 解析编辑器参数
* @param {*} itemparams
* @memberof AppPicker
*
* @memberof AppUpicker
*/
public
analysis
(
itemparams
:
any
)
{
Object
.
keys
(
itemparams
).
forEach
((
param
)
=>
{
...
...
@@ -145,11 +238,14 @@ export default class AppPicker extends Vue {
/**
* 请求下拉列表数据
* @param {string} url
* @memberof AppPicker
*
* @memberof AppUpicker
*/
public
fectchItemList
(
url
:
string
)
{
let
arg
:
any
=
{};
this
.
handlePublicParams
(
arg
);
this
.
$http
.
get
(
url
)
.
get
(
url
,
arg
.
param
)
.
then
((
response
:
any
)
=>
{
if
(
response
&&
response
.
status
==
200
&&
response
.
data
)
{
this
.
itemList
=
response
.
data
;
...
...
@@ -172,37 +268,118 @@ export default class AppPicker extends Vue {
* 解析下拉列表数据
* @param {any[]} itemList 请求到的数据
* @param {any[]} items 下拉数组
* @memberof AppPicker
*
* @memberof AppUpicker
*/
public
extractItem
(
itemList
:
any
[],
items
:
any
[])
{
this
.
items
.
length
=
0
;
this
.
items
=
[]
;
itemList
.
forEach
((
item
)
=>
{
items
.
push
({
this
.
items
.
push
({
label
:
item
[
this
.
interaction
.
label
],
value
:
item
[
this
.
interaction
.
value
],
});
});
}
/**
* 下拉切换回调
* @param flag
*
* @memberof AppUpicker
*/
public
onSelectOpen
(
flag
:
boolean
):
void
{
this
.
open
=
flag
;
if
(
this
.
open
)
{
this
.
fectchItemList
(
this
.
url
);
}
}
/**
* 下拉选中
*
* @param {string} val
* @memberof AppUpicker
*/
public
onSelect
(
val
:
string
)
{
let
index
=
this
.
items
.
findIndex
((
item
)
=>
Object
.
is
(
item
.
value
,
val
));
if
(
index
>=
0
)
{
this
.
onACSelect
(
this
.
items
[
index
]);
let
item
:
any
=
this
.
items
[
index
];
if
(
this
.
valueitem
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
valueitem
,
value
:
item
.
value
});
}
if
(
this
.
name
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
name
,
value
:
item
.
label
});
}
}
}
/**
* 清除
*
* @memberof AppUpicker
*/
public
onClear
(
$event
:
any
):
void
{
if
(
this
.
valueitem
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
valueitem
,
value
:
''
});
}
if
(
this
.
name
)
{
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
name
,
value
:
''
});
}
this
.
$forceUpdate
();
}
/**
* 公共参数处理
*
* @param {*} arg
* @returns
* @memberof AppUpicker
*/
public
handlePublicParams
(
arg
:
any
):
boolean
{
if
(
!
this
.
data
)
{
this
.
$Notice
.
error
({
title
:
(
this
.
$t
(
'components.appPicker.error'
)
as
any
),
desc
:
(
this
.
$t
(
'components.appPicker.formdataException'
)
as
any
)
});
return
false
;
}
// 合并表单参数
arg
.
param
=
this
.
viewparams
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
viewparams
))
:
{};
arg
.
context
=
this
.
context
?
JSON
.
parse
(
JSON
.
stringify
(
this
.
context
))
:
{};
// 附加参数处理
if
(
this
.
localContext
&&
Object
.
keys
(
this
.
localContext
).
length
>
0
)
{
let
_context
=
this
.
$util
.
computedNavData
(
this
.
data
,
arg
.
context
,
arg
.
param
,
this
.
localContext
);
Object
.
assign
(
arg
.
context
,
_context
);
}
if
(
this
.
localParam
&&
Object
.
keys
(
this
.
localParam
).
length
>
0
)
{
let
_param
=
this
.
$util
.
computedNavData
(
this
.
data
,
arg
.
param
,
arg
.
param
,
this
.
localParam
);
Object
.
assign
(
arg
.
param
,
_param
);
}
return
true
;
}
/**
* 选中数据回调
* @param item
* 展开下拉
*
* @memberof AppUpicker
*/
public
onACSelect
(
item
:
any
):
void
{
if
(
this
.
name
){
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
name
,
value
:
item
.
value
});
public
openDropdown
()
{
const
appUpicker
:
any
=
this
.
$refs
.
appUpicker
;
if
(
appUpicker
)
{
appUpicker
.
focus
();
}
if
(
this
.
valueItem
){
this
.
$emit
(
'formitemvaluechange'
,
{
name
:
this
.
valueItem
,
value
:
item
.
value
});
}
/**
* 收起下拉
*
* @memberof AppUpicker
*/
public
closeDropdown
()
{
const
appUpicker
:
any
=
this
.
$refs
.
appUpicker
;
if
(
appUpicker
)
{
appUpicker
.
blur
();
}
}
}
</
script
>
<
style
lang=
"less"
>
...
...
app_web/src/engine/view/edit-view-engine.ts
浏览文件 @
d32da08b
...
...
@@ -193,19 +193,19 @@ export default class EditViewEngine extends ViewEngine {
*/
public
setTabCaption
(
info
:
string
,
isNew
:
boolean
):
void
{
let
viewdata
:
any
=
this
.
view
.
model
;
let
index
:
number
=
viewdata
.
srf
Title
.
indexOf
(
"-"
);
let
index
:
number
=
viewdata
.
srf
Caption
.
indexOf
(
"-"
);
if
(
viewdata
&&
info
&&
!
Object
.
is
(
info
,
''
))
{
if
(
index
!==
-
1
){
viewdata
.
srf
Title
=
viewdata
.
srfTitle
.
substr
(
0
,
index
);
viewdata
.
srf
Caption
=
viewdata
.
srfCaption
.
substr
(
0
,
index
);
}
// 解决表格视图标题问题
if
(
this
.
view
.
$tabPageExp
&&
this
.
view
.
viewDefaultUsage
){
this
.
view
.
$tabPageExp
.
setCurPageCaption
(
this
.
view
.
$t
(
viewdata
.
srf
Title
),
this
.
view
.
$t
(
viewdata
.
srfTitle
),
info
);
this
.
view
.
$tabPageExp
.
setCurPageCaption
(
this
.
view
.
$t
(
viewdata
.
srf
Caption
),
this
.
view
.
$t
(
viewdata
.
srfCaption
),
info
);
}
if
(
this
.
view
.
$route
){
this
.
view
.
$route
.
meta
.
info
=
info
;
}
this
.
view
.
model
.
srf
Title
=
`
${
this
.
view
.
$t
(
viewdata
.
srfTitle
)}
-
${
viewdata
.
dataInfo
}
`
;
this
.
view
.
model
.
srf
Caption
=
`
${
this
.
view
.
$t
(
viewdata
.
srfCaption
)}
-
${
viewdata
.
dataInfo
}
`
;
this
.
view
.
initNavDataWithRoute
(
null
,
isNew
);
}
}
...
...
app_web/src/locale/lang/en-US.ts
浏览文件 @
d32da08b
...
...
@@ -2,6 +2,7 @@ import wfremodel_en_US from '@locale/lanres/entities/wfremodel/wfremodel_en_US';
import
wfmember_en_US
from
'@locale/lanres/entities/wfmember/wfmember_en_US'
;
import
wfgroup_en_US
from
'@locale/lanres/entities/wfgroup/wfgroup_en_US'
;
import
wfuser_en_US
from
'@locale/lanres/entities/wfuser/wfuser_en_US'
;
import
wftask_en_US
from
'@locale/lanres/entities/wftask/wftask_en_US'
;
import
wfprocessdefinition_en_US
from
'@locale/lanres/entities/wfprocess-definition/wfprocess-definition_en_US'
;
import
wfsystem_en_US
from
'@locale/lanres/entities/wfsystem/wfsystem_en_US'
;
import
components_en_US
from
'@locale/lanres/components/components_en_US'
;
...
...
@@ -224,6 +225,7 @@ export default {
wfmember
:
wfmember_en_US
,
wfgroup
:
wfgroup_en_US
,
wfuser
:
wfuser_en_US
,
wftask
:
wftask_en_US
,
wfprocessdefinition
:
wfprocessdefinition_en_US
,
wfsystem
:
wfsystem_en_US
,
},
...
...
app_web/src/locale/lang/zh-CN.ts
浏览文件 @
d32da08b
...
...
@@ -2,6 +2,7 @@ import wfremodel_zh_CN from '@locale/lanres/entities/wfremodel/wfremodel_zh_CN';
import
wfmember_zh_CN
from
'@locale/lanres/entities/wfmember/wfmember_zh_CN'
;
import
wfgroup_zh_CN
from
'@locale/lanres/entities/wfgroup/wfgroup_zh_CN'
;
import
wfuser_zh_CN
from
'@locale/lanres/entities/wfuser/wfuser_zh_CN'
;
import
wftask_zh_CN
from
'@locale/lanres/entities/wftask/wftask_zh_CN'
;
import
wfprocessdefinition_zh_CN
from
'@locale/lanres/entities/wfprocess-definition/wfprocess-definition_zh_CN'
;
import
wfsystem_zh_CN
from
'@locale/lanres/entities/wfsystem/wfsystem_zh_CN'
;
import
components_zh_CN
from
'@locale/lanres/components/components_zh_CN'
;
...
...
@@ -223,6 +224,7 @@ export default {
wfmember
:
wfmember_zh_CN
,
wfgroup
:
wfgroup_zh_CN
,
wfuser
:
wfuser_zh_CN
,
wftask
:
wftask_zh_CN
,
wfprocessdefinition
:
wfprocessdefinition_zh_CN
,
wfsystem
:
wfsystem_zh_CN
,
},
...
...
app_web/src/locale/lanres/entities/wfprocess-definition/wfprocess-definition_en_US.ts
浏览文件 @
d32da08b
...
...
@@ -6,7 +6,6 @@ export default {
modelversion
:
"模型版本"
,
modelenable
:
"模型是否启用"
,
pssystemid
:
"系统标识"
,
taskprocessdefinitionkey
:
"TaskDefinitionKey"
,
md5check
:
"校验"
,
bpmnfile
:
"BPMN"
,
deploykey
:
"DeployKey"
,
...
...
app_web/src/locale/lanres/entities/wfprocess-definition/wfprocess-definition_zh_CN.ts
浏览文件 @
d32da08b
...
...
@@ -5,7 +5,6 @@ export default {
modelversion
:
"模型版本"
,
modelenable
:
"模型是否启用"
,
pssystemid
:
"系统标识"
,
taskprocessdefinitionkey
:
"TaskDefinitionKey"
,
md5check
:
"校验"
,
bpmnfile
:
"BPMN"
,
deploykey
:
"DeployKey"
,
...
...
app_web/src/locale/lanres/entities/wftask/wftask_en_US.ts
0 → 100644
浏览文件 @
d32da08b
export
default
{
fields
:
{
id
:
"任务标识"
,
name
:
"状态"
,
processdefinitionid
:
"DefinitionId"
,
processdefinitionkey
:
"DefinitionKey"
,
processdefinitionname
:
"流程"
,
taskdefinitionkey
:
"TaskDefinitionKey"
,
description
:
"待办事项"
,
createtime
:
"发起时间"
,
processinstanceid
:
"实例标识"
,
processinstancebusinesskey
:
"业务键值"
,
},
};
\ No newline at end of file
app_web/src/locale/lanres/entities/wftask/wftask_zh_CN.ts
0 → 100644
浏览文件 @
d32da08b
export
default
{
fields
:
{
id
:
"任务标识"
,
name
:
"状态"
,
processdefinitionid
:
"DefinitionId"
,
processdefinitionkey
:
"DefinitionKey"
,
processdefinitionname
:
"流程"
,
taskdefinitionkey
:
"TaskDefinitionKey"
,
description
:
"待办事项"
,
createtime
:
"发起时间"
,
processinstanceid
:
"实例标识"
,
processinstancebusinesskey
:
"业务键值"
,
},
};
\ No newline at end of file
app_web/src/mock/entity/wftasks/wftasks.ts
0 → 100644
浏览文件 @
d32da08b
import
qs
from
'qs'
;
import
{
MockAdapter
}
from
'@/mock/mock-adapter'
;
const
mock
=
MockAdapter
.
getInstance
();
// 模拟数据
const
mockDatas
:
Array
<
any
>
=
[
];
//getwflink
mock
.
onGet
(
new
RegExp
(
/^
\/
wfcore
\/
ibzwf-app-web
\/
wftasks
\/[
a-zA-Z0-9
\-\;]
+
\/
usertasks
\/[
a-zA-Z0-9
\-\;]
+
\/
ways$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: getwflink"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
console
.
groupEnd
();
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
{}];
}
return
[
status
,[
{
"sequenceFlowId"
:
"dfdsfdsfdsfdsfds"
,
"sequenceFlowName"
:
"同意"
,
"taskId"
:
"aaaaddddccccddddd"
,
"processDefinitionKey"
:
"support-workorders-approve-v1"
,
"processInstanceId"
:
"ddlfldldfldsfds"
,
"refViewKey"
:
""
},
{
"sequenceFlowId"
:
"ddssdfdfdfdfsfdf"
,
"sequenceFlowName"
:
"不同意"
,
"taskId"
:
"aaaaddddccccddddd"
,
"processDefinitionKey"
:
"support-workorders-approve-v1"
,
"processInstanceId"
:
"ddfdsldlfdlldsf"
,
"refViewKey"
:
"workorder_ltform_editview"
}
]];
});
// getwfstep
mock
.
onGet
(
new
RegExp
(
/^
\/
wfcore
\/
ibzwf-app-web
\/
wftasks
\/
process-definitions-nodes$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: getwfstep"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
console
.
groupEnd
();
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
{}];
}
return
[
status
,
[
{
"userTaskId"
:
"sddfddfd-dfdf-fdfd-fdf-dfdfd"
,
"userTaskName"
:
"待审"
,
"cnt"
:
0
,
"processDefinitionKey"
:
"support-workorders-approve-v1"
,
"processDefinitionName"
:
"工单审批流程v1"
},
{
"userTaskId"
:
"sddfddfd-dfdf-fdfd-fdf-87927"
,
"userTaskName"
:
"待分配"
,
"cnt"
:
3
,
"processDefinitionKey"
:
"support-workorders-approve-v1"
,
"processDefinitionName"
:
"工单审批流程v1"
}
]];
});
// createBatch
mock
.
onPost
(
new
RegExp
(
/^
\/
wftasks
\/
batch$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: createBatch"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
console
.
groupEnd
();
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
{}];
}
return
[
status
,
{}];
});
// updateBatch
mock
.
onPut
(
new
RegExp
(
/^
\/
wftasks
\/
batch$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: updateBatch"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
console
.
groupEnd
();
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
{}];
}
return
[
status
,
{}];
});
// removeBatch
mock
.
onDelete
(
new
RegExp
(
/^
\/
wftasks
\/
batch$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: removeBatch"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
console
.
groupEnd
();
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
{}];
}
return
[
status
,
{}];
});
// Select
mock
.
onGet
(
new
RegExp
(
/^
\/
wftasks
\/([
a-zA-Z0-9
\-\;]{1,35})\/
select$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: Select"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'id'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
wftasks
\/([
a-zA-Z0-9
\-\;]{1,35})\/
select$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
let
items
=
mockDatas
?
mockDatas
:
[];
let
_items
=
items
.
find
((
item
:
any
)
=>
Object
.
is
(
item
.
id
,
tempValue
.
id
));
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
(
_items
);
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
_items
];
});
// Create
mock
.
onPost
(
new
RegExp
(
/^
\/
wftasks
\/?([
a-zA-Z0-9
\-\;]{0,35})
$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: Create"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'id'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
wftasks
\/([
a-zA-Z0-9
\-\;]{1,35})
$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
(
mockDatas
[
0
]);
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
mockDatas
[
0
]];
});
// Update
mock
.
onPut
(
new
RegExp
(
/^
\/
wftasks
\/?([
a-zA-Z0-9
\-\;]{0,35})
$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: Update"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'id'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
wftasks
\/([
a-zA-Z0-9
\-\;]{1,35})
$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
//let items = mockDatas ? mockDatas : [];
//let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
let
data
=
JSON
.
parse
(
config
.
data
);
mockDatas
.
forEach
((
item
)
=>
{
if
(
item
[
'id'
]
==
tempValue
[
'id'
]
){
for
(
let
value
in
data
){
if
(
item
.
hasOwnProperty
(
value
)){
item
[
value
]
=
data
[
value
];
}
}
}
})
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
(
data
);
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
data
];
});
// GetDraft
mock
.
onGet
(
new
RegExp
(
/^
\/
wftasks
\/
getdraft$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: GetDraft"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
// GetDraft
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
({});
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
{}];
});
// CheckKey
mock
.
onPost
(
new
RegExp
(
/^
\/
wftasks
\/?([
a-zA-Z0-9
\-\;]{0,35})\/
checkkey$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: CheckKey"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'id'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
wftasks
\/([
a-zA-Z0-9
\-\;]{1,35})\/
checkkey$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
//let items = mockDatas ? mockDatas : [];
//let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
let
data
=
JSON
.
parse
(
config
.
data
);
mockDatas
.
forEach
((
item
)
=>
{
if
(
item
[
'id'
]
==
tempValue
[
'id'
]
){
for
(
let
value
in
data
){
if
(
item
.
hasOwnProperty
(
value
)){
item
[
value
]
=
data
[
value
];
}
}
}
})
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
(
data
);
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
data
];
});
// Save
mock
.
onPost
(
new
RegExp
(
/^
\/
wftasks
\/?([
a-zA-Z0-9
\-\;]{0,35})\/
save$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: Save"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'id'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
wftasks
\/([
a-zA-Z0-9
\-\;]{1,35})\/
save$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
//let items = mockDatas ? mockDatas : [];
//let _items = items.find((item: any) => Object.is(item.id, tempValue.id));
let
data
=
JSON
.
parse
(
config
.
data
);
mockDatas
.
forEach
((
item
)
=>
{
if
(
item
[
'id'
]
==
tempValue
[
'id'
]
){
for
(
let
value
in
data
){
if
(
item
.
hasOwnProperty
(
value
)){
item
[
value
]
=
data
[
value
];
}
}
}
})
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
(
data
);
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
data
];
});
// FetchDefault
mock
.
onGet
(
new
RegExp
(
/^
\/
wftasks
\/
fetchdefault$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: FetchDefault"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
(
mockDatas
);
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
mockDatas
?
mockDatas
:
[]];
});
// FetchDefault
mock
.
onGet
(
new
RegExp
(
/^
\/
wftasks
\/
fetchdefault
(\?[\w
-.
/
?%&=,
]
*
)
*$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: FetchDefault"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
if
(
config
.
url
.
includes
(
'page'
)){
let
url
=
config
.
url
.
split
(
'?'
)[
1
];
let
params
=
qs
.
parse
(
url
);
Object
.
assign
(
config
,
params
);
}
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
let
total
=
mockDatas
.
length
;
let
records
:
Array
<
any
>
=
[];
if
(
!
config
.
page
||
!
config
.
size
){
records
=
mockDatas
;
}
else
{
if
((
config
.
page
-
1
)
*
config
.
size
<
total
){
records
=
mockDatas
.
slice
(
config
.
page
,
config
.
size
);
}
}
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
(
records
?
records
:
[]);
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
records
?
records
:
[]];
});
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// URI参数传递情况未实现
// Remove
mock
.
onDelete
(
new
RegExp
(
/^
\/
wftasks
\/([
a-zA-Z0-9
\-\;]{1,35})
$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: Remove"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'id'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
wftasks
\/([
a-zA-Z0-9
\-\;]{1,35})
$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
let
items
=
mockDatas
?
mockDatas
:
[];
let
_items
=
items
.
find
((
item
:
any
)
=>
Object
.
is
(
item
.
id
,
tempValue
.
id
));
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
(
_items
?
_items
:{});
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
_items
?
_items
:{}];
});
// Get
mock
.
onGet
(
new
RegExp
(
/^
\/
wftasks
\/([
a-zA-Z0-9
\-\;]{1,35})
$/
)).
reply
((
config
:
any
)
=>
{
console
.
groupCollapsed
(
"实体:wftask 方法: Get"
);
console
.
table
({
url
:
config
.
url
,
method
:
config
.
method
,
data
:
config
.
data
});
let
status
=
MockAdapter
.
mockStatus
(
config
);
if
(
status
!==
200
)
{
return
[
status
,
null
];
}
const
paramArray
:
Array
<
any
>
=
[
'id'
];
const
matchArray
:
any
=
new
RegExp
(
/^
\/
wftasks
\/([
a-zA-Z0-9
\-\;]{1,35})
$/
).
exec
(
config
.
url
);
let
tempValue
:
any
=
{};
if
(
matchArray
&&
matchArray
.
length
>
1
&&
paramArray
&&
paramArray
.
length
>
0
){
paramArray
.
forEach
((
item
:
any
,
index
:
number
)
=>
{
Object
.
defineProperty
(
tempValue
,
item
,
{
enumerable
:
true
,
value
:
matchArray
[
index
+
1
]
});
});
}
let
items
=
mockDatas
?
mockDatas
:
[];
let
_items
=
items
.
find
((
item
:
any
)
=>
Object
.
is
(
item
.
id
,
tempValue
.
id
));
console
.
groupCollapsed
(
"response数据 status: "
+
status
+
" data: "
);
console
.
table
(
_items
?
_items
:{});
console
.
groupEnd
();
console
.
groupEnd
();
return
[
status
,
_items
?
_items
:{}];
});
app_web/src/mock/index.ts
浏览文件 @
d32da08b
...
...
@@ -11,5 +11,6 @@ import './entity/wfremodels/wfremodels';
import
'./entity/wfmembers/wfmembers'
;
import
'./entity/wfgroups/wfgroups'
;
import
'./entity/wfusers/wfusers'
;
import
'./entity/wftasks/wftasks'
;
import
'./entity/wfprocess-definitions/wfprocess-definitions'
;
import
'./entity/wfsystems/wfsystems'
;
app_web/src/pages/workflow/wfgroup-edit-view/wfgroup-edit-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
"view-container deeditview wfgroup-edit-view"
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfgroupeditview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfgroupeditview"
></app-studioaction>
<card
class=
'view-card '
:disHover=
"true"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Title
)
}}
</span>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Caption
)
}}
</span>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem3.visabled"
:disabled=
"toolBarModels.tbitem3.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'tbitem3' }, $event)">
...
...
@@ -556,7 +556,7 @@ export default class WFGroupEditViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfgroup-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfgroup-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -567,7 +567,7 @@ export default class WFGroupEditViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfgroup-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfgroup-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfgroup-grid-view/wfgroup-grid-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
'view-container degridview wfgroup-grid-view'
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfgroupgridview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfgroupgridview"
></app-studioaction>
<card
class=
'view-card '
:dis-hover=
"true"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Title
)
}}
</span>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Caption
)
}}
</span>
</div>
<div
class=
'content-container'
>
<div
class=
'view-top-messages'
>
...
...
@@ -590,7 +590,7 @@ export default class WFGroupGridViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfgroup-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfgroup-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -601,7 +601,7 @@ export default class WFGroupGridViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfgroup-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfgroup-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfgroup-mpickup-view/wfgroup-mpickup-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
"view-container dempickupview wfgroup-mpickup-view"
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfgroupmpickupview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfgroupmpickupview"
></app-studioaction>
<card
class=
'view-card view-no-caption view-no-toolbar'
:dis-hover=
"true"
:padding=
"0"
:bordered=
"false"
>
<div
class=
"content-container pickup-view"
>
<div
class=
"translate-contant"
>
...
...
@@ -472,7 +472,7 @@ export default class WFGroupMPickupViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfgroup-mpickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfgroup-mpickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -483,7 +483,7 @@ export default class WFGroupMPickupViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfgroup-mpickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfgroup-mpickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfgroup-pickup-grid-view/wfgroup-pickup-grid-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
'view-container depickupgridview wfgroup-pickup-grid-view'
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfgrouppickupgridview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfgrouppickupgridview"
></app-studioaction>
<card
class=
'view-card view-no-caption view-no-toolbar'
:dis-hover=
"true"
:bordered=
"false"
>
<div
class=
'content-container pickup-grid-view'
>
<view
_searchform
...
...
@@ -446,7 +446,7 @@ export default class WFGroupPickupGridViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfgroup-pickup-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfgroup-pickup-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -457,7 +457,7 @@ export default class WFGroupPickupGridViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfgroup-pickup-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfgroup-pickup-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfgroup-pickup-view/wfgroup-pickup-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
"view-container depickupview wfgroup-pickup-view"
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfgrouppickupview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfgrouppickupview"
></app-studioaction>
<card
class=
'view-card view-no-caption view-no-toolbar'
:dis-hover=
"true"
:padding=
"0"
:bordered=
"false"
>
<div
class=
"content-container pickup-view"
>
<view
_pickupviewpanel
...
...
@@ -439,7 +439,7 @@ export default class WFGroupPickupViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfgroup-pickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfgroup-pickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -450,7 +450,7 @@ export default class WFGroupPickupViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfgroup-pickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfgroup-pickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfgroup
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfindex-view/router.ts
浏览文件 @
d32da08b
...
...
@@ -25,7 +25,7 @@ const router = new Router({
});
},
meta
:
{
caption
:
'app.views.wfindexview.
title
'
,
caption
:
'app.views.wfindexview.
caption
'
,
info
:
''
,
viewType
:
'APPINDEX'
,
parameters
:
[
...
...
@@ -38,7 +38,7 @@ const router = new Router({
{
path
:
'wfgroups/:wfgroup?/pickupgridview/:pickupgridview?'
,
meta
:
{
caption
:
'entities.wfgroup.views.pickupgridview.
title
'
,
caption
:
'entities.wfgroup.views.pickupgridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -52,7 +52,7 @@ const router = new Router({
{
path
:
'wfusers/:wfuser?/pickupgridview/:pickupgridview?'
,
meta
:
{
caption
:
'entities.wfuser.views.pickupgridview.
title
'
,
caption
:
'entities.wfuser.views.pickupgridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -66,7 +66,7 @@ const router = new Router({
{
path
:
'wfprocessdefinitions/:wfprocessdefinition?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.wfprocessdefinition.views.gridview.
title
'
,
caption
:
'entities.wfprocessdefinition.views.gridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -80,7 +80,7 @@ const router = new Router({
{
path
:
'wfusers/:wfuser?/pickupview/:pickupview?'
,
meta
:
{
caption
:
'entities.wfuser.views.pickupview.
title
'
,
caption
:
'entities.wfuser.views.pickupview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -94,7 +94,7 @@ const router = new Router({
{
path
:
'wfremodels/:wfremodel?/editview/:editview?'
,
meta
:
{
caption
:
'entities.wfremodel.views.editview.
title
'
,
caption
:
'entities.wfremodel.views.editview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -108,7 +108,7 @@ const router = new Router({
{
path
:
'wfusers/:wfuser?/wfmembers/:wfmember?/editview/:editview?'
,
meta
:
{
caption
:
'entities.wfmember.views.editview.
title
'
,
caption
:
'entities.wfmember.views.editview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -123,7 +123,7 @@ const router = new Router({
{
path
:
'wfgroups/:wfgroup?/wfmembers/:wfmember?/editview/:editview?'
,
meta
:
{
caption
:
'entities.wfmember.views.editview.
title
'
,
caption
:
'entities.wfmember.views.editview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -138,7 +138,7 @@ const router = new Router({
{
path
:
'wfmembers/:wfmember?/editview/:editview?'
,
meta
:
{
caption
:
'entities.wfmember.views.editview.
title
'
,
caption
:
'entities.wfmember.views.editview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -152,7 +152,7 @@ const router = new Router({
{
path
:
'wfgroups/:wfgroup?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.wfgroup.views.gridview.
title
'
,
caption
:
'entities.wfgroup.views.gridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -166,7 +166,7 @@ const router = new Router({
{
path
:
'wfusers/:wfuser?/mpickupview/:mpickupview?'
,
meta
:
{
caption
:
'entities.wfuser.views.mpickupview.
title
'
,
caption
:
'entities.wfuser.views.mpickupview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -180,7 +180,7 @@ const router = new Router({
{
path
:
'wfgroups/:wfgroup?/mpickupview/:mpickupview?'
,
meta
:
{
caption
:
'entities.wfgroup.views.mpickupview.
title
'
,
caption
:
'entities.wfgroup.views.mpickupview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -194,7 +194,7 @@ const router = new Router({
{
path
:
'wfusers/:wfuser?/wfmembers/:wfmember?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.wfmember.views.gridview.
title
'
,
caption
:
'entities.wfmember.views.gridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -209,7 +209,7 @@ const router = new Router({
{
path
:
'wfgroups/:wfgroup?/wfmembers/:wfmember?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.wfmember.views.gridview.
title
'
,
caption
:
'entities.wfmember.views.gridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -224,7 +224,7 @@ const router = new Router({
{
path
:
'wfmembers/:wfmember?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.wfmember.views.gridview.
title
'
,
caption
:
'entities.wfmember.views.gridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -238,7 +238,7 @@ const router = new Router({
{
path
:
'wfgroups/:wfgroup?/pickupview/:pickupview?'
,
meta
:
{
caption
:
'entities.wfgroup.views.pickupview.
title
'
,
caption
:
'entities.wfgroup.views.pickupview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -252,7 +252,7 @@ const router = new Router({
{
path
:
'wfgroups/:wfgroup?/editview/:editview?'
,
meta
:
{
caption
:
'entities.wfgroup.views.editview.
title
'
,
caption
:
'entities.wfgroup.views.editview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -266,7 +266,7 @@ const router = new Router({
{
path
:
'wfprocessdefinitions/:wfprocessdefinition?/editview/:editview?'
,
meta
:
{
caption
:
'entities.wfprocessdefinition.views.editview.
title
'
,
caption
:
'entities.wfprocessdefinition.views.editview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfindexview'
,
parameterName
:
'wfindexview'
},
...
...
@@ -283,7 +283,7 @@ const router = new Router({
{
path
:
'/wfusers/:wfuser?/wfmembers/:wfmember?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.wfmember.views.gridview.
title
'
,
caption
:
'entities.wfmember.views.gridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfusers'
,
parameterName
:
'wfuser'
},
...
...
@@ -297,7 +297,7 @@ const router = new Router({
{
path
:
'/wfgroups/:wfgroup?/wfmembers/:wfmember?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.wfmember.views.gridview.
title
'
,
caption
:
'entities.wfmember.views.gridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfgroups'
,
parameterName
:
'wfgroup'
},
...
...
@@ -311,7 +311,7 @@ const router = new Router({
{
path
:
'/wfmembers/:wfmember?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.wfmember.views.gridview.
title
'
,
caption
:
'entities.wfmember.views.gridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfmembers'
,
parameterName
:
'wfmember'
},
...
...
@@ -324,7 +324,7 @@ const router = new Router({
{
path
:
'/wfusers/:wfuser?/mpickupview/:mpickupview?'
,
meta
:
{
caption
:
'entities.wfuser.views.mpickupview.
title
'
,
caption
:
'entities.wfuser.views.mpickupview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfusers'
,
parameterName
:
'wfuser'
},
...
...
@@ -337,7 +337,7 @@ const router = new Router({
{
path
:
'/wfusers/:wfuser?/pickupview/:pickupview?'
,
meta
:
{
caption
:
'entities.wfuser.views.pickupview.
title
'
,
caption
:
'entities.wfuser.views.pickupview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfusers'
,
parameterName
:
'wfuser'
},
...
...
@@ -350,7 +350,7 @@ const router = new Router({
{
path
:
'/wfgroups/:wfgroup?/mpickupview/:mpickupview?'
,
meta
:
{
caption
:
'entities.wfgroup.views.mpickupview.
title
'
,
caption
:
'entities.wfgroup.views.mpickupview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfgroups'
,
parameterName
:
'wfgroup'
},
...
...
@@ -363,7 +363,7 @@ const router = new Router({
{
path
:
'/wfprocessdefinitions/:wfprocessdefinition?/editview/:editview?'
,
meta
:
{
caption
:
'entities.wfprocessdefinition.views.editview.
title
'
,
caption
:
'entities.wfprocessdefinition.views.editview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfprocessdefinitions'
,
parameterName
:
'wfprocessdefinition'
},
...
...
@@ -376,7 +376,7 @@ const router = new Router({
{
path
:
'/wfprocessdefinitions/:wfprocessdefinition?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.wfprocessdefinition.views.gridview.
title
'
,
caption
:
'entities.wfprocessdefinition.views.gridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfprocessdefinitions'
,
parameterName
:
'wfprocessdefinition'
},
...
...
@@ -389,7 +389,7 @@ const router = new Router({
{
path
:
'/wfusers/:wfuser?/pickupgridview/:pickupgridview?'
,
meta
:
{
caption
:
'entities.wfuser.views.pickupgridview.
title
'
,
caption
:
'entities.wfuser.views.pickupgridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfusers'
,
parameterName
:
'wfuser'
},
...
...
@@ -402,7 +402,7 @@ const router = new Router({
{
path
:
'/wfusers/:wfuser?/wfmembers/:wfmember?/editview/:editview?'
,
meta
:
{
caption
:
'entities.wfmember.views.editview.
title
'
,
caption
:
'entities.wfmember.views.editview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfusers'
,
parameterName
:
'wfuser'
},
...
...
@@ -416,7 +416,7 @@ const router = new Router({
{
path
:
'/wfgroups/:wfgroup?/wfmembers/:wfmember?/editview/:editview?'
,
meta
:
{
caption
:
'entities.wfmember.views.editview.
title
'
,
caption
:
'entities.wfmember.views.editview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfgroups'
,
parameterName
:
'wfgroup'
},
...
...
@@ -430,7 +430,7 @@ const router = new Router({
{
path
:
'/wfmembers/:wfmember?/editview/:editview?'
,
meta
:
{
caption
:
'entities.wfmember.views.editview.
title
'
,
caption
:
'entities.wfmember.views.editview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfmembers'
,
parameterName
:
'wfmember'
},
...
...
@@ -443,7 +443,7 @@ const router = new Router({
{
path
:
'/wfgroups/:wfgroup?/editview/:editview?'
,
meta
:
{
caption
:
'entities.wfgroup.views.editview.
title
'
,
caption
:
'entities.wfgroup.views.editview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfgroups'
,
parameterName
:
'wfgroup'
},
...
...
@@ -456,7 +456,7 @@ const router = new Router({
{
path
:
'/wfgroups/:wfgroup?/pickupview/:pickupview?'
,
meta
:
{
caption
:
'entities.wfgroup.views.pickupview.
title
'
,
caption
:
'entities.wfgroup.views.pickupview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfgroups'
,
parameterName
:
'wfgroup'
},
...
...
@@ -469,7 +469,7 @@ const router = new Router({
{
path
:
'/wfremodels/:wfremodel?/editview/:editview?'
,
meta
:
{
caption
:
'entities.wfremodel.views.editview.
title
'
,
caption
:
'entities.wfremodel.views.editview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfremodels'
,
parameterName
:
'wfremodel'
},
...
...
@@ -482,7 +482,7 @@ const router = new Router({
{
path
:
'/wfgroups/:wfgroup?/pickupgridview/:pickupgridview?'
,
meta
:
{
caption
:
'entities.wfgroup.views.pickupgridview.
title
'
,
caption
:
'entities.wfgroup.views.pickupgridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfgroups'
,
parameterName
:
'wfgroup'
},
...
...
@@ -495,7 +495,7 @@ const router = new Router({
{
path
:
'/wfgroups/:wfgroup?/gridview/:gridview?'
,
meta
:
{
caption
:
'entities.wfgroup.views.gridview.
title
'
,
caption
:
'entities.wfgroup.views.gridview.
caption
'
,
info
:
''
,
parameters
:
[
{
pathName
:
'wfgroups'
,
parameterName
:
'wfgroup'
},
...
...
app_web/src/pages/workflow/wfindex-view/wfindex-view-base.vue
浏览文件 @
d32da08b
...
...
@@ -412,7 +412,7 @@ export default class WFIndexViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfindex-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
null
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfindex-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
null
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -423,7 +423,7 @@ export default class WFIndexViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfindex-view'
,
tag
:
this
.
viewtag
,
srfkey
:
null
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfindex-view'
,
tag
:
this
.
viewtag
,
srfkey
:
null
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfmember-edit-view/wfmember-edit-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
"view-container deeditview wfmember-edit-view"
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfmembereditview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfmembereditview"
></app-studioaction>
<card
class=
'view-card '
:disHover=
"true"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Title
)
}}
</span>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Caption
)
}}
</span>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem3.visabled"
:disabled=
"toolBarModels.tbitem3.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'tbitem3' }, $event)">
...
...
@@ -556,7 +556,7 @@ export default class WFMemberEditViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfmember-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfmember
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfmember-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfmember
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -567,7 +567,7 @@ export default class WFMemberEditViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfmember-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfmember
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfmember-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfmember
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfmember-grid-view/wfmember-grid-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
'view-container degridview wfmember-grid-view'
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfmembergridview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfmembergridview"
></app-studioaction>
<card
class=
'view-card '
:dis-hover=
"true"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Title
)
}}
</span>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Caption
)
}}
</span>
</div>
<div
class=
'content-container'
>
<div
class=
'view-top-messages'
>
...
...
@@ -590,7 +590,7 @@ export default class WFMemberGridViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfmember-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfmember
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfmember-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfmember
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -601,7 +601,7 @@ export default class WFMemberGridViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfmember-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfmember
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfmember-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfmember
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfprocess-definition-edit-view/wfprocess-definition-edit-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
"view-container deeditview wfprocess-definition-edit-view"
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfprocessdefinitioneditview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfprocessdefinitioneditview"
></app-studioaction>
<card
class=
'view-card '
:disHover=
"true"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Title
)
}}
</span>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Caption
)
}}
</span>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem3.visabled"
:disabled=
"toolBarModels.tbitem3.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'tbitem3' }, $event)">
...
...
@@ -556,7 +556,7 @@ export default class WFProcessDefinitionEditViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfprocess-definition-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfprocessdefinition
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfprocess-definition-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfprocessdefinition
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -567,7 +567,7 @@ export default class WFProcessDefinitionEditViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfprocess-definition-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfprocessdefinition
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfprocess-definition-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfprocessdefinition
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfprocess-definition-grid-view/wfprocess-definition-grid-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
'view-container degridview wfprocess-definition-grid-view'
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfprocessdefinitiongridview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfprocessdefinitiongridview"
></app-studioaction>
<card
class=
'view-card '
:dis-hover=
"true"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Title
)
}}
</span>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Caption
)
}}
</span>
</div>
<div
class=
'content-container'
>
<div
class=
'view-top-messages'
>
...
...
@@ -590,7 +590,7 @@ export default class WFProcessDefinitionGridViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfprocess-definition-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfprocessdefinition
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfprocess-definition-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfprocessdefinition
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -601,7 +601,7 @@ export default class WFProcessDefinitionGridViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfprocess-definition-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfprocessdefinition
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfprocess-definition-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfprocessdefinition
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfremodel-edit-view/wfremodel-edit-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
"view-container deeditview wfremodel-edit-view"
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfremodeleditview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfremodeleditview"
></app-studioaction>
<card
class=
'view-card '
:disHover=
"true"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Title
)
}}
</span>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Caption
)
}}
</span>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem1.visabled"
:disabled=
"toolBarModels.tbitem1.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'tbitem1' }, $event)">
...
...
@@ -461,7 +461,7 @@ export default class WFREModelEditViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfremodel-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfremodel
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfremodel-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfremodel
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -472,7 +472,7 @@ export default class WFREModelEditViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfremodel-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfremodel
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfremodel-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfremodel
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfuser-edit-view/wfuser-edit-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
"view-container deeditview wfuser-edit-view"
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfusereditview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfusereditview"
></app-studioaction>
<card
class=
'view-card '
:disHover=
"true"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Title
)
}}
</span>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Caption
)
}}
</span>
<div
class=
'toolbar-container'
>
<tooltip
:transfer=
"true"
:max-width=
"600"
>
<i-button
v-show=
"toolBarModels.tbitem3.visabled"
:disabled=
"toolBarModels.tbitem3.disabled"
class=
''
@
click=
"toolbar_click(
{ tag: 'tbitem3' }, $event)">
...
...
@@ -556,7 +556,7 @@ export default class WFUserEditViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfuser-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfuser-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -567,7 +567,7 @@ export default class WFUserEditViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfuser-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfuser-edit-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfuser-grid-view/wfuser-grid-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
'view-container degridview wfuser-grid-view'
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfusergridview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfusergridview"
></app-studioaction>
<card
class=
'view-card '
:dis-hover=
"true"
:bordered=
"false"
>
<div
slot=
'title'
class=
"header-container"
>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Title
)
}}
</span>
<span
class=
'caption-info'
>
{{
$t
(
model
.
srf
Caption
)
}}
</span>
</div>
<div
class=
'content-container'
>
<div
class=
'view-top-messages'
>
...
...
@@ -590,7 +590,7 @@ export default class WFUserGridViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfuser-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfuser-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -601,7 +601,7 @@ export default class WFUserGridViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfuser-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfuser-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfuser-mpickup-view/wfuser-mpickup-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
"view-container dempickupview wfuser-mpickup-view"
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfusermpickupview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfusermpickupview"
></app-studioaction>
<card
class=
'view-card view-no-caption view-no-toolbar'
:dis-hover=
"true"
:padding=
"0"
:bordered=
"false"
>
<div
class=
"content-container pickup-view"
>
<div
class=
"translate-contant"
>
...
...
@@ -472,7 +472,7 @@ export default class WFUserMPickupViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfuser-mpickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfuser-mpickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -483,7 +483,7 @@ export default class WFUserMPickupViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfuser-mpickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfuser-mpickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfuser-pickup-grid-view/wfuser-pickup-grid-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
'view-container depickupgridview wfuser-pickup-grid-view'
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfuserpickupgridview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfuserpickupgridview"
></app-studioaction>
<card
class=
'view-card view-no-caption view-no-toolbar'
:dis-hover=
"true"
:bordered=
"false"
>
<div
class=
'content-container pickup-grid-view'
>
<view
_searchform
...
...
@@ -446,7 +446,7 @@ export default class WFUserPickupGridViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfuser-pickup-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfuser-pickup-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -457,7 +457,7 @@ export default class WFUserPickupGridViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfuser-pickup-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfuser-pickup-grid-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/pages/workflow/wfuser-pickup-view/wfuser-pickup-view-base.vue
浏览文件 @
d32da08b
<
template
>
<div
class=
"view-container depickupview wfuser-pickup-view"
>
<app-studioaction
:viewTitle=
"$t(model.srf
Title
)"
viewName=
"wfuserpickupview"
></app-studioaction>
<app-studioaction
:viewTitle=
"$t(model.srf
Caption
)"
viewName=
"wfuserpickupview"
></app-studioaction>
<card
class=
'view-card view-no-caption view-no-toolbar'
:dis-hover=
"true"
:padding=
"0"
:bordered=
"false"
>
<div
class=
"content-container pickup-view"
>
<view
_pickupviewpanel
...
...
@@ -439,7 +439,7 @@ export default class WFUserPickupViewBase extends Vue {
*/
public
initNavDataWithRoute
(
data
:
any
=
null
,
isNew
:
boolean
=
false
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavData
({
id
:
'wfuser-pickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
this
.
navDataService
.
addNavData
({
id
:
'wfuser-pickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
isNew
?
null
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
});
}
}
...
...
@@ -450,7 +450,7 @@ export default class WFUserPickupViewBase extends Vue {
*/
public
initNavDataWithTab
(
data
:
any
=
null
,
isOnlyAdd
:
boolean
=
true
,
isAlways
:
boolean
=
false
){
if
(
isAlways
||
(
this
.
viewDefaultUsage
&&
!
Object
.
is
(
this
.
navModel
,
"route"
))
){
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfuser-pickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Title
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
this
.
navDataService
.
addNavDataByOnly
({
id
:
'wfuser-pickup-view'
,
tag
:
this
.
viewtag
,
srfkey
:
this
.
context
.
wfuser
,
title
:
this
.
$t
(
this
.
model
.
srf
Caption
),
data
:
data
,
context
:
this
.
context
,
viewparams
:
this
.
viewparams
,
path
:
this
.
$route
.
fullPath
},
isOnlyAdd
);
}
}
...
...
app_web/src/service/entity-service-register.ts
浏览文件 @
d32da08b
...
...
@@ -43,6 +43,7 @@ export class EntityServiceRegister {
this
.
allEntityService
.
set
(
'wfmember'
,
()
=>
import
(
'@/service/wfmember/wfmember-service'
));
this
.
allEntityService
.
set
(
'wfgroup'
,
()
=>
import
(
'@/service/wfgroup/wfgroup-service'
));
this
.
allEntityService
.
set
(
'wfuser'
,
()
=>
import
(
'@/service/wfuser/wfuser-service'
));
this
.
allEntityService
.
set
(
'wftask'
,
()
=>
import
(
'@/service/wftask/wftask-service'
));
this
.
allEntityService
.
set
(
'wfprocessdefinition'
,
()
=>
import
(
'@/service/wfprocess-definition/wfprocess-definition-service'
));
this
.
allEntityService
.
set
(
'wfsystem'
,
()
=>
import
(
'@/service/wfsystem/wfsystem-service'
));
}
...
...
app_web/src/service/wftask/wftask-service-base.ts
0 → 100644
浏览文件 @
d32da08b
import
{
Http
,
Util
}
from
'@/utils'
;
import
EntityService
from
'../entity-service'
;
/**
* 工作流任务服务对象基类
*
* @export
* @class WFTaskServiceBase
* @extends {EntityServie}
*/
export
default
class
WFTaskServiceBase
extends
EntityService
{
/**
* Creates an instance of WFTaskServiceBase.
*
* @param {*} [opts={}]
* @memberof WFTaskServiceBase
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
}
/**
* 初始化基础数据
*
* @memberof WFTaskServiceBase
*/
public
initBasicData
(){
this
.
APPLYDEKEY
=
'wftask'
;
this
.
APPDEKEY
=
'id'
;
this
.
APPDENAME
=
'wftasks'
;
this
.
APPDETEXT
=
'name'
;
this
.
APPNAME
=
'web'
;
this
.
SYSTEMNAME
=
'ibzwf'
;
}
// 实体接口
/**
* Select接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof WFTaskServiceBase
*/
public
async
Select
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
Http
.
getInstance
().
get
(
`/wftasks/
${
context
.
wftask
}
/select`
,
isloading
);
return
res
;
}
/**
* Create接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof WFTaskServiceBase
*/
public
async
Create
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
if
(
!
data
.
srffrontuf
||
data
.
srffrontuf
!==
"1"
){
data
[
this
.
APPDEKEY
]
=
null
;
}
if
(
data
.
srffrontuf
){
delete
data
.
srffrontuf
;
}
let
tempContext
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
context
));
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/wftasks`
,
data
,
isloading
);
return
res
;
}
/**
* Update接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof WFTaskServiceBase
*/
public
async
Update
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
put
(
`/wftasks/
${
context
.
wftask
}
`
,
data
,
isloading
);
return
res
;
}
/**
* Remove接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof WFTaskServiceBase
*/
public
async
Remove
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
Http
.
getInstance
().
delete
(
`/wftasks/
${
context
.
wftask
}
`
,
isloading
);
return
res
;
}
/**
* Get接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof WFTaskServiceBase
*/
public
async
Get
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/wftasks/
${
context
.
wftask
}
`
,
isloading
);
return
res
;
}
/**
* GetDraft接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof WFTaskServiceBase
*/
public
async
GetDraft
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
await
Http
.
getInstance
().
get
(
`/wftasks/getdraft`
,
isloading
);
res
.
data
.
wftask
=
data
.
wftask
;
return
res
;
}
/**
* CheckKey接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof WFTaskServiceBase
*/
public
async
CheckKey
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
res
:
any
=
Http
.
getInstance
().
post
(
`/wftasks/
${
context
.
wftask
}
/checkkey`
,
data
,
isloading
);
return
res
;
}
/**
* Save接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof WFTaskServiceBase
*/
public
async
Save
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
masterData
:
any
=
{};
Object
.
assign
(
data
,
masterData
);
let
res
:
any
=
await
Http
.
getInstance
().
post
(
`/wftasks/
${
context
.
wftask
}
/save`
,
data
,
isloading
);
return
res
;
}
/**
* FetchDefault接口方法
*
* @param {*} [context={}]
* @param {*} [data={}]
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof WFTaskServiceBase
*/
public
async
FetchDefault
(
context
:
any
=
{},
data
:
any
=
{},
isloading
?:
boolean
):
Promise
<
any
>
{
let
tempData
:
any
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
let
res
:
any
=
Http
.
getInstance
().
get
(
`/wftasks/fetchdefault`
,
tempData
,
isloading
);
return
res
;
}
}
\ No newline at end of file
app_web/src/service/wftask/wftask-service.ts
0 → 100644
浏览文件 @
d32da08b
import
{
Http
,
Util
}
from
'@/utils'
;
import
WFTaskServiceBase
from
'./wftask-service-base'
;
/**
* 工作流任务服务对象
*
* @export
* @class WFTaskService
* @extends {WFTaskServiceBase}
*/
export
default
class
WFTaskService
extends
WFTaskServiceBase
{
/**
* Creates an instance of WFTaskService.
*
* @param {*} [opts={}]
* @memberof WFTaskService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
}
}
\ No newline at end of file
app_web/src/uiservice/ui-service-register.ts
浏览文件 @
d32da08b
...
...
@@ -43,6 +43,7 @@ export class UIServiceRegister {
this
.
allUIService
.
set
(
'wfmember'
,
()
=>
import
(
'@/uiservice/wfmember/wfmember-ui-service'
));
this
.
allUIService
.
set
(
'wfgroup'
,
()
=>
import
(
'@/uiservice/wfgroup/wfgroup-ui-service'
));
this
.
allUIService
.
set
(
'wfuser'
,
()
=>
import
(
'@/uiservice/wfuser/wfuser-ui-service'
));
this
.
allUIService
.
set
(
'wftask'
,
()
=>
import
(
'@/uiservice/wftask/wftask-ui-service'
));
this
.
allUIService
.
set
(
'wfprocessdefinition'
,
()
=>
import
(
'@/uiservice/wfprocess-definition/wfprocess-definition-ui-service'
));
this
.
allUIService
.
set
(
'wfsystem'
,
()
=>
import
(
'@/uiservice/wfsystem/wfsystem-ui-service'
));
}
...
...
app_web/src/uiservice/wftask/wftask-ui-service-base.ts
0 → 100644
浏览文件 @
d32da08b
import
{
Environment
}
from
'@/environments/environment'
;
import
{
UIActionTool
,
Util
}
from
'@/utils'
;
import
UIService
from
'../ui-service'
;
import
{
Subject
}
from
'rxjs'
;
import
WFTaskService
from
'@/service/wftask/wftask-service'
;
import
WFTaskAuthService
from
'@/authservice/wftask/wftask-auth-service'
;
/**
* 工作流任务UI服务对象基类
*
* @export
* @class WFTaskUIServiceBase
*/
export
default
class
WFTaskUIServiceBase
extends
UIService
{
/**
* 是否支持工作流
*
* @memberof WFTaskUIServiceBase
*/
public
isEnableWorkflow
:
boolean
=
false
;
/**
* 当前UI服务对应的数据服务对象
*
* @memberof WFTaskUIServiceBase
*/
public
dataService
:
WFTaskService
=
new
WFTaskService
();
/**
* 所有关联视图
*
* @memberof WFTaskUIServiceBase
*/
public
allViewMap
:
Map
<
string
,
Object
>
=
new
Map
();
/**
* 状态值
*
* @memberof WFTaskUIServiceBase
*/
public
stateValue
:
number
=
0
;
/**
* 状态属性
*
* @memberof WFTaskUIServiceBase
*/
public
stateField
:
string
=
""
;
/**
* 主状态属性集合
*
* @memberof WFTaskUIServiceBase
*/
public
mainStateFields
:
Array
<
any
>
=
[];
/**
* 主状态集合Map
*
* @memberof WFTaskUIServiceBase
*/
public
allDeMainStateMap
:
Map
<
string
,
string
>
=
new
Map
();
/**
* 主状态操作标识Map
*
* @memberof WFTaskUIServiceBase
*/
public
allDeMainStateOPPrivsMap
:
Map
<
string
,
any
>
=
new
Map
();
/**
* Creates an instance of WFTaskUIServiceBase.
*
* @param {*} [opts={}]
* @memberof WFTaskUIServiceBase
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
this
.
authService
=
new
WFTaskAuthService
(
opts
);
this
.
initViewMap
();
this
.
initDeMainStateMap
();
this
.
initDeMainStateOPPrivsMap
();
}
/**
* 初始化视图Map
*
* @memberof WFTaskUIServiceBase
*/
public
initViewMap
(){
}
/**
* 初始化主状态集合
*
* @memberof WFTaskUIServiceBase
*/
public
initDeMainStateMap
(){
}
/**
* 初始化主状态操作标识
*
* @memberof WFTaskUIServiceBase
*/
public
initDeMainStateOPPrivsMap
(){
}
/**
* 获取指定数据的重定向页面
*
* @param srfkey 数据主键
* @param isEnableWorkflow 重定向视图是否需要处理流程中的数据
* @memberof WFTaskUIServiceBase
*/
public
async
getRDAppView
(
srfkey
:
string
,
isEnableWorkflow
:
boolean
){
this
.
isEnableWorkflow
=
isEnableWorkflow
;
// 进行数据查询
let
result
:
any
=
await
this
.
dataService
.
Get
({
wftask
:
srfkey
});
const
curData
:
any
=
result
.
data
;
//判断当前数据模式,默认为true,todo
const
iRealDEModel
:
boolean
=
true
;
let
bDataInWF
:
boolean
=
false
;
let
bWFMode
:
any
=
false
;
// 计算数据模式
if
(
this
.
isEnableWorkflow
)
{
bDataInWF
=
await
this
.
dataService
.
testDataInWF
({
stateValue
:
this
.
stateValue
,
stateField
:
this
.
stateField
},
curData
);
if
(
bDataInWF
)
{
bDataInWF
=
true
;
bWFMode
=
await
this
.
dataService
.
testUserExistWorklist
(
null
,
curData
);
}
}
let
strPDTViewParam
:
string
=
await
this
.
getDESDDEViewPDTParam
(
curData
,
bDataInWF
,
bWFMode
);
//若不是当前数据模式,处理strPDTViewParam,todo
//查找视图
//返回视图
return
this
.
allViewMap
.
get
(
strPDTViewParam
);
}
/**
* 获取实际的数据类型
*
* @memberof WFTaskUIServiceBase
*/
public
getRealDEType
(
entity
:
any
){
}
/**
* 获取实体单数据实体视图预定义参数
*
* @param curData 当前数据
* @param bDataInWF 是否有数据在工作流中
* @param bWFMode 是否工作流模式
* @memberof WFTaskUIServiceBase
*/
public
async
getDESDDEViewPDTParam
(
curData
:
any
,
bDataInWF
:
boolean
,
bWFMode
:
boolean
){
let
strPDTParam
:
string
=
''
;
if
(
bDataInWF
)
{
// 判断数据是否在流程中
}
//多表单,todo
const
isEnableMultiForm
:
boolean
=
false
;
const
multiFormDEField
:
string
|
null
=
null
;
if
(
isEnableMultiForm
&&
multiFormDEField
)
{
const
objFormValue
:
string
=
curData
[
multiFormDEField
];
if
(
!
Environment
.
isAppMode
){
return
'MOBEDITVIEW'
+
objFormValue
;
}
return
'EDITVIEW'
+
objFormValue
;
}
if
(
!
Environment
.
isAppMode
){
if
(
this
.
getDEMainStateTag
(
curData
)){
return
`MOBEDITVIEW:MSTAG:
${
this
.
getDEMainStateTag
(
curData
)}
`
;
}
return
'MOBEDITVIEW:'
;
}
if
(
this
.
getDEMainStateTag
(
curData
)){
return
`EDITVIEW:MSTAG:
${
this
.
getDEMainStateTag
(
curData
)}
`
;
}
return
'EDITVIEW:'
;
}
/**
* 获取数据对象的主状态标识
*
* @param curData 当前数据
* @memberof WFTaskUIServiceBase
*/
public
getDEMainStateTag
(
curData
:
any
){
if
(
this
.
mainStateFields
.
length
===
0
)
return
null
;
this
.
mainStateFields
.
forEach
((
singleMainField
:
any
)
=>
{
if
(
!
(
singleMainField
in
curData
)){
console
.
warn
(
`当前数据对象不包含属性
${
singleMainField
}
,可能会发生错误`
);
}
})
for
(
let
i
=
0
;
i
<=
1
;
i
++
)
{
let
strTag
:
string
=
(
curData
[
this
.
mainStateFields
[
0
]])?(
i
==
0
)
?
curData
[
this
.
mainStateFields
[
0
]]
:
""
:
""
;
if
(
this
.
mainStateFields
.
length
>=
2
)
{
for
(
let
j
=
0
;
j
<=
1
;
j
++
)
{
let
strTag2
:
string
=
(
curData
[
this
.
mainStateFields
[
1
]])?
`
${
strTag
}
__
${(
j
==
0
)
?
curData
[
this
.
mainStateFields
[
1
]]
:
""
}
`
:
strTag
;
if
(
this
.
mainStateFields
.
length
>=
3
)
{
for
(
let
k
=
0
;
k
<=
1
;
k
++
)
{
let
strTag3
:
string
=
(
curData
[
this
.
mainStateFields
[
2
]])?
`
${
strTag2
}
__
${(
k
==
0
)
?
curData
[
this
.
mainStateFields
[
2
]]
:
""
}
`
:
strTag2
;
// 判断是否存在
return
this
.
allDeMainStateMap
.
get
(
strTag3
);
}
}
else
{
return
this
.
allDeMainStateMap
.
get
(
strTag2
);
}
}
}
else
{
return
this
.
allDeMainStateMap
.
get
(
strTag
);
}
}
return
null
;
}
/**
* 获取数据对象当前操作标识
*
* @param data 当前数据
* @memberof WFTaskUIServiceBase
*/
public
getDEMainStateOPPrivs
(
data
:
any
){
if
(
this
.
getDEMainStateTag
(
data
)){
return
this
.
allDeMainStateOPPrivsMap
.
get
((
this
.
getDEMainStateTag
(
data
)
as
string
));
}
else
{
return
null
;
}
}
/**
* 获取数据对象所有的操作标识
*
* @param data 当前数据
* @memberof WFTaskUIServiceBase
*/
public
getAllOPPrivs
(
data
:
any
){
return
this
.
authService
.
getOPPrivs
(
this
.
getDEMainStateOPPrivs
(
data
));
}
}
\ No newline at end of file
app_web/src/uiservice/wftask/wftask-ui-service.ts
0 → 100644
浏览文件 @
d32da08b
import
WFTaskUIServiceBase
from
'./wftask-ui-service-base'
;
/**
* 工作流任务UI服务对象
*
* @export
* @class WFTaskUIService
*/
export
default
class
WFTaskUIService
extends
WFTaskUIServiceBase
{
/**
* Creates an instance of WFTaskUIService.
*
* @param {*} [opts={}]
* @memberof WFTaskUIService
*/
constructor
(
opts
:
any
=
{})
{
super
(
opts
);
}
}
\ No newline at end of file
app_web/src/widgets/wfgroup/default-searchform/default-searchform-base.vue
浏览文件 @
d32da08b
...
...
@@ -28,6 +28,7 @@
</i-col>
</row>
</i-form>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
...
...
app_web/src/widgets/wfgroup/main-form/main-form-base.vue
浏览文件 @
d32da08b
...
...
@@ -585,6 +585,9 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
!
falg
.
hasOwnProperty
(
"isPast"
)){
falg
.
isPast
=
true
;
}
if
(
!
this
.
data
[
name
]){
falg
.
isPast
=
true
;
}
return
falg
;
}
...
...
app_web/src/widgets/wfgroup/main-grid/main-grid-base.vue
浏览文件 @
d32da08b
...
...
@@ -1255,7 +1255,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
// 已选中则删除,没选中则添加
let
selectIndex
=
this
.
selections
.
findIndex
((
item
:
any
)
=>
{
return
Object
.
is
(
item
.
wf
_group
,
$event
.
wf_
group
);
return
Object
.
is
(
item
.
wf
group
,
$event
.
wf
group
);
});
if
(
Object
.
is
(
selectIndex
,
-
1
)){
this
.
selections
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
$event
)));
...
...
app_web/src/widgets/wfgroup/main-grid/main-grid.less
浏览文件 @
d32da08b
...
...
@@ -66,6 +66,15 @@
margin-bottom: 20px;
}
}
.el-table__header-wrapper{
display: contents;
}
.el-table__body-wrapper{
height: auto !important;
}
.el-table__footer-wrapper{
display: contents;
}
}
.grid-pagination {
height: 50px;
...
...
app_web/src/widgets/wfmember/default-searchform/default-searchform-base.vue
浏览文件 @
d32da08b
...
...
@@ -28,6 +28,7 @@
</i-col>
</row>
</i-form>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
...
...
app_web/src/widgets/wfmember/main-form/main-form-base.vue
浏览文件 @
d32da08b
...
...
@@ -632,6 +632,9 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
!
falg
.
hasOwnProperty
(
"isPast"
)){
falg
.
isPast
=
true
;
}
if
(
!
this
.
data
[
name
]){
falg
.
isPast
=
true
;
}
return
falg
;
}
...
...
app_web/src/widgets/wfmember/main-grid/main-grid-base.vue
浏览文件 @
d32da08b
...
...
@@ -1275,7 +1275,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
// 已选中则删除,没选中则添加
let
selectIndex
=
this
.
selections
.
findIndex
((
item
:
any
)
=>
{
return
Object
.
is
(
item
.
wf
_group_member
,
$event
.
wf_group_
member
);
return
Object
.
is
(
item
.
wf
member
,
$event
.
wf
member
);
});
if
(
Object
.
is
(
selectIndex
,
-
1
)){
this
.
selections
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
$event
)));
...
...
app_web/src/widgets/wfmember/main-grid/main-grid.less
浏览文件 @
d32da08b
...
...
@@ -66,6 +66,15 @@
margin-bottom: 20px;
}
}
.el-table__header-wrapper{
display: contents;
}
.el-table__body-wrapper{
height: auto !important;
}
.el-table__footer-wrapper{
display: contents;
}
}
.grid-pagination {
height: 50px;
...
...
app_web/src/widgets/wfprocess-definition/default-searchform/default-searchform-base.vue
浏览文件 @
d32da08b
...
...
@@ -42,6 +42,7 @@
</i-col>
</row>
</i-form>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
...
...
app_web/src/widgets/wfprocess-definition/main-form/main-form-base.vue
浏览文件 @
d32da08b
...
...
@@ -663,6 +663,9 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
!
falg
.
hasOwnProperty
(
"isPast"
)){
falg
.
isPast
=
true
;
}
if
(
!
this
.
data
[
name
]){
falg
.
isPast
=
true
;
}
return
falg
;
}
...
...
app_web/src/widgets/wfprocess-definition/main-grid/main-grid-base.vue
浏览文件 @
d32da08b
...
...
@@ -1305,7 +1305,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
// 已选中则删除,没选中则添加
let
selectIndex
=
this
.
selections
.
findIndex
((
item
:
any
)
=>
{
return
Object
.
is
(
item
.
wf
_definition
,
$event
.
wf_
definition
);
return
Object
.
is
(
item
.
wf
processdefinition
,
$event
.
wfprocess
definition
);
});
if
(
Object
.
is
(
selectIndex
,
-
1
)){
this
.
selections
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
$event
)));
...
...
app_web/src/widgets/wfprocess-definition/main-grid/main-grid.less
浏览文件 @
d32da08b
...
...
@@ -66,6 +66,15 @@
margin-bottom: 20px;
}
}
.el-table__header-wrapper{
display: contents;
}
.el-table__body-wrapper{
height: auto !important;
}
.el-table__footer-wrapper{
display: contents;
}
}
.grid-pagination {
height: 50px;
...
...
app_web/src/widgets/wfremodel/main-form/main-form-base.vue
浏览文件 @
d32da08b
...
...
@@ -530,6 +530,9 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
!
falg
.
hasOwnProperty
(
"isPast"
)){
falg
.
isPast
=
true
;
}
if
(
!
this
.
data
[
name
]){
falg
.
isPast
=
true
;
}
return
falg
;
}
...
...
app_web/src/widgets/wfuser/default-searchform/default-searchform-base.vue
浏览文件 @
d32da08b
...
...
@@ -28,6 +28,7 @@
</i-col>
</row>
</i-form>
</
template
>
<
script
lang=
'tsx'
>
import
{
Vue
,
Component
,
Prop
,
Provide
,
Emit
,
Watch
,
Model
,
Inject
}
from
'vue-property-decorator'
;
...
...
app_web/src/widgets/wfuser/main-form/main-form-base.vue
浏览文件 @
d32da08b
...
...
@@ -558,6 +558,9 @@ export default class MainBase extends Vue implements ControlInterface {
if
(
!
falg
.
hasOwnProperty
(
"isPast"
)){
falg
.
isPast
=
true
;
}
if
(
!
this
.
data
[
name
]){
falg
.
isPast
=
true
;
}
return
falg
;
}
...
...
app_web/src/widgets/wfuser/main-grid/main-grid-base.vue
浏览文件 @
d32da08b
...
...
@@ -1295,7 +1295,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
// 已选中则删除,没选中则添加
let
selectIndex
=
this
.
selections
.
findIndex
((
item
:
any
)
=>
{
return
Object
.
is
(
item
.
wf
_user
,
$event
.
wf_
user
);
return
Object
.
is
(
item
.
wf
user
,
$event
.
wf
user
);
});
if
(
Object
.
is
(
selectIndex
,
-
1
)){
this
.
selections
.
push
(
JSON
.
parse
(
JSON
.
stringify
(
$event
)));
...
...
app_web/src/widgets/wfuser/main-grid/main-grid.less
浏览文件 @
d32da08b
...
...
@@ -66,6 +66,15 @@
margin-bottom: 20px;
}
}
.el-table__header-wrapper{
display: contents;
}
.el-table__body-wrapper{
height: auto !important;
}
.el-table__footer-wrapper{
display: contents;
}
}
.grid-pagination {
height: 50px;
...
...
ibzwf-app/ibzwf-app-web/src/main/resources/application-web-prod.yml
浏览文件 @
d32da08b
...
...
@@ -23,6 +23,10 @@ zuul:
path
:
/wfusers/**
serviceId
:
${ibiz.ref.service.ibzwf-api:ibzwf-api}
stripPrefix
:
false
wf_task
:
path
:
/wftasks/**
serviceId
:
${ibiz.ref.service.ibzwf-api:ibzwf-api}
stripPrefix
:
false
wf_definition
:
path
:
/wfprocessdefinitions/**
serviceId
:
${ibiz.ref.service.ibzwf-api:ibzwf-api}
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/domain/WFProcessDefinition.java
浏览文件 @
d32da08b
...
...
@@ -76,14 +76,6 @@ public class WFProcessDefinition extends EntityMP implements Serializable {
@JSONField
(
name
=
"pssystemid"
)
@JsonProperty
(
"pssystemid"
)
private
String
pssystemid
;
/**
* TaskDefinitionKey
*/
@DEField
(
name
=
"taskdefinitionkey"
)
@TableField
(
value
=
"taskdefinitionkey"
)
@JSONField
(
name
=
"taskprocessdefinitionkey"
)
@JsonProperty
(
"taskprocessdefinitionkey"
)
private
String
taskprocessdefinitionkey
;
/**
* 校验
*/
...
...
@@ -140,14 +132,6 @@ public class WFProcessDefinition extends EntityMP implements Serializable {
this
.
modify
(
"pssystemid"
,
pssystemid
);
}
/**
* 设置 [TaskDefinitionKey]
*/
public
void
setTaskprocessdefinitionkey
(
String
taskprocessdefinitionkey
){
this
.
taskprocessdefinitionkey
=
taskprocessdefinitionkey
;
this
.
modify
(
"taskdefinitionkey"
,
taskprocessdefinitionkey
);
}
/**
* 设置 [校验]
*/
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/domain/WFProcessNode.java
浏览文件 @
d32da08b
...
...
@@ -66,6 +66,13 @@ public class WFProcessNode extends EntityBase implements Serializable {
@JsonProperty
(
"processDefinitionName"
)
private
String
processdefinitionname
;
/**
* 数量
*/
@JSONField
(
name
=
"cnt"
)
@JsonProperty
(
"cnt"
)
private
Integer
cnt
;
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/domain/WFTask.java
浏览文件 @
d32da08b
...
...
@@ -43,13 +43,21 @@ public class WFTask extends EntityBase implements Serializable {
private
String
id
;
/**
*
任务名称
*
状态
*/
@DEField
(
name
=
"taskname"
)
@JSONField
(
name
=
"name"
)
@JsonProperty
(
"name"
)
private
String
name
;
/**
* DefinitionId
*/
@DEField
(
name
=
"definitionid"
)
@JSONField
(
name
=
"processDefinitionId"
)
@JsonProperty
(
"processDefinitionId"
)
private
String
processdefinitionid
;
/**
* DefinitionKey
*/
...
...
@@ -58,6 +66,36 @@ public class WFTask extends EntityBase implements Serializable {
@JsonProperty
(
"processDefinitionKey"
)
private
String
processdefinitionkey
;
/**
* 流程
*/
@DEField
(
name
=
"definitionname"
)
@JSONField
(
name
=
"processDefinitionName"
)
@JsonProperty
(
"processDefinitionName"
)
private
String
processdefinitionname
;
/**
* TaskDefinitionKey
*/
@JSONField
(
name
=
"taskDefinitionKey"
)
@JsonProperty
(
"taskDefinitionKey"
)
private
String
taskdefinitionkey
;
/**
* 待办事项
*/
@JSONField
(
name
=
"description"
)
@JsonProperty
(
"description"
)
private
String
description
;
/**
* 发起时间
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
locale
=
"zh"
,
timezone
=
"GMT+8"
)
@JSONField
(
name
=
"createTime"
,
format
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonProperty
(
"createTime"
)
private
Timestamp
createtime
;
/**
* 实例标识
*/
...
...
@@ -74,17 +112,19 @@ public class WFTask extends EntityBase implements Serializable {
@JsonProperty
(
"processInstanceBusinessKey"
)
private
String
processinstancebusinesskey
;
/**
* TaskDefinitionKey
*/
@DEField
(
name
=
"taskdefinitionkey"
)
@JSONField
(
name
=
"taskProcessDefinitionKey"
)
@JsonProperty
(
"taskProcessDefinitionKey"
)
private
String
taskprocessdefinitionkey
;
/**
* 格式化日期 [发起时间]
*/
public
String
formatCreatetime
(){
if
(
this
.
createtime
==
null
)
{
return
null
;
}
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
return
sdf
.
format
(
createtime
);
}
}
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/domain/WFTaskWay.java
浏览文件 @
d32da08b
...
...
@@ -60,10 +60,9 @@ public class WFTaskWay extends EntityBase implements Serializable {
/**
* TaskDefinitionKey
*/
@DEField
(
name
=
"taskdefinitionkey"
)
@JSONField
(
name
=
"taskProcessDefinitionKey"
)
@JsonProperty
(
"taskProcessDefinitionKey"
)
private
String
taskprocessdefinitionkey
;
@JSONField
(
name
=
"taskDefinitionKey"
)
@JsonProperty
(
"taskDefinitionKey"
)
private
String
taskdefinitionkey
;
/**
* 实例标识
...
...
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/filter/WFProcessNodeSearchContext.java
浏览文件 @
d32da08b
...
...
@@ -25,8 +25,12 @@ import cn.ibizlab.util.filter.SearchContextBase;
@Slf4j
@Data
public
class
WFProcessNodeSearchContext
extends
SearchContextBase
{
private
String
n_nodeid_eq
;
//[节点标识]
private
String
n_nodename_like
;
//[节点名称]
private
String
n_definitionkey_leftlike
;
//[DefinitionKey]
}
ibzwf-core/src/main/java/cn/ibizlab/core/workflow/filter/WFTaskSearchContext.java
浏览文件 @
d32da08b
...
...
@@ -25,7 +25,27 @@ import cn.ibizlab.util.filter.SearchContextBase;
@Slf4j
@Data
public
class
WFTaskSearchContext
extends
SearchContextBase
{
private
String
n_taskname_like
;
//[任务名称]
private
String
n_taskname_like
;
//[状态]
private
String
n_definitionkey_leftlike
;
//[DefinitionKey]
private
String
n_definitionkey_like
;
//[DefinitionKey]
private
String
n_definitionname_like
;
//[流程]
private
String
n_taskdefinitionkey_like
;
//[TaskDefinitionKey]
private
String
n_description_like
;
//[待办事项]
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
private
Timestamp
n_createtime_gtandeq
;
//[发起时间]
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@JSONField
(
format
=
"yyyy-MM-dd HH:mm:ss"
)
private
Timestamp
n_createtime_ltandeq
;
//[发起时间]
private
String
n_businesskey_eq
;
//[业务键值]
}
...
...
ibzwf-core/src/main/resources/liquibase/h2_table.xml
浏览文件 @
d32da08b
...
...
@@ -36,7 +36,7 @@
<!--输出实体[WF_DEFINITION]数据结构 -->
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-wf_definition-5
7
-3"
>
<changeSet
author=
"a_A_5d9d78509"
id=
"tab-wf_definition-5
8
-3"
>
<createTable
tableName=
"IBZWFDEFINITION"
>
<column
name=
"DEFINITIONKEY"
remarks=
""
type=
"VARCHAR(100)"
>
<constraints
primaryKey=
"true"
primaryKeyName=
"PK_WF_DEFINITION_DEFINITIONKEY"
/>
...
...
@@ -49,8 +49,6 @@
</column>
<column
name=
"PSSYSTEMID"
remarks=
""
type=
"VARCHAR(100)"
>
</column>
<column
name=
"TASKDEFINITIONKEY"
remarks=
""
type=
"VARCHAR(100)"
>
</column>
<column
name=
"MD5CHECK"
remarks=
""
type=
"VARCHAR(100)"
>
</column>
<column
name=
"BPMNFILE"
remarks=
""
type=
"VARCHAR(1000)"
>
...
...
ibzwf-core/src/main/resources/mapper/workflow/wfprocessdefinition/WFProcessDefinitionMapper.xml
浏览文件 @
d32da08b
...
...
@@ -5,7 +5,7 @@
<!--该方法用于重写mybatis中selectById方法,以实现查询逻辑属性-->
<select
id=
"selectById"
resultMap=
"WFProcessDefinitionResultMap"
databaseId=
"mysql"
>
<![CDATA[select t1.* from (SELECT t1.`BPMNFILE`, t1.`DEFINITIONKEY`, t1.`DEFINITIONNAME`, t1.`DEPLOYKEY`, t1.`MD5CHECK`, t1.`MODELENABLE`, t1.`MODELVERSION`, t1.`PSSYSTEMID`
, t1.`TASKDEFINITIONKEY`
FROM `IBZWFDEFINITION` t1 ) t1 where definitionkey=#{id}]]>
<![CDATA[select t1.* from (SELECT t1.`BPMNFILE`, t1.`DEFINITIONKEY`, t1.`DEFINITIONNAME`, t1.`DEPLOYKEY`, t1.`MD5CHECK`, t1.`MODELENABLE`, t1.`MODELVERSION`, t1.`PSSYSTEMID` FROM `IBZWFDEFINITION` t1 ) t1 where definitionkey=#{id}]]>
</select>
<select
id=
"selectById"
resultMap=
"WFProcessDefinitionResultMap"
databaseId=
"oracle"
>
<![CDATA[select t1.* from (SELECT t1.BPMNFILE, t1.DEFINITIONKEY, t1.DEFINITIONNAME, t1.DEPLOYKEY, t1.MD5CHECK, t1.MODELENABLE, t1.MODELVERSION, t1.PSSYSTEMID, t1.TASKDEFINITIONKEY FROM IBZWFDEFINITION t1 ) t1 where definitionkey=#{id}]]>
...
...
@@ -17,7 +17,6 @@
<!--通过mybatis将查询结果注入到entity中,通过配置autoMapping="true"由mybatis自动处理映射关系 -->
<resultMap
id=
"WFProcessDefinitionResultMap"
type=
"cn.ibizlab.core.workflow.domain.WFProcessDefinition"
autoMapping=
"true"
>
<id
property=
"definitionkey"
column=
"definitionkey"
/>
<!--主键字段映射-->
<result
property=
"taskprocessdefinitionkey"
column=
"taskdefinitionkey"
/>
</resultMap>
...
...
@@ -34,7 +33,7 @@
<!--数据查询[Default]-->
<sql
id=
"Default"
databaseId=
"mysql"
>
<![CDATA[ SELECT t1.`BPMNFILE`, t1.`DEFINITIONKEY`, t1.`DEFINITIONNAME`, t1.`DEPLOYKEY`, t1.`MD5CHECK`, t1.`MODELENABLE`, t1.`MODELVERSION`, t1.`PSSYSTEMID`
, t1.`TASKDEFINITIONKEY`
FROM `IBZWFDEFINITION` t1
<![CDATA[ SELECT t1.`BPMNFILE`, t1.`DEFINITIONKEY`, t1.`DEFINITIONNAME`, t1.`DEPLOYKEY`, t1.`MD5CHECK`, t1.`MODELENABLE`, t1.`MODELVERSION`, t1.`PSSYSTEMID` FROM `IBZWFDEFINITION` t1
]]>
</sql>
<!--数据查询[Default]-->
...
...
@@ -49,7 +48,7 @@
</sql>
<!--数据查询[View]-->
<sql
id=
"View"
databaseId=
"mysql"
>
<![CDATA[ SELECT t1.`BPMNFILE`, t1.`DEFINITIONKEY`, t1.`DEFINITIONNAME`, t1.`DEPLOYKEY`, t1.`MD5CHECK`, t1.`MODELENABLE`, t1.`MODELVERSION`, t1.`PSSYSTEMID`
, t1.`TASKDEFINITIONKEY`
FROM `IBZWFDEFINITION` t1
<![CDATA[ SELECT t1.`BPMNFILE`, t1.`DEFINITIONKEY`, t1.`DEFINITIONNAME`, t1.`DEPLOYKEY`, t1.`MD5CHECK`, t1.`MODELENABLE`, t1.`MODELVERSION`, t1.`PSSYSTEMID` FROM `IBZWFDEFINITION` t1
]]>
</sql>
<!--数据查询[View]-->
...
...
ibzwf-core/src/main/resources/permission/systemResource.json
浏览文件 @
d32da08b
...
...
@@ -36,6 +36,14 @@
"datascope"
:[{
"id"
:
"all"
,
"name"
:
"全部数据"
},
{
"id"
:
"curorg"
,
"name"
:
"当前单位"
},{
"id"
:
"porg"
,
"name"
:
"上级单位"
},{
"id"
:
"sorg"
,
"name"
:
"下级单位"
}
]
}
,
{
"dename"
:
"WFTask"
,
"delogicname"
:
"工作流任务"
,
"sysmoudle"
:{
"id"
:
"WORKFLOW"
,
"name"
:
"workflow"
},
"dedataset"
:[{
"id"
:
"Default"
,
"name"
:
"DEFAULT"
}],
"deaction"
:[{
"id"
:
"Create"
,
"name"
:
"Create"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Update"
,
"name"
:
"Update"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Remove"
,
"name"
:
"Remove"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Get"
,
"name"
:
"Get"
,
"type"
:
"BUILTIN"
},{
"id"
:
"GetDraft"
,
"name"
:
"GetDraft"
,
"type"
:
"BUILTIN"
},{
"id"
:
"CheckKey"
,
"name"
:
"CheckKey"
,
"type"
:
"BUILTIN"
},{
"id"
:
"Save"
,
"name"
:
"Save"
,
"type"
:
"BUILTIN"
}],
"datascope"
:[{
"id"
:
"all"
,
"name"
:
"全部数据"
}]
}
,
{
"dename"
:
"WFProcessDefinition"
,
"delogicname"
:
"流程定义"
,
"sysmoudle"
:{
"id"
:
"WORKFLOW"
,
"name"
:
"workflow"
},
...
...
ibzwf-provider/ibzwf-provider-api/src/main/java/cn/ibizlab/api/dto/WFProcessDefinitionDTO.java
浏览文件 @
d32da08b
...
...
@@ -64,14 +64,6 @@ public class WFProcessDefinitionDTO extends DTOBase implements Serializable {
@JsonProperty
(
"pssystemid"
)
private
String
pssystemid
;
/**
* 属性 [TASKDEFINITIONKEY]
*
*/
@JSONField
(
name
=
"taskprocessdefinitionkey"
)
@JsonProperty
(
"taskprocessdefinitionkey"
)
private
String
taskprocessdefinitionkey
;
/**
* 属性 [MD5CHECK]
*
...
...
@@ -129,14 +121,6 @@ public class WFProcessDefinitionDTO extends DTOBase implements Serializable {
this
.
modify
(
"pssystemid"
,
pssystemid
);
}
/**
* 设置 [TASKDEFINITIONKEY]
*/
public
void
setTaskprocessdefinitionkey
(
String
taskprocessdefinitionkey
){
this
.
taskprocessdefinitionkey
=
taskprocessdefinitionkey
;
this
.
modify
(
"taskdefinitionkey"
,
taskprocessdefinitionkey
);
}
/**
* 设置 [MD5CHECK]
*/
...
...
ibzwf-provider/ibzwf-provider-api/src/main/java/cn/ibizlab/api/dto/WFTaskDTO.java
0 → 100644
浏览文件 @
d32da08b
package
cn
.
ibizlab
.
api
.
dto
;
import
java.sql.Timestamp
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.math.BigInteger
;
import
java.util.Map
;
import
java.util.HashMap
;
import
java.io.Serializable
;
import
java.math.BigDecimal
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.alibaba.fastjson.annotation.JSONField
;
import
cn.ibizlab.util.domain.DTOBase
;
import
cn.ibizlab.util.domain.DTOClient
;
import
lombok.Data
;
/**
* 服务DTO对象[WFTaskDTO]
*/
@Data
public
class
WFTaskDTO
extends
DTOBase
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 属性 [TASKID]
*
*/
@JSONField
(
name
=
"id"
)
@JsonProperty
(
"id"
)
private
String
id
;
/**
* 属性 [TASKNAME]
*
*/
@JSONField
(
name
=
"name"
)
@JsonProperty
(
"name"
)
private
String
name
;
/**
* 属性 [DEFINITIONID]
*
*/
@JSONField
(
name
=
"processdefinitionid"
)
@JsonProperty
(
"processdefinitionid"
)
private
String
processdefinitionid
;
/**
* 属性 [DEFINITIONKEY]
*
*/
@JSONField
(
name
=
"processdefinitionkey"
)
@JsonProperty
(
"processdefinitionkey"
)
private
String
processdefinitionkey
;
/**
* 属性 [DEFINITIONNAME]
*
*/
@JSONField
(
name
=
"processdefinitionname"
)
@JsonProperty
(
"processdefinitionname"
)
private
String
processdefinitionname
;
/**
* 属性 [TASKDEFINITIONKEY]
*
*/
@JSONField
(
name
=
"taskdefinitionkey"
)
@JsonProperty
(
"taskdefinitionkey"
)
private
String
taskdefinitionkey
;
/**
* 属性 [DESCRIPTION]
*
*/
@JSONField
(
name
=
"description"
)
@JsonProperty
(
"description"
)
private
String
description
;
/**
* 属性 [CREATETIME]
*
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
locale
=
"zh"
,
timezone
=
"GMT+8"
)
@JSONField
(
name
=
"createtime"
,
format
=
"yyyy-MM-dd HH:mm:ss"
)
@JsonProperty
(
"createtime"
)
private
Timestamp
createtime
;
/**
* 属性 [INSTANCEID]
*
*/
@JSONField
(
name
=
"processinstanceid"
)
@JsonProperty
(
"processinstanceid"
)
private
String
processinstanceid
;
/**
* 属性 [BUSINESSKEY]
*
*/
@JSONField
(
name
=
"processinstancebusinesskey"
)
@JsonProperty
(
"processinstancebusinesskey"
)
private
String
processinstancebusinesskey
;
/**
* 设置 [TASKNAME]
*/
public
void
setName
(
String
name
){
this
.
name
=
name
;
this
.
modify
(
"taskname"
,
name
);
}
/**
* 设置 [DEFINITIONID]
*/
public
void
setProcessdefinitionid
(
String
processdefinitionid
){
this
.
processdefinitionid
=
processdefinitionid
;
this
.
modify
(
"definitionid"
,
processdefinitionid
);
}
/**
* 设置 [DEFINITIONKEY]
*/
public
void
setProcessdefinitionkey
(
String
processdefinitionkey
){
this
.
processdefinitionkey
=
processdefinitionkey
;
this
.
modify
(
"definitionkey"
,
processdefinitionkey
);
}
/**
* 设置 [DEFINITIONNAME]
*/
public
void
setProcessdefinitionname
(
String
processdefinitionname
){
this
.
processdefinitionname
=
processdefinitionname
;
this
.
modify
(
"definitionname"
,
processdefinitionname
);
}
/**
* 设置 [TASKDEFINITIONKEY]
*/
public
void
setTaskdefinitionkey
(
String
taskdefinitionkey
){
this
.
taskdefinitionkey
=
taskdefinitionkey
;
this
.
modify
(
"taskdefinitionkey"
,
taskdefinitionkey
);
}
/**
* 设置 [DESCRIPTION]
*/
public
void
setDescription
(
String
description
){
this
.
description
=
description
;
this
.
modify
(
"description"
,
description
);
}
/**
* 设置 [CREATETIME]
*/
public
void
setCreatetime
(
Timestamp
createtime
){
this
.
createtime
=
createtime
;
this
.
modify
(
"createtime"
,
createtime
);
}
/**
* 设置 [INSTANCEID]
*/
public
void
setProcessinstanceid
(
String
processinstanceid
){
this
.
processinstanceid
=
processinstanceid
;
this
.
modify
(
"instanceid"
,
processinstanceid
);
}
/**
* 设置 [BUSINESSKEY]
*/
public
void
setProcessinstancebusinesskey
(
String
processinstancebusinesskey
){
this
.
processinstancebusinesskey
=
processinstancebusinesskey
;
this
.
modify
(
"businesskey"
,
processinstancebusinesskey
);
}
}
ibzwf-provider/ibzwf-provider-api/src/main/java/cn/ibizlab/api/mapping/WFTaskMapping.java
0 → 100644
浏览文件 @
d32da08b
package
cn
.
ibizlab
.
api
.
mapping
;
import
org.mapstruct.*
;
import
cn.ibizlab.core.workflow.domain.WFTask
;
import
cn.ibizlab.api.dto.WFTaskDTO
;
import
cn.ibizlab.util.domain.MappingBase
;
import
org.mapstruct.factory.Mappers
;
@Mapper
(
componentModel
=
"spring"
,
uses
=
{},
implementationName
=
"apiWFTaskMapping"
,
nullValuePropertyMappingStrategy
=
NullValuePropertyMappingStrategy
.
IGNORE
,
nullValueCheckStrategy
=
NullValueCheckStrategy
.
ALWAYS
)
public
interface
WFTaskMapping
extends
MappingBase
<
WFTaskDTO
,
WFTask
>
{
}
ibzwf-provider/ibzwf-provider-api/src/main/java/cn/ibizlab/api/rest/WFTaskResource.java
0 → 100644
浏览文件 @
d32da08b
package
cn
.
ibizlab
.
api
.
rest
;
import
java.sql.Timestamp
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.math.BigInteger
;
import
java.util.HashMap
;
import
lombok.extern.slf4j.Slf4j
;
import
com.alibaba.fastjson.JSONObject
;
import
javax.servlet.ServletRequest
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cglib.beans.BeanCopier
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageImpl
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.util.StringUtils
;
import
org.springframework.context.annotation.Lazy
;
import
org.springframework.security.access.prepost.PreAuthorize
;
import
org.springframework.security.access.prepost.PostAuthorize
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
cn.ibizlab.api.dto.*
;
import
cn.ibizlab.api.mapping.*
;
import
cn.ibizlab.core.workflow.domain.WFTask
;
import
cn.ibizlab.core.workflow.service.IWFTaskService
;
import
cn.ibizlab.core.workflow.filter.WFTaskSearchContext
;
import
cn.ibizlab.util.annotation.VersionCheck
;
@Slf4j
@Api
(
tags
=
{
"工作流任务"
})
@RestController
(
"api-wftask"
)
@RequestMapping
(
""
)
public
class
WFTaskResource
{
@Autowired
public
IWFTaskService
wftaskService
;
@Autowired
@Lazy
public
WFTaskMapping
wftaskMapping
;
@ApiOperation
(
value
=
"新建工作流任务"
,
tags
=
{
"工作流任务"
},
notes
=
"新建工作流任务"
)
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"/wftasks"
)
@Transactional
public
ResponseEntity
<
WFTaskDTO
>
create
(
@RequestBody
WFTaskDTO
wftaskdto
)
{
WFTask
domain
=
wftaskMapping
.
toDomain
(
wftaskdto
);
wftaskService
.
create
(
domain
);
WFTaskDTO
dto
=
wftaskMapping
.
toDto
(
domain
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
dto
);
}
@ApiOperation
(
value
=
"批量新建工作流任务"
,
tags
=
{
"工作流任务"
},
notes
=
"批量新建工作流任务"
)
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"/wftasks/batch"
)
public
ResponseEntity
<
Boolean
>
createBatch
(
@RequestBody
List
<
WFTaskDTO
>
wftaskdtos
)
{
wftaskService
.
createBatch
(
wftaskMapping
.
toDomain
(
wftaskdtos
));
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
true
);
}
@ApiOperation
(
value
=
"更新工作流任务"
,
tags
=
{
"工作流任务"
},
notes
=
"更新工作流任务"
)
@RequestMapping
(
method
=
RequestMethod
.
PUT
,
value
=
"/wftasks/{wftask_id}"
)
@Transactional
public
ResponseEntity
<
WFTaskDTO
>
update
(
@PathVariable
(
"wftask_id"
)
String
wftask_id
,
@RequestBody
WFTaskDTO
wftaskdto
)
{
WFTask
domain
=
wftaskMapping
.
toDomain
(
wftaskdto
);
domain
.
setId
(
wftask_id
);
wftaskService
.
update
(
domain
);
WFTaskDTO
dto
=
wftaskMapping
.
toDto
(
domain
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
dto
);
}
@ApiOperation
(
value
=
"批量更新工作流任务"
,
tags
=
{
"工作流任务"
},
notes
=
"批量更新工作流任务"
)
@RequestMapping
(
method
=
RequestMethod
.
PUT
,
value
=
"/wftasks/batch"
)
public
ResponseEntity
<
Boolean
>
updateBatch
(
@RequestBody
List
<
WFTaskDTO
>
wftaskdtos
)
{
wftaskService
.
updateBatch
(
wftaskMapping
.
toDomain
(
wftaskdtos
));
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
true
);
}
@ApiOperation
(
value
=
"删除工作流任务"
,
tags
=
{
"工作流任务"
},
notes
=
"删除工作流任务"
)
@RequestMapping
(
method
=
RequestMethod
.
DELETE
,
value
=
"/wftasks/{wftask_id}"
)
@Transactional
public
ResponseEntity
<
Boolean
>
remove
(
@PathVariable
(
"wftask_id"
)
String
wftask_id
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
wftaskService
.
remove
(
wftask_id
));
}
@ApiOperation
(
value
=
"批量删除工作流任务"
,
tags
=
{
"工作流任务"
},
notes
=
"批量删除工作流任务"
)
@RequestMapping
(
method
=
RequestMethod
.
DELETE
,
value
=
"/wftasks/batch"
)
public
ResponseEntity
<
Boolean
>
removeBatch
(
@RequestBody
List
<
String
>
ids
)
{
wftaskService
.
removeBatch
(
ids
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
true
);
}
@ApiOperation
(
value
=
"获取工作流任务"
,
tags
=
{
"工作流任务"
},
notes
=
"获取工作流任务"
)
@RequestMapping
(
method
=
RequestMethod
.
GET
,
value
=
"/wftasks/{wftask_id}"
)
public
ResponseEntity
<
WFTaskDTO
>
get
(
@PathVariable
(
"wftask_id"
)
String
wftask_id
)
{
WFTask
domain
=
wftaskService
.
get
(
wftask_id
);
WFTaskDTO
dto
=
wftaskMapping
.
toDto
(
domain
);
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
dto
);
}
@ApiOperation
(
value
=
"获取工作流任务草稿"
,
tags
=
{
"工作流任务"
},
notes
=
"获取工作流任务草稿"
)
@RequestMapping
(
method
=
RequestMethod
.
GET
,
value
=
"/wftasks/getdraft"
)
public
ResponseEntity
<
WFTaskDTO
>
getDraft
()
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
wftaskMapping
.
toDto
(
wftaskService
.
getDraft
(
new
WFTask
())));
}
@ApiOperation
(
value
=
"检查工作流任务"
,
tags
=
{
"工作流任务"
},
notes
=
"检查工作流任务"
)
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"/wftasks/checkkey"
)
public
ResponseEntity
<
Boolean
>
checkKey
(
@RequestBody
WFTaskDTO
wftaskdto
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
wftaskService
.
checkKey
(
wftaskMapping
.
toDomain
(
wftaskdto
)));
}
@ApiOperation
(
value
=
"保存工作流任务"
,
tags
=
{
"工作流任务"
},
notes
=
"保存工作流任务"
)
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"/wftasks/save"
)
public
ResponseEntity
<
Boolean
>
save
(
@RequestBody
WFTaskDTO
wftaskdto
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
wftaskService
.
save
(
wftaskMapping
.
toDomain
(
wftaskdto
)));
}
@ApiOperation
(
value
=
"批量保存工作流任务"
,
tags
=
{
"工作流任务"
},
notes
=
"批量保存工作流任务"
)
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"/wftasks/savebatch"
)
public
ResponseEntity
<
Boolean
>
saveBatch
(
@RequestBody
List
<
WFTaskDTO
>
wftaskdtos
)
{
wftaskService
.
saveBatch
(
wftaskMapping
.
toDomain
(
wftaskdtos
));
return
ResponseEntity
.
status
(
HttpStatus
.
OK
).
body
(
true
);
}
@ApiOperation
(
value
=
"获取DEFAULT"
,
tags
=
{
"工作流任务"
}
,
notes
=
"获取DEFAULT"
)
@RequestMapping
(
method
=
RequestMethod
.
GET
,
value
=
"/wftasks/fetchdefault"
)
public
ResponseEntity
<
List
<
WFTaskDTO
>>
fetchDefault
(
WFTaskSearchContext
context
)
{
Page
<
WFTask
>
domains
=
wftaskService
.
searchDefault
(
context
)
;
List
<
WFTaskDTO
>
list
=
wftaskMapping
.
toDto
(
domains
.
getContent
());
return
ResponseEntity
.
status
(
HttpStatus
.
OK
)
.
header
(
"x-page"
,
String
.
valueOf
(
context
.
getPageable
().
getPageNumber
()))
.
header
(
"x-per-page"
,
String
.
valueOf
(
context
.
getPageable
().
getPageSize
()))
.
header
(
"x-total"
,
String
.
valueOf
(
domains
.
getTotalElements
()))
.
body
(
list
);
}
@ApiOperation
(
value
=
"查询DEFAULT"
,
tags
=
{
"工作流任务"
}
,
notes
=
"查询DEFAULT"
)
@RequestMapping
(
method
=
RequestMethod
.
POST
,
value
=
"/wftasks/searchdefault"
)
public
ResponseEntity
<
Page
<
WFTaskDTO
>>
searchDefault
(
@RequestBody
WFTaskSearchContext
context
)
{
Page
<
WFTask
>
domains
=
wftaskService
.
searchDefault
(
context
)
;
return
ResponseEntity
.
status
(
HttpStatus
.
OK
)
.
body
(
new
PageImpl
(
wftaskMapping
.
toDto
(
domains
.
getContent
()),
context
.
getPageable
(),
domains
.
getTotalElements
()));
}
}
ibzwf-util/src/main/java/cn/ibizlab/util/domain/DTOClient.java
浏览文件 @
d32da08b
...
...
@@ -4,9 +4,9 @@ public class DTOClient extends DTOBase {
@Override
public
void
modify
(
String
field
,
Object
val
)
{
getExtensionparams
().
put
(
"dirtyflagenable"
,
true
);
if
(
val
==
null
){
this
.
getFocusNull
().
add
(
field
.
toLowerCase
());
getExtensionparams
().
put
(
"dirtyflagenable"
,
true
);
getExtensionparams
().
put
(
field
.
toLowerCase
()+
"dirtyflag"
,
true
);
}
else
{
...
...
编辑
预览
Markdown
格式
0%
请重试
or
添加新附件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录