# sku-cc
**Repository Path**: Exvcc/sku-cc
## Basic Information
- **Project Name**: sku-cc
- **Description**: uniapp SKU 小组件
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2021-10-09
- **Last Updated**: 2023-10-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#SKU组件
##使用说明
这里只提供简单的外观,如果外观需求请自行修改
```html
//sku-cc组件不用修改。spec-item-default 组件只是简单的外观,如对外观有需求,请自行重构该子组件或直接使用其他组建代替
```
```js
//js比较简单,只需要提供参数即可
export default {
data() {
return {
disable: false,
selectedIndex: -1,
specList: [],
skuList: []
}
},
methods: {
getSelectedIndex(e){
//获取选中的sku序号,更新时被动调,主动调用请自行设置ref值,方法一致
console.info('getSelectedIndex', e)
},
getSelectedSkuObj(e) {
//获取详细的sku对象信息,更新时被动调,主动调用请自行设置ref值,方法一致
console.info('getSelectedSkuObj', e)
}
}
}
```
```json
//specList数据结构示例。数据结构不同时,请使用specListKey,specIdsKey,separator,specPattern等4个参数来控制。
[
{
"id": 1,
"title": "颜色",
"specList": [
{
"id": 1,
"title": "红色"
},
{
"id": 2,
"title": "白色"
},
{
"id": 3,
"title": "黑色"
}
]
},
{
"id": 2,
"title": "内存",
"specList": [
{
"id": 4,
"title": "64G"
},
{
"id": 5,
"title": "128G"
}
]
},
{
"id": 3,
"title": "套餐",
"specList": [
{
"id": 6,
"title": "套餐1"
},
{
"id": 7,
"title": "套餐2"
}
]
}
]
```
```json
//skuList数据结构示例。数据结构不同时,请使用specListKey,specIdsKey,separator,specPattern等4个参数来控制。
[
{
"id": 1,
"specIds": "1,4,6",
"price": "399.00",
"sku": "",
},
{
"id": 2,
"specIds": "2,4,7",
"price": "499.00",
"sku": "",
},
{
"id": 3,
"specIds": "3,4,6",
"price": "1499.00",
"sku": "",
},
{
"id": 3,
"specIds": "3,5,7",
"price": "1499.00",
"sku": "",
},
{
"id": 3,
"specIds": "1,5,6",
"price": "1499.00",
"sku": "",
}
]
```
##主组建(sku-cc)说明
####本组建sku-cc只提供事件及逻辑内容,单纯的sku功能不含其他内容。样式及点击效果交给下级组建来实现,
####样式文件更新请看下面《重构样式指引》。
#####请注意组建使用方式,sku-cc的内容不变,请修改样式子组建内容。
```js
```
##prop说明
| 参数 | 说明 | 类型 | 默认值 | 可选值 |
|-----------------------|----------------------------------------------------|---------|--------|------------|
| specList | 属性Map列表 | Array | [] | - |
| skuList | sku列表 | Array | [] | - |
| disable | 是否禁止选择 | Boolean | false | true,false |
| selectedIndex | 默认选中序号 | Number | -1 | 0-N |
| specListKey | 属性项列表的key | String | specList | - |
| specIdsKey | sku的属性Id集的key | String | specIds | - |
| separator | sku属性集的分隔符 | String | , | - |
| specPattern | 单个属性项的正则匹配值,也是默认属性的代替值。这里使用specId来验证,不同的规则可以自己定义,可以为中文等等。 | String | [0-9]* | - |
##重构样式指引(spec-item-default)
####简单的方式可以直接对照 spec-item-default.vue 文件
```js
{{ title }}
{{ specItem.title }}
```
以上是简单的使用方式及文档说明,代码基本都有注释。 如果还有问题请联系我。
# 一些问题
循环使用插槽,微信小程序会报异常,建议直接在组建中使用子组建
# 支持
如果该项目对你有帮助,麻烦点个赞赏,支持一杯咖啡喝,3Q