chore: prettier js codes
This commit is contained in:
+55
-18
@@ -162,7 +162,9 @@ export default createComponent({
|
||||
return false;
|
||||
}
|
||||
// 属性未全选
|
||||
if (this.propList.some(it => (this.selectedProp[it.k_id] || []).length < 1)) {
|
||||
if (
|
||||
this.propList.some(it => (this.selectedProp[it.k_id] || []).length < 1)
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -193,8 +195,14 @@ export default createComponent({
|
||||
};
|
||||
}
|
||||
if (skuComb) {
|
||||
skuComb.properties = getSelectedProperties(this.propList, this.selectedProp);
|
||||
skuComb.property_price = this.selectedPropValues.reduce((acc, cur) => acc + (cur.price || 0), 0);
|
||||
skuComb.properties = getSelectedProperties(
|
||||
this.propList,
|
||||
this.selectedProp
|
||||
);
|
||||
skuComb.property_price = this.selectedPropValues.reduce(
|
||||
(acc, cur) => acc + (cur.price || 0),
|
||||
0
|
||||
);
|
||||
}
|
||||
}
|
||||
return skuComb;
|
||||
@@ -210,7 +218,10 @@ export default createComponent({
|
||||
|
||||
price() {
|
||||
if (this.selectedSkuComb) {
|
||||
return ((this.selectedSkuComb.price + this.selectedSkuComb.property_price) / 100).toFixed(2);
|
||||
return (
|
||||
(this.selectedSkuComb.price + this.selectedSkuComb.property_price) /
|
||||
100
|
||||
).toFixed(2);
|
||||
}
|
||||
// sku.price是一个格式化好的价格区间
|
||||
return this.sku.price;
|
||||
@@ -218,7 +229,11 @@ export default createComponent({
|
||||
|
||||
originPrice() {
|
||||
if (this.selectedSkuComb && this.selectedSkuComb.origin_price) {
|
||||
return ((this.selectedSkuComb.origin_price + this.selectedSkuComb.property_price) / 100).toFixed(2);
|
||||
return (
|
||||
(this.selectedSkuComb.origin_price +
|
||||
this.selectedSkuComb.property_price) /
|
||||
100
|
||||
).toFixed(2);
|
||||
}
|
||||
return this.sku.origin_price;
|
||||
},
|
||||
@@ -269,7 +284,11 @@ export default createComponent({
|
||||
|
||||
return [
|
||||
`${t('stock')} `,
|
||||
<span class={bem('stock-num', { highlight: this.stock < this.stockThreshold })}>
|
||||
<span
|
||||
class={bem('stock-num', {
|
||||
highlight: this.stock < this.stockThreshold,
|
||||
})}
|
||||
>
|
||||
{this.stock}
|
||||
</span>,
|
||||
` ${t('stockUnit')}`,
|
||||
@@ -289,7 +308,9 @@ export default createComponent({
|
||||
.filter(item => (this.selectedProp[item.k_id] || []).length < 1)
|
||||
.map(item => item.k);
|
||||
|
||||
return `${t('select')} ${unselectedSku.concat(unselectedProp).join(';')}`;
|
||||
return `${t('select')} ${unselectedSku
|
||||
.concat(unselectedProp)
|
||||
.join(';')}`;
|
||||
},
|
||||
},
|
||||
|
||||
@@ -335,7 +356,8 @@ export default createComponent({
|
||||
|
||||
// 重置 selectedSku
|
||||
this.skuTree.forEach(item => {
|
||||
this.selectedSku[item.k_s] = this.initialSku[item.k_s] || UNSELECTED_SKU_VALUE_ID;
|
||||
this.selectedSku[item.k_s] =
|
||||
this.initialSku[item.k_s] || UNSELECTED_SKU_VALUE_ID;
|
||||
});
|
||||
|
||||
// 只有一个 sku 规格值时默认选中
|
||||
@@ -389,11 +411,15 @@ export default createComponent({
|
||||
},
|
||||
|
||||
getSkuCartMessages() {
|
||||
return this.$refs.skuMessages ? this.$refs.skuMessages.getCartMessages() : {};
|
||||
return this.$refs.skuMessages
|
||||
? this.$refs.skuMessages.getCartMessages()
|
||||
: {};
|
||||
},
|
||||
|
||||
validateSkuMessages() {
|
||||
return this.$refs.skuMessages ? this.$refs.skuMessages.validateMessages() : '';
|
||||
return this.$refs.skuMessages
|
||||
? this.$refs.skuMessages.validateMessages()
|
||||
: '';
|
||||
},
|
||||
|
||||
validateSku() {
|
||||
@@ -418,7 +444,10 @@ export default createComponent({
|
||||
// 点击已选中的sku时则取消选中
|
||||
this.selectedSku =
|
||||
this.selectedSku[skuValue.skuKeyStr] === skuValue.id
|
||||
? { ...this.selectedSku, [skuValue.skuKeyStr]: UNSELECTED_SKU_VALUE_ID }
|
||||
? {
|
||||
...this.selectedSku,
|
||||
[skuValue.skuKeyStr]: UNSELECTED_SKU_VALUE_ID,
|
||||
}
|
||||
: { ...this.selectedSku, [skuValue.skuKeyStr]: skuValue.id };
|
||||
|
||||
this.$emit('sku-selected', {
|
||||
@@ -575,19 +604,27 @@ export default createComponent({
|
||||
const slots = name => this.slots(name, slotsProps);
|
||||
|
||||
const Header = slots('sku-header') || (
|
||||
<SkuHeader sku={sku} goods={goods} skuEventBus={skuEventBus} selectedSku={selectedSku}>
|
||||
<SkuHeader
|
||||
sku={sku}
|
||||
goods={goods}
|
||||
skuEventBus={skuEventBus}
|
||||
selectedSku={selectedSku}
|
||||
>
|
||||
{slots('sku-header-price') || (
|
||||
<div class="van-sku__goods-price">
|
||||
<span class="van-sku__price-symbol">¥</span>
|
||||
<span class="van-sku__price-num">{price}</span>
|
||||
{this.priceTag && <span class="van-sku__price-tag">{this.priceTag}</span>}
|
||||
{this.priceTag && (
|
||||
<span class="van-sku__price-tag">{this.priceTag}</span>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
{slots('sku-header-origin-price') || (
|
||||
originPrice && (
|
||||
<SkuHeaderItem>{t('originPrice')} ¥{originPrice}</SkuHeaderItem>
|
||||
)
|
||||
)}
|
||||
{slots('sku-header-origin-price') ||
|
||||
(originPrice && (
|
||||
<SkuHeaderItem>
|
||||
{t('originPrice')} ¥{originPrice}
|
||||
</SkuHeaderItem>
|
||||
))}
|
||||
{!this.hideStock && (
|
||||
<SkuHeaderItem>
|
||||
<span class="van-sku__stock">{this.stockText}</span>
|
||||
|
||||
@@ -53,9 +53,7 @@ export default createComponent({
|
||||
maxSize={this.maxSize * 1024 * 1024}
|
||||
onOversize={this.onOversize}
|
||||
>
|
||||
<div class={bem('img')}>
|
||||
{content}
|
||||
</div>
|
||||
<div class={bem('img')}>{content}</div>
|
||||
</Uploader>
|
||||
);
|
||||
},
|
||||
@@ -63,15 +61,14 @@ export default createComponent({
|
||||
genMask() {
|
||||
return (
|
||||
<div class={bem('mask')}>
|
||||
{this.uploadFail
|
||||
? (
|
||||
[
|
||||
<Icon name="warning-o" size="20px" />,
|
||||
<div class={bem('warn-text')} domPropsInnerHTML={t('fail')} />,
|
||||
]
|
||||
) : (
|
||||
<Loading type="spinner" size="20px" color="white" />
|
||||
)}
|
||||
{this.uploadFail ? (
|
||||
[
|
||||
<Icon name="warning-o" size="20px" />,
|
||||
<div class={bem('warn-text')} domPropsInnerHTML={t('fail')} />,
|
||||
]
|
||||
) : (
|
||||
<Loading type="spinner" size="20px" color="white" />
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
@@ -80,33 +77,34 @@ export default createComponent({
|
||||
render() {
|
||||
return (
|
||||
<div class={bem()}>
|
||||
{this.value && this.genUploader(
|
||||
[
|
||||
<img src={this.value} />,
|
||||
<Icon
|
||||
name="clear"
|
||||
class={bem('delete')}
|
||||
onClick={() => {
|
||||
this.$emit('input', '');
|
||||
}}
|
||||
/>,
|
||||
],
|
||||
true
|
||||
)}
|
||||
{this.value &&
|
||||
this.genUploader(
|
||||
[
|
||||
<img src={this.value} />,
|
||||
<Icon
|
||||
name="clear"
|
||||
class={bem('delete')}
|
||||
onClick={() => {
|
||||
this.$emit('input', '');
|
||||
}}
|
||||
/>,
|
||||
],
|
||||
true
|
||||
)}
|
||||
|
||||
{this.paddingImg && this.genUploader(
|
||||
[
|
||||
<img src={this.paddingImg} />,
|
||||
this.genMask(),
|
||||
],
|
||||
!this.uploadFail
|
||||
)}
|
||||
{this.paddingImg &&
|
||||
this.genUploader(
|
||||
[<img src={this.paddingImg} />, this.genMask()],
|
||||
!this.uploadFail
|
||||
)}
|
||||
|
||||
{!this.value && !this.paddingImg && this.genUploader(
|
||||
<div class={bem('trigger')}>
|
||||
<Icon name="photograph" size="22px" />
|
||||
</div>
|
||||
)}
|
||||
{!this.value &&
|
||||
!this.paddingImg &&
|
||||
this.genUploader(
|
||||
<div class={bem('trigger')}>
|
||||
<Icon name="photograph" size="22px" />
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
},
|
||||
|
||||
@@ -103,43 +103,54 @@ export default createComponent({
|
||||
if (message.type === 'email' && !isEmail(value)) {
|
||||
return t('invalid.email');
|
||||
}
|
||||
if (message.type === 'id_no' && (value.length < 15 || value.length > 18)) {
|
||||
if (
|
||||
message.type === 'id_no' &&
|
||||
(value.length < 15 || value.length > 18)
|
||||
) {
|
||||
return t('invalid.id_no');
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
genMessage(message, index) {
|
||||
if (message.type === 'image') {
|
||||
return (
|
||||
<Cell
|
||||
key={`${this.goodsId}-${index}`}
|
||||
title={message.name}
|
||||
label={t('imageLabel')}
|
||||
class={bem('image-cell')}
|
||||
required={String(message.required) === '1'}
|
||||
valueClass={bem('image-cell-value')}
|
||||
>
|
||||
<SkuImgUploader
|
||||
vModel={this.messageValues[index].value}
|
||||
maxSize={this.messageConfig.uploadMaxSize}
|
||||
uploadImg={this.messageConfig.uploadImg}
|
||||
/>
|
||||
</Cell>
|
||||
);
|
||||
}
|
||||
|
||||
return (
|
||||
<Field
|
||||
vModel={this.messageValues[index].value}
|
||||
maxlength="200"
|
||||
label={message.name}
|
||||
key={`${this.goodsId}-${index}`}
|
||||
required={String(message.required) === '1'}
|
||||
placeholder={this.getPlaceholder(message)}
|
||||
type={this.getType(message)}
|
||||
/>
|
||||
);
|
||||
},
|
||||
},
|
||||
|
||||
render() {
|
||||
return (
|
||||
<CellGroup class={bem()} border={this.messages.length > 0}>
|
||||
{this.messages.map((message, index) => (message.type === 'image' ? (
|
||||
<Cell
|
||||
class={bem('image-cell')}
|
||||
value-class={bem('image-cell-value')}
|
||||
label={t('imageLabel')}
|
||||
title={message.name}
|
||||
key={`${this.goodsId}-${index}`}
|
||||
required={String(message.required) === '1'}
|
||||
>
|
||||
<SkuImgUploader
|
||||
vModel={this.messageValues[index].value}
|
||||
uploadImg={this.messageConfig.uploadImg}
|
||||
maxSize={this.messageConfig.uploadMaxSize}
|
||||
/>
|
||||
</Cell>
|
||||
) : (
|
||||
<Field
|
||||
vModel={this.messageValues[index].value}
|
||||
maxlength="200"
|
||||
label={message.name}
|
||||
key={`${this.goodsId}-${index}`}
|
||||
required={String(message.required) === '1'}
|
||||
placeholder={this.getPlaceholder(message)}
|
||||
type={this.getType(message)}
|
||||
/>
|
||||
)))}
|
||||
{this.messages.map(this.genMessage)}
|
||||
</CellGroup>
|
||||
);
|
||||
},
|
||||
|
||||
@@ -11,6 +11,18 @@ export default createComponent({
|
||||
multiple: Boolean,
|
||||
},
|
||||
|
||||
computed: {
|
||||
choosed() {
|
||||
const { selectedProp, skuKeyStr, skuValue } = this;
|
||||
|
||||
if (selectedProp && selectedProp[skuKeyStr]) {
|
||||
return selectedProp[skuKeyStr].indexOf(skuValue.id) > -1;
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
},
|
||||
|
||||
methods: {
|
||||
onSelect() {
|
||||
this.skuEventBus.$emit('sku:propSelect', {
|
||||
@@ -22,14 +34,11 @@ export default createComponent({
|
||||
},
|
||||
|
||||
render() {
|
||||
const choosed = this.selectedProp && (this.selectedProp[this.skuKeyStr] || []).indexOf(this.skuValue.id) > -1;
|
||||
return (
|
||||
<span
|
||||
class={[
|
||||
'van-sku-row__item',
|
||||
{
|
||||
'van-sku-row__item--active': choosed,
|
||||
},
|
||||
{ 'van-sku-row__item--active': this.choosed },
|
||||
]}
|
||||
onClick={this.onSelect}
|
||||
>
|
||||
|
||||
@@ -157,7 +157,9 @@ export default createComponent({
|
||||
return (
|
||||
<div class="van-sku-stepper-stock">
|
||||
<div class="van-sku-stepper-container">
|
||||
<div class="van-sku__stepper-title">{this.stepperTitle || t('num')}</div>
|
||||
<div class="van-sku__stepper-title">
|
||||
{this.stepperTitle || t('num')}
|
||||
</div>
|
||||
<Stepper
|
||||
vModel={this.currentNum}
|
||||
class="van-sku__stepper"
|
||||
@@ -168,7 +170,9 @@ export default createComponent({
|
||||
onOverlimit={this.onOverLimit}
|
||||
onChange={this.onChange}
|
||||
/>
|
||||
{!this.hideQuotaText && this.quotaText && <span class="van-sku__stepper-quota">({this.quotaText})</span>}
|
||||
{!this.hideQuotaText && this.quotaText && (
|
||||
<span class="van-sku__stepper-quota">({this.quotaText})</span>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
@@ -65,11 +65,11 @@ export const isAllSelected = (skuTree, selectedSku) => {
|
||||
|
||||
// 根据已选择的 sku 获取 skuComb
|
||||
export const getSkuComb = (skuList, selectedSku) => {
|
||||
const skuComb = skuList.filter(item => (
|
||||
const skuComb = skuList.filter(item =>
|
||||
Object.keys(selectedSku).every(
|
||||
skuKeyStr => String(item[skuKeyStr]) === String(selectedSku[skuKeyStr])
|
||||
)
|
||||
));
|
||||
);
|
||||
return skuComb[0];
|
||||
};
|
||||
|
||||
@@ -103,11 +103,11 @@ export const isSkuChoosable = (skuList, selectedSku, skuToChoose) => {
|
||||
skuKey => matchedSku[skuKey] !== UNSELECTED_SKU_VALUE_ID
|
||||
);
|
||||
|
||||
const filteredSku = skuList.filter(sku => (
|
||||
const filteredSku = skuList.filter(sku =>
|
||||
skusToCheck.every(
|
||||
skuKey => String(matchedSku[skuKey]) === String(sku[skuKey])
|
||||
)
|
||||
));
|
||||
);
|
||||
|
||||
const stock = filteredSku.reduce((total, sku) => {
|
||||
total += sku.stock_num;
|
||||
|
||||
Reference in New Issue
Block a user