Commit a3ab9920 by chenxin

fix: 退货退券

parent 3da440d7
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/fonts/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link rel=stylesheet href=//web-1251519181.file.myqcloud.com/components/element.2.12.0.css><link href=/marketing/static/css/main.bf3c097425f458c9065fedb25d1b837a.css rel=stylesheet></head><body><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/components/element.2.12.0.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.38.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.2.24.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.18.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.571.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.42.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.2.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script type=text/javascript src=/marketing/static/js/manifest.62f00629ae0287b4fc44.js></script><script type=text/javascript src=/marketing/static/js/vendor.fef1c3d3b3b586faaee2.js></script><script type=text/javascript src=/marketing/static/js/main.a2ce008183bf0c9a9655.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/fonts/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link rel=stylesheet href=//web-1251519181.file.myqcloud.com/components/element.2.12.0.css><link href=/marketing/static/css/main.a89b37b531cbd6934c0b010ccfb2b35c.css rel=stylesheet></head><body><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/components/element.2.12.0.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.38.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.2.24.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.18.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.571.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.42.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.16.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.2.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script type=text/javascript src=/marketing/static/js/manifest.84b749a311a9dca5065c.js></script><script type=text/javascript src=/marketing/static/js/vendor.fef1c3d3b3b586faaee2.js></script><script type=text/javascript src=/marketing/static/js/main.a2ce008183bf0c9a9655.js></script></body></html>
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(n,o,c){for(var f,i,u,s=0,l=[];s<n.length;s++)i=n[s],t[i]&&l.push(t[i][0]),t[i]=0;for(f in o)Object.prototype.hasOwnProperty.call(o,f)&&(e[f]=o[f]);for(r&&r(n,o,c);l.length;)l.shift()();if(c)for(s=0;s<c.length;s++)u=a(a.s=c[s]);return u};var n={},t={15:0};function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=t[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var n=new Promise(function(n,a){r=t[e]=[n,a]});r[2]=n;var o=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,a.nc&&c.setAttribute("nonce",a.nc),c.src=a.p+"static/js/"+({0:"card",1:"game",2:"wechat",3:"message",4:"ewash",5:"scan",6:"ecm",7:"evaluation",8:"activity",9:"cdKey",10:"recharge",11:"msg",12:"calllog"}[e]||e)+"."+{0:"e166f6857069c5f2917b",1:"82b6563092b3c562b01d",2:"e75ff782a449673a6172",3:"41f3917d7be985a3a660",4:"391130c8f773cb8775d6",5:"1b9f56ff936eae22acf1",6:"fa41bb8a307a243f1f78",7:"63a1a6d2b30b644fe2b0",8:"262d5730485583a8e9ea",9:"b28ab42e4c850a719a9e",10:"deed87acac924fb81b10",11:"68885a5b2ba02a163454",12:"374fb631de99b469adc8"}[e]+".js";var f=setTimeout(i,12e4);function i(){c.onerror=c.onload=null,clearTimeout(f);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return c.onerror=c.onload=i,o.appendChild(c),n},a.m=e,a.c=n,a.d=function(e,r,n){a.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/marketing/",a.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(n,o,c){for(var i,f,u,s=0,l=[];s<n.length;s++)f=n[s],t[f]&&l.push(t[f][0]),t[f]=0;for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i]);for(r&&r(n,o,c);l.length;)l.shift()();if(c)for(s=0;s<c.length;s++)u=a(a.s=c[s]);return u};var n={},t={15:0};function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=t[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var n=new Promise(function(n,a){r=t[e]=[n,a]});r[2]=n;var o=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,a.nc&&c.setAttribute("nonce",a.nc),c.src=a.p+"static/js/"+({0:"card",1:"game",2:"wechat",3:"message",4:"ewash",5:"scan",6:"ecm",7:"evaluation",8:"activity",9:"cdKey",10:"recharge",11:"msg",12:"calllog"}[e]||e)+"."+{0:"a6b66790e34a1254aa7f",1:"82b6563092b3c562b01d",2:"e75ff782a449673a6172",3:"41f3917d7be985a3a660",4:"391130c8f773cb8775d6",5:"93c5387864f5ec4ea089",6:"fa41bb8a307a243f1f78",7:"63a1a6d2b30b644fe2b0",8:"262d5730485583a8e9ea",9:"b28ab42e4c850a719a9e",10:"deed87acac924fb81b10",11:"68885a5b2ba02a163454",12:"374fb631de99b469adc8"}[e]+".js";var i=setTimeout(f,12e4);function f(){c.onerror=c.onload=null,clearTimeout(i);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return c.onerror=c.onload=f,o.appendChild(c),n},a.m=e,a.c=n,a.d=function(e,r,n){a.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/marketing/",a.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
......@@ -31,7 +31,7 @@
<script src="//web-1251519181.file.myqcloud.com/components/store-new.2.0.571.js"></script><!-- 新版门店选择器 -->
<script src="//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/people.2.0.42.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/export-excel.2.0.13.js"></script><!-- 数据导出 -->
<script src="//web-1251519181.file.myqcloud.com/components/export-excel.2.0.16.js"></script><!-- 数据导出 -->
<script src="//web-1251519181.file.myqcloud.com/components/input.2.0.20.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js"></script>
<script src="//web-1251519181.file.myqcloud.com/components/selector.1.2.13.js"></script>
......
......@@ -49,7 +49,8 @@ const initForm = {
goods_discounts_number_lower_limit: 0,
products_exchange_number: 0,
onlyFlag: true, // 是否显示与优惠同享,默认true显示
giveFlag: 0 // 开启转赠 1开启
giveFlag: 0, // 开启转赠 1开启
refundFlag: 0 // 开启退货 1开启
};
const sale_limit = { fee: 0, goods: '', flag: false, type: 0 }; //最低消费
const goods = { ok: '', no: '', flag: false };
......@@ -130,6 +131,7 @@ export default {
// cardValidity: false, // 卡券有效期是否禁用
nowWmShopData: {}, // 存储wm店铺数据
giveEnable: false, // 支持转赠
refundEnable: false, // 支持退货
discount_limit: { type: 1, count: undefined, flag: false } // 适用商品折扣
};
},
......@@ -281,6 +283,11 @@ export default {
this.giveEnable = res.result.giveEnable;
}
// 后台运维开关配置 退货退券
if (res.result.refundEnable) {
this.refundEnable = res.result.refundEnable;
}
// 支持的品牌-转赠功能
if (res.result.goodsEnable) {
this.xxSysp.goodsEnable = res.result.goodsEnable;
......@@ -301,6 +308,7 @@ export default {
this.form.cardApplyChannel = card.cardApplyChannel ? card.cardApplyChannel.split(',') : [];
this.form.auditingStatus = card.auditingStatus || '';
this.form.giveFlag = res.result.giveEnable ? card.giveFlag : 0;
this.form.refundFlag = res.result.refundEnable ? card.refundFlag : 0;
this.form.coupCardId = this.isCopy ? '' : card.coupCardId;
this.form.cardType = card.cardType;
this.form.cardName = card.cardName || '';
......@@ -545,6 +553,9 @@ export default {
if (!this.giveEnable) {
this.form.giveFlag = 0;
}
if (!this.refundEnable) {
this.form.refundFlag = 0;
}
//验证有效期
if (this.form.cardEffectiveMode) {
if (!this.form.limitDay) {
......@@ -588,6 +599,7 @@ export default {
card.useCodePrefix = this.form.useCodePrefix;
card.useCodeSuffix = this.form.useCodeSuffix;
card.giveFlag = this.form.giveFlag;
card.refundFlag = this.form.refundFlag;
//卡券条件
//抵金券 sale_limit.fee 最低消费; goods.ok 适用商品, goods.no 不适应商品, only: 1 不与其他优惠共享(不勾选only不传)
if (this.form.cardType === 0) {
......@@ -771,6 +783,7 @@ export default {
// 门店展架
params.shelfIds = JSON.stringify(this.form.shelfIds);
params.card = JSON.stringify(card);
console.log(card);
this.submitLoading = true;
saveUpdateCard(params)
.then(res => {
......
......@@ -250,6 +250,9 @@
<el-switch :disabled="isEdit" v-model="form.giveFlag" :active-value="1" :inactive-value="0"></el-switch>
<span class="tips fz12 gray ml5">* code类型为自定义号段暂时不支持卡券转赠,转赠多次会消耗相同次数的库存,请设置足够的安全库存</span>
</el-form-item>
<el-form-item v-if="refundEnable" label="退货退券">
<el-switch :disabled="isEdit" v-model="form.refundFlag" :active-value="1" :inactive-value="0"></el-switch>
</el-form-item>
<el-form-item prop="image" label="(选填)封面图片">
<dm-upload-img :disabled="isEdit || isInfo" :model.sync="form.image" width="64" label="上传图片" url="/api-plug/upload-img" tips="图片建议尺寸:850px*350px,大小不超过2M"></dm-upload-img>
......
......@@ -15,7 +15,9 @@ export default {
data() {
return {
ecmPlanId: '', // 必传,
info: {}, // 备份详情
info: {
effectTriggerJson: {}
}, // 备份详情
creatorId: '',
code: '1001',
loading: false,
......@@ -87,6 +89,11 @@ export default {
return time.getTime() < Date.now() - 8.64e7;
}
},
pickerOptions: {
disabledDate(val) {
return Date.now() >= val.getTime() + 24 * 60 * 60 * 1000;
}
},
rules: {
ecmPlanName: { type: 'string', required: true, message: '计划名称不能为空', trigger: 'blur' },
gradeIds: [{ type: 'array', required: true, message: '请至少选择一个卡类型', trigger: 'change' }]
......@@ -142,7 +149,7 @@ export default {
computed: {
disabled() {
// 若开始时间已过则不可修改,若未过则可修改
return this.isEdit && new Date() > new Date(this.form.beginDate);
return (this.isEdit && new Date() > new Date(this.form.beginDate)) || this.isInfo;
},
asideShow() {
return this.$store.state.marketing.asideShow;
......
......@@ -3,15 +3,15 @@
<el-form ref="form" :model="form" label-width="110px" :rules="rules" v-loading="loading" element-loading-text="拼命加载中">
<h3 class="title">计划内容设置</h3>
<el-form-item label="计划名称" prop="ecmPlanName">
<dm-input class="w400" :maxlength="9" v-model="form.ecmPlanName" :disabled="!isAdd"></dm-input>
<dm-input class="w400" :maxlength="9" v-model="form.ecmPlanName" :disabled="disabled"></dm-input>
</el-form-item>
<el-form-item v-if="form.expireType" label="计划时间" prop="ecmTime">
<el-date-picker :disabled="disabled" v-model="form.beginDate" type="datetime" placeholder="开始时间" @change="checkBeginEndTime"> </el-date-picker>
<el-date-picker :picker-options="pickerOptions" :disabled="disabled" v-model="form.beginDate" type="datetime" placeholder="开始时间" @change="checkBeginEndTime"> </el-date-picker>
<span class="ml5 mr5">-</span>
<el-date-picker :disabled="disabled" v-model="form.endDate" type="datetime" :picker-options="endDatePickerOptions" placeholder="结束时间" @change="checkBeginEndTime"> </el-date-picker>
<el-date-picker :disabled="disabled" default-time="23:59:59" v-model="form.endDate" type="datetime" :picker-options="endDatePickerOptions" placeholder="结束时间" @change="checkBeginEndTime"> </el-date-picker>
</el-form-item>
<el-form-item label="数据对话">
<activity-select :actId.sync="form.marketingActivityId" :readOnly="!isAdd"></activity-select>
<activity-select :actId.sync="form.marketingActivityId" :readOnly="disabled"></activity-select>
</el-form-item>
<h3 class="title mt46">
营销次数配置
......@@ -20,19 +20,19 @@
</el-tooltip>
</h3>
<el-form-item label="营销次数配置" prop="marketingTimesType">
<el-select :disabled="!isAdd" v-model="form.marketingTimesType" class="w150 vertical-middle">
<el-select :disabled="disabled" v-model="form.marketingTimesType" class="w150 vertical-middle">
<el-option v-for="(v, i) in marketingTimesTypeOptions" :key="i" :value="v.value" :label="v.label"></el-option>
</el-select>
<span class="vertical-middle" v-if="form.marketingTimesType !== -1"><el-input-number :disabled="!isAdd" controls-position="right" class="w150" :min="1" v-model="form.marketingTimes"></el-input-number></span>
<span class="vertical-middle" v-if="form.marketingTimesType !== -1"><el-input-number :disabled="disabled" controls-position="right" class="w150" :min="1" v-model="form.marketingTimes"></el-input-number></span>
<span class="pl20 fz13 gray"> * 该营销计划{{ marketingTimesTips }}</span>
</el-form-item>
<h3 class="title mt46">扫码营销设置</h3>
<el-form-item label="二维码门店">
<div>
<vue-gic-store-new :options="storeOptions" :isAdd="isAdd" :creatorId="storeCreatorId" :scenesVal="scenes" scenes="auth" :uuid="effectTriggerJson.store_widget_id" ref="storeNew" @store-change="storeChange"></vue-gic-store-new>
<vue-gic-store-new :options="storeOptions" :isAdd="!disabled" :creatorId="storeCreatorId" :scenesVal="scenes" scenes="auth" :uuid="effectTriggerJson.store_widget_id" ref="storeNew" @store-change="storeChange"></vue-gic-store-new>
<span v-if="disabled && info.effectTriggerJson.store_widget_id != effectTriggerJson.store_widget_id" class="gray fz12 ml10"><i class="el-icon-warning mr5 red fz12"></i>数据对话已生效,门店修改无效</span>
</div>
<el-checkbox :disabled="!isAdd" v-model="effectTriggerJson.first_subscribe" :true-label="1" :false-label="0">限制用户首次关注服务号触发</el-checkbox>
<el-checkbox :disabled="disabled" v-model="effectTriggerJson.first_subscribe" :true-label="1" :false-label="0">限制用户首次关注服务号触发</el-checkbox>
</el-form-item>
<!-- 适用人群start -->
<h3 class="title mt46">
......@@ -43,17 +43,17 @@
</h3>
<div>
<el-radio-group class="pl20 pb20" v-model="form.memberType">
<el-radio :disabled="!isAdd" :label="0">会员筛选</el-radio>
<el-radio :disabled="!isAdd" :label="1">会员分组</el-radio>
<el-radio :disabled="disabled" :label="0">会员筛选</el-radio>
<el-radio :disabled="disabled" :label="1">会员分组</el-radio>
</el-radio-group>
<div class="mb20" v-if="form.memberType === 0">
<vue-gic-people v-bind="storeParams" :projectName="projectName" :isAdd="isAdd" :triggerReset="true" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<vue-gic-people v-bind="storeParams" :projectName="projectName" :isAdd="!disabled" :triggerReset="true" :useId="useId" :hasSearchData="hasSearchData" :sceneValue="sceneValue" ref="peopleFilter" @findFilter="findFilter" @getBackData="getBackData" @editHide="editHide" @editShow="editShow" @hideBtn="hideBtn" />
<div class="gic-people--button" v-show="toggleTag">
<el-button size="small" :disabled="!isAdd" type="primary" @click="getData">确 定</el-button>
<el-button size="small" :disabled="disabled" type="primary" @click="getData">确 定</el-button>
<el-button size="small" @click="cancelFilter">取 消</el-button>
</div>
</div>
<div :class="!isAdd ? 'el-view-mask' : ''">
<div :class="disabled ? 'el-view-mask' : ''">
<vue-gic-member-group v-if="form.memberType === 1" v-bind="storeParams" :defaltSelected="defaltSelected" :height="500" :projectName="projectName" :headerList="headerList" @handleDataTransferred="handleDataTransferred" @handleDataLeft="handleDataLeft"></vue-gic-member-group>
</div>
</div>
......@@ -72,7 +72,7 @@
<i class="iconfont icon-xinxixianshi pl5 gray"></i>
</el-tooltip>
</el-radio>
<el-radio v-if="!isAdd && cardNoticeType === 1" v-model="form.cardNoticeType" :label="1"
<el-radio v-if="disabled && cardNoticeType === 1" v-model="form.cardNoticeType" :label="1"
>微信{{ form.effectType ? '群发' : '客服' }}接口
<el-tooltip open-delay="200" placement="top-start" :content="form.effectType ? '建议大规模发券、智能营销定时计划使用,占用每个会员每月4次的营销次数。' : '客服接口需要用户在24小时之内与微信公众号互动才能发送成功,不占用每个用户每月4条的群发次数。'">
<i class="iconfont icon-xinxixianshi pl5 gray"></i>
......
......@@ -9,6 +9,9 @@
<el-button type="primary" @click="$router.push('/scan/add')">新建计划</el-button>
</div>
</div>
<el-alert class="mb10 inline-block" title="" type="warning" :closable="false">
<span slot="title"><i class="el-icon-info mr10"></i>扫码营销计划按优先级由高到低匹配执行,越上方的优先级越高</span>
</el-alert>
<div class="imitation-table drag-table" style="width:100%;">
<el-row class="thead">
<el-col :span="1"></el-col>
......@@ -51,7 +54,7 @@
<template v-if="item.canEdit !== false">
<el-button type="text" @click="toRecord(item)">记录</el-button>
<el-button type="text" v-if="item.effectType == 0 || item.effectType == 1" @click="editData(item)">编辑</el-button>
<el-button type="text" v-if="item.effectType == 2" @click="$router.push(`/scan/info/${item.ecmPlanId}`)">详情</el-button>
<!-- <el-button type="text" v-if="item.effectType == 2" @click="$router.push(`/scan/info/${item.ecmPlanId}`)">详情</el-button> -->
</template>
<dm-delete v-if="item.effectType !== 2 && item.onlineStatus === 1 && item.canEdit !== false" @confirm="offlineEcmPlan(item)" tips="是否下线该计划?">
<el-button type="text">下线</el-button>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment