[new feature] sku组件增加步进器相关自定义配置 (#600)
This commit is contained in:
+14
-1
@@ -66,6 +66,7 @@
|
||||
:quota-used="quotaUsed"
|
||||
:disable-stepper-input="disableStepperInput"
|
||||
:hide-stock="hideStock"
|
||||
:custom-stepper-config="customStepperConfig"
|
||||
/>
|
||||
</slot>
|
||||
<!-- sku-messages -->
|
||||
@@ -159,6 +160,10 @@ export default create({
|
||||
messagePlaceholderMap: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
customStepperConfig: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
}
|
||||
},
|
||||
|
||||
@@ -328,7 +333,15 @@ export default create({
|
||||
this.selectedNum = num;
|
||||
},
|
||||
|
||||
onOverLimit({ action, limitType, quota, quotaUsed }) {
|
||||
onOverLimit(data) {
|
||||
const { action, limitType, quota, quotaUsed } = data;
|
||||
const { handleOverLimit } = this.customStepperConfig;
|
||||
|
||||
if (handleOverLimit) {
|
||||
handleOverLimit(data);
|
||||
return;
|
||||
}
|
||||
|
||||
if (action === 'minus') {
|
||||
Toast(this.$t('least'));
|
||||
} else if (action === 'plus') {
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
/>
|
||||
</div>
|
||||
<div v-if="!hideStock" class="van-sku__stock">{{ $t('remain', stock) }}</div>
|
||||
<div v-if="quota > 0" class="van-sku__quota">{{ $t('quota', quota) }}</div>
|
||||
<div v-if="quotaText" class="van-sku__quota">{{ quotaText }}</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -40,7 +40,8 @@ export default create({
|
||||
quota: Number,
|
||||
quotaUsed: Number,
|
||||
hideStock: Boolean,
|
||||
disableStepperInput: Boolean
|
||||
disableStepperInput: Boolean,
|
||||
customStepperConfig: Object
|
||||
},
|
||||
|
||||
data() {
|
||||
@@ -69,6 +70,18 @@ export default create({
|
||||
}
|
||||
return this.skuStockNum;
|
||||
},
|
||||
quotaText() {
|
||||
const { quotaText } = this.customStepperConfig;
|
||||
let text = '';
|
||||
|
||||
if (quotaText) {
|
||||
text = quotaText;
|
||||
} else if (this.quota > 0) {
|
||||
text = this.$t('quota', this.quota);
|
||||
}
|
||||
|
||||
return text;
|
||||
},
|
||||
stepperLimit() {
|
||||
const quotaLimit = this.quota - this.quotaUsed;
|
||||
let limit;
|
||||
|
||||
@@ -2,3 +2,7 @@ export const LIMIT_TYPE = {
|
||||
QUOTA_LIMIT: 0,
|
||||
STOCK_LIMIT: 1
|
||||
};
|
||||
|
||||
export default {
|
||||
LIMIT_TYPE
|
||||
};
|
||||
|
||||
@@ -6,6 +6,7 @@ import SkuStepper from './components/SkuStepper';
|
||||
import SkuRow from './components/SkuRow';
|
||||
import SkuRowItem from './components/SkuRowItem';
|
||||
import skuHelper from './utils/skuHelper';
|
||||
import constants from './constants';
|
||||
|
||||
Sku.SkuActions = SkuActions;
|
||||
Sku.SkuHeader = SkuHeader;
|
||||
@@ -14,5 +15,6 @@ Sku.SkuStepper = SkuStepper;
|
||||
Sku.SkuRow = SkuRow;
|
||||
Sku.SkuRowItem = SkuRowItem;
|
||||
Sku.skuHelper = skuHelper;
|
||||
Sku.skuConstants = constants;
|
||||
|
||||
export default Sku;
|
||||
|
||||
Reference in New Issue
Block a user