{"version":3,"file":"interface.b9d006ec.js","sources":["../../src/pages/createOrder/interface.ts"],"sourcesContent":["import {arr2tree} from \"@/utils/ZUtils\";\r\n\r\nexport interface ISkuType {\r\n id: number,\r\n weight: number //重量\r\n num: number //数量\r\n declare: number // 报价\r\n sku: string //sku\r\n cn: string,\r\n en: string\r\n usCode: string\r\n material: string //材质\r\n useage: string //用途\r\n brand: string // 品牌\r\n model: string //型号\r\n origin: string //原产地\r\n pic: string\r\n specAddPirce: any\r\n goodsId?: number\r\n}\r\n\r\n\r\nexport interface IBoxType{\r\n id: number\r\n long: number\r\n wide: number\r\n high: number\r\n weight: number\r\n num: number\r\n productDtos: ISkuType[]\r\n}\r\n\r\nexport interface ITotalData{\r\n weight?: number, // 总重\r\n quantity?: number, // 总件\r\n declare?: number // 申报总价\r\n box?: number // 总箱\r\n}\r\n\r\nexport const skuItem:ISkuType = {\r\n id: 0,\r\n weight: 0,\r\n num: 1,\r\n declare: 0,\r\n sku: '',\r\n cn: '',\r\n en: '',\r\n usCode: '',\r\n material: '',\r\n useage: '',\r\n brand: '',\r\n model: '',\r\n origin: 'CN',\r\n pic: '',\r\n specAddPirce: '',\r\n goodsId: 0\r\n}\r\nexport const boxItem:IBoxType = {\r\n id: 0,\r\n long: 0,\r\n wide: 0,\r\n high: 0,\r\n weight: 1,\r\n num: 1,\r\n productDtos: [\r\n skuItem\r\n ]\r\n}\r\n\r\nexport const json2arr = (values: any) => {\r\n const keyArray = Object.keys(values)?.filter((keys: string) => keys.includes('-'))\r\n const boxKeyArray: string[] = []\r\n const skuKeyArray: string[] = []\r\n // box 和 sku分组处理\r\n keyArray.forEach((key: string) => {\r\n if (!key.replace('-', '+').includes('-')) {\r\n boxKeyArray.push(key)\r\n } else {\r\n skuKeyArray.push(key)\r\n }\r\n })\r\n\r\n // 箱属性\r\n const boxMap = boxKeyArray.reduce((result: any, i: string) => {\r\n const [key, value] = i?.split('-') ?? []\r\n if (!result[key]) {\r\n result[key] = {\r\n [value]: values[i],\r\n 'id': Number(key)\r\n }\r\n } else {\r\n result[key][value] = values[i]\r\n }\r\n return result\r\n }, {})\r\n // skuItem 属性\r\n const skuMap = skuKeyArray.reduce((result: any, i: string) => {\r\n const [key, value, subKey] = i?.split('-') ?? []\r\n const k = `${key}-${subKey}`\r\n if (Object.keys(skuItem).includes(value) && values[i]) {\r\n if (!result[k]) {\r\n result[k] = {\r\n [value]: values[i],\r\n 'id': Number(subKey),\r\n 'parentId': Number(key),\r\n 'box': Number(values[`${key}-num`])\r\n }\r\n } else {\r\n result[k][value] = values[i]\r\n }\r\n }\r\n return result\r\n }, {})\r\n return [...Object.values(boxMap), ...Object.values(skuMap)]\r\n}\r\n\r\nexport const getBoxDtoList = (values: any) => arr2tree(json2arr(values))\r\n\r\n\r\n//获取总数据\r\nexport const getTotalData = (params: any) => {\r\n const json: any = json2arr(params).reduce((result: any, i: any) => {\r\n if (!i.hasOwnProperty('parentId')) {\r\n result.weight += Number(i.weight || 0) * Number(i.num || 1)\r\n result.box += Number(i.num || 0)\r\n } else {\r\n result.quantity += Number(i.num || 0) * Number(i.box || 0)\r\n }\r\n return result\r\n }, {\r\n weight: 0,\r\n quantity: 0,\r\n box: 0\r\n })\r\n return json || {\r\n weight: 0,\r\n quantity: 0,\r\n box: 0\r\n }\r\n}\r\n\r\n// box转fields\r\nexport const getFields = (e: any) => {\r\n return e.reduce((result: any, i: IBoxType) => {\r\n i?.productDtos && i?.productDtos?.forEach?.((sub: ISkuType, subIndex: number) => Object.keys(sub)?.forEach((j: string) => {\r\n result[`${i.id}-${j}-${subIndex}`] = sub[j]\r\n result[`${i.id}-id-${subIndex}`] = subIndex\r\n }))\r\n Object.keys(i)?.forEach((key: string) => {\r\n if (key !== 'productDtos') {\r\n result[`${i.id}-${key}`] = i[key]\r\n }\r\n })\r\n return result\r\n }, {})\r\n}\r\n\r\n// 获取实重\r\nexport const getSubWeight = (sub:ISkuType[]) => {\r\n const total: number = sub?.reduce((result: number,i: ISkuType) => {\r\n result += Number(i?.weight??0) * Number(i?.num??0)\r\n return result\r\n },0)\r\n return total\r\n}\r\n\r\n// 校验箱内sku重量\r\nexport const validSku = (box: IBoxType[]) => {\r\n return box.reduce((result: any,i: any,index: number) =>{\r\n const weight: any = getSubWeight(i.productDtos)?.toFixed(1)\r\n if (Number(i.weight) < weight) {\r\n result[index + 1] = {\r\n status: true,\r\n box: index + 1,\r\n weight\r\n }\r\n }\r\n return result\r\n },{})\r\n}\r\n\r\n"],"names":["skuItem","id","weight","num","declare","sku","cn","en","usCode","material","useage","brand","model","origin","pic","specAddPirce","goodsId","boxItem","long","wide","high","productDtos","json2arr","values","keyArray","Object","keys","filter","includes","boxKeyArray","skuKeyArray","forEach","key","replace","push","boxMap","reduce","result","i","value","split","Number","skuMap","subKey","k","getBoxDtoList","arr2tree","getTotalData","params","json","hasOwnProperty","quantity","box","getFields","e","sub","subIndex","j","getSubWeight","validSku","index","toFixed","status"],"mappings":"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"}