taskDetail.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <template>
  2. <div>
  3. <el-form :model="form" size="mini" label-width="100px">
  4. <el-form-item label="任务名称:">
  5. <div>{{ form.taskName }}</div>
  6. </el-form-item>
  7. <el-form-item label="父任务:" v-if="form.parentTaskId">
  8. <div class="p-task" @click="getParentTask(form.parentTaskId)">{{ form.parentTaskName }}</div>
  9. </el-form-item>
  10. <el-form-item label="所属项目:">
  11. <div>{{ form.projectName }}</div>
  12. </el-form-item>
  13. <el-form-item label="任务描述:">
  14. <div>{{ form.description }}</div>
  15. </el-form-item>
  16. <el-form-item label="起止时间:">
  17. <div>{{ form.beginDate + ' 至 ' + form.endDate }}</div>
  18. </el-form-item>
  19. <el-form-item label="主要负责人:">
  20. <div>{{ form.executorName }}</div>
  21. </el-form-item>
  22. <el-form-item label="共同执行人:">
  23. <template v-for="item in form.coExecutorNames">
  24. <el-tag size="mini" style="margin-right: 5px">{{ item }}</el-tag>
  25. </template>
  26. </el-form-item>
  27. <el-form-item label="附件:">
  28. <div v-for="(file,index) in form.fileList">
  29. <a :href="file.url" style="color: darkgreen">
  30. <span v-html="file.fileName"></span>
  31. </a>
  32. </div>
  33. </el-form-item>
  34. </el-form>
  35. <el-table :data="form.feedbacks" size="mini" border>
  36. <el-table-column width="75" label="反馈状态">
  37. <template slot-scope="scope">
  38. <div>{{ getFeedbackTypeName(scope.row.feedbackType) }}</div>
  39. </template>
  40. </el-table-column>
  41. <el-table-column width="60" property="userName" label="反馈人"></el-table-column>
  42. <el-table-column width="60" label="完成度">
  43. <template slot-scope="scope">
  44. <div v-if="scope.row.value!==undefined">{{ scope.row.value + '%' }}</div>
  45. </template>
  46. </el-table-column>
  47. <el-table-column width="140" property="createTime" label="反馈时间"></el-table-column>
  48. <el-table-column width="70" property="hours" label="工时(h)"></el-table-column>
  49. <el-table-column label="反馈备注">
  50. <template slot-scope="scope">
  51. <div>
  52. <div v-html="scope.row.description"></div>
  53. <span v-for="(file,index) in scope.row.fileList">
  54. <a :href="file.url" style="color: darkgreen">
  55. <span v-html="file.fileName"></span>
  56. </a>
  57. </span>
  58. </div>
  59. </template>
  60. </el-table-column>
  61. </el-table>
  62. </div>
  63. </template>
  64. <script>
  65. import {getTask} from "@/api/task/task";
  66. export default {
  67. name: "taskDetail",
  68. props: {
  69. detailForm: {
  70. type: Object,
  71. default: {}
  72. }
  73. },
  74. watch: {
  75. detailForm(val) {
  76. this.form = val
  77. }
  78. },
  79. data() {
  80. return {
  81. form: {}
  82. }
  83. },
  84. created() {
  85. this.form = this.detailForm
  86. },
  87. methods: {
  88. getFeedbackTypeName(type) {
  89. if (type === '1') {
  90. return '进度反馈'
  91. } else if (type === '2') {
  92. return '完成'
  93. } else if (type === '3') {
  94. return '终止'
  95. } else if (type === '4') {
  96. return '评论'
  97. }
  98. return '审批'
  99. },
  100. getParentTask(id) {
  101. getTask(id).then(res => {
  102. this.form = res.data;
  103. })
  104. }
  105. }
  106. }
  107. </script>
  108. <style scoped lang="scss">
  109. .el-form-item--mini.el-form-item, .el-form-item--small.el-form-item {
  110. margin-bottom: 10px;
  111. }
  112. .p-task {
  113. color: #1c84c6;
  114. text-decoration: underLine
  115. }
  116. </style>