|
@@ -185,11 +185,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,
|
|
|
- RuleConfig,
|
|
|
- SkuList
|
|
|
-} from '@/views/mall/product/spu/components/index.ts'
|
|
|
+import { getPropertyList, RuleConfig, SkuList } from '@/views/mall/product/spu/components/index.ts'
|
|
|
import ProductAttributes from './ProductAttributes.vue'
|
|
|
import ProductPropertyAddForm from './ProductPropertyAddForm.vue'
|
|
|
import { basicInfoSchema } from './spu.data'
|
|
@@ -241,34 +237,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() // 消息弹窗
|