[Improvement] Reorganize demos (#1052)

This commit is contained in:
neverland
2018-05-12 15:22:37 +08:00
committed by GitHub
parent a55eda8891
commit 4de1e7da55
83 changed files with 109 additions and 113 deletions

517
packages/sku/demo/data.js Normal file
View File

@@ -0,0 +1,517 @@
/* eslint-disable */
export default {
'zh-CN': {
kdt_id: 55,
user_id: 4674509,
offline_id: 0,
activity_alias: '',
sku: {
tree: [
{
k: '颜色',
k_id: '1',
v: [
{
id: '30349',
name: '天蓝色',
imgUrl:
'https://img.yzcdn.cn/upload_files/2017/02/21/FjKTOxjVgnUuPmHJRdunvYky9OHP.jpg!100x100.jpg'
}
],
k_s: 's1',
count: 2
},
{
k: '尺寸',
k_id: '2',
v: [
{
id: '1193',
name: '1'
},
{
id: '1194',
name: '2'
}
],
k_s: 's2',
count: 2
}
],
list: [
{
id: 2259,
price: 100,
discount: 100,
code: '',
s1: '1215',
s2: '1193',
s3: '0',
s4: '0',
s5: '0',
extend: null,
kdt_id: 55,
discount_price: 0,
stock_num: 110,
stock_mode: 0,
is_sell: null,
combin_sku: false,
goods_id: 946755
},
{
id: 2260,
price: 100,
discount: 100,
code: '',
s1: '1215',
s2: '1194',
s3: '0',
s4: '0',
s5: '0',
extend: null,
kdt_id: 55,
discount_price: 0,
stock_num: 0,
stock_mode: 0,
is_sell: null,
combin_sku: false,
goods_id: 946755
},
{
id: 2257,
price: 100,
discount: 100,
code: '',
s1: '30349',
s2: '1193',
s3: '0',
s4: '0',
s5: '0',
extend: null,
kdt_id: 55,
discount_price: 0,
stock_num: 111,
stock_mode: 0,
is_sell: null,
combin_sku: false,
goods_id: 946755
},
{
id: 2258,
price: 100,
discount: 100,
code: '',
s1: '30349',
s2: '1194',
s3: '0',
s4: '0',
s5: '0',
extend: null,
kdt_id: 55,
discount_price: 0,
stock_num: 6,
stock_mode: 0,
is_sell: null,
combin_sku: false,
goods_id: 946755
}
],
price: '1.00',
stock_num: 227,
collection_id: 2261,
collection_price: 0,
none_sku: false,
sold_num: 0,
min_price: '1.00',
max_price: '1.00',
messages: [
{
datetime: '0',
disable_multiple: false,
disable: false,
multiple: '0',
name: '留言1',
disable_required: false,
disable_edit_name: false,
type: 'text',
disable_delete: false,
disable_type: false,
required: '1'
},
{
datetime: '0',
disable_multiple: false,
disable: false,
multiple: 0,
name: '留言2',
disable_required: false,
disable_edit_name: false,
type: 'id_no',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
multiple: 0,
name: '留言3',
disable_required: false,
disable_edit_name: false,
type: 'image',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
multiple: 1,
name: '留言4',
disable_required: false,
disable_edit_name: false,
type: 'text',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
name: '数字',
multiple: 0,
disable_required: false,
disable_edit_name: false,
type: 'tel',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
name: '邮件',
multiple: 0,
disable_required: false,
disable_edit_name: false,
type: 'email',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
name: '日期',
multiple: 0,
disable_required: false,
disable_edit_name: false,
type: 'date',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
name: '时间含日期',
multiple: 0,
disable_required: false,
disable_edit_name: false,
type: 'time',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
name: '时间',
multiple: 0,
disable_required: false,
disable_edit_name: false,
type: 'time',
disable_delete: false,
disable_type: false,
required: 0
}
],
hide_stock: false
},
goods_id: '946755',
alias: '2oml0r0n5vytj',
quota: 15,
is_virtual: '0',
quota_used: 0,
goods_info: {
title: '测试商品',
picture: 'https://img.yzcdn.cn/upload_files/2017/03/16/Fs_OMbSFPa183sBwvG_94llUYiLa.jpeg?imageView2/2/w/100/h/100/q/75/format/jpg',
price: 1,
origin: ''
}
},
'en-US': {
kdt_id: 55,
user_id: 4674509,
offline_id: 0,
activity_alias: '',
sku: {
tree: [
{
k: 'Color',
k_id: '1',
v: [
{
id: '30349',
name: 'Blue',
imgUrl:
'https://img.yzcdn.cn/upload_files/2017/02/21/FjKTOxjVgnUuPmHJRdunvYky9OHP.jpg!100x100.jpg'
}
],
k_s: 's1',
count: 2
},
{
k: 'Size',
k_id: '2',
v: [
{
id: '1193',
name: '1'
},
{
id: '1194',
name: '2'
}
],
k_s: 's2',
count: 2
}
],
list: [
{
id: 2259,
price: 100,
discount: 100,
code: '',
s1: '1215',
s2: '1193',
s3: '0',
s4: '0',
s5: '0',
extend: null,
kdt_id: 55,
discount_price: 0,
stock_num: 110,
stock_mode: 0,
is_sell: null,
combin_sku: false,
goods_id: 946755
},
{
id: 2260,
price: 100,
discount: 100,
code: '',
s1: '1215',
s2: '1194',
s3: '0',
s4: '0',
s5: '0',
extend: null,
kdt_id: 55,
discount_price: 0,
stock_num: 0,
stock_mode: 0,
is_sell: null,
combin_sku: false,
goods_id: 946755
},
{
id: 2257,
price: 100,
discount: 100,
code: '',
s1: '30349',
s2: '1193',
s3: '0',
s4: '0',
s5: '0',
extend: null,
kdt_id: 55,
discount_price: 0,
stock_num: 111,
stock_mode: 0,
is_sell: null,
combin_sku: false,
goods_id: 946755
},
{
id: 2258,
price: 100,
discount: 100,
code: '',
s1: '30349',
s2: '1194',
s3: '0',
s4: '0',
s5: '0',
extend: null,
kdt_id: 55,
discount_price: 0,
stock_num: 4,
stock_mode: 0,
is_sell: null,
combin_sku: false,
goods_id: 946755
}
],
price: '1.00',
stock_num: 227,
collection_id: 2261,
collection_price: 0,
none_sku: false,
sold_num: 0,
min_price: '1.00',
max_price: '1.00',
messages: [
{
datetime: '0',
disable_multiple: false,
disable: false,
multiple: '0',
name: 'Messsage 1',
disable_required: false,
disable_edit_name: false,
type: 'text',
disable_delete: false,
disable_type: false,
required: '1'
},
{
datetime: '0',
disable_multiple: false,
disable: false,
multiple: 0,
name: 'Messsage 2',
disable_required: false,
disable_edit_name: false,
type: 'id_no',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
multiple: 0,
name: 'Messsage 3',
disable_required: false,
disable_edit_name: false,
type: 'image',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
multiple: 1,
name: 'Messsage 4',
disable_required: false,
disable_edit_name: false,
type: 'text',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
name: 'Number',
multiple: 0,
disable_required: false,
disable_edit_name: false,
type: 'tel',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
name: 'Email',
multiple: 0,
disable_required: false,
disable_edit_name: false,
type: 'email',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
name: 'Date',
multiple: 0,
disable_required: false,
disable_edit_name: false,
type: 'date',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
name: 'Datetime',
multiple: 0,
disable_required: false,
disable_edit_name: false,
type: 'time',
disable_delete: false,
disable_type: false,
required: 0
},
{
datetime: '0',
disable_multiple: false,
disable: false,
name: 'Time',
multiple: 0,
disable_required: false,
disable_edit_name: false,
type: 'time',
disable_delete: false,
disable_type: false,
required: 0
}
],
hide_stock: false
},
goods_id: '946755',
alias: '2oml0r0n5vytj',
quota: 15,
is_virtual: '0',
quota_used: 1,
goods_info: {
title: 'Goods Name',
picture: 'https://img.yzcdn.cn/upload_files/2017/03/16/Fs_OMbSFPa183sBwvG_94llUYiLa.jpeg?imageView2/2/w/100/h/100/q/75/format/jpg',
price: 1,
origin: ''
}
}
};

161
packages/sku/demo/index.vue Normal file
View File

@@ -0,0 +1,161 @@
<template>
<demo-section>
<demo-block :title="$t('basicUsage')">
<div class="sku-container">
<van-sku
v-model="showBase"
:sku="$t('sku').sku"
:goods="$t('sku').goods_info"
:goods-id="$t('sku').goods_id"
:hide-stock="$t('sku').sku.hide_stock"
:quota="$t('sku').quota"
:quota-used="$t('sku').quota_used"
reset-stepper-on-hide
reset-selected-sku-on-hide
disable-stepper-input
:close-on-click-overlay="closeOnClickOverlay"
:message-config="messageConfig"
@buy-clicked="onBuyClicked"
@add-cart="onAddCartClicked"
/>
<van-button type="primary" @click="showBase = true" block>{{ $t('basicUsage') }}</van-button>
</div>
</demo-block>
<demo-block :title="$t('title2')">
<div class="sku-container">
<van-sku
v-model="showStepper"
:sku="$t('sku').sku"
:goods="$t('sku').goods_info"
:goods-id="$t('sku').goods_id"
:hide-stock="$t('sku').sku.hide_stock"
:quota="$t('sku').quota"
:quota-used="$t('sku').quota_used"
:custom-stepper-config="customStepperConfig"
:message-config="messageConfig"
@buy-clicked="onBuyClicked"
@add-cart="onAddCartClicked"
/>
<van-button type="primary" @click="showStepper = true" block>{{ $t('title2') }}</van-button>
</div>
</demo-block>
<demo-block :title="$t('advancedUsage')">
<div class="sku-container">
<van-sku
v-model="showCustom"
:stepper-title="$t('stepperTitle')"
:sku="$t('sku').sku"
:goods="$t('sku').goods_info"
:goods-id="$t('sku').goods_id"
:hide-stock="$t('sku').sku.hide_stock"
:quota="$t('sku').quota"
:quota-used="$t('sku').quota_used"
show-add-cart-btn
reset-stepper-on-hide
:initial-sku="initialSku"
:message-config="messageConfig"
@buy-clicked="onBuyClicked"
@add-cart="onAddCartClicked"
>
<template slot="sku-header-price" slot-scope="props">
<div class="van-sku__goods-price">
<span class="van-sku__price-symbol"></span><span class="van-sku__price-num">{{ props.price }}</span>
</div>
</template>
<template slot="sku-actions" slot-scope="props">
<div class="van-sku-actions">
<van-button bottom-action @click="onPointClicked">{{ $t('button1') }}</van-button>
<van-button type="primary" bottom-action @click="props.skuEventBus.$emit('sku:buy')">{{ $t('button2') }}</van-button>
</div>
</template>
</van-sku>
<van-button type="primary" @click="showCustom = true" block>{{ $t('advancedUsage') }}</van-button>
</div>
</demo-block>
</demo-section>
</template>
<script>
import data from './data';
import { LIMIT_TYPE } from '../../../packages/sku/constants';
export default {
i18n: {
'zh-CN': {
sku: data['zh-CN'],
title2: '自定义步进器相关配置',
stepperTitle: '我要买',
button1: '积分兑换',
button2: '买买买'
},
'en-US': {
sku: data['en-US'],
title2: 'Custom Stepper Related Config',
stepperTitle: 'Stepper title',
button1: 'Button',
button2: 'Button'
}
},
data() {
return {
showBase: false,
showCustom: false,
showStepper: false,
closeOnClickOverlay: true,
initialSku: {
s1: '30349',
s2: '1193'
},
customStepperConfig: {
quotaText: '单次限购100件',
handleOverLimit: (data) => {
const { action, limitType, quota } = data;
if (action === 'minus') {
Toast('至少选择一件商品');
} else if (action === 'plus') {
if (limitType === LIMIT_TYPE.QUOTA_LIMIT) {
Toast(`限购${quota}`);
} else {
Toast('库存不够了~~');
}
}
}
},
messageConfig: {
uploadImg: (file, img) => {
return new Promise(resolve => {
setTimeout(() => resolve(img), 1000);
});
},
uploadMaxSize: 3
}
};
},
methods: {
onBuyClicked(data) {
Toast(JSON.stringify(data));
},
onAddCartClicked(data) {
Toast(JSON.stringify(data));
},
onPointClicked() {
Toast('积分兑换');
}
}
};
</script>
<style lang="postcss">
.demo-sku {
.sku-container {
padding: 0 15px;
}
}
</style>