xuxueyang
2024-08-06 a9d507a13f5eff939b9dfb2242a204d445460d42
update 跳转的逻辑栈
已修改11个文件
221 ■■■■ 文件已修改
components/footer/customer-footer.vue 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/footer/managefooter.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/footer/supplier-footer.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
manifest.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/supplier-login.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/supplier-reg.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
store/index.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/shop/shop.vue 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/trade/detail.vue 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/trade/list.vue 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/trade/trade.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
components/footer/customer-footer.vue
@@ -93,12 +93,23 @@
                        }
                    }
                    //判断,如果上上上级别,就是要跳转的,改为返回,避免堆栈太多
                    const pages = getCurrentPages();
                    //如果上一层就是购物车,那么就返回,而不是跳转
                    // console.log('toShopping',pages)
                    if (pages && pages.length >= 2) {
                        if ( ('/' + pages[pages.length - 2].route) === item.pagePath) {
                            uni.navigateBack()
                            return
                        }
                    }
                    uni.navigateTo({
                        url: item.pagePath
                    })
                } else {
                    uni.redirectTo({
                    uni.reLaunch({
                        url: item.pagePath
                    });
components/footer/managefooter.vue
@@ -60,7 +60,7 @@
    },
    methods: {
        go(item){
            uni.redirectTo({ url: item.pagePath })
            uni.reLaunch({ url: item.pagePath })
            // uni.switchTab({ url: item.pagePath })
        }
    }
components/footer/supplier-footer.vue
@@ -68,7 +68,7 @@
                if (this.flg == ('' + index)) {
                    return
                }
                uni.redirectTo({
                uni.reLaunch({
                    url: item.pagePath
                });
manifest.json
@@ -49,7 +49,7 @@
    "quickapp" : {},
    /* 快应用特有相关 */
    "mp-weixin" : {
        "appid" : "wx6d0ecc4e18710458",
        "appid" : "wx1441324401626290",
        "setting" : {
            "urlCheck" : false,
            "es6" : true,
pages/login/supplier-login.vue
@@ -423,7 +423,7 @@
                }, 1000)
            },
            toHome() {
                uni.redirectTo({
                uni.reLaunch({
                    url: '/pages/home/home'
                })
            },
@@ -439,7 +439,7 @@
                })
                // #endif
                // #ifdef PUB_SUPPLIER
                uni.redirectTo({
                uni.reLaunch({
                    url: '/pages/login/supplier-reg'
                })
                // #endif
@@ -448,7 +448,7 @@
                // uni.navigateTo({
                //     url: '/sub_pages/customer/customer-info/customer-info' + addstr
                // })
                uni.redirectTo({
                uni.reLaunch({
                    url: '/pages/login/supplier-reg'
                })
                // todo 如果是有分享id的,可能需要提前进行绑定
pages/login/supplier-reg.vue
@@ -288,7 +288,7 @@
                }, 1000)
            },
            toLogin() {
                uni.redirectTo({
                uni.reLaunch({
                    url: '/pages/login/supplier-login'
                })
store/index.js
@@ -55,9 +55,7 @@
            state.currentInfo = {}
            storage.removeItem('token')
            message.showToast('退出登录成功')
            // uni.redirectTo({
            //     url: '/views/login/login'
            // })
        },
        setOpenid(state, openid) {
            state.openid = openid
@@ -354,9 +352,7 @@
                        console.log("启用结果2:", ret);
                    });
                    // #endif
                    // uni.redirectTo({
                    //     url: '/views/app/app-home/app-home'
                    // })
                    uni.reLaunch({
                        url: '/pages/home/supplier-home'
                    })
sub_pages/customer/shop/shop.vue
@@ -38,7 +38,7 @@
            </view>
            <view class="tj-info m-t-12">
                <view class="form-item">
                    <view class="value">0</view>
                    <view class="value">{{page.total || 0}}</view>
                    <view class="label">发布</view>
                </view>
                <view class="form-item">
@@ -63,20 +63,16 @@
        <view class="brand-info">
            <view v-if="flg==='0'" class="brand-info-0">
                <view class="component-filter-container" style="padding-top: 12rpx;">
                    <!-- <view class="flex1">
                        排序
                    <view class="flex1" @click.stop="$refs.popup_column.open()">
                        排序{{ query.columnStr&&('-'+query.columnStr) || '' }}
                        <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
                    </view>
                    <view class="flex1">
                        等级
                    <view class="flex1" @click.stop="$refs.popup_level.open()">
                        {{ query.levelStr || '级别' }}
                        <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
                    </view>
                    <view class="flex1">
                        参数
                        <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
                    </view> -->
                </view>
                <view class="top-title">
                <view class="top-title m-t-12">
                    报价已包含打包费、材料费、交易佣金
                </view>
                <view class="component-shop-item flex" v-for="(item,index) of list" :key="index"
@@ -112,7 +108,7 @@
                        </view>
                        <view class="bottom-buttons  flex">
                            <view class="m-l-0 m-r-a">
                                <view class="m-r-15">
                                <view class="m-r-15 desc-gray other-info">
                                    颜色:{{item.color||'-'}}
                                </view>
                            </view>
@@ -163,8 +159,55 @@
                </view> -->
            </view>
        </view>
        <uni-popup ref="popup_column" type="bottom">
            <view class="component-popup_input_all">
                <view class="text-center m-b-40" style="font-size: 48rpx;font-weight: 600;">点击选择不同排序</view>
                <view v-for="(item,i) in order_columns" :key="i" class="m-t-20">
                    <view class="m-t-12 flex value-items">
                        <view class="value-item" @click="()=>{
                            if(each.value!==query.value){
                                query.column = each.value
                                query.columnStr = each.label
                                refreshList('post')
                                $refs.popup_column.close()
                            }
                        }" :class="[query.column==each.value?'cur':'']" v-for="(each, j) in item" :key="j">
                            {{ each.label || '-' }}
                        </view>
                    </view>
                </view>
                <view class="button-space"></view>
                <view>
                    <view class="button-green" @click="$refs.popup_column.close()">关闭
                    </view>
                </view>
            </view>
        </uni-popup>
        <uni-popup ref="popup_level" type="bottom">
            <view class="component-popup_input_all">
                <view class="text-center m-b-40" style="font-size: 48rpx;font-weight: 600;">点击选择不同级别</view>
                <view v-for="(item,i) in level_columns" :key="i" class="m-t-20">
                    <view class="m-t-12 flex value-items">
                        <view class="value-item" @click="()=>{
                            if(each.value!==query.value){
                                query.level = each.value
                                query.levelStr = each.label
                                refreshList('post')
                                $refs.popup_level.close()
                            }
                        }" :class="[query.level==each.value?'cur':'']" v-for="(each, j) in item" :key="j">
                            {{ each.label || '-' }}
                        </view>
                    </view>
                </view>
                <view class="button-space"></view>
                <view>
                    <view class="button-green" @click="$refs.popup_level.close()">关闭
                    </view>
                </view>
            </view>
        </uni-popup>
    </view>
</template>
@@ -197,6 +240,21 @@
                list: [],
                id: '',
                catgoryTree: undefined,
                query: {
                    columnStr: '',
                    column: '',
                    levelStr: '',
                    level: '',
                },
                level_show: false,
                level_columns: [
                    []
                ],
                order_show: false,
                order_columns: [
                    []
                ]
            }
        },
        onLoad(options) {
@@ -208,6 +266,30 @@
            this.listApi = `/api/customer/flower/list`
            this.query.supplierId = this.id
            this.getList('post')
            this.$http.request('get', '/api/code/value', {
                params: {
                    type: 'FLOWER_LEVEL'
                }
            }).then(res => {
                var data = res.data
                this.level_columns = [data || []]
                this.level_columns[0].unshift({
                    label: '全部',
                    value: ''
                })
            })
            this.$http.request('get', '/api/code/value', {
                params: {
                    type: 'FLOWER_ORDER_BY'
                }
            }).then(res => {
                var data = res.data
                this.order_columns = [data || []]
                this.order_columns[0].unshift({
                    label: '默认',
                    value: ''
                })
            })
        },
        // #ifdef PUB_CUSTOMER
        onShareAppMessage() {
@@ -401,6 +483,11 @@
                }
            },
            toDetail(item) {
                uni.navigateTo({
                    url: `/sub_pages/customer/trade/detail?id=${item.id}`
                })
            },
        }
    }
