|
@@ -22,126 +22,139 @@
|
|
|
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="促销设置" prop="buyerLimitEnable">
|
|
|
+ <a-form-model-item label="促销设置" required>
|
|
|
购买满
|
|
|
- <a-input-number
|
|
|
- id="promotionRules-rule-outQty"
|
|
|
- v-model="form.orderGoodsQty"
|
|
|
- :precision="0"
|
|
|
- :min="1"
|
|
|
- :max="999999"
|
|
|
- placeholder="请输入数量"
|
|
|
- style="width: 30%;" />
|
|
|
+ <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-input-number
|
|
|
- id="promotionRules-rule-outQty"
|
|
|
- v-model="form.promoQty"
|
|
|
- :precision="0"
|
|
|
- :min="1"
|
|
|
- :max="999999"
|
|
|
- placeholder="请输入数量"
|
|
|
- style="width: 30%;" />
|
|
|
+ <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-choose" type="primary" class="button-success" @click="openCustomerModal=true">选择</a-button>
|
|
|
- <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ chooseCust.length }}个</span>
|
|
|
+ <a-button id="promotionRules-rule-normalGoodsList" type="primary" class="button-success" @click="chooseProduct('normal')">选择</a-button>
|
|
|
+ <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ normalGoodsList.length }}个</span>
|
|
|
</a-form-model-item>
|
|
|
<a-form-model-item label="促销品" prop="promoGoodsList">
|
|
|
- <a-button id="promotionRules-rule-choose" type="primary" class="button-success" @click="openCustomerModal=true">选择</a-button>
|
|
|
- <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ chooseCust.length }}个</span>
|
|
|
+ <a-button id="promotionRules-rule-promoGoodsList" type="primary" class="button-success" @click="chooseProduct('promo')">选择</a-button>
|
|
|
+ <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ promoGoodsList.length }}个</span>
|
|
|
</a-form-model-item>
|
|
|
</div>
|
|
|
<!-- 买产品送采购额 -->
|
|
|
<div v-if="form.promoRuleType == 'BUY_PROD_GIVE_MONEY'">
|
|
|
- <a-form-model-item label="促销设置" prop="buyerLimitEnable">
|
|
|
+ <a-form-model-item label="促销设置" prop="orderRuleType">
|
|
|
<a-radio-group v-model="form.orderRuleType" @change="radioChange">
|
|
|
<a-radio value="prod_qty" style="margin-bottom: 10px;">
|
|
|
购买满
|
|
|
- <a-input-number
|
|
|
- id="promotionRules-rule-orderGoodsQty"
|
|
|
- v-model="form.orderGoodsQty"
|
|
|
- :precision="0"
|
|
|
- :min="1"
|
|
|
- :max="999999"
|
|
|
- placeholder="请输入数量"
|
|
|
- style="width: 30%;" />
|
|
|
+ <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-input-number
|
|
|
- id="promotionRules-rule-promoAmount"
|
|
|
- v-model="form.promoAmount"
|
|
|
- :precision="2"
|
|
|
- :min="1"
|
|
|
- :max="999999"
|
|
|
- placeholder="请输入金额"
|
|
|
- style="width: 30%;" />
|
|
|
+ <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="order_amount">
|
|
|
购买满
|
|
|
- <a-input-number
|
|
|
- id="promotionRules-rule-orderGoodsQty"
|
|
|
- v-model="form.orderGoodsQty"
|
|
|
- :precision="0"
|
|
|
- :min="1"
|
|
|
- :max="999999"
|
|
|
- placeholder="请输入数量"
|
|
|
- style="width: 30%;" />
|
|
|
+ <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-input-number
|
|
|
- id="promotionRules-rule-promoAmountPer"
|
|
|
- v-model="form.promoAmountPer"
|
|
|
- :precision="0"
|
|
|
- :min="1"
|
|
|
- :max="999999"
|
|
|
- placeholder="请输入数量"
|
|
|
- style="width: 30%;" />
|
|
|
+ <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="buyerLimitEnable">
|
|
|
- <a-button id="promotionRules-rule-choose" type="primary" class="button-success" @click="openCustomerModal=true">选择</a-button>
|
|
|
- <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ chooseCust.length }}个</span>
|
|
|
+ <a-form-model-item label="正价产品" prop="normalGoodsList">
|
|
|
+ <a-button id="promotionRules-rule-normalGoodsList" type="primary" class="button-success" @click="chooseProduct('normal')">选择</a-button>
|
|
|
+ <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ normalGoodsList.length }}个</span>
|
|
|
</a-form-model-item>
|
|
|
- <a-form-model-item label="促销品" prop="buyerLimitEnable">
|
|
|
- <a-button id="promotionRules-rule-choose" type="primary" class="button-success" @click="openCustomerModal=true">选择</a-button>
|
|
|
- <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ chooseCust.length }}个</span>
|
|
|
+ <a-form-model-item label="促销品" prop="promoGoodsList">
|
|
|
+ <a-button id="promotionRules-rule-promoGoodsList" type="primary" class="button-success" @click="chooseProduct('promo')">选择</a-button>
|
|
|
+ <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ promoGoodsList.length }}个</span>
|
|
|
</a-form-model-item>
|
|
|
</div>
|
|
|
<!-- 特价产品销售 -->
|
|
|
<div v-if="form.promoRuleType == 'PROMO_PROD'">
|
|
|
<a-form-model-item label="特价产品" prop="promoGoodsList">
|
|
|
- <a-button id="promotionRules-rule-choose" type="primary" class="button-success" @click="openCustomerModal=true">选择</a-button>
|
|
|
- <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ chooseCust.length }}个</span>
|
|
|
+ <a-button id="promotionRules-rule-promoGoodsList" type="primary" class="button-success" @click="chooseProduct('promo')">选择</a-button>
|
|
|
+ <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ promoGoodsList.length }}个</span>
|
|
|
</a-form-model-item>
|
|
|
</div>
|
|
|
<!-- 加价换购 -->
|
|
|
<div v-if="form.promoRuleType == 'ADD_PRICE_PURCH'">
|
|
|
- <a-form-model-item label="加价规则" prop="buyerLimitEnable">
|
|
|
+ <a-form-model-item label="加价规则" prop="orderGoodsQty">
|
|
|
购买满
|
|
|
<a-input-number
|
|
|
- id="promotionRules-rule-outQty"
|
|
|
- v-model="form.outQty"
|
|
|
+ id="promotionRules-rule-orderGoodsQty"
|
|
|
+ v-model="form.orderGoodsQty"
|
|
|
:precision="0"
|
|
|
:min="1"
|
|
|
:max="999999"
|
|
|
- placeholder="请输入数量"
|
|
|
+ placeholder="请输入"
|
|
|
style="width: 30%;" />
|
|
|
- 个正价产品 可以以换购价购买任意1个换购产品
|
|
|
+ 个正价产品,可以以换购价购买任意1个换购产品
|
|
|
</a-form-model-item>
|
|
|
- <a-form-model-item label="正价产品" prop="buyerLimitEnable">
|
|
|
- <a-button id="promotionRules-rule-choose" type="primary" class="button-success" @click="openCustomerModal=true">选择</a-button>
|
|
|
- <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ chooseCust.length }}个</span>
|
|
|
+ <a-form-model-item label="正价产品" prop="normalGoodsList">
|
|
|
+ <a-button id="promotionRules-rule-normalGoodsList" type="primary" class="button-success" @click="chooseProduct('normal')">选择</a-button>
|
|
|
+ <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ normalGoodsList.length }}个</span>
|
|
|
</a-form-model-item>
|
|
|
- <a-form-model-item label="换购产品" prop="buyerLimitEnable">
|
|
|
- <a-button id="promotionRules-rule-choose" type="primary" class="button-success" @click="openCustomerModal=true">选择</a-button>
|
|
|
- <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ chooseCust.length }}个</span>
|
|
|
+ <a-form-model-item label="换购产品" prop="promoGoodsList">
|
|
|
+ <a-button id="promotionRules-rule-promoGoodsList" type="primary" class="button-success" @click="chooseProduct('promo')">选择</a-button>
|
|
|
+ <span style="font-weight: bold;margin-left: 30px;">当前已选:{{ promoGoodsList.length }}个</span>
|
|
|
</a-form-model-item>
|
|
|
</div>
|
|
|
</a-form-model>
|
|
@@ -149,19 +162,24 @@
|
|
|
<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>
|
|
|
- <!-- 选择参与客户 -->
|
|
|
- <choose-customer-modal :openModal="openCustomerModal" :chooseCust="chooseCust" @close="openCustomerModal=false" @ok="handleOk" />
|
|
|
+ <!-- 选择产品 -->
|
|
|
+ <choose-price-products-modal
|
|
|
+ :openModal="openPriceProductsModal"
|
|
|
+ :nowData="nowData"
|
|
|
+ :ruleType="form.promoRuleType"
|
|
|
+ :goodsType="nowChooseGoodsType"
|
|
|
+ @ok="handleOk"
|
|
|
+ @close="closePriceProducts" />
|
|
|
</a-modal>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import moment from 'moment'
|
|
|
import { VSelect } from '@/components'
|
|
|
-import chooseCustomerModal from './chooseCustomerModal'
|
|
|
-import { promoActiveSave } from '@/api/promoActive'
|
|
|
+import ChoosePriceProductsModal from './choosePriceProductsModal.vue'
|
|
|
+import { promoRuleSave } from '@/api/promoRule'
|
|
|
export default {
|
|
|
name: 'StoreTransferOutBasicInfoModal',
|
|
|
- components: { VSelect, chooseCustomerModal },
|
|
|
+ components: { VSelect, ChoosePriceProductsModal },
|
|
|
props: {
|
|
|
openModal: {
|
|
|
// 弹框显示状态
|
|
@@ -173,34 +191,36 @@ export default {
|
|
|
return {
|
|
|
isShow: this.openModal, // 是否打开弹框
|
|
|
formItemLayout: {
|
|
|
- labelCol: { span: 4 },
|
|
|
- wrapperCol: { span: 16 }
|
|
|
+ labelCol: { span: 3 },
|
|
|
+ wrapperCol: { span: 21 }
|
|
|
},
|
|
|
form: {
|
|
|
- promoRuleType: undefined
|
|
|
+ promoRuleType: undefined, // 促销类型
|
|
|
+ orderGoodsQty: '', // 正价品数量
|
|
|
+ promoQty: '', // 促销品数量
|
|
|
+ orderRuleType: undefined, // 促销设置(买产品送采购额(定额)、买产品送采购额(定比例))
|
|
|
+ orderAmount: '', // 正价品金额
|
|
|
+ promoAmount: '', // 采购额
|
|
|
+ promoAmountPer: '', // 百分比
|
|
|
+ normalGoodsList: '', // 已选正价品
|
|
|
+ promoGoodsList: '' // 已选促销品
|
|
|
},
|
|
|
rules: {
|
|
|
- name: [{ required: true, message: '请输入活动名称', trigger: 'blur' }],
|
|
|
- activeDateEnable: [{ required: true, message: '请选择是否限制活动时间', trigger: 'change' }],
|
|
|
- activeDate: [{ required: true, message: '请选择限制的活动时间', trigger: 'change' }],
|
|
|
- buyerLimitEnable: [{ required: true, message: '请选择是否限制参与客户', trigger: 'change' }],
|
|
|
- buyerSns: [{ required: true, message: '请选择参与客户', trigger: 'blur' }],
|
|
|
- activeAmountEnable: [{ required: true, message: '请选择是否限制活动经费', trigger: 'change' }],
|
|
|
- activeAmount: [{ required: true, message: '请输入活动经费上限', trigger: 'blur' }],
|
|
|
- orderAmountEnable: [{ required: true, message: '请选择是否限制起订金额', trigger: 'change' }],
|
|
|
- orderAmount: [{ required: true, message: '请输入订单起订金额', trigger: 'blur' }]
|
|
|
+ promoRuleType: [{ required: true, message: '请选择促销类型', trigger: 'change' }],
|
|
|
+ orderGoodsQty: [{ required: true, message: '请输入正价品数量', trigger: 'blur' }],
|
|
|
+ promoQty: [{ required: true, message: '请输入促销品数量', trigger: 'blur' }],
|
|
|
+ orderRuleType: [{ required: true, message: '请选择促销方式', trigger: 'change' }],
|
|
|
+ orderAmount: [{ required: true, message: '请输入正价品金额', trigger: 'blur' }],
|
|
|
+ promoAmount: [{ required: true, message: '请输入采购额', trigger: 'blur' }],
|
|
|
+ promoAmountPer: [{ required: true, message: '请输入百分比', trigger: 'blur' }],
|
|
|
+ normalGoodsList: [{ required: true, message: '请选择正价品', trigger: 'change' }],
|
|
|
+ promoGoodsList: [{ required: true, message: '请选择促销品', trigger: 'change' }]
|
|
|
},
|
|
|
- dateFormat: 'YYYY-MM-DD',
|
|
|
- rangeList: [ // 是否限制
|
|
|
- { name: '不限', val: 0 },
|
|
|
- { name: '限制', val: 1 }
|
|
|
- ],
|
|
|
- rangeCList: [ // 是否全部
|
|
|
- { name: '全部客户', val: 0 },
|
|
|
- { name: '部分客户', val: 1 }
|
|
|
- ],
|
|
|
- openCustomerModal: false,
|
|
|
- chooseCust: [] // 当前已选客户
|
|
|
+ openPriceProductsModal: false,
|
|
|
+ normalGoodsList: [], // 当前已选正价产品
|
|
|
+ promoGoodsList: [], // 当前已选促销品
|
|
|
+ nowChooseGoodsType: '', // 当前选择产品的类型(正价产品/促销品)
|
|
|
+ nowData: [] // 选择产品
|
|
|
}
|
|
|
},
|
|
|
computed: {
|
|
@@ -222,23 +242,20 @@ export default {
|
|
|
// 保存
|
|
|
handleSave () {
|
|
|
const _this = this
|
|
|
+ // 处理表单校验
|
|
|
+ _this.form.normalGoodsList = this.normalGoodsList.length > 0 ? 'a' : ''
|
|
|
+ _this.form.promoGoodsList = this.promoGoodsList.length > 0 ? 'a' : ''
|
|
|
this.$refs.ruleForm.validate(valid => {
|
|
|
if (valid) {
|
|
|
const form = JSON.parse(JSON.stringify(_this.form))
|
|
|
- if (form.activeDate && form.activeDate.length > 0) {
|
|
|
- form.activeDateStart = moment(form.activeDate[0]).format(this.dateFormat)
|
|
|
- form.activeDateEnd = moment(form.activeDate[1]).format(this.dateFormat)
|
|
|
- } else {
|
|
|
- form.activeDateStart = undefined
|
|
|
- form.activeDateEnd = undefined
|
|
|
- }
|
|
|
- delete form.activeDate
|
|
|
- promoActiveSave(form).then(res => {
|
|
|
+ form.normalGoodsList = this.normalGoodsList
|
|
|
+ form.promoGoodsList = this.promoGoodsList
|
|
|
+ promoRuleSave(form).then(res => {
|
|
|
if (res.status == 200) {
|
|
|
_this.$message.success(res.message)
|
|
|
setTimeout(() => {
|
|
|
+ _this.$emit('ok')
|
|
|
_this.isShow = false
|
|
|
- _this.$emit('ok', res.data)
|
|
|
}, 1000)
|
|
|
}
|
|
|
})
|
|
@@ -249,30 +266,36 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
handleOk (obj) {
|
|
|
- this.chooseCust = obj
|
|
|
- this.form.buyerSns = this.chooseCust.join(',')
|
|
|
+ console.log('已选产品-----', obj)
|
|
|
+ if (this.nowChooseGoodsType == 'normal') { // 正价品
|
|
|
+ this.normalGoodsList = obj
|
|
|
+ } else if (this.nowChooseGoodsType == 'promo') { // 促销品
|
|
|
+ this.promoGoodsList = obj
|
|
|
+ }
|
|
|
},
|
|
|
- // select change
|
|
|
- handleChange (val) {
|
|
|
- // 数据更改为不限时需重置之前所选数据
|
|
|
- if (val == 'activeDateEnable' && this.form.activeDateEnable == 0) { // 活动时间
|
|
|
- this.form.activeDate = []
|
|
|
- this.form.activeDateStart = ''
|
|
|
- this.form.activeDateEnd = ''
|
|
|
- } else if (val == 'buyerLimitEnable' && this.form.buyerLimitEnable == 0) { // 参与客户
|
|
|
- this.chooseCust = []
|
|
|
- } else if (val == 'activeAmountEnable' && this.form.activeAmountEnable == 0) { // 活动经费
|
|
|
- this.form.activeAmount = ''
|
|
|
- } else if (val == 'orderAmountEnable' && this.form.orderAmountEnable == 0) { // 起订金额
|
|
|
- this.form.orderAmount = ''
|
|
|
+ // 选择产品
|
|
|
+ chooseProduct (type) {
|
|
|
+ this.nowChooseGoodsType = type
|
|
|
+ if (type == 'normal') { // 正价品
|
|
|
+ this.nowData = this.normalGoodsList || []
|
|
|
+ } else if (type == 'promo') { // 促销品
|
|
|
+ this.nowData = this.promoGoodsList || []
|
|
|
}
|
|
|
+ this.openPriceProductsModal = true
|
|
|
+ },
|
|
|
+ // 关闭选择产品弹框
|
|
|
+ closePriceProducts () {
|
|
|
+ this.openPriceProductsModal = false
|
|
|
},
|
|
|
radioChange (val) {
|
|
|
|
|
|
},
|
|
|
- // 不可选日期
|
|
|
- disabledDate (date, dateStrings) {
|
|
|
- return date && date.valueOf('day') < moment().subtract(1, 'day') // 今天以后,包含今天
|
|
|
+ // 促销类型 change
|
|
|
+ changeType (val) {
|
|
|
+ this.$refs.ruleForm.resetFields()
|
|
|
+ this.normalGoodsList = []
|
|
|
+ this.promoGoodsList = []
|
|
|
+ this.form.promoRuleType = val
|
|
|
}
|
|
|
},
|
|
|
watch: {
|
|
@@ -300,5 +323,8 @@ export default {
|
|
|
text-align: center;
|
|
|
margin: 35px 0 10px;
|
|
|
}
|
|
|
+ .ant-radio + span{
|
|
|
+ line-height: 40px;
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|