|
@@ -160,22 +160,12 @@
|
|
|
</a-form-model-item>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
|
- </a-form-model>
|
|
|
-
|
|
|
- <a-form-model
|
|
|
- id="setPromotion-form"
|
|
|
- ref="sellRuleForm"
|
|
|
- :model="sellForm"
|
|
|
- :rules="sellRules"
|
|
|
- class="setPromotion-form"
|
|
|
- :label-col="sellFormItemLayout.labelCol"
|
|
|
- :wrapper-col="sellFormItemLayout.wrapperCol">
|
|
|
<a-row v-if="form.contentType ==='LINK'&&form.linkType==='1'">
|
|
|
<a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
- <a-form-model-item label="基本规则" prop="ruleType">
|
|
|
+ <a-form-model-item label="基本规则" prop="promoRule.ruleType">
|
|
|
<v-select
|
|
|
style="width:40%;"
|
|
|
- v-model="sellForm.ruleType"
|
|
|
+ v-model="form.promoRule.ruleType"
|
|
|
placeholder="请选择基本规则"
|
|
|
id="promotionEdit-ruleType"
|
|
|
code="PROMO_ACTIVE_RULE_TYPE"
|
|
@@ -189,7 +179,7 @@
|
|
|
:disabled="isDisabled"
|
|
|
id="promotionEdit-ruleName"
|
|
|
:maxLength="20"
|
|
|
- v-model.trim="sellForm.ruleName"
|
|
|
+ v-model.trim="form.promoRule.ruleName"
|
|
|
placeholder="请输入券名称(最多20个字符)"
|
|
|
allowClear />
|
|
|
</a-form-model-item>
|
|
@@ -200,7 +190,7 @@
|
|
|
:disabled="isDisabled"
|
|
|
id="promotionEdit-ruleTitle"
|
|
|
:maxLength="20"
|
|
|
- v-model.trim="sellForm.ruleTitle"
|
|
|
+ v-model.trim="form.promoRule.ruleTitle"
|
|
|
placeholder="请输入券副标题(最多20个字符)"
|
|
|
allowClear />
|
|
|
</a-form-model-item>
|
|
@@ -209,7 +199,7 @@
|
|
|
<a-form-model-item label="生成方式" prop="ruleBaseType">
|
|
|
<v-select
|
|
|
style="width:40%;"
|
|
|
- v-model="sellForm.ruleBaseType"
|
|
|
+ v-model="form.promoRule.ruleBaseType"
|
|
|
id="promotionEdit-ruleBaseType"
|
|
|
code="PROMO_RULE_BASE_TYPE"
|
|
|
:disabled="isDisabled"
|
|
@@ -220,7 +210,7 @@
|
|
|
<a-form-model-item label="券有效期" prop="validType">
|
|
|
<v-select
|
|
|
style="width:40%;"
|
|
|
- v-model="sellForm.validType"
|
|
|
+ v-model="form.promoRule.validType"
|
|
|
placeholder="请选择券有效期"
|
|
|
id="promotionEdit-validType"
|
|
|
code="PROMO_RULE_TICKET_TYPE"
|
|
@@ -228,7 +218,7 @@
|
|
|
@change="handleValidType"
|
|
|
allowClear></v-select>
|
|
|
<a-range-picker
|
|
|
- v-show="sellForm.validType==='FIXED'"
|
|
|
+ v-show="form.promoRule.validType==='FIXED'"
|
|
|
style="width:40%;margin-left:10px;"
|
|
|
v-model="time"
|
|
|
:format="dateFormat"
|
|
@@ -236,10 +226,10 @@
|
|
|
:disabled="isDisabled"
|
|
|
:disabled-date="disabledDate"
|
|
|
:placeholder="['开始时间', '结束时间']" />
|
|
|
- <span style="width:40%;margin-left:10px;" v-show="sellForm.validType==='LIMIT'">
|
|
|
+ <span style="width:40%;margin-left:10px;" v-show="form.promoRule.validType==='LIMIT'">
|
|
|
有效期<a-input-number
|
|
|
style="margin:0 5px;"
|
|
|
- v-model="sellForm.validDays"
|
|
|
+ v-model="form.promoRule.validDays"
|
|
|
:step="1"
|
|
|
:max="99999999"
|
|
|
:min="1"
|
|
@@ -256,7 +246,7 @@
|
|
|
<a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
<a-form-model-item label="使用说明" prop="ruleExplain">
|
|
|
<a-input
|
|
|
- v-model="sellForm.ruleExplain"
|
|
|
+ v-model="form.promoRule.ruleExplain"
|
|
|
:disabled="isDisabled"
|
|
|
type="textarea"
|
|
|
placeholder="请输入使用说明(最多50个字符)"
|
|
@@ -270,7 +260,7 @@
|
|
|
<a-form-model-item label="产品范围">
|
|
|
<div id="setPromotion-productRange" style="position:relative;">
|
|
|
<a-tree-select
|
|
|
- v-model="sellForm.productRangeList"
|
|
|
+ v-model="form.promoRule.productRangeList"
|
|
|
:maxTagCount="12"
|
|
|
:tree-data="productTypeList"
|
|
|
tree-checkable
|
|
@@ -287,7 +277,7 @@
|
|
|
<div class="productInfo flex-center">
|
|
|
<div>
|
|
|
返券金额<a-input-number
|
|
|
- v-model="sellForm.ruleValue"
|
|
|
+ v-model="form.promoRule.ruleValue"
|
|
|
style="margin:0 5px;"
|
|
|
:min="0"
|
|
|
:step="1"
|
|
@@ -313,7 +303,7 @@
|
|
|
:lg="24"
|
|
|
:xl="24">
|
|
|
<a-form-model-item label="加盟商编辑" prop="dealerEditFlag">
|
|
|
- <a-radio-group button-style="solid" :disabled="isDisabled" v-model="sellForm.dealerEditFlag">
|
|
|
+ <a-radio-group button-style="solid" :disabled="isDisabled" v-model="form.promoRule.dealerEditFlag">
|
|
|
<a-radio-button value="1">
|
|
|
是
|
|
|
</a-radio-button>
|
|
@@ -325,7 +315,7 @@
|
|
|
</a-col>
|
|
|
<a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
<a-form-model-item label="是否发布" prop="publishFlag">
|
|
|
- <a-radio-group button-style="solid" v-model="sellForm.publishFlag">
|
|
|
+ <a-radio-group button-style="solid" v-model="form.promoRule.publishFlag">
|
|
|
<a-radio-button value="1">
|
|
|
是
|
|
|
</a-radio-button>
|
|
@@ -385,11 +375,6 @@ export default {
|
|
|
labelCol: { span: 2 },
|
|
|
wrapperCol: { span: 20 }
|
|
|
},
|
|
|
- // 第二个表单 label 设置
|
|
|
- sellFormItemLayout: {
|
|
|
- labelCol: { span: 2 }, // 文字前距离设置
|
|
|
- wrapperCol: { span: 20 }// 表单后距离设置 数字越大距离越小
|
|
|
- },
|
|
|
form: {
|
|
|
promoActiveSn: undefined, // 促销活动sn
|
|
|
title: '', // 标题
|
|
@@ -401,23 +386,21 @@ export default {
|
|
|
sort: undefined, // 排序
|
|
|
publishFlag: '0', // 是否发布
|
|
|
dealerEditFlag: '0', // 加盟商编辑 1是 0否
|
|
|
- promoRule: {} // 链接配置内容
|
|
|
- },
|
|
|
- // 参数配置数据
|
|
|
- sellForm: {
|
|
|
- ruleType: 'ticket', // 基本规则类型
|
|
|
- productRangeList: [], // 产品范围列表
|
|
|
- ruleName: '', // 券名称
|
|
|
- ruleTitle: '', // 副标题
|
|
|
- ruleBaseType: 'category', // 券生成方式
|
|
|
- ruleExplain: '', // 使用说明
|
|
|
- validType: undefined, // 券有效期类型
|
|
|
- validStartDate: undefined, // 券生效时间
|
|
|
- validEndDate: undefined, // 券失效时间
|
|
|
- validDays: undefined, // 券有效期天数
|
|
|
- dealerEditFlag: '0', // 加盟商编辑 1是 0否
|
|
|
- publishFlag: '0', // 是否发布
|
|
|
- range: '1'
|
|
|
+ promoRule: {
|
|
|
+ ruleType: 'ticket', // 基本规则类型
|
|
|
+ productRangeList: [], // 产品范围列表
|
|
|
+ ruleName: '', // 券名称
|
|
|
+ ruleTitle: '', // 副标题
|
|
|
+ ruleBaseType: 'category', // 券生成方式
|
|
|
+ ruleExplain: '', // 使用说明
|
|
|
+ validType: undefined, // 券有效期类型
|
|
|
+ validStartDate: undefined, // 券生效时间
|
|
|
+ validEndDate: undefined, // 券失效时间
|
|
|
+ validDays: undefined, // 券有效期天数
|
|
|
+ dealerEditFlag: '0', // 加盟商编辑 1是 0否
|
|
|
+ publishFlag: '0', // 是否发布
|
|
|
+ range: '1'
|
|
|
+ } // 链接配置内容
|
|
|
},
|
|
|
time: [], // 有效期
|
|
|
dateFormat: 'YYYY-MM-DD', // 有效期时间格式
|
|
@@ -436,14 +419,13 @@ export default {
|
|
|
contentType: [{ required: true, message: '请选择内容类型', trigger: 'change' }],
|
|
|
content: [{ required: true, message: '请输入对应内容', trigger: ['blur', 'change'] }],
|
|
|
contentLink: [{ required: true, message: '请输入对应内容', trigger: 'blur' }],
|
|
|
- publishFlag: [{ required: true, message: '请选择是否发布', trigger: 'change' }]
|
|
|
- },
|
|
|
- sellRules: {
|
|
|
- ruleType: [{ required: true, message: '请选择基本规则', trigger: 'change' }],
|
|
|
- ruleName: [{ required: true, message: '请输入券名称', trigger: ['change', 'blur'] }],
|
|
|
- ruleBaseType: [{ required: true, message: '请选择生成方式', trigger: 'change' }],
|
|
|
- validType: [{ required: true, message: '请选择券有效期类型', trigger: 'change' }],
|
|
|
publishFlag: [{ required: true, message: '请选择是否发布', trigger: 'change' }],
|
|
|
+ 'promoRule.ruleType': [{ required: true, message: '请选择基本规则', trigger: 'change' }],
|
|
|
+ 'promoRule.ruleName': [{ required: true, message: '请输入券名称', trigger: ['change', 'blur'] }],
|
|
|
+ 'promoRule.ruleBaseType': [{ required: true, message: '请选择生成方式', trigger: 'change' }],
|
|
|
+ 'promoRule.validType': [{ required: true, message: '请选择券有效期类型', trigger: 'change' }],
|
|
|
+ 'promoRule.publishFlag': [{ required: true, message: '请选择是否发布', trigger: 'change' }],
|
|
|
+ 'promoRule.dealerEditFlag': [{ required: true, message: '请选择加盟商是否可编辑', trigger: 'change' }],
|
|
|
dealerEditFlag: [{ required: true, message: '请选择加盟商是否可编辑', trigger: 'change' }]
|
|
|
// range: [{ required: true, message: '请选择', trigger: 'blur' }]
|
|
|
}
|
|
@@ -457,8 +439,8 @@ export default {
|
|
|
dateChange (date, dateString) {
|
|
|
this.time = date
|
|
|
if (dateString[0] != '' && dateString[1] != '') {
|
|
|
- this.sellForm.validStartDate = dateString[0] + ' 00:00:00'
|
|
|
- this.sellForm.validEndDate = dateString[1] + ' 23:59:59'
|
|
|
+ this.form.promoRule.validStartDate = dateString[0] + ' 00:00:00'
|
|
|
+ this.form.promoRule.validEndDate = dateString[1] + ' 23:59:59'
|
|
|
}
|
|
|
},
|
|
|
// 打开产品弹窗
|
|
@@ -470,7 +452,6 @@ export default {
|
|
|
}
|
|
|
this.showProModal = true
|
|
|
},
|
|
|
-
|
|
|
closeProductModal () {
|
|
|
this.showProModal = false
|
|
|
},
|
|
@@ -486,8 +467,8 @@ export default {
|
|
|
// 编辑按钮时,publishState 已发布,只能编辑是否发布;publishState已关闭,都可以编辑
|
|
|
if (_this.pageType === 'edit') {
|
|
|
_this.isDisabled = res.data.publishState === 'PUBLISH'
|
|
|
- _this.sellForm.publishFlag = res.data.publishFlag
|
|
|
- _this.sellForm.dealerEditFlag = res.data.dealerEditFlag
|
|
|
+ _this.form.promoRule.publishFlag = res.data.publishFlag
|
|
|
+ _this.form.promoRule.dealerEditFlag = res.data.dealerEditFlag
|
|
|
}
|
|
|
_this.form.publishFlag = res.data.publishFlag
|
|
|
_this.form.dealerEditFlag = res.data.dealerEditFlag
|
|
@@ -517,12 +498,12 @@ export default {
|
|
|
_this.form.linkType = res.data.content != '/pagesB/promoDetail' ? '2' : '1'
|
|
|
if (res.data.promoRule) {
|
|
|
_this.isShowNextStep = true
|
|
|
- _this.sellForm.range = '1'
|
|
|
+ _this.form.promoRule.range = '1'
|
|
|
_this.time = [res.data.promoRule.validStartDate, res.data.promoRule.validEndDate]
|
|
|
if (res.data.promoRule.productRangeList && res.data.promoRule.productRangeList.productRangeList.length > 0) {
|
|
|
- _this.sellForm.productRangeList = res.data.promoRule.productRangeList.map(item => { return item.productTypeSn })
|
|
|
+ _this.form.promoRule.productRangeList = res.data.promoRule.productRangeList.map(item => { return item.productTypeSn })
|
|
|
}
|
|
|
- _this.sellForm = res.data.promoRule
|
|
|
+ _this.form.promoRule = res.data.promoRule
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -533,48 +514,14 @@ export default {
|
|
|
const _this = this
|
|
|
if (_this.form.contentType === 'LINK') {
|
|
|
_this.form.content = _this.form.contentLink
|
|
|
- // 验证组件必填项
|
|
|
- _this.$refs.ruleForm.validate(valid => {
|
|
|
- if (valid) {
|
|
|
- // 验证设置参数必填项
|
|
|
- _this.testAndVerify(function (res) {
|
|
|
- if (res) {
|
|
|
- _this.savePartInfo(type)
|
|
|
- }
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
- } else {
|
|
|
- _this.$refs.ruleForm.validate(valid => {
|
|
|
- if (valid) {
|
|
|
- _this.savePartInfo(type)
|
|
|
- }
|
|
|
- })
|
|
|
}
|
|
|
- },
|
|
|
- testAndVerify (callBack) {
|
|
|
- this.$refs.sellRuleForm.validate(valid => {
|
|
|
+ // 验证组件必填项
|
|
|
+ _this.$refs.ruleForm.validate(valid => {
|
|
|
if (valid) {
|
|
|
- callBack(valid)
|
|
|
- } else {
|
|
|
- return false
|
|
|
+ _this.savePartInfo(type)
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- // 保存部分参数
|
|
|
- // handlePartSave () {
|
|
|
- // const _this = this
|
|
|
- // _this.$refs.ruleForm.validate(valid => {
|
|
|
- // if (valid) {
|
|
|
- // // 验证设置参数必填项
|
|
|
- // _this.testAndVerify(function (res) {
|
|
|
- // if (res) {
|
|
|
- // _this.savePartInfo()
|
|
|
- // }
|
|
|
- // })
|
|
|
- // }
|
|
|
- // })
|
|
|
- // },
|
|
|
// 券有效期 change
|
|
|
handleValidType (con) {
|
|
|
this.sellForm.validType = con
|
|
@@ -591,37 +538,38 @@ export default {
|
|
|
_this.form.promoActiveSn = this.$route.params.sn
|
|
|
var formData = JSON.parse(JSON.stringify(_this.form))
|
|
|
formData.imageSet = formData.imageSet ? formData.imageSet.split(',') : []
|
|
|
- formData.promoRule = _this.sellForm
|
|
|
+
|
|
|
+ // 跳转链接
|
|
|
if (formData.contentType == 'LINK') {
|
|
|
delete formData.contentLink
|
|
|
if (formData.promoRule.productRangeList && formData.promoRule.productRangeList.length > 0) {
|
|
|
formData.promoRule.productRangeList = formData.promoRule.productRangeList.map(item => { return { productTypeSn: item } })
|
|
|
}
|
|
|
+ // 促销活动
|
|
|
if (_this.form.linkType === '1') {
|
|
|
- if (_this.sellForm.validType === 'FIXED') {
|
|
|
- if (!_this.sellForm.validStartDate || _this.sellForm.validStartDate.validEndDate) {
|
|
|
+ if (_this.form.promoRule.validType === 'FIXED') {
|
|
|
+ if (!_this.form.promoRule.validStartDate || _this.form.promoRule.validStartDate.validEndDate) {
|
|
|
_this.$message.warning('请输入券有效期!')
|
|
|
return false
|
|
|
}
|
|
|
} else {
|
|
|
- if (!_this.sellForm.validDays) {
|
|
|
+ if (!_this.form.promoRule.validDays) {
|
|
|
_this.$message.warning('请输入券有效期!')
|
|
|
return false
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ formData.promoRule = undefined
|
|
|
}
|
|
|
-
|
|
|
- formData.dealerEditFlag = _this.sellForm.dealerEditFlag
|
|
|
- formData.publishFlag = _this.sellForm.publishFlag
|
|
|
- console.log('11111111111111111111111:')
|
|
|
- debugger
|
|
|
const numInfo = _this.$refs.chooseProductList.getDataNum()
|
|
|
if (numInfo == 0) {
|
|
|
- if (!_this.sellForm.validDays) {
|
|
|
+ if (!_this.form.promoRule.validDays) {
|
|
|
_this.$message.warning('请选择返券产品!')
|
|
|
return false
|
|
|
}
|
|
|
}
|
|
|
+ } else {
|
|
|
+ formData.promoRule = undefined
|
|
|
}
|
|
|
_this.spinning = true
|
|
|
promoActivePublish(formData).then(res => {
|
|
@@ -678,23 +626,21 @@ export default {
|
|
|
publishFlag: '0', // 是否发布
|
|
|
dealerEditFlag: '0', // 加盟商编辑 1是 0否
|
|
|
ruleEnableFlag: '1',
|
|
|
- promoRule: {} // 链接配置内容
|
|
|
- }
|
|
|
- // 参数配置数据
|
|
|
- this.sellForm = {
|
|
|
- ruleType: 'ticket', // 基本规则类型
|
|
|
- productRangeList: [], // 产品范围列表
|
|
|
- ruleName: '', // 券名称
|
|
|
- ruleTitle: '', // 副标题
|
|
|
- ruleBaseType: 'category', // 券生成方式
|
|
|
- ruleExplain: '', // 使用说明
|
|
|
- validType: undefined, // 券有效期类型
|
|
|
- validStartDate: undefined, // 券生效时间
|
|
|
- validEndDate: undefined, // 券失效时间
|
|
|
- validDays: undefined, // 券有效期天数
|
|
|
- dealerEditFlag: '0', // 加盟商编辑 1是 0否
|
|
|
- publishFlag: '0', // 是否发布
|
|
|
- range: '1'
|
|
|
+ promoRule: {
|
|
|
+ ruleType: 'ticket', // 基本规则类型
|
|
|
+ productRangeList: [], // 产品范围列表
|
|
|
+ ruleName: '', // 券名称
|
|
|
+ ruleTitle: '', // 副标题
|
|
|
+ ruleBaseType: 'category', // 券生成方式
|
|
|
+ ruleExplain: '', // 使用说明
|
|
|
+ validType: undefined, // 券有效期类型
|
|
|
+ validStartDate: undefined, // 券生效时间
|
|
|
+ validEndDate: undefined, // 券失效时间
|
|
|
+ validDays: undefined, // 券有效期天数
|
|
|
+ dealerEditFlag: '0', // 加盟商编辑 1是 0否
|
|
|
+ publishFlag: '0', // 是否发布
|
|
|
+ range: '1'
|
|
|
+ } // 链接配置内容
|
|
|
}
|
|
|
this.isShowNextStep = false
|
|
|
this.isDisabled = false
|
|
@@ -743,7 +689,7 @@ export default {
|
|
|
},
|
|
|
// 添加产品
|
|
|
handleAddProduct () {
|
|
|
- this.chooseTypeList = this.sellForm.productRangeList
|
|
|
+ this.chooseTypeList = this.form.promoRule.productRangeList
|
|
|
this.showProModal = true
|
|
|
},
|
|
|
// 批量添加
|
|
@@ -759,10 +705,10 @@ export default {
|
|
|
const productArr = list.map(item => {
|
|
|
return {
|
|
|
promoActiveSn: this.$route.params.sn,
|
|
|
- promoRuleSn: this.sellForm.promoRuleSn,
|
|
|
+ promoRuleSn: this.form.promoRule.promoRuleSn,
|
|
|
productCode: item.code,
|
|
|
productSn: item.productSn,
|
|
|
- ruleValue: this.sellForm.ruleValue,
|
|
|
+ ruleValue: this.form.promoRule.ruleValue,
|
|
|
price: item.terminalPrice
|
|
|
}
|
|
|
})
|
|
@@ -775,7 +721,7 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
onChangeTree (e) {
|
|
|
- deleteByProductType({ promoActiveSn: this.$route.params.sn, productTypeSnList: this.sellForm.productRangeList || [] }).then(res => {
|
|
|
+ deleteByProductType({ promoActiveSn: this.$route.params.sn, productTypeSnList: this.form.promoRule.productRangeList || [] }).then(res => {
|
|
|
if (res.status == 200) {
|
|
|
this.$refs.chooseProductList.pageInit()
|
|
|
}
|