|
|
|
|
@ -175,7 +175,7 @@ import { propTypes } from '@/utils/propTypes'
|
|
|
|
|
import { checkSelectedNode, defaultProps, handleTree, treeToString } from '@/utils/tree'
|
|
|
|
|
import { createImageViewer } from '@/components/ImageViewer'
|
|
|
|
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
|
|
|
|
import { PropertyAndValues, SkuList } from '@/views/mall/product/spu/components/index.ts'
|
|
|
|
|
import { getPropertyList, SkuList } from '@/views/mall/product/spu/components/index.ts'
|
|
|
|
|
import ProductAttributes from './ProductAttributes.vue'
|
|
|
|
|
import ProductPropertyAddForm from './ProductPropertyAddForm.vue'
|
|
|
|
|
import { basicInfoSchema } from './spu.data'
|
|
|
|
|
@ -203,34 +203,6 @@ const imagePreview = (args) => {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获得商品的规格列表
|
|
|
|
|
*
|
|
|
|
|
* @param spu
|
|
|
|
|
* @return PropertyAndValues 规格列表
|
|
|
|
|
*/
|
|
|
|
|
const getPropertyList = (spu: Spu): PropertyAndValues[] => {
|
|
|
|
|
// 直接拿返回的 skus 属性逆向生成出 propertyList
|
|
|
|
|
const properties: PropertyAndValues[] = []
|
|
|
|
|
// 只有是多规格才处理
|
|
|
|
|
if (spu.specType) {
|
|
|
|
|
spu.skus?.forEach((sku) => {
|
|
|
|
|
sku.properties?.forEach(({ propertyId, propertyName, valueId, valueName }) => {
|
|
|
|
|
// 添加属性
|
|
|
|
|
if (!properties?.some((item) => item.id === propertyId)) {
|
|
|
|
|
properties.push({ id: propertyId!, name: propertyName!, values: [] })
|
|
|
|
|
}
|
|
|
|
|
// 添加属性值
|
|
|
|
|
const index = properties?.findIndex((item) => item.id === propertyId)
|
|
|
|
|
if (!properties[index].values?.some((value) => value.id === valueId)) {
|
|
|
|
|
properties[index].values?.push({ id: valueId!, name: valueName! })
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
return properties
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ====== end ======
|
|
|
|
|
|
|
|
|
|
const message = useMessage() // 消息弹窗
|
|
|
|
|
|