|
@@ -12,357 +12,320 @@
|
|
|
@open="handleOpenDialog"
|
|
|
@close="resetData"
|
|
|
>
|
|
|
- <div class="dialog-body" v-loading="pageLoad">
|
|
|
- <el-form
|
|
|
- ref="promotionBuyXgetYDertailFormRef"
|
|
|
- :model="promotion"
|
|
|
- label-width="210px"
|
|
|
- size="medium"
|
|
|
- >
|
|
|
- <!-- 活动基本信息 -->
|
|
|
- <div class="box base">
|
|
|
- <div class="title">
|
|
|
- <span>{{ $t("label.setBasicEventInformationDetail") }}</span>
|
|
|
- </div>
|
|
|
- <div class="info">
|
|
|
- <!--促销名称-->
|
|
|
- <el-form-item
|
|
|
- :label="$t('label.promotionName') + ':'"
|
|
|
- prop="promotionName"
|
|
|
- >
|
|
|
- <el-input
|
|
|
- v-model.trim="promotion.title"
|
|
|
- :disabled="edit"
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <div class="item row">
|
|
|
- <!--促销开始时间-->
|
|
|
+ <div class="dialog-box" v-loading="pageLoad">
|
|
|
+ <div class="dialog-body" v-loading="pageLoad">
|
|
|
+ <el-form
|
|
|
+ ref="promotionBuyXgetYDertailFormRef"
|
|
|
+ :model="promotion"
|
|
|
+ label-width="210px"
|
|
|
+ size="medium"
|
|
|
+ >
|
|
|
+ <!-- 活动基本信息 -->
|
|
|
+ <div class="box base">
|
|
|
+ <div class="title">
|
|
|
+ <span>{{ $t("label.setBasicEventInformationDetail") }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <!--促销名称-->
|
|
|
<el-form-item
|
|
|
- :label="$t('label.promotionStartTime') + ':'"
|
|
|
- prop="startTime"
|
|
|
+ :label="$t('label.promotionName') + ':'"
|
|
|
+ prop="promotionName"
|
|
|
>
|
|
|
- <el-date-picker
|
|
|
+ <el-input
|
|
|
+ v-model.trim="promotion.title"
|
|
|
:disabled="edit"
|
|
|
- type="datetime"
|
|
|
- placeholder="选择日期"
|
|
|
- value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
- v-model="promotion.startTime"
|
|
|
- ></el-date-picker>
|
|
|
+ ></el-input>
|
|
|
</el-form-item>
|
|
|
+ <div class="item row">
|
|
|
+ <!--促销开始时间-->
|
|
|
+ <el-form-item
|
|
|
+ :label="$t('label.promotionStartTime') + ':'"
|
|
|
+ prop="startTime"
|
|
|
+ >
|
|
|
+ <el-date-picker
|
|
|
+ :disabled="edit"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="选择日期"
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ v-model="promotion.startTime"
|
|
|
+ ></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <!--促销失效时间-->
|
|
|
+ <!--促销失效时间-->
|
|
|
+ <el-form-item
|
|
|
+ :label="$t('label.promotionEndTime') + ':'"
|
|
|
+ prop="endTime"
|
|
|
+ >
|
|
|
+ <el-date-picker
|
|
|
+ :disabled="edit"
|
|
|
+ type="datetime"
|
|
|
+ placeholder="选择日期"
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ v-model="promotion.endTime"
|
|
|
+ ></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <!--应用方式-->
|
|
|
<el-form-item
|
|
|
- :label="$t('label.promotionEndTime') + ':'"
|
|
|
- prop="endTime"
|
|
|
+ :label="$t('label.applicationMethod') + ':'"
|
|
|
+ prop="discountMethod"
|
|
|
>
|
|
|
- <el-date-picker
|
|
|
+ <el-radio-group
|
|
|
+ v-model="promotion.discountMethod"
|
|
|
:disabled="edit"
|
|
|
- type="datetime"
|
|
|
- placeholder="选择日期"
|
|
|
- value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
- v-model="promotion.endTime"
|
|
|
- ></el-date-picker>
|
|
|
+ >
|
|
|
+ <div class="item row">
|
|
|
+ <el-radio :label="1">{{ $t("label.discount") }}</el-radio>
|
|
|
+ <el-input
|
|
|
+ v-show="promotion.discountMethod === 1"
|
|
|
+ class="codeinput"
|
|
|
+ v-model.trim="promotion.discountCode"
|
|
|
+ :disabled="edit"
|
|
|
+ />
|
|
|
+ <el-radio :label="2">{{
|
|
|
+ $t("label.autoDiscount")
|
|
|
+ }}</el-radio>
|
|
|
+ </div>
|
|
|
+ </el-radio-group>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
- <!--应用方式-->
|
|
|
- <el-form-item
|
|
|
- :label="$t('label.applicationMethod') + ':'"
|
|
|
- prop="discountMethod"
|
|
|
- >
|
|
|
- <el-radio-group
|
|
|
- v-model="promotion.discountMethod"
|
|
|
- :disabled="edit"
|
|
|
- >
|
|
|
- <div class="item row">
|
|
|
- <el-radio :label="1">{{ $t("label.discount") }}</el-radio>
|
|
|
- <el-input
|
|
|
- v-show="promotion.discountMethod === 1"
|
|
|
- class="codeinput"
|
|
|
- v-model.trim="promotion.discountCode"
|
|
|
- :disabled="edit"
|
|
|
- />
|
|
|
- <el-radio :label="2">{{
|
|
|
- $t("label.autoDiscount")
|
|
|
- }}</el-radio>
|
|
|
- </div>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- 折扣设置 -->
|
|
|
- <div class="box discount">
|
|
|
- <!-- 客户购买条件 -->
|
|
|
- <div class="title">
|
|
|
- <span>{{ $t("label.customerPurchaseConditions") }}</span>
|
|
|
</div>
|
|
|
- <div class="info">
|
|
|
- <!--最低购买要求-->
|
|
|
- <el-form-item
|
|
|
- :label="$t('label.minimumPurchaseRequirement') + ':'"
|
|
|
- prop="minimum"
|
|
|
- >
|
|
|
- <el-radio-group
|
|
|
- v-model="promotion.purchaseRequire"
|
|
|
- :disabled="edit"
|
|
|
+ <!-- 折扣设置 -->
|
|
|
+ <div class="box discount">
|
|
|
+ <!-- 客户购买条件 -->
|
|
|
+ <div class="title">
|
|
|
+ <span>{{ $t("label.customerPurchaseConditions") }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <!--最低购买要求-->
|
|
|
+ <el-form-item
|
|
|
+ :label="$t('label.minimumPurchaseRequirement') + ':'"
|
|
|
+ prop="minimum"
|
|
|
>
|
|
|
- <div class="item row">
|
|
|
- <el-radio :label="3">{{ $t("label.numberStr") }}</el-radio>
|
|
|
- <el-radio :label="2">{{ $t("label.money") }}</el-radio>
|
|
|
- <el-radio :label="1">{{ $t("label.free") }}</el-radio>
|
|
|
- </div>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- <!--折扣内容 数量&金额-->
|
|
|
- <el-form-item :label="$t('label.discountValue') + ':'">
|
|
|
- <div class="item">
|
|
|
- <!--最低要求 免费 不展示 -->
|
|
|
- <div class="item-box" v-if="promotion.purchaseRequire !== 1">
|
|
|
- <span class="label">{{ discountContentValue }}</span>
|
|
|
- <el-input
|
|
|
- class="mininput"
|
|
|
- v-model.trim="promotion.requireValue"
|
|
|
- :disabled="edit"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="item-box">
|
|
|
- <span class="label">{{ $t("label.buyType") }}</span>
|
|
|
- <el-input
|
|
|
- class="mininput"
|
|
|
- v-model.trim="promotion.purchaseType"
|
|
|
- :disabled="edit"
|
|
|
- />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="item product">
|
|
|
- <div class="item row">
|
|
|
- <span class="label">{{ $t("label.product") }}</span>
|
|
|
- <el-input
|
|
|
- class="mininput"
|
|
|
- v-model.trim="promotion.productBuyType"
|
|
|
- :disabled="edit"
|
|
|
- />
|
|
|
- <div class="value" v-for="(data, j) in tagLists" :key="j">
|
|
|
- <p>{{ tagValue(data) }}</p>
|
|
|
- <a
|
|
|
- href="javascript:void();"
|
|
|
- @click="handleProductDialog(data)"
|
|
|
- >{{ $t("label.viewProductDetaiL") }}</a
|
|
|
- >
|
|
|
+ <el-radio-group
|
|
|
+ v-model="promotion.purchaseRequire"
|
|
|
+ :disabled="edit"
|
|
|
+ >
|
|
|
+ <div class="item row">
|
|
|
+ <el-radio :label="3">{{
|
|
|
+ $t("label.numberStr")
|
|
|
+ }}</el-radio>
|
|
|
+ <el-radio :label="2">{{ $t("label.money") }}</el-radio>
|
|
|
+ <el-radio :label="1">{{ $t("label.free") }}</el-radio>
|
|
|
+ </div>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <!--折扣内容 数量&金额-->
|
|
|
+ <el-form-item :label="$t('label.discountValue') + ':'">
|
|
|
+ <div class="item">
|
|
|
+ <!--最低要求 免费 不展示 -->
|
|
|
+ <div
|
|
|
+ class="item-box"
|
|
|
+ v-if="promotion.purchaseRequire !== 1"
|
|
|
+ >
|
|
|
+ <span class="label">{{ discountContentValue }}</span>
|
|
|
+ <el-input
|
|
|
+ class="mininput"
|
|
|
+ v-model.trim="promotion.requireValue"
|
|
|
+ :disabled="edit"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="item-box">
|
|
|
+ <span class="label">{{ $t("label.buyType") }}</span>
|
|
|
+ <el-input
|
|
|
+ class="mininput"
|
|
|
+ v-model.trim="promotion.purchaseType"
|
|
|
+ :disabled="edit"
|
|
|
+ />
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <!-- 每个订单一次 获得条件为金额才可见 -->
|
|
|
- <!-- <el-form-item
|
|
|
- v-if="promotion.valueType === 2"
|
|
|
- :label="$t('label.oncePerOrder') + ':'"
|
|
|
- >
|
|
|
- <el-checkbox
|
|
|
- v-model="promotion.oncePerOrder"
|
|
|
- :disabled="edit"
|
|
|
- >{{ $t("label.oncePerOrderDesc") }}</el-checkbox
|
|
|
+ </el-form-item>
|
|
|
+ <!--国家-->
|
|
|
+ <el-form-item
|
|
|
+ :label="$t('label.countries') + ':'"
|
|
|
+ prop="shippingTargetType"
|
|
|
+ class="discount"
|
|
|
>
|
|
|
- </el-form-item> -->
|
|
|
- </div>
|
|
|
- <!-- 客户获得条件 -->
|
|
|
- <div class="title">
|
|
|
- <span>{{ $t("label.customerGetConditions") }}</span>
|
|
|
- </div>
|
|
|
- <div class="info">
|
|
|
- <!--折扣内容 数量&金额-->
|
|
|
- <!-- <el-form-item :label="$t('label.discountValue') + ':'">
|
|
|
- <div class="item">
|
|
|
- <span class="label">{{ $t("label.numberStr") }}</span>
|
|
|
- <el-input
|
|
|
- class="mininput"
|
|
|
- v-model.trim="promotion.requireValue"
|
|
|
+ <el-radio-group
|
|
|
+ v-model="promotion.shippingTargetType"
|
|
|
:disabled="edit"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="item product">
|
|
|
- <div class="item-box">
|
|
|
- <span class="label">{{ $t("label.product") }}</span>
|
|
|
- <el-input
|
|
|
- class="mininput"
|
|
|
- v-model.trim="promotion.productType"
|
|
|
- :disabled="edit"
|
|
|
- />
|
|
|
- <el-input
|
|
|
- class="productinput"
|
|
|
- :placeholder="$t('label.productPlaceholder')"
|
|
|
- v-model.trim="productSku"
|
|
|
- />
|
|
|
- <el-button
|
|
|
- @click="handleProductSearch"
|
|
|
- v-waves
|
|
|
- type="primary"
|
|
|
- >{{ $t("view.search") }}
|
|
|
- </el-button>
|
|
|
- <div class="skucon">
|
|
|
- <span
|
|
|
- v-for="(item, i) in getTagList"
|
|
|
- :class="productKeys.includes(item) ? 'active' : ''"
|
|
|
- :key="i"
|
|
|
- >{{ item }},</span
|
|
|
- >
|
|
|
+ >
|
|
|
+ <div class="item row">
|
|
|
+ <el-radio :label="1">{{
|
|
|
+ $t("label.shippingTargetList")[0].label
|
|
|
+ }}</el-radio>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-form-item> -->
|
|
|
- <!--折扣额-->
|
|
|
- <el-form-item
|
|
|
- :label="$t('label.discountPromotion') + ':'"
|
|
|
- prop="discount"
|
|
|
- class="discount"
|
|
|
- >
|
|
|
- <el-radio-group v-model="promotion.valueType" :disabled="edit">
|
|
|
+ <div class="item row">
|
|
|
+ <el-radio :label="2">{{
|
|
|
+ $t("label.shippingTargetList")[1].label
|
|
|
+ }}</el-radio>
|
|
|
+ <el-input
|
|
|
+ v-if="promotion.shippingTargetType === 2"
|
|
|
+ class="mininput"
|
|
|
+ v-model.trim="promotion.shippingTarget"
|
|
|
+ :disabled="edit"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <el-radio :label="3">{{ $t("label.free") }}</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <!-- 运输税率 -->
|
|
|
+ <el-form-item
|
|
|
+ :label="$t('label.shippingRates') + ':'"
|
|
|
+ prop="shippingExceptAmountType"
|
|
|
+ class="discount"
|
|
|
+ >
|
|
|
<div class="item row">
|
|
|
- <el-radio :label="1">{{ $t("label.percentage") }}</el-radio>
|
|
|
- <el-input
|
|
|
- v-if="promotion.valueType === 1"
|
|
|
- class="mininput"
|
|
|
- v-model.trim="promotion.discountNumber"
|
|
|
+ <el-checkbox
|
|
|
+ v-model="shippingExceptCheck"
|
|
|
:disabled="edit"
|
|
|
+ >{{ $t("label.shippingRatesValue") }}</el-checkbox
|
|
|
>
|
|
|
- <span class="el-input__icon" slot="suffix">%</span>
|
|
|
- </el-input>
|
|
|
- </div>
|
|
|
- <div class="item row">
|
|
|
- <el-radio :label="2">{{
|
|
|
- $t("label.discountPerItem")
|
|
|
- }}</el-radio>
|
|
|
<el-input
|
|
|
- v-if="promotion.valueType === 2"
|
|
|
- class="mininput"
|
|
|
- v-model.trim="promotion.numericValue"
|
|
|
+ v-if="promotion.shippingExceptAmountType === 1"
|
|
|
+ class="mininput checkboxinput"
|
|
|
+ v-model.trim="promotion.shippingExceptAmount"
|
|
|
:disabled="edit"
|
|
|
/>
|
|
|
</div>
|
|
|
- <el-radio :label="3">{{ $t("label.free") }}</el-radio>
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <!-- 每个订单使用次数 折扣码才有-->
|
|
|
- <!-- <div v-if="promotion.discountMethod === 1">
|
|
|
+ <!-- 客户资格 折扣码才有-->
|
|
|
+ <div class="box" v-if="promotion.discountMethod === 1">
|
|
|
<div class="title">
|
|
|
- <span>{{ $t("label.numberOfTimesUsedPerOrder") }}</span>
|
|
|
+ <span>{{ $t("label.customerQualification") }}</span>
|
|
|
</div>
|
|
|
- <div class="info">
|
|
|
- <el-form-item>
|
|
|
- <div class="item row">
|
|
|
- <el-checkbox v-model="usageLimitchecked" :disabled="edit">{{
|
|
|
- $t("label.maxNumberOfTimesUsedPerOrder")
|
|
|
- }}</el-checkbox>
|
|
|
- <el-input
|
|
|
- class="mininput checkboxinput"
|
|
|
- v-model.trim="promotion.customerGetOrderUsageLimit"
|
|
|
- :disabled="edit"
|
|
|
- />
|
|
|
- </div>
|
|
|
+ <div class="info customerQualification">
|
|
|
+ <el-form-item prop="customerQualification" required>
|
|
|
+ <el-radio-group
|
|
|
+ class="customerqualification"
|
|
|
+ v-model="promotion.targetCustomerType"
|
|
|
+ :disabled="edit"
|
|
|
+ >
|
|
|
+ <el-radio :label="1">{{
|
|
|
+ $t("label.customerQualificationList")[0].label
|
|
|
+ }}</el-radio>
|
|
|
+ <div class="item row">
|
|
|
+ <el-radio :label="2">{{
|
|
|
+ $t("label.customerQualificationList")[1].label
|
|
|
+ }}</el-radio>
|
|
|
+ <el-input
|
|
|
+ v-if="promotion.targetCustomerType === 2"
|
|
|
+ class="mininput"
|
|
|
+ v-model.trim="promotion.targetCustomer"
|
|
|
+ :disabled="edit"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="item row">
|
|
|
+ <el-radio :label="3">{{
|
|
|
+ $t("label.customerQualificationList")[2].label
|
|
|
+ }}</el-radio>
|
|
|
+ <el-input
|
|
|
+ v-if="promotion.targetCustomerType === 3"
|
|
|
+ class="mininput"
|
|
|
+ v-model.trim="promotion.targetCustomer"
|
|
|
+ :disabled="edit"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <!-- <el-radio
|
|
|
+ v-for="(item, i) in $t('label.customerQualificationList')"
|
|
|
+ :key="i"
|
|
|
+ :label="item.value"
|
|
|
+ >{{ item.label }}</el-radio
|
|
|
+ > -->
|
|
|
+ </el-radio-group>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
- </div> -->
|
|
|
- </div>
|
|
|
- <!-- 客户资格 折扣码才有-->
|
|
|
- <div class="box" v-if="promotion.discountMethod === 1">
|
|
|
- <div class="title">
|
|
|
- <span>{{ $t("label.customerQualification") }}</span>
|
|
|
</div>
|
|
|
- <div class="info customerQualification">
|
|
|
- <el-form-item prop="customerQualification" required>
|
|
|
- <el-radio-group
|
|
|
- class="customerqualification"
|
|
|
- v-model="promotion.targetCustomerType"
|
|
|
- :disabled="edit"
|
|
|
- >
|
|
|
- <el-radio :label="1">{{
|
|
|
- $t("label.customerQualificationList")[0].label
|
|
|
- }}</el-radio>
|
|
|
+ <!-- 最大折扣使用次数 折扣码才有-->
|
|
|
+ <div class="box" v-if="promotion.discountMethod === 1">
|
|
|
+ <div class="title">
|
|
|
+ <span>{{ $t("label.maximumNumberOfDiscounts") }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <el-form-item>
|
|
|
+ <!-- <el-checkbox-group v-model="promotion.startTime"> -->
|
|
|
<div class="item row">
|
|
|
- <el-radio :label="2">{{
|
|
|
- $t("label.customerQualificationList")[1].label
|
|
|
- }}</el-radio>
|
|
|
+ <el-checkbox
|
|
|
+ :checked="codeUsageLimitchecked"
|
|
|
+ :disabled="edit"
|
|
|
+ >{{ $t("label.limitDiscountCount") }}</el-checkbox
|
|
|
+ >
|
|
|
<el-input
|
|
|
- v-if="promotion.targetCustomerType === 2"
|
|
|
- class="mininput"
|
|
|
- v-model.trim="promotion.targetCustomer"
|
|
|
+ class="mininput checkboxinput"
|
|
|
+ v-model.trim="promotion.codeUsageLimit"
|
|
|
:disabled="edit"
|
|
|
/>
|
|
|
</div>
|
|
|
<div class="item row">
|
|
|
- <el-radio :label="3">{{
|
|
|
- $t("label.customerQualificationList")[2].label
|
|
|
- }}</el-radio>
|
|
|
- <el-input
|
|
|
- v-if="promotion.targetCustomerType === 3"
|
|
|
- class="mininput"
|
|
|
- v-model.trim="promotion.targetCustomer"
|
|
|
+ <el-checkbox
|
|
|
+ :checked="promotion.codeCustomerUsageType === 1"
|
|
|
:disabled="edit"
|
|
|
- />
|
|
|
+ >{{ $t("label.customerCount") }}</el-checkbox
|
|
|
+ >
|
|
|
</div>
|
|
|
- <!-- <el-radio
|
|
|
- v-for="(item, i) in $t('label.customerQualificationList')"
|
|
|
- :key="i"
|
|
|
- :label="item.value"
|
|
|
- >{{ item.label }}</el-radio
|
|
|
- > -->
|
|
|
- </el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- 最大折扣使用次数 折扣码才有-->
|
|
|
- <div class="box" v-if="promotion.discountMethod === 1">
|
|
|
- <div class="title">
|
|
|
- <span>{{ $t("label.maximumNumberOfDiscounts") }}</span>
|
|
|
+ <!-- </el-checkbox-group> -->
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="info">
|
|
|
- <el-form-item>
|
|
|
- <!-- <el-checkbox-group v-model="promotion.startTime"> -->
|
|
|
- <div class="item row">
|
|
|
- <el-checkbox
|
|
|
- :checked="codeUsageLimitchecked"
|
|
|
- :disabled="edit"
|
|
|
- >{{ $t("label.limitDiscountCount") }}</el-checkbox
|
|
|
- >
|
|
|
- <el-input
|
|
|
- class="mininput checkboxinput"
|
|
|
- v-model.trim="promotion.codeUsageLimit"
|
|
|
- :disabled="edit"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="item row">
|
|
|
- <el-checkbox
|
|
|
- :checked="promotion.codeCustomerUsageType === 1"
|
|
|
+ <!-- 定期订阅付款 购买方式为订阅 才展示-->
|
|
|
+ <div class="box" v-if="promotion.targetType !== 1">
|
|
|
+ <div class="title">
|
|
|
+ <span>{{ $t("label.recurringPayment") }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <el-form-item prop="subscribePayType" required>
|
|
|
+ <el-radio-group
|
|
|
+ class="customerqualification"
|
|
|
+ v-model="promotion.subscribePayType"
|
|
|
:disabled="edit"
|
|
|
- >{{ $t("label.customerCount") }}</el-checkbox
|
|
|
>
|
|
|
- </div>
|
|
|
- <!-- </el-checkbox-group> -->
|
|
|
- </el-form-item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!-- 组合 自动折扣才有 -->
|
|
|
- <div class="box">
|
|
|
- <div class="title">
|
|
|
- <span>{{ $t("label.combination") }}</span>
|
|
|
+ <el-radio :label="1">{{
|
|
|
+ $t("label.recurringPaymentList")[0].label
|
|
|
+ }}</el-radio>
|
|
|
+ <div class="item row">
|
|
|
+ <el-radio :label="2">{{
|
|
|
+ $t("label.recurringPaymentList")[1].label
|
|
|
+ }}</el-radio>
|
|
|
+ <el-input
|
|
|
+ v-if="promotion.subscribePayType === 2"
|
|
|
+ class="mininput"
|
|
|
+ v-model.trim="promotion.subscribeUsageLimit"
|
|
|
+ :disabled="edit"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div class="item row">
|
|
|
+ <el-radio :label="3">{{
|
|
|
+ $t("label.recurringPaymentList")[2].label
|
|
|
+ }}</el-radio>
|
|
|
+ </div>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="info">
|
|
|
- <el-form-item :label="$t('label.combinationLable') + ':'">
|
|
|
- <el-checkbox-group v-model="promotion.combination">
|
|
|
- <el-checkbox
|
|
|
- v-for="(item, i) in $t('label.combinationList')"
|
|
|
- :key="i"
|
|
|
- :label="item.value"
|
|
|
- :disabled="edit"
|
|
|
- >{{ item.label }}
|
|
|
- </el-checkbox>
|
|
|
- </el-checkbox-group>
|
|
|
- </el-form-item>
|
|
|
+ <!-- 组合 自动折扣才有 -->
|
|
|
+ <div class="box">
|
|
|
+ <div class="title">
|
|
|
+ <span>{{ $t("label.combination") }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="info">
|
|
|
+ <el-form-item :label="$t('label.combinationLable') + ':'">
|
|
|
+ <el-checkbox-group v-model="promotion.combination">
|
|
|
+ <el-checkbox
|
|
|
+ v-for="(item, i) in $t('label.combinationList')"
|
|
|
+ :key="i"
|
|
|
+ :label="item.value"
|
|
|
+ :disabled="edit"
|
|
|
+ >{{ item.label }}
|
|
|
+ </el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </el-form>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
-
|
|
|
<template slot="footer">
|
|
|
<el-button
|
|
|
@click="
|
|
@@ -371,13 +334,8 @@
|
|
|
"
|
|
|
>{{ $t("view.cancel") }}
|
|
|
</el-button>
|
|
|
- <!-- 未审核时/审核驳回 状态可进行提交 -->
|
|
|
- <!-- <el-button type="primary" @click="handleSaveOrUpdate" :disabled="edit"
|
|
|
- >{{ $t("view.confirm") }}
|
|
|
- </el-button> -->
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
- <product-collection ref="productCollectionRef" />
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
@@ -385,17 +343,13 @@ import waves from "@/directive/waves"; // 水波纹指令
|
|
|
import { fetchDetailByIdAndVersion } from "@/api/oms/order/multiBuyDiscount";
|
|
|
import i18n from "@/lang";
|
|
|
import { isEmpty } from "@/utils/toolUtil";
|
|
|
-import productCollection from "@/views/oms/promotion/buyXGetYDiscount/components/productCollectionDetail";
|
|
|
|
|
|
export default {
|
|
|
inject: ["reload"],
|
|
|
directives: {
|
|
|
waves
|
|
|
},
|
|
|
- name: "buyXgetYbuyDiscountForm",
|
|
|
- components: {
|
|
|
- productCollection
|
|
|
- },
|
|
|
+ name: "freeShipping",
|
|
|
computed: {
|
|
|
discountContentValue() {
|
|
|
return this.promotion.purchaseRequire === 2
|
|
@@ -411,6 +365,7 @@ export default {
|
|
|
productKeys: [],
|
|
|
usageLimitchecked: false,
|
|
|
codeUsageLimitchecked: false,
|
|
|
+ shippingExceptCheck: false,
|
|
|
tagLists: [],
|
|
|
getTagList: [],
|
|
|
promotion: {
|
|
@@ -544,7 +499,8 @@ export default {
|
|
|
getTargetShopifyProductSpu,
|
|
|
getTargetShopifySku,
|
|
|
customerGetOrderUsageLimit,
|
|
|
- codeUsageLimit
|
|
|
+ codeUsageLimit,
|
|
|
+ shippingExceptAmountType
|
|
|
} = priceRule;
|
|
|
let combinationArr = [];
|
|
|
if (combineWithOrder) {
|
|
@@ -558,6 +514,7 @@ export default {
|
|
|
}
|
|
|
this.usageLimitchecked = !!customerGetOrderUsageLimit;
|
|
|
this.codeUsageLimitchecked = !!codeUsageLimit;
|
|
|
+ this.shippingExceptCheck = shippingExceptAmountType === 1;
|
|
|
this.$set(this.promotion, "combination", combinationArr);
|
|
|
// 折扣适用 1特定系列 其他2,3 特定商品
|
|
|
let tagLists = [];
|
|
@@ -648,174 +605,177 @@ export default {
|
|
|
}
|
|
|
</style>
|
|
|
<style scoped rel="stylesheet/scss" lang="scss">
|
|
|
-.dialog-body {
|
|
|
- height: 80vh;
|
|
|
- overflow: auto;
|
|
|
- .box {
|
|
|
- border-bottom: 1px solid #d8d8d8;
|
|
|
- padding-bottom: 20px;
|
|
|
- margin-bottom: 42px;
|
|
|
- &.base {
|
|
|
- .info {
|
|
|
- width: 25%;
|
|
|
+.dialog-box {
|
|
|
+ height: 100%;
|
|
|
+ .dialog-body {
|
|
|
+ height: 80vh;
|
|
|
+ overflow: auto;
|
|
|
+ .box {
|
|
|
+ border-bottom: 1px solid #d8d8d8;
|
|
|
+ padding-bottom: 20px;
|
|
|
+ margin-bottom: 42px;
|
|
|
+ &.base {
|
|
|
+ .info {
|
|
|
+ width: 25%;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- &.discount {
|
|
|
- .info {
|
|
|
- margin-bottom: 60px;
|
|
|
+ &.discount {
|
|
|
+ .info {
|
|
|
+ margin-bottom: 60px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .title {
|
|
|
+ color: #606266;
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 16px;
|
|
|
+ position: relative;
|
|
|
+ font-weight: bold;
|
|
|
+ padding-left: 6px;
|
|
|
+ margin-bottom: 23px;
|
|
|
+ &:before {
|
|
|
+ position: absolute;
|
|
|
+ left: 0px;
|
|
|
+ top: 0px;
|
|
|
+ content: "";
|
|
|
+ display: inline-block;
|
|
|
+ width: 3px;
|
|
|
+ height: 13px;
|
|
|
+ background: #ae8877;
|
|
|
+ border-radius: 0px 0px 0px 0px;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- .title {
|
|
|
- color: #606266;
|
|
|
- font-size: 16px;
|
|
|
+ // /deep/.el-form-item__label-wrap {
|
|
|
+ // margin-left: 0px !important;
|
|
|
+ // .el-form-item__label {
|
|
|
+ // text-align: right;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ .skucon {
|
|
|
+ width: 90%;
|
|
|
+ height: 139px;
|
|
|
+ overflow-y: auto;
|
|
|
+ border-radius: 3px 3px 3px 3px;
|
|
|
+ border: 1px solid #dcdfe6;
|
|
|
+ background: #f5f7fa;
|
|
|
+ margin-top: 12px;
|
|
|
+ padding: 10px;
|
|
|
+ font-size: 12px;
|
|
|
line-height: 16px;
|
|
|
- position: relative;
|
|
|
- font-weight: bold;
|
|
|
- padding-left: 6px;
|
|
|
- margin-bottom: 23px;
|
|
|
- &:before {
|
|
|
- position: absolute;
|
|
|
- left: 0px;
|
|
|
- top: 0px;
|
|
|
- content: "";
|
|
|
- display: inline-block;
|
|
|
- width: 3px;
|
|
|
- height: 13px;
|
|
|
- background: #ae8877;
|
|
|
- border-radius: 0px 0px 0px 0px;
|
|
|
+ .active {
|
|
|
+ color: #fd5959;
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- // /deep/.el-form-item__label-wrap {
|
|
|
- // margin-left: 0px !important;
|
|
|
- // .el-form-item__label {
|
|
|
- // text-align: right;
|
|
|
- // }
|
|
|
- // }
|
|
|
- .skucon {
|
|
|
- width: 90%;
|
|
|
- height: 139px;
|
|
|
- overflow-y: auto;
|
|
|
- border-radius: 3px 3px 3px 3px;
|
|
|
- border: 1px solid #dcdfe6;
|
|
|
- background: #f5f7fa;
|
|
|
- margin-top: 12px;
|
|
|
- padding: 10px;
|
|
|
- font-size: 12px;
|
|
|
- line-height: 16px;
|
|
|
- .active {
|
|
|
- color: #fd5959;
|
|
|
+ .productbox {
|
|
|
+ border-bottom: none;
|
|
|
}
|
|
|
- }
|
|
|
- .productbox {
|
|
|
- border-bottom: none;
|
|
|
- }
|
|
|
- .info {
|
|
|
- .item {
|
|
|
- display: flex;
|
|
|
- flex-direction: row;
|
|
|
- flex-wrap: wrap;
|
|
|
- align-items: center;
|
|
|
- &.row {
|
|
|
- flex-wrap: nowrap;
|
|
|
- }
|
|
|
- .el-form-item {
|
|
|
- margin-right: 42px !important;
|
|
|
- }
|
|
|
- .codeinput {
|
|
|
- margin-right: 36px;
|
|
|
- }
|
|
|
- .mininput {
|
|
|
- margin-right: 30px;
|
|
|
- width: 180px !important;
|
|
|
- }
|
|
|
- .checkboxinput {
|
|
|
- margin-left: 20px;
|
|
|
- }
|
|
|
- .productinput {
|
|
|
- width: 340px !important;
|
|
|
- }
|
|
|
- .label {
|
|
|
- margin-right: 12px;
|
|
|
- }
|
|
|
- &.product {
|
|
|
- margin-top: 26px;
|
|
|
- .label {
|
|
|
- margin-bottom: 10px;
|
|
|
+ .info {
|
|
|
+ .item {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ align-items: center;
|
|
|
+ &.row {
|
|
|
+ flex-wrap: nowrap;
|
|
|
+ }
|
|
|
+ .el-form-item {
|
|
|
+ margin-right: 42px !important;
|
|
|
+ }
|
|
|
+ .codeinput {
|
|
|
+ margin-right: 36px;
|
|
|
}
|
|
|
.mininput {
|
|
|
- margin-right: 20px;
|
|
|
- margin-bottom: 10px;
|
|
|
+ margin-right: 30px;
|
|
|
+ width: 180px !important;
|
|
|
+ }
|
|
|
+ .checkboxinput {
|
|
|
+ margin-left: 20px;
|
|
|
}
|
|
|
- .row {
|
|
|
- flex-wrap: wrap;
|
|
|
+ .productinput {
|
|
|
+ width: 340px !important;
|
|
|
}
|
|
|
- .collectioninput {
|
|
|
- margin-right: 20px;
|
|
|
- min-width: 220px !important;
|
|
|
- width: auto !important;
|
|
|
- /deep/.el-input-group__append {
|
|
|
- color: #ae8877;
|
|
|
- border-left: none;
|
|
|
- font-size: 12px;
|
|
|
- padding: 0px 5px;
|
|
|
- background: #f5f7fa;
|
|
|
- span {
|
|
|
- cursor: pointer;
|
|
|
+ .label {
|
|
|
+ margin-right: 12px;
|
|
|
+ }
|
|
|
+ &.product {
|
|
|
+ margin-top: 26px;
|
|
|
+ .label {
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
+ .mininput {
|
|
|
+ margin-right: 20px;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ }
|
|
|
+ .row {
|
|
|
+ flex-wrap: wrap;
|
|
|
+ }
|
|
|
+ .collectioninput {
|
|
|
+ margin-right: 20px;
|
|
|
+ min-width: 220px !important;
|
|
|
+ width: auto !important;
|
|
|
+ /deep/.el-input-group__append {
|
|
|
+ color: #ae8877;
|
|
|
+ border-left: none;
|
|
|
+ font-size: 12px;
|
|
|
+ padding: 0px 5px;
|
|
|
+ background: #f5f7fa;
|
|
|
+ span {
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /deep/.el-input__inner {
|
|
|
+ border-right: none;
|
|
|
}
|
|
|
}
|
|
|
- /deep/.el-input__inner {
|
|
|
- border-right: none;
|
|
|
+ .value {
|
|
|
+ margin-bottom: 10px;
|
|
|
}
|
|
|
}
|
|
|
- .value {
|
|
|
- margin-bottom: 10px;
|
|
|
+ }
|
|
|
+ .discount {
|
|
|
+ .item {
|
|
|
+ margin-bottom: 20px;
|
|
|
+ /deep/.el-radio {
|
|
|
+ min-width: 135px;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- .discount {
|
|
|
- .item {
|
|
|
- margin-bottom: 20px;
|
|
|
- /deep/.el-radio {
|
|
|
- min-width: 135px;
|
|
|
+ .customerqualification {
|
|
|
+ .el-radio {
|
|
|
+ display: block;
|
|
|
+ margin-bottom: 30px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- .customerqualification {
|
|
|
- .el-radio {
|
|
|
- display: block;
|
|
|
- margin-bottom: 30px;
|
|
|
+ .value {
|
|
|
+ position: relative;
|
|
|
+ min-width: 300px;
|
|
|
+ height: 36px;
|
|
|
+ padding: 0px 6px;
|
|
|
+ font-size: 12px;
|
|
|
+ margin-right: 13px;
|
|
|
+ color: #c0c4cc;
|
|
|
+ background: #f5f7fa;
|
|
|
+ border-radius: 3px;
|
|
|
+ border: 1px solid #dcdfe6;
|
|
|
+ p {
|
|
|
+ line-height: 12px;
|
|
|
+ padding-right: 130px;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+ a {
|
|
|
+ position: absolute;
|
|
|
+ right: 10px;
|
|
|
+ top: 0%;
|
|
|
+ color: #ae8877;
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- .value {
|
|
|
- position: relative;
|
|
|
- min-width: 300px;
|
|
|
- height: 36px;
|
|
|
- padding: 0px 6px;
|
|
|
- font-size: 12px;
|
|
|
- margin-right: 13px;
|
|
|
- color: #c0c4cc;
|
|
|
- background: #f5f7fa;
|
|
|
- border-radius: 3px;
|
|
|
- border: 1px solid #dcdfe6;
|
|
|
- p {
|
|
|
- line-height: 12px;
|
|
|
- padding-right: 130px;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- white-space: nowrap;
|
|
|
- }
|
|
|
- a {
|
|
|
- position: absolute;
|
|
|
- right: 10px;
|
|
|
- top: 0%;
|
|
|
- color: #ae8877;
|
|
|
- }
|
|
|
- }
|
|
|
- .customerQualification {
|
|
|
- .mininput {
|
|
|
- margin-bottom: 30px;
|
|
|
+ .customerQualification {
|
|
|
+ .mininput {
|
|
|
+ margin-bottom: 30px;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|