selectiondetail.vue 59 KB

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