taskdetail.vue 42 KB

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