网站建设兼职劳务协议,佛山网站建设的首选公司,小程序服务器可以做网站吗,网页设计版式图片商品的每一条规格和属性在数据库里都是单一的一条数据#xff0c;从数据库里查出来后#xff0c;该怎么归类为对应的规格和属性值#xff1f;如下图#xff1a; 在商城模块#xff0c;商品的单规格、多规格、单属性、多属性功能可以说是非常完整#xff0c;如下图#x…商品的每一条规格和属性在数据库里都是单一的一条数据从数据库里查出来后该怎么归类为对应的规格和属性值如下图 在商城模块商品的单规格、多规格、单属性、多属性功能可以说是非常完整如下图 在多规格设置里每添加一项属性规格列表里都会增加一项每添加一个属性值规格列表里也会增加一条对应的项。 下图为表格里规格在数据库中的数据直接存了字符串数据 从数据库查出来以后得到的是多条数据想处理为对应的规格和属性也有很多的方式和方法可以在前端处理也可以在后端处理本来我想在后端处理的转换数据的方法前端一个函数是可以直接引入调用的方法如下
/*** 获得商品的规格列表 - 商品相关的公共函数** param spu* return PropertyAndValues 规格列表*/
const getPropertyList (spu: Spu): PropertyAndValues[] {// 直接拿返回的 skus 属性逆向生成出 propertyListconst 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
}这个函数体的文件目录是在views/mall/product/spu/components/index.ts直接在需要使用的地方引入调用即可打印一下。
prodDetail.value.property getPropertyList(data)
console.log(prodDetail.value.property);处理过后的数据是这样的。如下图
在这里已经处理好了ok处理完成。