index.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <template>
  2. <view class="container">
  3. <!-- #ifdef H5 -->
  4. <view style="color: #fff;">
  5. <tn-nav-bar backgroundColor="#26B3A0" :bottomShadow="false">任务详情
  6. </tn-nav-bar>
  7. <view :style="{ height: tobheight + 'px' }"></view>
  8. </view>
  9. <!-- #endif -->
  10. <view class="detailBox">
  11. <image class="topImg" :src="detail.cover_image" mode=""></image>
  12. <view class="money">
  13. <view class="label" style="color: #666;font-size: 32rpx;">
  14. 佣金:
  15. </view>
  16. <view class="num">
  17. ¥{{detail.task_commission }}
  18. </view>
  19. </view>
  20. <view class="title">
  21. <!-- Chat GPT应用场景学习 -->
  22. {{detail.name }}
  23. </view>
  24. <view class="des" style="color: #999;font-size: 28rpx;">
  25. <!-- 任务人数:8人/287人 -->
  26. 任务人数:{{detail.success_count }}人/{{ detail.max_count}}人
  27. </view>
  28. <view class="content">
  29. <!-- 此单主要为用户学习caht gpt应用场景学习,主要掌握人工智能对人生活各方面的助力 -->
  30. {{detail.intro}}
  31. </view>
  32. <view class="div">
  33. </view>
  34. <view class="sunTitle">
  35. 任务说明
  36. </view>
  37. <view class="bImg">
  38. <u-parse selectable :content="detail.description"></u-parse>
  39. </view>
  40. <view class="sunTitle">
  41. 接单须知
  42. </view>
  43. <view class="bImg">
  44. <u-parse selectable :content="detail.receive_notice"></u-parse>
  45. </view>
  46. </view>
  47. <view class="pos">
  48. </view>
  49. <view class="kefuAndBtn">
  50. <view class="iconBox">
  51. <u-icon @click="jumpToKefu" class="icon" name="server-fill" color="#26B3A0" size="22"></u-icon>
  52. </view>
  53. <view class="btn" @click="handleReceiveOrder(detail.id)">
  54. 立即接单
  55. </view>
  56. </view>
  57. </view>
  58. </template>
  59. <script>
  60. import {
  61. receiveOrder,
  62. taskDetail
  63. } from '@/api/tusk/index.js'
  64. import {
  65. myTaskOrder
  66. } from '@/api/my/index.js'
  67. export default {
  68. components: {},
  69. data() {
  70. return {
  71. tobheight: 45,
  72. detail: {},
  73. // alreadyReTimes: 0,
  74. taskOrderList: [],
  75. };
  76. },
  77. computed: {
  78. },
  79. watch: {
  80. },
  81. async onLoad(o) {
  82. let res = await taskDetail({
  83. task_id: o.id
  84. })
  85. if (res.code == 0) {
  86. this.detail = res.data
  87. }
  88. console.log('任务详情返回值', res);
  89. let res1 = await myTaskOrder()
  90. if (res1.code == 0) {
  91. this.taskOrderList = res1.data.filter((item, index) => {
  92. return item.audit_status == 1
  93. })
  94. console.log('任务详情----全部任务返回值', res1, this.taskOrderList.length);
  95. }
  96. },
  97. onReady() {
  98. },
  99. onShow() {
  100. },
  101. onUnload() {
  102. },
  103. methods: {
  104. // jumpToKefu() {
  105. // uni.navigateTo({
  106. // url: '/pages/user/public/kefu'
  107. // })
  108. // },
  109. jumpToKefu() {
  110. window.open('https://work.weixin.qq.com/kfid/kfc807229b723286051')
  111. },
  112. async handleReceiveOrder(task_id) {
  113. let _this = this
  114. uni.showModal({
  115. title: '提示',
  116. content: '确认接单:' + this.detail.name + "?",
  117. confirmColor: 'rgb(38, 179, 160)',
  118. success: async (res) => {
  119. if (res.confirm) {
  120. if (_this.detail.is_new) {
  121. if (_this.taskOrderList.length > 3) {
  122. uni.showToast({
  123. title: '接单失败,您已不是新用户',
  124. icon: 'none'
  125. })
  126. return
  127. }
  128. }
  129. if (_this.detail.max_count == _this.detail.success_count) {
  130. uni.showToast({
  131. title: '接单失败,允许的最大接单人数是:' + _this.detail.max_count,
  132. icon: 'none'
  133. })
  134. return
  135. }
  136. let res = await receiveOrder({
  137. task_id
  138. })
  139. console.log('立即接单返回值', res);
  140. if (res.code == 0) {
  141. uni.showToast({
  142. title: '接单成功',
  143. icon: 'none'
  144. })
  145. setTimeout(() => {
  146. uni.navigateTo({
  147. url: '/pages/user/work/index'
  148. })
  149. }, 1000)
  150. } else {
  151. uni.showToast({
  152. title: res.msg,
  153. icon: 'none'
  154. })
  155. }
  156. } else if (res.cancel) {
  157. return
  158. }
  159. }
  160. });
  161. }
  162. }
  163. };
  164. </script>
  165. <style lang="scss" scoped>
  166. @import './index.scss';
  167. </style>