diff --git a/package.json b/package.json index bc416ca49..98e623811 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "screenfull": "^6.0.0", "tinymce": "^6.7.0", "ts-md5": "^1.3.1", + "uuid": "^9.0.1", "vue": "^3.3.1", "vue-i18n": "9.2.2", "vue-router": "^4.2.0", diff --git a/src/App.vue b/src/App.vue index 9fb00e087..fd64a559d 100644 --- a/src/App.vue +++ b/src/App.vue @@ -9,3 +9,4 @@ const appStore = useAppStore(); + diff --git a/src/api/displayboardapi/indexapi.ts b/src/api/displayboardapi/indexapi.ts index 11edfeba1..8f1e10268 100644 --- a/src/api/displayboardapi/indexapi.ts +++ b/src/api/displayboardapi/indexapi.ts @@ -70,3 +70,19 @@ export const getOrgEveryonePeople = (data?: publicId): AxiosPromise { + return request({ + url: '/kpiapi/powerpc/search_people', + method: 'post', + data: data + }) +} +//搜索角色(新版) +export const getRoles = (data?: any) => { + return request({ + url: '/kpiapi/powerpc/system_role_list_flow', + method: 'post', + data: data + }) +} diff --git a/src/api/workflowapi/index.ts b/src/api/workflowapi/index.ts index ec48204b3..bd2cf580d 100644 --- a/src/api/workflowapi/index.ts +++ b/src/api/workflowapi/index.ts @@ -21,7 +21,7 @@ export function setWorkFlowData(data: any):any { data: data }); } -//保存工作流 +//保存工作流 export function getConditions(data: any):any { return request({ url: '/systemapi/task_flow/init_workflow', @@ -29,3 +29,19 @@ export function getConditions(data: any):any { data: data }); } +//审批线已经存在得节点 +export function getAllParentNode(data: any) { + return request({ + url: '/kpiapi/workflowapi/get_all_parent_node', + method: 'post', + data: data + }); +} +//判断是否显示(指定审批节点自选)选项及可选节点 +export function judgeOptionalNode(data: any) { + return request({ + url: '/kpiapi/workflowapi/judge_optional_node', + method: 'post', + data: data + }); +} diff --git a/src/assets/images/checkbox.png b/src/assets/images/checkbox.png new file mode 100644 index 000000000..0e8e77138 Binary files /dev/null and b/src/assets/images/checkbox.png differ diff --git a/src/assets/images/checkbox_true.png b/src/assets/images/checkbox_true.png new file mode 100644 index 000000000..93e2f6005 Binary files /dev/null and b/src/assets/images/checkbox_true.png differ diff --git a/src/components/workflow/addNode.vue b/src/components/workflow/addNode.vue index c0f69d335..b51875303 100644 --- a/src/components/workflow/addNode.vue +++ b/src/components/workflow/addNode.vue @@ -4,7 +4,12 @@ @ 备注: 添加节点弹窗 --> diff --git a/src/components/workflow/dialog/common.ts b/src/components/workflow/dialog/common.ts index 80ec63157..e0dea4391 100644 --- a/src/components/workflow/dialog/common.ts +++ b/src/components/workflow/dialog/common.ts @@ -1,11 +1,11 @@ import $func from '@/utils/workflow/index' import { outputOrgAndUser } from '@/api/displayboardapi/types' -import { getBasisOrgChiled } from '@/api/displayboardapi/indexapi' +import { getBasisOrgChiled,getEmployees,getRoles } from '@/api/displayboardapi/indexapi' export let searchVal = ref('') -export let departments = ref() +export let departments = ref() export let roles = ref({}) //获取行政组织及人员 @@ -17,3 +17,30 @@ export let getDepartmentList = async (parentId:any = 0) => { console.log("data---->",data) departments.value = data; } +//搜索成员 +export let getDebounceData = (event:any, type = 1) => { + $func.debounce(async () => { + if (event.target.value) { + let data = { + name: event.target.value, + page: 1, + pagesize: 30 + } + if (type == 1) { + departments.value.childDepartments = []; + let res = await getEmployees(data) + departments.value.employees = res.data.list + } else { + let res = await getRoles(data) + roles.value = res.data.list + } + } else { + type == 1 ? await getDepartmentList() : await getRoleList(); + } + })() +} +//角色列表 +export let getRoleList = async () => { + let { data: { list } } = await getRoles() + roles.value = list; +} diff --git a/src/components/workflow/dialog/employeesDialog.vue b/src/components/workflow/dialog/employeesDialog.vue index 6b1094ea1..905802cff 100644 --- a/src/components/workflow/dialog/employeesDialog.vue +++ b/src/components/workflow/dialog/employeesDialog.vue @@ -4,12 +4,12 @@ @ 备注: 人员选择 --> + + diff --git a/src/components/workflow/dialog/roleDialog.vue b/src/components/workflow/dialog/roleDialog.vue new file mode 100644 index 000000000..83fa98fe2 --- /dev/null +++ b/src/components/workflow/dialog/roleDialog.vue @@ -0,0 +1,103 @@ + + + + diff --git a/src/components/workflow/drwer/approverDrawer.vue b/src/components/workflow/drwer/approverDrawer.vue index 4f238a907..646bb47a7 100644 --- a/src/components/workflow/drwer/approverDrawer.vue +++ b/src/components/workflow/drwer/approverDrawer.vue @@ -7,13 +7,21 @@ import $func from '@/utils/workflow/index' import { setTypes, selectModes, selectRanges } from '@/utils/workflow/const' import { useStore } from '@/store/workflow/index' +import { getAllParentNode,judgeOptionalNode } from '@/api/workflowapi/index' let props = defineProps({ + nodeConfig:{ + type: Object, + default: () => ({}), + }, directormaxlevel: { type: Number, - default: 0 + default: 4 } }); +const nodeTitle = ref("审批人设置") +const nodeOptional = ref() //审批线已经存在得节点 +const nodeAllVerify = ref() let approverConfig = ref({}) let approverVisible = ref(false) let approverRoleVisible = ref(false) @@ -31,8 +39,33 @@ let visible = computed({ closeDrawer() } }) + watch(approverConfig1, (val:any)=>{ + // console.log("directormaxlevel",props.directormaxlevel) approverConfig.value = val.value + if(val.type == 3){ + nodeTitle.value = "执行人设置" + }else{ + nodeTitle.value = "审批人设置" + } + + judgeOptionalNode(props.nodeConfig) + .then((data)=>{ + if(data.code == 0){ + let sendData = { + id:val.value.fromNode, + allcont:data.data.allcont + } + getAllParentNode(sendData) + .then((data)=>{ + if(data.code == 0){ + nodeOptional.value = data.data.allcont + } + }) + } + }) + + }) let changeRange = ()=> { approverConfig.value.nodeUserList = []; @@ -80,34 +113,35 @@ const closeDrawer = ()=> { } - -
+ +
+