</script>
sub_pages/customer/trade/detail.vue
@@ -398,15 +398,63 @@
                    })
                    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() {
                //也要判断一下是否重复进入
                //判断堆栈,如果是店铺,就直接返回
                //或者是:从商铺到列表再到详情,再到商铺,这种也不行
                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 || '')
                })
            }
            }
        }
    }
</script>
sub_pages/customer/trade/list.vue
@@ -104,8 +104,7 @@
            </view>
            <view class="icon-shop" v-if="list&&list.length>0"
                @click="goto('/sub_pages/customer/shopping/shopping',true)">
            <view class="icon-shop" v-if="list&&list.length>0" @click="toShopping">
                <!-- 购物图标 -->
                <!-- 如果有购买的东西,就要附带数字了 -->
                <view v-if="shoptotal>0" class="number">
@@ -213,12 +212,14 @@
                    name: '',
                    category: '',
                    zoneId: '',
                    levelStr: '',
                    level: '',
                    column: '',
                    params: [],
                    supplierName:'',
                    columnStr: '',
                    column: '',
                    levelStr: '',
                    level: '',
                },
                categoryInfo: {},
                params: [],
@@ -421,6 +422,19 @@
                this.refreshList('post')
            },
            toShopping() {
                if (!this.currentInfo.id) {
                    // await this.$message.confirm('请前往登录')
                    uni.navigateTo({
                        url: '/pages/login/supplier-login?source=jump'
                    })
                    return
                }
                //直接强制购物车
                uni.reLaunch({
                    url: '/sub_pages/customer/shopping/shopping'
                })
            },
            toDetail(item) {
                uni.navigateTo({
                    url: `/sub_pages/customer/trade/detail?id=${item.id}`
sub_pages/customer/trade/trade.vue
@@ -9,7 +9,8 @@
            </view>
            <view class="flex1 input">
                <u-input :placeholder="type==='category'?'请输入分类名称':'请输入店铺名称'" v-model="query.name" clearable @confirm="buttonSearchFlow" @clear="()=>{
                <u-input :placeholder="type==='category'?'请输入分类名称':'请输入店铺名称'" v-model="query.name" clearable
                    @confirm="buttonSearchFlow" @clear="()=>{
                    $nextTick(()=>{buttonSearchFlow()})
                }">
                    <template slot="suffix">