详情里评估的审批通过只有一级弹框
Showing
2 changed files
with
171 additions
and
2 deletions
| ... | @@ -18,7 +18,7 @@ import { | ... | @@ -18,7 +18,7 @@ import { |
| 18 | } from "@/api/modules/dataAsset"; | 18 | } from "@/api/modules/dataAsset"; |
| 19 | import { changeNum } from '@/utils/common' | 19 | import { changeNum } from '@/utils/common' |
| 20 | import { ElMessage, ElMessageBox } from "element-plus"; | 20 | import { ElMessage, ElMessageBox } from "element-plus"; |
| 21 | import { passFlowData, rejectFlowData, revokeFlowData } from "@/api/modules/workFlowService"; | 21 | import { passFlowData, rejectFlowData, revokeFlowData, isMyFirstNode } from "@/api/modules/workFlowService"; |
| 22 | import { onUploadFilePreview, onUploadFileDownload } from '@/api/modules/common'; | 22 | import { onUploadFilePreview, onUploadFileDownload } from '@/api/modules/common'; |
| 23 | 23 | ||
| 24 | const router = useRouter(); | 24 | const router = useRouter(); |
| ... | @@ -218,6 +218,8 @@ const toolBtns: any = computed(() => { | ... | @@ -218,6 +218,8 @@ const toolBtns: any = computed(() => { |
| 218 | return btnsArr; | 218 | return btnsArr; |
| 219 | }); | 219 | }); |
| 220 | 220 | ||
| 221 | const getFirstNodePromise: any = ref(); | ||
| 222 | |||
| 221 | const btnClick = (btn) => { | 223 | const btnClick = (btn) => { |
| 222 | const type = btn.value; | 224 | const type = btn.value; |
| 223 | if (type == 'cancel') { | 225 | if (type == 'cancel') { |
| ... | @@ -234,9 +236,27 @@ const btnClick = (btn) => { | ... | @@ -234,9 +236,27 @@ const btnClick = (btn) => { |
| 234 | }); | 236 | }); |
| 235 | } | 237 | } |
| 236 | } else if (type == 'pass') { | 238 | } else if (type == 'pass') { |
| 239 | if (getFirstNodePromise.value) { | ||
| 240 | return; | ||
| 241 | } | ||
| 242 | getFirstNodePromise.value = isMyFirstNode({ | ||
| 243 | deploymentId: deploymentId.value, | ||
| 244 | processInstanceId: processInstanceId.value, | ||
| 245 | staffGuid: userData.staffGuid | ||
| 246 | }).then((res: any) => { | ||
| 247 | getFirstNodePromise.value = null; | ||
| 248 | if (res?.code == proxy.$passCode) { | ||
| 249 | if (res.data) { | ||
| 237 | passDialogInfo.value.visible = true; | 250 | passDialogInfo.value.visible = true; |
| 238 | assessFormItems.value[2].placeholder = '按照本次评估目的及价值类型,该笔数据资产在评估基准日的评估值为人民币***元。本次评估结论在评估基准日后一年内有效,即自20*年*月*日至20*年*月*日止。超过一年,需重新举行资产评估。'; | 251 | assessFormItems.value[2].placeholder = '按照本次评估目的及价值类型,该笔数据资产在评估基准日的评估值为人民币***元。本次评估结论在评估基准日后一年内有效,即自20*年*月*日至20*年*月*日止。超过一年,需重新举行资产评估。'; |
| 239 | qualityEvaluateFormItems.value[2].placeholder = '本次评估数据资产总体质量得分为**分\n准确性:\n一致性:\n可访问性:\n规范性:\n完整性:'; | 252 | qualityEvaluateFormItems.value[2].placeholder = '本次评估数据资产总体质量得分为**分\n准确性:\n一致性:\n可访问性:\n规范性:\n完整性:'; |
| 253 | } else { | ||
| 254 | passCommonDialogInfo.value.visible = true; | ||
| 255 | } | ||
| 256 | } else { | ||
| 257 | proxy.$ElMessage.error(res.msg); | ||
| 258 | } | ||
| 259 | }) | ||
| 240 | // if (assetDetailInfo.value.dataStartDate) { | 260 | // if (assetDetailInfo.value.dataStartDate) { |
| 241 | // qualityEvaluateFormItems.value[1].default = [assetDetailInfo.value.dataStartDate, assetDetailInfo.value.dataEndDate]; | 261 | // qualityEvaluateFormItems.value[1].default = [assetDetailInfo.value.dataStartDate, assetDetailInfo.value.dataEndDate]; |
| 242 | // qualityEvaluateFormItems.value[1].disabled = true; | 262 | // qualityEvaluateFormItems.value[1].disabled = true; |
| ... | @@ -767,6 +787,70 @@ const rejectDialogBtnClick = (btn, info) => { | ... | @@ -767,6 +787,70 @@ const rejectDialogBtnClick = (btn, info) => { |
| 767 | rejectDialogInfo.value.visible = false; | 787 | rejectDialogInfo.value.visible = false; |
| 768 | } | 788 | } |
| 769 | }; | 789 | }; |
| 790 | |||
| 791 | const passCommonDialogInfo = ref({ | ||
| 792 | visible: false, | ||
| 793 | size: 460, | ||
| 794 | direction: "column", | ||
| 795 | header: { | ||
| 796 | title: "通过", | ||
| 797 | }, | ||
| 798 | type: '', | ||
| 799 | contents: [ | ||
| 800 | { | ||
| 801 | type: 'form', | ||
| 802 | title: '', | ||
| 803 | formInfo: { | ||
| 804 | id: 'batch-pass-form', | ||
| 805 | items: [ | ||
| 806 | { | ||
| 807 | label: '', | ||
| 808 | type: "textarea", | ||
| 809 | placeholder: "请填写通过备注(选填)", | ||
| 810 | field: "approveSuggest", | ||
| 811 | clearable: true, | ||
| 812 | maxlength: 400, | ||
| 813 | block: true, | ||
| 814 | col: 'margin_b_0', | ||
| 815 | } | ||
| 816 | ] | ||
| 817 | } | ||
| 818 | } | ||
| 819 | ], | ||
| 820 | footer: { | ||
| 821 | btns: [ | ||
| 822 | { type: "default", label: "取消", value: "cancel" }, | ||
| 823 | { type: "primary", label: "确定", value: "submit" }, | ||
| 824 | ], | ||
| 825 | }, | ||
| 826 | }); | ||
| 827 | |||
| 828 | const passCommonDialogBtnClick = (btn, info) => { | ||
| 829 | if (btn.value == 'submit') { | ||
| 830 | let params = { | ||
| 831 | guid: evaDetailInfo.value.approveVO.approveGuid || costAssessDetail.value.approveVO.approveGuid, | ||
| 832 | flowType: evaDetailInfo.value.approveVO.flowType || costAssessDetail.value.approveVO.flowType, | ||
| 833 | approveSuggest: info.approveSuggest, | ||
| 834 | approveStaffGuid: userData.staffGuid, | ||
| 835 | } | ||
| 836 | passFlowData(params, route.query.serviceTenantGuid).then((res: any) => { | ||
| 837 | if (res?.code == proxy.$passCode) { | ||
| 838 | if (res.data) { | ||
| 839 | ElMessage.success('驳回成功'); | ||
| 840 | passCommonDialogInfo.value.visible = false; | ||
| 841 | getDetailInfo(); | ||
| 842 | } else { | ||
| 843 | ElMessage.error('驳回失败'); | ||
| 844 | } | ||
| 845 | } else { | ||
| 846 | ElMessage.error(res.msg); | ||
| 847 | } | ||
| 848 | }) | ||
| 849 | } else if (btn.value == 'cancel') { | ||
| 850 | passCommonDialogInfo.value.visible = false; | ||
| 851 | } | ||
| 852 | } | ||
| 853 | |||
| 770 | // 格式化金额:千位分隔符 + 保留2位小数 | 854 | // 格式化金额:千位分隔符 + 保留2位小数 |
| 771 | const formattedAmount = computed(() => { | 855 | const formattedAmount = computed(() => { |
| 772 | return new Intl.NumberFormat('en-US', { | 856 | return new Intl.NumberFormat('en-US', { |
| ... | @@ -1073,6 +1157,7 @@ const handleClick = () => { | ... | @@ -1073,6 +1157,7 @@ const handleClick = () => { |
| 1073 | </div> | 1157 | </div> |
| 1074 | <Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange=passDialogInputChange /> | 1158 | <Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange=passDialogInputChange /> |
| 1075 | <Dialog :dialogInfo="rejectDialogInfo" @btnClick="rejectDialogBtnClick" /> | 1159 | <Dialog :dialogInfo="rejectDialogInfo" @btnClick="rejectDialogBtnClick" /> |
| 1160 | <Dialog :dialogInfo="passCommonDialogInfo" @btnClick="passCommonDialogBtnClick" /> | ||
| 1076 | </div> | 1161 | </div> |
| 1077 | </template> | 1162 | </template> |
| 1078 | 1163 | ... | ... |
| ... | @@ -23,7 +23,7 @@ import { | ... | @@ -23,7 +23,7 @@ import { |
| 23 | getTenantDetailInfo, | 23 | getTenantDetailInfo, |
| 24 | getTenantInfo | 24 | getTenantInfo |
| 25 | } from "@/api/modules/queryService"; | 25 | } from "@/api/modules/queryService"; |
| 26 | import { passFlowData, rejectFlowData, revokeFlowData } from "@/api/modules/workFlowService"; | 26 | import { passFlowData, rejectFlowData, revokeFlowData, isMyFirstNode } from "@/api/modules/workFlowService"; |
| 27 | import useDataAssetStore from "@/store/modules/dataAsset"; | 27 | import useDataAssetStore from "@/store/modules/dataAsset"; |
| 28 | import { changeNum, getDownloadUrl, download } from '@/utils/common'; | 28 | import { changeNum, getDownloadUrl, download } from '@/utils/common'; |
| 29 | import { onUploadFilePreview, onUploadFileDownload } from '@/api/modules/common'; | 29 | import { onUploadFilePreview, onUploadFileDownload } from '@/api/modules/common'; |
| ... | @@ -579,6 +579,8 @@ const toolBtns: any = computed(() => { | ... | @@ -579,6 +579,8 @@ const toolBtns: any = computed(() => { |
| 579 | return btnsArr; | 579 | return btnsArr; |
| 580 | }); | 580 | }); |
| 581 | 581 | ||
| 582 | const getFirstNodePromise: any = ref(); | ||
| 583 | |||
| 582 | const btnClick = (btn) => { | 584 | const btnClick = (btn) => { |
| 583 | const type = btn.value; | 585 | const type = btn.value; |
| 584 | if (type == 'cancel') { | 586 | if (type == 'cancel') { |
| ... | @@ -588,6 +590,17 @@ const btnClick = (btn) => { | ... | @@ -588,6 +590,17 @@ const btnClick = (btn) => { |
| 588 | name: detailType.value == 'qualityEvaluate' ? 'qualityEvaluate' : (detailType.value == 'costAssess' ? 'valueEvaluate' : (detailType.value == 'certificate' ? 'certificateManagement' : 'registerManagemant')) | 590 | name: detailType.value == 'qualityEvaluate' ? 'qualityEvaluate' : (detailType.value == 'costAssess' ? 'valueEvaluate' : (detailType.value == 'certificate' ? 'certificateManagement' : 'registerManagemant')) |
| 589 | }); | 591 | }); |
| 590 | } else if (type == 'pass') { | 592 | } else if (type == 'pass') { |
| 593 | if (getFirstNodePromise.value) { | ||
| 594 | return; | ||
| 595 | } | ||
| 596 | getFirstNodePromise.value = isMyFirstNode({ | ||
| 597 | deploymentId: deploymentId.value, | ||
| 598 | processInstanceId: processInstanceId.value, | ||
| 599 | staffGuid: userData.staffGuid | ||
| 600 | }).then((res: any) => { | ||
| 601 | getFirstNodePromise.value = null; | ||
| 602 | if (res?.code == proxy.$passCode) { | ||
| 603 | if (res.data) { | ||
| 591 | passDialogInfo.value.visible = true; | 604 | passDialogInfo.value.visible = true; |
| 592 | assessFormItems.value[2].placeholder = '按照本次评估目的及价值类型,该笔数据资产在评估基准日的评估值为人民币***元。本次评估结论在评估基准日后一年内有效,即自20*年*月*日至20*年*月*日止。超过一年,需重新举行资产评估。'; | 605 | assessFormItems.value[2].placeholder = '按照本次评估目的及价值类型,该笔数据资产在评估基准日的评估值为人民币***元。本次评估结论在评估基准日后一年内有效,即自20*年*月*日至20*年*月*日止。超过一年,需重新举行资产评估。'; |
| 593 | qualityEvaluateFormItems.value[2].placeholder = '本次评估数据资产总体质量得分为**分\n准确性:\n一致性:\n可访问性:\n规范性:\n完整性:'; | 606 | qualityEvaluateFormItems.value[2].placeholder = '本次评估数据资产总体质量得分为**分\n准确性:\n一致性:\n可访问性:\n规范性:\n完整性:'; |
| ... | @@ -598,6 +611,13 @@ const btnClick = (btn) => { | ... | @@ -598,6 +611,13 @@ const btnClick = (btn) => { |
| 598 | qualityEvaluateFormItems.value[1].default = null; | 611 | qualityEvaluateFormItems.value[1].default = null; |
| 599 | qualityEvaluateFormItems.value[1].disabled = false; | 612 | qualityEvaluateFormItems.value[1].disabled = false; |
| 600 | } | 613 | } |
| 614 | } else { | ||
| 615 | passCommonDialogInfo.value.visible = true; | ||
| 616 | } | ||
| 617 | } else { | ||
| 618 | proxy.$ElMessage.error(res.msg); | ||
| 619 | } | ||
| 620 | }) | ||
| 601 | } else if (type == 'reject') { | 621 | } else if (type == 'reject') { |
| 602 | rejectDialogInfo.value.visible = true; | 622 | rejectDialogInfo.value.visible = true; |
| 603 | } else if (type == 'revoke') { | 623 | } else if (type == 'revoke') { |
| ... | @@ -1150,6 +1170,69 @@ const formattedDate = (dateVal) => { | ... | @@ -1150,6 +1170,69 @@ const formattedDate = (dateVal) => { |
| 1150 | return `${year}-${month}-${day}`; | 1170 | return `${year}-${month}-${day}`; |
| 1151 | } | 1171 | } |
| 1152 | 1172 | ||
| 1173 | const passCommonDialogInfo = ref({ | ||
| 1174 | visible: false, | ||
| 1175 | size: 460, | ||
| 1176 | direction: "column", | ||
| 1177 | header: { | ||
| 1178 | title: "通过", | ||
| 1179 | }, | ||
| 1180 | type: '', | ||
| 1181 | contents: [ | ||
| 1182 | { | ||
| 1183 | type: 'form', | ||
| 1184 | title: '', | ||
| 1185 | formInfo: { | ||
| 1186 | id: 'batch-pass-form', | ||
| 1187 | items: [ | ||
| 1188 | { | ||
| 1189 | label: '', | ||
| 1190 | type: "textarea", | ||
| 1191 | placeholder: "请填写通过备注(选填)", | ||
| 1192 | field: "approveSuggest", | ||
| 1193 | clearable: true, | ||
| 1194 | maxlength: 400, | ||
| 1195 | block: true, | ||
| 1196 | col: 'margin_b_0', | ||
| 1197 | } | ||
| 1198 | ] | ||
| 1199 | } | ||
| 1200 | } | ||
| 1201 | ], | ||
| 1202 | footer: { | ||
| 1203 | btns: [ | ||
| 1204 | { type: "default", label: "取消", value: "cancel" }, | ||
| 1205 | { type: "primary", label: "确定", value: "submit" }, | ||
| 1206 | ], | ||
| 1207 | }, | ||
| 1208 | }); | ||
| 1209 | |||
| 1210 | const passCommonDialogBtnClick = (btn, info) => { | ||
| 1211 | if (btn.value == 'submit') { | ||
| 1212 | let params = { | ||
| 1213 | guid: detailInfo.value.approveVO.approveGuid, | ||
| 1214 | flowType: detailInfo.value.approveVO.flowType, | ||
| 1215 | approveSuggest: info.approveSuggest, | ||
| 1216 | approveStaffGuid: userData.staffGuid | ||
| 1217 | } | ||
| 1218 | passFlowData(params, serviceTenantGuid.value).then((res: any) => { | ||
| 1219 | if (res?.code == proxy.$passCode) { | ||
| 1220 | if (res.data) { | ||
| 1221 | ElMessage.success('驳回成功'); | ||
| 1222 | passCommonDialogInfo.value.visible = false; | ||
| 1223 | getDetailInfo(); | ||
| 1224 | } else { | ||
| 1225 | ElMessage.error('驳回失败'); | ||
| 1226 | } | ||
| 1227 | } else { | ||
| 1228 | ElMessage.error(res.msg); | ||
| 1229 | } | ||
| 1230 | }) | ||
| 1231 | } else if (btn.value == 'cancel') { | ||
| 1232 | passCommonDialogInfo.value.visible = false; | ||
| 1233 | } | ||
| 1234 | } | ||
| 1235 | |||
| 1153 | </script> | 1236 | </script> |
| 1154 | 1237 | ||
| 1155 | <template> | 1238 | <template> |
| ... | @@ -1903,6 +1986,7 @@ const formattedDate = (dateVal) => { | ... | @@ -1903,6 +1986,7 @@ const formattedDate = (dateVal) => { |
| 1903 | </div> | 1986 | </div> |
| 1904 | <Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange=passDialogInputChange /> | 1987 | <Dialog :dialogInfo="passDialogInfo" @btnClick="passDialogBtnClick" @inputChange=passDialogInputChange /> |
| 1905 | <Dialog :dialogInfo="rejectDialogInfo" @btnClick="rejectDialogBtnClick" /> | 1988 | <Dialog :dialogInfo="rejectDialogInfo" @btnClick="rejectDialogBtnClick" /> |
| 1989 | <Dialog :dialogInfo="passCommonDialogInfo" @btnClick="passCommonDialogBtnClick" /> | ||
| 1906 | </div> | 1990 | </div> |
| 1907 | </template> | 1991 | </template> |
| 1908 | 1992 | ... | ... |
-
Please register or sign in to post a comment