该审批节点设置“发起人自己”后,审批人默认为发起人

+
+ +

审批终点

发起人的:

+ +
+

可选节点列表

+ + 发起人 + {{ item.nodeName }}(编号:{{ item.nodeNumber }}) + + +
+ +

多人审批时采用的审批方式

依次审批 -
会签(须所有审批人同意) + 非会签(有一位审批人同意即可)
-
+

审批人为空时

自动审批通过/不允许发起 @@ -153,20 +200,64 @@ const closeDrawer = ()=> { 转交给审核管理员
+ +
+

退回设置

+ + 发起人 + {{ item.nodeName }}(编号:{{ item.nodeNumber }}) + +
+ + + +
+ + + + + + +
diff --git a/src/components/workflow/drwer/conditionDrawer.vue b/src/components/workflow/drwer/conditionDrawer.vue index 92e3852d3..2465215d1 100644 --- a/src/components/workflow/drwer/conditionDrawer.vue +++ b/src/components/workflow/drwer/conditionDrawer.vue @@ -33,7 +33,7 @@ let visible = computed({ } }) watch(conditionsConfig1, (val:any) => { - console.log("val.priorityLevel",val.priorityLevel) + // console.log("val.priorityLevel",val.priorityLevel) conditionsConfig.value = val.value; PriorityLevel.value = val.priorityLevel conditionConfig.value = val.priorityLevel diff --git a/src/components/workflow/drwer/copyerDrawer.vue b/src/components/workflow/drwer/copyerDrawer.vue index 7f8629100..52a519448 100644 --- a/src/components/workflow/drwer/copyerDrawer.vue +++ b/src/components/workflow/drwer/copyerDrawer.vue @@ -4,6 +4,7 @@ @ 备注: 抄送配置 --> + + diff --git a/src/components/workflow/selectResult.vue b/src/components/workflow/selectResult.vue index dddd4af78..2ab29afac 100644 --- a/src/components/workflow/selectResult.vue +++ b/src/components/workflow/selectResult.vue @@ -4,7 +4,7 @@ @ 备注: 已选择得内容 -->