评估只有一级审批弹信息输入框
Showing
3 changed files
with
185 additions
and
6 deletions
| ... | @@ -58,3 +58,9 @@ export const getProcessNodesPromise = (params)=>request({ | ... | @@ -58,3 +58,9 @@ export const getProcessNodesPromise = (params)=>request({ |
| 58 | method: 'post', | 58 | method: 'post', |
| 59 | data: params | 59 | data: params |
| 60 | }) | 60 | }) |
| 61 | |||
| 62 | export const isMyFirstNode = (params) => request({ | ||
| 63 | url: `${import.meta.env.VITE_APP_WORK_FLOW_URL}/work-flow/data/is-my-first-node`, | ||
| 64 | method: 'post', | ||
| 65 | data: params | ||
| 66 | }) | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -20,7 +20,7 @@ import useDataAssetStore from "@/store/modules/dataAsset"; | ... | @@ -20,7 +20,7 @@ import useDataAssetStore from "@/store/modules/dataAsset"; |
| 20 | import { | 20 | import { |
| 21 | getStaffDetailInfo | 21 | getStaffDetailInfo |
| 22 | } from "@/api/modules/queryService"; | 22 | } from "@/api/modules/queryService"; |
| 23 | import { rejectFlowData, revokeFlowData, getCamundaDeploymentId, getProcessNodesPromise } from "@/api/modules/workFlowService"; | 23 | import { rejectFlowData, revokeFlowData, getCamundaDeploymentId, getProcessNodesPromise, isMyFirstNode, passFlowData } from "@/api/modules/workFlowService"; |
| 24 | 24 | ||
| 25 | const assetStore = useDataAssetStore(); | 25 | const assetStore = useDataAssetStore(); |
| 26 | 26 | ||
| ... | @@ -224,6 +224,8 @@ const getTableBtns = (row) => { | ... | @@ -224,6 +224,8 @@ const getTableBtns = (row) => { |
| 224 | 224 | ||
| 225 | const currTableData: any = ref({}); | 225 | const currTableData: any = ref({}); |
| 226 | 226 | ||
| 227 | let getFirstNodePromise: any = ref({}); | ||
| 228 | |||
| 227 | const tableBtnClick = (scope, btn) => { | 229 | const tableBtnClick = (scope, btn) => { |
| 228 | const type = btn.value; | 230 | const type = btn.value; |
| 229 | const row = scope.row; | 231 | const row = scope.row; |
| ... | @@ -240,6 +242,17 @@ const tableBtnClick = (scope, btn) => { | ... | @@ -240,6 +242,17 @@ const tableBtnClick = (scope, btn) => { |
| 240 | } else if (type === 'reject') { | 242 | } else if (type === 'reject') { |
| 241 | rejectDialogInfo.value.visible = true; | 243 | rejectDialogInfo.value.visible = true; |
| 242 | } else if (type === 'pass') { | 244 | } else if (type === 'pass') { |
| 245 | if (getFirstNodePromise.value[row.guid]) { | ||
| 246 | return; | ||
| 247 | } | ||
| 248 | getFirstNodePromise.value[row.guid] = isMyFirstNode({ | ||
| 249 | deploymentId: row.approveVO.camundaDeploymentId, | ||
| 250 | processInstanceId: row.approveVO.camundaInstanceId, | ||
| 251 | staffGuid: userData.staffGuid | ||
| 252 | }).then((res: any) => { | ||
| 253 | getFirstNodePromise.value[row.guid] = null; | ||
| 254 | if (res?.code == proxy.$passCode) { | ||
| 255 | if (res.data) { | ||
| 243 | passDialogInfo.value.visible = true; | 256 | passDialogInfo.value.visible = true; |
| 244 | if (row.dataStartDate) { | 257 | if (row.dataStartDate) { |
| 245 | passFormItems.value[1].disabled = true; | 258 | passFormItems.value[1].disabled = true; |
| ... | @@ -249,6 +262,13 @@ const tableBtnClick = (scope, btn) => { | ... | @@ -249,6 +262,13 @@ const tableBtnClick = (scope, btn) => { |
| 249 | passFormItems.value[1].default = null; | 262 | passFormItems.value[1].default = null; |
| 250 | } | 263 | } |
| 251 | passFormItems.value[2].placeholder = `本次评估数据资产总体质量得分为**分\n准确性:\n一致性:\n可访问性:\n规范性:\n完整性:`; | 264 | passFormItems.value[2].placeholder = `本次评估数据资产总体质量得分为**分\n准确性:\n一致性:\n可访问性:\n规范性:\n完整性:`; |
| 265 | } else { | ||
| 266 | passCommonDialogInfo.value.visible = true; | ||
| 267 | } | ||
| 268 | } else { | ||
| 269 | proxy.$ElMessage.error(res.msg); | ||
| 270 | } | ||
| 271 | }) | ||
| 252 | } else if (type === 'revoke') { // 撤销,状态为审批中时可以撤销。 | 272 | } else if (type === 'revoke') { // 撤销,状态为审批中时可以撤销。 |
| 253 | ElMessageBox.confirm(`撤销后,该流程将不再进行审核,确定这样操作吗?`, "提示", { | 273 | ElMessageBox.confirm(`撤销后,该流程将不再进行审核,确定这样操作吗?`, "提示", { |
| 254 | confirmButtonText: "确定", | 274 | confirmButtonText: "确定", |
| ... | @@ -743,6 +763,73 @@ const rejectDialogBtnClick = (btn, info) => { | ... | @@ -743,6 +763,73 @@ const rejectDialogBtnClick = (btn, info) => { |
| 743 | } | 763 | } |
| 744 | }; | 764 | }; |
| 745 | 765 | ||
| 766 | const passCommonDialogInfo = ref({ | ||
| 767 | visible: false, | ||
| 768 | size: 460, | ||
| 769 | direction: "column", | ||
| 770 | header: { | ||
| 771 | title: "通过", | ||
| 772 | }, | ||
| 773 | type: '', | ||
| 774 | contents: [ | ||
| 775 | { | ||
| 776 | type: 'form', | ||
| 777 | title: '', | ||
| 778 | formInfo: { | ||
| 779 | id: 'batch-pass-form', | ||
| 780 | items: [ | ||
| 781 | { | ||
| 782 | label: '', | ||
| 783 | type: "textarea", | ||
| 784 | placeholder: "请填写通过备注(选填)", | ||
| 785 | field: "approveSuggest", | ||
| 786 | clearable: true, | ||
| 787 | maxlength: 400, | ||
| 788 | block: true, | ||
| 789 | col: 'margin_b_0', | ||
| 790 | } | ||
| 791 | ] | ||
| 792 | } | ||
| 793 | } | ||
| 794 | ], | ||
| 795 | footer: { | ||
| 796 | btns: [ | ||
| 797 | { type: "default", label: "取消", value: "cancel" }, | ||
| 798 | { type: "primary", label: "确定", value: "submit" }, | ||
| 799 | ], | ||
| 800 | }, | ||
| 801 | }); | ||
| 802 | |||
| 803 | const passCommonDialogBtnClick = (btn, info) => { | ||
| 804 | if (btn.value == 'submit') { | ||
| 805 | tableInfo.value.loading = true; | ||
| 806 | let params = { | ||
| 807 | guid: currTableData.value.approveVO.approveGuid, | ||
| 808 | flowType: currTableData.value.approveVO.flowType, | ||
| 809 | approveSuggest: info.approveSuggest, | ||
| 810 | approveStaffGuid: userData.staffGuid | ||
| 811 | } | ||
| 812 | passFlowData(params, currTableData.value.tenantGuid).then((res: any) => { | ||
| 813 | tableInfo.value.loading = false; | ||
| 814 | if (res?.code == proxy.$passCode) { | ||
| 815 | if (res.data) { | ||
| 816 | ElMessage.success('审批成功'); | ||
| 817 | passCommonDialogInfo.value.visible = false; | ||
| 818 | getTableData(); | ||
| 819 | } else { | ||
| 820 | ElMessage.error('审批失败'); | ||
| 821 | } | ||
| 822 | } else { | ||
| 823 | ElMessage.error(res.msg); | ||
| 824 | } | ||
| 825 | }).catch(() => { | ||
| 826 | tableInfo.value.loading = false; | ||
| 827 | }); | ||
| 828 | } else if (btn.value == 'cancel') { | ||
| 829 | passCommonDialogInfo.value.visible = false; | ||
| 830 | } | ||
| 831 | } | ||
| 832 | |||
| 746 | </script> | 833 | </script> |
| 747 | 834 | ||
| 748 | <template> | 835 | <template> |
| ... | @@ -759,6 +846,7 @@ const rejectDialogBtnClick = (btn, info) => { | ... | @@ -759,6 +846,7 @@ const rejectDialogBtnClick = (btn, info) => { |
| 759 | <Dialog :dialogInfo="dialogInfo" @btnClick="dialogBtnClick" /> | 846 | <Dialog :dialogInfo="dialogInfo" @btnClick="dialogBtnClick" /> |
| 760 | <Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange=passDialogInputChange /> | 847 | <Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange=passDialogInputChange /> |
| 761 | <Dialog :dialogInfo="rejectDialogInfo" @btnClick="rejectDialogBtnClick" /> | 848 | <Dialog :dialogInfo="rejectDialogInfo" @btnClick="rejectDialogBtnClick" /> |
| 849 | <Dialog :dialogInfo="passCommonDialogInfo" @btnClick="passCommonDialogBtnClick" /> | ||
| 762 | </div> | 850 | </div> |
| 763 | </template> | 851 | </template> |
| 764 | 852 | ... | ... |
| ... | @@ -21,7 +21,7 @@ import { | ... | @@ -21,7 +21,7 @@ import { |
| 21 | } from "@/api/modules/queryService"; | 21 | } from "@/api/modules/queryService"; |
| 22 | import useUserStore from "@/store/modules/user"; | 22 | import useUserStore from "@/store/modules/user"; |
| 23 | import useDataAssetStore from "@/store/modules/dataAsset"; | 23 | import useDataAssetStore from "@/store/modules/dataAsset"; |
| 24 | import { getCamundaDeploymentId, getProcessNodesPromise, passFlowData, rejectFlowData, revokeFlowData } from '@/api/modules/workFlowService'; | 24 | import { getCamundaDeploymentId, getProcessNodesPromise, passFlowData, rejectFlowData, revokeFlowData, isMyFirstNode } from '@/api/modules/workFlowService'; |
| 25 | 25 | ||
| 26 | const assetStore = useDataAssetStore(); | 26 | const assetStore = useDataAssetStore(); |
| 27 | 27 | ||
| ... | @@ -287,6 +287,8 @@ const getTableBtns = (row) => { | ... | @@ -287,6 +287,8 @@ const getTableBtns = (row) => { |
| 287 | 287 | ||
| 288 | const currTableData: any = ref({}); | 288 | const currTableData: any = ref({}); |
| 289 | 289 | ||
| 290 | let getFirstNodePromise: any = ref({}); | ||
| 291 | |||
| 290 | const tableBtnClick = (scope, btn) => { | 292 | const tableBtnClick = (scope, btn) => { |
| 291 | const type = btn.value; | 293 | const type = btn.value; |
| 292 | const row = scope.row; | 294 | const row = scope.row; |
| ... | @@ -350,8 +352,26 @@ const tableBtnClick = (scope, btn) => { | ... | @@ -350,8 +352,26 @@ const tableBtnClick = (scope, btn) => { |
| 350 | } else if (type === 'backup') { | 352 | } else if (type === 'backup') { |
| 351 | rejectDialogInfo.value.visible = true; | 353 | rejectDialogInfo.value.visible = true; |
| 352 | } else if (type === 'pass') { | 354 | } else if (type === 'pass') { |
| 355 | if (getFirstNodePromise.value[row.guid]) { | ||
| 356 | return; | ||
| 357 | } | ||
| 358 | getFirstNodePromise.value[row.guid] = isMyFirstNode({ | ||
| 359 | deploymentId: row.approveVO.camundaDeploymentId, | ||
| 360 | processInstanceId: row.approveVO.camundaInstanceId, | ||
| 361 | staffGuid: userData.staffGuid | ||
| 362 | }).then((res: any) => { | ||
| 363 | getFirstNodePromise.value[row.guid] = null; | ||
| 364 | if (res?.code == proxy.$passCode) { | ||
| 365 | if (res.data) { | ||
| 353 | passDialogInfo.value.visible = true; | 366 | passDialogInfo.value.visible = true; |
| 354 | passFormItems.value[2].placeholder = '按照本次评估目的及价值类型,该笔数据资产在评估基准日的评估值为人民币***元。本次评估结论在评估基准日后一年内有效,即自20*年*月*日至20*年*月*日止。超过一年,需重新举行资产评估。'; | 367 | passFormItems.value[2].placeholder = '按照本次评估目的及价值类型,该笔数据资产在评估基准日的评估值为人民币***元。本次评估结论在评估基准日后一年内有效,即自20*年*月*日至20*年*月*日止。超过一年,需重新举行资产评估。'; |
| 368 | } else { | ||
| 369 | passCommonDialogInfo.value.visible = true; | ||
| 370 | } | ||
| 371 | } else { | ||
| 372 | proxy.$ElMessage.error(res.msg); | ||
| 373 | } | ||
| 374 | }) | ||
| 355 | } else if (type === 'revoke') { // 撤销,状态为审批中时可以撤销。 | 375 | } else if (type === 'revoke') { // 撤销,状态为审批中时可以撤销。 |
| 356 | ElMessageBox.confirm(`撤销后,该流程将不再进行审核,确定这样操作吗?`, "提示", { | 376 | ElMessageBox.confirm(`撤销后,该流程将不再进行审核,确定这样操作吗?`, "提示", { |
| 357 | confirmButtonText: "确定", | 377 | confirmButtonText: "确定", |
| ... | @@ -808,7 +828,7 @@ const dialogBtnClick = (btn, info) => { | ... | @@ -808,7 +828,7 @@ const dialogBtnClick = (btn, info) => { |
| 808 | evaluationRangeStart: info.evaluationRange ? info.evaluationRange[0] : null, | 828 | evaluationRangeStart: info.evaluationRange ? info.evaluationRange[0] : null, |
| 809 | evaluationRangeEnd: info.evaluationRange ? info.evaluationRange[1] : null, | 829 | evaluationRangeEnd: info.evaluationRange ? info.evaluationRange[1] : null, |
| 810 | evaluationNote: info.evaluationNote, | 830 | evaluationNote: info.evaluationNote, |
| 811 | evaluationAgencyGuid: res.data?.[1]?.candidateUsers?.[0]?.staffGuid, | 831 | evaluationAgencyGuid: resUser.data?.tenantGuid, |
| 812 | } | 832 | } |
| 813 | } | 833 | } |
| 814 | console.log('daInfo', daInfo, info); | 834 | console.log('daInfo', daInfo, info); |
| ... | @@ -1008,7 +1028,42 @@ const passDialogBtnClick = (btn, info) => { | ... | @@ -1008,7 +1028,42 @@ const passDialogBtnClick = (btn, info) => { |
| 1008 | } | 1028 | } |
| 1009 | }; | 1029 | }; |
| 1010 | 1030 | ||
| 1011 | 1031 | const passCommonDialogInfo = ref({ | |
| 1032 | visible: false, | ||
| 1033 | size: 460, | ||
| 1034 | direction: "column", | ||
| 1035 | header: { | ||
| 1036 | title: "通过", | ||
| 1037 | }, | ||
| 1038 | type: '', | ||
| 1039 | contents: [ | ||
| 1040 | { | ||
| 1041 | type: 'form', | ||
| 1042 | title: '', | ||
| 1043 | formInfo: { | ||
| 1044 | id: 'batch-pass-form', | ||
| 1045 | items: [ | ||
| 1046 | { | ||
| 1047 | label: '', | ||
| 1048 | type: "textarea", | ||
| 1049 | placeholder: "请填写通过备注(选填)", | ||
| 1050 | field: "approveSuggest", | ||
| 1051 | clearable: true, | ||
| 1052 | maxlength: 400, | ||
| 1053 | block: true, | ||
| 1054 | col: 'margin_b_0', | ||
| 1055 | } | ||
| 1056 | ] | ||
| 1057 | } | ||
| 1058 | } | ||
| 1059 | ], | ||
| 1060 | footer: { | ||
| 1061 | btns: [ | ||
| 1062 | { type: "default", label: "取消", value: "cancel" }, | ||
| 1063 | { type: "primary", label: "确定", value: "submit" }, | ||
| 1064 | ], | ||
| 1065 | }, | ||
| 1066 | }); | ||
| 1012 | 1067 | ||
| 1013 | 1068 | ||
| 1014 | const rejectDialogInfo = ref({ | 1069 | const rejectDialogInfo = ref({ |
| ... | @@ -1082,6 +1137,36 @@ const rejectDialogBtnClick = (btn, info) => { | ... | @@ -1082,6 +1137,36 @@ const rejectDialogBtnClick = (btn, info) => { |
| 1082 | } | 1137 | } |
| 1083 | }; | 1138 | }; |
| 1084 | 1139 | ||
| 1140 | const passCommonDialogBtnClick = (btn, info) => { | ||
| 1141 | if (btn.value == 'submit') { | ||
| 1142 | tableInfo.value.loading = true; | ||
| 1143 | let params = { | ||
| 1144 | guid: currTableData.value.approveVO.approveGuid, | ||
| 1145 | flowType: currTableData.value.approveVO.flowType, | ||
| 1146 | approveSuggest: info.approveSuggest, | ||
| 1147 | approveStaffGuid: userData.staffGuid | ||
| 1148 | } | ||
| 1149 | passFlowData(params, currTableData.value.tenantGuid).then((res: any) => { | ||
| 1150 | tableInfo.value.loading = false; | ||
| 1151 | if (res?.code == proxy.$passCode) { | ||
| 1152 | if (res.data) { | ||
| 1153 | ElMessage.success('审批成功'); | ||
| 1154 | passCommonDialogInfo.value.visible = false; | ||
| 1155 | getTableData(); | ||
| 1156 | } else { | ||
| 1157 | ElMessage.error('审批失败'); | ||
| 1158 | } | ||
| 1159 | } else { | ||
| 1160 | ElMessage.error(res.msg); | ||
| 1161 | } | ||
| 1162 | }).catch(() => { | ||
| 1163 | tableInfo.value.loading = false; | ||
| 1164 | }); | ||
| 1165 | } else if (btn.value == 'cancel') { | ||
| 1166 | passCommonDialogInfo.value.visible = false; | ||
| 1167 | } | ||
| 1168 | } | ||
| 1169 | |||
| 1085 | </script> | 1170 | </script> |
| 1086 | 1171 | ||
| 1087 | <template> | 1172 | <template> |
| ... | @@ -1098,6 +1183,7 @@ const rejectDialogBtnClick = (btn, info) => { | ... | @@ -1098,6 +1183,7 @@ const rejectDialogBtnClick = (btn, info) => { |
| 1098 | <Dialog :dialogInfo="dialogInfo" @btnClick="dialogBtnClick" @selectChange="handleSelectChange" /> | 1183 | <Dialog :dialogInfo="dialogInfo" @btnClick="dialogBtnClick" @selectChange="handleSelectChange" /> |
| 1099 | <Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange="passDialogInputChange" /> | 1184 | <Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange="passDialogInputChange" /> |
| 1100 | <Dialog :dialogInfo="rejectDialogInfo" @btnClick="rejectDialogBtnClick" /> | 1185 | <Dialog :dialogInfo="rejectDialogInfo" @btnClick="rejectDialogBtnClick" /> |
| 1186 | <Dialog :dialogInfo="passCommonDialogInfo" @btnClick="passCommonDialogBtnClick" /> | ||
| 1101 | </div> | 1187 | </div> |
| 1102 | </template> | 1188 | </template> |
| 1103 | 1189 | ||
| ... | @@ -1110,5 +1196,4 @@ const rejectDialogBtnClick = (btn, info) => { | ... | @@ -1110,5 +1196,4 @@ const rejectDialogBtnClick = (btn, info) => { |
| 1110 | // .el-upload__tip { | 1196 | // .el-upload__tip { |
| 1111 | // margin-left: 0px; | 1197 | // margin-left: 0px; |
| 1112 | // } | 1198 | // } |
| 1113 | // } | 1199 | // }</style> |
| 1114 | </style> | ... | ... |
-
Please register or sign in to post a comment