123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- /********************商品限购和商品起售********************/
- export function useGoodsLimit() {
- /**
- * 获取商品数量
- * params 商品库存(stock),是否开启限购(is_limit),限购类型(limit_type),限购数量(max_buy),起购(min_buy),已购买数量(has_buy)
- * return 商品数量,是否可以购买,原因
- ***/
- const getGoodsNum = (params: any = {}) => {
- let { stock, is_limit, limit_type, max_buy, min_buy, has_buy, num } = params;
- let temp_range = {
- 'up': { num: 0, tips: '', is_stock: false }, // 上限
- 'off': { num: 0, tips: '' } // 下限
- };
- let returnObj = {
- num: 0,
- max_num: 0,
- is_buy: true,
- tips: ''
- }
- /******************* 起售-start ************************/
- temp_range.off.num = min_buy > 0 ? min_buy : 1;
- if (min_buy) {
- temp_range.off.tips = `该商品起购${ params.min_buy }件`;
- }
- /******************* 起售-end ************************/
- /******************* 限购-start ************************/
- if (is_limit) {
- returnObj.is_buy = true;
- if (max_buy) {
- if (limit_type == 1) { //单次限购
- temp_range.up.num = max_buy;
- temp_range.up.tips = `该商品单次限购${ max_buy }件`;
- } else { // 单人限购
- let buyVal = params.max_buy - (params.has_buy || 0);
- temp_range.up.num = buyVal > 0 ? buyVal : 0;
- temp_range.up.tips = `该商品单次限购${ max_buy }件`;
- if (has_buy > 0) {
- temp_range.up.tips += `,已购${ has_buy }件`;
- }
- }
- if (temp_range.up.num > params.stock) {
- temp_range.up.num = params.stock;
- temp_range.up.is_stock = true;
- temp_range.up.tips = "商品库存不足";
- }
- }
- } else {
- returnObj.is_buy = true;
- temp_range.up.num = stock;
- temp_range.up.tips = "商品库存不足";
- }
- /******************* 限购-end ************************/
- if (temp_range.off.num > temp_range.up.num && temp_range.up.is_stock) {
- temp_range.up.tips = "商品库存不足";
- } else if (temp_range.off.num > temp_range.up.num) {
- returnObj.num = temp_range.up.num;
- } else {
- if (num <= temp_range.off.num) {
- returnObj.tips = temp_range.off.tips;
- }
- }
- return returnObj;
- }
- return {
- getGoodsNum
- }
- }
|