|
@@ -8,29 +8,132 @@
|
|
|
v-model="isShow"
|
|
|
@cancle="isShow = false"
|
|
|
:width="960">
|
|
|
- <a-form-model
|
|
|
- id="promotionRules-rule-form"
|
|
|
- ref="ruleForm"
|
|
|
- :model="form"
|
|
|
- :rules="rules"
|
|
|
- :label-col="formItemLayout.labelCol"
|
|
|
- :wrapper-col="formItemLayout.wrapperCol"
|
|
|
- >
|
|
|
- <a-form-model-item label="促销类型" prop="promoRuleType" :extra="extra">
|
|
|
- <v-select
|
|
|
- code="PROMO_RULE_TYPE"
|
|
|
- id="promotionRules-rule-promoRuleType"
|
|
|
- v-model="form.promoRuleType"
|
|
|
- allowClear
|
|
|
- @change="changeType"
|
|
|
- placeholder="请选择促销类型"
|
|
|
- ></v-select>
|
|
|
- </a-form-model-item>
|
|
|
- <!-- 买产品送产品 -->
|
|
|
- <div v-if="form.promoRuleType == 'BUY_PROD_GIVE_PROD'">
|
|
|
- <a-form-model-item label="促销设置" required>
|
|
|
- 购买满
|
|
|
- <a-form-model-item prop="orderGoodsQty" :label-col="{span: 0}" style="display: inline-block;">
|
|
|
+ <a-spin tip="Loading..." :spinning="spinLoading">
|
|
|
+ <a-form-model
|
|
|
+ id="promotionRules-rule-form"
|
|
|
+ ref="ruleForm"
|
|
|
+ :model="form"
|
|
|
+ :rules="rules"
|
|
|
+ :label-col="formItemLayout.labelCol"
|
|
|
+ :wrapper-col="formItemLayout.wrapperCol"
|
|
|
+ >
|
|
|
+ <a-form-model-item label="促销类型" prop="promoRuleType" :extra="extra">
|
|
|
+ <v-select
|
|
|
+ code="PROMO_RULE_TYPE"
|
|
|
+ id="promotionRules-rule-promoRuleType"
|
|
|
+ v-model="form.promoRuleType"
|
|
|
+ allowClear
|
|
|
+ @change="changeType"
|
|
|
+ placeholder="请选择促销类型"
|
|
|
+ ></v-select>
|
|
|
+ </a-form-model-item>
|
|
|
+ <!-- 买产品送产品 -->
|
|
|
+ <div v-if="form.promoRuleType == 'BUY_PROD_GIVE_PROD'">
|
|
|
+ <a-form-model-item label="促销设置" required>
|
|
|
+ 购买满
|
|
|
+ <a-form-model-item prop="orderGoodsQty" :label-col="{span: 0}" style="display: inline-block;">
|
|
|
+ <a-input-number
|
|
|
+ id="promotionRules-rule-orderGoodsQty"
|
|
|
+ v-model="form.orderGoodsQty"
|
|
|
+ :precision="0"
|
|
|
+ :min="1"
|
|
|
+ :max="999999"
|
|
|
+ placeholder="请输入数量"
|
|
|
+ style="width: 100%;" />
|
|
|
+ </a-form-model-item>
|
|
|
+ 个正价产品,送
|
|
|
+ <a-form-model-item prop="promoQty" :label-col="{span: 0}" style="display: inline-block;">
|
|
|
+ <a-input-number
|
|
|
+ id="promotionRules-rule-promoQty"
|
|
|
+ v-model="form.promoQty"
|
|
|
+ :precision="0"
|
|
|
+ :min="1"
|
|
|
+ :max="999999"
|
|
|
+ placeholder="请输入数量"
|
|
|
+ style="width: 100%;" />
|
|
|
+ </a-form-model-item>
|
|
|
+ 个促销品
|
|
|
+ </a-form-model-item>
|
|
|
+ <a-form-model-item label="正价产品" prop="normalGoodsList">
|
|
|
+ <a-button id="promotionRules-rule-normalGoodsList" type="primary" class="button-success" @click="chooseProduct('normal')">选择</a-button>
|
|
|
+ </a-form-model-item>
|
|
|
+ <a-form-model-item label="促销品" prop="promoGoodsList">
|
|
|
+ <a-button id="promotionRules-rule-promoGoodsList" type="primary" class="button-success" @click="chooseProduct('promo')">选择</a-button>
|
|
|
+ </a-form-model-item>
|
|
|
+ </div>
|
|
|
+ <!-- 买产品送采购额 -->
|
|
|
+ <div v-if="form.promoRuleType == 'BUY_PROD_GIVE_MONEY'">
|
|
|
+ <a-form-model-item label="促销设置" prop="promoType">
|
|
|
+ <a-radio-group v-model="form.promoType" @change="radioChange">
|
|
|
+ <a-radio value="promo_amount" style="margin-bottom: 10px;">
|
|
|
+ 购买满
|
|
|
+ <a-form-model-item prop="orderAmounts" :label-col="{span: 0}" style="display: inline-block;">
|
|
|
+ <a-input-number
|
|
|
+ id="promotionRules-rule-orderAmounts"
|
|
|
+ v-model="form.orderAmounts"
|
|
|
+ :precision="2"
|
|
|
+ :min="0.1"
|
|
|
+ :max="999999"
|
|
|
+ placeholder="请输入金额"
|
|
|
+ style="width: 100%;" />
|
|
|
+ </a-form-model-item>
|
|
|
+ 元正价产品,送
|
|
|
+ <a-form-model-item prop="promoAmount" :label-col="{span: 0}" style="display: inline-block;">
|
|
|
+ <a-input-number
|
|
|
+ id="promotionRules-rule-promoAmount"
|
|
|
+ v-model="form.promoAmount"
|
|
|
+ :precision="2"
|
|
|
+ :min="0.1"
|
|
|
+ :max="999999"
|
|
|
+ placeholder="请输入金额"
|
|
|
+ style="width: 100%;" />
|
|
|
+ </a-form-model-item>
|
|
|
+ 元采购额可用于购买促销品
|
|
|
+ </a-radio>
|
|
|
+ <a-radio value="promo_amount_per">
|
|
|
+ 购买满
|
|
|
+ <a-form-model-item prop="orderAmount" :label-col="{span: 0}" style="display: inline-block;">
|
|
|
+ <a-input-number
|
|
|
+ id="promotionRules-rule-orderAmount"
|
|
|
+ v-model="form.orderAmount"
|
|
|
+ :precision="2"
|
|
|
+ :min="0.1"
|
|
|
+ :max="999999"
|
|
|
+ placeholder="请输入金额"
|
|
|
+ style="width: 100%;" />
|
|
|
+ </a-form-model-item>
|
|
|
+ 元正价产品可以返正价产品采购额的
|
|
|
+ <a-form-model-item prop="promoAmountPer" :label-col="{span: 0}" style="display: inline-block;">
|
|
|
+ <a-input-number
|
|
|
+ id="promotionRules-rule-promoAmountPer"
|
|
|
+ v-model="form.promoAmountPer"
|
|
|
+ :precision="2"
|
|
|
+ :min="0.1"
|
|
|
+ :max="100"
|
|
|
+ placeholder="请输入比例"
|
|
|
+ style="width: 100%;" />
|
|
|
+ </a-form-model-item>
|
|
|
+ %用于购买促销品
|
|
|
+ </a-radio>
|
|
|
+ </a-radio-group>
|
|
|
+ </a-form-model-item>
|
|
|
+ <a-form-model-item label="正价产品" prop="normalGoodsList">
|
|
|
+ <a-button id="promotionRules-rule-normalGoodsList" type="primary" class="button-success" @click="chooseProduct('normal')">选择</a-button>
|
|
|
+ </a-form-model-item>
|
|
|
+ <a-form-model-item label="促销品" prop="promoGoodsList">
|
|
|
+ <a-button id="promotionRules-rule-promoGoodsList" type="primary" class="button-success" @click="chooseProduct('promo')">选择</a-button>
|
|
|
+ </a-form-model-item>
|
|
|
+ </div>
|
|
|
+ <!-- 特价产品销售 -->
|
|
|
+ <div v-if="form.promoRuleType == 'PROMO_PROD'">
|
|
|
+ <a-form-model-item label="特价产品" prop="promoGoodsList">
|
|
|
+ <a-button id="promotionRules-rule-promoGoodsList" type="primary" class="button-success" @click="chooseProduct('promo')">选择</a-button>
|
|
|
+ </a-form-model-item>
|
|
|
+ </div>
|
|
|
+ <!-- 加价换购 -->
|
|
|
+ <div v-if="form.promoRuleType == 'ADD_PRICE_PURCH'">
|
|
|
+ <a-form-model-item label="加价规则" prop="orderGoodsQty">
|
|
|
+ 购买满
|
|
|
<a-input-number
|
|
|
id="promotionRules-rule-orderGoodsQty"
|
|
|
v-model="form.orderGoodsQty"
|
|
@@ -38,123 +141,22 @@
|
|
|
:min="1"
|
|
|
:max="999999"
|
|
|
placeholder="请输入数量"
|
|
|
- style="width: 100%;" />
|
|
|
+ style="width: 30%;" />
|
|
|
+ 个正价产品,可以以换购价购买任意1个换购产品
|
|
|
</a-form-model-item>
|
|
|
- 个正价产品,送
|
|
|
- <a-form-model-item prop="promoQty" :label-col="{span: 0}" style="display: inline-block;">
|
|
|
- <a-input-number
|
|
|
- id="promotionRules-rule-promoQty"
|
|
|
- v-model="form.promoQty"
|
|
|
- :precision="0"
|
|
|
- :min="1"
|
|
|
- :max="999999"
|
|
|
- placeholder="请输入数量"
|
|
|
- style="width: 100%;" />
|
|
|
+ <a-form-model-item label="正价产品" prop="normalGoodsList">
|
|
|
+ <a-button id="promotionRules-rule-normalGoodsList" type="primary" class="button-success" @click="chooseProduct('normal')">选择</a-button>
|
|
|
</a-form-model-item>
|
|
|
- 个促销品
|
|
|
- </a-form-model-item>
|
|
|
- <a-form-model-item label="正价产品" prop="normalGoodsList">
|
|
|
- <a-button id="promotionRules-rule-normalGoodsList" type="primary" class="button-success" @click="chooseProduct('normal')">选择</a-button>
|
|
|
- </a-form-model-item>
|
|
|
- <a-form-model-item label="促销品" prop="promoGoodsList">
|
|
|
- <a-button id="promotionRules-rule-promoGoodsList" type="primary" class="button-success" @click="chooseProduct('promo')">选择</a-button>
|
|
|
- </a-form-model-item>
|
|
|
- </div>
|
|
|
- <!-- 买产品送采购额 -->
|
|
|
- <div v-if="form.promoRuleType == 'BUY_PROD_GIVE_MONEY'">
|
|
|
- <a-form-model-item label="促销设置" prop="promoType">
|
|
|
- <a-radio-group v-model="form.promoType" @change="radioChange">
|
|
|
- <a-radio value="promo_amount" style="margin-bottom: 10px;">
|
|
|
- 购买满
|
|
|
- <a-form-model-item prop="orderAmounts" :label-col="{span: 0}" style="display: inline-block;">
|
|
|
- <a-input-number
|
|
|
- id="promotionRules-rule-orderAmounts"
|
|
|
- v-model="form.orderAmounts"
|
|
|
- :precision="2"
|
|
|
- :min="0.1"
|
|
|
- :max="999999"
|
|
|
- placeholder="请输入金额"
|
|
|
- style="width: 100%;" />
|
|
|
- </a-form-model-item>
|
|
|
- 元正价产品,送
|
|
|
- <a-form-model-item prop="promoAmount" :label-col="{span: 0}" style="display: inline-block;">
|
|
|
- <a-input-number
|
|
|
- id="promotionRules-rule-promoAmount"
|
|
|
- v-model="form.promoAmount"
|
|
|
- :precision="2"
|
|
|
- :min="0.1"
|
|
|
- :max="999999"
|
|
|
- placeholder="请输入金额"
|
|
|
- style="width: 100%;" />
|
|
|
- </a-form-model-item>
|
|
|
- 元采购额可用于购买促销品
|
|
|
- </a-radio>
|
|
|
- <a-radio value="promo_amount_per">
|
|
|
- 购买满
|
|
|
- <a-form-model-item prop="orderAmount" :label-col="{span: 0}" style="display: inline-block;">
|
|
|
- <a-input-number
|
|
|
- id="promotionRules-rule-orderAmount"
|
|
|
- v-model="form.orderAmount"
|
|
|
- :precision="2"
|
|
|
- :min="0.1"
|
|
|
- :max="999999"
|
|
|
- placeholder="请输入金额"
|
|
|
- style="width: 100%;" />
|
|
|
- </a-form-model-item>
|
|
|
- 元正价产品可以返正价产品采购额的
|
|
|
- <a-form-model-item prop="promoAmountPer" :label-col="{span: 0}" style="display: inline-block;">
|
|
|
- <a-input-number
|
|
|
- id="promotionRules-rule-promoAmountPer"
|
|
|
- v-model="form.promoAmountPer"
|
|
|
- :precision="2"
|
|
|
- :min="0.1"
|
|
|
- :max="100"
|
|
|
- placeholder="请输入比例"
|
|
|
- style="width: 100%;" />
|
|
|
- </a-form-model-item>
|
|
|
- %用于购买促销品
|
|
|
- </a-radio>
|
|
|
- </a-radio-group>
|
|
|
- </a-form-model-item>
|
|
|
- <a-form-model-item label="正价产品" prop="normalGoodsList">
|
|
|
- <a-button id="promotionRules-rule-normalGoodsList" type="primary" class="button-success" @click="chooseProduct('normal')">选择</a-button>
|
|
|
- </a-form-model-item>
|
|
|
- <a-form-model-item label="促销品" prop="promoGoodsList">
|
|
|
- <a-button id="promotionRules-rule-promoGoodsList" type="primary" class="button-success" @click="chooseProduct('promo')">选择</a-button>
|
|
|
- </a-form-model-item>
|
|
|
- </div>
|
|
|
- <!-- 特价产品销售 -->
|
|
|
- <div v-if="form.promoRuleType == 'PROMO_PROD'">
|
|
|
- <a-form-model-item label="特价产品" prop="promoGoodsList">
|
|
|
- <a-button id="promotionRules-rule-promoGoodsList" type="primary" class="button-success" @click="chooseProduct('promo')">选择</a-button>
|
|
|
- </a-form-model-item>
|
|
|
- </div>
|
|
|
- <!-- 加价换购 -->
|
|
|
- <div v-if="form.promoRuleType == 'ADD_PRICE_PURCH'">
|
|
|
- <a-form-model-item label="加价规则" prop="orderGoodsQty">
|
|
|
- 购买满
|
|
|
- <a-input-number
|
|
|
- id="promotionRules-rule-orderGoodsQty"
|
|
|
- v-model="form.orderGoodsQty"
|
|
|
- :precision="0"
|
|
|
- :min="1"
|
|
|
- :max="999999"
|
|
|
- placeholder="请输入数量"
|
|
|
- style="width: 30%;" />
|
|
|
- 个正价产品,可以以换购价购买任意1个换购产品
|
|
|
- </a-form-model-item>
|
|
|
- <a-form-model-item label="正价产品" prop="normalGoodsList">
|
|
|
- <a-button id="promotionRules-rule-normalGoodsList" type="primary" class="button-success" @click="chooseProduct('normal')">选择</a-button>
|
|
|
- </a-form-model-item>
|
|
|
- <a-form-model-item label="换购产品" prop="promoGoodsList">
|
|
|
- <a-button id="promotionRules-rule-promoGoodsList" type="primary" class="button-success" @click="chooseProduct('promo')">选择</a-button>
|
|
|
- </a-form-model-item>
|
|
|
+ <a-form-model-item label="换购产品" prop="promoGoodsList">
|
|
|
+ <a-button id="promotionRules-rule-promoGoodsList" type="primary" class="button-success" @click="chooseProduct('promo')">选择</a-button>
|
|
|
+ </a-form-model-item>
|
|
|
+ </div>
|
|
|
+ </a-form-model>
|
|
|
+ <div class="btn-cont">
|
|
|
+ <a-button type="primary" id="promotionRules-rule-modal-save" @click="handleSave">保存</a-button>
|
|
|
+ <a-button id="promotionRules-rule-modal-back" @click="isShow = false" style="margin-left: 15px;">取消</a-button>
|
|
|
</div>
|
|
|
- </a-form-model>
|
|
|
- <div class="btn-cont">
|
|
|
- <a-button type="primary" id="promotionRules-rule-modal-save" @click="handleSave">保存</a-button>
|
|
|
- <a-button id="promotionRules-rule-modal-back" @click="isShow = false" style="margin-left: 15px;">取消</a-button>
|
|
|
- </div>
|
|
|
+ </a-spin>
|
|
|
<!-- 选择产品 -->
|
|
|
<choose-price-products-modal
|
|
|
:openModal="openPriceProductsModal"
|
|
@@ -219,7 +221,8 @@ export default {
|
|
|
normalGoodsList: [], // 当前已选正价产品
|
|
|
promoGoodsList: [], // 当前已选促销品
|
|
|
nowChooseGoodsType: '', // 当前选择产品的类型(正价产品/促销品)
|
|
|
- nowData: [] // 选择产品
|
|
|
+ nowData: [], // 选择产品
|
|
|
+ spinLoading: false
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
@@ -312,6 +315,7 @@ export default {
|
|
|
_this.form.promoGoodsList = this.promoGoodsList.length > 0 ? 'a' : ''
|
|
|
this.$refs.ruleForm.validate(valid => {
|
|
|
if (valid) {
|
|
|
+ _this.spinLoading = true
|
|
|
const form = JSON.parse(JSON.stringify(_this.form))
|
|
|
form.normalGoodsList = this.normalGoodsList
|
|
|
form.promoGoodsList = this.promoGoodsList
|
|
@@ -330,6 +334,7 @@ export default {
|
|
|
_this.$message.success(res.message)
|
|
|
setTimeout(() => {
|
|
|
_this.$emit('ok')
|
|
|
+ _this.spinLoading = false
|
|
|
_this.isShow = false
|
|
|
}, 1000)
|
|
|
}
|