123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- import Vue from 'vue'
- export const deepClone = (obj) => {
- const targetObj = obj.constructor === Array ? [] : {}
- Object.keys(obj).forEach(keys => {
- if (obj[keys] && typeof obj[keys] === 'object') {
- targetObj[keys] = deepClone(obj[keys])
- } else {
- targetObj[keys] = obj[keys]
- }
- })
- return targetObj
- }
- export const clearTypeListZeros = typeList => {
- typeList.forEach(e => {
- Object.keys(e.size).forEach(ee => {
- if(e.size[ee] === 0) {
- delete e.size[ee]
- delete e.choosed[ee]
- }
- })
- })
- for(let i = typeList.length - 1; i > -1; i --) {
- if(!Object.keys(typeList[i].size).length) {
- typeList.splice(i, 1)
- }
- }
- }
- export const clearGoodTypeListZero = shopcarList => {
- for(let i = shopcarList.length - 1; i > -1; i --) {
- if(!shopcarList[i].typeList.length) {
- shopcarList.splice(i, 1)
- }
- shopcarList[i] ? shopcarList[i].choosed = shopcarList[i].typeList.some(e => Object.keys(e.choosed).some(ee => e.choosed[ee] === true)) : ''
- }
- }
- export const mergeGoodToShopcar = (origin, target) => {
- origin.typeList.forEach(typeItem => {
- for(let targetTypeListIndex = target.typeList.length - 1; targetTypeListIndex > -1; targetTypeListIndex --) {
- if (typeItem.type_id === target.typeList[targetTypeListIndex].type_id) {
- Object.keys(target.typeList[targetTypeListIndex].size).forEach(size => {
- if(typeItem.size[size]) {
- typeItem.size[size] += target.typeList[targetTypeListIndex].size[size]
- } else {
- Vue.set(typeItem.size, size, target.typeList[targetTypeListIndex].size[size])
- }
- Vue.set(typeItem.choosed, size, true)
- })
- target.typeList.splice(targetTypeListIndex, 1)
- }
- }
- })
- origin.typeList.splice(origin.typeList.length - 1, 0, ...target.typeList)
- origin.typeList.sort((a, b) => +a.type_id - +b.type_id)
- }
- export const confirmOrder = goodList => {
- const list = []
- goodList.forEach(goodItem => {
- clearTypeListZeros(goodItem.typeList)
- goodItem.typeList.forEach(typeItem => {
- Object.keys(typeItem.size).forEach(size => {
- const item = {}
- item.id = goodItem.id
- item.type_id = typeItem.type_id
- item.num = typeItem.size[size]
- item.size_id = typeItem.size_id[size]
- list.push(item)
- })
- })
- })
- return list
- }
- export const clearShoplistConfirmed = (goodList, payload) => {
- payload.forEach((e, i) => {
- e.typeList.forEach((ee, ei) => {
- Object.keys(ee.size).forEach(eee => {
- goodList[i].typeList[ei].size[eee] = 0
- })
- })
- clearTypeListZeros(goodList[i].typeList)
- })
- clearGoodTypeListZero(goodList)
- }
- export const divideOrder = goodList => {
- const list = []
- goodList.forEach(goodItem => {
- goodItem.typeList.forEach(typeItem => {
- Object.keys(typeItem.size).forEach((sizeItem, sizeIndex) => {
- const item = {}
- item.id = goodItem.id
- item.type_id = typeItem.type_id
- item.num = typeItem.num[sizeIndex]
- item.size_id = typeItem.size_id[sizeIndex]
- if (+item.num) {
- list.push(item)
- }
- })
- })
- })
- return list
- }
- export const getQueryString = name => {
- var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
- var r = window.location.search.substr(1).match(reg);
- if (r != null) {
- return unescape(r[2]);
- }
- return null;
- }
|