| 1234567891011121314151617181920212223242526272829 |
- /** 笛卡尔积生成规格组合 */
- export function buildSpecCombos(specs) {
- const groups = (specs || [])
- .map((s) => ({
- name: s.name,
- values: (s.values || []).filter((v) => v.selected)
- }))
- .filter((g) => g.values.length);
- if (!groups.length) return [];
- return groups.reduce(
- (acc, g) => {
- const next = [];
- acc.forEach((prev) => {
- g.values.forEach((v) => {
- next.push({
- label: prev.label ? `${prev.label} | ${v.name}` : v.name,
- keys: [...(prev.keys || []), v.id],
- price: '',
- sellingPrice: '',
- stock: '',
- costPrice: ''
- });
- });
- });
- return next;
- },
- [{ label: '', keys: [] }]
- );
- }
|