1 line
14 KiB
JSON
1 line
14 KiB
JSON
{"ast":null,"code":"import \"core-js/modules/es.array.push.js\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { UNSELECTED_SKU_VALUE_ID } from '../constants';\n/*\n normalize sku tree\n\n [\n {\n count: 2,\n k: \"品种\", // 规格名称 skuKeyName\n k_id: \"1200\", // skuKeyId\n k_s: \"s1\" // skuKeyStr\n v: [ // skuValues\n { // skuValue\n id: \"1201\", // skuValueId\n name: \"萌\" // 具体的规格值 skuValueName\n }, {\n id: \"973\",\n name: \"帅\"\n }\n ]\n },\n ...\n ]\n |\n v\n {\n s1: [{\n id: \"1201\",\n name: \"萌\"\n }, {\n id: \"973\",\n name: \"帅\"\n }],\n ...\n }\n */\n\nexport var normalizeSkuTree = function normalizeSkuTree(skuTree) {\n var normalizedTree = {};\n skuTree.forEach(function (treeItem) {\n normalizedTree[treeItem.k_s] = treeItem.v;\n });\n return normalizedTree;\n};\nexport var normalizePropList = function normalizePropList(propList) {\n var normalizedProp = {};\n propList.forEach(function (item) {\n var itemObj = {};\n item.v.forEach(function (it) {\n itemObj[it.id] = it;\n });\n normalizedProp[item.k_id] = itemObj;\n });\n return normalizedProp;\n}; // 判断是否所有的sku都已经选中\n\nexport var isAllSelected = function isAllSelected(skuTree, selectedSku) {\n // 筛选selectedSku对象中key值不为空的值\n var selected = Object.keys(selectedSku).filter(function (skuKeyStr) {\n return selectedSku[skuKeyStr] !== UNSELECTED_SKU_VALUE_ID;\n });\n return skuTree.length === selected.length;\n}; // 根据已选择的 sku 获取 skuComb\n\nexport var getSkuComb = function getSkuComb(skuList, selectedSku) {\n var skuComb = skuList.filter(function (item) {\n return Object.keys(selectedSku).every(function (skuKeyStr) {\n return String(item[skuKeyStr]) === String(selectedSku[skuKeyStr]);\n });\n });\n return skuComb[0];\n}; // 获取已选择的sku名称\n\nexport var getSelectedSkuValues = function getSelectedSkuValues(skuTree, selectedSku) {\n var normalizedTree = normalizeSkuTree(skuTree);\n return Object.keys(selectedSku).reduce(function (selectedValues, skuKeyStr) {\n var skuValues = normalizedTree[skuKeyStr] || [];\n var skuValueId = selectedSku[skuKeyStr];\n if (skuValueId !== UNSELECTED_SKU_VALUE_ID && skuValues.length > 0) {\n var skuValue = skuValues.filter(function (value) {\n return value.id === skuValueId;\n })[0];\n skuValue && selectedValues.push(skuValue);\n }\n return selectedValues;\n }, []);\n}; // 判断sku是否可选\n\nexport var isSkuChoosable = function isSkuChoosable(skuList, selectedSku, skuToChoose) {\n var _extends2;\n var key = skuToChoose.key,\n valueId = skuToChoose.valueId; // 先假设sku已选中,拼入已选中sku对象中\n\n var matchedSku = _extends({}, selectedSku, (_extends2 = {}, _extends2[key] = valueId, _extends2)); // 再判断剩余sku是否全部不可选,若不可选则当前sku不可选中\n\n var skusToCheck = Object.keys(matchedSku).filter(function (skuKey) {\n return matchedSku[skuKey] !== UNSELECTED_SKU_VALUE_ID;\n });\n var filteredSku = skuList.filter(function (sku) {\n return skusToCheck.every(function (skuKey) {\n return String(matchedSku[skuKey]) === String(sku[skuKey]);\n });\n });\n var stock = filteredSku.reduce(function (total, sku) {\n total += sku.stock_num;\n return total;\n }, 0);\n return stock > 0;\n};\nexport var getSelectedPropValues = function getSelectedPropValues(propList, selectedProp) {\n var normalizeProp = normalizePropList(propList);\n return Object.keys(selectedProp).reduce(function (acc, cur) {\n selectedProp[cur].forEach(function (it) {\n acc.push(_extends({}, normalizeProp[cur][it]));\n });\n return acc;\n }, []);\n};\nexport var getSelectedProperties = function getSelectedProperties(propList, selectedProp) {\n var list = [];\n (propList || []).forEach(function (prop) {\n if (selectedProp[prop.k_id] && selectedProp[prop.k_id].length > 0) {\n var v = [];\n prop.v.forEach(function (it) {\n if (selectedProp[prop.k_id].indexOf(it.id) > -1) {\n v.push(_extends({}, it));\n }\n });\n list.push(_extends({}, prop, {\n v: v\n }));\n }\n });\n return list;\n};\nexport default {\n normalizeSkuTree: normalizeSkuTree,\n getSkuComb: getSkuComb,\n getSelectedSkuValues: getSelectedSkuValues,\n isAllSelected: isAllSelected,\n isSkuChoosable: isSkuChoosable,\n getSelectedPropValues: getSelectedPropValues,\n getSelectedProperties: getSelectedProperties\n};","map":{"version":3,"names":["_extends","UNSELECTED_SKU_VALUE_ID","normalizeSkuTree","skuTree","normalizedTree","forEach","treeItem","k_s","v","normalizePropList","propList","normalizedProp","item","itemObj","it","id","k_id","isAllSelected","selectedSku","selected","Object","keys","filter","skuKeyStr","length","getSkuComb","skuList","skuComb","every","String","getSelectedSkuValues","reduce","selectedValues","skuValues","skuValueId","skuValue","value","push","isSkuChoosable","skuToChoose","_extends2","key","valueId","matchedSku","skusToCheck","skuKey","filteredSku","sku","stock","total","stock_num","getSelectedPropValues","selectedProp","normalizeProp","acc","cur","getSelectedProperties","list","prop","indexOf"],"sources":["E:/work/sino/sino-h5/node_modules/vant/es/sku/utils/sku-helper.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { UNSELECTED_SKU_VALUE_ID } from '../constants';\n/*\n normalize sku tree\n\n [\n {\n count: 2,\n k: \"品种\", // 规格名称 skuKeyName\n k_id: \"1200\", // skuKeyId\n k_s: \"s1\" // skuKeyStr\n v: [ // skuValues\n { // skuValue\n id: \"1201\", // skuValueId\n name: \"萌\" // 具体的规格值 skuValueName\n }, {\n id: \"973\",\n name: \"帅\"\n }\n ]\n },\n ...\n ]\n |\n v\n {\n s1: [{\n id: \"1201\",\n name: \"萌\"\n }, {\n id: \"973\",\n name: \"帅\"\n }],\n ...\n }\n */\n\nexport var normalizeSkuTree = function normalizeSkuTree(skuTree) {\n var normalizedTree = {};\n skuTree.forEach(function (treeItem) {\n normalizedTree[treeItem.k_s] = treeItem.v;\n });\n return normalizedTree;\n};\nexport var normalizePropList = function normalizePropList(propList) {\n var normalizedProp = {};\n propList.forEach(function (item) {\n var itemObj = {};\n item.v.forEach(function (it) {\n itemObj[it.id] = it;\n });\n normalizedProp[item.k_id] = itemObj;\n });\n return normalizedProp;\n}; // 判断是否所有的sku都已经选中\n\nexport var isAllSelected = function isAllSelected(skuTree, selectedSku) {\n // 筛选selectedSku对象中key值不为空的值\n var selected = Object.keys(selectedSku).filter(function (skuKeyStr) {\n return selectedSku[skuKeyStr] !== UNSELECTED_SKU_VALUE_ID;\n });\n return skuTree.length === selected.length;\n}; // 根据已选择的 sku 获取 skuComb\n\nexport var getSkuComb = function getSkuComb(skuList, selectedSku) {\n var skuComb = skuList.filter(function (item) {\n return Object.keys(selectedSku).every(function (skuKeyStr) {\n return String(item[skuKeyStr]) === String(selectedSku[skuKeyStr]);\n });\n });\n return skuComb[0];\n}; // 获取已选择的sku名称\n\nexport var getSelectedSkuValues = function getSelectedSkuValues(skuTree, selectedSku) {\n var normalizedTree = normalizeSkuTree(skuTree);\n return Object.keys(selectedSku).reduce(function (selectedValues, skuKeyStr) {\n var skuValues = normalizedTree[skuKeyStr] || [];\n var skuValueId = selectedSku[skuKeyStr];\n\n if (skuValueId !== UNSELECTED_SKU_VALUE_ID && skuValues.length > 0) {\n var skuValue = skuValues.filter(function (value) {\n return value.id === skuValueId;\n })[0];\n skuValue && selectedValues.push(skuValue);\n }\n\n return selectedValues;\n }, []);\n}; // 判断sku是否可选\n\nexport var isSkuChoosable = function isSkuChoosable(skuList, selectedSku, skuToChoose) {\n var _extends2;\n\n var key = skuToChoose.key,\n valueId = skuToChoose.valueId; // 先假设sku已选中,拼入已选中sku对象中\n\n var matchedSku = _extends({}, selectedSku, (_extends2 = {}, _extends2[key] = valueId, _extends2)); // 再判断剩余sku是否全部不可选,若不可选则当前sku不可选中\n\n\n var skusToCheck = Object.keys(matchedSku).filter(function (skuKey) {\n return matchedSku[skuKey] !== UNSELECTED_SKU_VALUE_ID;\n });\n var filteredSku = skuList.filter(function (sku) {\n return skusToCheck.every(function (skuKey) {\n return String(matchedSku[skuKey]) === String(sku[skuKey]);\n });\n });\n var stock = filteredSku.reduce(function (total, sku) {\n total += sku.stock_num;\n return total;\n }, 0);\n return stock > 0;\n};\nexport var getSelectedPropValues = function getSelectedPropValues(propList, selectedProp) {\n var normalizeProp = normalizePropList(propList);\n return Object.keys(selectedProp).reduce(function (acc, cur) {\n selectedProp[cur].forEach(function (it) {\n acc.push(_extends({}, normalizeProp[cur][it]));\n });\n return acc;\n }, []);\n};\nexport var getSelectedProperties = function getSelectedProperties(propList, selectedProp) {\n var list = [];\n (propList || []).forEach(function (prop) {\n if (selectedProp[prop.k_id] && selectedProp[prop.k_id].length > 0) {\n var v = [];\n prop.v.forEach(function (it) {\n if (selectedProp[prop.k_id].indexOf(it.id) > -1) {\n v.push(_extends({}, it));\n }\n });\n list.push(_extends({}, prop, {\n v: v\n }));\n }\n });\n return list;\n};\nexport default {\n normalizeSkuTree: normalizeSkuTree,\n getSkuComb: getSkuComb,\n getSelectedSkuValues: getSelectedSkuValues,\n isAllSelected: isAllSelected,\n isSkuChoosable: isSkuChoosable,\n getSelectedPropValues: getSelectedPropValues,\n getSelectedProperties: getSelectedProperties\n};"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]} |