addNode.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <template>
  2. <div class="add-node-btn-box">
  3. <div class="add-node-btn">
  4. <el-popover placement="right-start" :width="270" trigger="click" :hide-after="0" :show-after="0">
  5. <template #reference>
  6. <el-button v-if="!disabled" type="primary" icon="plus" circle></el-button>
  7. </template>
  8. <div class="add-node-popover-body">
  9. <ul>
  10. <li>
  11. <el-icon style="color: var(--el-color-warning)" @click="addType(1)"><user-filled /></el-icon>
  12. <p>审批节点</p>
  13. </li>
  14. <li>
  15. <el-icon style="color: var(--el-color-primary)" @click="addType(2)"><promotion /></el-icon>
  16. <p>抄送节点</p>
  17. </li>
  18. <li>
  19. <el-icon style="color: var(--el-color-success)" @click="addType(4)"><share /></el-icon>
  20. <p>条件分支</p>
  21. </li>
  22. <li>
  23. <el-icon style="color: var(--el-color-warning-light-7)" @click="addType(6)"><Clock /></el-icon>
  24. <p>延迟等待</p>
  25. </li>
  26. <li>
  27. <el-icon style="color: var(--el-color-warning-light-3)" @click="addType(7)"><SetUp /></el-icon>
  28. <p>触发器</p>
  29. </li>
  30. </ul>
  31. </div>
  32. </el-popover>
  33. </div>
  34. </div>
  35. </template>
  36. <script>
  37. export default {
  38. props: {
  39. modelValue: { type: Object, default: () => {} },
  40. disabled: {
  41. type: Boolean,
  42. default: false
  43. }
  44. },
  45. data() {
  46. return {}
  47. },
  48. mounted() {},
  49. methods: {
  50. addType(type) {
  51. var node = {}
  52. if (type == 1) {
  53. node = {
  54. nodeName: '审核人',
  55. type: 1, //节点类型
  56. setType: 1, //审核人类型
  57. nodeAssigneeList: [], //审核人成员 & 角色
  58. examineLevel: 1, //指定主管层级
  59. directorLevel: 1, //自定义连续主管审批层级
  60. selectMode: 1, //发起人自选类型
  61. termAuto: false, //审批期限超时自动审批
  62. term: 0, //审批期限
  63. termMode: 1, //审批期限超时后执行类型
  64. examineMode: 1, //多人审批时审批方式
  65. approveSelf: 0, //审批人与提交人为同一人时
  66. directorMode: 0, //连续主管审批方式
  67. childNode: this.modelValue,
  68. typeOfApprover: '1' // 审批类型 1:人工审批 2:自动通过 3:自动拒绝
  69. }
  70. } else if (type == 2) {
  71. node = {
  72. nodeName: '抄送人',
  73. type: 2,
  74. allowSelection: true,
  75. nodeAssigneeList: [],
  76. childNode: this.modelValue
  77. }
  78. } else if (type == 4) {
  79. node = {
  80. nodeName: '条件路由',
  81. type: 4,
  82. conditionNodes: [
  83. {
  84. nodeName: '条件1',
  85. type: 3,
  86. priorityLevel: 1,
  87. conditionMode: 1,
  88. conditionList: []
  89. },
  90. {
  91. nodeName: '条件2',
  92. type: 3,
  93. priorityLevel: 2,
  94. conditionMode: 1,
  95. conditionList: []
  96. }
  97. ],
  98. childNode: this.modelValue
  99. }
  100. } else if (type == 6) {
  101. node = {
  102. nodeName: '延时处理',
  103. type: 6,
  104. delayType: '1', // 延时类型
  105. // 一小时后触发 {"time": "1:h"} 单位【 d 天 h 时 m 分 】 发起后一小时三十分后触发 {"time": "01:30:00"}
  106. extendConfig: {
  107. time: '0:m'
  108. },
  109. childNode: this.modelValue
  110. }
  111. } else if (type == 7) {
  112. node = {
  113. nodeName: '触发器',
  114. type: 7,
  115. delayType: '1', // 延时类型
  116. triggerType: '1', // 触发器类型: 立即执行('1') 延时执行('2')
  117. // 一小时后触发 {"time": "1:h"} 单位【 d 天 h 时 m 分 】 发起后一小时三十分后触发 {"time": "01:30:00"}
  118. extendConfig: {
  119. time: '', // 立即执行 time不用设置
  120. args: '',
  121. trigger: ''
  122. },
  123. childNode: this.modelValue
  124. }
  125. }
  126. this.$emit('update:modelValue', node)
  127. }
  128. }
  129. }
  130. </script>
  131. <style></style>