reply.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <template>
  2. <div>
  3. <div class="simple-container">
  4. <simple-form
  5. :form="table_form"
  6. @search="handleSearch"
  7. ></simple-form>
  8. <simple-table
  9. :list="table_list"
  10. :config="table_config"
  11. :loading="table_loading"
  12. :handle-row="table_handle_row"
  13. ></simple-table>
  14. <simple-pagination
  15. :page="page"
  16. :total="total"
  17. @change="handleChange"
  18. ></simple-pagination>
  19. </div>
  20. </div>
  21. </template>
  22. <script>
  23. import simpleForm from "./components/form.vue";
  24. import simpleTable from "./components/table.vue";
  25. import simplePagination from "./components/pagination.vue";
  26. export default {
  27. components: {
  28. simpleTable,
  29. simpleForm,
  30. simplePagination,
  31. },
  32. data() {
  33. return {
  34. page: 1,
  35. rows: 10,
  36. total: 0,
  37. table_loading: false,
  38. table_search: {},
  39. table_form: [
  40. {
  41. label: "统计月份",
  42. props: "date",
  43. type: "month",
  44. },
  45. {
  46. label: "绩效类型",
  47. props: "performance_type",
  48. type: "select",
  49. dictionary: [
  50. {
  51. label: "部门绩效",
  52. value: "部门绩效",
  53. },
  54. {
  55. label: "员工绩效",
  56. value: "员工绩效",
  57. },
  58. ],
  59. },
  60. {
  61. label: "绩效分类",
  62. props: "performance_class",
  63. type: "select",
  64. dictionary: [
  65. {
  66. label: "GS",
  67. value: "GS",
  68. },
  69. {
  70. label: "KPI",
  71. value: "KPI",
  72. },
  73. ],
  74. },
  75. ],
  76. table_list: [],
  77. table_handle_row: [],
  78. table_config: [
  79. {
  80. label: "科室名称",
  81. props: "department_name",
  82. },
  83. {
  84. label: "科室经理",
  85. props: "department_manager",
  86. },
  87. {
  88. label: "代办接收数",
  89. props: "received_umber",
  90. },
  91. {
  92. label: "完成回复率",
  93. props: "response_rate",
  94. },
  95. {
  96. label: "超期率",
  97. props: "overdue_rate",
  98. },
  99. {
  100. label: "累计超期时间",
  101. props: "cumulative_overtime",
  102. },
  103. ],
  104. };
  105. },
  106. methods: {
  107. async handleInit() {
  108. this.table_loading = true;
  109. const data = [];
  110. let index = 0;
  111. while (index < 10) {
  112. data.push({
  113. department_name: `科室${index}`,
  114. department_manager: `经理${index}`,
  115. received_umber: `${index}`,
  116. response_rate: `${index + 1}0`,
  117. overdue_rate: `50%`,
  118. cumulative_overtime: `3`,
  119. });
  120. index = index + 1;
  121. }
  122. this.total = index;
  123. this.table_list = data;
  124. this.table_loading = false;
  125. },
  126. handleSearch({ template_name }) {
  127. this.table_search = { template_name };
  128. this.handleReset();
  129. this.handleInit();
  130. },
  131. handleChange(page) {
  132. this.page = page;
  133. this.handleInit();
  134. },
  135. handleReset() {
  136. this.page = 1;
  137. },
  138. },
  139. mounted() {
  140. this.handleInit();
  141. },
  142. };
  143. </script>
  144. <style></style>