From a9d507a13f5eff939b9dfb2242a204d445460d42 Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期二, 06 八月 2024 18:26:25 +0800 Subject: [PATCH] update 跳转的逻辑栈 --- sub_pages/customer/trade/detail.vue | 193 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 176 insertions(+), 17 deletions(-) diff --git a/sub_pages/customer/trade/detail.vue b/sub_pages/customer/trade/detail.vue index 5bf0d9e..c050b1c 100644 --- a/sub_pages/customer/trade/detail.vue +++ b/sub_pages/customer/trade/detail.vue @@ -146,19 +146,107 @@ id: '', dto: {}, shopnum: 0, + sharePartnerUserId: '', } }, onShow() { - this.refreshShopNum() - }, - onLoad(options) { - this.id = options.id || '' if (this.id) { this.getDetail() } this.refreshShopNum() }, + onLoad(options) { + console.log('trade detail options', options) + this.id = options.id || '' + + // #ifdef PUB_CUSTOMER + if (options.partnerUserId) { + let tmp = this + tmp.sharePartnerUserId = options.partnerUserId + //合伙人绑定的,判断当前用户,是否有登录,登录没绑定,没登录先缓存合伙人id,等注册和登录时候再弄 + setTimeout(() => { + if (tmp.currentInfo.id) { + tmp.bindPartnerUser(tmp.currentInfo.id, '') + } else { + tmp.sharePartnerUserId = options.partnerUserId + //没有登录到话设置到缓存 + if (tmp.sharePartnerUserId) { + tmp.$storage.setItem('cache_sharePartnerUserId', tmp.sharePartnerUserId) + } + } + + }, 1000) + } + // #endif + if (this.id) { + this.getDetail() + } + this.refreshShopNum() + + }, + // #ifdef PUB_CUSTOMER + onShareAppMessage() { + let that = this; + var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO && + that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || '' + //如果是合伙人的id,那么分享出去,需要附加id了 + console.log('onShareAppMessage', this.currentInfo) + + var partnerUserId = '' + + if (that.currentInfo.customerDTO && that.currentInfo.customerDTO.partnerId) { + partnerUserId = that.currentInfo.customerDTO.partnerId + } + // if (that.currentInfo.partnerDTO && currentInfo.partnerDTO.id) { + // partnerUserId = this.currentInfo.id + // } + var url = + `/sub_pages/customer/trade/detail?partnerUserId=${partnerUserId}&id=${this.id}&shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数 + return { + // + title: this.dto.id ? (this.dto.name + " " + (this.dto.price || '-') + '元/扎 ' + (this.dto.unit || '')) : + "花满芫", + path: url, + } + }, + onShareTimeline() { + let that = this; + var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO && + currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || '' + //如果是合伙人的id,那么分享出去,需要附加id了 + var partnerUserId = '' + + if (that.currentInfo.customerDTO && that.currentInfo.customerDTO.partnerId) { + partnerUserId = that.currentInfo.customerDTO.partnerId + } + var url = + `/sub_pages/customer/trade/detail?partnerUserId=${partnerUserId}&id=${this.id}&shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数 + return { + // + title: this.dto.id ? (this.dto.name + " " + (this.dto.price || '-') + '元/扎 ' + (this.dto.unit || '')) : + "花满芫", + path: url, + } + }, + // #endif methods: { + async bindPartnerUser(userId, name) { + //调用接口绑定 + this.$message.showLoading() + const { + code, + data + } = await this.$http.request('post', '/api/customer/bind/partner', { + data: { + partnerUserId: userId + } + }) + this.$message.hideLoading() + if (code == 0) { + this.$message.showToast(`绑定合伙人${name}成功`) + await this.$store.dispatch('getCurrentInfo') + } + }, async updateItemNum(item) { const res = await this.$message.confirm('', { editable: true, @@ -184,9 +272,9 @@ }, async addnum(item, addnum) { if (!this.currentInfo.id) { - await this.$message.confirm('请前往登录') + // await this.$message.confirm('请前往登录') uni.navigateTo({ - url: '/pages/user/supplier-user' + url: `/pages/login/supplier-login?source=jump&sharePartnerUserId=${this.sharePartnerUserId}` }) return } @@ -216,7 +304,7 @@ }) this.$message.hideLoading() if (code === 0) { - item.shopnum += addnum + item.shopnum += addnum this.refreshShopNum() this.$forceUpdate() } @@ -224,10 +312,15 @@ async refreshShopNum() { this.shopnum = await this.$store.dispatch('countShopping'); + this.$store.dispatch('sign_add', 'shopnum') + }, async collectItem(dto) { if (!this.currentInfo.id) { - this.$message.showToast('请先登录') + // this.$message.showToast('请先登录') + uni.navigateTo({ + url: `/pages/login/supplier-login?source=jump&sharePartnerUserId=${this.sharePartnerUserId}` + }) return } await this.$message.confirm(`是否${dto.collection?'移除':'添加到'}收藏`) @@ -255,6 +348,13 @@ async submitShopping(dto) { //提交到购物车中 // this.$message.showLoading() + if (!this.currentInfo.id) { + // this.$message.showToast('请先登录') + uni.navigateTo({ + url: `/pages/login/supplier-login?source=jump&sharePartnerUserId=${this.sharePartnerUserId}` + }) + return + } const { code, data @@ -268,14 +368,18 @@ } }, async getDetail() { + var params = { + id: this.id, + } + if (this.sharePartnerUserId && !isNaN(parseInt(this.sharePartnerUserId))) { + params.partnerId = parseInt(this.sharePartnerUserId) + } this.$message.showLoading() const { code, data } = await this.$http.request('get', '/api/customer/flower/list/view', { - params: { - id: this.id - } + params: params }) if (code === 0) { this.dto = { @@ -287,14 +391,69 @@ }, toShopping() { - uni.navigateTo({ - url: '/sub_pages/customer/shopping/shopping' - }) + if (!this.currentInfo.id) { + // this.$message.showToast('请先登录') + uni.navigateTo({ + url: `/pages/login/supplier-login?source=jump&sharePartnerUserId=${this.sharePartnerUserId}` + }) + return + } + //判断堆栈,如果是购物车,就直接返回 + const pages = getCurrentPages(); + //如果上一层就是购物车,那么就返回,而不是跳转 + // console.log('toShopping',pages) + if (pages && pages.length >= 2) { + if (pages[pages.length - 2].route === "sub_pages/customer/shopping/shopping") { + uni.navigateBack() + return + } + } + if (pages.length >= 10) { + //直接强制购物车 + uni.reLaunch({ + url: '/sub_pages/customer/shopping/shopping' + }) + } else { + uni.navigateTo({ + url: '/sub_pages/customer/shopping/shopping' + }) + } + }, openbrand() { - uni.navigateTo({ - url: '/sub_pages/customer/shop/shop?id=' + (this.dto.id || '') - }) + //也要判断一下是否重复进入 + //判断堆栈,如果是店铺,就直接返回 + //或者是:从商铺到列表再到详情,再到商铺,这种也不行 + const pages = getCurrentPages(); + console.log('toShopping', pages) + if (pages && pages.length >= 2) { + if (pages[pages.length - 2].route === "sub_pages/customer/shop/shop") { + uni.navigateBack() + return + } + } + if (pages && pages.length >= 3) { + if (pages[pages.length - 3].route === "sub_pages/customer/shop/shop" && + pages[pages.length - 2].route === "sub_pages/customer/trade/list" + ) { + uni.navigateBack({ + delta: 2 + }) + return + } + } + + if (pages.length >= 10) { + //直接强制购物车 + uni.reLaunch({ + url: '/sub_pages/customer/shop/shop?id=' + (this.dto.supplierId || '') + }) + } else { + uni.navigateTo({ + url: '/sub_pages/customer/shop/shop?id=' + (this.dto.supplierId || '') + }) + } + } } } -- Gitblit v1.9.3