Approve.vue 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. <template>
  2. <div>
  3. <ul class="nav nav-tabs m-row">
  4. <li
  5. role="presentation"
  6. :class="{'active': functionType==1}"
  7. @click="selectPage(1)"
  8. >
  9. <a>{{ $t("lang.Approve.initiateApply") }}</a>
  10. </li>
  11. <li
  12. role="presentation"
  13. :class="{'active': functionType==2}"
  14. @click="selectPage(2)"
  15. >
  16. <a>{{ $t("lang.Approve.pending") }}<span class="badge">{{ myTaskCount }}</span></a>
  17. </li>
  18. <li
  19. role="presentation"
  20. :class="{'active': functionType==3}"
  21. @click="selectPage(3)"
  22. >
  23. <a>{{ $t("lang.Approve.approved") }}</a>
  24. </li>
  25. <li
  26. role="presentation"
  27. :class="{'active': functionType==4}"
  28. @click="selectPage(4)"
  29. >
  30. <a>{{ $t("lang.Approve.myApply") }}</a>
  31. </li>
  32. <li
  33. role="presentation"
  34. :class="{'active': functionType==5}"
  35. @click="selectPage(5)"
  36. >
  37. <a>{{ $t("lang.Approve.ccMy") }}
  38. <span class="badge">{{ copyCount }}</span></a>
  39. </li>
  40. <li
  41. role="presentation"
  42. :class="{'active': functionType==6}"
  43. @click="selectPage(6)"
  44. >
  45. <a>{{ $t("lang.Approve.rejected") }}</a>
  46. </li>
  47. </ul>
  48. <div v-if="functionType==1">
  49. <CreateWorkflow />
  50. </div>
  51. <div v-if="functionType==2">
  52. <NeedApproveWorkflow @refresh-stastic-count="getStasticCount" />
  53. </div>
  54. <div v-if="functionType==3">
  55. <ApprovedWorkflow @refresh-stastic-count="getStasticCount" />
  56. </div>
  57. <div v-if="functionType==4">
  58. <MyApplyWorkflow />
  59. </div>
  60. <div v-if="functionType==5">
  61. <CopyTaskWorkflow @refresh-stastic-count="getStasticCount" />
  62. </div>
  63. <div v-if="functionType==6">
  64. <NotApproveWorkflow @refresh-stastic-count="getStasticCount" />
  65. </div>
  66. <Loading v-if="loading" />
  67. </div>
  68. </template>
  69. <script>
  70. import Common from '../common/Common.js';
  71. import CreateWorkflow from '../workflow/CreateWorkflow.vue';
  72. import NeedApproveWorkflow from '../workflow/NeedApproveWorkflow.vue';
  73. import NotApproveWorkflow from '../workflow/NotApproveWorkflow.vue';
  74. import ApprovedWorkflow from '../workflow/ApprovedWorkflow.vue';
  75. import MyApplyWorkflow from '../workflow/MyApplyWorkflow.vue';
  76. import CopyTaskWorkflow from '../workflow/CopyTaskWorkflow.vue';
  77. export default {
  78. components: {
  79. CreateWorkflow,
  80. NeedApproveWorkflow,
  81. ApprovedWorkflow,
  82. MyApplyWorkflow,
  83. CopyTaskWorkflow,
  84. NotApproveWorkflow,
  85. },
  86. data: function () {
  87. return {
  88. 'pageNo': '1',
  89. 'copyCount': 0,
  90. 'myTaskCount': 0,
  91. 'functionType': '',
  92. loading: false,
  93. };
  94. },
  95. watch: {
  96. $route: function () {
  97. var functionType = this.$route.query.functionType;
  98. if (functionType) {
  99. this.functionType = functionType;
  100. }
  101. this.initQueryParamter();
  102. },
  103. },
  104. mounted: function () {
  105. var _self = this;
  106. _self.init();
  107. _self.getStasticCount();
  108. _self.stasticTimer = setInterval(function () {
  109. _self.getStasticCount();
  110. }, 60 * 1000);
  111. var functionType = _self.$route.query.functionType;
  112. if (functionType) {
  113. _self.functionType = functionType;
  114. }
  115. _self.initQueryParamter();
  116. },
  117. beforeUnmount: function () {
  118. var _self = this;
  119. clearInterval(_self.stasticTimer);
  120. },
  121. methods: {
  122. init: function () {
  123. var _self = this;
  124. $('#btn-group :button').click(function () {
  125. $('#btn-group :button').removeClass('active');
  126. $(this).addClass('active');
  127. });
  128. },
  129. selectPage: function (pageNo) {
  130. var _self = this;
  131. _self.pageNo = pageNo; //发起审批
  132. _self.functionType = pageNo;
  133. _self.initQueryParamter();
  134. },
  135. /**
  136. * 获取工作流统计数据
  137. */
  138. getStasticCount: function () {
  139. var _self = this;
  140. _self.loading=true;
  141. $.ajax({
  142. url: Common.getApiURL('WorkflowResource/StasticCount'),
  143. type: 'get',
  144. dataType: 'json',
  145. beforeSend: function (request) {
  146. Common.addTokenToRequest(request);
  147. },
  148. success: function (data) {
  149. _self.loading=false;
  150. _self.copyCount = data.viewerCount;
  151. _self.myTaskCount = data.taskNeedApproveCount;
  152. },
  153. error: function (XMLHttpRequest, textStatus, errorThrown) {
  154. _self.loading=false;
  155. Common.processException(XMLHttpRequest, textStatus, errorThrown);
  156. },
  157. });
  158. },
  159. initQueryParamter: function () {
  160. var _self = this;
  161. var url = window.location.href;
  162. var index = url.lastIndexOf('?');
  163. if (index > 0) {
  164. url = url.substring(0, index);
  165. }
  166. url = url + '?functionType=' + _self.functionType;
  167. window.location.href = url;
  168. },
  169. },
  170. };
  171. </script>