|
@@ -5,7 +5,7 @@
|
|
|
<!-- 自定义的二级文字标题 -->
|
|
|
<template slot="subTitle">
|
|
|
<a id="promotionEdit-back-btn" href="javascript:;" @click="handleBack"><a-icon type="left" />返回列表</a>
|
|
|
- <span v-if="pageType==='edit'" style="margin: 0 10px 0 20px;color: #666;font-size: 14px;font-weight: 600;">促销名称:{{ promotionName||'--' }}</span>
|
|
|
+ <span v-if="$route.params.sn" style="margin: 0 10px 0 20px;color: #666;font-size: 14px;font-weight: 600;">促销名称:{{ promotionName||'--' }}</span>
|
|
|
</template>
|
|
|
</a-page-header>
|
|
|
<!-- 表单 -->
|
|
@@ -20,20 +20,20 @@
|
|
|
>
|
|
|
<a-row>
|
|
|
<a-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
- <a-form-model-item label="轮播图名称" prop="title" :label-col="{span:4}" :wrapper-col="{span:16}">
|
|
|
+ <a-form-model-item label="轮播图名称" prop="bannerName" :label-col="{span:4}" :wrapper-col="{span:16}">
|
|
|
<a-input
|
|
|
- id="promotionEdit-title"
|
|
|
+ id="promotionEdit-bannerName"
|
|
|
:maxLength="30"
|
|
|
- v-model.trim="form.title"
|
|
|
+ v-model.trim="form.bannerName"
|
|
|
placeholder="请输入轮播图名称(最多30个字符)"
|
|
|
- :disabled="isDisabled"
|
|
|
allowClear/>
|
|
|
</a-form-model-item>
|
|
|
</a-col>
|
|
|
<a-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
- <a-form-model-item label="轮播时间" prop="sort" :label-col="{span:4}" :wrapper-col="{span:16}">
|
|
|
+ <a-form-model-item label="轮播时间" prop="time" :label-col="{span:4}" :wrapper-col="{span:16}">
|
|
|
<a-range-picker
|
|
|
- v-model="time"
|
|
|
+ v-model="form.time"
|
|
|
+ style="width:100%"
|
|
|
:format="dateFormat"
|
|
|
id="promotionEdit-time"
|
|
|
@change="dateChange"
|
|
@@ -42,10 +42,10 @@
|
|
|
:placeholder="['开始时间', '结束时间']" />
|
|
|
</a-form-model-item>
|
|
|
</a-col>
|
|
|
- <a-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12">
|
|
|
- <a-form-model-item label="轮播图排序" prop="sort" :label-col="{span:4}" :wrapper-col="{span:16}">
|
|
|
+ <a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
+ <a-form-model-item label="轮播图排序" prop="sort">
|
|
|
<a-input-number
|
|
|
- style="width:100%"
|
|
|
+ style="width:40%"
|
|
|
id="promotionEdit-sort"
|
|
|
:disabled="isDisabled"
|
|
|
allowClear
|
|
@@ -56,21 +56,21 @@
|
|
|
</a-form-model-item>
|
|
|
</a-col>
|
|
|
<a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
- <a-form-model-item label="参与经销商" prop="imageSet">
|
|
|
+ <a-form-model-item label="参与经销商" prop="allDealerFlag">
|
|
|
<a-row :gutter="15">
|
|
|
<a-col :md="10" :sm="24">
|
|
|
<a-select
|
|
|
style="width:98%;"
|
|
|
- id="promotionList-dealerScope"
|
|
|
- v-model="form.dealerScope"
|
|
|
+ id="promotionList-allDealerFlag"
|
|
|
+ v-model="form.allDealerFlag"
|
|
|
placeholder="请选择参与经销商"
|
|
|
@change="changeDealerScope"
|
|
|
allowClear>
|
|
|
- <a-select-option id="promotionList-dealerScope-all" value="ALL_DEALER">全部客户</a-select-option>
|
|
|
- <a-select-option id="promotionList-dealerScope-some" value="SOME_DEALER">部分客户</a-select-option>
|
|
|
+ <a-select-option id="promotionList-dealerScope-all" value="1">全部经销商</a-select-option>
|
|
|
+ <a-select-option id="promotionList-dealerScope-some" value="0">部分经销商</a-select-option>
|
|
|
</a-select>
|
|
|
</a-col>
|
|
|
- <a-col :md="2" :sm="24" v-show="form.dealerScope && form.dealerScope!='ALL_DEALER' ">
|
|
|
+ <a-col :md="2" :sm="24" v-show="form.allDealerFlag && form.allDealerFlag!='1' ">
|
|
|
<a-button id="promotionList-basicInfo-dealerScope" type="primary" :loading="spinning" @click="handleDealerModal">选择</a-button>
|
|
|
</a-col>
|
|
|
<a-col :md="5" :sm="24" v-show="chooseDealerList && chooseDealerList.length>0">
|
|
@@ -87,11 +87,11 @@
|
|
|
</a-form-model-item>
|
|
|
</a-col>
|
|
|
<a-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24">
|
|
|
- <a-form-model-item label="封面图片" prop="imageSet">
|
|
|
+ <a-form-model-item label="封面图片" prop="imageUrl">
|
|
|
<Upload
|
|
|
class="upload"
|
|
|
- id="promotionEdit-imageSet"
|
|
|
- v-model="form.imageSet"
|
|
|
+ id="promotionEdit-imageUrl"
|
|
|
+ v-model="form.imageUrl"
|
|
|
ref="imageSet"
|
|
|
:fileSize="10"
|
|
|
:maxNums="1"
|
|
@@ -107,8 +107,6 @@
|
|
|
id="promotion-contentType"
|
|
|
code="PROMO_CONTENT_TYPE"
|
|
|
showType="radio"
|
|
|
- :disabled="isDisabled"
|
|
|
- @change="changeContentType"
|
|
|
allowClear></v-select>
|
|
|
</a-form-model-item>
|
|
|
</a-col>
|
|
@@ -120,12 +118,9 @@
|
|
|
class="promotionEdit-editor"
|
|
|
@on-change="editorChange"
|
|
|
:cache="false"></editor>
|
|
|
- <!-- v-show="pageType === 'add'||(pageType === 'edit'&&!isDisabled)" -->
|
|
|
- <div v-if="(pageType === 'edit')&&isDisabled" class="box" v-html="form.content"></div>
|
|
|
</a-form-model-item>
|
|
|
<a-form-model-item label="上传视频" prop="content" v-show="form.contentType =='VIDEO'">
|
|
|
<Upload
|
|
|
- v-if="pageType==='add'||(pageType==='edit'&&!isDisabled)"
|
|
|
class="upload"
|
|
|
id="promotionEdit-videoSet"
|
|
|
v-model="form.content"
|
|
@@ -135,46 +130,18 @@
|
|
|
:maxNums="1"
|
|
|
@change="changeVideo"
|
|
|
></Upload>
|
|
|
- <div v-else>
|
|
|
- <video
|
|
|
- ref="videoPlayer"
|
|
|
- width="230"
|
|
|
- height="150"
|
|
|
- controls
|
|
|
- loop
|
|
|
- controlsList="nodownload">
|
|
|
- <source :src="form.content" type="video/mp4">
|
|
|
- </video>
|
|
|
- </div>
|
|
|
<span class="upload-desc">说明:文件最大100M;视频:mp4.avi.flv</span>
|
|
|
</a-form-model-item>
|
|
|
<a-form-model-item label="跳转链接" prop="contentLink" v-if="form.contentType =='LINK'">
|
|
|
<a-input
|
|
|
style="width:50%;"
|
|
|
- :disabled="form.linkType==='1'||(pageType==='edit'&&isDisabled)"
|
|
|
+ :disabled="true"
|
|
|
id="promotionEdit-contentLink"
|
|
|
:maxLength="100"
|
|
|
v-model.trim="form.contentLink"
|
|
|
placeholder="请输入跳转链接"
|
|
|
@blur="handleLink"
|
|
|
allowClear />
|
|
|
- <a-select
|
|
|
- id="promotionEdit-linkType"
|
|
|
- :disabled="isDisabled"
|
|
|
- default-value="货架促销"
|
|
|
- @change="handleLinkType"
|
|
|
- style="width: 120px;margin-left:10px;"
|
|
|
- v-model="form.linkType">
|
|
|
- <a-select-option value="1">
|
|
|
- 货架促销
|
|
|
- </a-select-option>
|
|
|
- <a-select-option value="2">
|
|
|
- 其他
|
|
|
- </a-select-option>
|
|
|
- </a-select>
|
|
|
- <!-- <span class="tip upload-desc">
|
|
|
- 选择【货架促销】,促销内容会同步显示在促销模块内
|
|
|
- </span> -->
|
|
|
</a-form-model-item>
|
|
|
</a-col>
|
|
|
</a-row>
|
|
@@ -189,7 +156,6 @@
|
|
|
id="productInfoEdit-submit-btn"
|
|
|
size="large"
|
|
|
@click="handleSave('all')"
|
|
|
- v-if="form.contentType !='LINK'|| isShowNextStep ||(form.contentType ==='LINK'&&form.linkType ==='2')"
|
|
|
style="padding: 0 60px;">保存</a-button>
|
|
|
</div>
|
|
|
<!-- 选择经销商 -->
|
|
@@ -207,6 +173,8 @@ import chooseDealer from './chooseDealer'
|
|
|
// 接口
|
|
|
import { productTypeQuery } from '@/api/productType'
|
|
|
import { promoActivePublish, promoActiveDetail, saveBatchEntity, promoCreateBatch, deleteByProductType } from '@/api/promoActive'
|
|
|
+import { saveShopBanner } from '@/api/shopBanner'
|
|
|
+
|
|
|
export default {
|
|
|
name: 'ProductBrandEditModal',
|
|
|
mixins: [commonMixin],
|
|
@@ -224,32 +192,19 @@ export default {
|
|
|
openDealerModal: false,
|
|
|
// 链接配置内容
|
|
|
form: {
|
|
|
- promoActiveSn: undefined, // 促销活动sn
|
|
|
- title: '', // 标题
|
|
|
- imageSet: '', // 图片
|
|
|
- contentType: 'IMAGE_CONTENT', // 内容类型
|
|
|
- content: '', // 内容
|
|
|
- contentLink: '', // 链接内容
|
|
|
+ bannerSn: undefined, // 轮播图sn
|
|
|
+ bannerName: '', // 轮播图名称
|
|
|
+ time: [], // 轮播时间
|
|
|
+ bannerStartDate: undefined,
|
|
|
+ bannerEndDate: undefined,
|
|
|
sort: undefined, // 排序
|
|
|
- publishFlag: '0', // 是否发布
|
|
|
- linkType: '1',
|
|
|
- dealerEditFlag: '0', // 加盟商编辑 1是 0否
|
|
|
- promoRule: {
|
|
|
- ruleType: 'ticket', // 基本规则类型
|
|
|
- ruleName: '', // 券名称
|
|
|
- ruleTitle: '', // 副标题
|
|
|
- ruleBaseType: 'category', // 券生成方式
|
|
|
- ruleExplain: '', // 使用说明
|
|
|
- validType: undefined, // 券有效期类型
|
|
|
- validStartDate: undefined, // 券生效时间
|
|
|
- validEndDate: undefined, // 券失效时间
|
|
|
- validDays: undefined, // 券有效期天数
|
|
|
- dealerEditFlag: '0', // 加盟商编辑 1是 0否
|
|
|
- publishFlag: '0', // 是否发布
|
|
|
- range: '1'
|
|
|
- }
|
|
|
+ allDealerFlag: '1', // 参与经销商 0 部分 1全部
|
|
|
+ dealerSnList: [], // 已选经销商sn列表
|
|
|
+ imageUrl: '', // 图片
|
|
|
+ contentType: 'IMAGE_CONTENT', // 内容类型
|
|
|
+ content: '' // 内容
|
|
|
},
|
|
|
- time: [], // 有效期
|
|
|
+
|
|
|
dateFormat: 'YYYY-MM-DD', // 有效期时间格式
|
|
|
promotionName: '', // 促销名称
|
|
|
pageType: undefined, // 页面类型
|
|
@@ -261,37 +216,37 @@ export default {
|
|
|
productTypeList: [], // 产品范围 列表数据
|
|
|
// 表单验证规则
|
|
|
rules: {
|
|
|
- title: [{ required: true, message: '请输入标题名称', trigger: 'blur' }],
|
|
|
- imageSet: [{ required: true, message: '请选择要上传的封面图片', trigger: 'change' }],
|
|
|
+ bannerName: [{ required: true, message: '请输入轮播图名称', trigger: 'blur' }],
|
|
|
+ time: [{ required: true, message: '请选择轮播时间', trigger: 'change' }],
|
|
|
sort: [{ required: true, message: '请输入排序数字', trigger: 'blur' }],
|
|
|
+ allDealerFlag: [{ required: true, message: '请选择参与经销商', trigger: 'change' }],
|
|
|
+ imageUrl: [{ required: true, message: '请选择要上传的封面图片', trigger: 'change' }],
|
|
|
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' }],
|
|
|
- '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' }],
|
|
|
- 'promoRule.range': [{ required: true, message: '请选择', trigger: 'blur' }],
|
|
|
- dealerEditFlag: [{ required: true, message: '请选择加盟商是否可编辑', trigger: 'change' }]
|
|
|
+ content: [{ required: true, message: '请输入对应内容', trigger: ['blur', 'change'] }]
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
-
|
|
|
- addDealerOk () {},
|
|
|
+ addDealerOk (list) {
|
|
|
+ const dealerArr = list.map(item => {
|
|
|
+ return {
|
|
|
+ dealerName: item.dealerName,
|
|
|
+ dealerSn: item.dealerSn
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.chooseDealerList = dealerArr
|
|
|
+ this.openDealerModal = false
|
|
|
+ },
|
|
|
// 禁用日期时间
|
|
|
disabledDate (current) {
|
|
|
return current && current < moment().startOf('day')
|
|
|
},
|
|
|
// 券有效期时间
|
|
|
dateChange (date, dateString) {
|
|
|
- this.time = date
|
|
|
+ this.form.time = date
|
|
|
if (dateString[0] != '' && dateString[1] != '') {
|
|
|
- this.form.promoRule.validStartDate = dateString[0] + ' 00:00:00'
|
|
|
- this.form.promoRule.validEndDate = dateString[1] + ' 23:59:59'
|
|
|
+ this.form.bannerStartDate = dateString[0] + ' 00:00:00'
|
|
|
+ this.form.bannerEndDate = dateString[1] + ' 23:59:59'
|
|
|
}
|
|
|
},
|
|
|
closeDealerModal () {
|
|
@@ -386,6 +341,7 @@ export default {
|
|
|
// 验证组件必填项
|
|
|
_this.$refs.ruleForm.validate(valid => {
|
|
|
if (valid) {
|
|
|
+ console.log('111111111:')
|
|
|
_this.savePartInfo(type)
|
|
|
}
|
|
|
})
|
|
@@ -393,57 +349,25 @@ export default {
|
|
|
// 保存
|
|
|
savePartInfo (type) {
|
|
|
const _this = this
|
|
|
- _this.form.promoActiveSn = this.$route.params.sn
|
|
|
- var formData = JSON.parse(JSON.stringify(_this.form))
|
|
|
- formData.imageSet = formData.imageSet ? formData.imageSet.split(',') : []
|
|
|
- // 跳转链接
|
|
|
- if (formData.contentType == 'LINK') {
|
|
|
- delete formData.contentLink
|
|
|
- if (_this.productRangeList && _this.productRangeList.length > 0) {
|
|
|
- formData.promoRule.productRangeList = _this.productRangeList.map(item => { return { productTypeSn: item } })
|
|
|
+ if (_this.form.allDealerFlag == '0') {
|
|
|
+ if (_this.chooseDealerList && _this.chooseDealerList.length == 0) {
|
|
|
+ _this.$message.warning('请选择参与经销商!')
|
|
|
+ return
|
|
|
}
|
|
|
- // 促销活动
|
|
|
- if (_this.form.linkType === '1') {
|
|
|
- if (_this.form.promoRule.validType === 'FIXED') {
|
|
|
- if (!_this.form.promoRule.validStartDate || _this.form.promoRule.validStartDate.validEndDate) {
|
|
|
- _this.$message.warning('请输入券有效期!')
|
|
|
- return false
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (!_this.form.promoRule.validDays) {
|
|
|
- _this.$message.warning('请输入券有效期!')
|
|
|
- return false
|
|
|
- }
|
|
|
- }
|
|
|
- formData.publishFlag = _this.form.promoRule.publishFlag
|
|
|
- formData.dealerEditFlag = _this.form.promoRule.dealerEditFlag
|
|
|
- } else {
|
|
|
- formData.promoRule = undefined
|
|
|
- }
|
|
|
- if (_this.$refs.chooseProductList) {
|
|
|
- const numInfo = _this.$refs.chooseProductList.getDataNum()
|
|
|
- if (numInfo == 0) {
|
|
|
- _this.$message.warning('请选择返券产品!')
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- formData.promoRule = undefined
|
|
|
+ _this.form.dealerSnList = _this.chooseDealerList.map(con => con.dealerSn)
|
|
|
}
|
|
|
+ console.log('222222:', _this.form)
|
|
|
+ _this.form.bannerSn = _this.$route.params.sn || undefined
|
|
|
+ var formData = JSON.parse(JSON.stringify(_this.form))
|
|
|
+ delete formData.time
|
|
|
_this.spinning = true
|
|
|
-
|
|
|
- promoActivePublish(formData).then(res => {
|
|
|
+ saveShopBanner(formData).then(res => {
|
|
|
if (res.status == 200) {
|
|
|
_this.$message.success(res.message)
|
|
|
- if (type === 'all') {
|
|
|
- _this.$nextTick(() => {
|
|
|
- _this.handleBack()
|
|
|
- _this.resetSearchForm()
|
|
|
- })
|
|
|
- } else {
|
|
|
- _this.isShowNextStep = true
|
|
|
- _this.getDetail()
|
|
|
- }
|
|
|
+ _this.$nextTick(() => {
|
|
|
+ _this.handleBack()
|
|
|
+ _this.resetSearchForm()
|
|
|
+ })
|
|
|
_this.spinning = false
|
|
|
} else {
|
|
|
_this.spinning = false
|
|
@@ -452,7 +376,7 @@ export default {
|
|
|
},
|
|
|
// 图片上传
|
|
|
changeImage (file) {
|
|
|
- this.form.imageSet = file
|
|
|
+ this.form.imageUrl = file
|
|
|
},
|
|
|
// 视频上传
|
|
|
changeVideo (file) {
|
|
@@ -476,31 +400,17 @@ export default {
|
|
|
this.$refs.editor.setHtml('')
|
|
|
}
|
|
|
this.form = {
|
|
|
- promoActiveSn: undefined, // 促销活动sn
|
|
|
- title: '', // 标题
|
|
|
- imageSet: '', // 图片
|
|
|
- contentType: 'IMAGE_CONTENT', // 内容类型
|
|
|
- content: '', // 内容
|
|
|
- contentLink: '', // 链接内容
|
|
|
+ bannerSn: undefined, // 轮播图sn
|
|
|
+ bannerName: '', // 轮播图名称
|
|
|
+ time: [], // 轮播时间
|
|
|
+ bannerStartDate: undefined, // 轮播图活动开始时间
|
|
|
+ bannerEndDate: undefined, // 轮播图活动结束时间
|
|
|
sort: undefined, // 排序
|
|
|
- publishFlag: '0', // 是否发布
|
|
|
- linkType: '1',
|
|
|
- dealerEditFlag: '0', // 加盟商编辑 1是 0否
|
|
|
- productRangeList: [], // 产品范围列表
|
|
|
- promoRule: {
|
|
|
- ruleType: 'ticket', // 基本规则类型
|
|
|
- ruleName: '', // 券名称
|
|
|
- ruleTitle: '', // 副标题
|
|
|
- ruleBaseType: 'category', // 券生成方式
|
|
|
- ruleExplain: '', // 使用说明
|
|
|
- validType: undefined, // 券有效期类型
|
|
|
- validStartDate: undefined, // 券生效时间
|
|
|
- validEndDate: undefined, // 券失效时间
|
|
|
- validDays: undefined, // 券有效期天数
|
|
|
- dealerEditFlag: '0', // 加盟商编辑 1是 0否
|
|
|
- publishFlag: '0', // 是否发布
|
|
|
- range: '1'
|
|
|
- } // 链接配置内容
|
|
|
+ allDealerFlag: '1', // 参与经销商 0 部分 1全部
|
|
|
+ dealerSnList: [], // 已选经销商sn列表
|
|
|
+ imageUrl: '', // 图片
|
|
|
+ contentType: 'IMAGE_CONTENT', // 内容类型
|
|
|
+ content: '' // 内容
|
|
|
}
|
|
|
this.isShowNextStep = false
|
|
|
this.isDisabled = false
|
|
@@ -521,19 +431,6 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- // 选择内容类型
|
|
|
- changeContentType (e) {
|
|
|
- if (e === 'LINK') {
|
|
|
- this.form.linkType = '1'
|
|
|
- this.form.contentLink = '/pagesB/promoDetail'
|
|
|
- this.form.content = '/pagesB/promoDetail'
|
|
|
- } else {
|
|
|
- this.form.linkType = undefined
|
|
|
- this.form.contentLink = ''
|
|
|
- this.form.content = ''
|
|
|
- }
|
|
|
- this.form.contentType = e
|
|
|
- },
|
|
|
// 填入link内容
|
|
|
handleLink (con) {
|
|
|
if (!con.target.value || con.target.value != '/pagesB/promoDetail') {
|