selectiondetail.vue 54 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260
  1. <template>
  2. <view style="position: relative;">
  3. <!-- 胶囊 -->
  4. <mvBar :mysNavConfig="mysNavConfig"></mvBar>
  5. <view :style="{marginTop:navH}"></view>
  6. <view class="" id="wrap0" v-show="!loading">
  7. <view class="home">
  8. <view class="uni-margin-wrap">
  9. <swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="3000"
  10. :duration="1000">
  11. <swiper-item v-for="item in carouselImages">
  12. <image :src="item.photo_url" mode="aspectFill" style="width: 100%;height: 100%;"
  13. @click="handlePreviewImage1(item.photo_url)" v-if="item.Symbol !== 3">
  14. </image>
  15. <video :src="item.photo_url" style="width: 100%;height: 100%;" v-if="item.Symbol === 3">
  16. </video>
  17. </swiper-item>
  18. </swiper>
  19. <view class="">
  20. <view class="Tasktext">
  21. <!-- <image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/pingtai2.png" mode=""> -->
  22. <image :src="selection.PlatformInfo.platform_icon" mode="">
  23. </image>
  24. <!-- <span>PUYU朴郁小树茶冻干茶粉PUYU朴郁小树茶冻干茶粉</span> -->
  25. <span>{{selection.selection_name}}</span>
  26. </view>
  27. <view class="introduction">
  28. <view class="rleft">
  29. <!-- <p>余<span style="color: #c4c1c1;">123567</span>件</p> -->
  30. <p style="margin-left: 20rpx; color:#787474 ;">售价</p>
  31. </view>
  32. <view class="rright">
  33. <!-- <p>距离任务有效期还有<span style="color: #f70606;">1107</span>天</p> -->
  34. <p v-if="selection.remain_days <= 0 && selection.remain_hours <= 0"><span
  35. style="color: #f70606;">任务已结束</span></p>
  36. <!-- <p v-else>距离任务有效期还有<span style="color: #f70606;">{{selection.remain_days}}</span>天</p> -->
  37. <p v-else><span style="color: #999999;">距离任务结束还有</span><span
  38. style="color: #f70606;">{{ selection.remain_days }}<span
  39. style="color: #999999;">天</span>{{ selection.remain_hours }}<span
  40. style="color: #999999;">小时</span></span></p>
  41. </view>
  42. </view>
  43. <!-- 售价具体金额和总销量 -->
  44. <view class="introduction1">
  45. <view class="rleft1">
  46. <!-- <p>余<span style="color: #c4c1c1;">123567</span>件</p> -->
  47. <p style="color:#787474 ;">¥{{product.product_price}}</p>
  48. </view>
  49. <view class="rright1">
  50. <!-- <p>距离任务有效期还有<span style="color: #f70606;">1107</span>天</p> -->
  51. <p style="color:#c4c4c4 ;">总销量:{{product.sales_count}}</p>
  52. </view>
  53. </view>
  54. <!-- 重要信息展示 -->
  55. <view>
  56. <!-- 样机高佣和公开 两个有色框 -->
  57. <view class="importentInfo1">
  58. <!-- 高佣 这个margin带着整个有色边框一起移动-->
  59. <view style="display: flex; margin: 25rpx 20rpx;">
  60. <!-- 与边框离开距离 这个margin仅带着内容移动 -->
  61. <view style="display: flex; margin-top: 10rpx;">
  62. <view
  63. style="background-color: #e99d42; width: 140rpx; height: 45rpx; border-radius: 15rpx; line-height: 40rpx;text-align: center;">
  64. <p style="color: white;font-size: 25rpx;">样叽高佣</p>
  65. </view>
  66. <view style="margin-left: 25rpx;line-height: 40rpx">
  67. <p style="color: red;font-size: 25rpx;">
  68. 每单赚:{{selection.high_estimated_income}}¥
  69. (佣金比例:{{product.exclusive_commission}}%)</p>
  70. </view>
  71. </view>
  72. </view>
  73. <!-- 公开 这个margin带着整个有色边框一起移动-->
  74. <view style="display: flex; margin: 25rpx 20rpx;">
  75. <!-- 与边框离开距离 这个margin仅带着内容移动 -->
  76. <view style="display: flex;">
  77. <view
  78. style="background-color: #9a9a9a; width: 140rpx; height: 45rpx; border-radius: 15rpx; line-height: 40rpx;text-align: center;">
  79. <p style="color: white;font-size: 25rpx;">公开</p>
  80. </view>
  81. <view style="margin-left: 25rpx;line-height: 40rpx">
  82. <p style="color: #444d5e;font-size: 25rpx;">
  83. 每单赚:{{selection.normal_estimated_income}}¥
  84. (佣金比例:{{product.public_commission}}%)</p>
  85. </view>
  86. </view>
  87. </view>
  88. </view>
  89. <!-- 悬赏任务 -->
  90. <view class="importentInfo2" v-if="selection.task_mode==1">
  91. <!-- 高佣 这个margin带着整个有色边框一起移动-->
  92. <view style="display: flex; margin: 25rpx 20rpx;">
  93. <!-- 与边框离开距离 这个margin仅带着内容移动 -->
  94. <view style="display: flex; margin-top: 10rpx;">
  95. <view
  96. style="background-color: #1f63ff; width: 140rpx; height: 45rpx; border-radius: 15rpx; line-height: 40rpx;text-align: center;">
  97. <p style="color: white;font-size: 25rpx;">悬赏任务</p>
  98. </view>
  99. <view style="margin-left: 25rpx;line-height: 45rpx">
  100. <p style="color: #444d5e;font-size: 25rpx;">
  101. 有效期内实际成交≥{{rewardStrategy.sale_actual}}单,额外奖励<span
  102. style="color: red;">¥{{rewardStrategy.per_reward}}</span>元
  103. </p>
  104. </view>
  105. </view>
  106. </view>
  107. </view>
  108. </view>
  109. </view>
  110. </view>
  111. </view>
  112. <!-- <view class="interval"></view> -->
  113. <view class="home" style="padding-top: 0;">
  114. <!-- <view>
  115. <view class="circularmark">
  116. <p>任务&领样形式</p>
  117. </view>
  118. <view class="markcontent">
  119. <p>任务形式:{{selection.show_task_mode}}</p>
  120. <p>领样形式:{{selection.show_sample_mode}}</p>
  121. </view>
  122. </view> -->
  123. <!-- 领样要求 -->
  124. <view class="" v-if="selection.sample_mode==1">
  125. <view class="circularmark">
  126. <p>领样要求</p>
  127. </view>
  128. <!-- 具体领样品要求(粉丝数量) -->
  129. <view class="markcontent">
  130. <view class="" v-for="item in freeStrategy">
  131. <p style="color: #9a9a9a ; margin-top: 20rpx; margin-bottom: 20rpx;">
  132. 粉丝量{{getFansLabel(item.fans_num)}},近30天橱窗销量≥{{item.sale_num}}单</p>
  133. </view>
  134. </view>
  135. <!-- 领样进度条 -->
  136. <view style="display: flex; justify-content: space-between;">
  137. <view style="font-size:22rpx;line-height:44rpx;margin-left: 27rpx;margin-right: 27rpx;">
  138. <p>样品余量:剩余<span style="color: red;">{{selection.remain_num}}</span>件</p>
  139. </view>
  140. <view style="width: 55%;margin: auto;">
  141. <liu-progressbar :progress="selection.sample_percent" color="#ffffff" :height="'40rpx'"
  142. dsColor="#e0e3ea" bgColor="#1f63ff" />
  143. </view>
  144. </view>
  145. </view>
  146. <!-- 悬赏要求 -->
  147. <view class="" v-if="selection.task_mode==1">
  148. <view class="circularmark">
  149. <p>悬赏条件</p>
  150. </view>
  151. <view class="markcontent">
  152. <view class="">
  153. <p style="color: #9a9a9a ;">
  154. 任务有效期内实际成交≥{{rewardStrategy.sale_actual}}单,额外奖励¥{{rewardStrategy.per_reward}}元</p>
  155. </view>
  156. </view>
  157. <!-- 悬赏进度条 -->
  158. <view style="display: flex; justify-content: space-between;">
  159. <!-- 假数据 -->
  160. <view style="font-size:22rpx;line-height:44rpx;margin-left: 27rpx;margin-right: 3rpx;">
  161. <p>悬赏奖金池:剩余<span style="color: red;">{{selection.remain_reward_poll}}</span>¥</p>
  162. </view>
  163. <view style="width: 55%;margin: auto;">
  164. <liu-progressbar :progress="selection.reward_percent" color="#ffffff" :height="'40rpx'"
  165. dsColor="#e0e3ea" bgColor="#1f63ff" />
  166. </view>
  167. </view>
  168. </view>
  169. <!-- <view class="">
  170. <view class="circularmark">
  171. <p>任务要求</p>
  172. </view>
  173. <view class="markcontent">
  174. <p>内容形式:{{selection.show_content_type}}</p>
  175. <p>带货链接:{{product.product_url|ellipsis}}
  176. <image :src="picture.icon_copy" mode="" class="copy-img"
  177. @click="handleCopy(selection.product_url)" />
  178. </p>
  179. </view>
  180. </view> -->
  181. </view>
  182. <view class="" id="wrap1">
  183. <view class="home" style="padding-top: 0;">
  184. <view class="">
  185. <view class="circularmark">
  186. <p>卖点总结</p>
  187. </view>
  188. <view class="markcontent">
  189. <text class="wvp" style="margin: 10rpx 0;" decode="true" user-select="true">
  190. {{selection.detail}} </text>
  191. </view>
  192. </view>
  193. </view>
  194. </view>
  195. <view class="" id="wrap2">
  196. <view class="home" style="padding-top: 0;">
  197. <view class="">
  198. <view class="circularmark">
  199. <p>BRIEF</p>
  200. </view>
  201. <view class="markcontent1">
  202. <view v-if="hasNoProjectPhoto">
  203. <view class="diagram" style="font-size: 32rpx;margin: 0 30rpx;">
  204. <!-- 可上传任务的brief,word、pfd等等 -->
  205. <p>暂无详情说明</p>
  206. </view>
  207. </view>
  208. <view v-else>
  209. <view v-if="briefType == 'pdf'">
  210. <view class="diagram-pdf" v-for="item in briefFiles">
  211. <image :src="picture.icon_pdf"></image>
  212. <p>{{item.file_name}}</p>
  213. <button type="default"
  214. @tap="downloadFile(item.file_url, item.file_name)">点击下载</button>
  215. </view>
  216. </view>
  217. <view v-else-if="briefType == 'doc' || briefType == 'docx'">
  218. <view class="diagram-pdf" v-for="item in briefFiles">
  219. <image :src="picture.icon_word"></image>
  220. <p>{{item.file_name}}</p>
  221. <button type="default"
  222. @tap="downloadFile(item.file_url, item.file_name)">点击下载</button>
  223. </view>
  224. </view>
  225. <view v-else class="diagram" v-for="item in briefFiles">
  226. <image :src="item.file_url" mode="widthFix"></image>
  227. </view>
  228. </view>
  229. </view>
  230. </view>
  231. </view>
  232. </view>
  233. <view class="" id="wrap2">
  234. <view class="home" style="padding-top: 0;">
  235. <view class="">
  236. <view class="circularmark">
  237. <p>素材</p>
  238. </view>
  239. <view class="markcontent1">
  240. <view v-if="isPhoto == 0">
  241. <view class="diagram" style="font-size: 32rpx;margin: 0 30rpx;">
  242. <p>无</p>
  243. </view>
  244. </view>
  245. <view style="display:flex;justify-content: center;" v-if="isPhoto == 2">
  246. <!-- <video class="videos" :src="url" @error="ErrorCallback" controls> </video> -->
  247. <video class="videos" :src="exampleImgs[0].file_url" @error="ErrorCallback" controls>
  248. </video>
  249. </view>
  250. <view style="display:flex;justify-content: center;" v-if="isPhoto == 2">
  251. <view type="default" @click="downloadVideo(exampleImgs[0].file_url)">下载视频</view>
  252. </view>
  253. <view class="diagram" v-for="item in exampleImgs" v-if="isPhoto == 1">
  254. <image :src="item.file_url" mode="widthFix"></image>
  255. </view>
  256. </view>
  257. </view>
  258. </view>
  259. </view>
  260. <view class="" id="wrap2">
  261. <view class="home" style="padding-top: 0;">
  262. <view class="">
  263. <view class="circularmark">
  264. <p>商品详情图</p>
  265. </view>
  266. <view class="markcontent1">
  267. <view v-if="hasNoProductPhoto">
  268. <view class="diagram" style="font-size: 32rpx;margin: 0 30rpx;">
  269. <p>无</p>
  270. </view>
  271. </view>
  272. <view class="diagram" v-for="item in carouselImages" v-else>
  273. <image :src="item.photo_url" mode="widthFix"></image>
  274. </view>
  275. </view>
  276. </view>
  277. </view>
  278. </view>
  279. <view class="interval2"></view>
  280. <view class="signup">
  281. <view style="display: flex;justify-content: space-between;align-items: center;">
  282. <view
  283. style="display: flex;flex-direction: column;justify-content: center;align-items: center;margin: 0 20rpx; "
  284. @click="toggle1('bottom')">
  285. <image style="width: 50rpx;height: 50rpx;" :src="picture.icon_share2"></image>
  286. <p style="font-size: 28rpx;">分享</p>
  287. </view>
  288. <view
  289. style="display: flex;flex-direction: column;justify-content: center;align-items: center;margin: 0 20rpx; "
  290. @click="handleCopy(selection.product_url)">
  291. <image style="width: 50rpx;height: 50rpx;" :src="picture.icon_copy2"></image>
  292. <p style="font-size: 28rpx;">带货链接</p>
  293. </view>
  294. </view>
  295. <!-- //添加橱窗 走添加橱窗流程 -->
  296. <view>
  297. <!-- <button type="default" class="but1" v-if="!isSign && !ddl" @click="addwindow">添加橱窗</button> -->
  298. <button type="default" class="but1" @click="addwindow">添加橱窗</button>
  299. <!-- <button type="default" class="but1" disabled v-if="isSign && !ddl">已报名</button> -->
  300. </view>
  301. <!-- //免费领样 判断是否有免费领样 -->
  302. <view v-if="selection.sample_mode==1">
  303. <button type="default" class="but1" :disabled="isDisabled" @click="submit()">{{buttonText}}</button>
  304. <!-- <button type="default" class="but1" :disabled="isDisabled"
  305. @click="submit()">666</button> -->
  306. </view>
  307. </view>
  308. <view>
  309. <!-- 底部普通弹窗 -->
  310. <uni-popup ref="popup1" background-color="#fff" @change="change" style="border-radius: 20rpx;">
  311. <view class="popup-content1" :class="{ 'popup-height': type === 'left' || type === 'right' }">
  312. <view
  313. style="display: flex; justify-content: space-around; margin-top: 10% ;margin-bottom: 3% ;">
  314. <view>
  315. <button class="tii2" data-name="shareBtn" open-type="share">
  316. <view class="circular" style="margin-top: 10% ;">
  317. <image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/taskw.png"
  318. mode=""></image>
  319. </view>
  320. <p class="tii">发送给朋友</p>
  321. </button>
  322. </view>
  323. <view>
  324. <button class="tii2" @click="toggle2('center')">
  325. <view class="circular" style="margin-top: 10% ;">
  326. <image src="https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/taske.png"
  327. mode=""></image>
  328. </view>
  329. <p class="tii">生成分享码</p>
  330. </button>
  331. </view>
  332. </view>
  333. <button type="default" class="errar" @click="cancel()">取消</button>
  334. </view>
  335. </uni-popup>
  336. </view>
  337. <uni-popup ref="popup2" class="share1" background-color="#fff" @change="change">
  338. <view class="popup-content">
  339. <image :src="canvasUrl" mode="widthFix" style="width: 300px;height: 420px;margin-top: 30rpx;">
  340. </image>
  341. <mosoweCanvas ref="mosoweCanvasComponents" @canvasImage="_canvasImage" :lists="lists" height="420"
  342. width="300" imgType="png" />
  343. <view class="" style="text-align: center;margin: 5% 0;">
  344. <button class="butmin" size="mini" @tap="saveImage">保存</button>
  345. </view>
  346. </view>
  347. </uni-popup>
  348. </view>
  349. </view>
  350. </template>
  351. <script>
  352. import mosoweCanvas from "@/components/mosowe-canvas-image/mosowe-canvas-image";
  353. import mvBar from "@/components/mys_navBar/mysNavBar";
  354. import zSwiper from '@/components/z-swiper/index.vue'; // npm安装
  355. import {
  356. getQueryString,
  357. fansview,
  358. money,
  359. getDaysBetweenDates,
  360. getDaysAndHoursBetweenDates
  361. } from '@/components/utils.js';
  362. import {
  363. saveImageToPhotosAlbum,
  364. showToast,
  365. downloadFile
  366. } from '@/uni_modules/sakura-canvas/js_sdk/util'
  367. export default {
  368. filters: {
  369. ellipsis(value) {
  370. if (!value) return "";
  371. if (value.length > 30) {
  372. return value.slice(0, 30) + "...";
  373. }
  374. return value;
  375. },
  376. },
  377. components: {
  378. mvBar,
  379. zSwiper,
  380. mosoweCanvas
  381. },
  382. data() {
  383. return {
  384. // nav
  385. navH: getApp().globalData.navHeight,
  386. picture: getApp().globalData.picture,
  387. mysNavConfig: {
  388. /* 占位开启 */
  389. // navPadding: true,
  390. /* 背景 */
  391. // bgColor: "#f8f8f8",
  392. /* 开启单页显示首页图标 */
  393. isHome: false,
  394. /* 固定导航 */
  395. navFixed: true,
  396. /* 标题 (屏幕中心居中 两边图标中心居中使用slot center1) */
  397. navTitle: {
  398. text: "任务详情",
  399. color: "",
  400. fontSize: "32rpx", // px upx rpx
  401. fontWeight: "", // 100 - 700
  402. },
  403. btnType: "type2",
  404. onLeftClick: '',
  405. /* type2 按钮 */
  406. type2Config: {
  407. // 左图标
  408. leftPath: "https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/png2.png",
  409. // 右图标
  410. rightPath: "https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/png4.png",
  411. // 圆角
  412. radius: "40rpx",
  413. },
  414. },
  415. isPhoto: 0,
  416. url: 'http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400',
  417. coopStrategy: "点击报名后显示",
  418. canvasUrl: '',
  419. hackReset: true,
  420. showWarning: false,
  421. arrowMargin: 0,
  422. cotainerMargin: 0,
  423. screenWidth: 0,
  424. ddl: false,
  425. loading: true,
  426. isSign: 0,
  427. strategy_id: 0,
  428. strategy: null,
  429. input_offer: 0.0,
  430. chooseBtn: 0,
  431. share: {
  432. title: "",
  433. path: '',
  434. imageUrl: '',
  435. desc: '',
  436. content: ''
  437. },
  438. mainPhoto: '',
  439. content_type_info: ["图文", "视频"],
  440. sample_mode_info: ["免费领样", "不提供样品"],
  441. task_mode_info: ["悬赏任务", "纯佣带货"],
  442. // 免费领养按钮条件
  443. buttonText: '免费领样',
  444. isDisabled: false,
  445. tabBarStyle: {},
  446. activeTab: 0,
  447. hei: '',
  448. hei1: '',
  449. topp0: '',
  450. topp1: '',
  451. topp2: '',
  452. scrollTop: '',
  453. activeColor: '#f2d22d',
  454. value: '',
  455. value1: '',
  456. coop_choice: [],
  457. type: 'center',
  458. type1: 'center',
  459. type2: 'center',
  460. item: {
  461. title: '0'
  462. },
  463. // 指示器样式
  464. mode: 'circle',
  465. indicatorPos: 'bottomCenter',
  466. carousel_images: ['https://img2.baidu.com/it/u=2141851239,1037607188&fm=26&fmt=auto&gp=0.jpg',
  467. 'https://horastar.obs.cn-east-3.myhuaweicloud.com/talent/home1.png',
  468. ],
  469. dotIndex: 0, //指示器索引
  470. dotFloatIndex: 0, //位置指示器索引
  471. // 视频轮播
  472. fullScreen: true,
  473. topFloat: true,
  474. fotterFloat: true,
  475. swiper: {
  476. margin: "150rpx",
  477. index: 0,
  478. list: [
  479. ]
  480. },
  481. tar: false,
  482. token: '',
  483. // 测试数据
  484. carouselImages: [{
  485. Symbol: 1,
  486. photo_url: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/backstage_upload/a69be940-e294-4dd4-9b09-d80274c75a15.png'
  487. },
  488. {
  489. Symbol: 2,
  490. photo_url: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/backstage_upload/e1a40241-a566-4227-9b3c-afefe88f4b69.png'
  491. },
  492. {
  493. Symbol: 2,
  494. photo_url: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/backstage_upload/deb21a8b-1517-4352-823b-b70e0cd6883d.png'
  495. },
  496. ],
  497. productUrl: 'https://haohuo.jinritemai.com/views/product/detail?id=3519429421675223776&origin_type=604',
  498. productDetail: 'puyu朴郁小树茶是朴郁公司的一款茶饮,采用先进的冻干粉末技术,将红茶/绿茶精华萃取并制作成冻干茶粉。外包装申请了国家专利,一花一树造型更符合时下追求品味的年轻人的审美。本品获得2021年国家创新美食银奖。',
  499. projectPhoto: [{
  500. Symbol: 1,
  501. photo_url: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/backstage_upload/a69be940-e294-4dd4-9b09-d80274c75a15.png'
  502. },
  503. {
  504. Symbol: 2,
  505. photo_url: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/backstage_upload/e1a40241-a566-4227-9b3c-afefe88f4b69.png'
  506. },
  507. {
  508. Symbol: 2,
  509. photo_url: 'https://horastar.obs.cn-east-3.myhuaweicloud.com/backstage_upload/deb21a8b-1517-4352-823b-b70e0cd6883d.png'
  510. },
  511. ],
  512. options: [{
  513. value: '1',
  514. label: '所有人均可领取'
  515. },
  516. {
  517. value: '2',
  518. label: '1w下'
  519. },
  520. {
  521. value: '3',
  522. label: '1w-10w'
  523. },
  524. {
  525. value: '4',
  526. label: '10w-100w'
  527. },
  528. {
  529. value: '5',
  530. label: '100w-500w'
  531. },
  532. {
  533. value: '6',
  534. label: '500w-1000w'
  535. },
  536. {
  537. value: '7',
  538. label: '1000w以上'
  539. },
  540. ],
  541. // 数据
  542. qrcode: '',
  543. selectionId: '',
  544. productId: '',
  545. talent: {},
  546. account: [],
  547. selection: {},
  548. product: {},
  549. younggeeProductPhoto: {},
  550. productPhoto: [],
  551. freeStrategy: [],
  552. rewardStrategy: [],
  553. briefFiles: [],
  554. exampleImgs: [],
  555. hasNoProductPhoto: true,
  556. hasNoProjectPhoto: true,
  557. briefType: "",
  558. youngLeadTeamId: "",
  559. youngTeamId: "",
  560. };
  561. },
  562. onShareAppMessage(res) {
  563. return {
  564. title: this.share.title,
  565. path: 'page_selectionsquare/selectiondetail/selectiondetail?id=' + this.selectionId,
  566. imageUrl: this.share.imageUrl,
  567. desc: '',
  568. content: '',
  569. success(res) {
  570. uni.showToast({
  571. title: '分享成功'
  572. })
  573. },
  574. fail(res) {
  575. uni.showToast({
  576. title: '分享失败',
  577. icon: 'none'
  578. })
  579. }
  580. }
  581. },
  582. computed: {
  583. lists: {
  584. get() {
  585. let tmplist = [
  586. // 大图
  587. {
  588. type: 'image',
  589. content: this.mainPhoto,
  590. width: 300,
  591. height: 320,
  592. x: 0,
  593. y: 0,
  594. },
  595. // 标题
  596. {
  597. type: 'text',
  598. content: this.selection.selection_name,
  599. color: '#333333',
  600. weight: 'bold',
  601. size: '12px',
  602. width: 200,
  603. height: 20,
  604. x: 20,
  605. y: 340,
  606. },
  607. // 文案1
  608. {
  609. type: 'text',
  610. content: "样品数量:" + this.selection.sample_num,
  611. color: '#333333',
  612. size: '10px',
  613. width: 60,
  614. height: 20,
  615. x: 20,
  616. y: 370,
  617. },
  618. // 文案2
  619. {
  620. type: 'text',
  621. content: "扫码立即报名",
  622. color: '#333333',
  623. size: '10px',
  624. width: 60,
  625. height: 20,
  626. x: 110,
  627. y: 370,
  628. },
  629. {
  630. type: 'text',
  631. content: "发布任务请登录",
  632. color: '#333333',
  633. size: '10px',
  634. width: 70,
  635. height: 20,
  636. x: 20,
  637. y: 400,
  638. },
  639. {
  640. type: 'text',
  641. content: "www.younggee.com",
  642. color: '#333333',
  643. size: '10px',
  644. // style: 'italic',
  645. width: 60,
  646. height: 20,
  647. x: 90,
  648. y: 400,
  649. },
  650. // 二维码
  651. {
  652. type: 'qr',
  653. content: this.qrcode,
  654. projectid: this.selectionId,
  655. width: 80,
  656. height: 80,
  657. x: 215,
  658. y: 325,
  659. },
  660. ]
  661. return tmplist
  662. },
  663. set() {}
  664. }
  665. },
  666. async created() {
  667. console.log("进入create")
  668. },
  669. async onShow() {
  670. console.log("进入onshow")
  671. // 判断登录
  672. await this.isLogin();
  673. if (this.token === '') {
  674. uni.showModal({
  675. content: '请先登录',
  676. success: function(res) {
  677. if (res.confirm) {
  678. uni.navigateTo({
  679. url: '/pages/login/login'
  680. });
  681. } else if (res.cancel) {
  682. uni.navigateBack();
  683. }
  684. }
  685. });
  686. } else {
  687. this.loading = true;
  688. uni.showLoading({
  689. title: '加载中'
  690. });
  691. this.getLeadTeam();
  692. this.getTalentInfo();
  693. await this.getSelectionDetail();
  694. await this.getTalentAccountInfo();
  695. if (this.account.length != 0) {
  696. await this.isSignUp();
  697. }
  698. await this.handleButtonText();
  699. this.loading = false;
  700. uni.hideLoading();
  701. }
  702. },
  703. // options是上一个页面传递的数据
  704. onLoad(options) {
  705. console.log("onLoad加载********** *")
  706. console.log("options:----->", options)
  707. this.selectionId = options.id
  708. this.productId = options.pid
  709. // const scene = decodeURIComponent(options.scene);
  710. // console.log("scene: ", scene)
  711. // if (scene != "undefined") {
  712. // this.selectionId = scene;
  713. // } else {
  714. // this.selectionId = options.id
  715. // this.productId = options.pid
  716. // }
  717. this.share.path = 'https://younggee.com/wxapp/taskdetail?action=taskdetail&id=' + this.selectionId
  718. console.log("share path: ", this.share.path)
  719. this.postlist()
  720. },
  721. onReady() { // 注意:想要拿到元素实例,需要在实例已经挂载到页面上才可以
  722. this.init();
  723. },
  724. methods: {
  725. handleButtonText() {
  726. console.log('into handleButtonText,,this.isSign--->', this.isSign)
  727. // 领样条件判断
  728. if (this.selection.sample_mode === 3) {
  729. // 未开放免费领样
  730. this.buttonText = '';
  731. this.isDisabled = true;
  732. } else if (this.selection.sample_mode === 1) {
  733. // 开放免费领样
  734. if (this.ddl) {
  735. // 任务已结束
  736. this.buttonText = '任务结束';
  737. this.isDisabled = true;
  738. } else if (this.selection.remain_num === 0) {
  739. // 样品库存不足
  740. this.buttonText = '免费领样';
  741. this.isDisabled = true;
  742. } else if (this.isSign === 1) {
  743. // 4. 若开放免费领样,但已经申请过,则按钮文字为“已申请”且置灰不可点击
  744. console.log("come in")
  745. this.buttonText = '已申请';
  746. this.isDisabled = true;
  747. } else {
  748. //不满足领取条件
  749. //授权过期
  750. console.log("其他情况")
  751. }
  752. } else {
  753. console.log("sample_mode不可为2")
  754. }
  755. },
  756. getFansLabel(fansNum) {
  757. const option = this.options.find(o => o.value === fansNum.toString());
  758. return option ? option.label : fansNum;
  759. },
  760. handleCopy(content) {
  761. wx.setClipboardData({
  762. data: content,
  763. success: function(res) {
  764. console.log("复制成功");
  765. }
  766. });
  767. },
  768. handlePreviewImage1(item) {
  769. var urls = [];
  770. this.carouselImages.forEach(function(image) {
  771. urls.push(image.photo_url);
  772. });
  773. wx.previewImage({
  774. current: item, // 当前显示图片的http链接
  775. urls: urls
  776. })
  777. },
  778. init() {
  779. let rect = uni.getMenuButtonBoundingClientRect();
  780. let screenWidth = uni.getSystemInfoSync().screenWidth;
  781. this.arrowMargin = rect.width * 0.75 + 4;
  782. this.cotainerMargin = screenWidth - rect.right;
  783. },
  784. // 判断登陆是否过期
  785. isLogin() {
  786. return this.$https.get('/youngee/c/t/g/is-login')
  787. .then(res => {
  788. console.log('进入详情页,判断是否登录res:****** ', res)
  789. if (res.data.code === 403) {
  790. // 登陆已失效
  791. this.token = ""
  792. } else {
  793. this.token = uni.getStorageSync('token')
  794. }
  795. })
  796. },
  797. postlist() {
  798. // uni.showModal({
  799. // content: "项目id为:"+this.projectid,
  800. // })
  801. this.$https.post('/youngee/c/p/get-qrcode', {
  802. scene: this.selectionId,
  803. page: 'page_selectionsquare/selectiondetail/selectiondetail',
  804. // scene: this.taskid,
  805. // page: 'pages/task/taskdetails',
  806. })
  807. .then(res => {
  808. console.log(res)
  809. this.qrcode = 'data:image/png;base64,' + res.data.data;
  810. })
  811. },
  812. getLeadTeam() {
  813. this.$https.get('/youngee/c/t/g/get-lead-young-team-id' +
  814. "?" +
  815. "project_type=2" +
  816. "&selection_id" +
  817. "=" +
  818. this.selectionId
  819. ).then(res => {
  820. if (res.data.code === 0) {
  821. if (res.data.data.num != 0) {
  822. this.youngLeadTeamId = res.data.data.team_id
  823. }
  824. }
  825. })
  826. },
  827. getSelectionDetail() {
  828. console.log('into getSelectionDetail')
  829. return this.$https.get('/youngee/c/t/g/get-selection-detail' +
  830. "?" +
  831. "selectionid" +
  832. "=" +
  833. this.selectionId +
  834. "&" +
  835. "productid" +
  836. "=" +
  837. this.productId
  838. ).then(res => {
  839. if (res.data.code === 0) {
  840. this.selection = res.data.data
  841. console.log("this.selection---->",this.selection)
  842. this.product = this.selection.YounggeeProduct[0]
  843. this.younggeeProductPhoto = this.selection.YounggeeProductPhoto
  844. this.freeStrategy = this.selection.FreeStrategy
  845. if (this.selection.RewardStrategy[0] != null) {
  846. this.rewardStrategy = this.selection.RewardStrategy[0]
  847. }
  848. // if (this.selection.reward_condition === "")
  849. // this.selection.reward_condition = "无"
  850. this.share.title = this.selection.selection_name
  851. // 提取分享图、主图、轮播图
  852. this.carouselImages = []
  853. for (let i = 0; i < this.younggeeProductPhoto.length; i++) {
  854. if (this.younggeeProductPhoto[i].Symbol === 1) {
  855. this.mainPhoto = this.younggeeProductPhoto[i].photo_url
  856. this.share.imageUrl = this.mainPhoto
  857. }
  858. if (this.younggeeProductPhoto[i].Symbol !== 3) {
  859. this.carouselImages.push(this.younggeeProductPhoto[i])
  860. }
  861. }
  862. console.log("carouselImages----->", this.carouselImages)
  863. this.hasNoProductPhoto = this.carouselImages.length === 0 ? true : false;
  864. // brief、素材图
  865. console.table(this.selection.SelectionBrief)
  866. this.hasNoProjectPhoto = this.selection.SelectionBrief === null ? true : false;
  867. if (!this.hasNoProjectPhoto) {
  868. for (let i = 0; i < this.selection.SelectionBrief.length; ++i) {
  869. let url = this.selection.SelectionBrief[i].file_url
  870. this.briefType = url.split('.').pop()
  871. }
  872. }
  873. this.briefFiles = this.selection.SelectionBrief
  874. this.exampleImgs = this.selection.SelectionExample
  875. if (this.exampleImgs !== null) {
  876. for (let i = 0; i < this.exampleImgs.length; i++) {
  877. if (this.exampleImgs[i].file_url.endsWith("jpg") || this.exampleImgs[i].file_url
  878. .endsWith("png")) {
  879. this.isPhoto = 1
  880. } else {
  881. this.isPhoto = 2
  882. }
  883. }
  884. } else {
  885. this.isPhoto = 0
  886. }
  887. //样品总数量进度条
  888. //动态绑定属性
  889. this.selection.high_estimated_income = this.product.exclusive_commission * this.product
  890. .product_price / 100
  891. this.selection.normal_estimated_income = this.product.public_commission * this.product
  892. .product_price / 100
  893. //领样进度
  894. this.selection.sample_percent = (this.selection.remain_num / this.selection.sample_num) *
  895. 100
  896. //悬赏进度
  897. this.selection.reward_percent = (this.selection.remain_reward_poll / this.rewardStrategy
  898. .reward) *
  899. 100
  900. // this.selection.task_reward=this.selection.task_reward
  901. console.log("this.selection----->", this.selection)
  902. // 判断任务是否已结束
  903. var timeNow = new Date()
  904. var ddl = new Date(this.selection.task_ddl.replace(/-/g, "/"));
  905. // this.selection.remain_days = getDaysBetweenDates(timeNow, ddl)
  906. var diff = getDaysAndHoursBetweenDates(timeNow, ddl);
  907. this.selection.remain_days = diff.days;
  908. this.selection.remain_hours = diff.hours;
  909. //判断任务是否结束
  910. this.ddl = (this.selection.remain_days <= 0 && this.selection.remain_hours <= 0) ? true :
  911. false
  912. }
  913. })
  914. },
  915. // 达人信息
  916. getTalentInfo() {
  917. return this.$https.get('/youngee/c/t/g/get-talent-info')
  918. .then(res => {
  919. this.talent = res.data.data
  920. console.log("this.talent---->", this.talent)
  921. })
  922. },
  923. //账号信息
  924. // res 包含了从 /youngee/c/t/g/get-talent-account 路径获取的响应数据
  925. getTalentAccountInfo() {
  926. console.log("into getTalentAccountInfo")
  927. return this.$https.get('/youngee/c/t/g/get-talent-account')
  928. .then(res => {
  929. var accounts = res.data.data
  930. this.account = []
  931. // -3表示未绑定任何平台
  932. if (res.data.code != -3) {
  933. for (var i = 0; i < accounts.length; i++) {
  934. console.log("account数组——————: ", accounts[i])
  935. // 此带货商品的平台与用户绑定的三方平台一致,才会加入到this.account中
  936. if (this.selection.platform === accounts[i].platform_id) {
  937. accounts[i].show_fans_count = fansview(accounts[i].fans_count)
  938. this.account.push(accounts[i])
  939. }
  940. }
  941. }
  942. })
  943. // console.log("account数组——————: ",res)
  944. },
  945. isSignUp() {
  946. console.log("into isSignUp")
  947. return this.$https.get('/youngee/c/t/g/is-sign-up-sec-task' +
  948. "?" +
  949. "selection_id" +
  950. "=" +
  951. this.selectionId)
  952. .then(res => {
  953. let task;
  954. if (res.data.code === 0) {
  955. this.isSign = res.data.data.is_sign;
  956. console.log("is-sign-up-sec-task--->", this.isSign)
  957. task = res.data.data.sec_task_info
  958. if (this.isSign === 1) {
  959. this.youngLeadTeamId = task.lead_team_id
  960. this.youngTeamId = task.team_id
  961. }
  962. }
  963. })
  964. },
  965. onPageScroll(res) {
  966. uni.$emit('onPageScroll', res.scrollTop);
  967. this.scrollTop = res.scrollTop;
  968. // console.log(res.scrollTop);
  969. if (res.scrollTop <= this.topp1 - this.hei1) {
  970. // console.log(0)
  971. this.activeTab = 0
  972. }
  973. if (res.scrollTop > this.topp1 - this.hei1 && res.scrollTop < this.topp2 - this.hei1) {
  974. // console.log(1)
  975. this.activeTab = 1
  976. }
  977. if (res.scrollTop > this.topp2 - this.hei1) {
  978. // console.log(2)
  979. this.activeTab = 2
  980. }
  981. },
  982. //获取节点离顶部高度
  983. getInfo() {
  984. const query = uni.createSelectorQuery().in(this);
  985. query.select('#wrap0').boundingClientRect(data => {
  986. this.topp0 = data.top
  987. }).exec();
  988. query.select('#wrap1').boundingClientRect(data => {
  989. this.topp1 = data.top
  990. }).exec();
  991. query.select('#wrap2').boundingClientRect(data => {
  992. this.topp2 = data.top
  993. // console.log(this.topp2)
  994. }).exec();
  995. query.select('#wap').boundingClientRect(data => {
  996. // console.log(data)
  997. this.hei = data.height
  998. this.tabBarStyle = {
  999. height: data.height + data.height + 'px',
  1000. width: '100% ',
  1001. }
  1002. }).exec();
  1003. query.select('#wa').boundingClientRect(data => {
  1004. // console.log(data)
  1005. this.hei1 = data.height
  1006. }).exec();
  1007. },
  1008. //视频轮播
  1009. effect3dMarginMethed() {
  1010. this.effect3dMargin++
  1011. },
  1012. //swiper滑动事件
  1013. swiperChange: function(e) {
  1014. this.swiper.index = e.detail.current;
  1015. },
  1016. //底部弹出层
  1017. change(e) {
  1018. console.log('当前模式:' + e.type + ',状态:' + e.show);
  1019. },
  1020. // 添加橱窗
  1021. addwindow() {
  1022. console.log('ino addwindow')
  1023. },
  1024. // 免费领样
  1025. submit(type) {
  1026. // this在页面刚展示时,已经被赋值了必要的信息
  1027. let that = this
  1028. //是否绑定收获地址
  1029. if (that.talent.is_bind_location === 0) {
  1030. // 前往个人信息绑定三合一界面。。
  1031. uni.showModal({
  1032. content: '请先绑定个人信息',
  1033. success: function(res) {
  1034. if (res.confirm) {
  1035. if (that.account.length === 0) {
  1036. uni.navigateTo({
  1037. url: '/page_tasksquare/bindinfo?platform_id=' +
  1038. that
  1039. .selection.platform
  1040. })
  1041. } else {
  1042. uni.navigateTo({
  1043. url: '/page_tasksquare/bindinfo?platform_id=' +
  1044. that.selection.platform +
  1045. '&account_id=' +
  1046. that.account[0].account_id
  1047. })
  1048. };
  1049. } else if (res.cancel) {
  1050. console.log('用户点击取消');
  1051. }
  1052. }
  1053. });
  1054. } else if (that.account.length === 0) {
  1055. uni.showModal({
  1056. content: '您尚未绑定抖音账号,请绑定抖音账号后重试',
  1057. confirmText: '去绑定',
  1058. success: function(res) {
  1059. if (res.confirm) {
  1060. //绑定抖音平台
  1061. if (that.selection.platform == 2) {
  1062. uni.navigateTo({
  1063. url: '/page_mycenter/bindaccounts/douyinbind'
  1064. });
  1065. } else {
  1066. uni.navigateTo({
  1067. url: '/page_mycenter/myinformation/bindaccount?platform_id=' +
  1068. that.selection.platform
  1069. });
  1070. };
  1071. } else if (res.cancel) {
  1072. console.log('用户点击取消');
  1073. }
  1074. }
  1075. });
  1076. } else {
  1077. var data = {
  1078. selectionId: this.selectionId,
  1079. selection: this.selection,
  1080. youngTeamId: this.youngTeamId,
  1081. youngLeadTeamId: this.youngLeadTeamId,
  1082. }
  1083. data = JSON.stringify(data)
  1084. console.log("data: ", data)
  1085. uni.navigateTo({
  1086. url: '/page_selectionsquare/selectiondetail/information?textObj=' +
  1087. encodeURIComponent(
  1088. data)
  1089. })
  1090. }
  1091. },
  1092. // 下载视频
  1093. downloadVideo(url) {
  1094. // 自定义 文件名称
  1095. let fileName = new Date().valueOf();
  1096. const task = uni.downloadFile({
  1097. url: url,
  1098. filePath: wx.env.USER_DATA_PATH + '/' + fileName + '.mp4', // 拼接本地文件路径
  1099. success: (res) => {
  1100. let filePath = res.filePath
  1101. uni.saveVideoToPhotosAlbum({
  1102. filePath,
  1103. success: (res) => {
  1104. uni.showToast({
  1105. title: '下载成功',
  1106. icon: 'success',
  1107. })
  1108. let fileMgr = wx.getFileSystemManager();
  1109. // 删除本地文件
  1110. fileMgr.unlink({
  1111. filePath: wx.env.USER_DATA_PATH + '/' +
  1112. fileName +
  1113. '.mp4',
  1114. success: function(r) {
  1115. console.log(
  1116. 'unlink-getFileSystemManager'
  1117. )
  1118. console.log(r)
  1119. },
  1120. })
  1121. },
  1122. complete(res) {
  1123. console.log('saveVideoToPhotosAlbum-complete')
  1124. console.log(res)
  1125. }
  1126. })
  1127. },
  1128. complete(res) {
  1129. console.log('downloadFiledownloadFiledownloadFiledownloadFiledownloadFile')
  1130. console.log(res)
  1131. uni.hideLoading()
  1132. }
  1133. })
  1134. task.onProgressUpdate(this.onProgress)
  1135. },
  1136. // 提示下载进度
  1137. onProgress(res) {
  1138. uni.showToast({
  1139. icon: 'loading',
  1140. mask: true,
  1141. title: res.progress + "%"
  1142. })
  1143. },
  1144. toggle1(type) {
  1145. // if (this.youngLeadTeamId === "") {
  1146. // this.$https.post('/youngee/c/t/p/add-young-team', {
  1147. // selection_id: this.selectionId,
  1148. // project_type: 2,
  1149. // })
  1150. // .then(res => {
  1151. // console.log(res)
  1152. // this.youngLeadTeamId = res.data.data;
  1153. // })
  1154. // }
  1155. this.type1 = type
  1156. // open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
  1157. this.$refs.popup1.open(type)
  1158. },
  1159. cancel() {
  1160. this.$refs.popup1.close()
  1161. },
  1162. // 更新账号
  1163. Reset() {
  1164. console.log("Reset func running")
  1165. uni.navigateTo({
  1166. url: '/pages/mycenter/myinformation/bindaccount?platform_id=' + this
  1167. .information
  1168. .project_platform + '&account_id=' + this.account[0].account_id,
  1169. success(res) {
  1170. console.log(res);
  1171. },
  1172. fail(err) {
  1173. console.log(err);
  1174. }
  1175. });
  1176. },
  1177. //进入信息确认页面
  1178. determine() {
  1179. console.log(this.strategy_id)
  1180. if (this.strategy_id === 0 || this.strategy === null) {
  1181. this.showWarning = true;
  1182. setTimeout(() => {
  1183. this.showWarning = false;
  1184. }, 2000)
  1185. return
  1186. }
  1187. let index = 0;
  1188. for (let i = 0; i < this.coop_choice.length; ++i) {
  1189. if (this.strategy_id === this.coop_choice[i].strategy_id) {
  1190. index = i
  1191. }
  1192. }
  1193. if (this.account[0].fans_count < this.strategy.followers_low) {
  1194. this.coop_choice[index].warningText = "粉丝量不符合报名条件"
  1195. this.coop_choice[index].showWarning = true;
  1196. this.hackReset = false;
  1197. this.hackReset = true;
  1198. setTimeout(() => {
  1199. this.coop_choice[index].showWarning = false;
  1200. this.hackReset = false;
  1201. this.hackReset = true;
  1202. }, 2000)
  1203. } else if (this.strategy.fee_form === 3 && (this.strategy.offer === 0 || this.strategy
  1204. .offer === null)) {
  1205. this.coop_choice[index].warningText = "请填写自报价金额"
  1206. this.coop_choice[index].showWarning = true;
  1207. this.hackReset = false;
  1208. this.hackReset = true;
  1209. setTimeout(() => {
  1210. this.coop_choice[index].showWarning = false;
  1211. this.hackReset = false;
  1212. this.hackReset = true;
  1213. }, 2000)
  1214. } else {
  1215. this.$refs.popup.close()
  1216. this.strategy.offer = parseInt(this.strategy.offer)
  1217. this.strategy.showOffer = money(this.strategy.offer)
  1218. var data = {
  1219. projectid: this.projectid,
  1220. information: this.information,
  1221. account: this.account[0].account_id,
  1222. strategy: this.strategy,
  1223. },
  1224. data = JSON.stringify(data)
  1225. console.log("data")
  1226. console.log(data)
  1227. uni.navigateTo({
  1228. url: '/pages/tasksquare/information?textObj=' + encodeURIComponent(data)
  1229. });
  1230. }
  1231. },
  1232. beginCanvas() {
  1233. this.$refs.mosoweCanvasComponents.createCanvas();
  1234. },
  1235. _canvasImage(e) {
  1236. console.log("url", e)
  1237. this.canvasUrl = e;
  1238. },
  1239. // 保存图片
  1240. async saveImage() {
  1241. let {
  1242. canvasUrl
  1243. } = this
  1244. let res = await saveImageToPhotosAlbum(canvasUrl)
  1245. if (!res.success) return
  1246. showToast('保存成功')
  1247. this.$refs.popup2.close()
  1248. },
  1249. toggle2(type) {
  1250. if (this.canvasUrl !== '') {
  1251. this.type2 = type
  1252. // open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
  1253. this.$refs.popup2.open(type)
  1254. this.$refs.popup1.close()
  1255. } else {
  1256. this.beginCanvas()
  1257. this.type2 = type
  1258. // open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
  1259. this.$refs.popup2.open(type)
  1260. this.$refs.popup1.close()
  1261. }
  1262. },
  1263. deletContract() {
  1264. try {
  1265. let file = wx.getFileSystemManager();
  1266. file.readdir({
  1267. dirPath: `${wx.env.USER_DATA_PATH}`,
  1268. success: res => {
  1269. console.log(res);
  1270. if (res.files.length > 2) {
  1271. file.unlink({
  1272. filePath: `${wx.env.USER_DATA_PATH}/${res.files[0]}`,
  1273. complete: res => {
  1274. }
  1275. })
  1276. }
  1277. }
  1278. })
  1279. } catch (error) {
  1280. }
  1281. },
  1282. downloadFile(url, file) {
  1283. let that = this
  1284. console.log(url, file)
  1285. // const fileName = url.split('/').pop()
  1286. const newPath = `${wx.env.USER_DATA_PATH}/${file}`;
  1287. that.deletContract();
  1288. wx.showLoading({
  1289. title: '正在打开',
  1290. mask: true
  1291. })
  1292. wx.downloadFile({
  1293. url: url,
  1294. filePath: newPath,
  1295. header: {},
  1296. success: function(res) {
  1297. var filePath = res.filePath;
  1298. console.log(filePath);
  1299. wx.openDocument({
  1300. filePath: filePath,
  1301. showMenu: true,
  1302. success: function(res) {
  1303. console.log('打开文档成功')
  1304. wx.hideLoading()
  1305. },
  1306. fail: function(res) {
  1307. console.log(res);
  1308. wx.hideLoading()
  1309. },
  1310. complete: function(res) {
  1311. console.log(res);
  1312. }
  1313. })
  1314. },
  1315. fail: function(res) {
  1316. console.log('文件下载失败');
  1317. console.log(res)
  1318. },
  1319. complete: function(res) {},
  1320. })
  1321. },
  1322. }
  1323. };
  1324. </script>
  1325. <style>
  1326. /deep/ .share1 .uni-popup .uni-popup__wrapper {
  1327. width: 300px !important;
  1328. /* height: 500px !important; */
  1329. display: flex;
  1330. flex-direction: column;
  1331. align-items: center;
  1332. border-radius: 15rpx !important;
  1333. }
  1334. /deep/ .share.uni-popup .uni-popup__wrapper {
  1335. width: 70%;
  1336. border-radius: 15rpx;
  1337. }
  1338. </style>
  1339. <style lang="scss" scoped>
  1340. text {
  1341. font-size: 24rpx;
  1342. }
  1343. #coop_box {
  1344. // display: flex;
  1345. margin-top: 15rpx;
  1346. }
  1347. #coop_box .coop_box_btn {
  1348. display: flex;
  1349. flex-direction: column;
  1350. justify-content: center;
  1351. align-items: center;
  1352. // width: 700rpx;
  1353. background-color: #f4f4f4;
  1354. border-radius: 15rpx;
  1355. font-size: 30rpx;
  1356. text-align: center;
  1357. cursor: pointer;
  1358. margin: 40rpx 0;
  1359. padding: auto 10rpx;
  1360. }
  1361. .borderColor {
  1362. border: 2px solid #f7d43c !important;
  1363. }
  1364. .offer_input {
  1365. width: 120rpx;
  1366. border: 1px solid #cccccc;
  1367. }
  1368. .wvp {
  1369. color: #000;
  1370. margin: 0 5rpx;
  1371. }
  1372. .wvp1 {
  1373. padding: 0 30rpx;
  1374. border-radius: 10rpx;
  1375. margin: 0 10rpx;
  1376. background-color: #f2d22d;
  1377. border: 10rpx;
  1378. }
  1379. .my-canvas {
  1380. position: fixed;
  1381. top: -99999999999rpx;
  1382. left: -99999999999rpx;
  1383. z-index: -99999999999;
  1384. opacity: 0;
  1385. }
  1386. .poster {
  1387. width: 100vw;
  1388. height: 100vh;
  1389. display: flex;
  1390. flex-flow: column nowrap;
  1391. justify-content: center;
  1392. overflow: hidden;
  1393. }
  1394. .butmin {
  1395. width: 200rpx;
  1396. height: 65rpx;
  1397. background-color: #f2d22d;
  1398. border-radius: 20rpx;
  1399. font-size: 36rpx;
  1400. line-height: 2;
  1401. }
  1402. //视频轮播
  1403. .full {
  1404. position: relative;
  1405. .btns {
  1406. position: absolute;
  1407. background-color: rgba(255, 255, 255, 0.5);
  1408. z-index: 1;
  1409. left: 100rpx;
  1410. top: 50rpx;
  1411. right: 100rpx;
  1412. display: flex;
  1413. justify-content: space-around;
  1414. flex-wrap: wrap;
  1415. >view {
  1416. height: 60rpx;
  1417. line-height: 60rpx;
  1418. text-align: center;
  1419. padding: 0 20rpx;
  1420. }
  1421. &.full {
  1422. position: relative;
  1423. left: 0;
  1424. right: 0;
  1425. >view {
  1426. height: 60rpx;
  1427. line-height: 60rpx;
  1428. text-align: center;
  1429. padding: 0 20rpx;
  1430. background-color: rgba(0, 0, 0, 0.1);
  1431. margin-bottom: 10rpx;
  1432. }
  1433. }
  1434. }
  1435. }
  1436. //轮播图
  1437. page {
  1438. background-color: #fff;
  1439. }
  1440. .top-swiper {
  1441. margin-bottom: 30rpx;
  1442. .bg {
  1443. padding-top: var(--status-bar-height);
  1444. box-sizing: content-box;
  1445. width: 100%;
  1446. position: relative;
  1447. .image {
  1448. box-sizing: content-box;
  1449. position: absolute;
  1450. z-index: 1;
  1451. top: 0;
  1452. left: 0;
  1453. width: 100%;
  1454. height: 100%;
  1455. overflow: hidden;
  1456. &::after {
  1457. content: '';
  1458. position: absolute;
  1459. width: 100%;
  1460. height: 100%;
  1461. z-index: 1;
  1462. bottom: 0;
  1463. left: 0;
  1464. height: 65%;
  1465. background-image: linear-gradient(to bottom, transparent, #FFF);
  1466. }
  1467. >image {
  1468. position: absolute;
  1469. box-sizing: content-box;
  1470. padding: 60px;
  1471. top: 0;
  1472. left: 0;
  1473. width: 100%;
  1474. height: 80%;
  1475. top: -60px;
  1476. left: -60px;
  1477. filter: blur(50px);
  1478. }
  1479. }
  1480. }
  1481. .box {
  1482. padding-top: var(--status-bar-height);
  1483. box-sizing: content-box;
  1484. // position: absolute;
  1485. z-index: 5;
  1486. top: 0;
  1487. left: 0;
  1488. width: 100%;
  1489. height: auto;
  1490. }
  1491. .swiper {
  1492. height: 450rpx;
  1493. margin: 0 20rpx;
  1494. .le-img {
  1495. width: 100%;
  1496. height: 100%;
  1497. display: block;
  1498. transform: scale(0.8);
  1499. transition: transform 0.3s ease-in-out 0s;
  1500. border-radius: 4px;
  1501. &.le-active {
  1502. transform: scale(1);
  1503. }
  1504. }
  1505. }
  1506. }
  1507. //其他的
  1508. /deep/ .uni-data-checklist .checklist-group .checklist-box {
  1509. border-radius: 20rpx !important;
  1510. padding: 8rpx 30rpx !important;
  1511. border: 0 !important;
  1512. }
  1513. /deep/ .uni-data-checklist .checklist-group .checklist-box .checklist-content .checklist-text {
  1514. font-size: 24rpx;
  1515. color: #333333;
  1516. }
  1517. .butto {
  1518. text-align: center;
  1519. }
  1520. .option {
  1521. padding: 20rpx;
  1522. }
  1523. //轮播图
  1524. .uni-margin-wrap {
  1525. width: 690rpx;
  1526. width: 100%;
  1527. }
  1528. .swiper {
  1529. height: 750rpx;
  1530. display: flex;
  1531. justify-content: center;
  1532. }
  1533. .swiper-item {
  1534. display: block;
  1535. width: 100%;
  1536. height: 750rpx;
  1537. line-height: 750rpx;
  1538. text-align: center;
  1539. }
  1540. .swiper-list {
  1541. margin-bottom: 0;
  1542. }
  1543. .uni-common-mt {
  1544. margin-top: 60rpx;
  1545. position: relative;
  1546. }
  1547. .info {
  1548. position: absolute;
  1549. right: 20rpx;
  1550. }
  1551. .uni-padding-wrap {
  1552. width: 550rpx;
  1553. padding: 0 100rpx;
  1554. }
  1555. .Tasktext {
  1556. // padding-top: 5% ;
  1557. padding: 0 0 0 1%;
  1558. // height: 80rpx;
  1559. margin-top: 2%;
  1560. }
  1561. .Tasktext span {
  1562. color: #333333;
  1563. font-size: 100%;
  1564. font-weight: 550;
  1565. text-indent: 2em;
  1566. }
  1567. .Tasktext image {
  1568. vertical-align: middle;
  1569. width: 50rpx;
  1570. height: 50rpx;
  1571. display: inline-block;
  1572. padding-right: 14rpx;
  1573. }
  1574. .TitleText {
  1575. height: 30rpx;
  1576. background-color: #FDD442;
  1577. border-radius: 20rpx;
  1578. display: inline-block;
  1579. padding: 0rpx 20rpx 0rpx 20rpx;
  1580. line-height: 30rpx;
  1581. margin-right: 20rpx;
  1582. margin-top: 6%;
  1583. }
  1584. .TitleText p {
  1585. color: #C49A0A;
  1586. font-size: 50%;
  1587. }
  1588. .introduction {
  1589. width: 90%;
  1590. margin: 0 auto;
  1591. display: flex;
  1592. justify-content: space-between;
  1593. margin-top: 2%;
  1594. }
  1595. .introduction1 {
  1596. width: 90%;
  1597. margin: 0 auto;
  1598. display: flex;
  1599. justify-content: space-between;
  1600. margin-top: 2%;
  1601. }
  1602. .rleft p {
  1603. font-size: 24rpx;
  1604. }
  1605. .rright p {
  1606. font-size: 24rpx;
  1607. }
  1608. .rleft1 p {
  1609. font-size: 30rpx;
  1610. }
  1611. .rright1 p {
  1612. font-size: 24rpx;
  1613. line-height: 45rpx
  1614. }
  1615. .importentInfo1 {
  1616. margin: 25rpx 11rpx;
  1617. background-color: #fbedd9;
  1618. border-radius: 8px;
  1619. width: 700rpx;
  1620. height: 130rpx;
  1621. }
  1622. .importentInfo2 {
  1623. margin: 2rpx 11rpx;
  1624. background-color: #bbd0ff;
  1625. border-radius: 8px;
  1626. width: 700rpx;
  1627. height: 65rpx;
  1628. }
  1629. .projectinfo {
  1630. margin: 30rpx 0;
  1631. display: flex;
  1632. justify-content: space-around;
  1633. }
  1634. .projectinfotxt {
  1635. display: flex;
  1636. flex-direction: column;
  1637. align-items: center;
  1638. justify-content: center;
  1639. }
  1640. .projectinfotxt p {
  1641. color: #767272;
  1642. font-size: 32rpx;
  1643. margin: 5rpx 0;
  1644. }
  1645. .interval {
  1646. width: 100%;
  1647. height: 40rpx;
  1648. background-color: #E4E4E4;
  1649. margin-top: 5%;
  1650. }
  1651. .circularmark {
  1652. // display: inline-block;
  1653. width: 250rpx;
  1654. margin: 10rpx auto;
  1655. padding: 10rpx;
  1656. background-color: #f2d22d;
  1657. border-radius: 10rpx;
  1658. position: relative;
  1659. margin-top: 30rpx;
  1660. }
  1661. .circularmark p {
  1662. font-size: 85%;
  1663. text-align: center;
  1664. font-weight: 800;
  1665. }
  1666. .circularmark image {
  1667. width: 60rpx;
  1668. height: 68rpx;
  1669. position: absolute;
  1670. top: -30%;
  1671. left: -10%;
  1672. }
  1673. .btnn {
  1674. background-color: #3296FA;
  1675. border-radius: 20rpx;
  1676. font-size: 25rpx;
  1677. line-height: 34rpx;
  1678. }
  1679. .markcontent {
  1680. // width: 100%;
  1681. // background-color: #E4E4E4;
  1682. margin: 0 30rpx;
  1683. border-radius: 20rpx;
  1684. padding-top: 2%;
  1685. padding-bottom: 2%;
  1686. }
  1687. .markcontent p {
  1688. font-size: 24rpx;
  1689. margin: 10rpx 0;
  1690. }
  1691. .markcontent span {
  1692. font-size: 24rpx;
  1693. // color: #333333;
  1694. // margin: 3% ;
  1695. }
  1696. .getsamcondi {
  1697. display: flex;
  1698. justify-content: space-between;
  1699. align-items: center;
  1700. }
  1701. .interval2 {
  1702. width: 100%;
  1703. height: 100rpx;
  1704. background-color: #E4E4E4;
  1705. margin-top: 5%;
  1706. }
  1707. .markcontent1 {
  1708. width: 100%;
  1709. border-radius: 20rpx;
  1710. padding-top: 2%;
  1711. padding-bottom: 2%;
  1712. }
  1713. .markcontent1 p {
  1714. font-size: 24rpx;
  1715. // color: #333333;
  1716. // margin: 3% ;
  1717. // text-indent: 2em;
  1718. }
  1719. .trademark {
  1720. width: 120rpx;
  1721. height: 120rpx;
  1722. border-radius: 50%;
  1723. background-color: #f2d22d;
  1724. margin: 0 auto;
  1725. }
  1726. .trademark image {
  1727. width: 100%;
  1728. height: 100%;
  1729. }
  1730. .diagram {
  1731. width: 100%;
  1732. // height: 1000rpx;
  1733. }
  1734. .diagram image {
  1735. width: 100%;
  1736. // height: 100% ;
  1737. }
  1738. .diagram-pdf {
  1739. padding: 0 20rpx;
  1740. width: 100%;
  1741. height: 100rpx;
  1742. display: flex;
  1743. align-items: center;
  1744. justify-content: space-between;
  1745. }
  1746. .diagram-pdf image {
  1747. width: 60rpx;
  1748. height: 60rpx;
  1749. }
  1750. .diagram-pdf p {
  1751. width: 50%;
  1752. font-size: 32rpx;
  1753. }
  1754. .diagram-pdf button {
  1755. background-color: #FFFFFF;
  1756. border: 2rpx solid #f2d22d;
  1757. border-radius: 20rpx;
  1758. font-size: 32rpx;
  1759. // letter-spacing: 5rpx;
  1760. font-weight: 500;
  1761. position: relative;
  1762. }
  1763. .but1 {
  1764. width: 220rpx;
  1765. background-color: #f2d22d;
  1766. border-radius: 20rpx;
  1767. font-size: 32rpx;
  1768. line-height: 200%;
  1769. // letter-spacing: 10rpx;
  1770. font-weight: 500;
  1771. height: 80%;
  1772. // padding: 0 50rpx;
  1773. &.on {
  1774. background-color: #C0C0C0;
  1775. }
  1776. }
  1777. .but5 {
  1778. background-color: #f2d22d;
  1779. border-radius: 20rpx;
  1780. font-size: 32rpx;
  1781. line-height: 200%;
  1782. letter-spacing: 10rpx;
  1783. font-weight: 500;
  1784. height: 80%;
  1785. text-align: center;
  1786. padding: 0 10rpx;
  1787. &.on {
  1788. background-color: #C0C0C0;
  1789. }
  1790. }
  1791. /** 必须提升样式优先权(!important) **/
  1792. button[disabled] {
  1793. // width: 60%;
  1794. border-radius: 20rpx;
  1795. font-size: 36rpx;
  1796. line-height: 200%;
  1797. // letter-spacing: 10rpx;
  1798. font-weight: 500;
  1799. height: 80%;
  1800. color: white !important;
  1801. background: #c4c1c1 !important;
  1802. }
  1803. .but2 {
  1804. // width: 25%;
  1805. background-color: #FFFFFF;
  1806. border: 2rpx solid #f2d22d;
  1807. border-radius: 20rpx;
  1808. font-size: 36rpx;
  1809. line-height: 180%;
  1810. // letter-spacing: 10rpx;
  1811. font-weight: 500;
  1812. position: relative;
  1813. // text-indent: 0.5em;
  1814. height: 80%;
  1815. }
  1816. .but2 image {
  1817. width: 19%;
  1818. height: 56%;
  1819. position: absolute;
  1820. left: 9%;
  1821. top: 21%;
  1822. }
  1823. .signup {
  1824. box-shadow: 0rpx 5rpx 40rpx #ccc;
  1825. width: 100%;
  1826. position: fixed;
  1827. height: 90rpx;
  1828. padding: 2% 0;
  1829. background-color: #ffffff;
  1830. bottom: 0rpx;
  1831. display: flex;
  1832. justify-content: space-around;
  1833. align-items: center;
  1834. }
  1835. .pick {
  1836. width: 50rpx;
  1837. height: 50rpx;
  1838. vertical-align: middle;
  1839. }
  1840. .nex {
  1841. width: 100rpx;
  1842. height: 20rpx;
  1843. vertical-align: middle;
  1844. }
  1845. .sampledrawing {
  1846. display: flex;
  1847. width: 96%;
  1848. margin: 0 auto 50rpx;
  1849. }
  1850. .samplecharacter {
  1851. flex: 1;
  1852. margin-top: 2%;
  1853. }
  1854. .samplecharacter p {
  1855. padding: 1%;
  1856. }
  1857. /deep/.uni-popup__content {
  1858. background-color: #4CD964;
  1859. border-radius: 20rpx !important;
  1860. }
  1861. /deep/.uni-popup__mask {
  1862. background: rgba(0, 0, 0, 0.5) !important;
  1863. }
  1864. .butto {
  1865. text-align: center;
  1866. }
  1867. /deep/ .mini-btn1 {
  1868. height: 75rpx;
  1869. width: 270rpx;
  1870. line-height: 70rpx;
  1871. margin: 10rpx 0;
  1872. font-size: 30rpx;
  1873. // box-shadow: 0rpx 0rpx 0rpx 5rpx #f2d22d;
  1874. border: 1rpx solid #f2d22d !important;
  1875. }
  1876. /deep/ .mini-btn2 {
  1877. height: 75rpx;
  1878. width: 350rpx;
  1879. line-height: 70rpx;
  1880. margin: 10rpx 0;
  1881. font-size: 30rpx;
  1882. background-color: #f2d22d;
  1883. // box-shadow: 0rpx 0rpx 0rpx 5rpx #f2d22d;
  1884. }
  1885. /deep/ .uni-data-checklist .checklist-group .checklist-box.is--tag {
  1886. background-color: #FFFFFF !important;
  1887. box-shadow: 0rpx 0rpx 6rpx 0rpx #464100;
  1888. border-radius: 10rpx !important;
  1889. }
  1890. /deep/ .uni-data-checklist .checklist-group .checklist-box.is--tag.is-checked {
  1891. background-color: #f2d22d !important;
  1892. }
  1893. /deep/.uni-data-checklist .checklist-group .checklist-box.is--tag.is-checked .checklist-text {
  1894. color: #333333 !important;
  1895. }
  1896. /deep/.buu .uni-data-checklist .checklist-group {
  1897. flex-direction: column !important;
  1898. }
  1899. .surplus p {
  1900. margin-bottom: 17%;
  1901. margin-top: 8%;
  1902. font-size: 80%;
  1903. }
  1904. .circular {
  1905. width: 120rpx;
  1906. height: 120rpx;
  1907. border-radius: 50%;
  1908. background-color: #28EA71;
  1909. margin: 0 auto;
  1910. }
  1911. .circular image {
  1912. width: 60%;
  1913. height: 60%;
  1914. padding: 20%;
  1915. }
  1916. .tii {
  1917. text-align: center;
  1918. font-size: 26rpx;
  1919. margin-top: 2%;
  1920. }
  1921. .tii2 {
  1922. text-align: center;
  1923. font-size: 26rpx;
  1924. margin-top: 2%;
  1925. background-color: #FFFFFF;
  1926. }
  1927. .errar {
  1928. background-color: #FFFFFF;
  1929. }
  1930. .sharepage {
  1931. width: 90%;
  1932. margin: 0 auto;
  1933. position: relative;
  1934. }
  1935. .Tasktext1 {
  1936. // padding-top: 5% ;
  1937. padding: 0 0 0 1%;
  1938. height: 80rpx;
  1939. margin-top: 7%;
  1940. text-align: center;
  1941. }
  1942. .Tasktext1 span {
  1943. color: #333333;
  1944. font-size: 100%;
  1945. font-weight: 550;
  1946. text-indent: 2em;
  1947. }
  1948. .Tasktext1 image {
  1949. vertical-align: middle;
  1950. width: 80rpx;
  1951. height: 80rpx;
  1952. display: inline-block;
  1953. padding-right: 14rpx;
  1954. }
  1955. .sharemap {
  1956. margin: 0 auto;
  1957. text-align: center;
  1958. margin-top: 5%;
  1959. }
  1960. .sharemap image {
  1961. width: 400rpx;
  1962. height: 400rpx;
  1963. }
  1964. .Tasktext2 {
  1965. // padding-top: 5% ;
  1966. padding: 0 0 0 1%;
  1967. // height: 80rpx;
  1968. margin-top: 2%;
  1969. // text-align: center;
  1970. }
  1971. .Tasktext2 span {
  1972. color: #333333;
  1973. font-size: 88%;
  1974. font-weight: 600;
  1975. text-indent: 2em;
  1976. }
  1977. .Tasktext2 image {
  1978. vertical-align: middle;
  1979. width: 30rpx;
  1980. height: 30rpx;
  1981. display: inline-block;
  1982. padding-right: 14rpx;
  1983. }
  1984. .textti p {
  1985. font-size: 60%;
  1986. color: #999999;
  1987. text-align: center;
  1988. }
  1989. .immg image {
  1990. width: 200rpx;
  1991. height: 200rpx;
  1992. }
  1993. .immg {
  1994. line-height: 150%;
  1995. }
  1996. .immg p {
  1997. color: #333333;
  1998. font-size: 90%;
  1999. font-weight: 600;
  2000. }
  2001. .warr p {
  2002. font-weight: 500;
  2003. font-size: 90%;
  2004. &.lor {
  2005. border-bottom: 2rpx solid #f2d22d;
  2006. }
  2007. }
  2008. .tip_box {
  2009. position: fixed;
  2010. right: 0;
  2011. z-index: 9999;
  2012. display: flex;
  2013. justify-content: flex-end;
  2014. align-items: flex-end;
  2015. flex-direction: column;
  2016. margin-top: -40rpx;
  2017. .arrow {
  2018. width: 0;
  2019. height: 0;
  2020. border: 10rpx solid;
  2021. border-color: transparent;
  2022. }
  2023. .container {
  2024. display: flex;
  2025. align-items: center;
  2026. justify-content: center;
  2027. padding: 4rpx 10px;
  2028. .tips {
  2029. flex: 1;
  2030. }
  2031. }
  2032. }
  2033. .popup-content {
  2034. display: flex;
  2035. flex-direction: column;
  2036. align-items: center;
  2037. }
  2038. </style>