| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260 | 
							- "use strict";
 
- const common_vendor = require("../../../common/vendor.js");
 
- const sheep_index = require("../../index.js");
 
- const sheep_hooks_useGoods = require("../../hooks/useGoods.js");
 
- require("../../url/index.js");
 
- require("../../store/index.js");
 
- require("../../store/app.js");
 
- require("../../api/promotion/diy.js");
 
- require("../../request/index.js");
 
- require("../../config/index.js");
 
- require("../../platform/index.js");
 
- require("../../platform/provider/wechat/index.js");
 
- require("../../platform/provider/wechat/miniProgram.js");
 
- require("../../api/member/auth.js");
 
- require("../../api/member/social.js");
 
- require("../../api/member/user.js");
 
- require("../../platform/provider/apple/index.js");
 
- require("../../platform/share.js");
 
- require("../../router/index.js");
 
- require("../../hooks/useModal.js");
 
- require("../../helper/index.js");
 
- require("../../helper/test.js");
 
- require("../../helper/digit.js");
 
- require("../../helper/throttle.js");
 
- require("../../platform/pay.js");
 
- require("../../api/pay/order.js");
 
- require("../../store/user.js");
 
- require("../../store/cart.js");
 
- require("../../api/trade/cart.js");
 
- require("../../api/pay/wallet.js");
 
- require("../../api/trade/order.js");
 
- require("../../api/promotion/coupon.js");
 
- require("../../store/sys.js");
 
- require("../../store/modal.js");
 
- require("../../config/zIndex.js");
 
- require("../../util/index.js");
 
- if (!Array) {
 
-   const _easycom_su_number_box2 = common_vendor.resolveComponent("su-number-box");
 
-   const _easycom_su_popup2 = common_vendor.resolveComponent("su-popup");
 
-   (_easycom_su_number_box2 + _easycom_su_popup2)();
 
- }
 
- const _easycom_su_number_box = () => "../../ui/su-number-box/su-number-box.js";
 
- const _easycom_su_popup = () => "../../ui/su-popup/su-popup.js";
 
- if (!Math) {
 
-   (_easycom_su_number_box + _easycom_su_popup)();
 
- }
 
