Browse Source

花田任务

ck@123911.net 2 months ago
parent
commit
d61288b1c8
1 changed files with 63 additions and 2 deletions
  1. 63 2
      pages/isLand/TaskDialog.vue

+ 63 - 2
pages/isLand/TaskDialog.vue

@@ -30,10 +30,15 @@
           <view class="task-footer">
             <text class="task-date">{{task.create_time}}</text>
             <view 
-              :class="['task-button', task.state === 1 ? 'completed' : 'uncompleted']"
+              :class="['task-button', 
+                task.state === 1 ? 'completed' : 
+                task.state === 2 ? 'completed' : 
+                'uncompleted']"
               @click="handleTaskAction(task)"
             >
-              {{task.state === 1 ? '已完成' : '未完成'}}
+              {{task.state === 1 ? '已完成' : 
+                task.state === 2 ? '领取奖励' : 
+                '未完成'}}
             </view>
           </view>
           <view class="card-divider"></view>
@@ -133,6 +138,9 @@ export default {
           title: '任务已完成!',
           icon: 'success'
         })
+      } else if (task.state === 2) {
+        // 处理领取奖励的逻辑
+        this.receiveTaskReward(task)
       } else {
         // 处理未完成任务的逻辑
         uni.showToast({
@@ -140,6 +148,53 @@ export default {
           icon: 'none'
         })
       }
+    },
+    // 领取任务奖励
+    async receiveTaskReward(task) {
+      try {
+        uni.request({
+          url: this.$apiHost + '/Game/get_task_list',
+          method: 'GET',
+          data: {
+            uuid: getApp().globalData.uuid,
+            type: this.type,
+            act: 'get',
+            task_id: task.id
+          },
+          header: {
+            'Content-Type': 'application/x-www-form-urlencoded',
+            'sign': getApp().globalData.headerSign,
+          },
+          success: (res) => {
+            if (res.data && res.data.code === 0) {
+              uni.showToast({
+                title: '领取成功!',
+                icon: 'success'
+              })
+              // 刷新任务列表
+              this.fetchTaskData()
+            } else {
+              uni.showToast({
+                title: res.data?.msg || '领取失败',
+                icon: 'none'
+              })
+            }
+          },
+          fail: (err) => {
+            console.error('领取奖励异常', err)
+            uni.showToast({
+              title: '网络异常,请重试',
+              icon: 'none'
+            })
+          }
+        })
+      } catch (error) {
+        console.error('领取奖励异常', error)
+        uni.showToast({
+          title: '网络异常,请重试',
+          icon: 'none'
+        })
+      }
     }
   }
 }
@@ -147,4 +202,10 @@ export default {
 
 <style lang="scss">
 @import './TaskDialog.scss';
+.task-button {
+  &.can-receive {
+    background-color: #FFD700;
+    color: #000;
+  }
+}
 </style>