TaskList.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <template>
  2. <div class="table-container">
  3. <ElTable
  4. :data="taskList"
  5. :default-sort="{prop: 'id', order: 'descending'}"
  6. @row-click="openDrawer"
  7. >
  8. <ElTableColumn
  9. prop="id"
  10. label="ID"
  11. align="center"
  12. width="60"
  13. ></ElTableColumn>
  14. <ElTableColumn
  15. label="优先级"
  16. align="center"
  17. width="80"
  18. :filters="[{ text: '紧急', value: '紧急' }, { text: '一般', value: '一般' }, { text: '宽松', value: '宽松' }]"
  19. :filter-method="(value, row) => {
  20. return row.priority === value;
  21. }"
  22. filter-placement="bottom-end"
  23. >
  24. <template #default="scope">
  25. <template v-if="scope.row.priority === '紧急'">
  26. <ElTag type="warning">{{scope.row.priority}}</ElTag>
  27. </template>
  28. <template v-else-if="scope.row.priority === '一般'">
  29. <ElTag>{{scope.row.priority}}</ElTag>
  30. </template>
  31. <template v-else-if="scope.row.priority === '宽松'">
  32. <ElTag type="success">{{scope.row.priority}}</ElTag>
  33. </template>
  34. </template>
  35. </ElTableColumn>
  36. <ElTableColumn
  37. prop="title"
  38. label="名称"
  39. align="center"
  40. width="180"
  41. ></ElTableColumn>
  42. <ElTableColumn
  43. prop="processorName"
  44. label="处理人"
  45. align="center"
  46. width="100"
  47. ></ElTableColumn>
  48. <ElTableColumn
  49. prop="timeToTake"
  50. label="预期耗时"
  51. align="center"
  52. width="100"
  53. ></ElTableColumn>
  54. <ElTableColumn
  55. prop="startTime"
  56. label="开始时间"
  57. align="center"
  58. width="180"
  59. ></ElTableColumn>
  60. <ElTableColumn
  61. prop="endTime"
  62. label="结束时间"
  63. align="center"
  64. width="180"
  65. ></ElTableColumn>
  66. <ElTableColumn
  67. prop="state"
  68. label="执行状态"
  69. align="center"
  70. width="100"
  71. >
  72. <template #default="scope">
  73. <template v-if="scope.row.state === 'CREATED'||scope.row.state === '已创建'">
  74. <ElTag type="primary">已创建</ElTag>
  75. </template>
  76. <template v-if="scope.row.state === 'PROCESSING'||scope.row.state === '进行中'">
  77. <ElTag type="success">进行中</ElTag>
  78. </template>
  79. <template v-if="scope.row.state === 'FINISHED'||scope.row.state === '已完成'">
  80. <ElTag type="info">已完成</ElTag>
  81. </template>
  82. </template>
  83. </ElTableColumn>
  84. <ElTableColumn
  85. label="详情"
  86. align="center"
  87. >
  88. <template #default="scope">
  89. <ElButton
  90. type="text"
  91. size="small"
  92. @click="openDrawer(scope.row)"
  93. >编辑</ElButton>
  94. </template>
  95. </ElTableColumn>
  96. </ElTable>
  97. </div>
  98. </template>
  99. <script>
  100. import { RequirementAPI } from '@/api';
  101. export default {
  102. data() {
  103. return {
  104. taskList: [],
  105. };
  106. },
  107. mounted() {
  108. this.fetch();
  109. },
  110. methods: {
  111. async fetch() {
  112. this.taskList = await RequirementAPI.getTasksByProjectId(this.$store.state.workspace.currentProjectId);
  113. },
  114. openDrawer(row) {
  115. console.log(row);
  116. },
  117. },
  118. };
  119. </script>
  120. <style scoped>
  121. .taskListContainer{
  122. margin: 70px 30px 0 30px;
  123. }
  124. .taskFunctionBar .masterFunctionBar{
  125. display: flex;
  126. align-items:center;
  127. justify-content:space-between;
  128. }
  129. .taskFunctionBar .filterFunctionBar{
  130. margin-top: 20px;
  131. display: flex;
  132. align-items:center;
  133. }
  134. .subSelect {
  135. width: 130px;
  136. }
  137. .taskScopeSelect{
  138. margin-left: 0px;
  139. }
  140. .taskStatusSelect{
  141. margin-left: 18px;
  142. }
  143. .sortOptionsSelect{
  144. margin-left: auto;
  145. }
  146. .taskTableContainer{
  147. margin-top: 20px;
  148. }
  149. </style>