Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
12bd71e7
authored
Nov 19, 2024
by
YunaiV
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【代码评审】工作流:表单选择审批人
parent
158708c1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
54 additions
and
65 deletions
+54
-65
src/components/FormCreate/src/components/useApiSelect.tsx
+0
-1
src/components/SimpleProcessDesignerV2/src/consts.ts
+6
-6
src/components/SimpleProcessDesignerV2/src/node.ts
+22
-23
src/components/SimpleProcessDesignerV2/src/nodes-config/CopyTaskNodeConfig.vue
+12
-18
src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue
+14
-17
No files found.
src/components/FormCreate/src/components/useApiSelect.tsx
View file @
12bd71e7
...
@@ -185,7 +185,6 @@ export const useApiSelect = (option: ApiSelectProps) => {
...
@@ -185,7 +185,6 @@ export const useApiSelect = (option: ApiSelectProps) => {
</
el
-
select
>
</
el
-
select
>
)
)
}
}
// debugger
return
(
return
(
<
el
-
select
<
el
-
select
class=
"w-1/1"
class=
"w-1/1"
...
...
src/components/SimpleProcessDesignerV2/src/consts.ts
View file @
12bd71e7
...
@@ -97,7 +97,7 @@ export interface SimpleFlowNode {
...
@@ -97,7 +97,7 @@ export interface SimpleFlowNode {
// 是否默认的条件
// 是否默认的条件
defaultFlow
?:
boolean
defaultFlow
?:
boolean
// 活动的状态,用于前端节点状态展示
// 活动的状态,用于前端节点状态展示
activityStatus
?
:
TaskStatusEnum
activityStatus
?:
TaskStatusEnum
}
}
// 候选人策略枚举 ( 用于审批节点。抄送节点 )
// 候选人策略枚举 ( 用于审批节点。抄送节点 )
export
enum
CandidateStrategy
{
export
enum
CandidateStrategy
{
...
@@ -145,14 +145,14 @@ export enum CandidateStrategy {
...
@@ -145,14 +145,14 @@ export enum CandidateStrategy {
* 指定用户组
* 指定用户组
*/
*/
USER_GROUP
=
40
,
USER_GROUP
=
40
,
/**
/**
* 表单内用户字段
* 表单内用户字段
*/
*/
USER_FIELD_ON_FORM
=
50
,
FORM_USER
=
50
,
/**
/**
* 表单内部门负责人
* 表单内部门负责人
*/
*/
DEPT_LEADER_ON_FORM
=
51
,
FORM_DEPT_LEADER
=
51
,
/**
/**
* 流程表达式
* 流程表达式
*/
*/
...
@@ -432,8 +432,8 @@ export const CANDIDATE_STRATEGY: DictDataVO[] = [
...
@@ -432,8 +432,8 @@ export const CANDIDATE_STRATEGY: DictDataVO[] = [
{
label
:
'发起人部门负责人'
,
value
:
CandidateStrategy
.
START_USER_DEPT_LEADER
},
{
label
:
'发起人部门负责人'
,
value
:
CandidateStrategy
.
START_USER_DEPT_LEADER
},
{
label
:
'发起人连续部门负责人'
,
value
:
CandidateStrategy
.
START_USER_MULTI_LEVEL_DEPT_LEADER
},
{
label
:
'发起人连续部门负责人'
,
value
:
CandidateStrategy
.
START_USER_MULTI_LEVEL_DEPT_LEADER
},
{
label
:
'用户组'
,
value
:
CandidateStrategy
.
USER_GROUP
},
{
label
:
'用户组'
,
value
:
CandidateStrategy
.
USER_GROUP
},
{
label
:
'表单内用户字段'
,
value
:
CandidateStrategy
.
USER_FIELD_ON_FORM
},
{
label
:
'表单内用户字段'
,
value
:
CandidateStrategy
.
FORM_USER
},
{
label
:
'表单内部门负责人'
,
value
:
CandidateStrategy
.
DEPT_LEADER_ON_FORM
},
{
label
:
'表单内部门负责人'
,
value
:
CandidateStrategy
.
FORM_DEPT_LEADER
},
{
label
:
'流程表达式'
,
value
:
CandidateStrategy
.
EXPRESSION
}
{
label
:
'流程表达式'
,
value
:
CandidateStrategy
.
EXPRESSION
}
]
]
// 审批节点 的审批类型
// 审批节点 的审批类型
...
...
src/components/SimpleProcessDesignerV2/src/node.ts
View file @
12bd71e7
...
@@ -37,7 +37,7 @@ const parseFormCreateFields = (formFields?: string[]) => {
...
@@ -37,7 +37,7 @@ const parseFormCreateFields = (formFields?: string[]) => {
})
})
}
}
// 固定添加发起人 ID 字段
// 固定添加发起人 ID 字段
result
.
unshift
(
{
result
.
unshift
({
field
:
ProcessVariableEnum
.
START_USER_ID
,
field
:
ProcessVariableEnum
.
START_USER_ID
,
title
:
'发起人'
,
title
:
'发起人'
,
type
:
'UserSelect'
,
type
:
'UserSelect'
,
...
@@ -46,6 +46,7 @@ const parseFormCreateFields = (formFields?: string[]) => {
...
@@ -46,6 +46,7 @@ const parseFormCreateFields = (formFields?: string[]) => {
return
result
return
result
}
}
// TODO @jason:parse 方法,是不是搞到 formCreate.ts。统一维护管理
const
parseFields
=
(
const
parseFields
=
(
rule
:
Record
<
string
,
any
>
,
rule
:
Record
<
string
,
any
>
,
fields
:
Array
<
Record
<
string
,
any
>>
,
fields
:
Array
<
Record
<
string
,
any
>>
,
...
@@ -57,9 +58,10 @@ const parseFields = (
...
@@ -57,9 +58,10 @@ const parseFields = (
if
(
parentTitle
)
{
if
(
parentTitle
)
{
title
=
`
${
parentTitle
}
.
${
tempTitle
}
`
title
=
`
${
parentTitle
}
.
${
tempTitle
}
`
}
}
let
required
=
false
;
// TODO @jason:按照微信讨论的,非 $required 显示,但是 disable 不可选择
if
(
$required
)
{
let
required
=
false
required
=
true
;
if
(
$required
)
{
required
=
true
}
}
fields
.
push
({
fields
.
push
({
field
,
field
,
...
@@ -82,7 +84,6 @@ const parseFields = (
...
@@ -82,7 +84,6 @@ const parseFields = (
}
}
}
}
/**
/**
* @description 表单数据权限配置,用于发起人节点 、审批节点、抄送节点
* @description 表单数据权限配置,用于发起人节点 、审批节点、抄送节点
*/
*/
...
@@ -103,19 +104,17 @@ export function useFormFieldsPermission(defaultPermission: FieldPermissionType)
...
@@ -103,19 +104,17 @@ export function useFormFieldsPermission(defaultPermission: FieldPermissionType)
const
getDefaultFieldsPermission
=
(
formFields
?:
string
[])
=>
{
const
getDefaultFieldsPermission
=
(
formFields
?:
string
[])
=>
{
let
defaultFieldsPermission
:
Array
<
Record
<
string
,
any
>>
=
[]
let
defaultFieldsPermission
:
Array
<
Record
<
string
,
any
>>
=
[]
if
(
formFields
)
{
if
(
formFields
)
{
defaultFieldsPermission
=
parseFormCreateFields
(
formFields
).
map
(
item
=>
{
defaultFieldsPermission
=
parseFormCreateFields
(
formFields
).
map
(
(
item
)
=>
{
return
{
return
{
field
:
item
.
field
,
field
:
item
.
field
,
title
:
item
.
title
,
title
:
item
.
title
,
permission
:
defaultPermission
permission
:
defaultPermission
}
}
})
;
})
}
}
return
defaultFieldsPermission
return
defaultFieldsPermission
}
}
// 获取表单的所有字段,作为下拉框选项
// 获取表单的所有字段,作为下拉框选项
const
formFieldOptions
=
parseFormCreateFields
(
unref
(
formFields
))
const
formFieldOptions
=
parseFormCreateFields
(
unref
(
formFields
))
...
@@ -281,14 +280,14 @@ export function useNodeForm(nodeType: NodeType) {
...
@@ -281,14 +280,14 @@ export function useNodeForm(nodeType: NodeType) {
}
}
// 表单内用户字段
// 表单内用户字段
if
(
configForm
.
value
?.
candidateStrategy
===
CandidateStrategy
.
USER_FIELD_ON_FORM
)
{
if
(
configForm
.
value
?.
candidateStrategy
===
CandidateStrategy
.
FORM_USER
)
{
const
formFieldOptions
=
parseFormCreateFields
(
unref
(
formFields
))
const
formFieldOptions
=
parseFormCreateFields
(
unref
(
formFields
))
const
item
=
formFieldOptions
.
find
((
item
)
=>
item
.
field
===
configForm
.
value
?.
userFieldOnForm
)
const
item
=
formFieldOptions
.
find
((
item
)
=>
item
.
field
===
configForm
.
value
?.
userFieldOnForm
)
showText
=
`表单用户:
${
item
?.
title
}
`
showText
=
`表单用户:
${
item
?.
title
}
`
}
}
// 表单内部门负责人
// 表单内部门负责人
if (configForm.value?.candidateStrategy === CandidateStrategy.
DEPT_LEADER_ON_FORM
) {
if (configForm.value?.candidateStrategy === CandidateStrategy.
FORM_DEPT_LEADER
) {
showText = `
表单内部门负责人
`
showText = `
表单内部门负责人
`
}
}
...
@@ -338,7 +337,7 @@ export function useNodeForm(nodeType: NodeType) {
...
@@ -338,7 +337,7 @@ export function useNodeForm(nodeType: NodeType) {
case CandidateStrategy.USER_GROUP:
case CandidateStrategy.USER_GROUP:
candidateParam = configForm.value.userGroups!.join(',')
candidateParam = configForm.value.userGroups!.join(',')
break
break
case CandidateStrategy.
USER_FIELD_ON_FORM
:
case CandidateStrategy.
FORM_USER
:
candidateParam = configForm.value.userFieldOnForm!
candidateParam = configForm.value.userFieldOnForm!
break
break
case CandidateStrategy.EXPRESSION:
case CandidateStrategy.EXPRESSION:
...
@@ -361,7 +360,7 @@ export function useNodeForm(nodeType: NodeType) {
...
@@ -361,7 +360,7 @@ export function useNodeForm(nodeType: NodeType) {
break
break
}
}
// 表单内部门的负责人
// 表单内部门的负责人
case CandidateStrategy.
DEPT_LEADER_ON_FORM
: {
case CandidateStrategy.
FORM_DEPT_LEADER
: {
// 候选人参数格式: | 分隔 。左边为表单内部门字段。 右边为部门层级
// 候选人参数格式: | 分隔 。左边为表单内部门字段。 右边为部门层级
const deptFieldOnForm = configForm.value.deptFieldOnForm!
const deptFieldOnForm = configForm.value.deptFieldOnForm!
candidateParam = deptFieldOnForm.concat('|' + configForm.value.deptLevel + '')
candidateParam = deptFieldOnForm.concat('|' + configForm.value.deptLevel + '')
...
@@ -396,7 +395,7 @@ export function useNodeForm(nodeType: NodeType) {
...
@@ -396,7 +395,7 @@ export function useNodeForm(nodeType: NodeType) {
case CandidateStrategy.USER_GROUP:
case CandidateStrategy.USER_GROUP:
configForm.value.userGroups = candidateParam.split(',').map((item) => +item)
configForm.value.userGroups = candidateParam.split(',').map((item) => +item)
break
break
case CandidateStrategy.
USER_FIELD_ON_FORM
:
case CandidateStrategy.
FORM_USER
:
configForm.value.userFieldOnForm = candidateParam
configForm.value.userFieldOnForm = candidateParam
break
break
case CandidateStrategy.EXPRESSION:
case CandidateStrategy.EXPRESSION:
...
@@ -420,7 +419,7 @@ export function useNodeForm(nodeType: NodeType) {
...
@@ -420,7 +419,7 @@ export function useNodeForm(nodeType: NodeType) {
break
break
}
}
// 表单内的部门负责人
// 表单内的部门负责人
case CandidateStrategy.
DEPT_LEADER_ON_FORM
: {
case CandidateStrategy.
FORM_DEPT_LEADER
: {
// 候选人参数格式: | 分隔 。左边为表单内的部门字段。 右边为部门层级
// 候选人参数格式: | 分隔 。左边为表单内的部门字段。 右边为部门层级
const paramArray = candidateParam.split('|')
const paramArray = candidateParam.split('|')
configForm.value.deptFieldOnForm = paramArray[0]
configForm.value.deptFieldOnForm = paramArray[0]
...
@@ -512,22 +511,22 @@ export function useNodeName2(node: Ref<SimpleFlowNode>, nodeType: NodeType) {
...
@@ -512,22 +511,22 @@ export function useNodeName2(node: Ref<SimpleFlowNode>, nodeType: NodeType) {
/**
/**
* @description 根据节点任务状态,获取节点任务状态样式
* @description 根据节点任务状态,获取节点任务状态样式
*/
*/
export function
useTaskStatusClass(taskStatus: TaskStatusEnum | undefined)
: string {
export function
useTaskStatusClass(taskStatus: TaskStatusEnum | undefined)
: string {
if (!taskStatus) {
if (!taskStatus) {
return ''
return ''
}
}
if (taskStatus === TaskStatusEnum.APPROVE
) {
if (taskStatus === TaskStatusEnum.APPROVE) {
return 'status-pass'
return 'status-pass'
}
}
if (taskStatus === TaskStatusEnum.RUNNING
) {
if (taskStatus === TaskStatusEnum.RUNNING) {
return 'status-running'
return 'status-running'
}
}
if (taskStatus === TaskStatusEnum.REJECT
) {
if (taskStatus === TaskStatusEnum.REJECT) {
return 'status-reject'
return 'status-reject'
}
}
if (taskStatus === TaskStatusEnum.CANCEL
) {
if (taskStatus === TaskStatusEnum.CANCEL) {
return 'status-cancel'
return 'status-cancel'
}
}
return ''
;
return ''
}
}
src/components/SimpleProcessDesignerV2/src/nodes-config/CopyTaskNodeConfig.vue
View file @
12bd71e7
...
@@ -124,13 +124,13 @@
...
@@ -124,13 +124,13 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
<el-form-item
v-if=
"configForm.candidateStrategy === CandidateStrategy.
USER_FIELD_ON_FORM
"
v-if=
"configForm.candidateStrategy === CandidateStrategy.
FORM_USER
"
label=
"表单内用户字段"
label=
"表单内用户字段"
prop=
"userFieldOnForm"
prop=
"userFieldOnForm"
>
>
<el-select
v-model=
"configForm.userFieldOnForm"
clearable
style=
"width: 100%"
>
<el-select
v-model=
"configForm.userFieldOnForm"
clearable
style=
"width: 100%"
>
<el-option
<el-option
v-for=
"(item,idx) in userFieldOnFormOptions"
v-for=
"(item,
idx) in userFieldOnFormOptions"
:key=
"idx"
:key=
"idx"
:label=
"item.title"
:label=
"item.title"
:value=
"item.field"
:value=
"item.field"
...
@@ -138,13 +138,13 @@
...
@@ -138,13 +138,13 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
<el-form-item
v-if=
"configForm.candidateStrategy === CandidateStrategy.
DEPT_LEADER_ON_FORM
"
v-if=
"configForm.candidateStrategy === CandidateStrategy.
FORM_DEPT_LEADER
"
label=
"表单内部门字段"
label=
"表单内部门字段"
prop=
"deptFieldOnForm"
prop=
"deptFieldOnForm"
>
>
<el-select
v-model=
"configForm.deptFieldOnForm"
clearable
style=
"width: 100%"
>
<el-select
v-model=
"configForm.deptFieldOnForm"
clearable
style=
"width: 100%"
>
<el-option
<el-option
v-for=
"(item,idx) in deptFieldOnFormOptions"
v-for=
"(item,
idx) in deptFieldOnFormOptions"
:key=
"idx"
:key=
"idx"
:label=
"item.title"
:label=
"item.title"
:value=
"item.field"
:value=
"item.field"
...
@@ -155,8 +155,9 @@
...
@@ -155,8 +155,9 @@
v-if=
"
v-if=
"
configForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.START_USER_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.START_USER_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.START_USER_MULTI_LEVEL_DEPT_LEADER ||
configForm.candidateStrategy ==
configForm.candidateStrategy == CandidateStrategy.DEPT_LEADER_ON_FORM
CandidateStrategy.START_USER_MULTI_LEVEL_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.FORM_DEPT_LEADER
"
"
:label=
"deptLevelLabel!"
:label=
"deptLevelLabel!"
prop=
"deptLevel"
prop=
"deptLevel"
...
@@ -288,20 +289,15 @@ const { nodeName, showInput, clickIcon, blurEvent } = useNodeName(NodeType.COPY_
...
@@ -288,20 +289,15 @@ const { nodeName, showInput, clickIcon, blurEvent } = useNodeName(NodeType.COPY_
// 激活的 Tab 标签页
// 激活的 Tab 标签页
const
activeTabName
=
ref
(
'user'
)
const
activeTabName
=
ref
(
'user'
)
// 表单字段权限配置
// 表单字段权限配置
const
{
formType
,
fieldsPermissionConfig
,
formFieldOptions
,
getNodeConfigFormFields
}
=
useFormFieldsPermission
(
const
{
formType
,
fieldsPermissionConfig
,
formFieldOptions
,
getNodeConfigFormFields
}
=
FieldPermissionType
.
READ
useFormFieldsPermission
(
FieldPermissionType
.
READ
)
)
// 表单内用户字段选项, 必须是必填和用户选择器
// 表单内用户字段选项, 必须是必填和用户选择器
const
userFieldOnFormOptions
=
computed
(()
=>
{
const
userFieldOnFormOptions
=
computed
(()
=>
{
return
formFieldOptions
.
filter
(
return
formFieldOptions
.
filter
((
item
)
=>
item
.
required
&&
item
.
type
===
'UserSelect'
)
(
item
)
=>
item
.
required
&&
item
.
type
===
'UserSelect'
)
})
})
// 表单内部门字段选项, 必须是必填和部门选择器
// 表单内部门字段选项, 必须是必填和部门选择器
const
deptFieldOnFormOptions
=
computed
(()
=>
{
const
deptFieldOnFormOptions
=
computed
(()
=>
{
return
formFieldOptions
.
filter
(
return
formFieldOptions
.
filter
((
item
)
=>
item
.
required
&&
item
.
type
===
'DeptSelect'
)
(
item
)
=>
item
.
required
&&
item
.
type
===
'DeptSelect'
)
})
})
// 抄送人表单配置
// 抄送人表单配置
const
formRef
=
ref
()
// 表单 Ref
const
formRef
=
ref
()
// 表单 Ref
...
@@ -332,9 +328,7 @@ const {
...
@@ -332,9 +328,7 @@ const {
const
configForm
=
tempConfigForm
as
Ref
<
CopyTaskFormType
>
const
configForm
=
tempConfigForm
as
Ref
<
CopyTaskFormType
>
// 抄送人策略, 去掉发起人自选 和 发起人自己
// 抄送人策略, 去掉发起人自选 和 发起人自己
const
copyUserStrategies
=
computed
(()
=>
{
const
copyUserStrategies
=
computed
(()
=>
{
return
CANDIDATE_STRATEGY
.
filter
(
return
CANDIDATE_STRATEGY
.
filter
((
item
)
=>
item
.
value
!==
CandidateStrategy
.
START_USER
)
(
item
)
=>
item
.
value
!==
CandidateStrategy
.
START_USER
)
})
})
// 改变抄送人设置策略
// 改变抄送人设置策略
const
changeCandidateStrategy
=
()
=>
{
const
changeCandidateStrategy
=
()
=>
{
...
...
src/components/SimpleProcessDesignerV2/src/nodes-config/UserTaskNodeConfig.vue
View file @
12bd71e7
...
@@ -138,13 +138,13 @@
...
@@ -138,13 +138,13 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
<el-form-item
v-if=
"configForm.candidateStrategy === CandidateStrategy.
USER_FIELD_ON_FORM
"
v-if=
"configForm.candidateStrategy === CandidateStrategy.
FORM_USER
"
label=
"表单内用户字段"
label=
"表单内用户字段"
prop=
"userFieldOnForm"
prop=
"userFieldOnForm"
>
>
<el-select
v-model=
"configForm.userFieldOnForm"
clearable
style=
"width: 100%"
>
<el-select
v-model=
"configForm.userFieldOnForm"
clearable
style=
"width: 100%"
>
<el-option
<el-option
v-for=
"(item,idx) in userFieldOnFormOptions"
v-for=
"(item,
idx) in userFieldOnFormOptions"
:key=
"idx"
:key=
"idx"
:label=
"item.title"
:label=
"item.title"
:value=
"item.field"
:value=
"item.field"
...
@@ -152,13 +152,13 @@
...
@@ -152,13 +152,13 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
<el-form-item
v-if=
"configForm.candidateStrategy === CandidateStrategy.
DEPT_LEADER_ON_FORM
"
v-if=
"configForm.candidateStrategy === CandidateStrategy.
FORM_DEPT_LEADER
"
label=
"表单内部门字段"
label=
"表单内部门字段"
prop=
"deptFieldOnForm"
prop=
"deptFieldOnForm"
>
>
<el-select
v-model=
"configForm.deptFieldOnForm"
clearable
style=
"width: 100%"
>
<el-select
v-model=
"configForm.deptFieldOnForm"
clearable
style=
"width: 100%"
>
<el-option
<el-option
v-for=
"(item,idx) in deptFieldOnFormOptions"
v-for=
"(item,
idx) in deptFieldOnFormOptions"
:key=
"idx"
:key=
"idx"
:label=
"item.title"
:label=
"item.title"
:value=
"item.field"
:value=
"item.field"
...
@@ -169,8 +169,9 @@
...
@@ -169,8 +169,9 @@
v-if=
"
v-if=
"
configForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.MULTI_LEVEL_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.START_USER_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.START_USER_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.START_USER_MULTI_LEVEL_DEPT_LEADER ||
configForm.candidateStrategy ==
configForm.candidateStrategy == CandidateStrategy.DEPT_LEADER_ON_FORM
CandidateStrategy.START_USER_MULTI_LEVEL_DEPT_LEADER ||
configForm.candidateStrategy == CandidateStrategy.FORM_DEPT_LEADER
"
"
:label=
"deptLevelLabel!"
:label=
"deptLevelLabel!"
prop=
"deptLevel"
prop=
"deptLevel"
...
@@ -496,10 +497,10 @@ const deptLevelLabel = computed(() => {
...
@@ -496,10 +497,10 @@ const deptLevelLabel = computed(() => {
let
label
=
'部门负责人来源'
let
label
=
'部门负责人来源'
if
(
configForm
.
value
.
candidateStrategy
==
CandidateStrategy
.
MULTI_LEVEL_DEPT_LEADER
)
{
if
(
configForm
.
value
.
candidateStrategy
==
CandidateStrategy
.
MULTI_LEVEL_DEPT_LEADER
)
{
label
=
label
+
'(指定部门向上)'
label
=
label
+
'(指定部门向上)'
}
else
if
(
configForm
.
value
.
candidateStrategy
==
CandidateStrategy
.
DEPT_LEADER_ON_FORM
)
{
}
else
if
(
configForm
.
value
.
candidateStrategy
==
CandidateStrategy
.
FORM_DEPT_LEADER
)
{
label
=
label
+
'(表单内部门向上)'
label
=
label
+
'(表单内部门向上)'
}
else
{
}
else
{
label
=
label
+
'(发起人部门向上)'
label
=
label
+
'(发起人部门向上)'
}
}
return
label
return
label
})
})
...
@@ -512,20 +513,15 @@ const { nodeName, showInput, clickIcon, blurEvent } = useNodeName(NodeType.USER_
...
@@ -512,20 +513,15 @@ const { nodeName, showInput, clickIcon, blurEvent } = useNodeName(NodeType.USER_
// 激活的 Tab 标签页
// 激活的 Tab 标签页
const
activeTabName
=
ref
(
'user'
)
const
activeTabName
=
ref
(
'user'
)
// 表单字段权限设置
// 表单字段权限设置
const
{
formType
,
fieldsPermissionConfig
,
formFieldOptions
,
getNodeConfigFormFields
}
=
useFormFieldsPermission
(
const
{
formType
,
fieldsPermissionConfig
,
formFieldOptions
,
getNodeConfigFormFields
}
=
FieldPermissionType
.
READ
useFormFieldsPermission
(
FieldPermissionType
.
READ
)
)
// 表单内用户字段选项, 必须是必填和用户选择器
// 表单内用户字段选项, 必须是必填和用户选择器
const
userFieldOnFormOptions
=
computed
(()
=>
{
const
userFieldOnFormOptions
=
computed
(()
=>
{
return
formFieldOptions
.
filter
(
return
formFieldOptions
.
filter
((
item
)
=>
item
.
required
&&
item
.
type
===
'UserSelect'
)
(
item
)
=>
item
.
required
&&
item
.
type
===
'UserSelect'
)
})
})
// 表单内部门字段选项, 必须是必填和部门选择器
// 表单内部门字段选项, 必须是必填和部门选择器
const
deptFieldOnFormOptions
=
computed
(()
=>
{
const
deptFieldOnFormOptions
=
computed
(()
=>
{
return
formFieldOptions
.
filter
(
return
formFieldOptions
.
filter
((
item
)
=>
item
.
required
&&
item
.
type
===
'DeptSelect'
)
(
item
)
=>
item
.
required
&&
item
.
type
===
'DeptSelect'
)
})
})
// 操作按钮设置
// 操作按钮设置
const
{
buttonsSetting
,
btnDisplayNameEdit
,
changeBtnDisplayName
,
btnDisplayNameBlurEvent
}
=
const
{
buttonsSetting
,
btnDisplayNameEdit
,
changeBtnDisplayName
,
btnDisplayNameBlurEvent
}
=
...
@@ -577,6 +573,7 @@ const changeCandidateStrategy = () => {
...
@@ -577,6 +573,7 @@ const changeCandidateStrategy = () => {
configForm
.
value
.
postIds
=
[]
configForm
.
value
.
postIds
=
[]
configForm
.
value
.
userGroups
=
[]
configForm
.
value
.
userGroups
=
[]
configForm
.
value
.
deptLevel
=
1
configForm
.
value
.
deptLevel
=
1
// TODO @jason:是不是 userFieldOnForm => formUser;deptFieldOnForm => formDeptLeader;原因是:想通前缀,好管理点
configForm
.
value
.
userFieldOnForm
=
''
configForm
.
value
.
userFieldOnForm
=
''
configForm
.
value
.
deptFieldOnForm
=
''
configForm
.
value
.
deptFieldOnForm
=
''
configForm
.
value
.
approveMethod
=
ApproveMethodType
.
SEQUENTIAL_APPROVE
configForm
.
value
.
approveMethod
=
ApproveMethodType
.
SEQUENTIAL_APPROVE
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment