Merge remote-tracking branch 'origin/user_action' into send_coupon
# Conflicts:
# api/members.js
# pages/tabbar/user/my.vue
| | |
| | | data:params |
| | | }); |
| | | } |
| | | |
| | | export function bindMemberAndStore(params){ |
| | | return http.request({ |
| | | url: '/lmk/member/bindMemberAndStore', |
| | | method: Method.PUT, |
| | | data:params |
| | | }); |
| | | } |
| | | return http.request({ |
| | | url: '/lmk/member/bindMemberAndStore', |
| | | method: Method.PUT, |
| | | data:params |
| | | }); |
| | | } |
New file |
| | |
| | | import { http, Method } from "@/utils/request.js"; |
| | | |
| | | /** |
| | | * 根据店铺优惠券关联ID获取优惠券详情 |
| | | * @param {string|number} storeCoupRef - 店铺优惠券关联ID |
| | | * @returns {Promise} 返回优惠券详情 |
| | | */ |
| | | export function getStoreCouponDetail(storeCoupRef) { |
| | | return http.request({ |
| | | url: `/lmk/store/coupon/${storeCoupRef}`, |
| | | method: Method.GET, |
| | | needToken: true, |
| | | }); |
| | | } |
| | | |
| | | /** |
| | | * 领取店铺优惠券 |
| | | * @param {string|number} storeCoupRef - 店铺优惠券关联ID |
| | | * @returns {Promise} 返回领取结果 |
| | | */ |
| | | export function claimStoreCoupon(storeCoupRef) { |
| | | return http.request({ |
| | | url: `/lmk/store/coupon/${storeCoupRef}`, |
| | | method: Method.POST, |
| | | needToken: true, |
| | | }); |
| | | } |
New file |
| | |
| | | /** |
| | | * 活动相关API |
| | | */ |
| | | import { http, Method } from "@/utils/request.js"; |
| | | |
| | | import api from "@/config/api.js"; |
| | | |
| | | /** |
| | | * 获取会话id |
| | | * |
| | | * @param params |
| | | */ |
| | | export function getSessionId() { |
| | | return http.request({ |
| | | url: "/lmk/action-record/sessionId", |
| | | method: Method.GET, |
| | | needToken: true |
| | | }); |
| | | } |
| | | /** |
| | | * 插入用户行为 |
| | | * |
| | | * @param params |
| | | */ |
| | | export function userAction(data) { |
| | | return http.request({ |
| | | url: "/lmk/action-record", |
| | | method: Method.POST, |
| | | needToken: true, |
| | | data:data |
| | | }); |
| | | } |
| | | /** |
| | | * 分享和点击分享 |
| | | * |
| | | * @param params |
| | | */ |
| | | export function userShare(data) { |
| | | return http.request({ |
| | | url: "/lmk/action-record/share", |
| | | method: Method.POST, |
| | | needToken: true, |
| | | data:data |
| | | }); |
| | | } |
| | |
| | | // "path": "pages/tabbar/user/my", |
| | | // "style": { |
| | | // "navigationBarTextStyle": "white", |
| | | // "navigationBarTextStyle": "white", |
| | | // "enablePullDownRefresh": true, |
| | | // "navigationStyle": "custom", |
| | | // "componentPlaceholder": { |
| | |
| | | } |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | { |
| | | "root": "pages/storeClaim", |
| | | "pages": [{ |
| | | "path" : "store-claim", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText" : "优惠卷领取", |
| | | "componentPlaceholder":{ |
| | | "u-card": "view", |
| | | "u-navbar": "view", |
| | | "u-tag": "view", |
| | | "u-icon": "view", |
| | | "u-button": "view", |
| | | "u-empty": "view" |
| | | |
| | | } |
| | | } |
| | | }] |
| | | } |
| | | |
| | | ], |
| | | "globalStyle": { |
| | | "navigationBarTextStyle": "black", |
| | |
| | | import { |
| | | getAllCoupons |
| | | } from "@/api/promotions.js"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | pageSize: 10, |
| | | }, |
| | | storeId: "", //店铺 id, |
| | | couponData: "" |
| | | couponData: "", |
| | | sendOnShow:false, |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"COUPON_CENTER", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"LIST" |
| | | } |
| | | }; |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | }, |
| | | onLoad(option) { |
| | | this.actionParam.pageParams = JSON.stringify(option) |
| | | this.storeId = option.storeId; |
| | | this.getCoupon(); |
| | | }, |
| | |
| | | import '@/components/uview-components/uview-ui'; |
| | | |
| | | import { getMemberCoupons } from "@/api/members.js"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | |
| | | export default { |
| | | data() { |
| | |
| | | }, |
| | | ], |
| | | couponList: [], //优惠券列表 |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"MY_COUPON", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"LIST" |
| | | } |
| | | }; |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | this.navList[this.tabCurrentIndex].params.pageNumber = 1; |
| | | this.navList[this.tabCurrentIndex].dataList = []; |
| | | this.getData(); |
| | |
| | | import '@/components/uview-components/uview-ui' |
| | | import * as API_Trade from "@/api/trade"; |
| | | import {payCallback} from '@/api/members' |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | walletValue: 0.0, |
| | | // 支付倒计时 |
| | | autoCancel: 0, |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"PAY_ORDER", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | } |
| | | |
| | | }; |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | }, |
| | | onLoad(val) { |
| | | this.routerVal = val; |
| | | |
| | | this.actionParam.pageParams = JSON.stringify(val) |
| | | //初始化参数 |
| | | // #ifdef APP-PLUS |
| | | this.paymentType = "APP"; |
| | |
| | | </template> |
| | | <script> |
| | | // import goodsRecommend from "@/pages/cart/m-goods-recommend/index.vue"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | payPrice: 0, |
| | | goodsList: [], |
| | | activeColor: this.$mainColor, |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"PAY_SUCCESS", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | } |
| | | }; |
| | | }, |
| | | // components: { |
| | |
| | | } |
| | | }, |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | }, |
| | | onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | this.paymentMethod = options.paymentMethod || ""; |
| | | this.from = options.from || ""; |
| | | this.payPrice = options.payPrice || 0; |
| | |
| | | |
| | | <script> |
| | | import TopBar from "@/components/TopBar.vue"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | import { |
| | | getCategoryList, |
| | | getGoodsList, |
| | |
| | | order: 'asc', |
| | | sort: 'goodsSort' |
| | | }, |
| | | pageSessionNo:"", |
| | | sendOnShow:false, |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"SHOPPING_SQUARE", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"LIST" |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | console.log(this.maxPages) |
| | | } |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | }, |
| | | async onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | |
| | | async onLoad() { |
| | | await this.getCartList(); |
| | | // 获取状态栏高度 |
| | | const systemInfo = uni.getSystemInfoSync(); |
| | |
| | | import '@/components/uview-components/uview-ui'; |
| | | import * as API_Trade from "@/api/trade"; |
| | | import { debounce } from "@/utils/tools.js"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | // import uniNumberBox from '@/components/uni-number-box' |
| | | export default { |
| | | data() { |
| | |
| | | checkout: false, //全选按钮 |
| | | WEIXIN_num: "", //购物车兼容微信步进器 |
| | | marginBottom: 0 ,// 底部安全区域 |
| | | windowHeight: 0 // 可使用屏幕高度 |
| | | windowHeight: 0 ,// 可使用屏幕高度 |
| | | pageSessionNo:"", |
| | | sendOnShow:false, |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"CART_LIST", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | } |
| | | }; |
| | | }, |
| | | |
| | |
| | | onPullDownRefresh(){ |
| | | this.getCardData(); |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | |
| | | }, |
| | | /** |
| | | * 初始化信息 |
| | | */ |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | this.deleteShow ? (this.deleteShow = false) : true; |
| | | this.getCardData(); |
| | | // if (this.$refs.swiperAction) { |
| | |
| | | import { getRecommendTag3 } from "@/api/video-tag.js"; |
| | | import { getFileKey } from "@/utils/file.js"; |
| | | import { getVideoGoodsList } from "@/api/goods.js"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | |
| | | export default { |
| | | components: {MyTag}, |
| | |
| | | screenWidth: 375, |
| | | gap: 10, // 图片间距 |
| | | windowHeight: 0, |
| | | marginBottom: 0 |
| | | marginBottom: 0, |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"PUBLISH_VIDEO", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"LIST" |
| | | } |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | return (this.screenWidth - (this.gap * 4) - 20) / 3 |
| | | } |
| | | }, |
| | | onLoad() { |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | |
| | | // 获取屏幕宽度 |
| | | const systemInfo = uni.getSystemInfoSync() |
| | | this.screenWidth = systemInfo.windowWidth |
| | |
| | | this.getVideoGoodsByEs() |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | this.initCOS() |
| | | // 初始化推荐标签 |
| | | this.getRecommendTags() |
| | |
| | | import { silentLogin } from "@/api/connect.js"; |
| | | import { getUserInfo } from "@/api/members"; |
| | | import storage from "@/utils/storage.js"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | components: {TopBar}, |
| | | computed: { |
| | |
| | | similarlyNomore: false, // 是否还有更多相似视频 |
| | | similaryVideoIndex: 0, // 相似视频的播放位置 |
| | | similarlyLoading: false, // 相似视频加载 |
| | | marginBottom: 0 // 底部安全区域 |
| | | marginBottom: 0 ,// 底部安全区域 |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"HEALTH_VIDEO", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | } |
| | | } |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | // const token = storage.getAccessToken(); |
| | | // if (! token) { |
| | | // this.wxSilentLogin(() => { |
| | |
| | | this.totalHidenTime += duration |
| | | } |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onLoad(option) { |
| | | this.marginBottom = uni.getSystemInfoSync().safeAreaInsets.bottom |
| | |
| | | queryParam.shareType = shareType |
| | | queryParam.source = source |
| | | console.log('解析参数:', { shareType, videoId,source }); |
| | | this.actionParam.pageParams = JSON.stringify(params) |
| | | this.actionParam.joinType = 'SHARE' |
| | | } |
| | | const token = storage.getAccessToken(); |
| | | if (! token) { |
| | | this.wxSilentLogin(() => { |
| | | // 判断是不是点击分享链接进来的 |
| | | if (option.userId && option.videoId) { |
| | | this.actionParam.pageParams = JSON.stringify(option) |
| | | this.actionParam.joinType = 'SCAN' |
| | | queryParam.videoId = option.videoId |
| | | // 保存分享点击记录 |
| | | saveShareClickRecord({refId: option.videoId, shareUserId: option.userId}) |
| | |
| | | } from "@/api/collect.js"; |
| | | import { saveShare, saveShareClickRecord } from "@/api/share.js"; |
| | | import storage from "@/utils/storage.js"; |
| | | |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | computed: { |
| | | hasPlayTime() { |
| | |
| | | similarlyNomore: false, // 是否还有更多相似视频 |
| | | similaryVideoIndex: 0, // 相似视频的播放位置 |
| | | similarlyLoading: false, // 相似视频加载 |
| | | marginBottom: 0 // 底部安全区域 |
| | | marginBottom: 0 ,// 底部安全区域 |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"KITCHEN_VIDEO", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"LIST" |
| | | } |
| | | } |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | // this.showDrawer('showLeft') |
| | | this.loadVideos() |
| | | // 如果视频按下暂停后切换页面再回到页面时,只算暂停时间(因为暂停时间和离开页面时间是重复的,只算一个) |
| | |
| | | this.totalHidenTime += duration |
| | | } |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onLoad(option) { |
| | | this.marginBottom = uni.getSystemInfoSync().safeAreaInsets.bottom; |
| | |
| | | queryParam.shareType = shareType |
| | | queryParam.source = source |
| | | console.log('解析参数:', { shareType, videoId,source }); |
| | | this.actionParam.pageParams = JSON.stringify(params) |
| | | this.actionParam.joinType = 'SHARE' |
| | | } |
| | | const token = storage.getAccessToken(); |
| | | if(!token){ |
| | | this.wxSilentLogin(() => { |
| | | // 判断是不是点击分享链接进来的 |
| | | if (option.userId && option.videoId) { |
| | | this.actionParam.pageParams = JSON.stringify(option) |
| | | this.actionParam.joinType = 'SCAN' |
| | | queryParam.videoId = option.videoId |
| | | // 保存分享点击记录 |
| | | saveShareClickRecord({refId: option.videoId, shareUserId: option.userId}) |
| | |
| | | getActivityDetail, |
| | | activityReport |
| | | } from '@/api/activity.js'; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | collectType: '', |
| | | refId: '', |
| | | }, |
| | | pageSessionNo:"", |
| | | sendOnShow:false, |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"ACTIVITY_DETAIL", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | } |
| | | }; |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | }, |
| | | onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | // 接收 URL 参数 |
| | | if (options.id) { |
| | | this.detailId = options.id; |
| | |
| | | import TopBar from "@/components/TopBar.vue"; |
| | | import '@/components/uview-components/uview-ui'; |
| | | import {getActivityReportList} from '@/api/activity.js'; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | components: {TopBar}, |
| | | data() { |
| | |
| | | }, |
| | | loading: false, // 是否正在加载 |
| | | noMore: false, // 是否没有更多数据 |
| | | total: 0 // 总数据量 |
| | | total: 0 ,// 总数据量 |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"ACTIVITY_LIST", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"LIST" |
| | | } |
| | | }; |
| | | }, |
| | | onLoad() { |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | }, |
| | | onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | this.getActivityList(); |
| | | }, |
| | | methods: { |
| | |
| | | import { getAfterSaleList, cancelAfterSale } from "@/api/after-sale.js"; |
| | | import { getOrderList } from "@/api/order.js"; |
| | | import storage from "@/utils/storage"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | |
| | | export default { |
| | | |
| | |
| | | }, |
| | | status: "loadmore", |
| | | keywords: "", // 搜索订单sn |
| | | pageSessionNo:"", |
| | | sendOnShow:false, |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"AFTER_SALE", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"LIST" |
| | | } |
| | | }; |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | }, |
| | | onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | this.orderList = []; |
| | | this.params.pageNumber = 1; |
| | | if (options.orderSn) this.params.keywords = options.orderSn; |
| | |
| | | import { upload } from "@/api/common.js"; |
| | | import { checkBankno } from "@/utils/Foundation"; |
| | | import storage from "@/utils/storage.js"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | component: { |
| | | city, |
| | |
| | | refundWay: "", |
| | | serviceType: "", //申请类型 |
| | | }, |
| | | pageSessionNo:"", |
| | | sendOnShow:false, |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"REFUND_ORDER", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | } |
| | | }; |
| | | }, |
| | | |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | }, |
| | | /** |
| | | * 判断当前内容并生成数据 |
| | | */ |
| | | onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | let navTitle = "申请售后"; |
| | | this.form.serviceType = "RETURN_GOODS"; |
| | | if (options.value == 1) { |
| | |
| | | import '@/components/uview-components/uview-ui' |
| | | import { getAfterSaleInfo } from "@/api/after-sale"; |
| | | import storage from "@/utils/storage"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | data() { |
| | | return { |
| | | sn: "", |
| | | sku: {}, //sku |
| | | applyInfo:"" |
| | | applyInfo:"", |
| | | pageSessionNo:"", |
| | | sendOnShow:false, |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"APPLY_SALE", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"LIST" |
| | | } |
| | | }; |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | }, |
| | | onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | this.sn = options.sn; |
| | | this.sku = storage.getAfterSaleData(); |
| | | // 查看当前商品是否支持退款退货 |
| | |
| | | import LiLiWXPay from "@/js_sdk/lili-pay/wx-pay.js"; |
| | | import invoices from "@/pages/order/invoice/setInvoice"; |
| | | import { mapState } from "vuex"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | onLoad: function (val) { |
| | | this.routerVal = val; |
| | | this.actionParam.pageParams = JSON.stringify(val) |
| | | }, |
| | | components: { |
| | | invoices, |
| | |
| | | storeAddress: "", |
| | | |
| | | originOrderData:"", // 原始订单数据 |
| | | pageSessionNo:"", |
| | | sendOnShow:false, |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"FILL_ORDER", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | } |
| | | }; |
| | | }, |
| | | watch: { |
| | |
| | | return true; //阻止默认返回行为 |
| | | } |
| | | }, |
| | | |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | async onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | // 判断是否存在写过备注信息的商品 |
| | | if (this.remark && this.remark.length > 0) { |
| | | this.remarkFlag = true; |
| | |
| | | </u-button> --> |
| | | </view> |
| | | </view> |
| | | <view style="display: flex;justify-content: space-around;"> |
| | | <view class="" @click="callPhone"> |
| | | 客服热线: 028-84472936 |
| | | </view> |
| | | <view class="" @click="copyToClipboard"> |
| | | 客服微信: meiyikuang |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <uni-load-more :status="tabItem.loadStatus"></uni-load-more> |
| | |
| | | import { getClearReason } from "@/api/after-sale.js"; |
| | | import LiLiWXPay from "@/js_sdk/lili-pay/wx-pay.js"; |
| | | import {buyBack} from "@/api/trade.js"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | |
| | | data() { |
| | |
| | | reason: "", //取消原因 |
| | | cancelList: "", //取消列表 |
| | | rogShow: false, //显示是否收货 |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"ORDER_LIST", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | } |
| | | }; |
| | | }, |
| | | |
| | |
| | | } |
| | | // this.loadData(this.status); |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | if(this.$options.filters.tipsToLogin()){ |
| | | if (!this.tabCurrentIndex) { |
| | | this.initData(0); |
| | |
| | | }, |
| | | |
| | | onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | /** |
| | | * 修复app端点击除全部订单外的按钮进入时不加载数据的问题 |
| | | * 替换onLoad下代码即可 |
| | |
| | | }, |
| | | }, |
| | | methods: { |
| | | copyToClipboard(){ |
| | | uni.setClipboardData({ |
| | | data:'meiyikuang', |
| | | success() { |
| | | uni.showToast({ |
| | | title: '复制成功', |
| | | icon: 'none' |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | callPhone(){ |
| | | uni.showModal({ |
| | | title:'确认联系客服吗?', |
| | | success(e) { |
| | | if(e.confirm){ |
| | | uni.makePhoneCall({ |
| | | phoneNumber:'028-84472936' |
| | | }) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | openCouponPackage(order){ |
| | | console.log(order) |
| | | uni.navigateTo({ |
| | |
| | | import shares from "@/pages/order/m-share/index.vue"; //分享 |
| | | |
| | | import { getClearReason } from "@/api/after-sale.js"; |
| | | |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | components: { |
| | | shares, |
| | |
| | | orderPackage:"", |
| | | //商品信息再来一单使用 |
| | | skuList:[], |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"ORDER_DETAIL", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | } |
| | | }; |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | }, |
| | | onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | this.loadData(options.sn); |
| | | this.sn = options.sn; |
| | | }, |
| | |
| | | </template> |
| | | <script> |
| | | import bgConfig from '@/pages/prize/PrizeDetail/prize-bgConfig.js' |
| | | import { getSessionId, userAction ,userShare } from "@/api/userAction.js"; |
| | | |
| | | import { |
| | | prizeInfo, |
| | | prizeNum, |
| | |
| | | shareTimelineAttempt: false, |
| | | activityCover: '', |
| | | activityName: '', |
| | | couponId: '' |
| | | couponId: '', |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"PRIZE_DETAIL", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | }, |
| | | shareParam:{ |
| | | pageCode:"PRIZE_DETAIL", |
| | | shareOption:"{}", |
| | | pageType:"DETAIL" |
| | | }, |
| | | shareId:'', |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | return [...this.originalWinners] |
| | | } |
| | | }, |
| | | onUnload() { |
| | | let param = Object.assign({}, this.actionParam); |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = Object.assign({}, this.actionParam); |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | this.actionParam.sessionId = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = Object.assign({}, this.actionParam); |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | }, |
| | | async onLoad(option) { |
| | | if(option.shareId){ |
| | | this.actionParam.shareId = option.shareId; |
| | | this.actionParam.joinType = 'SHARE' |
| | | console.log('触发onLoad') |
| | | } |
| | | this.actionParam.pageParams = JSON.stringify(option) |
| | | |
| | | const pages = getCurrentPages() |
| | | console.log('================pages ', pages) |
| | | this.activityId = option.id |
| | |
| | | // this.startAutoScroll() |
| | | }, |
| | | onShareAppMessage() { |
| | | return { |
| | | // 返回一个Promise |
| | | return new Promise((resolve) => { |
| | | this.shareId = ''; |
| | | this.shareParam.shareOption = JSON.stringify({ |
| | | id:this.activityId |
| | | }) |
| | | userShare(this.shareParam).then(res => { |
| | | this.shareId = res.data.data; |
| | | console.log('------------------1》', this.shareId); |
| | | |
| | | // 当获取到shareId后,再resolve分享配置 |
| | | resolve({ |
| | | title: this.activityName, |
| | | path: '/pages/prize/PrizeDetail/PrizeDetail?id=' + this.activityId, |
| | | path: '/pages/prize/PrizeDetail/PrizeDetail?id=' + this.activityId + '&shareId=' + this.shareId, |
| | | imageUrl: this.activityCover, |
| | | success(e) { |
| | | console.log("分享成功", e) |
| | | console.log("分享成功", e); |
| | | }, |
| | | fail(e) { |
| | | console.log('分享失败', e) |
| | | console.log('分享失败', e); |
| | | } |
| | | } |
| | | }); |
| | | }).catch(err => { |
| | | // 处理错误情况,例如使用默认参数 |
| | | console.error('获取分享ID失败', err); |
| | | resolve({ |
| | | title: this.activityName, |
| | | path: '/pages/prize/PrizeDetail/PrizeDetail?id=' + this.activityId, |
| | | imageUrl: this.activityCover |
| | | }); |
| | | }); |
| | | }); |
| | | }, |
| | | beforeDestroy() { |
| | | this.stopAutoScroll() |
| | |
| | | import popups from "@/pages/product/popups/popups.vue"; //气泡框 |
| | | import takeDownFormSaleGoods from "@/pages/product/m-take-down-sale-goods/index.vue"; //下架框 |
| | | import setup from "./product/popup/popup"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | import { |
| | | getSTSToken |
| | | } from '@/api/common.js' |
| | |
| | | IMLink: "", // IM地址 |
| | | wholesaleList: [], |
| | | takeDownFromSale: false, // 下架销售状态 |
| | | pageSessionNo:"", |
| | | sendOnShow:false, |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"GOODS_DETAILS", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL", |
| | | shareId:null, |
| | | }, |
| | | shareParam:{ |
| | | pageCode:"GOODS_DETAILS", |
| | | shareOption:"{}", |
| | | pageType:"DETAIL" |
| | | } |
| | | }; |
| | | }, |
| | | |
| | |
| | | queryParam.id = id; |
| | | queryParam.goodsId = gooodsId; |
| | | this.routerVal = queryParam; |
| | | this.actionParam.pageParams = JSON.stringify(params) |
| | | this.actionParam.joinType = 'SCAN' |
| | | }else{ |
| | | this.routerVal = options; |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | } |
| | | console.log('打印信息') |
| | | console.log(options) |
| | |
| | | }); |
| | | // #endif |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | async onShow () { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | this.goodsDetail = {}; |
| | | //如果有参数ids说明事分销短连接,需要获取参数 |
| | | if (this.routerVal.scene) { |
New file |
| | |
| | | <template> |
| | | <view class="container"> |
| | | <!-- 优惠券卡片 --> |
| | | <view class="coupon-card" v-if="couponInfo.storeCoupRef"> |
| | | <u-card :border="false" :head-style="{ padding: '30rpx' }" :body-style="{ padding: '0 30rpx 30rpx' }"> |
| | | <!-- 头部:店铺信息 --> |
| | | <view slot="head" class="card-head"> |
| | | <view class="store-info"> |
| | | <u-icon name="home" size="36" color="#999"></u-icon> |
| | | <text class="store-name">{{ couponInfo.storeName }}</text> |
| | | </view> |
| | | <u-tag v-if="couponInfo.claimStatus === 'NOT_CLAIM'" text="未领取" type="warning" mode="plain" size="mini" /> |
| | | <u-tag v-else-if="couponInfo.claimStatus === 'CLAIM'" text="已领取" type="success" mode="plain" size="mini" /> |
| | | <u-tag v-else text="已过期" type="info" mode="plain" size="mini" /> |
| | | </view> |
| | | |
| | | <!-- 主体:优惠券信息 --> |
| | | <view slot="body" class="card-body"> |
| | | <view class="coupon-title"> |
| | | <text class="title">{{ couponInfo.couponName }}</text> |
| | | <text class="coupon-no">编号:{{ couponInfo.couponNo }}</text> |
| | | </view> |
| | | |
| | | <view class="coupon-desc" v-if="couponInfo.couponDesc"> |
| | | <text class="desc">{{ couponInfo.couponDesc }}</text> |
| | | </view> |
| | | |
| | | <view class="coupon-rule" v-if="couponInfo.couponRule"> |
| | | <text class="rule-title">使用规则:</text> |
| | | <text class="rule-content">{{ couponInfo.couponRule }}</text> |
| | | </view> |
| | | |
| | | <view class="coupon-time" v-if="couponInfo.startTime && couponInfo.endTime"> |
| | | <u-icon name="clock" size="28" color="#999"></u-icon> |
| | | <text class="time-text">有效期:{{ formatDate(couponInfo.startTime) }} 至 {{ formatDate(couponInfo.endTime) }}</text> |
| | | </view> |
| | | |
| | | <view class="coupon-condition" v-if="couponInfo.consumeThreshold > 0"> |
| | | <u-icon name="coupon" size="28" color="#999"></u-icon> |
| | | <text class="condition-text">满{{ formatAmount(couponInfo.consumeThreshold) }}元可用</text> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 底部:操作按钮 --> |
| | | <view slot="foot" class="card-foot"> |
| | | <u-button |
| | | :type="couponInfo.claimStatus === 'NOT_CLAIM' ? 'primary' : 'default'" |
| | | :disabled="couponInfo.claimStatus !== 'NOT_CLAIM'" |
| | | :loading="loading" |
| | | @click="claimCoupon" |
| | | :ripple="true" |
| | | :hair-line="false" |
| | | > |
| | | {{ couponInfo.claimStatus === 'NOT_CLAIM' ? '立即领取' : couponInfo.claimStatus === 'CLAIM' ? '已领取' : '已过期' }} |
| | | </u-button> |
| | | </view> |
| | | </u-card> |
| | | </view> |
| | | |
| | | <!-- 空状态 --> |
| | | <view class="empty-state" v-else> |
| | | <u-empty text="优惠券信息不存在" mode="coupon" :icon-size="200"></u-empty> |
| | | </view> |
| | | |
| | | <!-- 使用说明 --> |
| | | <view class="instructions"> |
| | | <view class="instructions-title"> |
| | | <u-icon name="info-circle" size="28" color="#999"></u-icon> |
| | | <text class="title-text">使用说明</text> |
| | | </view> |
| | | <view class="instructions-content"> |
| | | <text class="content-text">1. 优惠券仅限在指定店铺使用\n2. 每个用户限领一张\n3. 优惠券不可兑换现金\n4. 请在有效期内使用</text> |
| | | </view> |
| | | </view> |
| | | |
| | | <!-- 空白占位 --> |
| | | <view class="placeholder"></view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getStoreCouponDetail, claimStoreCoupon } from '@/api/store-coupon.js'; |
| | | import { formatPrice } from '@/utils/Foundation.js'; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | storeCoupRef: '', // 店铺优惠券关联ID |
| | | couponInfo: { |
| | | id: "", |
| | | storeCoupRef: "", |
| | | storeId: "", |
| | | storeName: "", |
| | | couponId: "", |
| | | couponName: "", |
| | | couponNo: "", |
| | | couponAmount: 0, // 优惠金额 |
| | | couponDesc: "", // 优惠券描述 |
| | | couponRule: "", // 使用规则 |
| | | startTime: "", // 开始时间 |
| | | endTime: "", // 结束时间 |
| | | consumeThreshold: 0, // 消费门槛 |
| | | claimStatus: "NOT_CLAIM", // 领取状态 |
| | | } |
| | | } |
| | | }, |
| | | onShow() { |
| | | this.getCouponDetail(this.storeCoupRef); |
| | | }, |
| | | onLoad(options) { |
| | | // 获取传递的店铺优惠券关联ID |
| | | if (options.storeCoupRef) { |
| | | this.storeCoupRef = options.storeCoupRef; |
| | | this.getCouponDetail(options.storeCoupRef); |
| | | } else if (options.id) { |
| | | // 兼容旧参数 |
| | | this.storeCoupRef = options.id; |
| | | this.getCouponDetail(options.id); |
| | | }else if(options.q){ |
| | | // 双重解码:微信对URL进行了两次编码 |
| | | const decodedUrl = decodeURIComponent(decodeURIComponent(options.q)); |
| | | console.log('原始URL:', decodedUrl); |
| | | |
| | | // 解析URL中的查询参数 |
| | | const params = this.parseUrlParams(decodedUrl); |
| | | this.storeCoupRef = params.id; |
| | | this.getCouponDetail(this.storeCoupRef); |
| | | } |
| | | else { |
| | | this.$u.toast('参数错误'); |
| | | } |
| | | }, |
| | | methods: { |
| | | // 解析URL参数 |
| | | parseUrlParams(url) { |
| | | const params = {}; |
| | | // 处理可能存在的hash(如果有的话) |
| | | const cleanUrl = url.split('#')[0]; |
| | | const queryStr = cleanUrl.split('?')[1] || ''; |
| | | |
| | | queryStr.split('&').forEach(pair => { |
| | | const [key, value] = pair.split('='); |
| | | if (key) { |
| | | // 如果值存在,则解码,否则设为空字符串 |
| | | params[key] = value ? decodeURIComponent(value) : ''; |
| | | } |
| | | }); |
| | | |
| | | return params; |
| | | }, |
| | | // 格式化金额 |
| | | formatAmount(amount) { |
| | | if (!amount) return '0'; |
| | | return formatPrice(parseFloat(amount)); |
| | | }, |
| | | |
| | | // 格式化日期 |
| | | formatDate(dateStr) { |
| | | if (!dateStr) return ''; |
| | | return dateStr.split(' ')[0]; |
| | | }, |
| | | |
| | | // 获取优惠券详情 |
| | | async getCouponDetail(storeCoupRef) { |
| | | uni.showLoading({ |
| | | title: '加载中...' |
| | | }); |
| | | |
| | | try { |
| | | const res = await getStoreCouponDetail(storeCoupRef); |
| | | console.log(JSON.stringify(res)) |
| | | if (res.data.code === 200) { |
| | | this.couponInfo = { |
| | | ...this.couponInfo, |
| | | ...res.data.data, |
| | | couponAmount: res.data.data.couponAmount || 0, |
| | | consumeThreshold: res.data.data.consumeThreshold || 0 |
| | | }; |
| | | } else { |
| | | this.$u.toast(res.data.message || '获取优惠券详情失败'); |
| | | } |
| | | } catch (err) { |
| | | this.$u.toast('获取优惠券详情失败,请稍后重试'); |
| | | console.error('获取优惠券详情失败:', err); |
| | | } finally { |
| | | uni.hideLoading(); |
| | | } |
| | | }, |
| | | |
| | | // 领取优惠券 |
| | | async claimCoupon() { |
| | | if (this.couponInfo.claimStatus !== 'NOT_CLAIM') { |
| | | return; |
| | | } |
| | | |
| | | // 确认领取 |
| | | uni.showModal({ |
| | | title: '提示', |
| | | content: `确定要领取"${this.couponInfo.couponName}"优惠券吗?`, |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | this.doClaimCoupon(); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 执行领取优惠券操作 |
| | | async doClaimCoupon() { |
| | | this.loading = true; |
| | | try { |
| | | // 调用领取优惠券接口 |
| | | const res = await claimStoreCoupon(this.storeCoupRef); |
| | | if (res.data.code === 200) { |
| | | this.$u.toast('领取成功'); |
| | | this.couponInfo.claimStatus = 'CLAIM'; |
| | | |
| | | // 延迟返回上一页,让用户看到领取成功的提示 |
| | | setTimeout(() => { |
| | | uni.navigateBack(); |
| | | }, 1500); |
| | | } else { |
| | | this.$u.toast(res.data.message || '领取失败'); |
| | | } |
| | | } catch (err) { |
| | | this.$u.toast('领取失败,请稍后重试'); |
| | | console.error('领取优惠券失败:', err); |
| | | } finally { |
| | | this.loading = false; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .container { |
| | | background-color: #f5f5f5; |
| | | min-height: 100vh; |
| | | } |
| | | |
| | | .coupon-card { |
| | | margin: 20rpx; |
| | | } |
| | | |
| | | .card-head { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | |
| | | .store-info { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .store-name { |
| | | margin-left: 10rpx; |
| | | font-size: 32rpx; |
| | | font-weight: bold; |
| | | color: #333; |
| | | } |
| | | |
| | | .card-body { |
| | | padding-top: 20rpx; |
| | | } |
| | | |
| | | .coupon-title { |
| | | margin-bottom: 30rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | } |
| | | |
| | | .title { |
| | | font-size: 36rpx; |
| | | font-weight: bold; |
| | | color: #333; |
| | | } |
| | | |
| | | .coupon-no { |
| | | font-size: 24rpx; |
| | | color: #999; |
| | | margin-left: 20rpx; |
| | | } |
| | | |
| | | .coupon-desc { |
| | | margin-bottom: 30rpx; |
| | | } |
| | | |
| | | .desc { |
| | | font-size: 28rpx; |
| | | color: #666; |
| | | } |
| | | |
| | | .coupon-rule { |
| | | margin-bottom: 30rpx; |
| | | } |
| | | |
| | | .rule-title { |
| | | font-size: 28rpx; |
| | | color: #333; |
| | | font-weight: bold; |
| | | } |
| | | |
| | | .rule-content { |
| | | font-size: 26rpx; |
| | | color: #666; |
| | | } |
| | | |
| | | .coupon-time, .coupon-condition { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 20rpx; |
| | | } |
| | | |
| | | .time-text, .condition-text { |
| | | font-size: 24rpx; |
| | | color: #999; |
| | | margin-left: 10rpx; |
| | | } |
| | | |
| | | .card-foot { |
| | | padding: 20rpx 0; |
| | | } |
| | | |
| | | .instructions { |
| | | background-color: #ffffff; |
| | | margin: 20rpx; |
| | | padding: 30rpx; |
| | | border-radius: 16rpx; |
| | | } |
| | | |
| | | .instructions-title { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 20rpx; |
| | | } |
| | | |
| | | .title-text { |
| | | margin-left: 10rpx; |
| | | font-size: 30rpx; |
| | | font-weight: bold; |
| | | color: #333; |
| | | } |
| | | |
| | | .instructions-content { |
| | | padding-left: 40rpx; |
| | | } |
| | | |
| | | .content-text { |
| | | font-size: 26rpx; |
| | | color: #666; |
| | | line-height: 1.6; |
| | | } |
| | | |
| | | .placeholder { |
| | | height: 40rpx; |
| | | } |
| | | |
| | | .empty-state { |
| | | margin-top: 200rpx; |
| | | } |
| | | </style> |
| | |
| | | import { setPopupRedisTime, getPopupAcitivty } from '@/api/popup.js' |
| | | import { changeCollect } from "@/api/collect.js"; |
| | | import { saveShare, saveShareClickRecord } from "@/api/share.js"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | import { silentLogin } from "@/api/connect.js"; |
| | | import { getUserInfo } from "@/api/members"; |
| | | import storage from "@/utils/storage.js"; |
| | |
| | | similarlyNomore: false, // 是否还有更多相似视频 |
| | | similaryVideoIndex: 0, // 相似视频的播放位置 |
| | | similarlyLoading: false, // 相似视频加载 |
| | | marginBottom: 0 // 底部安全区域 |
| | | marginBottom: 0 ,// 底部安全区域 |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"RECOMMEND_VIDEO", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"LIST" |
| | | } |
| | | } |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | |
| | | this.openActivityPopup() |
| | | |
| | |
| | | this.totalHidenTime += duration |
| | | } |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onLoad(option) { |
| | | |
| | | console.log('-----------分享出的数据---------->', option) |
| | |
| | | const shareType = params.shareType; |
| | | const videoId = params.videoId; |
| | | queryParam.videoId = videoId |
| | | this.actionParam.joinType = "SCAN"; |
| | | this.actionParam.pageParams = JSON.stringify(params); |
| | | |
| | | console.log('解析参数:', { shareType, videoId }); |
| | | } |
| | | const token = storage.getAccessToken(); |
| | |
| | | this.wxSilentLogin(() => { |
| | | // 判断是不是点击分享链接进来的 |
| | | if (option.userId && option.videoId) { |
| | | this.actionParam.joinType = "SHARE"; |
| | | this.actionParam.pageParams = JSON.stringify(option); |
| | | queryParam.videoId = option.videoId |
| | | // 保存分享点击记录 |
| | | saveShareClickRecord({ refId: option.videoId, shareUserId: option.userId }) |
| | |
| | | import { getUserWallet } from "@/api/members"; |
| | | import configs from '@/config/config' |
| | | import storage from '@/utils/storage.js' |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | components: { |
| | | tool |
| | |
| | | couponNum: "", |
| | | footNum: "", |
| | | walletNum: "", |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"TBA_BAR_MY", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | } |
| | | }; |
| | | }, |
| | | onLoad(option) { |
| | | console.log('-----------分享出的数据---------->', option) |
| | | let shareStoreId = null; |
| | | let shareTime = null; |
| | | // 检查是否存在q参数 |
| | | if (option.q) { |
| | | // 双重解码:微信对URL进行了两次编码 |
| | | const decodedUrl = decodeURIComponent(decodeURIComponent(option.q)); |
| | | console.log('原始URL:', decodedUrl); |
| | | |
| | | // 解析URL中的查询参数 |
| | | const params = this.parseUrlParams(decodedUrl); |
| | | shareStoreId = params.shareStoreId; |
| | | try { |
| | | // 将数据存储到本地缓存 |
| | | uni.setStorageSync('shareStoreId', shareStoreId); |
| | | //创建一个扫码的时间 |
| | | // 获取当前时间并格式化为 yyyy-MM-dd HH:mm:ss |
| | | const now = new Date(); |
| | | const year = now.getFullYear(); |
| | | const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要+1 |
| | | const day = String(now.getDate()).padStart(2, '0'); |
| | | const hours = String(now.getHours()).padStart(2, '0'); |
| | | const minutes = String(now.getMinutes()).padStart(2, '0'); |
| | | const seconds = String(now.getSeconds()).padStart(2, '0'); |
| | | |
| | | shareTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | uni.setStorageSync('shareTime', shareTime); |
| | | console.log('数据存储成功'); |
| | | } catch (e) { |
| | | console.error('存储失败:', e); |
| | | } |
| | | }else{ |
| | | shareStoreId = uni.getStorageSync('shareStoreId'); |
| | | shareStoreId = uni.getStorageSync('shareTime'); |
| | | console.log('从缓存读取参数:', { shareStoreId, shareTime }); |
| | | // this.bindMemberAndStore(shareStoreId, shareTime) |
| | | if (shareStoreId && shareTime) { |
| | | console.log('检测到有效参数,调用后端接口'); |
| | | this.bindMemberAndStore(shareStoreId, shareTime); |
| | | } else { |
| | | console.log('无有效参数,执行正常逻辑'); |
| | | } |
| | | } |
| | | console.log('-----------分享出的数据---------->', option) |
| | | let shareStoreId = null; |
| | | let shareTime = null; |
| | | // 检查是否存在q参数 |
| | | if (option.q) { |
| | | // 双重解码:微信对URL进行了两次编码 |
| | | const decodedUrl = decodeURIComponent(decodeURIComponent(option.q)); |
| | | console.log('原始URL:', decodedUrl); |
| | | |
| | | // 解析URL中的查询参数 |
| | | const params = this.parseUrlParams(decodedUrl); |
| | | shareStoreId = params.shareStoreId; |
| | | try { |
| | | // 将数据存储到本地缓存 |
| | | uni.setStorageSync('shareStoreId', shareStoreId); |
| | | //创建一个扫码的时间 |
| | | // 获取当前时间并格式化为 yyyy-MM-dd HH:mm:ss |
| | | const now = new Date(); |
| | | const year = now.getFullYear(); |
| | | const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要+1 |
| | | const day = String(now.getDate()).padStart(2, '0'); |
| | | const hours = String(now.getHours()).padStart(2, '0'); |
| | | const minutes = String(now.getMinutes()).padStart(2, '0'); |
| | | const seconds = String(now.getSeconds()).padStart(2, '0'); |
| | | |
| | | shareTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; |
| | | uni.setStorageSync('shareTime', shareTime); |
| | | console.log('数据存储成功'); |
| | | } catch (e) { |
| | | console.error('存储失败:', e); |
| | | } |
| | | }else{ |
| | | shareStoreId = uni.getStorageSync('shareStoreId'); |
| | | shareStoreId = uni.getStorageSync('shareTime'); |
| | | console.log('从缓存读取参数:', { shareStoreId, shareTime }); |
| | | // this.bindMemberAndStore(shareStoreId, shareTime) |
| | | if (shareStoreId && shareTime) { |
| | | console.log('检测到有效参数,调用后端接口'); |
| | | this.bindMemberAndStore(shareStoreId, shareTime); |
| | | } else { |
| | | console.log('无有效参数,执行正常逻辑'); |
| | | } |
| | | } |
| | | this.initCOS() |
| | | }, |
| | | onUnload() { |
| | | let param = Object.assign({}, this.actionParam); |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param =Object.assign({}, this.actionParam); |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | this.initCOS() |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | this.actionParam.sessionId = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = Object.assign({}, this.actionParam); |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | this.userInfo = this.$options.filters.isLogin() || {}; |
| | | if (this.$options.filters.isLogin("auth")) { |
| | | this.getUserOrderNum(); |
| | |
| | | |
| | | mounted() { }, |
| | | methods: { |
| | | async bindMemberAndStore(shareStoreId, shareTime){ |
| | | let form ={ |
| | | shareStoreId: shareStoreId, |
| | | shareTime: shareTime |
| | | } |
| | | // let form ={ |
| | | // shareStoreId: "1376433565247471616", |
| | | // shareTime: "2025-09-26 16:18:00" |
| | | // } |
| | | try { |
| | | const res = await bindMemberAndStore(form); |
| | | if(res.statusCode === 200){ |
| | | //清除缓存 |
| | | uni.removeStorageSync('shareStoreId'); |
| | | uni.removeStorageSync('shareTime'); |
| | | } |
| | | } |
| | | catch(error) { |
| | | console.error('出错:', error); |
| | | }; |
| | | }, |
| | | async bindMemberAndStore(shareStoreId, shareTime){ |
| | | let form ={ |
| | | shareStoreId: shareStoreId, |
| | | shareTime: shareTime |
| | | } |
| | | // let form ={ |
| | | // shareStoreId: "1376433565247471616", |
| | | // shareTime: "2025-09-26 16:18:00" |
| | | // } |
| | | try { |
| | | const res = await bindMemberAndStore(form); |
| | | if(res.statusCode === 200){ |
| | | //清除缓存 |
| | | uni.removeStorageSync('shareStoreId'); |
| | | uni.removeStorageSync('shareTime'); |
| | | } |
| | | } |
| | | catch(error) { |
| | | console.error('出错:', error); |
| | | }; |
| | | }, |
| | | // goTOSuccess(){ |
| | | // uni.redirectTo({ |
| | | // url:"/pages/cart/payment/success?paymentMethod=WECHAT" + |
| | |
| | | import popups from "@/pages/product/popups/popups.vue"; //气泡框 |
| | | import takeDownFormSaleGoods from "@/pages/product/m-take-down-sale-goods/index.vue"; //下架框 |
| | | import setup from "@/pages/product/product/popup/popup.js"; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | |
| | | import { getGoodsDetail } from "@/api/video.js" |
| | | import { |
| | |
| | | touchStartX: 0, |
| | | touchEndX: 0, |
| | | minSwipeDistance: 100, // 最小滑动距离,用于判断是否为有效滑动 |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"SWIPER_GOODS", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | } |
| | | }; |
| | | }, |
| | | |
| | |
| | | this.productRefHeight = windowHeight - bottomHeight + "px"; |
| | | }, |
| | | async onLoad(options) { |
| | | this.actionParam.pageParams = JSON.stringify(options) |
| | | |
| | | this.videoId = options.videoId; |
| | | this.getGoodsList(); |
| | | |
| | |
| | | }); |
| | | // #endif |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | async onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | // this.goodsDetail = {}; |
| | | // debugger |
| | | // //如果有参数ids说明事分销短连接,需要获取参数 |
| | |
| | | import {getGoodsDetail} from "@/api/video.js" |
| | | import { buyBack } from "@/api/trade.js"; |
| | | import '@/components/uview-components/uview-ui'; |
| | | import { getSessionId, userAction } from "@/api/userAction.js"; |
| | | export default { |
| | | computed: { |
| | | totalMoney() { |
| | |
| | | data() { |
| | | return { |
| | | videoId: '', |
| | | goodsList: [] |
| | | goodsList: [], |
| | | pageSessionNo:"", |
| | | actionParam:{ |
| | | sessionId:'', |
| | | actionType:"PAGE", |
| | | joinType:"SELF", |
| | | pageCode:"RECOMMEND_VIDEO_GOODS", |
| | | pageParams:"{}", |
| | | pageStatus:"JOIN", |
| | | pageType:"DETAIL" |
| | | } |
| | | } |
| | | }, |
| | | onUnload() { |
| | | let param = this.actionParam; |
| | | if (this.sendOnShow)return |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onHide() { |
| | | this.startHidenTime = Date.now() |
| | | let param = this.actionParam; |
| | | this.sendOnShow = true; |
| | | param.pageStatus = "LEAVE" |
| | | userAction(param) |
| | | }, |
| | | onShow() { |
| | | getSessionId().then(res=>{ |
| | | this.pageSessionNo = res.data.data |
| | | if(this.pageSessionNo){ |
| | | let param = this.actionParam; |
| | | param.sessionId = this.pageSessionNo |
| | | userAction(param) |
| | | } |
| | | }) |
| | | }, |
| | | onLoad(option) { |
| | | this.videoId = option.videoId; |
| | | this.actionParam.pageParams = JSON.stringify(option) |
| | | this.getGoodsList(); |
| | | }, |
| | | methods: { |