金诚优选前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

836 lines
24 KiB

  1. <template>
  2. <!--新数据循环-->
  3. <view id="micro-pages">
  4. <!--<view>
  5. <customNavbar navbar-data="{{nvabarData}}"></customNavbar>
  6. </view>-->
  7. <block v-if="microData && microData.pages && microData.pages.length">
  8. <view v-for="(item, index) in microData.pages" :key="index" >
  9. <view v-if="item.name == 'micro_page_componet_search'">
  10. <!--搜索按钮-->
  11. <view class="banner">
  12. <view class="search">
  13. <div class="menu-box" @tap="jumpMenu">
  14. <i class="iconfont icon-fenzu">
  15. </i>
  16. </div>
  17. <view class="search_box">
  18. <input type="text" value @input="search" disabled confirm-type="search" @tap="jumpToSearch"></input>
  19. <icon type="search" size="20"></icon>
  20. </view>
  21. </view>
  22. </view>
  23. </view>
  24. <!--轮播图组件-->
  25. <view v-if="item.name == 'micro_page_componet_slide' && item.value && item.value.length">
  26. <indexBanner :banner-data="item.value" :banner-title="item.title" :screen-width="screenWidth" :show="item.is_show_title" :meta="item.meta"></indexBanner>
  27. </view>
  28. <!--优惠券组件-->
  29. <view v-if="item.name == 'micro_page_componet_coupon' && item.value && item.value.length">
  30. <indexCoupon :index-coupon="item.value" :config="config" bindmyGetCoupon="getCoupon" :show="item.is_show_title" :meta="item.meta"></indexCoupon>
  31. </view>
  32. <!--套餐-->
  33. <view v-if="item.name == 'micro_page_componet_suit' && item.value && item.value.length">
  34. <indexSuit :suit-data="item.value" :index-data="indexData" :show="item.is_show_title" :meta="item.meta"></indexSuit>
  35. </view>
  36. <!--大咖推荐-->
  37. <view v-if="item.name == 'micro_page_componet_article_-' && item.value && item.value.length">
  38. <bigCoffee :coffee-data="item.value" :coffee-title="item.title" :show="item.is_show_title" :meta="item.meta"></bigCoffee>
  39. </view>
  40. <!--专属方案-->
  41. <view v-if="item.name == 'micro_page_componet_article_|' && item.value && item.value.length">
  42. <exclusivePlan :plan-data="item.value" :plan-title="item.title" :show="item.is_show_title" :meta="item.meta"></exclusivePlan>
  43. </view>
  44. <!--健康美丽Tips-->
  45. <view v-if="item.name == 'micro_page_componet_goods_group_change' && item.value && item.value.length">
  46. <healthTips :health-data="item.value" :title="item.title" :show="item.is_show_title" :meta="item.meta"></healthTips>
  47. </view>
  48. <!--猜你喜欢-->
  49. <view v-if="item.name == 'micro_page_componet_guess_like' && item.value && item.value.length">
  50. <waterfallsFlow :water-data="item.value" :title="item.title" :show="item.is_show_title" :meta="item.meta"></waterfallsFlow>
  51. </view>
  52. <!--拼团-->
  53. <view v-if="item.name == 'micro_page_componet_groupon' && item.value && item.value.length">
  54. <indexGroupon :index-data="item.value" :config="config" :server="microData.server_time" typename="拼团" :meta="item.meta"></indexGroupon>
  55. </view>
  56. <!--秒杀-->
  57. <view v-if="item.name == 'micro_page_componet_seckill' && item.value && item.value.length">
  58. <indexSeckill :index-data="item.value" :config="config" :server="microData.server_time" :big-index="index" bind:startevent="isStarts" bind:endevent="isEnd" :meta="item.meta"></indexSeckill>
  59. </view>
  60. <!--打call indexCall-->
  61. <view v-if="item.name == 'micro_page_componet_free_event' && item.value && item.value.length">
  62. <indexCall :call-data="item.value" :config="config" :is-login="isLogin" :server="microData.server_time" :meta="item.meta"></indexCall>
  63. </view>
  64. <!--快捷导航-->
  65. <view v-if="item.name == 'micro_page_componet_nav' && item.value && item.value.length">
  66. <indexNav :nav-data="item.value" :meta="item.meta"></indexNav>
  67. </view>
  68. <!--图片魔方-->
  69. <view v-if="item.name == 'micro_page_componet_cube' && item.value && item.value.length">
  70. <indexCube :cube-data="item.value" :show-type="item.type" :cube-title="item.title" :show="item.is_show_title" :meta="item.meta"></indexCube>
  71. </view>
  72. <!--分类商品-->
  73. <view v-if="item.name == 'micro_page_componet_category' && item.value && item.value.length">
  74. <indexCategory :category-data="item.value" :meta="item.meta"></indexCategory>
  75. </view>
  76. <!--商品分组-->
  77. <view v-if="item.name == 'micro_page_componet_goods_group' && item.value && item.value.length">
  78. <indexGrouping :grouping-data="item.value" :meta="item.meta"></indexGrouping>
  79. </view>
  80. </view>
  81. </block>
  82. </view>
  83. </template>
  84. <script>
  85. /**
  86. * Created by admin on 2017/9/26.
  87. */
  88. import {pageLogin, getUrl,config,is} from '@/common/js/utils.js';
  89. const app = getApp();
  90. import preview from "@/components/preview/preview";
  91. import seckill from "@/components/seckill/seckill";
  92. import group from "@/components/group/group";
  93. import indexBanner from '@/components/index-banner/index-banner';
  94. import indexCube from '@/components/index-cube/index-cube';
  95. import indexCoupon from '@/components/index-coupon/index-coupon';
  96. import indexSuit from '@/components/index-suit/index-suit';
  97. import bigCoffee from '@/components/big-coffee/big-coffee';
  98. import exclusivePlan from "@/components/exclusive-plan/exclusive-plan";
  99. import healthTips from "@/components/health-tips/health-tips";
  100. import waterfallsFlow from "@/components/waterfalls-flow/waterfalls-flow";
  101. import indexGroupon from "@/components/index-groupon/index-groupon";
  102. import indexSeckill from "@/components/index-seckill/index-seckill";
  103. import indexCall from "@/components/index-call/index-call";
  104. import indexNav from "@/components/index-nav/index-nav";
  105. import indexCategory from "@/components/index-category/index-category";
  106. import indexGrouping from "@/components/index-grouping/index-grouping";
  107. export default {
  108. data() {
  109. return {
  110. banner: [],
  111. indexData: {},
  112. goods_arr: [],
  113. topImage: [],
  114. bestSalesGoods: [],
  115. suit: [],
  116. imgHeight: '',
  117. screenWidth: 0,
  118. currentDesc: 'news',
  119. is_newGiftLogin: false,
  120. isLogin: '',
  121. noLoginGift: '',
  122. // 未登录状态下的新人礼信息
  123. loginGift: '',
  124. // 登录状态下的新人礼信息
  125. showNoGift: false,
  126. // 用户是否关闭弹窗
  127. showGift: false,
  128. // 登录状态下是否弹窗
  129. tapIndex: 0,
  130. isShow: false,
  131. goodsIndex: 0,
  132. goodsList: [],
  133. author: '',
  134. scroll: true,
  135. config: '',
  136. wyBanner: '',
  137. wyGoodsList: '',
  138. microData: '',
  139. // 组件所需的参数
  140. nvabarData: {
  141. showCapsule: 1,
  142. //是否显示左上角图标 1表示显示 0表示不显示
  143. title: '我的主页' //导航栏 中间的标题
  144. },
  145. id: '',
  146. // 此页面 页面内容距最顶部的距离
  147. height: app.globalData.height * 2 + 20,
  148. margin_bottom:''
  149. };
  150. },
  151. onShow(e) {
  152. this.setData({
  153. isLogin: !!this.$cookieStorage.get('user_token')
  154. }); // 万有的接口
  155. // this.getStoreData();
  156. // !!this.$cookieStorage.get('user_token')
  157. // console.log(app.globalData.giftLogin)
  158. this.setData({
  159. is_newGiftLogin: app.globalData.giftLogin
  160. });
  161. let is_info = this.$cookieStorage.get('gift_info');
  162. if (!this.isLogin) {
  163. this.newPeopleGift();
  164. }
  165. if (this.isLogin && !is_info) {
  166. this.getPeopleGift();
  167. }
  168. },
  169. onLoad(e) {
  170. console.log(this.height); // 第三方平台配置颜色
  171. var gbConfig = this.$cookieStorage.get('globalConfig') || '';
  172. // this.setData({
  173. // config: gbConfig,
  174. // id: e.id,
  175. // name: e.name || ''
  176. // });
  177. this.config=gbConfig;
  178. this.id=e.id;
  179. this.name=e.name || '';
  180. if (!gbConfig) {
  181. let extConfig = {};
  182. if (extConfig) {
  183. this.setData({
  184. config: extConfig
  185. });
  186. }
  187. }
  188. wx.showLoading();
  189. this.queryMicroData(e.id, e.name || '');
  190. wx.getSystemInfo({
  191. success: res => {
  192. this.setData({
  193. screenWidth: res.screenWidth
  194. });
  195. }
  196. });
  197. this.init(e);
  198. },
  199. onPullDownRefresh(e) {
  200. wx.showLoading();
  201. this.queryData(this.id);
  202. },
  203. onShareAppMessage(res) {
  204. var info = this.$cookieStorage.get('init_info');
  205. return {
  206. title: info.title,
  207. path: `/${this.route}?id=${this.id}&name=${this.name}`,
  208. imageUrl: info.imgUrl
  209. };
  210. },
  211. components: {
  212. preview,
  213. seckill,
  214. group,
  215. indexBanner,
  216. indexCoupon,
  217. indexSuit,
  218. indexGroupon,
  219. indexSeckill,
  220. indexCall,
  221. indexNav,
  222. indexCategory,
  223. indexCube,
  224. indexGrouping,
  225. bigCoffee,
  226. healthTips,
  227. exclusivePlan,
  228. waterfallsFlow
  229. },
  230. methods: {
  231. shareapp(){
  232. var info = this.$cookieStorage.get('init_info');
  233. var title = info.title;
  234. var id = this.id;
  235. var name = this.name;
  236. uni.getProvider({
  237. service:'share',
  238. success:function(res){
  239. uni.share({
  240. provider: "weixin",
  241. scene: "WXSceneSession",
  242. type: 5,
  243. title:title,
  244. imageUrl:'https://cdn.guojiang.club/guojiang_logo.png',
  245. miniProgram:{
  246. id:'gh_72e65196278a',
  247. path:`pages/index/microPages/microPages?id=${id}&name=${name}`,
  248. type:0,
  249. webUrl: 'https://guojiang.club'
  250. },
  251. success: function (res) {
  252. console.log("success:" + JSON.stringify(res));
  253. },
  254. fail: function (err) {
  255. console.log("fail:" + JSON.stringify(err));
  256. }
  257. });
  258. }
  259. })
  260. },
  261. // 获取初始化数据
  262. init(e) {
  263. this.$http.get({
  264. api: 'api/system/init'
  265. }).then(res => {
  266. if (res.statusCode == 200) {
  267. res = res.data;
  268. if (res.status) {
  269. if (res.data && res.data.other_technical_support) {
  270. this.setData({
  271. author: res.data.other_technical_support
  272. });
  273. }
  274. /*wx.setNavigationBarTitle({
  275. title: res.data.mini_home_title
  276. })*/
  277. this.$cookieStorage.set('init_info', res.data.h5_share);
  278. this.$cookieStorage.set('service_info', res.data.online_service_data);
  279. this.$cookieStorage.set('distribution_valid_time', res.data.distribution_valid_time);
  280. this.$cookieStorage.set('init', res.data);
  281. this.setCode(e);
  282. } else {
  283. this.setCode(e);
  284. }
  285. } else {
  286. this.setCode(e);
  287. }
  288. });
  289. },
  290. setCode(e) {
  291. const timeMap = {
  292. y: 31536000000,
  293. m: 2592000000,
  294. d: 86400000,
  295. h: 3600000,
  296. n: 60000,
  297. s: 1000
  298. }; // 默认有效期为7天
  299. var valid_time = "";
  300. var clerk_id = e.clerk_id || "";
  301. var shop_id = e.shop_id || "";
  302. var agent_code = e.agent_code || '';
  303. if (e.scene) {
  304. var scene = decodeURIComponent(e.scene);
  305. var sceneArr = scene.split(',');
  306. if (sceneArr.length > 0) {
  307. agent_code = sceneArr[0];
  308. }
  309. }
  310. var cook_shop_id = this.$cookieStorage.get('shop_id');
  311. if (!this.$cookieStorage.get('distribution_valid_time')) {
  312. valid_time = 10080;
  313. } else {
  314. valid_time = this.$cookieStorage.get('distribution_valid_time');
  315. }
  316. console.log('这个是时间', valid_time);
  317. let timeStamp = new Date().getTime();
  318. timeStamp += timeMap.n * valid_time; // 当url上shop_id与缓存中shop_id不一致时,需要清除clerk_id。以此保证shop_id与clerk_id对应
  319. var cook_clerk_id = this.$cookieStorage.get('clerk_id');
  320. if (cook_shop_id != shop_id && cook_clerk_id) {
  321. this.$cookieStorage.clear('clerk_id');
  322. }
  323. if (agent_code) {
  324. this.$cookieStorage.set('agent_code', agent_code, valid_time + 'n'); // 如果有agent_code就将这次进入的时间缓存
  325. this.$cookieStorage.set('agent_code_time', timeStamp, valid_time + 'n'); // 如果有agent_code并且有coupon_agent_code就将coupon_agent_code清除,保证agent_code为第一位
  326. if (this.$cookieStorage.get('coupon_agent_code')) {
  327. this.$cookieStorage.clear('coupon_agent_code');
  328. }
  329. }
  330. if (clerk_id) {
  331. this.$cookieStorage.set('clerk_id', clerk_id, valid_time + 'n');
  332. }
  333. if (shop_id) {
  334. this.$cookieStorage.set('shop_id', shop_id, valid_time + 'n'); // 如果有shop_id就将这次进入的时间缓存
  335. this.$cookieStorage.set('shop_id_time', timeStamp, valid_time + 'n');
  336. }
  337. const code = agent_code || this.$cookieStorage.get('agent_code');
  338. if (code) {// this.getCodeUser(code);
  339. }
  340. },
  341. // 根据agent_code获取用户信息
  342. getCodeUser(agent_code) {
  343. this.$http.get({
  344. api: '/api/distribution/getAgentInfo',
  345. data: {
  346. agent_code: agent_code
  347. }
  348. }).then(res => {
  349. if (res.statusCode == 200) {
  350. res = res.data;
  351. if (res.status) {
  352. const title = res.data.name + ' X ' + res.data.home_title;
  353. wx.setNavigationBarTitle({
  354. title: title
  355. });
  356. }
  357. }
  358. });
  359. },
  360. jumpAuthor() {
  361. wx.navigateTo({
  362. url: '/pages/index/author/author'
  363. });
  364. },
  365. imgLoad(e) {
  366. var height = e.detail.height;
  367. var width = e.detail.width;
  368. var ratio = width / height;
  369. var screenWidth = this.screenWidth;
  370. this.setData({
  371. imgHeight: screenWidth / ratio
  372. });
  373. },
  374. changeItem(e) {
  375. var index = e.currentTarget.dataset.index;
  376. if (index == this.currentDesc) return;
  377. this.setData({
  378. goods_arr: this.indexData.Mini_H5TabData[index],
  379. tapIndex: index
  380. });
  381. },
  382. changeGoodsItem(e) {
  383. var index = e.currentTarget.dataset.index;
  384. if (index == this.currentDesc) return;
  385. this.setData({
  386. goodsIndex: index
  387. });
  388. },
  389. closeGift() {
  390. this.$cookieStorage.set('gift_info', true);
  391. this.setData({
  392. showGift: false
  393. });
  394. },
  395. showModal() {
  396. this.setData({
  397. showNoGift: true
  398. });
  399. },
  400. showPreview(e) {
  401. var items = this.indexData.H5GoodsRecommend[this.goodsIndex].items;
  402. var index = e.currentTarget.dataset.index;
  403. this.setData({
  404. goodsList: items[index].items,
  405. isShow: true
  406. });
  407. },
  408. jumpMeal(e) {
  409. // console.log(e);
  410. var id = e.currentTarget.dataset.suitid;
  411. wx.navigateTo({
  412. url: `/pages/store/meal/meal?id=${id}`
  413. });
  414. },
  415. // 关闭弹窗
  416. isClone() {
  417. this.setData({
  418. isShow: false
  419. });
  420. },
  421. // 新人进店有礼
  422. newPeopleGift() {
  423. this.$http.get({
  424. api: 'api/home/gift_new_user'
  425. }).then(res => {
  426. res = res.data;
  427. if (res.status && res.data) {
  428. var cache_no_gift = this.$cookieStorage.get('new_gift');
  429. console.log(res.data);
  430. res.data.gift.forEach(function (val) {
  431. val.coupon.usestart_at = val.coupon.usestart_at.replace(/\s.+$/, '');
  432. val.coupon.useend_at = val.coupon.useend_at.replace(/\s.+$/, '');
  433. });
  434. this.setData({
  435. noLoginGift: res.data
  436. });
  437. if (!cache_no_gift) {
  438. this.setData({
  439. showNoGift: true
  440. });
  441. }
  442. } // else{
  443. // wx.showModal({
  444. // title: '提示',
  445. // content: '请求失败',
  446. // success: res=>{
  447. // if (res.confirm) {
  448. //
  449. // }
  450. // }
  451. // })
  452. // }
  453. });
  454. },
  455. // 新人进店有礼(已登录)
  456. getPeopleGift() {
  457. this.$http.post({
  458. api: 'api/home/gift_new_user',
  459. header: {
  460. Authorization: this.$cookieStorage.get('user_token')
  461. }
  462. }).then(res => {
  463. res = res.data;
  464. var cache_info = this.$cookieStorage.get('gift_info');
  465. if (res.status && res.data && !cache_info) {
  466. // 判断是不是老用户
  467. if (!res.data.activity.is_new_user) {
  468. console.log(res.data);
  469. if (this.is_newGiftLogin) {
  470. res.data.activity.gift.forEach(function (val) {
  471. val.coupon.usestart_at = val.coupon.usestart_at.replace(/\s.+$/, '');
  472. val.coupon.useend_at = val.coupon.useend_at.replace(/\s.+$/, '');
  473. });
  474. this.setData({
  475. showGift: true,
  476. loginGift: res.data
  477. });
  478. } else {
  479. this.closeGift();
  480. }
  481. } else {
  482. res.data.activity.gift.forEach(function (val) {
  483. val.coupon.usestart_at = val.coupon.usestart_at.replace(/\s.+$/, '');
  484. val.coupon.useend_at = val.coupon.useend_at.replace(/\s.+$/, '');
  485. });
  486. this.setData({
  487. showGift: true,
  488. loginGift: res.data
  489. });
  490. }
  491. } else {}
  492. });
  493. },
  494. // 秒杀开始
  495. isStarts(e) {
  496. var idx = e.detail.idx;
  497. var index = e.detail.index;
  498. if (this.microData.pages[idx].value[index].associate.init_status != 1) {
  499. this.setData({
  500. [`microData.pages[${idx}].value[${index}].associate.init_status`]: 1
  501. });
  502. }
  503. },
  504. // 秒杀结束
  505. isEnd(e) {
  506. var idx = e.detail.idx;
  507. var index = e.detail.index;
  508. var newData = this.microData;
  509. newData.pages[idx].value.splice(index, 1);
  510. this.setData({
  511. microData: newData
  512. });
  513. },
  514. login() {
  515. pageLogin(getUrl());
  516. /*wx.redirectTo({
  517. url: '/pages/user/register/register?url='+getUrl()+encodeURIComponent('?giftLogin=true')
  518. })*/
  519. },
  520. close() {
  521. this.setData({
  522. showNoGift: false
  523. }); // this.showNoGift = false;
  524. var time = new Date(new Date().setHours(0, 0, 0, 0)).getTime() + 86400000;
  525. this.$cookieStorage.set('new_gift', true, time);
  526. },
  527. jumpToSearch() {
  528. wx.navigateTo({
  529. url: '/pages/store/search/search'
  530. });
  531. },
  532. jumpToDetail(e) {
  533. var id = e.currentTarget.dataset.id;
  534. wx.navigateTo({
  535. url: `/pages/store/detail/detail?id=${id}`
  536. });
  537. },
  538. jumpCall(e) {
  539. if (this.isLogin) {
  540. var id = e.currentTarget.dataset.id;
  541. wx.navigateTo({
  542. url: '/pages/store/call/call?id=' + id
  543. });
  544. } else {
  545. wx.showModal({
  546. content: '请先登录',
  547. success: res => {
  548. if (res.confirm || !res.cancel && !res.confirm) {
  549. pageLogin(getUrl());
  550. }
  551. }
  552. });
  553. }
  554. },
  555. jumpImg(e) {
  556. /*wx.scanCode({
  557. success: res => {
  558. console.log(res);
  559. }
  560. })
  561. return*/
  562. var src = e.currentTarget.dataset.src;
  563. if (!src || src == 'uto_miniprogram') return;
  564. wx.navigateTo({
  565. url: src
  566. });
  567. },
  568. //跳到搜索页面
  569. jumpSearch() {
  570. wx.navigateTo({
  571. url: '/pages/store/search/search'
  572. });
  573. },
  574. jumpMenu(e) {
  575. if (config.PACKAGES.isTab) {
  576. wx.switchTab({
  577. url: '/pages/index/classification/classification'
  578. });
  579. } else {
  580. wx.navigateTo({
  581. url: '/pages/index/classify/classify'
  582. });
  583. }
  584. },
  585. jumpStore(e) {
  586. var id = e.currentTarget.dataset.id;
  587. wx.navigateTo({
  588. url: '/pages/store/detail/detail?id=' + id
  589. });
  590. },
  591. //请求新数据
  592. queryMicroData(id, name = '') {
  593. this.$http.get({
  594. api: 'api/micro/page/' + id,
  595. data: {
  596. name: name
  597. }
  598. }).then(res => {
  599. if (res.statusCode == 200) {
  600. res = res.data;
  601. if (res.status) {
  602. this.setData({
  603. microData: res.data
  604. });
  605. if (res.data && res.data.micro_page) {
  606. wx.setNavigationBarTitle({
  607. title: res.data.micro_page.name == 'brand' ? '品牌馆' : res.data.micro_page.name
  608. });
  609. }
  610. } else {
  611. wx.showModal({
  612. content: res.message || '请求失败',
  613. showCancel: false
  614. });
  615. }
  616. } else {
  617. wx.showModal({
  618. content: '请求失败',
  619. showCancel: false
  620. });
  621. }
  622. wx.stopPullDownRefresh();
  623. wx.hideLoading();
  624. }).catch(() => {
  625. wx.stopPullDownRefresh();
  626. wx.hideLoading();
  627. wx.showModal({
  628. content: '请求失败',
  629. showCancel: false
  630. });
  631. });
  632. },
  633. go(e) {
  634. var link = e.currentTarget.dataset.link;
  635. if (link) {
  636. if (link.indexOf('c_id') != -1) {
  637. wx.navigateTo({
  638. url: '/pages/store/list/list?' + link
  639. });
  640. } else if (link.indexOf('id') != -1) {
  641. wx.navigateTo({
  642. url: '/pages/store/detail/detail?' + link
  643. });
  644. }
  645. }
  646. },
  647. // 领取优惠券
  648. getCoupon(e) {
  649. var token = this.$cookieStorage.get('user_token');
  650. var code = e.detail.code;
  651. var index = e.detail.index;
  652. if (token) {
  653. this.convertCoupon(code, index);
  654. } else {
  655. wx.showModal({
  656. content: '请先登录',
  657. showCancel: false,
  658. success: res => {
  659. if (res.confirm || !res.cancel && !res.confirm) {
  660. pageLogin(getUrl());
  661. }
  662. }
  663. });
  664. }
  665. },
  666. // 领取优惠券接口
  667. convertCoupon(code, index) {
  668. var token = this.$cookieStorage.get('user_token');
  669. wx.showLoading({
  670. title: "正在领取",
  671. mask: true
  672. });
  673. this.$http.post({
  674. api: 'api/coupon/convert',
  675. header: {
  676. Authorization: token
  677. },
  678. data: {
  679. coupon_code: code
  680. }
  681. }).then(res => {
  682. wx.hideLoading();
  683. if (res.statusCode == 200) {
  684. res = res.data;
  685. if (res.status) {
  686. var pages = this.microData.pages;
  687. pages.forEach((val, idx) => {
  688. if (val.name == 'micro_page_componet_coupon') {
  689. this.setData({
  690. [`microData.pages[${idx}].value[${index}].associate.has_get`]: true
  691. });
  692. }
  693. });
  694. wx.showToast({
  695. title: '领取成功'
  696. });
  697. } else {
  698. wx.showToast({
  699. title: res.message || '领取失败',
  700. image: '../../../static/error.png'
  701. });
  702. }
  703. } else {
  704. wx.showToast({
  705. title: '领取失败',
  706. image: '../../../static/error.png'
  707. });
  708. }
  709. }).catch(rej => {
  710. wx.showToast({
  711. title: '领取失败',
  712. image: '../../../static/error.png'
  713. });
  714. wx.hideLoading();
  715. });
  716. },
  717. jumpList(e) {
  718. var id = e.currentTarget.dataset.id;
  719. wx.navigateTo({
  720. url: '/pages/coupon/goods/goods?id=' + id
  721. });
  722. },
  723. setData: function (obj) {
  724. let that = this;
  725. let keys = [];
  726. let val, data;
  727. Object.keys(obj).forEach(function (key) {
  728. keys = key.split('.');
  729. val = obj[key];
  730. data = that.$data;
  731. keys.forEach(function (key2, index) {
  732. if (index + 1 == keys.length) {
  733. that.$set(data, key2, val);
  734. } else {
  735. if (!data[key2]) {
  736. that.$set(data, key2, {});
  737. }
  738. }
  739. data = data[key2];
  740. });
  741. });
  742. }
  743. },
  744. computed: {},
  745. watch: {}
  746. };
  747. </script>
  748. <style rel="stylesheet/less" lang="less">
  749. @import "microPages";
  750. </style>