- const _sfc_main = {
 
-   __name: "s-select-sku",
 
-   props: {
 
-     goodsInfo: {
 
-       type: Object,
 
-       default() {
 
-       }
 
-     },
 
-     show: {
 
-       type: Boolean,
 
-       default: false
 
-     }
 
-   },
 
-   emits: ["change", "addCart", "buy", "close"],
 
-   setup(__props, { emit: emits }) {
 
-     const props = __props;
 
-     const state = common_vendor.reactive({
 
-       selectedSku: {},
 
-       // 选中的 SKU
 
-       currentPropertyArray: []
 
-       // 当前选中的属性,实际是个 Map。key 是 property 编号,value 是 value 编号
 
-     });
 
-     const propertyList = sheep_hooks_useGoods.convertProductPropertyList(props.goodsInfo.skus);
 
-     const skuList = common_vendor.computed(() => {
 
-       let skuPrices = props.goodsInfo.skus;
 
-       for (let price of skuPrices) {
 
-         price.value_id_array = price.properties.map((item) => item.valueId);
 
-       }
 
-       return skuPrices;
 
-     });
 
-     common_vendor.watch(
 
-       () => state.selectedSku,
 
-       (newVal) => {
 
-         emits("change", newVal);
 
-       },
 
-       {
 
-         immediate: true,
 
-         // 立即执行
 
-         deep: true
 
-         // 深度监听
 
-       }
 
-     );
 
-     function onNumberChange(e) {
 
-       if (e === 0)
 
-         return;
 
-       if (state.selectedSku.goods_num === e)
 
-         return;
 
-       state.selectedSku.goods_num = e;
 
-     }
 
-     function onAddCart() {
 
-       if (state.selectedSku.id <= 0) {
 
-         sheep_index.sheep.$helper.toast("请选择规格");
 
-         return;
 
-       }
 
-       if (state.selectedSku.stock <= 0) {
 
-         sheep_index.sheep.$helper.toast("库存不足");
 
-         return;
 
-       }
 
-       emits("addCart", state.selectedSku);
 
-     }
 
-     function onBuy() {
 
-       if (state.selectedSku.id <= 0) {
 
-         sheep_index.sheep.$helper.toast("请选择规格");
 
-         return;
 
-       }
 
-       if (state.selectedSku.stock <= 0) {
 
-         sheep_index.sheep.$helper.toast("库存不足");
 
-         return;
 
-       }
 
-       emits("buy", state.selectedSku);
 
-     }
 
-     function changeDisabled(isChecked = false, propertyId = 0, valueId = 0) {
 
-       let newSkus = [];
 
-       if (isChecked) {
 
-         for (let price of skuList.value) {
 
-           if (price.stock <= 0) {
 
-             continue;
 
-           }
 
-           if (price.value_id_array.indexOf(valueId) >= 0) {
 
-             newSkus.push(price);
 
-           }
 
-         }
 
-       } else {
 
-         newSkus = getCanUseSkuList();
 
-       }
 
-       let noChooseValueIds = [];
 
-       for (let price of newSkus) {
 
-         noChooseValueIds = noChooseValueIds.concat(price.value_id_array);
 
-       }
 
-       noChooseValueIds = Array.from(new Set(noChooseValueIds));
 
-       if (isChecked) {
 
-         let index = noChooseValueIds.indexOf(valueId);
 
-         noChooseValueIds.splice(index, 1);
 
-       } else {
 
-         state.currentPropertyArray.forEach((currentPropertyId) => {
 
-           if (currentPropertyId.toString() !== "") {
 
-             return;
 
-           }
 
-           let index = noChooseValueIds.indexOf(currentPropertyId);
 
-           if (index >= 0) {
 
-             noChooseValueIds.splice(index, 1);
 
-           }
 
-         });
 
-       }
 
-       let choosePropertyIds = [];
 
-       if (!isChecked) {
 
-         state.currentPropertyArray.forEach((currentPropertyId, currentValueId) => {
 
-           if (currentPropertyId !== "") {
 
-             choosePropertyIds.push(currentValueId);
 
-           }
 
-         });
 
-       } else {
 
-         choosePropertyIds = [propertyId];
 
-       }
 
-       for (let propertyIndex in propertyList) {
 
-         if (choosePropertyIds.indexOf(propertyList[propertyIndex]["id"]) >= 0) {
 
-           continue;
 
-         }
 
-         for (let valueIndex in propertyList[propertyIndex]["values"]) {
 
-           propertyList[propertyIndex]["values"][valueIndex]["disabled"] = noChooseValueIds.indexOf(propertyList[propertyIndex]["values"][valueIndex]["id"]) < 0;
 
-         }
 
-       }
 
-     }
 
-     function getCanUseSkuList() {
 
-       let newSkus = [];
 
-       for (let sku of skuList.value) {
 
-         if (sku.stock <= 0) {
 
-           continue;
 
-         }
 
-         let isOk = true;
 
-         state.currentPropertyArray.forEach((propertyId) => {
 
-           if (propertyId.toString() !== "" && sku.value_id_array.indexOf(propertyId) < 0) {
 
-             isOk = false;
 
-           }
 
-         });
 
-         if (isOk) {
 
-           newSkus.push(sku);
 
-         }
 
-       }
 
-       return newSkus;
 
-     }
 
-     function onSelectSku(propertyId, valueId) {
 
-       let isChecked = true;
 
-       if (state.currentPropertyArray[propertyId] !== void 0 && state.currentPropertyArray[propertyId] === valueId) {
 
-         isChecked = false;
 
-         state.currentPropertyArray.splice(propertyId, 1, "");
 
-       } else {
 
-         state.currentPropertyArray[propertyId] = valueId;
 
-       }
 
-       let choosePropertyId = [];
 
-       state.currentPropertyArray.forEach((currentPropertyId) => {
 
-         if (currentPropertyId !== "") {
 
-           choosePropertyId.push(currentPropertyId);
 
-         }
 
-       });
 
-       let newSkuList = getCanUseSkuList();
 
-       if (choosePropertyId.length === propertyList.length && newSkuList.length) {
 
-         newSkuList[0].goods_num = state.selectedSku.goods_num || 1;
 
-         state.selectedSku = newSkuList[0];
 
-       } else {
 
-         state.selectedSku = {};
 
-       }
 
-       changeDisabled(isChecked, propertyId, valueId);
 
-     }
 
-     changeDisabled(false);
 
-     return (_ctx, _cache) => {
 
-       return {
 
-         a: state.selectedSku.picUrl || __props.goodsInfo.picUrl,
 
-         b: common_vendor.t(__props.goodsInfo.name),
 
-         c: common_vendor.t(common_vendor.unref(sheep_hooks_useGoods.fen2yuan)(state.selectedSku.price || __props.goodsInfo.price)),
 
-         d: common_vendor.t(common_vendor.unref(sheep_hooks_useGoods.formatStock)("exact", state.selectedSku.stock || __props.goodsInfo.stock)),
 
-         e: common_vendor.f(common_vendor.unref(propertyList), (property, k0, i0) => {
 
-           return {
 
-             a: common_vendor.t(property.name),
 
-             b: common_vendor.f(property.values, (value, k1, i1) => {
 
-               return {
 
-                 a: common_vendor.t(value.name),
 
-                 b: common_vendor.n({
 
-                   "ui-BG-Main-Gradient": state.currentPropertyArray[property.id] === value.id
 
-                 }),
 
-                 c: common_vendor.n({
 
-                   "disabled-btn": value.disabled === true
 
-                 }),
 
-                 d: value.id,
 
-                 e: value.disabled === true,
 
-                 f: common_vendor.o(($event) => onSelectSku(property.id, value.id), value.id)
 
-               };
 
-             }),
 
-             c: property.id
 
-           };
 
-         }),
 
-         f: common_vendor.o(($event) => onNumberChange($event)),
 
-         g: common_vendor.o(($event) => state.selectedSku.goods_num = $event),
 
-         h: common_vendor.p({
 
-           min: 1,
 
-           max: state.selectedSku.stock,
 
-           step: 1,
 
-           modelValue: state.selectedSku.goods_num
 
-         }),
 
-         i: common_vendor.o(() => {
 
-         }),
 
-         j: common_vendor.o(onAddCart),
 
-         k: common_vendor.o(onBuy),
 
-         l: common_vendor.o(($event) => emits("close")),
 
-         m: common_vendor.p({
 
-           show: __props.show,
 
-           round: "10"
 
-         })
 
-       };
 
-     };
 
-   }
 
- };
 
- const Component = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-a43d1e2a"], ["__file", "/Users/RuHu.Xu/Desktop/mall-newfeifan-zx-app/sheep/components/s-select-sku/s-select-sku.vue"]]);
 
- wx.createComponent(Component);
 
 
  |