Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 
 

132 wiersze
3.9 KiB

  1. <template>
  2. <view class="wf-action lr-hidden">
  3. <!-- 催办/撤销,适用于打开我的任务 -->
  4. <view v-if="canUrge || canRevoke" class="form-action padding bg-white margin-top lr-hidden" style="padding-top: 0;">
  5. <l-button v-if="canUrge" @click="$emit('action', 'urge')" size="lg" color="orange" class="block margin-top" block>
  6. 催办审核
  7. </l-button>
  8. <l-button
  9. v-if="canRevoke"
  10. @click="$emit('action', 'revoke')"
  11. size="lg"
  12. color="red"
  13. class="block margin-top"
  14. block
  15. >
  16. 撤销流程
  17. </l-button>
  18. </view>
  19. <!-- 审批按钮列表,适用于打开待办任务 -->
  20. <view
  21. v-if="buttonList.length > 0"
  22. class="form-action padding bg-white margin-top lr-hidden"
  23. style="padding-top: 0;"
  24. >
  25. <l-button
  26. v-for="button of buttonList"
  27. @click="taskAction(button)"
  28. :key="button.id"
  29. :color="button.color"
  30. class="block margin-top"
  31. size="lg"
  32. block
  33. >
  34. {{ button.name=="同意"?"领导审批":button.name }}
  35. </l-button>
  36. </view>
  37. <!-- 子流程草稿/提交按钮 -->
  38. <view
  39. v-if="['child', 'create', 'again','draft'].includes(type)"
  40. class="form-action padding bg-white margin-top lr-hidden"
  41. style="padding-top: 0;"
  42. >
  43. <l-button @click="$emit('action', 'draft')" size="lg" color="orange" class="block margin-top" block>
  44. 保存草稿
  45. </l-button>
  46. <l-button @click="$emit('action', 'submit')" size="lg" color="green" class="block margin-top" block>
  47. 提交流程
  48. </l-button>
  49. </view>
  50. <!-- 已阅按钮,传阅模式使用 -->
  51. <view v-if="type === 'refer'" class="form-action padding bg-white margin-top lr-hidden" style="padding-top: 0;">
  52. <l-button @click="$emit('action', 'refer')" color="blue" class="block margin-top" size="lg" block>
  53. 标记已阅
  54. </l-button>
  55. </view>
  56. </view>
  57. </template>
  58. <script>
  59. export default {
  60. name: 'l-workflow-action',
  61. props: {
  62. currentNode: { default: () => ({}) },
  63. currentTask: { default: () => ({}) },
  64. type: {}
  65. },
  66. computed: {
  67. // 按钮列表(通过 isSign 判断可否加签;如果可以加签,则额外添加一个加签按钮)
  68. buttonList() {
  69. if (this.openFrom !== 'pre') {
  70. return []
  71. }
  72. const btnList = (this.currentNode.btnList || []).filter(t => Number(t.isHide) !== 1)
  73. if (this.canMultipleSign) {
  74. btnList.push({
  75. id: '__sign__',
  76. code: '__sign__',
  77. name: '加签'
  78. })
  79. }
  80. return btnList.map(t => ({ ...t, color: { agree: 'green', disagree: 'red', end: 'red' }[t.code] || 'blue' }))
  81. },
  82. // 获取表单页是从任务列表哪一栏打开,my=我的,pre=待办,maked=已办
  83. openFrom() {
  84. return this.currentTask.mark
  85. },
  86. // 是否显示催办按钮(仅限我的任务,满足以下条件则可以催办:已开始、未结束、未作废)
  87. canUrge() {
  88. if (this.openFrom !== 'my' || ['child', 'create', 'again','draft'].includes(this.type)) {
  89. return false
  90. }
  91. return !this.currentTask.F_IsFinished && this.currentTask.F_EnabledMark !== 3
  92. },
  93. // 是否显示撤销按钮(仅限我的任务,满足以下条件则可以撤销:未开始)
  94. canRevoke() {
  95. if (this.openFrom !== 'my' || ['child', 'create', 'again','draft'].includes(this.type)) {
  96. return false
  97. }
  98. return !this.currentTask.F_IsStart
  99. },
  100. // 是否允许加签(仅限待办任务,流程中配置允许加签则)
  101. canMultipleSign() {
  102. if (this.openFrom !== 'pre' || ['child', 'create', 'again','draft'].includes(this.type)) {
  103. return false
  104. }
  105. return Number(this.currentNode.isSign) === 1
  106. }
  107. },
  108. methods: {
  109. // 点击审批按钮
  110. taskAction(buttonItem) {
  111. this.$emit('audit', buttonItem)
  112. }
  113. }
  114. }
  115. </script>