综合办公系统
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <!--
  2. * @Author: ysh
  3. * @Date: 2025-02-06 09:48:52
  4. * @LastEditors: Please set LastEditors
  5. * @LastEditTime: 2025-04-16 15:12:13
  6. -->
  7. <template>
  8. <view>
  9. <!-- 动态加载表单组件 -->
  10. <component :is="currentForm" :taskForm="taskForm" :taskName="taskName" :startUserName="startUserName"
  11. @goBack="goBack" v-if="!isEmpty" />
  12. <component :is="'EmptyBox'" v-if="isEmpty" />
  13. </view>
  14. </template>
  15. <script>
  16. import {
  17. getProcessVariables
  18. } from "@/api/flowable/definition";
  19. import Declare from '@/pages/form/declare/declare.vue';
  20. import Borrow from "@/pages/form/borrow/borrow.vue";
  21. import Device from "@/pages/form/device/device.vue";
  22. import Car from "@/pages/form/car/car.vue";
  23. import EmptyBox from "../../emptyBox.vue";
  24. export default {
  25. components: {
  26. Declare,
  27. EmptyBox,
  28. Borrow,
  29. Device,
  30. Car,
  31. },
  32. data() {
  33. return {
  34. procDefName: '', // 流程名称
  35. taskName: '', // 当前节点
  36. startUserName: '', // 流程发起人
  37. formId: '',
  38. taskForm: {
  39. returnTaskShow: false, // 是否展示回退表单
  40. delegateTaskShow: false, // 是否展示回退表单
  41. defaultTaskShow: true, // 默认处理
  42. comment: "", // 意见内容
  43. procInsId: "", // 流程实例编号
  44. instanceId: "", // 流程实例编号
  45. deployId: "", // 流程定义编号
  46. taskId: "",// 流程任务编号
  47. procDefId: "", // 流程编号
  48. targetKey: "",
  49. variables: {
  50. variables: {}
  51. },
  52. },
  53. currentForm: null, // 当前加载的表单组件
  54. isEmpty: false,
  55. };
  56. },
  57. onLoad(options) {
  58. const params = JSON.parse(decodeURIComponent(options.params));
  59. // 接收传递的参数
  60. this.procDefName = params.procDefName;
  61. this.taskName = params.taskName;
  62. this.startUserName = params.startUserName;
  63. this.taskForm.taskId = params.taskId;
  64. this.taskForm.deployId = params.deployId;
  65. this.taskForm.procInsId = params.procInsId;
  66. this.taskForm.executionId = params.executionId;
  67. this.taskForm.instanceId = params.procInsId;
  68. getProcessVariables(params.taskId).then(res => {
  69. this.taskForm.formId = res.data.formId;
  70. // 根据流程名称加载不同的表单组件
  71. this.loadForm();
  72. })
  73. },
  74. methods: {
  75. loadForm() {
  76. this.isEmpty = false;
  77. switch (this.procDefName) {
  78. case '工作填报':
  79. this.currentForm = 'Declare';
  80. break;
  81. case '借款审批':
  82. this.currentForm = 'Borrow';
  83. break;
  84. case '设备审批':
  85. this.currentForm = 'Device';
  86. break;
  87. case '用车审批':
  88. this.currentForm = 'Car';
  89. break;
  90. default:
  91. console.log('未知流程');
  92. this.isEmpty = true;
  93. break;
  94. }
  95. },
  96. goBack() {
  97. uni.navigateTo({
  98. url: '/pages/message/apply/apply'
  99. })
  100. }
  101. }
  102. }
  103. </script>
  104. <style lang="scss"></style>