taskdetail.vue 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266
  1. <template>
  2. <view>
  3. <!-- 胶囊 -->
  4. <mvBar :mysNavConfig="mysNavConfig"></mvBar>
  5. <view :style="{marginTop:navH}"></view>
  6. <view v-if="!loading">
  7. <!-- 任务状态 -->
  8. <view style="padding-bottom: 30rpx;margin: 0 30rpx">
  9. <view style="display: flex;justify-content: center;font-size: 44rpx;padding-bottom: 20rpx;">
  10. <p>{{msg1}}</p>
  11. <view class="upload-btn" v-if="isShowUpload" @click="toUpload()" key="0">
  12. <image src="../../static/img/icon-upload.png" style="height: 40rpx;width: 40rpx;"></image>
  13. <p style="font-size: 28rpx;">快速上传</p>
  14. </view>
  15. </view>
  16. <view style="display: flex;justify-content: center;font-size: 24rpx;color: #999999;text-align:center">
  17. <p>{{msg2}}</p>
  18. </view>
  19. <view style="display: flex;justify-content: center;font-size: 24rpx;color: #999999;text-align:center"
  20. v-if="msg3 != ''">
  21. <p>{{msg3}}</p>
  22. </view>
  23. </view>
  24. <view style="display: flex;justify-content: center;align-items: center;"
  25. v-if="isShowUpload && !isSpecial && !isTimeOut" key="1">
  26. <image style="height: 60rpx;width: 60rpx;" src="../../static/img/icon-time.png"></image>
  27. <p style="font-size: 30rpx;color: #f2d241;">剩余时间:{{timeLeft}}</p>
  28. </view>
  29. <view style="display: flex;justify-content: center;align-items: center;"
  30. v-if="isShowUpload && !isSpecial && isTimeOut" key="2">
  31. <image style="height: 60rpx;width: 60rpx;" src="../../static/img/icon-time2.png"></image>
  32. <p style="font-size: 30rpx;color: #f70c0c;">超时:{{timeLeft}}</p>
  33. </view>
  34. <view class="address" v-if="!isSpecial">
  35. <view class="address_icon">
  36. <image style="width: 50rpx;height: 50rpx;" :src="picture.icon_loc" mode="">
  37. </image>
  38. </view>
  39. <view style="width: 70%;">
  40. <view style="display: flex;">
  41. <p class='ipon' style="padding-right: 100rpx;">{{address.receiver_name}}</p>
  42. <p class='ipon'>{{address.phone_number}}</p>
  43. </view>
  44. <p class='ipon'>{{address.full_detail_addr}}</p>
  45. </view>
  46. <view class="address_edit" @click="editAddress()" v-if="task.task_stage < 4">
  47. <image :src="picture.icon_edit" mode="">
  48. </image>
  49. </view>
  50. </view>
  51. <view class="basicInfo">
  52. <view class="tpc-txt1">
  53. <image :src="product.PhotoUrl" style="width: 150rpx;height: 150rpx;" mode="">
  54. </image>
  55. <view class="basicInfo_txt">
  56. <p style="font-size: 30rpx;">{{project.project_name}}</p>
  57. <!-- <p style="font-size: 30rpx;">商品价值:{{project.Product.showProductPrice}}元</p> -->
  58. </view>
  59. </view>
  60. <view class="tpc-txt2" @click="toTaskDeatail()">
  61. <p>查看</p>
  62. <image class="tpc-icon" :src="picture.icon_right"></image>
  63. </view>
  64. </view>
  65. <!-- <view class="keyInfo">
  66. <view style="margin-bottom: 40rpx;">
  67. <p style="font-size: 36rpx;">关键任务信息</p>
  68. </view>
  69. <view v-if="!isSpecial">
  70. <p style="margin-bottom: 10rpx;">合作方式</p>
  71. <p>粉丝量:{{strategy.show_followers_low}}-{{strategy.show_followers_up}}
  72. &nbsp;&nbsp;
  73. 稿费:{{strategy.fee_form_t}}
  74. </p>
  75. </view>
  76. <view class="line"></view>
  77. <view style="margin-top: 20rpx;margin-bottom: 10rpx;">
  78. <p style="margin-bottom: 10rpx;">社媒平台:</p>
  79. <p>{{project.project_platform_t}}</p>
  80. </view>
  81. <view class="line"></view>
  82. <p style="margin-top: 10rpx;">任务要求</p>
  83. <view class="keyInfo_task">
  84. <view style="display: flex;align-items: center;margin: 10rpx 0;">
  85. <p>内容形式:</p>
  86. <p>{{project.content}}</p>
  87. </view>
  88. <view style="display: flex;align-items: center;margin: 10rpx 0;">
  89. <p>任务形式:</p>
  90. <p>{{project.project_form_t}}</p>
  91. </view>
  92. <view style="margin-top: 20rpx;margin-bottom: 10rpx;">
  93. <p>商品描述:</p>
  94. <text>{{project.Product.ProductDetail}}</text>
  95. </view>
  96. <view style="margin-top: 20rpx;margin-bottom: 10rpx;">
  97. <p>任务详情:</p>
  98. <text>{{project.project_detail}}</text>
  99. </view>
  100. </view>
  101. </view>
  102. -->
  103. <view class="task-progress">
  104. <!-- <p style="font-size: 32rpx;">任务进度</p> -->
  105. <view class="task-progress-card" v-bind:style="task.task_stage == 1 ? 'background-color: #f2d241' : ''">
  106. <view class="tpc-txt1">
  107. <p>报名信息</p>
  108. </view>
  109. <view class="tpc-txt2" @click="toApplyinfo()">
  110. <p>查看</p>
  111. <image class="tpc-icon" :src="picture.icon_right"></image>
  112. </view>
  113. </view>
  114. <view class="task-progress-card"
  115. v-if="((task.task_stage >= 5 && task.task_stage <= 15) || ((task.task_stage === 16 || task.task_stage === 3) && task.logistics_status >= 2)) && !isSpecial"
  116. v-bind:style="task.task_stage >= 5 && task.task_stage <= 6 ? 'background-color: #f2d241' : ''">
  117. <view class="tpc-txt1">
  118. <p>物流信息</p>
  119. </view>
  120. <view class="tpc-txt2" @click="toLogisticsinfo()">
  121. <p>查看</p>
  122. <image class="tpc-icon" :src="picture.icon_right"></image>
  123. </view>
  124. </view>
  125. <view class="task-progress-card"
  126. v-if="project.content_type == 2 && ((task.task_stage >= 7 && task.task_stage <= 15) || ((task.task_stage === 16 || task.task_stage === 3) && task.script_status == 5))"
  127. v-bind:style="task.task_stage >= 7 && task.task_stage <= 8 ? 'background-color: #f2d241' : ''">
  128. <view class="tpc-txt1">
  129. <p>上传拍摄脚本</p>
  130. </view>
  131. <view class="tpc-txt2" @click="toUpload()" v-if="task.script_status == 1">
  132. <p style="color: red;">待添加</p>
  133. <image class="tpc-icon" :src="picture.icon_right"></image>
  134. </view>
  135. <view class="tpc-txt2" @click="toUpload()" v-if="task.script_status == 2">
  136. <p style="color: #fff;">已添加</p>
  137. <image class="tpc-icon" :src="picture.icon_right"></image>
  138. </view>
  139. <view class="tpc-txt2" @click="toUpload()" v-if="task.script_status == 3">
  140. <p style="color: red;">待修改</p>
  141. <image class="tpc-icon" :src="picture.icon_right"></image>
  142. </view>
  143. <view class="tpc-txt2" @click="toUpload()" v-if="task.script_status == 4">
  144. <p style="color: #fff;">已修改</p>
  145. <image class="tpc-icon" :src="picture.icon_right"></image>
  146. </view>
  147. <view class="tpc-txt2" @click="toScriptRecord()" v-if="task.script_status == 5">
  148. <p>查看</p>
  149. <image class="tpc-icon" :src="picture.icon_right"></image>
  150. </view>
  151. </view>
  152. <view class="task-progress-card"
  153. v-if="(task.task_stage >= 9 && task.task_stage <= 15) || ((task.task_stage === 16 || task.task_stage === 3) && task.sketch_status == 5)"
  154. v-bind:style="task.task_stage >= 9 && task.task_stage <= 10 ? 'background-color: #f2d241' : ''">
  155. <view class="tpc-txt1">
  156. <p>上传初稿</p>
  157. </view>
  158. <view class="tpc-txt2" @click="toUpload()" v-if="task.sketch_status == 1">
  159. <p style="color: red;">待添加</p>
  160. <image class="tpc-icon" :src="picture.icon_right"></image>
  161. </view>
  162. <view class="tpc-txt2" @click="toUpload()" v-if="task.sketch_status == 2">
  163. <p style="color: #fff;">已添加</p>
  164. <image class="tpc-icon" :src="picture.icon_right"></image>
  165. </view>
  166. <view class="tpc-txt2" @click="toUpload()" v-if="task.sketch_status == 3">
  167. <p style="color: red;">待修改</p>
  168. <image class="tpc-icon" :src="picture.icon_right"></image>
  169. </view>
  170. <view class="tpc-txt2" @click="toUpload()" v-if="task.sketch_status == 4">
  171. <p style="color: #fff;">已修改</p>
  172. <image class="tpc-icon" :src="picture.icon_right"></image>
  173. </view>
  174. <view class="tpc-txt2" @click="toSketchRecord()" v-if="task.sketch_status == 5">
  175. <p>查看</p>
  176. <image class="tpc-icon" :src="picture.icon_right"></image>
  177. </view>
  178. </view>
  179. <view class="task-progress-card"
  180. v-if="(task.task_stage >= 11 && task.task_stage <= 15) || ((task.task_stage === 16 || task.task_stage === 3) && task.link_status == 5)"
  181. v-bind:style="task.task_stage >= 11 && task.task_stage <= 12 ? 'background-color: #f2d241' : ''">
  182. <view class="tpc-txt1">
  183. <p>上传链接</p>
  184. </view>
  185. <view class="tpc-txt2" @click="toUpload()" v-if="task.link_status == 1">
  186. <p style="color: red;">待添加</p>
  187. <image class="tpc-icon" :src="picture.icon_right"></image>
  188. </view>
  189. <view class="tpc-txt2" @click="toUpload()" v-if="task.link_status == 2">
  190. <p style="color: #fff;">已添加</p>
  191. <image class="tpc-icon" :src="picture.icon_right"></image>
  192. </view>
  193. <view class="tpc-txt2" @click="toUpload()" v-if="task.link_status == 3">
  194. <p style="color: red;">待修改</p>
  195. <image class="tpc-icon" :src="picture.icon_right"></image>
  196. </view>
  197. <view class="tpc-txt2" @click="toUpload()" v-if="task.link_status == 4">
  198. <p style="color: #fff;">已修改</p>
  199. <image class="tpc-icon" :src="picture.icon_right"></image>
  200. </view>
  201. <view class="tpc-txt2" @click="toLinkRecord()" v-if="task.link_status == 5">
  202. <p>查看</p>
  203. <image class="tpc-icon" :src="picture.icon_right"></image>
  204. </view>
  205. </view>
  206. <view class="task-progress-card"
  207. v-if="(task.task_stage >= 13 && task.task_stage <= 15) || ((task.task_stage === 16 || task.task_stage === 3) && task.data_status == 5)"
  208. v-bind:style="task.task_stage >= 13 && task.task_stage <= 14 ? 'background-color: #f2d241' : ''">
  209. <view class="tpc-txt1">
  210. <p>上传数据</p>
  211. </view>
  212. <view class="tpc-txt2" @click="toUpload()" v-if="task.data_status == 1">
  213. <p style="color: red;">待添加</p>
  214. <image class="tpc-icon" :src="picture.icon_right"></image>
  215. </view>
  216. <view class="tpc-txt2" @click="toUpload()" v-if="task.data_status == 2">
  217. <p style="color: #fff;">已添加</p>
  218. <image class="tpc-icon" :src="picture.icon_right"></image>
  219. </view>
  220. <view class="tpc-txt2" @click="toUpload()" v-if="task.data_status == 3">
  221. <p style="color: red;">待修改</p>
  222. <image class="tpc-icon" :src="picture.icon_right"></image>
  223. </view>
  224. <view class="tpc-txt2" @click="toUpload()" v-if="task.data_status == 4">
  225. <p style="color: #fff;">已修改</p>
  226. <image class="tpc-icon" :src="picture.icon_right"></image>
  227. </view>
  228. <view class="tpc-txt2" @click="toDataRecord()" v-if="task.data_status == 5">
  229. <p>查看</p>
  230. <image class="tpc-icon" :src="picture.icon_right"></image>
  231. </view>
  232. </view>
  233. <view class="task-progress-card" v-if="task.task_stage === 15" style="background-color: #f2d241">
  234. <view class="tpc-txt1">
  235. <p>已结案</p>
  236. </view>
  237. <view class="tpc-txt2" @click="toWithdraw()" v-if="!isSpecial">
  238. <p>前往提现</p>
  239. <image class="tpc-icon" :src="picture.icon_right"></image>
  240. </view>
  241. </view>
  242. <view class="task-progress-info">
  243. <view style="padding: 10rpx 0;">
  244. <span style="display: flex;align-items: center;">
  245. <p>任务ID:{{task.task_id}}</p>
  246. <image :src="picture.icon_copy" mode="" style="width: 40rpx;height: 40rpx;"
  247. @click="handleCopy()" />
  248. </span>
  249. </view>
  250. <view style="padding: 10rpx 0;">
  251. <p>报名时间:{{task.create_date}}</p>
  252. </view>
  253. <view v-if="task.task_stage > 1 && task.task_stage != 3" style="padding: 10rpx 0;">
  254. <p>确认合作:{{task.select_date}}</p>
  255. </view>
  256. <view v-for="(item,index) in taskLogs" style="padding: 10rpx 0;">
  257. <p>{{item.content}}:{{item.log_at}}</p>
  258. </view>
  259. </view>
  260. </view>
  261. <view class="block"></view>
  262. <!-- <view class="submit" v-if="task.task_stage >= 7 && task.task_stage <= 14">
  263. <button type="default" class="submit_btn" @click="submit()" :disabled="isNotShowSubmit"
  264. v-bind:style="isNotShowSubmit ? '' : 'background-color: #f2d241'">
  265. 确认提交</button>
  266. </view> -->
  267. <view class="submit" v-if="task.task_stage === 15 && !isSpecial">
  268. <button type="default" class="submit_btn" @click="toWithdraw()">
  269. 前往提现</button>
  270. </view>
  271. </view>
  272. </view>
  273. </template>
  274. <script>
  275. import region from '@/components/pca-code.json';
  276. import mvBar from "@/components/mys_navBar/mysNavBar";
  277. import {
  278. fansview,
  279. money
  280. } from '@/components/utils.js';
  281. export default {
  282. components: {
  283. mvBar
  284. },
  285. data() {
  286. return {
  287. navH: getApp().globalData.navHeight,
  288. isTimeOut: false,
  289. isNotShowSubmit: true,
  290. isShowUpload: false,
  291. loading: true,
  292. isSpecial: false,
  293. timeLeft: "",
  294. msg1: "",
  295. msg2: "",
  296. msg3: "",
  297. infoMsg1: [
  298. "等待企业确认合作",
  299. "恭喜任务申请成功!",
  300. "任务申请失败",
  301. "等待发货中",
  302. "商家已发货",
  303. "商品已签收",
  304. "等待上传拍摄脚本",
  305. "等待脚本审核",
  306. "等待上传初稿",
  307. "等待初稿审核",
  308. "等待上传链接",
  309. "等待链接审核",
  310. "等待上传作品数据",
  311. "等待数据审核",
  312. "已结案",
  313. "任务终止",
  314. ],
  315. infoMsg2: [
  316. "商家将在申请截止后5天内审核完毕",
  317. "请仔细查看任务要求和任务详情,开始执行任务吧!",
  318. "账号未达到入选标准,请小主尝试申请其他任务吧",
  319. "发货后可在物流信息中查看物流单号/虚拟产品兑换码/探店时间",
  320. "请在物流进度中查看物流单号/虚拟产品兑换码/探店时间",
  321. "请在物流进度中查看物流单号/虚拟产品兑换码/探店时间",
  322. "请在任务进度中上传拍摄脚本,商家审核通过后再进行拍摄",
  323. "商家正在审核脚本,请耐心等待。",
  324. "请在任务进度中上传图文/视频初稿,商家审核通过后再进行发布",
  325. "商家正在审核初稿,请耐心等待。",
  326. "恭喜作品审核通过,请及时发布并在任务进度中上传发布链接。",
  327. "商家正在审核链接,请耐心等待。",
  328. "恭喜链接审核通过,请在作品发布7天后上传作品数据。",
  329. "商家正在审核数据,请耐心等待。",
  330. "本任务已结案,可申请佣金提现。",
  331. "长时间未上传,任务已终止。",
  332. ],
  333. infoMsg3: [
  334. "企业将在5个工作日内完成核对账号信息,请耐心等待",
  335. "请仔细查看任务要求和任务详情,开始执行任务吧!",
  336. "账号非企业定向邀请账号,请小主尝试申请其他任务吧",
  337. "发货后可在物流信息中查看物流单号/虚拟产品兑换码/探店时间",
  338. "请在物流进度中查看物流单号/虚拟产品兑换码/探店时间",
  339. "请在物流进度中查看物流单号/虚拟产品兑换码/探店时间",
  340. "请在任务进度中上传拍摄脚本,商家审核通过后再进行拍摄",
  341. "请在任务进度中上传拍摄脚本,商家审核通过后再进行拍摄",
  342. "请在任务进度中上传图文/视频初稿,商家审核通过后再进行发布",
  343. "请在任务进度中上传图文/视频初稿,商家审核通过后再进行发布",
  344. "恭喜作品审核通过,请及时发布并在任务进度中上传发布链接。",
  345. "恭喜作品审核通过,请及时发布并在任务进度中上传发布链接。",
  346. "恭喜链接审核通过,请在作品发布7天后上传作品数据。",
  347. "恭喜链接审核通过,请在作品发布7天后上传作品数据。",
  348. "本任务已结案,可前往任务大厅查看报名其他任务。",
  349. "长时间未上传,任务已终止。",
  350. ],
  351. platform: [
  352. "红book",
  353. "抖音",
  354. "微博",
  355. "快手",
  356. "B站",
  357. "大众点评",
  358. "知乎",
  359. ],
  360. task: {},
  361. address: {},
  362. project: {},
  363. product: {},
  364. account: {},
  365. strategy: {},
  366. picture: {
  367. togoimg: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/task16.png',
  368. icon_copy: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent_upload/icon-copy.png',
  369. icon_edit: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/youngee/talent_upload/icon-edit.png',
  370. icon_loc: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/youngee/talent_upload/icon-loc.png',
  371. icon_right: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent_upload/icon-arrow-right.png',
  372. home8: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home8.png',
  373. home10: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home10.png',
  374. home11: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home11.png',
  375. },
  376. task_type_info: ["实体商品寄拍", "虚拟产品测评", "线下探店打卡"],
  377. taskLogs: [],
  378. mysNavConfig: {
  379. isHome: false,
  380. /* 固定导航 */
  381. navFixed: true,
  382. /* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
  383. navTitle: {
  384. text: "我的任务详情",
  385. color: "",
  386. fontSize: "32rpx", // px upx rpx
  387. fontWeight: "", // 100 - 700
  388. },
  389. btnType: "type2",
  390. onLeftClick: '',
  391. /* type2 按钮 */
  392. type2Config: {
  393. // 左图标
  394. leftPath: "https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/png2.png",
  395. // 右图标
  396. rightPath: "https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/png4.png",
  397. // 圆角
  398. radius: "40rpx",
  399. },
  400. },
  401. }
  402. },
  403. async onShow() {
  404. this.loading = true;
  405. uni.showLoading({
  406. title: '加载中'
  407. });
  408. await this.getTaskInfo();
  409. await this.getTaskLogs();
  410. if (!this.isSpecial) {
  411. this.getLeftTime();
  412. } else {
  413. this.loading = false;
  414. uni.hideLoading();
  415. }
  416. },
  417. onLoad(options) {
  418. this.taskId = options.taskId
  419. },
  420. methods: {
  421. handleCopy() {
  422. wx.setClipboardData({
  423. data: this.task.task_id.toString(),
  424. success: function(res) {
  425. console.log("复制成功");
  426. }
  427. });
  428. },
  429. async getLeftTime(value) {
  430. switch (this.task.task_stage) {
  431. case 7:
  432. // 首次提交
  433. if (this.task.script_status === 1 || this.task.script_status === 2) {
  434. let logistics = null;
  435. await this.$https.get('/youngee/c/t/g/get-task-logistics-info' +
  436. "?" +
  437. "task_id" +
  438. "=" +
  439. this.taskId
  440. ).then(res => {
  441. logistics = res.data.data
  442. })
  443. if (logistics.auto_script_break_at !== null && logistics.auto_script_break_at !== "") {
  444. this.timeLeft = this.thistime(logistics.auto_script_break_at)
  445. } else {
  446. // 为脚本违约限制时间赋值并返回
  447. await this.$https.post('/youngee/c/t/p/get-auto-time', {
  448. task_id: this.taskId,
  449. type: 1,
  450. }).then(res => {
  451. this.timeLeft = this.thistime(res.data.data)
  452. })
  453. }
  454. } else if (this.task.script_status === 3 || this.task.script_status === 4) {
  455. let scriptList = null;
  456. let script = null;
  457. await this.$https.get('/youngee/c/t/g/get-task-script' +
  458. "?" +
  459. "task_id" +
  460. "=" +
  461. this.taskId)
  462. .then(res => {
  463. scriptList = res.data.data
  464. for (let i = 0; i < scriptList.length; ++i) {
  465. if (scriptList[i].is_review === 1) {
  466. script = scriptList[i]
  467. }
  468. }
  469. })
  470. if (script.auto_script_break_at !== null && script.auto_script_break_at !== "") {
  471. this.timeLeft = this.thistime(script.auto_script_break_at)
  472. } else {
  473. // 为脚本违约限制时间赋值并返回
  474. await this.$https.post('/youngee/c/t/p/get-auto-time', {
  475. task_id: this.taskId,
  476. type: 2,
  477. }).then(res => {
  478. this.timeLeft = this.thistime(res.data.data)
  479. })
  480. }
  481. }
  482. this.msg1 = this.isTimeOut ? "脚本上传违约" : this.msg1
  483. break;
  484. case 9:
  485. // 首次提交
  486. if (this.task.sketch_status === 1 || this.task.sketch_status === 2) {
  487. if (this.project.content_type === 1) {
  488. let logistics = null;
  489. await this.$https.get('/youngee/c/t/g/get-task-logistics-info' +
  490. "?" +
  491. "task_id" +
  492. "=" +
  493. this.taskId
  494. ).then(res => {
  495. logistics = res.data.data
  496. })
  497. if (logistics.auto_sketch_break_at !== null && logistics.auto_sketch_break_at !== "") {
  498. this.timeLeft = this.thistime(logistics.auto_sketch_break_at)
  499. } else {
  500. // 为初稿违约限制时间赋值并返回
  501. await this.$https.post('/youngee/c/t/p/get-auto-time', {
  502. task_id: this.taskId,
  503. type: 4,
  504. }).then(res => {
  505. this.timeLeft = this.thistime(res.data.data)
  506. })
  507. }
  508. } else {
  509. let scriptList = null;
  510. await this.$https.get('/youngee/c/t/g/get-task-script' +
  511. "?" +
  512. "task_id" +
  513. "=" +
  514. this.taskId)
  515. .then(res => {
  516. scriptList = res.data.data
  517. })
  518. for (let i = 0; i < scriptList.length; ++i) {
  519. if (scriptList[i].is_ok === 1) {
  520. if (scriptList[i].auto_sketch_break_at !== null && scriptList[i]
  521. .auto_sketch_break_at !== "") {
  522. this.timeLeft = this.thistime(scriptList[i].auto_sketch_break_at)
  523. } else {
  524. // 为初稿违约限制时间赋值并返回
  525. await this.$https.post('/youngee/c/t/p/get-auto-time', {
  526. task_id: this.taskId,
  527. type: 3,
  528. }).then(res => {
  529. this.timeLeft = this.thistime(res.data.data)
  530. })
  531. }
  532. }
  533. }
  534. }
  535. } else if (this.task.sketch_status === 3 || this.task.sketch_status === 4) { //修改
  536. let sketchList = null;
  537. let sketch = null;
  538. await this.$https.get('/youngee/c/t/g/get-task-sketch' +
  539. "?" +
  540. "task_id" +
  541. "=" +
  542. this.taskId)
  543. .then(res => {
  544. sketchList = res.data.data
  545. for (let i = 0; i < sketchList.length; ++i) {
  546. if (sketchList[i].is_review === 1) {
  547. sketch = sketchList[i]
  548. }
  549. }
  550. })
  551. if (sketch.auto_sketch_break_at !== null && sketch.auto_sketch_break_at !== "") {
  552. this.timeLeft = this.thistime(sketch.auto_sketch_break_at)
  553. } else {
  554. // 为脚本违约限制时间赋值并返回
  555. let type = this.project.content_type === 1 ? 6 : 5;
  556. await this.$https.post('/youngee/c/t/p/get-auto-time', {
  557. task_id: this.taskId,
  558. type: type,
  559. }).then(res => {
  560. this.timeLeft = this.thistime(res.data.data)
  561. })
  562. }
  563. }
  564. this.msg1 = this.isTimeOut ? "初稿上传违约" : this.msg1
  565. break;
  566. case 11:
  567. // 首次提交
  568. if (this.task.link_status === 1 || this.task.link_status === 2) {
  569. let sketchList = null;
  570. await this.$https.get('/youngee/c/t/g/get-task-sketch' +
  571. "?" +
  572. "task_id" +
  573. "=" +
  574. this.taskId)
  575. .then(res => {
  576. sketchList = res.data.data
  577. })
  578. for (let i = 0; i < sketchList.length; ++i) {
  579. if (sketchList[i].is_ok === 1) {
  580. if (sketchList[i].auto_link_break_at !== null && sketchList[i]
  581. .auto_link_break_at !== "") {
  582. this.timeLeft = this.thistime(sketchList[i].auto_link_break_at)
  583. } else {
  584. // 为链接违约限制时间赋值并返回
  585. await this.$https.post('/youngee/c/t/p/get-auto-time', {
  586. task_id: this.taskId,
  587. type: 7,
  588. }).then(res => {
  589. this.timeLeft = this.thistime(res.data.data)
  590. })
  591. }
  592. }
  593. }
  594. } else if (this.task.link_status === 3 || this.task.link_status === 4) {
  595. let linkList = null;
  596. let link = null;
  597. await this.$https.get('/youngee/c/t/g/get-task-link' +
  598. "?" +
  599. "task_id" +
  600. "=" +
  601. this.taskId)
  602. .then(res => {
  603. linkList = res.data.data
  604. for (let i = 0; i < linkList.length; ++i) {
  605. if (linkList[i].is_review === 1) {
  606. link = linkList[i]
  607. }
  608. }
  609. })
  610. if (link.auto_link_break_at !== null && link.auto_link_break_at !== "") {
  611. this.timeLeft = this.thistime(link.auto_link_break_at)
  612. } else {
  613. // 为脚本违约限制时间赋值并返回
  614. await this.$https.post('/youngee/c/t/p/get-auto-time', {
  615. task_id: this.taskId,
  616. type: 8,
  617. }).then(res => {
  618. this.timeLeft = this.thistime(res.data.data)
  619. })
  620. }
  621. }
  622. this.msg1 = this.isTimeOut ? "链接上传违约" : this.msg1
  623. break;
  624. case 13:
  625. // 首次提交
  626. if (this.task.data_status === 1 || this.task.data_status === 2) {
  627. let linkList = null;
  628. await this.$https.get('/youngee/c/t/g/get-task-link' +
  629. "?" +
  630. "task_id" +
  631. "=" +
  632. this.taskId)
  633. .then(res => {
  634. linkList = res.data.data
  635. })
  636. for (let i = 0; i < linkList.length; ++i) {
  637. if (linkList[i].is_ok === 1) {
  638. if (linkList[i].auto_data_break_at !== null && linkList[i].auto_data_break_at !==
  639. "") {
  640. this.timeLeft = this.thistime(linkList[i].auto_data_break_at)
  641. } else {
  642. // 为数据违约限制时间赋值并返回
  643. await this.$https.post('/youngee/c/t/p/get-auto-time', {
  644. task_id: this.taskId,
  645. type: 9,
  646. }).then(res => {
  647. this.timeLeft = this.thistime(res.data.data)
  648. })
  649. }
  650. }
  651. }
  652. } else if (this.task.data_status === 3 || this.task.data_status === 4) {
  653. let dataList = null;
  654. let data = null;
  655. await this.$https.get('/youngee/c/t/g/get-task-data' +
  656. "?" +
  657. "task_id" +
  658. "=" +
  659. this.taskId)
  660. .then(res => {
  661. dataList = res.data.data
  662. for (let i = 0; i < dataList.length; ++i) {
  663. if (dataList[i].is_review === 1) {
  664. data = dataList[i]
  665. }
  666. }
  667. })
  668. if (data.auto_data_break_at !== null && data.auto_data_break_at !== "") {
  669. this.timeLeft = this.thistime(data.auto_data_break_at)
  670. } else {
  671. // 为脚本违约限制时间赋值并返回
  672. await this.$https.post('/youngee/c/t/p/get-auto-time', {
  673. task_id: this.taskId,
  674. type: 10,
  675. }).then(res => {
  676. this.timeLeft = this.thistime(res.data.data)
  677. })
  678. }
  679. }
  680. this.msg1 = this.isTimeOut ? "数据上传违约" : this.msg1
  681. break;
  682. default:
  683. break;
  684. }
  685. this.loading = false;
  686. uni.hideLoading();
  687. },
  688. getTaskInfo() {
  689. return this.$https.get('/youngee/c/t/g/get-task-detail' +
  690. "?" +
  691. "task_id" +
  692. "=" +
  693. this.taskId
  694. ).then(res => {
  695. console.log(res)
  696. this.task = res.data.data.task_info
  697. this.address = JSON.parse(res.data.data.task_info.talent_post_addr_snap);
  698. let a = this.address.region_code.toString().slice(0, 2)
  699. let b = this.address.region_code.toString().slice(0, 4)
  700. let c = 0
  701. for (var i = 0; i < region.length; i++) {
  702. if (region[i].code == a) {
  703. a = region[i].name
  704. for (var j = 0; j < region[i].children.length; j++) {
  705. if (region[i].children[j].code == b) {
  706. b = region[i].children[j].name
  707. for (var o = 0; o < region[i].children[j].children.length; o++) {
  708. if (region[i].children[j].children[o].code == this.address
  709. .region_code) {
  710. c = region[i].children[j].children[o].name
  711. }
  712. }
  713. }
  714. }
  715. }
  716. }
  717. this.address.full_detail_addr = a + b + c + this.address.detail_addr
  718. this.account = JSON.parse(res.data.data.task_info.talent_platform_info_snap);
  719. this.account.show_fans_count = fansview(this.account.fans_count)
  720. this.project = res.data.data.project_detail
  721. this.project.Product = JSON.parse(res.data.data.project_detail.product_snap);
  722. this.project.Product.showProductPrice = money(this.project.Product.ProductPrice)
  723. let ProductPhoto = JSON.parse(res.data.data.project_detail.product_photo_snap);
  724. for (let j = 0; j < ProductPhoto.length; ++j) {
  725. if (ProductPhoto[j].Symbol == 1) {
  726. this.product = ProductPhoto[j]
  727. }
  728. }
  729. this.strategy = res.data.data.strategy
  730. this.isSpecial = this.project.project_type === 2 ? true : false;
  731. if (!this.isSpecial) {
  732. this.strategy.show_followers_low = fansview(this.strategy.followers_low)
  733. this.strategy.show_followers_up = fansview(this.strategy.followers_up)
  734. this.strategy.fee_form_t = this.strategy.fee_form === 1 ? '产品置换' : (this.strategy
  735. .fee_form ===
  736. 2 ?
  737. '固定稿费 ' +
  738. money(this.task.task_reward) : '创作者自报价 ' + money(this.task.task_reward))
  739. }
  740. this.project.content = this.project.content_type === 1 ? "图文" : "视频" // 任务形式
  741. this.project.project_form_t = this.task_type_info[this.project.project_form - 1] // 任务类型
  742. this.project.project_platform_t = this.platform[this.project.project_platform - 1] // 社媒平台
  743. // 不同任务阶段提示消息
  744. this.msg1 = this.infoMsg1[this.task.task_stage - 1]
  745. this.msg2 = this.isSpecial ? this.infoMsg3[this.task.task_stage - 1] : this.infoMsg2[this.task
  746. .task_stage - 1]
  747. if (this.task.task_stage == 7) {
  748. this.msg3 = "延迟上传脚本,可能导致佣金扣除。"
  749. } else if (this.task.task_stage == 9) {
  750. this.msg3 = "延迟上传初稿,可能导致佣金扣除。"
  751. } else if (this.task.task_stage == 11) {
  752. this.msg3 = "延迟上传链接,可能导致佣金扣除。"
  753. } else if (this.task.task_stage == 13) {
  754. this.msg3 = "延迟上传数据,可能导致佣金扣除。"
  755. }
  756. // 判断是否显示快速上传按钮
  757. if (this.task.task_stage == 7 || this.task.task_stage == 9 || this.task.task_stage == 11 ||
  758. this.task.task_stage == 13) {
  759. this.isShowUpload = true
  760. } else {
  761. this.isShowUpload = false
  762. }
  763. // 判断确认提交按钮是否可用
  764. if (this.task.task_stage == 7 && (this.task.script_status == 2 || this.task.script_status ==
  765. 4)) {
  766. this.isNotShowSubmit = false
  767. }
  768. if (this.task.task_stage == 9 && (this.task.sketch_status == 2 || this.task.sketch_status ==
  769. 4)) {
  770. this.isNotShowSubmit = false
  771. }
  772. if (this.task.task_stage == 11 && (this.task.link_status == 2 || this.task.link_status == 4)) {
  773. this.isNotShowSubmit = false
  774. }
  775. if (this.task.task_stage == 13 && (this.task.data_status == 2 || this.task.data_status == 4)) {
  776. this.isNotShowSubmit = false
  777. }
  778. })
  779. },
  780. getTaskLogs() {
  781. return this.$https.get('/youngee/c/t/g/get-task-log' +
  782. "?" +
  783. "task_id" +
  784. "=" +
  785. this.taskId
  786. ).then(res => {
  787. this.taskLogs = res.data.data
  788. })
  789. },
  790. toUpload() {
  791. if (this.task.task_stage == 7 || this.task.task_stage == 8) { // 上传脚本
  792. var data = {
  793. taskId: this.task.task_id,
  794. scriptStatus: this.task.script_status
  795. };
  796. data = JSON.stringify(data)
  797. uni.navigateTo({
  798. url: '/pages/workspace/uploadscript?textObj=' + encodeURIComponent(data)
  799. });
  800. } else if (this.task.task_stage == 9 || this.task.task_stage == 10) { // 上传初稿
  801. var data = {
  802. taskId: this.task.task_id,
  803. sketchStatus: this.task.sketch_status
  804. };
  805. data = JSON.stringify(data)
  806. uni.navigateTo({
  807. url: '/pages/workspace/uploadsketch?textObj=' + encodeURIComponent(data)
  808. });
  809. } else if (this.task.task_stage == 11 || this.task.task_stage == 12) { // 上传链接
  810. var data = {
  811. taskId: this.task.task_id,
  812. linkStatus: this.task.link_status
  813. };
  814. data = JSON.stringify(data)
  815. uni.navigateTo({
  816. url: '/pages/workspace/uploadlink?textObj=' + encodeURIComponent(data)
  817. });
  818. } else if (this.task.task_stage == 13 || this.task.task_stage == 14) { // 上传数据
  819. var data = {
  820. taskId: this.task.task_id,
  821. dataStatus: this.task.data_status
  822. };
  823. data = JSON.stringify(data)
  824. uni.navigateTo({
  825. url: '/pages/workspace/uploaddata?textObj=' + encodeURIComponent(data)
  826. });
  827. }
  828. },
  829. toScriptRecord() {
  830. var data = {
  831. taskId: this.task.task_id,
  832. };
  833. data = JSON.stringify(data)
  834. uni.navigateTo({
  835. url: '/pages/workspace/scriptrecord?textObj=' + encodeURIComponent(data)
  836. });
  837. },
  838. toSketchRecord() {
  839. var data = {
  840. taskId: this.task.task_id,
  841. };
  842. data = JSON.stringify(data)
  843. uni.navigateTo({
  844. url: '/pages/workspace/sketchrecord?textObj=' + encodeURIComponent(data)
  845. });
  846. },
  847. toLinkRecord() {
  848. var data = {
  849. taskId: this.task.task_id,
  850. };
  851. data = JSON.stringify(data)
  852. uni.navigateTo({
  853. url: '/pages/workspace/linkrecord?textObj=' + encodeURIComponent(data)
  854. });
  855. },
  856. toDataRecord() {
  857. var data = {
  858. taskId: this.task.task_id,
  859. };
  860. data = JSON.stringify(data)
  861. uni.navigateTo({
  862. url: '/pages/workspace/datarecord?textObj=' + encodeURIComponent(data)
  863. });
  864. },
  865. toTaskDeatail() {
  866. if (this.isSpecial) {
  867. uni.navigateTo({
  868. url: '/pages/tasksquare/specialTask/specialTaskDetail?id=' + this.project.project_id
  869. });
  870. } else {
  871. uni.navigateTo({
  872. url: '/pages/tasksquare/taskdetail?id=' + this.project.project_id
  873. });
  874. }
  875. },
  876. toApplyinfo() {
  877. var data = {
  878. account: this.account,
  879. };
  880. data = JSON.stringify(data)
  881. uni.navigateTo({
  882. url: '/pages/workspace/applyInformation?textObj=' + encodeURIComponent(data)
  883. });
  884. },
  885. toLogisticsinfo() {
  886. console.log(this.project.project_form)
  887. var data = {
  888. address: this.address,
  889. taskId: this.task.task_id,
  890. projectForm: this.project.project_form
  891. };
  892. data = JSON.stringify(data)
  893. uni.navigateTo({
  894. url: '/pages/workspace/deliveryInformation?textObj=' + encodeURIComponent(data)
  895. });
  896. },
  897. editAddress() {
  898. var data = {
  899. address: this.address,
  900. taskId: this.task.task_id,
  901. };
  902. data = JSON.stringify(data)
  903. uni.navigateTo({
  904. url: '/pages/workspace/editaddress?textObj=' + encodeURIComponent(data)
  905. });
  906. },
  907. // 计算结束时间
  908. thistime(val) {
  909. // 转换格式
  910. var beginTime = new Date(val.replace(/-/g, "/"));
  911. // 当前时间
  912. var thisTime = new Date();
  913. // 相减
  914. var dateMiss = beginTime.getTime() - thisTime.getTime();
  915. this.isTimeOut = dateMiss < 0 ? true : false
  916. dateMiss = dateMiss < 0 ? -dateMiss : dateMiss
  917. // 天数
  918. var day = Math.floor(dateMiss / (24 * 3600 * 1000));
  919. // 减去天数剩下的毫秒数
  920. var backOne = dateMiss % (24 * 3600 * 1000);
  921. // 小时数
  922. var hours = Math.floor(backOne / (3600 * 1000));
  923. // 减去小时数剩下的毫秒数
  924. var backHour = backOne % (3600 * 1000);
  925. // 分钟数
  926. var min = Math.floor(backHour / (60 * 1000));
  927. var deadline_time = day + '天' + hours + '时' + min + '分'
  928. return deadline_time
  929. },
  930. toWithdraw() {
  931. uni.navigateTo({
  932. url: '/pages/mycenter/myincome?showTab=1'
  933. });
  934. },
  935. submit() {
  936. if (this.task.task_stage == 7) { // 提交脚本
  937. let that = this
  938. uni.showModal({
  939. title: '提示',
  940. content: '提交后无法修改并进行审核,确认提交?',
  941. success: function(res) {
  942. if (res.confirm) {
  943. that.$https.get('/youngee/c/t/g/submit-task-script' +
  944. "?" +
  945. "task_id" +
  946. "=" +
  947. that.task.task_id)
  948. .then(res => {
  949. console.log(res)
  950. uni.navigateBack()
  951. })
  952. } else if (res.cancel) {
  953. console.log('用户点击取消');
  954. }
  955. }
  956. });
  957. } else if (this.task.task_stage == 9) { // 提交初稿
  958. let that = this
  959. uni.showModal({
  960. title: '提示',
  961. content: '提交后无法修改并进行审核,确认提交?',
  962. success: function(res) {
  963. if (res.confirm) {
  964. that.$https.get('/youngee/c/t/g/submit-task-sketch' +
  965. "?" +
  966. "task_id" +
  967. "=" +
  968. that.task.task_id)
  969. .then(res => {
  970. console.log(res)
  971. uni.navigateBack()
  972. })
  973. } else if (res.cancel) {
  974. console.log('用户点击取消');
  975. }
  976. }
  977. });
  978. } else if (this.task.task_stage == 11) { // 提交链接
  979. let that = this
  980. uni.showModal({
  981. title: '提示',
  982. content: '提交后无法修改并进行审核,确认提交?',
  983. success: function(res) {
  984. if (res.confirm) {
  985. that.$https.get('/youngee/c/t/g/submit-task-link' +
  986. "?" +
  987. "task_id" +
  988. "=" +
  989. that.task.task_id)
  990. .then(res => {
  991. console.log(res)
  992. uni.navigateBack()
  993. })
  994. } else if (res.cancel) {
  995. console.log('用户点击取消');
  996. }
  997. }
  998. });
  999. } else if (this.task.task_stage == 13) { // 提交数据
  1000. let that = this
  1001. uni.showModal({
  1002. title: '提示',
  1003. content: '提交后无法修改并进行审核,确认提交?',
  1004. success: function(res) {
  1005. if (res.confirm) {
  1006. that.$https.get('/youngee/c/t/g/submit-task-data' +
  1007. "?" +
  1008. "task_id" +
  1009. "=" +
  1010. that.task.task_id)
  1011. .then(res => {
  1012. console.log(res)
  1013. uni.navigateBack()
  1014. })
  1015. } else if (res.cancel) {
  1016. console.log('用户点击取消');
  1017. }
  1018. }
  1019. });
  1020. }
  1021. }
  1022. }
  1023. }
  1024. </script>
  1025. <style lang="scss" scoped>
  1026. text {
  1027. font-size: 12px;
  1028. }
  1029. .basicInfo {
  1030. display: flex;
  1031. align-items: center;
  1032. justify-content: center;
  1033. margin-top: 20rpx;
  1034. padding: 20rpx;
  1035. font-size: 30rpx;
  1036. background-color: #FFFFFF;
  1037. .basicInfo_txt {
  1038. display: flex;
  1039. align-items: center;
  1040. justify-content: center;
  1041. margin-left: 40rpx;
  1042. // padding-top: 20rpx;
  1043. }
  1044. .tpc-txt1 {
  1045. display: flex;
  1046. justify-content: flex-start;
  1047. // margin-left: 20rpx;
  1048. }
  1049. .tpc-txt2 {
  1050. display: flex;
  1051. align-items: center;
  1052. justify-content: flex-end;
  1053. padding-right: 10rpx;
  1054. // margin-right: 20rpx;
  1055. flex: 1;
  1056. .tpc-icon {
  1057. width: 30rpx;
  1058. height: 30rpx;
  1059. }
  1060. }
  1061. }
  1062. .upload-btn {
  1063. display: flex;
  1064. align-items: center;
  1065. justify-content: center;
  1066. background-color: #f2d241;
  1067. border-radius: 10rpx;
  1068. padding: 5rpx;
  1069. margin-left: 20rpx;
  1070. cursor: pointer;
  1071. }
  1072. .address {
  1073. display: flex;
  1074. margin: 20rpx 0;
  1075. // padding: 20rpx 20rpx;
  1076. background-color: #FFFFFF;
  1077. justify-content: space-around;
  1078. align-items: center;
  1079. .address_icon {
  1080. width: 15%;
  1081. vertical-align: middle;
  1082. display: flex;
  1083. justify-content: center;
  1084. }
  1085. .address_edit {
  1086. width: 15%;
  1087. }
  1088. .address_edit image {
  1089. vertical-align: middle;
  1090. width: 50rpx;
  1091. height: 50rpx;
  1092. display: inline-block;
  1093. padding-right: 14rpx;
  1094. }
  1095. .ipon {
  1096. color: #333333;
  1097. font-size: 30rpx;
  1098. margin-bottom: 10rpx;
  1099. }
  1100. }
  1101. .keyInfo {
  1102. padding: 20rpx 20rpx;
  1103. background-color: #FFFFFF;
  1104. .keyInfo_task {
  1105. // color: #999999;
  1106. }
  1107. }
  1108. .keyInfo h3 {}
  1109. .keyInfo p {
  1110. font-size: 30rpx;
  1111. }
  1112. .account {
  1113. display: flex;
  1114. align-items: center;
  1115. // justify-content: space-between;
  1116. // width: 90%;
  1117. margin: 20rpx 0;
  1118. padding: 20rpx 20rpx;
  1119. background-color: #FFFFFF;
  1120. font-size: 35rpx;
  1121. .account_txt {
  1122. display: inline-block;
  1123. padding: 0 0 0 1%;
  1124. width: 400rpx;
  1125. }
  1126. .account_txt image {
  1127. vertical-align: middle;
  1128. width: 50rpx;
  1129. height: 50rpx;
  1130. display: inline-block;
  1131. padding-right: 14rpx;
  1132. }
  1133. .account_fans {
  1134. display: flex;
  1135. width: 250rpx;
  1136. }
  1137. .account_fans p {
  1138. display: inline-block;
  1139. color: #333333;
  1140. }
  1141. .account_btn {}
  1142. }
  1143. .task-progress {
  1144. padding: 20rpx;
  1145. .task-progress-card {
  1146. margin: 15rpx 0;
  1147. display: flex;
  1148. align-items: center;
  1149. // margin: 20rpx;
  1150. padding: 10rpx;
  1151. font-size: 30rpx;
  1152. border-radius: 10rpx;
  1153. .tpc-txt1 {
  1154. display: flex;
  1155. justify-content: flex-start;
  1156. // margin-left: 20rpx;
  1157. }
  1158. .tpc-txt2 {
  1159. display: flex;
  1160. align-items: center;
  1161. justify-content: flex-end;
  1162. // margin-right: 20rpx;
  1163. flex: 1;
  1164. .tpc-icon {
  1165. width: 30rpx;
  1166. height: 30rpx;
  1167. }
  1168. }
  1169. }
  1170. .task-progress-info {
  1171. padding: 10rpx;
  1172. font-size: 30rpx;
  1173. border-radius: 10rpx;
  1174. background-color: #f2f2f2;
  1175. }
  1176. }
  1177. .block {
  1178. width: 100%;
  1179. height: 100rpx;
  1180. margin-top: 5%;
  1181. }
  1182. .submit {
  1183. box-shadow: 0rpx 5rpx 40rpx #ccc;
  1184. width: 100%;
  1185. position: fixed;
  1186. bottom: 0rpx;
  1187. display: flex;
  1188. height: 90rpx;
  1189. padding-top: 2%;
  1190. background-color: #FFFFFF;
  1191. .submit_btn {
  1192. width: 60%;
  1193. background-color: #FCCF41;
  1194. border-radius: 20rpx;
  1195. font-size: 36rpx;
  1196. line-height: 200%;
  1197. letter-spacing: 10rpx;
  1198. height: 80%;
  1199. }
  1200. }
  1201. .line {
  1202. border-bottom: 1rpx solid #d5d5d5;
  1203. width: 98%;
  1204. margin: 10rpx 1%;
  1205. }
  1206. </style>