Commit 515414aa by chenxin

fix: 卡券转赠

parent a1f20b7e
<!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.4ac8f876bde3a5a7e84bd3a525dc8a2b.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.40.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.19.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.24.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.65.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.43.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.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script src=//web-1251519181.file.myqcloud.com/components/activity-select.1.0.2.1.js></script><script type=text/javascript src=/marketing/static/js/manifest.92fc8f484f2cad95b3e3.js></script><script type=text/javascript src=/marketing/static/js/vendor.fef1c3d3b3b586faaee2.js></script><script type=text/javascript src=/marketing/static/js/main.a38bc9dd2a1132342ec3.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.56d612d4f1de17132471d833f445a270.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.40.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.19.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.24.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.65.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.43.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.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script src=//web-1251519181.file.myqcloud.com/components/activity-select.1.0.2.1.js></script><script type=text/javascript src=/marketing/static/js/manifest.736c1dfcc09756fb3cc0.js></script><script type=text/javascript src=/marketing/static/js/vendor.fef1c3d3b3b586faaee2.js></script><script type=text/javascript src=/marketing/static/js/main.42b83750b6050a394ad3.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(n,c,o){for(var i,u,f,d=0,s=[];d<n.length;d++)u=n[d],t[u]&&s.push(t[u][0]),t[u]=0;for(i in c)Object.prototype.hasOwnProperty.call(c,i)&&(e[i]=c[i]);for(r&&r(n,c,o);s.length;)s.shift()();if(o)for(d=0;d<o.length;d++)f=a(a.s=o[d]);return f};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 c=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,a.nc&&o.setAttribute("nonce",a.nc),o.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:"3789648a73781a240407",1:"13dab37beda20959629e",2:"2bc295c93adcee55a98f",3:"0378b23ea9e2767987cf",4:"ac5092d9b2d7d1a3b93a",5:"d11e9bae507a16a50ac8",6:"1d5dae587ab925184cc9",7:"99e49bc49f2439ac7253",8:"35efeb2ae926b54b4341",9:"1bc2336dbaf1112fbdc8",10:"e5cd16e4f5e1229ea313",11:"00a6edc9657c9e4c34fa",12:"f1c9fa1ccd0d36ae0602"}[e]+".js";var i=setTimeout(u,12e4);function u(){o.onerror=o.onload=null,clearTimeout(i);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return o.onerror=o.onload=u,c.appendChild(o),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,c,o){for(var f,i,u,d=0,s=[];d<n.length;d++)i=n[d],t[i]&&s.push(t[i][0]),t[i]=0;for(f in c)Object.prototype.hasOwnProperty.call(c,f)&&(e[f]=c[f]);for(r&&r(n,c,o);s.length;)s.shift()();if(o)for(d=0;d<o.length;d++)u=a(a.s=o[d]);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 c=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,a.nc&&o.setAttribute("nonce",a.nc),o.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:"a4f853d99f62190efaef",1:"13dab37beda20959629e",2:"2bc295c93adcee55a98f",3:"0378b23ea9e2767987cf",4:"ac5092d9b2d7d1a3b93a",5:"c96a7f29c775b2723766",6:"57f82004fdb586d4b537",7:"99e49bc49f2439ac7253",8:"35efeb2ae926b54b4341",9:"1bc2336dbaf1112fbdc8",10:"e5cd16e4f5e1229ea313",11:"00a6edc9657c9e4c34fa",12:"f1c9fa1ccd0d36ae0602"}[e]+".js";var f=setTimeout(i,12e4);function i(){o.onerror=o.onload=null,clearTimeout(f);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return o.onerror=o.onload=i,c.appendChild(o),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
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -114,7 +114,7 @@
display: block;
width: 200px;
height: 200px;
background: url(/static/img/chart-no-data.png) no-repeat center;
background: url('/static/img/no-data_icon.png') no-repeat center;
background-size: cover;
margin: 20px auto 10px auto;
}
......
......@@ -16,6 +16,9 @@ html,body{
font-size: 14px;
font-family: Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,\\5FAE\8F6F\96C5\9ED1,Arial,sans-serif;
}
textarea {
font-family: Helvetica Neue,Helvetica,PingFang SC,Hiragino Sans GB,Microsoft YaHei,\\5FAE\8F6F\96C5\9ED1,Arial,sans-serif;
}
i {
font-size:14px;
}
......
......@@ -20,6 +20,9 @@ function verificationPicFile(file, l_width, l_height) {
image.onload = function() {
var width = image.width;
var height = image.height;
// 没穿就设置为img的
l_width = l_width ? l_width : width;
l_height = l_height ? l_height : height;
if (width === l_width && height === l_height) {
resolve();
} else {
......
......@@ -4,6 +4,8 @@
import { _debounce } from '@/utils/index';
import dmUploadImg from '@/components/upload/img';
import linktools from '@/components/linktools-fulls/index';
import dmUploadAvatar from '@/components/upload/avatar';
import sendPreview from './partials/send-preview';
import { formatDateTimeByType, deepClone, getTimesByReq } from '@/utils/index.js';
import xxSysp_mix from '@/mixins/selector.js'; // 商品选择器方法
import { listEntepriseWeimobShop, listEntepriseWeimobCoupon } from '@/service/api/commonApi.js';
......@@ -52,10 +54,19 @@ const initForm = {
goods_discounts_number_lower_limit: 0,
products_exchange_number: 0,
onlyFlag: true, // 是否显示与优惠同享,默认true显示
giveFlag: 0, // 开启转赠 1开启
refundFlag: 0, // 开启退货 1开启
jumpFlag: 0, // 跳转配置开关(0: 关, 1: 开)
jumpLink: {} // 卡券跳转链接json
jumpLink: {}, // 卡券跳转链接json
giveFlag: 0, // 开启转赠 1开启
giveContent: '',
giveImage: '',
giveImageField: '',
bannerImage: '',
bannerImageField: '',
useJumpFlag: 0, // (0: 不跳转, 1: 跳转)
bannerJumpUrl: {},
giveRule: '1.卡券新老用户同享。\n2.用户使用卡券下单,订单取消后,卡券将自动失效'
};
const sale_limit = { fee: 0, goods: '', flag: false, type: 0 }; //最低消费
const goods = { ok: '', no: '', flag: false };
......@@ -85,6 +96,21 @@ export default {
}
callback();
};
const validGiveContent = (rule, value, callback) => {
if (this.form.giveFlag && !value) {
callback(rule.message);
}
callback();
};
// 验证首图 转赠链接
const validBannerJumpUrl = (rule, value, callback) => {
if (this.form.useJumpFlag && JSON.stringify(this.form.bannerJumpUrl) == '{}') {
callback(new Error('请选择首图跳转链接'));
}
callback();
};
const that = this;
return {
requestProject: 'marketing',
......@@ -112,7 +138,12 @@ export default {
],
cardExplain: { required: true, message: '适用门店说明不能为空', trigger: 'blur' },
useDescript: { required: true, message: '使用说明不能为空', trigger: 'blur' },
sendDateTime: { required: true, validator: checkSendDateTime, trigger: 'change' }
sendDateTime: { required: true, validator: checkSendDateTime, trigger: 'change' },
giveContent: { validator: validGiveContent, message: '请输入转赠对话框文字', trigger: 'blur' },
giveRule: { required: true, message: '请输入卡券转赠规则', trigger: 'blur' },
// giveImage: { required: true, message: '请上传转赠封面', trigger: 'change' },
// bannerImage: { required: true, message: '请上传转赠页面首图', trigger: 'change' },
bannerJumpUrl: { validator: validBannerJumpUrl, trigger: 'change' }
},
startDayOptions: [],
cardApplyChannelOptions: [],
......@@ -178,10 +209,47 @@ export default {
giveEnable: false, // 支持转赠
refundEnable: false, // 支持退货
discount_limit: { type: 1, count: undefined, flag: false }, // 适用商品折扣
linkToolsVisible: false // 链接小工具
linkToolsVisible: false, // 链接小工具 - 跳转链接
linkToolsVisible2: false, // 链接小工具 - 转赠
// 转赠预览
preview: {
visible: false,
disabled: true
},
giveImg1: {
// 转赠对话框图片
code: '',
imgUrl: ''
},
giveImg2: {
// 转赠页面首图
code: '',
imgUrl: ''
}
};
},
watch: {
giveImg1: {
handler(val) {
this.form.giveImage = val.imgUrl;
this.form.giveImageField = val.code;
},
deep: true
},
giveImg2: {
handler(val) {
this.form.bannerImage = val.imgUrl;
this.form.bannerImageField = val.code;
},
deep: true
},
form: {
handler(val) {
const { giveFlag, giveContent, giveImage, bannerImage, giveRule } = val;
this.preview.disabled = giveFlag && giveContent && giveImage && bannerImage && giveRule;
},
deep: true
},
'sale_limit.flag'(val) {
if (!val) {
this.sale_limit.type = 0;
......@@ -254,6 +322,8 @@ export default {
components: {
'dm-upload-img': dmUploadImg,
'dm-goods-input': dmGoodsInput,
'dm-send-preview': sendPreview,
dmUploadAvatar,
linktools
},
computed: {
......@@ -524,6 +594,19 @@ export default {
if (this.isAdd || this.isCopy) {
this.form.manualGetFlag = 1; // 永远设置为手动领取
}
// 转赠
const canCopyGive = card.giveFlag == 1 && ((this.isCopy && res.result.giveEnable) || !this.isCopy); // 拷贝必须是开启开关的
if (canCopyGive) {
const { giveContent, giveImage, giveImageField, bannerImage, bannerImageField, useJumpFlag, bannerJumpUrl, giveRule } = card;
this.form.giveContent = giveContent;
this.form.giveImage = giveImage;
this.form.giveImageField = giveImageField;
this.form.bannerImage = bannerImage;
this.form.bannerImageField = bannerImageField;
this.form.useJumpFlag = useJumpFlag;
this.form.bannerJumpUrl = useJumpFlag ? JSON.parse(bannerJumpUrl) : {};
this.form.giveRule = giveRule;
}
if (!this.isCopy) {
// 非复制才赋值有效期,跳转链接
this.form.cardEffectiveMode = card.cardEffectiveMode;
......@@ -644,9 +727,6 @@ export default {
// 自定义号段 ,转赠开关设置关闭
this.form.giveFlag = 0;
}
if (!this.giveEnable) {
this.form.giveFlag = 0;
}
if (!this.refundEnable) {
this.form.refundFlag = 0;
}
......@@ -667,7 +747,21 @@ export default {
this.$tips({ type: 'warning', message: '请配置跳转链接' });
return;
}
if (this.giveEnable && this.form.giveFlag) {
// 转赠
if (this.form.useJumpFlag && JSON.stringify(this.form.bannerJumpUrl) == '{}') {
this.$tips({ type: 'warning', message: '请配置首图链接' });
return;
}
if (!this.form.giveImage) {
this.$tips({ type: 'warning', message: '请上传转赠对话框图片' });
return;
}
if (!this.form.bannerImage) {
this.$tips({ type: 'warning', message: '请上传转赠页面首图' });
return;
}
}
this.$refs[formName].validate(valid => {
if (valid) {
this.saveUpdateCard();
......@@ -860,7 +954,6 @@ export default {
card.storeProMode = 0;
card.storeMode = this.storeMode;
card.storeWidgetKey = this.uuid;
// 这里判断部分门店是否为空
if (card.storeMode) {
let data = await this.$refs.storeCard.getRightList();
......@@ -877,7 +970,18 @@ export default {
card.manualGetFlag = 1; // 永远设置为手动领取
}
params.card = JSON.stringify(card);
console.log(card);
// 转赠 与card同级
if (this.form.giveFlag == 1 && this.giveEnable) {
const { giveContent, giveImage, giveImageField, bannerImage, bannerImageField, useJumpFlag, bannerJumpUrl, giveRule } = this.form;
params.giveContent = giveContent;
params.giveImage = giveImage;
params.giveImageField = giveImageField;
params.bannerImage = bannerImage;
params.bannerImageField = bannerImageField;
params.useJumpFlag = useJumpFlag;
params.bannerJumpUrl = JSON.stringify(bannerJumpUrl);
params.giveRule = giveRule;
}
this.submitLoading = true;
saveUpdateCard(params)
.then(res => {
......@@ -1228,10 +1332,18 @@ export default {
});
},
// ------微盟适用商品结束-------
// ---------链接小工具---------
// ---------链接小工具 - 跳转链接---------
linkSelect(val) {
if (!this.isInfo) {
this.form.jumpLink = val;
this.$refs.form.validateField('jumpLink');
}
},
// ---------链接小工具 - 转赠---------
linkSelect2(val) {
if (!this.isInfo) {
this.form.bannerJumpUrl = val;
this.$refs.form.validateField('bannerJumpUrl');
}
}
},
......
......@@ -267,6 +267,37 @@
<div class="gray fz13">* 开启后小程序卡券详情将对应路径的跳转按钮</div>
</el-form-item>
<!-- 转赠 -->
<!-- 新建和复制要根据giveEnable来展示开关 -->
<template v-if="form.useCustomCode == 0 && (((this.isAdd || this.isCopy) && giveEnable) || !this.isAdd || !this.isCopy)">
<!-- 仅随机生成支持卡券转赠 -->
<el-form-item label="转赠开关">
<el-switch :disabled="isEdit || isInfo" :active-value="1" :inactive-value="0" v-model="form.giveFlag"></el-switch>
<span class="tips fz12 gray ml10">* code类型为自定义号段暂时不支持卡券转赠,转赠多次会消耗相同次数的库存,请设置足够的安全库存</span>
</el-form-item>
<!-- !!!需要通过$el找到,避免开关来来回回初始化,所以用v-show -->
<el-form-item label="转赠对话框文字" prop="giveContent" class="is-required" v-show="form.giveFlag === 1">
<dm-input type="textarea" class="w400" ref="ruleTextarea" :row="4" :autosize="{ minRows: 4, maxRows: 8 }" v-model="form.giveContent" wrap="soft" :byte-type="1" :maxlength="24" />
</el-form-item>
<template v-if="form.giveFlag === 1">
<el-form-item label="转赠对话框图片" prop="giveImage">
<dm-upload-avatar :model.sync="giveImg1" url="/api-plug/upload-img" :disabled="isEdit || isInfo" width="105" height="105" label="上传图片" tips="图片建议尺寸: 320*240px 的jpg/png图片,大小不超过1MB。" :limit="{ type: true, maxSize: 1 }"></dm-upload-avatar>
</el-form-item>
<el-form-item label="转赠页面首图" prop="bannerImage">
<dm-upload-avatar :model.sync="giveImg2" url="/api-plug/upload-img" :disabled="isEdit || isInfo" width="105" height="105" label="上传图片" tips="图片建议尺寸: 640*210px 的jpg/png图片,大小不超过1MB。" :limit="{ type: true, maxSize: 1 }"></dm-upload-avatar>
</el-form-item>
<el-form-item label="首图链接设置" prop="bannerJumpUrl">
<el-checkbox v-model="form.useJumpFlag" :true-label="1" :false-label="0">首图链接</el-checkbox>
<template v-if="form.useJumpFlag">
<el-button @click="linkToolsVisible2 = true" type="text" class="ml10">{{ JSON.stringify(form.bannerJumpUrl) == '{}' ? '设置链接' : '修改链接:' }}</el-button>
<span class="gray ml10">{{ form.bannerJumpUrl.name }}</span>
</template>
</el-form-item>
<el-form-item label="卡券转赠规则" prop="giveRule" v-show="form.giveFlag === 1">
<dm-input type="textarea" class="autosize w400" :rows="4" :autosize="{ minRows: 4, maxRows: 8 }" v-model="form.giveRule" :byte-type="1" :maxlength="200" />
</el-form-item>
</template>
</template>
<el-form-item prop="cardExplain" label="适用门店说明">
<dm-input class="w400" v-model="form.cardExplain" :disabled="isInfo" :maxlength="50"></dm-input>
</el-form-item>
......@@ -280,11 +311,6 @@
<el-alert v-show="storeMode && form.cardApplyChannel.indexOf('WMmicroMall') !== -1" title="选择的门店必须保持与微盟侧门店一致,请确认选择无误" type="warning" show-icon :closable="false" class="mt20 width80"></el-alert>
</el-form-item>
<!-- feature/m12 暂时隐藏 -->
<!-- <el-form-item v-if="giveEnable && form.useCustomCode != 1" label="卡券转赠">
<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="(isAdd || isCopy) && refundEnable && form.cardType != 2" label="退货退券">
<el-switch :disabled="isEdit" v-model="form.refundFlag" :active-value="1" :inactive-value="0"></el-switch>
</el-form-item>
......@@ -303,6 +329,7 @@
</el-form-item>
<div class="btn-wrap_fixed" :class="{ on: asideShow }">
<el-button v-if="form.useCustomCode === 0 && form.giveFlag" :disabled="!preview.disabled" @click="preview.visible = true">转赠预览</el-button>
<el-button type="primary" @click="submitForm('form')" v-loading="submitLoading" v-show="!isInfo && canEdit && $store.state.marketing.appletEnable">保存</el-button>
<el-button @click="$router.go(-1)"> </el-button>
</div>
......@@ -315,8 +342,9 @@
<el-button v-if="isAdd || isCopy" type="primary" @click="xxSyspConfirm">确定</el-button>
</div>
</el-dialog>
<!-- 链接小工具 -->
<linktools showType="5" :canSave="!isInfo" :linkVisible.sync="linkToolsVisible" @linkSelect="linkSelect" :linkData="form.jumpLink" />
<dm-send-preview :data="form" :visible.sync="preview.visible" /><!-- 转赠预览 -->
<linktools showType="5" :canSave="!isInfo" :linkVisible.sync="linkToolsVisible" @linkSelect="linkSelect" :linkData="form.jumpLink" /><!-- 链接小工具 -->
<linktools showType="5" :canSave="!isInfo" :linkVisible.sync="linkToolsVisible2" @linkSelect="linkSelect2" :linkData="form.bannerJumpUrl" /><!-- 链接小工具 - 转赠 -->
</div>
</template>
......
......@@ -102,7 +102,11 @@ export default {
this.loading = true;
try {
let res = await cardPageList(this.listParams);
this.tableList = res.result.result || [];
this.tableList =
res.result.result.map(v => {
v.isApiCreate = false;
return v;
}) || [];
this.total = res.result.totalCount;
} catch (err) {
this.$tips({ type: 'error', message: '加载列表失败' });
......
......@@ -22,7 +22,8 @@
<h5>{{ item.saleAmount }}</h5>
<p>销售额</p>
</div>
<el-tooltip class="item" effect="dark" content="卡券的领取数量\使用数量\核销率\销售额统计数据每隔3小时更新一次" :open-delay="300">
<el-tooltip class="item" effect="dark" open-delay="300">
<div slot="content">{{ item.isApiCreate ? '该卡券为外部接口创建卡券无法用于营销' : '卡券的领取数量\使用数量\核销率\销售额统计数据每隔3小时更新一次' }}</div>
<i style="position:absolute;right:10px;top:10px;cursor:pointer;color:#c0c4cc;font-size:18px;" class="el-icon-question"></i>
</el-tooltip>
</div>
......@@ -57,7 +58,8 @@
</div>
<div class="card-item_foot clearfix">
<div class="fl">
<span v-if="item.auditingStatus !== -1"
<!-- 由外部api创建 仅展示详情、删除、报表按钮 -->
<span v-if="item.auditingStatus !== -1 && !item.isApiCreate"
>剩余库存:{{ item.couponStock }} <a title="编辑库存" v-if="!shelfFlag && item.useCustomCode === 0 && item.canEdit !== false" @click="preAdjustStock(item)"><i class="el-icon-edit"></i></a
></span>
</div>
......
......@@ -10,11 +10,12 @@ export default Vue.component('render-temp', {
},
render(h) {
const canEdit = this.item.canEdit !== false; // 只有canEdit === false 才证明不能使用 没有权限仅可以详情/报表
const isApiCreate = this.item.isApiCreate || false; // 由外部api创建 仅展示详情、删除、报表按钮
// 当前卡券是否 是长期有效||在投放有效期内
// putEffectiveMode 0:固定日期,1:长期
const canGroupSend = this.item.putEffectiveMode == 1 ? true : new Date() > new Date(this.item.putBeginDate) && new Date() < new Date(this.item.putEndDate);
const bind1 =
canEdit && canGroupSend ? (
canEdit && !isApiCreate && canGroupSend ? (
<a title="投放" onClick={this.handler.bind(null, 1)}>
<i class="iconfont icon-daohang-" />
</a>
......@@ -26,10 +27,12 @@ export default Vue.component('render-temp', {
<i class="el-icon-tickets" />
</a>
);
const bind3 = (
const bind3 = !isApiCreate ? (
<a title="编辑" onClick={this.handler.bind(null, 3)}>
<i class="el-icon-edit" />
</a>
) : (
''
);
const bind4 = canEdit ? (
<a title="删除" onClick={this.handler.bind(null, 4)}>
......@@ -43,21 +46,23 @@ export default Vue.component('render-temp', {
<i class="el-icon-document" />
</a>
);
const bind6 = canEdit ? (
<a title="复制" onClick={this.handler.bind(null, 6)}>
<i class="iconfont icon-wxcard-copy" />
</a>
) : (
''
);
const bind6 =
canEdit && !isApiCreate ? (
<a title="复制" onClick={this.handler.bind(null, 6)}>
<i class="iconfont icon-wxcard-copy" />
</a>
) : (
''
);
const bind7 = canEdit ? (
<a style="position:relative;top:1px" title="领取记录" onClick={this.handler.bind(null, 7)}>
<i class="iconfont icon-tubiaozhizuomoban-" />
</a>
) : (
''
);
const bind7 =
canEdit && !isApiCreate ? (
<a style="position:relative;top:1px" title="领取记录" onClick={this.handler.bind(null, 7)}>
<i class="iconfont icon-tubiaozhizuomoban-" />
</a>
) : (
''
);
const statushtml = (
<span>
......
......@@ -5,7 +5,7 @@
图文消息(共{{ total }}条) <el-input v-model="listParams.searchName" clearable class="w200 ml10" placeholder="请输入标题/作者" @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
</div>
<div class="fr">
<el-button type="primary" @click="add">新建图文</el-button>
<!-- <el-button type="primary" @click="add">新建图文</el-button> -->
<el-button @click="refresh">刷新列表</el-button>
</div>
</div>
......
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