收藏
回答

用了wxs后,苹果手机IOS8.3系统无法打开小程序

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 Bug 微信iOS客户端 6.7.4 2.6.1

我把wxs注释掉后,用户就可以打开访问了。有好几个用户打不开。目前怀疑是wxs对IOS低版本不兼容导致的


回答关注问题邀请回答
收藏

3 个回答

  • linyingjie
    linyingjie
    2019-09-26

    var common = require('./common.wxs');


    /**

    * 获取单个商品sku退款总数

    * @param {object} goods

    */

    function getGoodsRefundCount(goods = {}) {

    var skus = goods.skus || [];

    var count = 0;

    count = skus

    .reduce(function(sum, curr) {

    var refund = curr.refund || 0;

    if (refund > 0) {

    sum += refund;

    }


    return sum;

    }, count);


    return count;

    }


    /**

    * 获取订单所有商品总数

    * @param {array} list

    */

    function getOrderGoodsCount(list = []) {

    return list

    .reduce(function(count, curr) {

    count += common.getGoodsCount(curr);


    return count;

    }, 0);

    }


    /**

    * 获取单个商品sku折扣总价

    * @param {object} goods

    */

    function getGoodsDiscountPrice(goods = {}) {

    var price = goods.price || 0;

    var discountPrice = goods.discountPrice || 0;

    price = discountPrice || price;

    var count = common.getGoodsCount(goods);

    var totalPrice = (price * count).toFixed(2) * 1;


    return totalPrice;

    }


    /**

    * @description 获取单个有skus的商品的sku折扣总价

    * @param {object} goods

    * @returns

    */

    function getGoodsDiscountSkuPrice(goods = {}) {

    var skus = goods.skus || [];

    var totalPrice = 0;

    totalPrice = skus.reduce(function(total, curr) {

    var price = curr.price || 0;

    var discountPrice = curr.discountPrice || 0;

    var quantity = curr.quantity || 0;

    price = discountPrice || price;

    if (quantity > 0) {

    total += price * 1 * quantity * 1;

    }


    return total;

    }, totalPrice);


    return totalPrice.toFixed(2) * 1;

    }


    /**

    * 获取单个商品sku退款总金额

    * @param {object} goods

    */

    function getGoodsRefundPrice(goods = {}) {

    var price = goods.price || 0;

    var discountPrice = goods.discountPrice || 0;

    price = discountPrice || price;

    var count = getGoodsRefundCount(goods);

    var totalPrice = (price * count).toFixed(2) * 1;


    return totalPrice;

    }


    /**

    * @description 获取单个有skus的商品的sku退款总金额

    * @param {object} goods

    * @returns

    */

    function getGoodsRefundSkuPrice(goods = {}) {

    var skus = goods.skus || [];

    var totalPrice = 0;

    totalPrice = skus.reduce(function(total, curr) {

    var price = curr.price || 0;

    var discountPrice = curr.discountPrice || 0;

    var refund = curr.refund || 0;

    price = discountPrice || price;

    if (refund > 0) {

    total += price * 1 * refund * 1;

    }


    return total;

    }, totalPrice);


    return totalPrice.toFixed(2) * 1;

    }


    /**

    * 获取订单所有商品总价(原价)

    * @param {array} list

    */

    function getOrderPrice(list = []) {

    return list

    .reduce(function(sum, curr) {

    var useSkusPrice = curr.useSkusPrice || true;

    var skuPriceType = curr.skuPriceType;

    skuPriceType = useSkusPrice ? skuPriceType : '';


    sum += !skuPriceType ? common.getGoodsPrice(curr) : common.getGoodsSkuPrice(curr);


    return sum;

    }, 0)

    .toFixed(2) * 1;

    }


    /**

    * 获取订单所有商品折扣总价

    * @param {array} list

    */

    function getOrderDiscountPrice(list = []) {

    return list

    .reduce(function(sum, curr) {

    var useSkusPrice = curr.useSkusPrice || true;

    var skuPriceType = curr.skuPriceType;

    skuPriceType = useSkusPrice ? skuPriceType : '';


    sum += !skuPriceType ? getGoodsDiscountPrice(curr) : getGoodsDiscountSkuPrice(curr);


    return sum;

    }, 0)

    .toFixed(2) * 1;

    }


    /**

    * 获取订单所有商品退款总金额

    * @param {array} list

    */

    function getOrderRefundPrice(list = []) {

    return list

    .reduce(function(sum, curr) {

    var useSkusPrice = curr.useSkusPrice || true;

    var skuPriceType = curr.skuPriceType;

    skuPriceType = useSkusPrice ? skuPriceType : '';


    sum += !skuPriceType ? getGoodsRefundPrice(curr) : getGoodsRefundSkuPrice(curr);


    return sum;

    }, 0)

    .toFixed(2) * 1;

    }


    /**

    * 获取订单所有商品实付金额

    * @param {array} list

    * @param {number} postage

    */

    function getOrderFinalPrice(list = [], postage = 0) {

    var price = getOrderDiscountPrice(list) - getOrderRefundPrice(list) + postage * 1;


    return price.toFixed(2) * 1;

    }


    // 获取订单价格明细

    function getPriceDetail(props) {

    var showRefundPriceOnly = props.showRefundPriceOnly; // 是否只显示退款金额

    var showReductionPrice = typeof props.showReductionPrice === 'undefined'

    ? true : props.showReductionPrice; // 显示优惠金额

    var postage = props.postage || 0;

    var goodsList = props.goodsList || [];

    //商品总数

    var orderCount = getOrderGoodsCount(goodsList);

    // 原价

    var orderPrice = getOrderPrice(goodsList);

    // 折扣价

    var orderDiscountPrice = getOrderDiscountPrice(goodsList);

    // 优惠金额

    var orderReductionPrice = (orderPrice - orderDiscountPrice).toFixed(2) * 1;

    // 退款金额

    var orderRefundPrice = getOrderRefundPrice(goodsList);

    // 实付金额

    var price = getOrderFinalPrice(goodsList, postage);

    var show = !showRefundPriceOnly; // 显示其他价格

    if (showRefundPriceOnly) {

    orderRefundPrice = getOrderDiscountPrice(goodsList);

    }

    var list = [

    {

    show: show,

    title: '商品数量',

    value: orderCount

    },

    {

    show: show,

    title: '商品总金额',

    value: '¥ ' + orderPrice

    },

    {

    show: show && showReductionPrice,

    title: '优惠金额',

    class: 'error-color',

    value: '- ¥ ' + orderReductionPrice

    },

    {

    show: show,

    title: '邮费',

    value: '¥ ' + postage

    },

    {

    show: orderRefundPrice > 0,

    title: '退款金额',

    value: showRefundPriceOnly ? '¥ ' : '- ¥ ' + orderRefundPrice

    },

    {

    show: show,

    title: '实付金额',

    class: 'warn-color font_bold',

    value: '¥ ' + price

    }

    ];


    return list;

    }


    // 获取采购商品总数

    function getTotalCount(list = []) {

    var totalCount = 0;

    totalCount = list.reduce(function(count, curr) {

    var goodsList = curr.goodsList || [];

    count += getOrderGoodsCount(goodsList);


    return count;

    }, totalCount);


    return totalCount;

    }



    /**

    * @description 根据商品数量和邮费规则计算邮费

    * @param {*} { postage = 0, num = 0, config }

    * @returns

    */

    function getPostage(props) {

    var postage = props.postage || 0;

    var num = props.num || 0;

    var config = props.config;


    if (num <= 0) return postage;

    if (!config) return postage;


    var startCount = config.startCount || '';

    var startAmt = config.startAmt || '';

    var everyIncreaseCount = config.everyIncreaseCount || '';

    var everyIncreaseAmt = config.everyIncreaseAmt || '';


    // 全空

    if (!startCount && !startAmt) return postage;


    // start_count件内start_amt元

    postage = startAmt * 1;

    if (num <= startCount) return postage;


    if (!everyIncreaseCount || !everyIncreaseAmt) return postage;


    // 每增加increase_count件,邮费增加increase_amt元

    postage += Math.floor((num - startCount) / everyIncreaseCount) * everyIncreaseAmt;


    return postage;

    }


    function getGoodsListPostage(props) {

    var goodsList = props.goodsList || [];

    var postageConfig = props.postageConfig;

    var postageObj = {

    num: getOrderGoodsCount(goodsList),

    config: postageConfig,

    };

    var postage = getPostage(postageObj);


    return postage;

    }


    // 获取采购商品总价格

    function getTotalPrice(list = [], needPostage = true) {

    var totalPrice = 0;

    totalPrice = list.reduce(function(price, curr) {

    var goodsList = curr.goodsList || [];

    var postageConfig = curr.postageConfig;

    var postage = needPostage ? getGoodsListPostage({goodsList, postageConfig}) : 0;

    price += getOrderFinalPrice(goodsList, postage);


    return price;

    }, totalPrice);


    return totalPrice.toFixed(2) * 1;

    }


    function isSamePrice(skus = []) {

    return common.dedupArr(skus, 'price').length == 1;

    }


    module.exports = {

    getPriceDetail: getPriceDetail,

    getTotalCount: getTotalCount,

    getGoodsListPostage: getGoodsListPostage,

    getTotalPrice: getTotalPrice,

    isSamePrice: isSamePrice,

    };



    2019-09-26
    有用
    回复 2
    • 匿名
      匿名
      2019-09-26
      function getGoodsRefundCount(goods = {}),wxs不支持参数默认值的写法
      2019-09-26
      回复
    • linyingjie
      linyingjie
      2019-09-26回复匿名
      已经改了,还是打不开
      2019-09-26
      回复
  • 匿名
    匿名
    2019-09-26

    贴一下wxs的内容

    2019-09-26
    有用
    回复 1
    • linyingjie
      linyingjie
      2019-09-26
      已贴
      2019-09-26
      回复
  • bibolibo
    bibolibo
    2019-09-26

    应该是低版本的兼容性问题..

    2019-09-26
    有用
    回复
登录 后发表内容
问题标签