goto.js 2.43 KB
import wx from 'weixin-js-sdk';
import {linkToMiniApp, invokeMethod, createLinkButton} from "../utils/common";

export default class {
    constructor(_env) {
        this.env = _env;
    }

    link(event) {
        let element = event.currentTarget;
        let type = element.getAttribute('data-type') || 'other';
        let id = element.getAttribute('data-id') || '';
        let url = element.getAttribute('data-url') || '';
        let name = element.getAttribute('data-name') || '';
        let linkUrl = '';
        if (this.env === 'miniprogram') {
            if (type === 'product') {
                linkUrl = '/pages/goodsDetail/goodsDetail?productSkn=' + id + '&page_name=goodsList&page_param=5'
            } else if (type === 'brand') {
                linkUrl = '/pages/goodsList/brandStore?shop_id=' + id + '&shop_name=' + name
            } else {
                linkUrl = url
            }
            return linkToMiniApp(linkUrl, type);
        } else if (this.env === 'pc') {
            if (type === 'product') {
                linkUrl = 'https://www.yohobuy.com/product/' + id + '.html';
            } else if (type === 'brand') {
                linkUrl = 'https://www.yohobuy.com/shop/' + name + '-' + id + '.html';
            } else {
                linkUrl = url
            }
        } else {
            if (type === 'product') {
                linkUrl = '//m.yohobuy.com/product/' + id + '.html?openby:yohobuy={"action":"go.productDetail","params":{"product_skn":' + id + '}}'
            } else if (type === 'brand') {
                linkUrl = '//m.yohobuy.com/product/index/brand?shop_id=' + id + '&openby:yohobuy={"action":"go.shop","params":{"shop_id":"' + id + '","shop_template_type":"1","shop_name":"' + name + '","is_red_shop":"1"}}'
            } else {
                linkUrl = url
            }
        }
        if (this.env === 'app') {
            let dom = document.getElementById('yosdk-goto');
            if (!dom) {
                dom = createLinkButton(linkUrl, 'yosdk-goto');
            } else {
                dom.setAttribute('href', linkUrl);
            }
            return dom.click();

        } else {
            window.location.href = linkUrl
        }
    }

    goBack() {
        if (this.env === 'app') {
            invokeMethod({method: 'go.back'})
        } else if (this.env === 'miniprogram') {
            wx.miniProgram.navigateBack();
        } else {
            history.go(-1);
        }
    }

}