Quellcode durchsuchen

feat:增加案例流程,业务表单发起时选择审批人

lizhixian vor 4 Monaten
Ursprung
Commit
913c995562
1 geänderte Dateien mit 15 neuen und 14 gelöschten Zeilen
  1. 15 14
      src/views/bpm/oa/leave/create.vue

+ 15 - 14
src/views/bpm/oa/leave/create.vue

@@ -138,12 +138,12 @@ const submitForm = async () => {
 
 //  新增    ====== begin ========
 /** 获取审批详情 */
-const getApprovalDetail = async (row: any) => {
+const getApprovalDetail = async () => {
   try {
     const data = await ProcessInstanceApi.getApprovalDetail({
-      processDefinitionId: row.id,
+      processDefinitionId: processDefinitionId.value,
       activityId: NodeId.START_USER_NODE_ID,
-      processVariablesStr: row.processVariablesStr // 解决 GET 无法传递对象的问题,后端 String 再转 JSON
+      processVariablesStr: JSON.stringify({ day: daysDifference() }) // 解决 GET 无法传递对象的问题,后端 String 再转 JSON
     })
 
     if (!data) {
@@ -178,6 +178,13 @@ const getApprovalDetail = async (row: any) => {
 const selectUserConfirm = (id: string, userList: any[]) => {
   startUserSelectAssignees.value[id] = userList?.map((item: any) => item.id)
 }
+
+// 计算天数差
+const daysDifference = () => {
+  const oneDay = 24 * 60 * 60 * 1000 // 一天的毫秒数
+  const diffTime = Math.abs(Number(formData.value.endTime) - Number(formData.value.startTime))
+  return Math.floor(diffTime / oneDay)
+}
 //  新增    ====== end ========
 
 /** 初始化 */
@@ -194,15 +201,12 @@ onMounted(async () => {
   processDefinitionId.value = processDefinitionDetail.id
   startUserSelectTasks.value = processDefinitionDetail.startUserSelectTasks
   //  新增    ====== begin ========
-  // 查询流程预测节点
-  getApprovalDetail({
-    id: processDefinitionId.value,
-    processVariablesStr: JSON.stringify(formData.value)
-  })
+  // 加载最新的审批详情,主要用于节点预测
+  getApprovalDetail()
   //  新增    ====== end ========
 })
 //  新增    ====== begin ========
-/** 预测流程节点会因为输入的参数值而产生新的预测结果值,所以需重新预测一次 */
+/** 预测流程节点会因为输入的参数值而产生新的预测结果值,所以需重新预测一次, formData.value可改成实际业务中的特定字段 */
 watch(
   formData.value,
   (newValue, oldValue) => {
@@ -213,11 +217,8 @@ watch(
       // 记录之前的节点审批人
       tempStartUserSelectAssignees.value = startUserSelectAssignees.value
       startUserSelectAssignees.value = {}
-      // 加载最新的审批详情
-      getApprovalDetail({
-        id: processDefinitionId.value,
-        processVariablesStr: JSON.stringify(newValue) // 解决 GET 无法传递对象的问题,后端 String 再转 JSON
-      })
+      // 加载最新的审批详情,主要用于节点预测
+      getApprovalDetail()
     }
   },
   {