businessOut-flow.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <style scoped>
  2. .user-panel {
  3. margin: 10px auto;
  4. }
  5. </style>
  6. <template>
  7. <el-dialog
  8. :visible.sync="showDialog"
  9. :title="title"
  10. :modal-append-to-body="false"
  11. style="text-align: left"
  12. @close="closeDialog"
  13. :close-on-click-modal="false"
  14. >
  15. <div class="user-panel" v-loading="loading">
  16. <el-table
  17. :data="tableData"
  18. style="min-height: 400px"
  19. v-loading="loading"
  20. stripe
  21. >
  22. <el-table-column
  23. type="index"
  24. label="序号"
  25. :index="indexMethod"
  26. width="50"
  27. ></el-table-column>
  28. <el-table-column
  29. prop="approvalPersonName"
  30. label="审批人"
  31. width="100"
  32. ></el-table-column>
  33. <el-table-column
  34. prop="approvalPersonRoleName"
  35. label="审批人角色"
  36. width="100"
  37. ></el-table-column>
  38. <el-table-column prop="status" label="审批状态" width="100">
  39. <template slot-scope="{ row }">
  40. <span v-if="row.status == 1" style="color: green">同意</span>
  41. <span v-else-if="row.status == 2" style="color: red">拒绝</span>
  42. <span v-else>待处理</span>
  43. </template>
  44. </el-table-column>
  45. <el-table-column
  46. prop="approvalContent"
  47. label="审核意见"
  48. width="150"
  49. show-overflow-tooltip
  50. ></el-table-column>
  51. <el-table-column
  52. prop="approvalTime"
  53. label="审核时间"
  54. width="150"
  55. ></el-table-column>
  56. </el-table>
  57. </div>
  58. <span slot="footer" class="dialog-footer">
  59. <el-button @click="closeDialog">关 闭</el-button>
  60. </span>
  61. </el-dialog>
  62. </template>
  63. <script>
  64. import Constant from "@/constant";
  65. import businessOutApi from "@/api/base/businessOut";
  66. export default {
  67. props: ["businessKey", "title"],
  68. data() {
  69. return {
  70. formModel: {},
  71. showDialog: true,
  72. loading: false,
  73. tableData: [],
  74. pageIndex: 1,
  75. pageSize: 10,
  76. totalPages: 0,
  77. totalElements: 0,
  78. submitting: false,
  79. };
  80. },
  81. methods: {
  82. closeDialog() {
  83. this.$emit("close", false);
  84. },
  85. indexMethod(index) {
  86. return (this.pageIndex - 1) * this.pageSize + (index + 1);
  87. },
  88. changePage(pageIndex) {
  89. var self = this;
  90. self.loading = true;
  91. businessOutApi
  92. .flowList(self.businessKey)
  93. .then(function (response) {
  94. self.loading = false;
  95. var jsonData = response.data.data;
  96. self.tableData = jsonData.data;
  97. })
  98. .catch((error) => {
  99. self.loading = false;
  100. // self.$message.error(error + "");
  101. });
  102. },
  103. },
  104. mounted: function () {
  105. var self = this;
  106. (function () {
  107. if (self.businessKey.length == 0) {
  108. return businessOutApi.create();
  109. } else {
  110. return businessOutApi.edit(self.businessKey);
  111. }
  112. })()
  113. .then((response) => {
  114. this.changePage(1);
  115. var jsonData = response.data;
  116. self.loading = false;
  117. if (jsonData.result) {
  118. self.formModel = jsonData.data;
  119. } else {
  120. self.$message.error(jsonData.message + "");
  121. }
  122. })
  123. .catch((error) => {
  124. self.$message.error(error + "");
  125. });
  126. },
  127. };
  128. </script>