|
@@ -16,24 +16,17 @@
|
|
|
:rules="rules"
|
|
|
:label-col="formItemLayout.labelCol"
|
|
|
:wrapper-col="formItemLayout.wrapperCol" >
|
|
|
- <a-form-model-item label="规则简称" prop="description">
|
|
|
- <a-input
|
|
|
- size="small"
|
|
|
- id="promotionList-description"
|
|
|
- v-model.trim="form.description"
|
|
|
- allowClear
|
|
|
- placeholder="请输入规则简称(最多20个字符)"
|
|
|
- :maxLength="20"></a-input>
|
|
|
- </a-form-model-item>
|
|
|
<a-form-model-item label="规则门槛" prop="gateFlag">
|
|
|
- <a-radio-group v-model="form.gateFlag" button-style="solid" size="small" @change="changeGateFlag">
|
|
|
- <a-radio value="1">
|
|
|
- 有
|
|
|
- </a-radio>
|
|
|
- <a-radio value="0">
|
|
|
- 无
|
|
|
- </a-radio>
|
|
|
- </a-radio-group>
|
|
|
+ <div class="fixWidthBox">
|
|
|
+ <a-radio-group v-model="form.gateFlag" button-style="solid" size="small" @change="changeGateFlag">
|
|
|
+ <a-radio-button value="1">
|
|
|
+ 有
|
|
|
+ </a-radio-button>
|
|
|
+ <a-radio-button value="0">
|
|
|
+ 无
|
|
|
+ </a-radio-button>
|
|
|
+ </a-radio-group>
|
|
|
+ </div>
|
|
|
<div v-if="form.gateFlag && form.gateFlag === '1'">
|
|
|
<v-select
|
|
|
size="small"
|
|
@@ -62,33 +55,61 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</a-form-model-item>
|
|
|
+ <a-form-model-item label="规则简称" prop="description">
|
|
|
+ <a-input
|
|
|
+ size="small"
|
|
|
+ id="promotionList-description"
|
|
|
+ v-model.trim="form.description"
|
|
|
+ allowClear
|
|
|
+ placeholder="请输入规则简称(最多20个字符)"
|
|
|
+ :maxLength="20"></a-input>
|
|
|
+ </a-form-model-item>
|
|
|
<a-form-model-item label="满赠规则" prop="regularSameFlag">
|
|
|
- <div class="ruleDescList">
|
|
|
- <a-select default-value="1" v-model="form.regularSameFlag" style="width: 100px" size="small" @change="handleFullGift">
|
|
|
- <a-select-option value="1">
|
|
|
- 同款
|
|
|
- </a-select-option>
|
|
|
- <a-select-option value="0">
|
|
|
- 不同款
|
|
|
- </a-select-option>
|
|
|
- </a-select>
|
|
|
- 产品购买满
|
|
|
- <a-input-number
|
|
|
- v-model="form.regularQty"
|
|
|
- :min="0"
|
|
|
- :step="1"
|
|
|
- :max="999999"
|
|
|
- :precision="0"
|
|
|
- size="small"/>
|
|
|
- 个正价产品,送
|
|
|
- <a-input-number
|
|
|
- v-model="form.promotionQty"
|
|
|
- :min="0"
|
|
|
- :step="1"
|
|
|
- :precision="0"
|
|
|
- :max="999999"
|
|
|
- size="small"/>
|
|
|
- 个促销产品
|
|
|
+ <div class="fullGiftRuleBox">
|
|
|
+ <div class="ruleDescList" v-for="(con,i) in fullGiftRuleList" :key="i">
|
|
|
+ <span>{{ i*1+1 }}、</span>
|
|
|
+ <a-select
|
|
|
+ default-value="1"
|
|
|
+ :disabled="i!=0"
|
|
|
+ v-model="form.regularSameFlag"
|
|
|
+ style="width: 100px"
|
|
|
+ size="small"
|
|
|
+ @change="handleFullGift">
|
|
|
+ <a-select-option value="1">
|
|
|
+ 同款
|
|
|
+ </a-select-option>
|
|
|
+ <a-select-option value="0">
|
|
|
+ 不同款
|
|
|
+ </a-select-option>
|
|
|
+ </a-select>
|
|
|
+ 产品购买满
|
|
|
+ <a-input-number
|
|
|
+ v-model="con.regularValue"
|
|
|
+ :min="0"
|
|
|
+ :step="1"
|
|
|
+ :max="999999"
|
|
|
+ :precision="0"
|
|
|
+ size="small"/>
|
|
|
+ <a-select default-value="YUAN" :disabled="i!=0" v-model="form.regularUnit" style="width: 50px;margin-left:5px;" size="small">
|
|
|
+ <a-select-option value="YUAN">
|
|
|
+ 元
|
|
|
+ </a-select-option>
|
|
|
+ <a-select-option value="GE">
|
|
|
+ 个
|
|
|
+ </a-select-option>
|
|
|
+ </a-select>
|
|
|
+ 正价产品,送
|
|
|
+ <a-input-number
|
|
|
+ v-model="con.promotionValue"
|
|
|
+ :min="0"
|
|
|
+ :step="1"
|
|
|
+ :precision="0"
|
|
|
+ :max="999999"
|
|
|
+ size="small"/>
|
|
|
+ 个促销产品
|
|
|
+ <a-button type="link" v-if="i==0&&fullGiftRuleList&&fullGiftRuleList.length<5" class="button-info" @click="addFullGiftRule">+新增</a-button>
|
|
|
+ <a-button type="link" v-if="i!=0" class="button-error" @click="delFullGiftRule(con)">删除</a-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<div class="ruleDescList">
|
|
|
<a-checkbox :checked="form.restrictFlag === '1'" size="small" @change="onChange">
|
|
@@ -101,7 +122,11 @@
|
|
|
:step="1"
|
|
|
:max="999999"
|
|
|
:precision="0"
|
|
|
- size="small"/>
|
|
|
+ size="small"
|
|
|
+ style="margin-right:10px;"/>
|
|
|
+ <a-checkbox :checked="form.convertExpenseFlag==='1'" size="small" @change="onChangeConvert">
|
|
|
+ 可转费用报销单
|
|
|
+ </a-checkbox>
|
|
|
</div>
|
|
|
</a-form-model-item>
|
|
|
<a-form-model-item label="数量叠加" prop="accrualFlag">
|
|
@@ -115,80 +140,30 @@
|
|
|
</a-radio-group>
|
|
|
<span style="color:gray;">(如:满10送2,数量叠加则:满20送4,满30送6)</span>
|
|
|
</a-form-model-item>
|
|
|
- <a-form-model-item prop="minOrderFlag">
|
|
|
- <span slot="label">
|
|
|
- <!-- <a-tooltip title="What do you want others to call you?">
|
|
|
- <a-icon type="info-circle" />
|
|
|
- </a-tooltip> -->
|
|
|
- 订单起订金额
|
|
|
- </span>
|
|
|
- <a-select v-model="form.minOrderFlag" style="width: 160px" size="small">
|
|
|
- <a-select-option value="0">
|
|
|
- 不限
|
|
|
- </a-select-option>
|
|
|
- <a-select-option value="1">
|
|
|
- 限制
|
|
|
- </a-select-option>
|
|
|
- </a-select>
|
|
|
- <a-input-number
|
|
|
- v-show="form.minOrderFlag && form.minOrderFlag=='1'"
|
|
|
- size="small"
|
|
|
- style="margin-left:10px;width:300px;"
|
|
|
- v-model="form.minOrderAmount"
|
|
|
- :min="0"
|
|
|
- :max="999999"
|
|
|
- :step="1"
|
|
|
- :precision="2"
|
|
|
- placeholder="请输入金额"/>
|
|
|
- </a-form-model-item>
|
|
|
- <a-form-model-item prop="upperLimitFlag">
|
|
|
- <span slot="label">
|
|
|
- <!-- <a-tooltip title="What do you want others to call you?">
|
|
|
- <a-icon type="info-circle" />
|
|
|
- </a-tooltip> -->
|
|
|
- 活动经费上限
|
|
|
- </span>
|
|
|
- <a-select v-model="form.upperLimitFlag" style="width: 160px" size="small">
|
|
|
- <a-select-option value="0">
|
|
|
- 不限
|
|
|
- </a-select-option>
|
|
|
- <a-select-option value="1">
|
|
|
- 限制
|
|
|
- </a-select-option>
|
|
|
- </a-select>
|
|
|
- <a-input-number
|
|
|
- v-show="form.upperLimitFlag&&form.upperLimitFlag=='1'"
|
|
|
- size="small"
|
|
|
- style="margin-left:10px;width:300px;"
|
|
|
- v-model="form.upperLimitAmount"
|
|
|
- :min="0"
|
|
|
- :step="1"
|
|
|
- :max="999999"
|
|
|
- :precision="2"
|
|
|
- placeholder="请输入金额"/>
|
|
|
- </a-form-model-item>
|
|
|
<a-form-model-item label="促销品与正品一致" prop="regularPromotionSameFlag">
|
|
|
- <a-radio-group v-model="form.regularPromotionSameFlag" button-style="solid" size="small" :disabled="form.regularSameFlag==0">
|
|
|
- <a-radio value="1">
|
|
|
- 是
|
|
|
- </a-radio>
|
|
|
- <a-radio value="0">
|
|
|
- 否
|
|
|
- </a-radio>
|
|
|
- </a-radio-group>
|
|
|
+ <div class="fixWidthBox">
|
|
|
+ <a-radio-group v-model="form.regularPromotionSameFlag" button-style="solid" size="small" :disabled="form.regularSameFlag==0">
|
|
|
+ <a-radio-button value="1">
|
|
|
+ 是
|
|
|
+ </a-radio-button>
|
|
|
+ <a-radio-button value="0">
|
|
|
+ 否
|
|
|
+ </a-radio-button>
|
|
|
+ </a-radio-group>
|
|
|
+ </div>
|
|
|
</a-form-model-item>
|
|
|
</a-form-model>
|
|
|
<a-card size="small" :bordered="false" class="pages-wrap">
|
|
|
<div class="flex">
|
|
|
- <a-radio-group v-model="chooseVal" button-style="solid">
|
|
|
+ <a-radio-group v-model="chooseVal" button-style="solid" @change="onChooseVal">
|
|
|
<a-radio-button value="a" v-show="form.gateFlag==='1'">
|
|
|
门槛产品
|
|
|
</a-radio-button>
|
|
|
<a-radio-button value="b">
|
|
|
正价产品
|
|
|
</a-radio-button>
|
|
|
- <a-radio-button value="c" v-show="form.regularPromotionSameFlag==='0'">
|
|
|
- 促销产品
|
|
|
+ <a-radio-button :value="'c'+i" v-for="(item,i) in fullGiftRuleList" :key="i" v-show="form.regularPromotionSameFlag==='0'">
|
|
|
+ {{ i==0?'促销产品':'阶梯'+i+'促销产品' }}
|
|
|
</a-radio-button>
|
|
|
</a-radio-group>
|
|
|
<a-button
|
|
@@ -200,7 +175,7 @@
|
|
|
</div>
|
|
|
<div v-show="chooseVal=='a'"><tableType1 ref="cillProduct"></tableType1></div>
|
|
|
<div v-show="chooseVal=='b'"><tableType1 ref="normalPriceProduct"></tableType1></div>
|
|
|
- <div v-show="chooseVal=='c'"><tableType2 ref="offerProduct"></tableType2></div>
|
|
|
+ <div v-show="chooseVal==('c'+i)" v-for="(item,i) in fullGiftRuleList" :key="i" ><tableType1 :ref="'offerProduct'+i"></tableType1></div>
|
|
|
</a-card>
|
|
|
<div class="btn-cont">
|
|
|
<a-button id="promotionList-basicInfo-modal-back" @click="isShow = false">取消</a-button>
|
|
@@ -245,32 +220,32 @@ export default {
|
|
|
labelCol: { span: 4 },
|
|
|
wrapperCol: { span: 17 }
|
|
|
},
|
|
|
+ fullGiftRuleList: [{
|
|
|
+ regularValue: undefined,
|
|
|
+ promotionValue: undefined
|
|
|
+ }],
|
|
|
form: {
|
|
|
+ giveRuleType: 'RATIO', // 满赠规则类型: SUM_MONEY[金额叠加] / RATIO[按比例] 满产品送产品写死为: 按比例
|
|
|
promotionRuleType: 'BUY_PROD_GIVE_PROD', // 买产品送产品
|
|
|
description: '', // 简称
|
|
|
gateFlag: '0', // 门槛
|
|
|
gateType: undefined,
|
|
|
gateAmount: undefined,
|
|
|
quotaAmount: undefined,
|
|
|
- regularSameFlag: '1', // 满赠规则 不同款商品
|
|
|
- regularQty: undefined,
|
|
|
- promotionQty: undefined,
|
|
|
+ regularSameFlag: '1', // 满赠规则 同款不同款商品
|
|
|
+ regularUnit: 'YUAN',
|
|
|
restrictFlag: '0', // 限制正价产品款数
|
|
|
+ convertExpenseFlag: '0', // 转费用报销标记
|
|
|
restrictCategory: '',
|
|
|
accrualFlag: '1', // 数量叠加
|
|
|
- minOrderFlag: '0', // 起订金额
|
|
|
- minOrderAmount: undefined,
|
|
|
- upperLimitFlag: '0', // 活动经费上限
|
|
|
- upperLimitAmount: undefined,
|
|
|
- regularPromotionSameFlag: '1'
|
|
|
+ regularPromotionSameFlag: '1',
|
|
|
+ giftProductMap: {}
|
|
|
},
|
|
|
rules: {
|
|
|
description: [ { required: true, message: '请输入规则简称', trigger: 'blur' } ],
|
|
|
gateFlag: [ { required: true, message: '请选择规则门槛', trigger: 'change' } ],
|
|
|
regularSameFlag: [{ required: true, message: '请选择满赠规则', trigger: 'change' }],
|
|
|
accrualFlag: [{ required: true, message: '请选择数量是否叠加', trigger: 'change' }],
|
|
|
- minOrderFlag: [{ required: true, message: '请选择订单起订金额', trigger: 'change' }],
|
|
|
- upperLimitFlag: [{ required: true, message: '请选择活动经费上限', trigger: 'change' }],
|
|
|
regularPromotionSameFlag: [{ required: true, message: '请选择促销品与正品是否一致', trigger: 'change' }]
|
|
|
},
|
|
|
chooseVal: 'a',
|
|
@@ -278,6 +253,22 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ onChooseVal (e) {
|
|
|
+ this.chooseVal = e.target.value
|
|
|
+ },
|
|
|
+ // 新增 满减规则 最多能添加五个
|
|
|
+ addFullGiftRule () {
|
|
|
+ const obj = {
|
|
|
+ regularValue: undefined,
|
|
|
+ promotionValue: undefined
|
|
|
+ }
|
|
|
+ this.fullGiftRuleList.push(obj)
|
|
|
+ },
|
|
|
+ // 删除满减规则
|
|
|
+ delFullGiftRule (con) {
|
|
|
+ const pos = this.fullGiftRuleList.findIndex(item => { return item.scopeLevel == con.scopeLevel })
|
|
|
+ this.fullGiftRuleList.splice(pos, 1)
|
|
|
+ },
|
|
|
// 满赠 同款 促销品与正品一致 默认是 可修改
|
|
|
// 不同款 默认否 不可修改
|
|
|
handleFullGift (e) {
|
|
@@ -299,17 +290,18 @@ export default {
|
|
|
onChange (e) {
|
|
|
this.form.restrictFlag = e.target.checked ? '1' : '0'
|
|
|
},
|
|
|
+ onChangeConvert (e) {
|
|
|
+ this.form.convertExpenseFlag = e.target.checked ? '1' : '0'
|
|
|
+ },
|
|
|
// 门槛切换 tab 按钮默认显示问题
|
|
|
changeGateFlag (e) {
|
|
|
- if (this.chooseVal != 'c') {
|
|
|
- if (e.target.value == '0') {
|
|
|
- this.chooseVal = 'b'
|
|
|
- this.form.gateType = undefined
|
|
|
- this.form.gateAmount = undefined
|
|
|
- this.form.quotaAmount = undefined
|
|
|
- } else {
|
|
|
- this.chooseVal = 'a'
|
|
|
- }
|
|
|
+ if (e.target.value == '0') {
|
|
|
+ this.chooseVal = 'b'
|
|
|
+ this.form.gateType = undefined
|
|
|
+ this.form.gateAmount = undefined
|
|
|
+ this.form.quotaAmount = undefined
|
|
|
+ } else {
|
|
|
+ this.chooseVal = 'a'
|
|
|
}
|
|
|
},
|
|
|
changeGateTypeFlag (val) {
|
|
@@ -337,36 +329,15 @@ export default {
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
- if (!_this.form.regularQty || !_this.form.promotionQty) {
|
|
|
- _this.$message.warning('满赠规则条件不能为空!')
|
|
|
- return
|
|
|
- }
|
|
|
if (_this.form.restrictFlag === '1' && !_this.form.restrictCategory) {
|
|
|
_this.$message.warning('请输入限制正价产品款数个数!')
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- if (_this.form.minOrderFlag == 1 && !_this.form.minOrderAmount) {
|
|
|
- _this.$message.warning('请输入订单起订限制金额数!')
|
|
|
- return
|
|
|
- }
|
|
|
- if (_this.form.minOrderFlag == 0) {
|
|
|
- _this.form.minOrderAmount = undefined
|
|
|
- }
|
|
|
-
|
|
|
- if (_this.form.upperLimitFlag == 1 && !_this.form.upperLimitAmount) {
|
|
|
- _this.$message.warning('请输入活动经费上限金额!')
|
|
|
- return
|
|
|
- }
|
|
|
- if (_this.form.upperLimitFlag == 0) {
|
|
|
- _this.form.upperLimitAmount = undefined
|
|
|
- }
|
|
|
-
|
|
|
- const form = JSON.parse(JSON.stringify(_this.form))
|
|
|
+ var form = JSON.parse(JSON.stringify(_this.form))
|
|
|
let rowFlag1 = null
|
|
|
let rowFlag2 = null
|
|
|
- let rowFlag3 = null
|
|
|
- if (form.gateFlag == '1') {
|
|
|
+ const rowFlag3 = null
|
|
|
+ if (form.gateFlag == '1') { // 门槛产品
|
|
|
form.gateProductList = this.$refs.cillProduct.getResultVal()
|
|
|
form.gateAmount = form.gateType === 'RATIO_AMOUNT' ? form.gateAmount / 100 : form.gateAmount
|
|
|
if (form.gateProductList.length == 0) {
|
|
@@ -382,11 +353,9 @@ export default {
|
|
|
}
|
|
|
} else {
|
|
|
form.gateProductList = []
|
|
|
- form.gateAmount = ''
|
|
|
- form.quotaAmount = ''
|
|
|
form.gateType = undefined
|
|
|
}
|
|
|
-
|
|
|
+ // 正价产品
|
|
|
form.regularProductList = this.$refs.normalPriceProduct.getResultVal()
|
|
|
// 判断表格必填
|
|
|
if (form.regularProductList.length == 0) {
|
|
@@ -398,10 +367,14 @@ export default {
|
|
|
_this.$message.warning('订单起订量设置不能为空!')
|
|
|
return
|
|
|
}
|
|
|
- rowFlag3 = _this.isJudge(form.regularProductList)
|
|
|
+ rowFlag2 = _this.isJudge(form.regularProductList)
|
|
|
}
|
|
|
- if (form.regularPromotionSameFlag == '0') {
|
|
|
- form.giftProductList = this.$refs.offerProduct.getResultVal()
|
|
|
+ if (form.regularPromotionSameFlag === '0') { // 促销产品 阶梯促销产品
|
|
|
+ const allGiftObj = {}
|
|
|
+ _this.fullGiftRuleList.forEach((val, i) => {
|
|
|
+ allGiftObj['GIFT' + i] = _this.$refs['offerProduct' + i][0].getResultVal()
|
|
|
+ })
|
|
|
+
|
|
|
if (form.giftProductList.length == 0) {
|
|
|
_this.$message.warning('请添加促销产品!')
|
|
|
return
|
|
@@ -468,15 +441,9 @@ export default {
|
|
|
gateAmount: undefined,
|
|
|
quotaAmount: undefined,
|
|
|
regularSameFlag: '1', // 满赠规则 不同款商品
|
|
|
- regularQty: undefined,
|
|
|
- promotionQty: undefined,
|
|
|
restrictFlag: '0', // 限制正价产品款数
|
|
|
restrictCategory: '',
|
|
|
accrualFlag: '1', // 数量叠加
|
|
|
- minOrderFlag: '0', // 起订金额
|
|
|
- minOrderAmount: undefined,
|
|
|
- upperLimitFlag: '0', // 活动经费上限
|
|
|
- upperLimitAmount: undefined,
|
|
|
regularPromotionSameFlag: '1',
|
|
|
gateProductList: undefined,
|
|
|
giftProductList: undefined,
|
|
@@ -486,7 +453,7 @@ export default {
|
|
|
this.$refs.ruleForm.resetFields()
|
|
|
this.$refs.cillProduct.reSetTableData()
|
|
|
this.$refs.normalPriceProduct.reSetTableData()
|
|
|
- this.$refs.offerProduct.reSetTableData()
|
|
|
+ this.$refs.offerProduct0.reSetTableData()
|
|
|
})
|
|
|
},
|
|
|
// 获取编辑详情
|
|
@@ -602,7 +569,7 @@ export default {
|
|
|
max-height: 745px !important;
|
|
|
overflow-y: scroll !important;
|
|
|
}
|
|
|
- .ant-radio-button-wrapper{
|
|
|
+ .fixWidthBox .ant-radio-button-wrapper{
|
|
|
width:80px;
|
|
|
text-align: center;
|
|
|
}
|