1
0

dare.vue 36 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094
  1. <template>
  2. <app-layout>
  3. <view class='join-bg' v-if='join || success'>
  4. <view class='success' v-if='success'>
  5. <view class='content'>
  6. <image src='./../image/submit.png' class='banner'></image>
  7. <view class='banner-text'>恭喜您</view>
  8. <image src='./../image/success.png' class='success-tip'></image>
  9. <view>成功提交步数</view>
  10. <view>奖金将于24点结算后自动发放</view>
  11. <view class='tip'>奖金可至“我的{{setting.currency_name ? setting.currency_name : '活力币'}}”查看</view>
  12. <view @click='closeTip(1)'>
  13. <button class='success-btn'>我知道了</button>
  14. </view>
  15. </view>
  16. </view>
  17. <!-- 参加成功后提示框 -->
  18. <view class='join-success' v-if='join'>
  19. <image class='join-img' src='./../image/participation.png'></image>
  20. <view v-if="join" @click="closeTip()" class='join-close'>
  21. <image src='/static/image/icon/icon-close.png'></image>
  22. </view>
  23. <view>报名成功,记得{{open_date}}来参加哦</view>
  24. <button class='invite' open-type="share">邀请好友</button>
  25. </view>
  26. </view>
  27. <!-- 背景图 -->
  28. <view class='bg'>
  29. <image :src="setting.activity_pic.length > 0?setting.activity_pic:stepImg.app_image.activity_bg"></image>
  30. </view>
  31. <view class='icon'>
  32. <view style="display:inline-block" @click="toLog">
  33. <image src='./../image/log.png'></image>
  34. </view>
  35. <view style="display:inline-block" @click="toRules">
  36. <image src='./../image/rule.png'></image>
  37. </view>
  38. </view>
  39. <view class='dare' v-if="list[0].id > 0">
  40. <view class='join' v-for="item in list" :key="item.id">
  41. <view class='join-title'>
  42. <view class='title-left'>{{item.begin_at}}期</view>
  43. <view class='msg' v-if="item.date !== time">已有{{item.people_num}}人报名</view>
  44. <view class='not' v-if="item.log_status == null">未参赛</view>
  45. <view class='already' v-if="item.log_status != null">已参赛</view>
  46. </view>
  47. <view class='activity-name'>{{item.title}}</view>
  48. <view class='activity-step' v-if="item.log_status == null && item.now_time_status == true">目标{{item.step_num}}步</view>
  49. <view class='join-info' v-if="item.log_status != null && item.now_time_status == true">
  50. <view class='target'>目标
  51. <text>{{item.step_num}}</text>步,已完成
  52. <text v-if="item.log_status === '0'">{{daily_real_num}}</text>
  53. <text v-if="item.log_status > 0">{{item.user_total_num}}</text>步
  54. </view>
  55. <view v-if="item.log_status != 1">请于今日24点前,更新并提交步数</view>
  56. <view v-if="item.log_status == 1">奖金将于24点后结算自动发放</view>
  57. <view @click='toSubmit(item.step_num,item.id)' v-if="item.log_status == 0 && daily_real_num > item.step_num-1">
  58. <button class='submit'>提交成绩</button>
  59. </view>
  60. <button class='submit-end' v-if="item.log_status == 1">已提交成绩</button>
  61. </view>
  62. <view class='dare-item' v-if="item.now_time_status == true">
  63. <view class='item'>
  64. <view class='total'>{{item.currency_num?item.currency_num:0}}</view>
  65. <view>奖金池总额</view>
  66. </view>
  67. <view class='item'>
  68. <view class='total'>{{item.award_num?item.award_num:0}}</view>
  69. <view>达标人数</view>
  70. </view>
  71. </view>
  72. <view v-if="item.now_time_status == false">
  73. <view class='money'>{{item.currency_num?item.currency_num:0}}</view>
  74. <view>奖金池总额</view>
  75. <view class='info'>参与满
  76. <text>{{item.step_num}}</text>步起平分奖池金额</view>
  77. <view v-if="item.log_status == null" class='join-btn' @click="toJoin(item.id)">
  78. <button class='join-btn'>参与比赛</button>
  79. </view>
  80. <button class='finish-btn' v-if="item.log_status == 0" open-type="share">已参赛,邀请好友</button>
  81. </view>
  82. </view>
  83. <view class='loading' v-if="loading">正在加载中...</view>
  84. <view :style="{'height': `${adHeight}px`}"></view>
  85. </view>
  86. <!-- 无挑战 -->
  87. <view class='space' v-else>
  88. <image src='./../image/none.png'></image>
  89. <view>暂无挑战赛哦</view>
  90. <view :style="{'height': `${adHeight}px`}"></view>
  91. </view>
  92. <view id="ad">
  93. <app-ad v-if="ad_data.unit_id"
  94. :unit-id="ad_data.unit_id"
  95. :type="ad_data.type"
  96. :video-url="ad_data.video_url"
  97. :pic-url="ad_data.pic_url"
  98. :coupon-url="coupon_url"
  99. :coupon-params="ad_data | getObje(ad_data)"
  100. />
  101. </view>
  102. <view class="dialog-bg cross-center" v-if="isSubmit">
  103. <view class="dialog">
  104. <view class="dialog-title">提示</view>
  105. <view class="main-center refund-tip">确认提交成绩?</view>
  106. <view class="main-center btn-area">
  107. <view class="submit-btn" @click="toSubmit(0, '')">取消</view>
  108. <view class="line"></view>
  109. <view class="submit-btn be-submit" @click='submit'>确认</view>
  110. </view>
  111. </view>
  112. </view>
  113. </app-layout>
  114. </template>
  115. <script>
  116. import appAd from "../../../components/page-component/app-ad/app-ad"
  117. import {mapState} from "vuex";
  118. export default {
  119. data() {
  120. return {
  121. unit_id: '',
  122. list: [],
  123. ad: false,
  124. space: true,
  125. daily_real_num: 0,
  126. page: 2,
  127. join: false,
  128. isSubmit: false,
  129. activity_id: '',
  130. open_date: '',
  131. step_num: 0,
  132. over: false,
  133. authorize: false,
  134. ad_data: {},
  135. setting: null,
  136. success: false,
  137. adHeight: 0,
  138. coupon_url: this.$api.step.receive,
  139. }
  140. },
  141. components: {
  142. appAd
  143. },
  144. computed: {
  145. ...mapState({
  146. stepImg: state => state.mallConfig.plugin.step,
  147. userInfo: state => state.user.info,
  148. })
  149. },
  150. filters: {
  151. getObje(data, temp) {
  152. return {
  153. id: data.id
  154. }
  155. }
  156. },
  157. methods: {
  158. getHeight() {
  159. const self = this;
  160. setTimeout(() => {
  161. const query = uni.createSelectorQuery().in(this);
  162. query.select('#ad').boundingClientRect(res => {
  163. self.adHeight = res.height;
  164. }).exec();
  165. })
  166. },
  167. toSubmit(step_num, activity_id) {
  168. this.step_num = step_num;
  169. this.activity_id = activity_id;
  170. this.isSubmit = !this.isSubmit;
  171. },
  172. toLog() {
  173. uni.navigateTo({url: '/plugins/step/log/log'});
  174. },
  175. toRules() {
  176. // uni.navigateTo({url: '/plugins/step/rules/rules?rule=2'});
  177. uni.navigateTo({
  178. url: `/pages/rules/index?url=${encodeURIComponent(this.$api.step.setting)}&key=activity_rule`,
  179. });
  180. },
  181. toJoin(id) {
  182. uni.navigateTo({url: '/plugins/step/join/join?id=' + id});
  183. },
  184. // 提交成绩
  185. submit() {
  186. let that = this;
  187. let code, iv, encrypted_data;
  188. let num = that.daily_real_num;
  189. let activity_id = that.activity_id;
  190. let step_num = that.step_num;
  191. that.isSubmit = false;
  192. if (num < step_num) {
  193. uni.showToast({
  194. title: '成绩未达标',
  195. icon: 'none',
  196. duration: 1000
  197. });
  198. } else {
  199. uni.showLoading({
  200. title: '提交成绩中...'
  201. });
  202. // #ifdef MP-WEIXIN
  203. uni.login({
  204. success(res) {
  205. code = res.code;
  206. // 获取iv和encryptedData
  207. uni.getWeRunData({
  208. success(res) {
  209. iv = res.iv;
  210. encrypted_data = res.encryptedData;
  211. that.$request({
  212. url: that.$api.step.activity_submit,
  213. method: 'POST',
  214. data: {
  215. encrypted_data: encrypted_data,
  216. iv: iv,
  217. code: code,
  218. activity_id: activity_id,
  219. num: num
  220. },
  221. }).then(response => {
  222. uni.hideLoading();
  223. if (response.code == 0) {
  224. that.success = true;
  225. } else {
  226. uni.showToast({
  227. title: response.msg,
  228. icon: 'none',
  229. duration: 1000
  230. });
  231. }
  232. }).catch(response => {
  233. uni.hideLoading();
  234. uni.showToast({
  235. title: response,
  236. icon: 'none',
  237. duration: 1000
  238. });
  239. });
  240. }
  241. })
  242. }
  243. })
  244. // #endif
  245. // #ifdef MP-ALIPAY
  246. var myDate = new Date();
  247. let year = myDate.getFullYear();
  248. let month = myDate.getMonth() + 1;
  249. if (month >= 1 && month <= 9) {
  250. month = "0" + month;
  251. }
  252. let now = myDate.getDate();
  253. let today = year + "-" + month + "-" + now;
  254. my.getRunData({
  255. countDate: today,
  256. success: (res) => {
  257. that.$request({
  258. url: that.$api.step.activity_submit,
  259. data: {
  260. encrypted_data: encrypted_data,
  261. activity_id: activity_id,
  262. num: num
  263. },
  264. method: 'POST',
  265. }).then(response => {
  266. uni.hideLoading();
  267. if (response.code == 0) {
  268. that.success = true;
  269. } else {
  270. uni.showToast({
  271. title: response.msg,
  272. icon: 'none',
  273. duration: 1000
  274. });
  275. }
  276. }).catch(response => {
  277. uni.hideLoading();
  278. uni.showToast({
  279. title: response,
  280. icon: 'none',
  281. duration: 1000
  282. });
  283. });
  284. },
  285. fail: (res) => {
  286. uni.showModal({
  287. content: res.errMsg,
  288. showCancel: false,
  289. });
  290. },
  291. complete: (res) => {
  292. uni.showModal({
  293. content: res.errMsg,
  294. showCancel: false,
  295. });
  296. },
  297. });
  298. // #endif
  299. }
  300. },
  301. getSetting() {
  302. let that = this;
  303. that.$request({
  304. url: that.$api.step.setting,
  305. }).then(response=>{
  306. if(response.code == 0) {
  307. that.setting = response.data;
  308. }else {
  309. uni.showToast({
  310. title: response.msg,
  311. icon: 'none',
  312. duration: 1000
  313. });
  314. }
  315. }).catch(response => {
  316. that.$hideLoading();
  317. });
  318. },
  319. auth() {
  320. let that = this;
  321. uni.getSetting({
  322. success(res) {
  323. if (res.authSetting['scope.werun'] == true) {
  324. that.page = 1;
  325. that.getList();
  326. } else {
  327. uni.authorize({
  328. scope: 'scope.werun',
  329. success(res) {
  330. if (res.errMsg == "authorize:ok") {
  331. // 读取数据
  332. that.page = 1;
  333. that.getList();
  334. }
  335. },
  336. fail(res) {
  337. that.$hideLoading();
  338. uni.showModal({
  339. title: '提示',
  340. content: '获取步数信息失败,需要授权获取步数权限',
  341. showCancel: false,
  342. confirmText: '打开授权',
  343. success(e) {
  344. if (e.confirm) {
  345. uni.openSetting({});
  346. }
  347. }
  348. });
  349. }
  350. });
  351. }
  352. },
  353. fail(res) {
  354. that.authorize = true;
  355. that.$hideLoading();
  356. }
  357. })
  358. },
  359. getList() {
  360. let that = this;
  361. let code, iv, encrypted_data;
  362. uni.login({
  363. success(res) {
  364. code = res.code;
  365. // #ifdef MP-WEIXIN
  366. uni.getWeRunData({
  367. success(res) {
  368. iv = res.iv;
  369. encrypted_data = res.encryptedData;
  370. that.$request({
  371. url: that.$api.step.activity,
  372. method: 'POST',
  373. data: {
  374. encrypted_data: encrypted_data,
  375. iv: iv,
  376. code: code,
  377. page: that.page
  378. },
  379. }).then(response => {
  380. that.$hideLoading();
  381. if (response.code == 0) {
  382. that.ad_data = response.list.ad_data;
  383. that.getHeight();
  384. that.daily_real_num = response.list.daily_real_num;
  385. let list = that.list;
  386. let activity_data = response.list.activity_data;
  387. that.page++;
  388. if(activity_data.length > 0) {
  389. if (list.length > 0) {
  390. for (let i = 0; i < list.length; i++) {
  391. if (activity_data[0].id == list[i].id) {
  392. return
  393. }
  394. }
  395. }
  396. that.more = false;
  397. if (activity_data.length == 3) {
  398. that.more = true;
  399. }
  400. that.list = list.concat(activity_data);
  401. }
  402. } else {
  403. uni.showToast({
  404. title: response.msg,
  405. icon: 'none',
  406. duration: 1000
  407. });
  408. }
  409. }).catch(response => {
  410. uni.showToast({
  411. title: response,
  412. icon: 'none',
  413. duration: 1000
  414. });
  415. });
  416. },
  417. fail(res) {
  418. if (res.errMsg == 'getWeRunData:fail cancel') {
  419. uni.showModal({
  420. content: '读取失败,请稍后再试',
  421. showCancel: false,
  422. });
  423. } else if (res.errMsg == 'getWeRunData: fail device not support') {
  424. uni.showModal({
  425. content: '请在微信中搜索"微信运动"公众号,并点击关注',
  426. showCancel: false,
  427. });
  428. } else {
  429. uni.showModal({
  430. content: res.errMsg,
  431. showCancel: false,
  432. });
  433. }
  434. }
  435. })
  436. // #endif
  437. // #ifdef MP-ALIPAY
  438. var myDate = new Date();
  439. let year = myDate.getFullYear();
  440. let month = myDate.getMonth() + 1;
  441. if (month >= 1 && month <= 9) {
  442. month = "0" + month;
  443. }
  444. let now = myDate.getDate();
  445. let today = year + "-" + month + "-" + now;
  446. my.getRunData({
  447. countDate: today,
  448. success: (res) => {
  449. that.$request({
  450. url: that.$api.step.activity,
  451. method: 'POST',
  452. data: {
  453. encrypted_data: encrypted_data,
  454. page: that.page
  455. },
  456. }).then(response => {
  457. that.$hideLoading();
  458. if (response.code == 0) {
  459. that.ad_data = response.list.ad_data;
  460. that.daily_real_num = response.list.daily_real_num;
  461. let list = that.list;
  462. let activity_data = response.list.activity_data;
  463. that.page++;
  464. if(activity_data.length > 0) {
  465. if (list.length > 0) {
  466. for (let i = 0; i < list.length; i++) {
  467. if (activity_data[0].id == list[i].id) {
  468. return
  469. }
  470. }
  471. }
  472. that.more = false;
  473. if (activity_data.length == 3) {
  474. that.more = true;
  475. }
  476. that.list = list.concat(activity_data);
  477. }
  478. } else {
  479. uni.showToast({
  480. title: response.msg,
  481. icon: 'none',
  482. duration: 1000
  483. });
  484. }
  485. }).catch(response => {
  486. uni.showToast({
  487. title: response,
  488. icon: 'none',
  489. duration: 1000
  490. });
  491. });
  492. },
  493. fail: (res) => {
  494. uni.showModal({
  495. content: res.errMsg,
  496. showCancel: false,
  497. });
  498. },
  499. complete: (res) => {
  500. uni.showModal({
  501. content: res.errMsg,
  502. showCancel: false,
  503. });
  504. },
  505. });
  506. // #endif
  507. },
  508. fail(res) {
  509. uni.showModal({
  510. content: res.errMsg,
  511. showCancel: false,
  512. });
  513. }
  514. })
  515. },
  516. closeTip(status) {
  517. this.success = false;
  518. this.join = false;
  519. if(status == 1) {
  520. this.list = [];
  521. this.page = 1;
  522. this.$showLoading({
  523. type: 'global',
  524. text: '加载中...'
  525. });
  526. this.getList();
  527. }
  528. },
  529. },
  530. onReachBottom() {
  531. if(this.more) {
  532. this.getList();
  533. }
  534. },
  535. onShareAppMessage: function () {
  536. return this.$shareAppMessage({
  537. title: '步数挑战',
  538. path: "/plugins/step/index/index",
  539. params: {
  540. user_id: this.userInfo.options.user_id
  541. }
  542. });
  543. },
  544. onLoad(options) {
  545. let that = this;
  546. that.$store.dispatch('user/info');
  547. if (options.submit == 1) {
  548. that.activity_id = options.activity_id;
  549. that.step_num = options.step_num;
  550. that.isSubmit = true;
  551. } else if (options.join == 1) {
  552. that.join = true
  553. that.open_date = options.date
  554. }
  555. that.$showLoading({
  556. type: 'global',
  557. text: '加载中...'
  558. });
  559. that.auth();
  560. that.getSetting();
  561. }
  562. }
  563. </script>
  564. <style scoped lang="scss">
  565. .bg {
  566. height: #{560rpx};
  567. width: 100%;
  568. overflow-y: hidden;
  569. }
  570. .bg image {
  571. width: 100%;
  572. height: 100%;
  573. }
  574. .icon {
  575. height: #{72rpx};
  576. width: #{200rpx};
  577. position: absolute;
  578. top: #{360rpx};
  579. right: #{12rpx};
  580. }
  581. .icon image {
  582. height: #{72rpx};
  583. width: #{72rpx};
  584. margin-right: #{28rpx};
  585. }
  586. .dare {
  587. width: 100%;
  588. position: absolute;
  589. top: #{450rpx};
  590. left: 0;
  591. right: 0;
  592. }
  593. .dare-info {
  594. width: 93.6%;
  595. background-color: white;
  596. margin: 0 #{24rpx};
  597. color: #999;
  598. font-size: #{26rpx};
  599. padding: #{28rpx} #{32rpx};
  600. border-radius: #{16rpx};
  601. box-shadow: 0 0 #{20rpx} rgba(0, 0, 0, 0.15);
  602. }
  603. .join-info {
  604. font-size: #{24rpx};
  605. color: #999;
  606. text-align: center;
  607. margin-top: #{12rpx};
  608. }
  609. .target {
  610. font-size: #{26rpx};
  611. color: #666666;
  612. margin-bottom: #{14rpx};
  613. }
  614. .target text {
  615. color: #ff4544;
  616. font-family: 'DIN';
  617. }
  618. .submit {
  619. height: #{78rpx};
  620. width: #{498rpx};
  621. border-radius: #{40rpx};
  622. background-color: #ff9d1e;
  623. color: #ffff;
  624. font-size: #{32rpx};
  625. margin-top: #{20rpx};
  626. line-height: #{78rpx};
  627. border: #{1rpx} solid #ff9d1e;
  628. }
  629. .submit-end {
  630. height: #{78rpx};
  631. width: #{498rpx};
  632. border-radius: #{40rpx};
  633. background-color: #ffff;
  634. color: #ff9d1e;
  635. margin-top: #{20rpx};
  636. font-size: #{32rpx};
  637. line-height: #{78rpx};
  638. border: #{1rpx} solid #ff9d1e;
  639. }
  640. .join-title{
  641. height: #{55rpx};
  642. }
  643. .title-left {
  644. text-align: left;
  645. float: left;
  646. width: auto;
  647. color: #353535;
  648. font-size: #{28rpx};
  649. overflow: hidden;
  650. }
  651. .dare-title {
  652. height: #{48rpx};
  653. }
  654. .not {
  655. float: right;
  656. height: #{48rpx};
  657. width: #{94rpx};
  658. line-height: #{48rpx};
  659. background-color: #eee;
  660. text-align: center;
  661. }
  662. .already {
  663. float: right;
  664. height: #{48rpx};
  665. width: #{94rpx};
  666. color: #ff9d1e;
  667. line-height: #{48rpx};
  668. background-color: #fff2e2;
  669. text-align: center;
  670. }
  671. .dare-item {
  672. width: 100%;
  673. }
  674. .item {
  675. display: inline-block;
  676. width: 36%;
  677. text-align: center;
  678. padding-top: #{20rpx};
  679. }
  680. .total {
  681. color: #ff9d1e;
  682. font-family: "DIN";
  683. font-size: #{50rpx};
  684. margin-bottom: #{16rpx};
  685. }
  686. .join {
  687. width: 93.6%;
  688. background-color: white;
  689. margin: 0 #{24rpx} #{20rpx};
  690. color: #999;
  691. font-size: #{26rpx};
  692. padding: #{30rpx} #{32rpx} #{40rpx};
  693. border-radius: #{16rpx};
  694. text-align: center;
  695. margin-top: #{20rpx};
  696. box-shadow: 0 0 #{20rpx} rgba(0, 0, 0, 0.15);
  697. }
  698. .msg {
  699. float: right;
  700. }
  701. .money {
  702. color: #ff9d1e;
  703. font-family: "DIN";
  704. font-size: #{50rpx};
  705. margin: #{10rpx} 0 #{10rpx};
  706. }
  707. .info {
  708. margin: #{36rpx} 0 #{26rpx};
  709. }
  710. .info text {
  711. color: #ff9d1e;
  712. }
  713. .join-btn {
  714. height: #{80rpx};
  715. line-height: #{80rpx};
  716. width: #{500rpx};
  717. font-size: 16px;
  718. border-radius: #{40rpx};
  719. background-color: #ff9d1e;
  720. margin: 0 auto;
  721. color: #ffff;
  722. }
  723. .finish-btn {
  724. height: #{78rpx};
  725. line-height: #{78rpx};
  726. width: #{498rpx};
  727. border-radius: #{40rpx};
  728. border: #{1rpx} solid #ff9d1e;
  729. background-color: #ffff;
  730. color: #ff9d1e;
  731. font-size: #{32rpx};
  732. }
  733. button::after {
  734. border: none;
  735. }
  736. .success {
  737. position: fixed;
  738. top: #{300rpx};
  739. z-index: 3;
  740. background-color: #e8703e;
  741. width: #{630rpx};
  742. height: #{640rpx};
  743. margin: 0 #{60rpx};
  744. border-radius: #{16rpx};
  745. text-align: center;
  746. }
  747. .content {
  748. background-color: white;
  749. width: #{598rpx};
  750. height: #{608rpx};
  751. margin: #{16rpx};
  752. font-size: #{34rpx};
  753. color: #9f5100;
  754. }
  755. .success-tip {
  756. height: #{200rpx};
  757. width: #{200rpx};
  758. margin-bottom: #{28rpx};
  759. }
  760. .banner {
  761. height: #{132rpx};
  762. width: #{548rpx};
  763. margin-top: #{-76rpx};
  764. }
  765. .banner-text {
  766. position: fixed;
  767. top: #{272rpx};
  768. width: #{598rpx};
  769. text-align: center;
  770. color: #9f5100;
  771. font-size: #{42rpx};
  772. }
  773. .tip {
  774. font-size: #{30rpx};
  775. color: #666;
  776. margin: #{30rpx} 0 #{18rpx};
  777. }
  778. .success-btn {
  779. font-size: #{34rpx};
  780. color: #ffff;
  781. height: #{80rpx};
  782. width: #{500rpx};
  783. border-radius: #{40rpx};
  784. background-color: #ff9d1e;
  785. }
  786. .space {
  787. width: 93.6%;
  788. height: #{550rpx};
  789. background-color: white;
  790. margin: 0 #{24rpx};
  791. color: #999;
  792. font-size: #{34rpx};
  793. padding: #{80rpx} 0 #{100rpx};
  794. border-radius: #{16rpx};
  795. text-align: center;
  796. position: absolute;
  797. top: #{450rpx};
  798. box-shadow: 0 0 #{20rpx} rgba(0, 0, 0, 0.15);
  799. }
  800. .no-join image {
  801. height: #{200rpx};
  802. width: #{200rpx};
  803. margin-bottom: #{35rpx};
  804. }
  805. .no-join {
  806. width: 93.6%;
  807. height: #{350rpx};
  808. background-color: white;
  809. margin: 0 #{24rpx};
  810. color: #999;
  811. font-size: #{34rpx};
  812. border-radius: #{16rpx};
  813. padding: #{30rpx} 0 0;
  814. text-align: center;
  815. margin-top: #{20rpx};
  816. box-shadow: 0 0 #{20rpx} rgba(0, 0, 0, 0.15);
  817. }
  818. .space image {
  819. height: #{300rpx};
  820. width: #{300rpx};
  821. margin-bottom: #{15rpx};
  822. }
  823. form {
  824. display: inline-block;
  825. }
  826. #ad {
  827. position: fixed;
  828. bottom: 0;
  829. width: 100%;
  830. }
  831. .join-bg {
  832. width: 100%;
  833. height: 100%;
  834. position: fixed;
  835. background-color: rgba(0, 0, 0, 0.3);
  836. z-index: 9999;
  837. top: 0;
  838. left: 0;
  839. }
  840. .join-success {
  841. position: fixed;
  842. top: #{300rpx};
  843. left: 0;
  844. right: 0;
  845. margin: 0 auto;
  846. height: #{640rpx};
  847. width: #{630rpx};
  848. border-radius: #{16rpx};
  849. background-color: white;
  850. text-align: center;
  851. z-index: 9;
  852. padding: #{92rpx} 0 #{80rpx};
  853. }
  854. .join-success .join-close {
  855. width: #{28rpx};
  856. height: #{28rpx};
  857. position: absolute;
  858. top: #{32rpx};
  859. right: #{32rpx};
  860. }
  861. .join-success .join-close image {
  862. width: #{28rpx};
  863. height: #{28rpx};
  864. }
  865. .join-img {
  866. height: #{260rpx};
  867. width: #{260rpx};
  868. margin-bottom: #{40rpx};
  869. }
  870. .join-success view {
  871. font-size: #{32rpx};
  872. color: #666;
  873. }
  874. .invite {
  875. margin-top: #{56rpx};
  876. height: #{80rpx};
  877. width: #{500rpx};
  878. line-height: #{80rpx};
  879. font-size: #{34rpx};
  880. color: #ff9d1e;
  881. border-radius: #{40rpx};
  882. background-color: white;
  883. border: #{1rpx} solid #ff9d1e;
  884. }
  885. .invite::after {
  886. border: 0px;
  887. }
  888. .loading{
  889. font-size: #{30rpx};
  890. color: #353535;
  891. text-align: center;
  892. height: #{80rpx};
  893. line-height: #{80rpx};
  894. background-color: #f2f2f2;
  895. }
  896. .activity-name{
  897. font-size: #{30rpx};
  898. color: #353535;
  899. overflow: hidden;
  900. text-overflow: ellipsis;
  901. white-space: nowrap;
  902. text-align: center;
  903. margin-top: #{20rpx};
  904. margin-bottom: #{5rpx};
  905. padding: 0 11%;
  906. }
  907. .activity-step{
  908. font-size: #{26rpx};
  909. color: #666666;
  910. }
  911. .openSetting{
  912. height: #{120rpx};
  913. width: #{500rpx};
  914. line-height: #{120rpx};
  915. background-color: #4fd866;
  916. border-radius: #{30rpx};
  917. color: #ffff;
  918. font-size: #{52rpx};
  919. position: fixed;
  920. top: 50%;
  921. left: 50%;
  922. margin-left: #{-250rpx};
  923. }
  924. .over-screen{
  925. position: fixed;
  926. top: 0;
  927. left: 0;
  928. right: 0;
  929. height: 100%;
  930. width: 100%;
  931. background-color: rgba(0, 0, 0, .3);
  932. z-index: 100;
  933. }
  934. .window{
  935. height: #{160rpx};
  936. line-height: #{160rpx};
  937. width: 84%;
  938. position: fixed;
  939. top: #{400rpx};
  940. left: 0;
  941. right: 0;
  942. margin: 0 auto;
  943. background-color: white;
  944. text-align: center;
  945. font-size: #{32rpx};
  946. color: #353535;
  947. border-top-left-radius: #{16rpx};
  948. border-top-right-radius: #{16rpx};
  949. }
  950. .get-setting{
  951. height: #{88rpx};
  952. line-height: #{88rpx};
  953. width: 84%;
  954. position: fixed;
  955. top: #{560rpx};
  956. left: 0;
  957. right: 0;
  958. margin: 0 auto;
  959. border-top: #{1rpx} solid #e2e2e2;
  960. background-color: white;
  961. text-align: center;
  962. border-bottom-left-radius: #{16rpx};
  963. border-bottom-right-radius: #{16rpx};
  964. font-size: #{32rpx};
  965. color: #353535;
  966. }
  967. .dialog-bg {
  968. background-color: rgba(0, 0, 0, .3);
  969. position: fixed;
  970. top: 0;
  971. left: 0;
  972. height: 100%;
  973. width: 100%;
  974. z-index: 100;
  975. }
  976. .dialog {
  977. width: #{620rpx};
  978. border-radius: #{16rpx};
  979. margin: 0 auto;
  980. background-color: #fff;
  981. z-index: 20;
  982. }
  983. .dialog-title {
  984. font-size: #{32rpx};
  985. color: #353535;
  986. width: #{620rpx};
  987. margin: #{32rpx} auto #{40rpx};
  988. text-align: center;
  989. }
  990. .refund-tip {
  991. font-size: #{32rpx};
  992. color: #353535;
  993. margin: #{4rpx} 0 #{45rpx};
  994. }
  995. .btn-area {
  996. height: #{88rpx};
  997. position: relative;
  998. border-top: #{1rpx} solid #e2e2e2;
  999. }
  1000. .btn-area .line {
  1001. height: #{32rpx};
  1002. width: #{1rpx};
  1003. background-color: #e2e2e2;
  1004. position: absolute;
  1005. top: #{28rpx};
  1006. left: 0;
  1007. right: 0;
  1008. margin: 0 auto;
  1009. }
  1010. .submit-btn {
  1011. height: #{88rpx};
  1012. line-height: #{88rpx};
  1013. font-size: #{32rpx};
  1014. color: #666;
  1015. width: #{310rpx};
  1016. text-align: center;
  1017. }
  1018. .submit-btn.be-submit {
  1019. color: #446dfd;
  1020. }
  1021. </style>