taskdetail.vue 39 KB

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