scorpio 2 jaren geleden
bovenliggende
commit
621eaeac76
3 gewijzigde bestanden met toevoegingen van 80 en 23 verwijderingen
  1. 8 0
      src/api/task/index.js
  2. 23 21
      src/views/task/component/task.vue
  3. 49 2
      src/views/task/detail.vue

+ 8 - 0
src/api/task/index.js

@@ -17,6 +17,14 @@ export default {
   detail (params) {
     return fetch('/blade-project-manage-v2/userTask/v2/detail', params)
   },
+  /**
+   * 任务完成详情
+   * @param params
+   * @returns {Promise | Promise<unknown>}
+   */
+  confirmDetail (params) {
+    return fetch('/blade-project-manage-v2/userTask/v2/confirmDetail', params)
+  },
   taskConfirm (params) {
     return fetch('/blade-project-manage-v2/userTask/v2/confirm', params)
   },

+ 23 - 21
src/views/task/component/task.vue

@@ -27,7 +27,7 @@
 <script>
 export default {
   name: 'my-task',
-  data() {
+  data () {
     return {
       query: {
         type: '0'
@@ -112,7 +112,7 @@ export default {
     }
   },
   methods: {
-    onLoad() {
+    onLoad () {
       this.loading = true
       this.page.current = this.page.currentPage
       this.page.size = this.page.pageSize
@@ -124,42 +124,44 @@ export default {
         }
       })
     },
-    beforeOpen(done, type) {
-      if (['view'].includes(type)) {
+    beforeOpen (done, type) {
+      if (type === 'view') {
+        this.$router.push({ path: '/task/detail', query: { id: this.form.id, taskId: this.form.taskId, view: true } })
+      } else {
+        done()
       }
-      done()
     },
-    currentChange(currentPage) {
+    currentChange (currentPage) {
       this.page.currentPage = currentPage
     },
-    sizeChange(pageSize) {
+    sizeChange (pageSize) {
       this.page.size = pageSize
     },
-    refreshChange() {
+    refreshChange () {
       this.onLoad()
     },
-    rowDel(row) {
+    rowDel (row) {
       this.$confirm('确定彻底删除所选择的文件?', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
       })
-          .then(() => {
-            this.$api.recycle.recycleRemove({ids: row.id}).then(res => {
-              if (res.code === 200) {
-                this.$message.success(res.msg)
-                this.onLoad()
-              } else {
-                this.$message.error(res.msg)
-              }
-            })
+        .then(() => {
+          this.$api.recycle.recycleRemove({ ids: row.id }).then(res => {
+            if (res.code === 200) {
+              this.$message.success(res.msg)
+              this.onLoad()
+            } else {
+              this.$message.error(res.msg)
+            }
           })
+        })
     },
-    changeQueryType(type) {
+    changeQueryType (type) {
       this.query.type = type
       this.onLoad()
     },
-    taskCheck(row) {
+    taskCheck (row) {
       if (row.isCompleted === 0) {
         this.$message.error('该任务尚未完成,不能进行确认!')
         return
@@ -168,7 +170,7 @@ export default {
         this.$message.error('该任务已经确认!')
         return
       }
-      this.$api.task.taskConfirm({taskId: row.taskId}).then(res => {
+      this.$api.task.taskConfirm({ taskId: row.taskId }).then(res => {
         if (res.code === 200) {
           this.$message.success(res.msg)
           this.onLoad()

+ 49 - 2
src/views/task/detail.vue

@@ -1,5 +1,6 @@
 <template>
   <basic-container class='mt-10'>
+    {{view}}
     <div class='flex flex-align-start flex flex-col'>
       <span class='bold'>任务基本信息:</span>
       <el-divider/>
@@ -19,6 +20,7 @@
         <div class='mt-10'>
           <span class='bold'>任务状态:</span>
           <el-tag>{{ taskInfo.isCompleted === 0 ? '未完成':'已完成' }}</el-tag>
+          <el-tag class='ml-10'>{{ taskInfo.isConfirmed === 0 ? '待确认':'已确认' }}</el-tag>
         </div>
       </div>
     </div>
@@ -34,10 +36,13 @@
         <el-button icon='Check' type='primary' v-if='this.folderList.length === 0 && taskInfo && taskInfo.isCompleted === 0 ' @click='completeTask'>
           完成任务
         </el-button>
+        <el-button icon='Check' type='primary' v-if='taskInfo && taskInfo.isConfirmed === 0 && view' @click='confirmTask'>
+          确认任务
+        </el-button>
       </div>
       <basic-curd class='full-width' :data='data' :option='taskOption' @row-view='rowDetail' @row-del='rowDel'>
         <template #menu='{row}'>
-          <main-button title='提交文件' v-if='row.type === 2' icon='Position' @click='postFile(row)'/>
+          <main-button title='提交文件' v-if='row.type === 2 && view !== true' icon='Position' @click='postFile(row)'/>
         </template>
       </basic-curd>
     </div>
@@ -94,6 +99,7 @@ export default {
   data () {
     return {
       clientId: '',
+      view: false,
       showImage: false,
       imgList: [],
       show: false,
@@ -133,10 +139,35 @@ export default {
   created () {
     this.id = this.$route.query.id
     this.taskId = this.$route.query.taskId
-    this.detail()
     this.clientId = Base64.encode(`${website.clientId}:${website.clientSecret}`)
+    const viewtemp = this.$route.query.view
+    if (viewtemp) {
+      this.view = true
+    }
+    if (this.view) {
+      this.confirmDetail()
+    } else {
+      this.detail()
+    }
   },
   methods: {
+    confirmDetail () {
+      const data = { taskId: this.taskId }
+      this.$api.task.confirmDetail(Object.assign(data, this.page)).then(res => {
+        if (res.code === 200) {
+          this.data = res.data.records.map(sub => {
+            sub.parentId = 0
+            sub.type = 2
+            return sub
+          })
+          this.current = this.data[0]
+          this.isAccess = this.data[0].isAccess
+          this.taskInfo = this.data[0]
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    },
     detail () {
       const data = { taskId: this.taskId }
       this.$api.task.detail(Object.assign(data, this.page)).then(res => {
@@ -286,6 +317,22 @@ export default {
           this.$message.error(res.msg)
         }
       })
+    },
+    confirmTask () {
+      this.$confirm('确认任务,并且向业主发送提醒', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(res => {
+        this.$api.task.taskConfirm({ taskId: this.taskId }).then(res => {
+          if (res.code === 200) {
+            this.$message.success(res.msg)
+            this.onLoad()
+          } else {
+            this.$message.error(res.msg)
+          }
+        })
+      })
     }
   }
 }