diff --git a/docs/demos/mock/sku.js b/docs/demos/mock/sku.js index 5f3594221..828a00312 100644 --- a/docs/demos/mock/sku.js +++ b/docs/demos/mock/sku.js @@ -1,236 +1,517 @@ /* eslint-disable */ -var _global = { - "kdt_id": 55, - "user_id": 4674509, - "offline_id": 0, - "activity_alias": "", - "sku": { - "tree": [{ - "k": "\u989c\u8272", - "k_id": "1", - "v": [{ - "id": "30349", - "name": "\u5929\u84dd\u8272", - "imgUrl": "https:\/\/img.yzcdn.cn\/upload_files\/2017\/02\/21\/FjKTOxjVgnUuPmHJRdunvYky9OHP.jpg!100x100.jpg" - }], - "k_s": "s1", - "count": 2 - }, { - "k": "\u5c3a\u5bf8", - "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": "\u7559\u8a001", - "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": "\u7559\u8a002", - "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": "\u7559\u8a003", - "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": "\u7559\u8a004", - "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": "\u6570\u5b57", - "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": "\u90ae\u4ef6", - "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": "\u65e5\u671f", - "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": "\u65f6\u95f4\u542b\u65e5\u671f", - "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": "\u65f6\u95f4", - "multiple": 0, - "disable_required": false, - "disable_edit_name": false, - "type": "time", - "disable_delete": false, - "disable_type": false, - "required": 0 - }], - "hide_stock": false +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": "" + 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: 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: '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: 0, + 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: '' + } + } }; - -export default _global; diff --git a/docs/demos/views/sku.vue b/docs/demos/views/sku.vue index b8206aadb..51773c0d3 100644 --- a/docs/demos/views/sku.vue +++ b/docs/demos/views/sku.vue @@ -4,19 +4,19 @@
- 基础用法 + {{ $t('basicUsage') }}
@@ -24,31 +24,28 @@
- - - 自定义sku actions + {{ $t('advancedUsage') }}
@@ -57,16 +54,19 @@ diff --git a/packages/sku/components/SkuHeader.vue b/packages/sku/components/SkuHeader.vue index 188442cd7..f08154e91 100644 --- a/packages/sku/components/SkuHeader.vue +++ b/packages/sku/components/SkuHeader.vue @@ -12,7 +12,9 @@ diff --git a/packages/sku/components/SkuMessages.vue b/packages/sku/components/SkuMessages.vue index b58a8bced..685d9beb6 100644 --- a/packages/sku/components/SkuMessages.vue +++ b/packages/sku/components/SkuMessages.vue @@ -6,7 +6,7 @@ :key="`${goodsId}-${index}`" :required="message.required == '1'" :label="message.name" - :placeholder="placeholderMap.textarea" + :placeholder="getPlaceholder('textarea')" type="textarea" v-model="messageValues[index]"> @@ -14,7 +14,7 @@ :key="`${goodsId}-${index}`" :required="message.required == '1'" :label="message.name" - :placeholder="placeholderMap[message.type]" + :placeholder="getPlaceholder(message.type)" :type="getType(message)" v-model="messageValues[index]"> @@ -23,13 +23,13 @@ diff --git a/packages/sku/components/SkuStepper.vue b/packages/sku/components/SkuStepper.vue index 8a52d0e94..6a66dbf2c 100644 --- a/packages/sku/components/SkuStepper.vue +++ b/packages/sku/components/SkuStepper.vue @@ -1,7 +1,7 @@ diff --git a/packages/sku/constants.js b/packages/sku/constants.js index b8e272b10..80b443ee6 100644 --- a/packages/sku/constants.js +++ b/packages/sku/constants.js @@ -2,17 +2,3 @@ export const LIMIT_TYPE = { QUOTA_LIMIT: 0, STOCK_LIMIT: 1 }; - -export const DEFAULT_BUY_TEXT = '立即购买'; - -export const DEFAULT_STEPPER_TITLE = '购买数量'; - -export const DEFAULT_PLACEHOLDER_MAP = { - 'id_no': '输入18位身份证号码', - text: '输入文本', - tel: '输入数字', - email: '输入邮箱', - date: '点击选择日期', - time: '点击选择时间', - textarea: '点击填写段落文本' -}; diff --git a/packages/sku/containers/SkuContainer.vue b/packages/sku/containers/SkuContainer.vue index 169a98a42..01b76343e 100644 --- a/packages/sku/containers/SkuContainer.vue +++ b/packages/sku/containers/SkuContainer.vue @@ -81,7 +81,7 @@ import SkuStepper from '../components/SkuStepper'; import SkuMessages from '../components/SkuMessages'; import SkuActions from '../components/SkuActions'; import { isAllSelected, getSkuComb, getSelectedSkuValues } from '../utils/skuHelper'; -import { LIMIT_TYPE, DEFAULT_STEPPER_TITLE } from '../constants'; +import { LIMIT_TYPE } from '../constants'; import { create } from '../../utils'; const { QUOTA_LIMIT } = LIMIT_TYPE; @@ -121,10 +121,7 @@ export default create({ default: true }, buyText: String, - stepperTitle: { - type: String, - default: DEFAULT_STEPPER_TITLE - }, + stepperTitle: String, bodyOffsetTop: { type: Number, default: 200 @@ -260,7 +257,7 @@ export default create({ }, validateSku() { if (this.selectedNum === 0) { - return '商品已经无法购买啦'; + return this.$t('unavailable'); } if (this.isSkuCombSelected) { @@ -268,7 +265,7 @@ export default create({ // sku留言没有错误则校验通过 return error; } else { - return '请选择完整的规格'; + return this.$t('spec'); } }, handleCloseClicked() { @@ -291,14 +288,14 @@ export default create({ }, handleOverLimit({ action, limitType, quota, quotaUsed }) { if (action === 'minus') { - Toast('至少选择一件'); + Toast(this.$t('least')); } else if (action === 'plus') { if (limitType === QUOTA_LIMIT) { - let msg = `限购${quota}件`; - if (quotaUsed > 0) msg += `,您已购买${quotaUsed}件`; + let msg = this.$t('quota', quota); + if (quotaUsed > 0) msg += `,${this.$t('purchase', quotaUsed)}`; Toast(msg); } else { - Toast('库存不足'); + Toast(this.$t('inventory')); } } }, diff --git a/test/unit/specs/sku.spec.js b/test/unit/specs/sku.spec.js index a36077851..6160e30b7 100644 --- a/test/unit/specs/sku.spec.js +++ b/test/unit/specs/sku.spec.js @@ -216,7 +216,7 @@ describe('Sku', (done) => { buyBtn.trigger('click'); wrapper.vm.$nextTick(() => { - expect(toastText.textContent).to.equal('留言4 写的太多了
不要超过200字'); + expect(toastText.textContent).to.equal('留言4 写的太多了,不要超过200字'); textarea.element.value = ''; // 测试数字留言