Commit 5dd9a73e by chenxin

Merge branch 'dev'

# Conflicts:
#	dist/index.html
#	dist/static/js/manifest.9e4bf37b593ac8c5d388.js
#	dist/static/js/manifest.b735c650b90d67055e95.js
#	dist/static/js/manifest.bfae15dc97db271a952d.js
#	index.html
parents c3939dfa 5da7b5e1
<!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/css/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.fa3b7dbdd536c9594062f79dd90b26a4.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.33.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.02.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.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.13.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.38.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.00.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.1.95.js></script><script type=text/javascript src=/marketing/static/js/manifest.b735c650b90d67055e95.js></script><script type=text/javascript src=/marketing/static/js/vendor.810e43468685c3e36778.js></script><script type=text/javascript src=/marketing/static/js/main.dd8c124571fb115fcdf0.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.a1e4d33916edf51c6d2f71a0f83eeb33.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.33.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.02.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.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.13.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.38.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.00.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.1.95.js></script><script type=text/javascript src=/marketing/static/js/manifest.2ff8c9514bdd567d0c15.js></script><script type=text/javascript src=/marketing/static/js/vendor.810e43468685c3e36778.js></script><script type=text/javascript src=/marketing/static/js/main.561b7ea36330b1580a67.js></script></body></html>
\ No newline at end of file
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
normalize.css 中也包含这行 */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
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.
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.
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,a,c){for(var f,i,u,s=0,d=[];s<n.length;s++)i=n[s],t[i]&&d.push(t[i][0]),t[i]=0;for(f in a)Object.prototype.hasOwnProperty.call(a,f)&&(e[f]=a[f]);for(r&&r(n,a,c);d.length;)d.shift()();if(c)for(s=0;s<c.length;s++)u=o(o.s=c[s]);return u};var n={},t={12:0};function o(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,o),t.l=!0,t.exports}o.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,o){r=t[e]=[n,o]});r[2]=n;var a=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,o.nc&&c.setAttribute("nonce",o.nc),c.src=o.p+"static/js/"+({0:"game",1:"card",2:"wechat",3:"ewash",4:"evaluation",5:"message",6:"ecm",7:"recharge",8:"msg",9:"calllog"}[e]||e)+"."+{0:"2f1e7096af94d9f76772",1:"b833d273d42b78c1a34c",2:"b79b4a3c31e664d7a834",3:"0ad867cffccf5e476fc3",4:"0e1a6bbb7faf492df0e5",5:"aad6026241574c7ab8b6",6:"268068c26ad4cfb9642b",7:"b5c05dcb31a68a038b33",8:"1b6ea0b54dc54b2db1c7",9:"97f181e401dc9ff1b115"}[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,a.appendChild(c),n},o.m=e,o.c=n,o.d=function(e,r,n){o.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},o.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(r,"a",r),r},o.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},o.p="/marketing/",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(n,a,c){for(var i,u,f,s=0,l=[];s<n.length;s++)u=n[s],t[u]&&l.push(t[u][0]),t[u]=0;for(i in a)Object.prototype.hasOwnProperty.call(a,i)&&(e[i]=a[i]);for(r&&r(n,a,c);l.length;)l.shift()();if(c)for(s=0;s<c.length;s++)f=o(o.s=c[s]);return f};var n={},t={12:0};function o(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,o),t.l=!0,t.exports}o.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,o){r=t[e]=[n,o]});r[2]=n;var a=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,o.nc&&c.setAttribute("nonce",o.nc),c.src=o.p+"static/js/"+({0:"game",1:"card",2:"wechat",3:"message",4:"ewash",5:"evaluation",6:"ecm",7:"recharge",8:"msg",9:"calllog"}[e]||e)+"."+{0:"3e60aeb001783811cefe",1:"d9a72550621ce9d3e95b",2:"e04323d416b97e80951a",3:"e41254445cc97187ca9a",4:"be0c8ab7b7fe18eb35df",5:"874eba462c04264ff0dc",6:"6d471386e2e38425c8ab",7:"7800a1645705a6640145",8:"4b4e327d76f3e16d4b51",9:"fecc3d1064e01cef69e9"}[e]+".js";var i=setTimeout(u,12e4);function u(){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=u,a.appendChild(c),n},o.m=e,o.c=n,o.d=function(e,r,n){o.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},o.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(r,"a",r),r},o.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},o.p="/marketing/",o.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.
......@@ -5,8 +5,8 @@
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="shortcut icon" href="./static/img/favicon.ico">
<title>GIC后台</title>
<link rel="stylesheet" type="text/css" href="static/css/iconfont.css">
<link rel="stylesheet" type="text/css" href="static/css/common.css">
<link rel="stylesheet" type="text/css" href="<%= htmlWebpackPlugin.options.BASE_URL %>static/fonts/iconfont.css">
<link rel="stylesheet" type="text/css" href="<%= htmlWebpackPlugin.options.BASE_URL %>static/css/common.css">
<link rel="stylesheet" href="//web-1251519181.file.myqcloud.com/components/element.2.12.0.css">
<!-- element 皮肤 -->
<!-- <link rel="stylesheet" type="text/css" href="http://web-1251519181.file.myqcloud.com/lib/elementUI/theme.1.0.1/index.css"> -->
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -13,7 +13,6 @@
"dependencies": {
"@antv/data-set": "^0.8.9",
"@antv/g2": "^3.2.6",
"@gic-test/vue-gic-people": "^1.8.94",
"@riophae/vue-treeselect": "^0.0.36",
"@tinymce/tinymce-vue": "^1.0.8",
"axios": "^0.18.0",
......
......@@ -153,6 +153,9 @@ a:hover {
.ml20{
margin-left: 20px!important;
}
.mb5{
margin-bottom: 5px!important;
}
.mb10{
margin-bottom: 10px!important;
}
......@@ -165,9 +168,15 @@ a:hover {
.mr20{
margin-right: 20px!important;
}
.mb15{
margin-bottom: 15px!important;
}
.mb20{
margin-bottom: 20px!important;
}
.mb30{
margin-bottom: 20px!important;
}
.mb40{
margin-bottom: 40px!important;
}
......@@ -208,6 +217,9 @@ a:hover {
.w150{
width: 150px!important;
}
.w160{
width: 160px!important;
}
.w200{
width: 200px!important;
}
......@@ -220,6 +232,9 @@ a:hover {
.w300{
width: 300px!important;
}
.w350{
width: 350px!important;
}
.w400{
width: 400px!important;
}
......
......@@ -194,7 +194,10 @@ export default {
},
popoverTagRemove(tag) {
this.currentValue.splice(this.currentValue.findIndex(val => val === tag.value), 1);
this.currentValue.splice(
this.currentValue.findIndex(val => val === tag.value),
1
);
this.$refs.select.$emit('change', JSON.parse(JSON.stringify(this.currentValue)));
},
......
......@@ -28,9 +28,7 @@
</template>
</el-table-column>
<el-table-column prop="cardLimit" :show-overflow-tooltip="false" label="领取限制" width="90">
<template slot-scope="scope">
{{ scope.row.cardLimit }}张/人
</template>
<template slot-scope="scope"> {{ scope.row.cardLimit }}张/人 </template>
</el-table-column>
<el-table-column :show-overflow-tooltip="false" :width="90" align="left" prop="storeMode" label="适用门店">
<template slot-scope="scope">
......
......@@ -40,7 +40,7 @@ export default {
loading: false,
count: 0,
size: 5,
sizeOptions: [{ label: '5条', value: 5 }, { label: '10条', value: 10 }, { label: '20条', value: 20 }, { label: '全部', value: 999999 }]
sizeOptions: [{ label: '5条', value: 5 }, { label: '10条', value: 10 }, { label: '20条', value: 20 }, { label: '全部', value: 999999 }] // eslint-disable-line
};
},
methods: {
......
......@@ -48,6 +48,12 @@ export default {
name: '临时领取记录',
component: () => import(/* webpackChunkName: "card" */ '../../views/card/record-cache.vue'),
meta: {}
},
{
path: 'refund',
name: '退券记录',
component: () => import(/* webpackChunkName: "card" */ '../../views/card/refund-list.vue'),
meta: {}
}
]
},
......@@ -163,5 +169,13 @@ export default {
path: '/card/check'
}
}
// {
// path: 'destroy',
// name: '卡券销毁',
// component: () => import(/* webpackChunkName: "card" */ '../../views/card/destroy-list.vue'),
// meta: {
// path: '/card/destroy'
// }
// }
]
};
/*
* @Description: In User Settings Edit
* @Author: your name
* @Date: 2019-06-05 09:30:51
* @LastEditTime: 2019-08-12 09:19:55
* @LastEditors: Please set LastEditors
*/
//游戏营销
// import game from '../../views/game';
// import dzp from '../../views/game/dzp/index.vue';
// import dzpForm from '../../views/game/dzp/form.vue';
// import dzpRecord from '../../views/game/dzp/record.vue';
// import ggk from '../../views/game/ggk/index.vue';
// import ggkForm from '../../views/game/ggk/form.vue';
// import ggkRecord from '../../views/game/ggk/record.vue';
// import ptyx from '../../views/game/ptyx/index.vue';
// import ptyxForm from '../../views/game/ptyx/form.vue';
// import ptyxRecord from '../../views/game/ptyx/record.vue';
// import znm from '../../views/game/znm/index.vue';
// import znmForm from '../../views/game/znm/form.vue';
// import znmRecord from '../../views/game/znm/record.vue';
// import klfl from '../../views/game/klfl/index.vue';
// import klflForm from '../../views/game/klfl/form.vue';
// import klflRecord from '../../views/game/klfl/record.vue';
export default {
path: 'game',
name: '游戏营销',
......
......@@ -62,6 +62,32 @@ export default {
meta: {
path: '/message/record'
}
},
// {
// path: 'import-send',
// name: '导入发送列表',
// component: () => import(/* webpackChunkName: "message" */ '../../views/message/importSendList.vue'),
// meta: {
// path: '/message/importSend'
// }
// },
{
path: 'import-send/add',
name: '手工导入群发',
component: () => import(/* webpackChunkName: "message" */ '../../views/message/importSendForm.vue'),
meta: {
type: 'add',
path: '/message/importSend'
}
},
{
path: 'import-send/info/:id',
name: '手工导入群发详情',
component: () => import(/* webpackChunkName: "message" */ '../../views/message/importSendForm.vue'),
meta: {
type: 'info',
path: '/message/importSend'
}
}
]
};
......@@ -12,8 +12,6 @@ import game from './modules/game';
import message from './modules/message';
//卡券营销
import card from './modules/card';
//新卡券营销
// import giccard from './modules/giccard'
//智能营销
import ecm from './modules/ecm';
//模板消息
......
......@@ -45,6 +45,12 @@ export const cardPutOnRecord = params => requests(PREFIX + 'card-put-on-record',
//卡券营销--卡券记录--投放记录/领取记录 - 投放记录 - 导出
export const exportCardPutOnRecordExcel = config.api + PREFIX + 'export-card-put-on-record-excel';
//卡券营销--卡券记录--退券列表
export const refundPage = params => requests(PREFIX + 'page-back-coup-log', params);
//卡券营销--卡券记录--退券列表 - 导出
export const exportBackCoupExcel = config.api + PREFIX + 'export-back-coup-excel';
//卡券营销--卡券记录--投放记录--删除记录
export const deleteCardPuton = params => requests(PREFIX + 'delete-card-puton', params);
......
......@@ -10,7 +10,7 @@ export const latestEvaluationList = params => requests(PREFIX + 'latest-evaluati
export const changeShowStatus = params => requests(PREFIX + 'change-show-status', params);
//服务监制--评价管理--列表 立即回复
export const evaluationReply = params => requests(PREFIX + 'evaluation-reply', params);
// export const evaluationReply = params => requests(PREFIX + 'evaluation-reply', params);
//服务监制--评价管理--列表 先判断门店是否存在
export const evaluationStoreExists = params => requests(PREFIX + 'evaluation-store-exists', params);
......@@ -47,5 +47,14 @@ export const getEvaluateSetting = params => requests(PREFIX + 'evaluate-setting'
//投诉与建议-启用不良评价话务回访自动分配功能--启用/不启用
export const setEvaluateSetting = params => requests(PREFIX + 'set-evaluate-setting', params);
//投诉与建议-追评列表
export const getEvaluateReplyList = params => requests(PREFIX + 'evaluate-detail-list', params);
//投诉与建议-添加追评
export const addEvaluateReply = params => requests(PREFIX + 'reply-evaluation', params);
//投诉与建议-删除回复
export const delEvaluateReply = params => requests(PREFIX + 'delete-evaluate-reply', params);
//投诉与建议-分页列表信息-导出csv
export const exportProblemsCsv = config.api + PREFIX + 'export-problems-csv';
......@@ -49,9 +49,7 @@
</template>
</el-table-column>
<el-table-column align="left" width="150" prop="callTime" label="通话时长(秒)">
<template slot-scope="scope">
{{ scope.row.callTime }}
</template>
<template slot-scope="scope"> {{ scope.row.callTime }}</template>
</el-table-column>
<el-table-column align="left" width="150" prop="callFee" label="录音">
<template slot-scope="scope">
......@@ -76,8 +74,8 @@ export default {
return {
formatDateTimeByType,
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
callStatusOption: [{ value: '', label: '全部' }, { value: 1, label: '未接通' }, { value: 2, label: '接通' }],
telTaskTypeOption: [{ value: '', label: '全部' }, { value: 1, label: '不良评价回访' }, { value: 2, label: 'ECM话务任务' }],
callStatusOption: [{ value: '', label: '全部' }, { value: 1, label: '未接通' }, { value: 2, label: '接通' }], // eslint-disable-line
telTaskTypeOption: [{ value: '', label: '全部' }, { value: 1, label: '不良评价回访' }, { value: 2, label: 'ECM话务任务' }], // eslint-disable-line
listParams: { marketingType: '', sceneSettingId: '', phoneNumber: '', currentPage: 1, pageSize: 20, callStatus: '', telTaskType: '', memberId: '', storeId: '', referId: '' },
total: 0,
loading: false,
......@@ -99,7 +97,7 @@ export default {
},
created() {
this.$store.commit('aside_handler', false);
this.$store.commit('mutations_breadcrumb', [{ name: '会员管理', path: '' }, { name: '通话记录', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '会员管理', path: '' }, { name: '通话记录', path: '' }]); // eslint-disable-line
this.getTableList();
this.$store.commit(
'mutations_layoutTips',
......
......@@ -59,7 +59,7 @@ export default {
},
created() {
this.$store.commit('aside_handler', false);
this.$store.commit('mutations_breadcrumb', [{ name: '会员管理', path: '' }, { name: '通话记录', path: '/calllog/index' }, { name: '录音存储设置', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '会员管理', path: '' }, { name: '通话记录', path: '/calllog/index' }, { name: '录音存储设置', path: '' }]); // eslint-disable-line
},
mounted() {
if (enableAccessControl()) {
......
......@@ -48,7 +48,7 @@ export default {
listParams: {
type: ''
},
kpiNameOptions: [{ label: '领取次数', value: 'card-puton1' }, { label: '使用次数', value: 'card-puton2' }, { label: '销售额', value: 'card-puton3' }],
kpiNameOptions: [{ label: '领取次数', value: 'card-puton1' }, { label: '使用次数', value: 'card-puton2' }, { label: '销售额', value: 'card-puton3' }], // eslint-disable-line
tableHeader: [
{ label: '渠道名称', prop: 'receiveName', align: 'left', minWidth: '200' },
{
......@@ -103,9 +103,9 @@ export default {
beginTime: '',
endTime: ''
};
this.kpiNameOptions = [{ label: '领取次数', value: 'shelf-cards1' }, { label: '使用次数', value: 'shelf-cards2' }, { label: '销售额', value: 'shelf-cards3' }];
this.kpiNameOptions = [{ label: '领取次数', value: 'shelf-cards1' }, { label: '使用次数', value: 'shelf-cards2' }, { label: '销售额', value: 'shelf-cards3' }]; // eslint-disable-line
this.cardTrendEchart();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '/card/shelf' }, { name: '卡券展架报表', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '/card/shelf' }, { name: '卡券展架报表', path: '' }]); // eslint-disable-line
} else {
this.chartParams = {
kpiName: 'card-puton1',
......@@ -114,9 +114,9 @@ export default {
endTime: '',
day: 1
};
(this.kpiNameOptions = [{ label: '领取次数', value: 'card-puton1' }, { label: '使用次数', value: 'card-puton2' }, { label: '销售额', value: 'card-puton3' }]), this.cardChannelAnalysis();
(this.kpiNameOptions = [{ label: '领取次数', value: 'card-puton1' }, { label: '使用次数', value: 'card-puton2' }, { label: '销售额', value: 'card-puton3' }]), this.cardChannelAnalysis(); // eslint-disable-line
this.cardTrendEchart();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券库', path: '/card/list' }, { name: '卡券报表', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券库', path: '/card/list' }, { name: '卡券报表', path: '' }]); // eslint-disable-line
}
},
methods: {
......
......@@ -93,7 +93,7 @@ export default {
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '核销纠错', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '核销纠错', path: '' }]); // eslint-disable-line
},
methods: {
// 加载列表
......
<template>
<section class="dm-wrap">
<div class="pb22 clearfix">
<el-date-picker class="w400" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="refresh"></el-date-picker>
<el-select class="dm-select w160" v-model="listParams.cardType" clearable placeholder="所有销毁方式" @change="refresh">
<el-option v-for="(item, index) in destoryType" :key="index" :label="item.label" :value="item.value"></el-option>
</el-select>
<el-input v-model="listParams.searchParam" class="w300" placeholder="请输入卡券名称名称" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-button class="fr" type="danger" @click="visible = true">卡券销毁</el-button>
</div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading">
<el-table-column :show-overflow-tooltip="true" min-width="120" align="left" prop="cardName" label="卡券名称"></el-table-column>
<el-table-column :show-overflow-tooltip="true" width="100" align="left" prop="createTime" label="销毁时间">
<template slot-scope="scope">
<p class="cell-time">
{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="120" align="left" prop="orderNumber" label="销毁方式">
<template slot-scope="scope">
<p class="gray">{{ scope.row.orderNumber || '--' }}</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="120" align="left" prop="cardName" label="计划销毁数量"></el-table-column>
<el-table-column :show-overflow-tooltip="true" width="100" align="left" prop="createTime" label="销毁结果">
<template>
<p>成功:<span style="color:#52C41A;">1000</span></p>
<p>失败:<span style="color:#F5222D;">0</span></p>
</template>
</el-table-column>
<el-table-column label="操作" align="left" width="120px" fixed="right">
<template>
<el-button type="text">导出结果</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination v-show="tableList.length" background class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></el-pagination>
<vue-gic-export-excel :dialogVisible.sync="dialogVisible" :dataArr="tableList" :type="2" :excelUrl="excelUrl" :params="params" :projectName="projectName"></vue-gic-export-excel>
<destory-dialog :show.sync="visible" />
</section>
</template>
<script>
import { coupcardCheckList, exportCoupcardCheckExcel } from '@/service/api/cardApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import destoryDialog from './partials/destory-dialog';
import talbeMethods from '@/mixins/tableMethods.js';
import filterAvater from '@/mixins/filterAvater.js';
export default {
name: 'destory-list',
mixins: [talbeMethods, filterAvater],
data() {
return {
formatDateTimeByType,
visible: false,
dateTime: [],
listParams: {
beginTime: '',
endTime: '',
searchParam: '',
currentPage: 1,
pageSize: 20
},
destoryType: [{ value: 0, label: '抵金券' }, { value: 1, label: '折扣券' }, { value: 2, label: '兑换券' }], // eslint-disable-line
total: 0,
loading: false,
tableList: [],
projectName: 'marketing', // 当前项目名
dialogVisible: false,
excelUrl: '', // 下载数据的地址
params: {} // 传递的参数
};
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券销毁', path: '' }]); // eslint-disable-line
},
components: {
destoryDialog
},
methods: {
// 加载列表
async getTableList() {
return;
this.loading = true;
this.dataTimeFormat();
try {
let res = await coupcardCheckList(this.listParams);
this.tableList = res.result.result || [];
this.total = res.result.totalCount || 0;
} catch (err) {
this.$tips({ type: 'error', message: '加载列表失败' });
}
this.loading = false;
},
// 导出列表
exportExcel() {
this.dialogVisible = true;
this.excelUrl = exportCoupcardCheckExcel;
this.dataTimeFormat();
this.params = {
searchParam: this.listParams.searchParam,
beginTime: this.listParams.beginTime,
endTime: this.listParams.endTime,
requestProject: 'marketing'
};
},
/**-------辅助方法---------- */
dataTimeFormat() {
if (this.dateTime) {
this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.beginTime = '';
this.listParams.endTime = '';
}
}
}
};
</script>
......@@ -894,6 +894,6 @@ export default {
}
},
created() {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券库', path: '/card/list' }, { name: '卡券详情', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券库', path: '/card/list' }, { name: '卡券详情', path: '' }]); // eslint-disable-line
}
};
......@@ -159,7 +159,7 @@ export default {
data() {
return {
loading: false,
putOnTypeOptions: [{ value: 0, label: '立即发送' }, { value: 1, label: '选择时间发送' }],
putOnTypeOptions: [{ value: 0, label: '立即发送' }, { value: 1, label: '选择时间发送' }], // eslint-disable-line
pickerOptions: {
disabledDate(val) {
return Date.now() >= val.getTime() + 24 * 60 * 60 * 1000;
......@@ -236,7 +236,7 @@ export default {
created() {
this.listTemplateVariables();
this.sceneSettingList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '/card' }, { name: '卡券库', path: '/card/list' }, { name: '卡券群发', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '/card' }, { name: '卡券库', path: '/card/list' }, { name: '卡券群发', path: '' }]); // eslint-disable-line
this.$store.commit(
'mutations_layoutTips',
`<div class="layout--tips">
......
......@@ -48,7 +48,7 @@ export default {
total: 0,
loading: false,
tableList: [],
cardTypeOptions: [{ value: '', label: '全部卡券类型' }, { value: 0, label: '抵金券' }, { value: 1, label: '折扣券' }, { value: 2, label: '兑换券' }],
cardTypeOptions: [{ value: '', label: '全部卡券类型' }, { value: 0, label: '抵金券' }, { value: 1, label: '折扣券' }, { value: 2, label: '兑换券' }], // eslint-disable-line
sortFlag: false,
adjustStock: false,
currentCard: {}
......@@ -61,7 +61,7 @@ export default {
created() {
window.scrollTo(0, 0);
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券库', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券库', path: '' }]); // eslint-disable-line
},
methods: {
//编辑库存 前置
......
......@@ -45,7 +45,7 @@ export default {
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '/card/shelf' }, { name: '卡券展架管理', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '/card/shelf' }, { name: '卡券展架管理', path: '' }]); // eslint-disable-line
},
methods: {
// 加载列表
......
<template>
<el-dialog title="卡券销毁" :visible.sync="show" width="600px" :before-close="close">
<el-alert title="卡券销毁将不可撤回,请注意确认操作。" type="warning" class="pb10" :closable="false" />
<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" class="pt20">
<el-form-item label="选择卡券" prop="cardId">
<el-button v-show="!ruleForm.cardId" @click="showCardDialog = true">选择卡券</el-button>
<div v-show="ruleForm.cardId">
{{ ruleForm.cardName }}
<el-button type="text" @click="cleanCard" class="ml10">删除</el-button>
</div>
</el-form-item>
<el-form-item label="销毁方式" prop="type">
<el-radio-group v-model="ruleForm.type">
<el-radio :label="0">全部销毁</el-radio>
<el-radio :label="1">部分销毁</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="导入券码文件" prop="fileId">
<div>
<el-button icon="el-icon-upload2" class="dash-btn">点击上传</el-button>
<el-button type="text" class="ml10">点击下载文件模板</el-button>
</div>
<p style="margin-top:8px;color:#909399;font-size:12px;line-height:1;">券码数量单次最多不超过5000条</p>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="close">取 消</el-button>
<el-button type="primary" @click="submit">确认销毁</el-button>
</span>
<vue-gic-card :showCardDialog="showCardDialog" @selectCard="selectCard" :cardLimit="3" :cardType="null"></vue-gic-card>
</el-dialog>
</template>
<script>
export default {
name: 'destory-dialog',
props: {
show: {
type: Boolean,
default: false
}
},
data() {
return {
loading: false,
showCardDialog: false,
ruleForm: {
cardId: '',
cardName: '',
type: 0,
fileId: ''
},
rules: {
cardId: [{ required: true, message: '请选择卡券', trigger: 'change' }],
type: [{ required: true, message: '请选择销毁方式', trigger: 'change' }],
fileId: [{ required: true, message: '请上传文件', trigger: 'change' }]
}
};
},
methods: {
close() {
this.$refs.ruleForm.resetFields();
this.$emit('update:show', false);
},
submit() {
this.$refs.ruleForm.validate(valid => {
if (!valid) {
return;
}
});
},
cleanCard() {
this.ruleForm.cardId = '';
this.ruleForm.cardName = '';
this.$refs.ruleForm.validateField('cardId');
},
//选择卡券后置
selectCard(val) {
if (val) {
this.ruleForm.cardId = val.coupCardId;
this.ruleForm.cardName = val.cardName;
this.$refs.ruleForm.validateField('cardId');
}
this.showCardDialog = false;
}
}
};
</script>
<style lang="scss" scoped>
.dash-btn {
width: 174px;
border-style: dashed;
background: rgba(255, 255, 255, 1);
border-radius: 4px;
}
</style>
......@@ -21,9 +21,7 @@
</template>
</el-table-column>
<el-table-column prop="cardLimit" :show-overflow-tooltip="false" label="领取限制" width="90">
<template slot-scope="scope">
{{ scope.row.cardLimit }}张/人
</template>
<template slot-scope="scope"> {{ scope.row.cardLimit }}张/人 </template>
</el-table-column>
<el-table-column :show-overflow-tooltip="false" :width="90" align="left" prop="storeMode" label="适用门店">
<template slot-scope="scope">
......
......@@ -68,8 +68,8 @@ export default {
formatDateTimeByType,
dateTime: [Date.now() - 3 * 30 * 24 * 60 * 60 * 1000, Date.now()],
dateTime2: ['', ''],
statusOptions: [{ value: '', label: '全部关注状态' }, { value: 0, label: '已关注' }, { value: 1, label: '未关注' }],
cardTypeOptions: [{ value: '', label: '全部卡券类型' }, { value: 0, label: '抵金券' }, { value: 1, label: '折扣券' }, { value: 2, label: '兑换券' }],
statusOptions: [{ value: '', label: '全部关注状态' }, { value: 0, label: '已关注' }, { value: 1, label: '未关注' }], // eslint-disable-line
cardTypeOptions: [{ value: '', label: '全部卡券类型' }, { value: 0, label: '抵金券' }, { value: 1, label: '折扣券' }, { value: 2, label: '兑换券' }], // eslint-disable-line
recordLoading: false,
recordList: [],
listParams: {
......@@ -94,7 +94,7 @@ export default {
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券记录', path: '' }, { name: '临时领取记录', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券记录', path: '' }, { name: '临时领取记录', path: '' }]); // eslint-disable-line
this.$store.commit(
'mutations_layoutTips',
`<div class="layout--tips">
......
......@@ -113,7 +113,7 @@ export default {
formatDateTimeByType,
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
dateTime2: ['', ''],
cardStatusOptions: [{ value: '', label: '全部卡券状态' }, { value: 4, label: '待核销' }, { value: 5, label: '已核销' }, { value: 6, label: '已过期' }, { value: 7, label: '已销毁' }, { value: 8, label: '已占用' }],
cardStatusOptions: [{ value: '', label: '全部卡券状态' }, { value: 4, label: '待核销' }, { value: 5, label: '已核销' }, { value: 6, label: '已过期' }, { value: 7, label: '已销毁' }, { value: 8, label: '已占用' }], // eslint-disable-line
recordLoading: false,
recordList: [],
listParams: {
......@@ -140,7 +140,7 @@ export default {
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券记录', path: '' }, { name: '领取记录', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券记录', path: '' }, { name: '领取记录', path: '' }]); // eslint-disable-line
this.$store.commit(
'mutations_layoutTips',
`<div class="layout--tips">
......
......@@ -70,7 +70,7 @@ export default {
const that = this;
return {
formatDateTimeByType,
cardStatusList: [{ value: 0, label: '全部卡券状态' }, { value: 3, label: '待领取' }, { value: 4, label: '待核销' }, { value: 5, label: ' 已核销' }, { value: 6, label: '已过期' }, { value: 7, label: '已销毁' }, { value: 8, label: '已占用' }],
cardStatusList: [{ value: 0, label: '全部卡券状态' }, { value: 3, label: '待领取' }, { value: 4, label: '待核销' }, { value: 5, label: ' 已核销' }, { value: 6, label: '已过期' }, { value: 7, label: '已销毁' }, { value: 8, label: '已占用' }], // eslint-disable-line
loading: false,
recordList: [],
receiveTime: ['', ''], // 领取时间
......@@ -155,7 +155,7 @@ export default {
},
created() {
this.getCouponDetail(); // 获取卡券详情
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券记录', path: '' }, { name: '投放记录', path: '/card/record/send' }, { name: '投放详情', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券记录', path: '' }, { name: '投放记录', path: '/card/record/send' }, { name: '投放详情', path: '' }]); // eslint-disable-line
},
methods: {
formatStatus(row) {
......
......@@ -111,7 +111,7 @@ export default {
`
);
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券记录', path: '' }, { name: '投放记录', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券记录', path: '' }, { name: '投放记录', path: '' }]); // eslint-disable-line
},
beforeDestroy() {
this.$store.commit('mutations_layoutTips', '');
......
<template>
<section>
<div class="pb22 clearfix">
<el-date-picker class="w250" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="refresh"></el-date-picker>
<el-input v-model="listParams.search" class="w300" placeholder="卡券名称/卡券代码/会员信息" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-button class="fr" type="primary" @click="exportExcel" icon="iconfont icon-icon_yunxiazai fz14"> 下载Excel</el-button>
</div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading">
<el-table-column :show-overflow-tooltip="true" width="100" align="left" prop="sendBackTime" label="退券时间">
<template slot-scope="scope">
<p class="cell-time">
{{ formatDateTimeByType(scope.row.sendBackTime, 'yyyy-MM-dd-HH-mm', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.sendBackTime, 'yyyy-MM-dd-HH-mm', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="120" align="left" prop="backOrderNumber" label="退券订单号">
<template slot-scope="scope">
<p class="gray">{{ scope.row.backOrderNumber || '--' }}</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" width="120" align="left" prop="usedTime" label="原始订单时间">
<template slot-scope="scope">
<p class="cell-time">
{{ formatDateTimeByType(scope.row.usedTime, 'yyyy-MM-dd-HH-mm', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.usedTime, 'yyyy-MM-dd-HH-mm', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="120" align="left" prop="oorderNumber" label="原始订单号">
<template slot-scope="scope">
<p class="gray">{{ scope.row.oorderNumber || '--' }}</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="120" header-align="left" align="left" prop="memberId" label="会员信息">
<template slot-scope="scope">
<a :href="'/member/#/wechatmemberDetail?memberId=' + scope.row.memberId" target="_blank">
<img class="vertical-middle table__avatar--40" :src="scope.row.imageUrl || defaultAvatar" width="60" height="60" />
<div class="inline-block vertical-middle">
<p class="table-name--ellipsis">{{ scope.row.memberName || '--' }}</p>
<p class="fz13 gray">{{ scope.row.phoneNumber || '--' }}</p>
</div>
</a>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" width="140" align="left" prop="cardType" label="卡券类型">
<template slot-scope="scope">
<p>{{ scope.row.cardType === 0 ? '抵金券' : scope.row.cardType === 1 ? '折扣券' : '兑换券' }}</p>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="120" align="left" prop="cardCode" label="卡券代码"></el-table-column>
<!-- <el-table-column width="100" align="left" prop="status" label="卡券状态">
<template slot-scope="scope">
<span v-html="filterCardStatus(scope.row)"></span>
</template>
</el-table-column> -->
</el-table>
<el-pagination v-show="tableList.length" background class="dm-pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listParams.currentPage" :page-sizes="[20, 40, 60, 80]" :page-size="listParams.pageSize" layout="total, sizes, prev, pager, next" :total="total"></el-pagination>
<vue-gic-export-excel :dialogVisible.sync="dialogVisible" :dataArr="tableList" :type="2" :excelUrl="excelUrl" :params="params" :projectName="projectName"></vue-gic-export-excel>
</section>
</template>
<script>
import { refundPage, exportBackCoupExcel } from '@/service/api/cardApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import talbeMethods from '@/mixins/tableMethods.js';
import filterAvater from '@/mixins/filterAvater.js';
export default {
name: 'refund-list',
mixins: [talbeMethods, filterAvater],
data() {
return {
formatDateTimeByType,
dateTime: [,],
listParams: {
sendBackBeginTime: '',
sendBackEndTime: '',
search: '',
currentPage: 1,
pageSize: 20
},
total: 0,
loading: false,
tableList: [],
projectName: 'marketing', // 当前项目名
dialogVisible: false,
excelUrl: '', // 下载数据的地址
params: {} // 传递的参数
};
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '退券记录', path: '' }]); // eslint-disable-line
},
methods: {
// 加载列表
async getTableList() {
this.loading = true;
this.dataTimeFormat();
try {
let res = await refundPage(this.listParams);
this.tableList = res.result.result || [];
this.total = res.result.totalCount || 0;
} catch (err) {
this.$tips({ type: 'error', message: '加载列表失败' });
}
this.loading = false;
},
// 导出列表
exportExcel() {
this.dialogVisible = true;
this.excelUrl = exportBackCoupExcel;
this.dataTimeFormat();
this.params = {
searchParam: this.listParams.search,
sendBackBeginTime: this.listParams.sendBackBeginTime,
sendBackEndTime: this.listParams.sendBackEndTime,
requestProject: 'marketing'
};
},
// 列表状态过滤器
// 8.优惠券状态(0:删除,1:正常,2:失效,3:已发放,4:已领取,5:已使用,6:已到期,7:已销毁, 8:已占用)
filterCardStatus(row) {
let _content = '';
if (row.status == 0) {
_content = `<div class="dm-status--info">已删除</div>`;
} else if (row.status == 1) {
_content = `<div class="dm-status--primary">正常</div>`;
} else if (row.status == 2) {
_content = `<div class="dm-status--info">已失效</div>`;
} else if (row.status == 3) {
_content = `<div class="dm-status--primary">已发放</div>`;
} else if (row.status == 4) {
_content = `<div class="dm-status--success">待核销</div>`;
} else if (row.status == 5) {
_content = `<div class="dm-status--success">已核销</div>`;
} else if (row.status == 6) {
_content = `<div class="dm-status--info">已过期</div>`;
} else if (row.status == 7) {
_content = `<div class="dm-status--info">已销毁</div>`;
} else if (row.status == 8) {
_content = `<div class="dm-status--info">已占用</div>`;
}
return _content;
},
/**-------辅助方法---------- */
dataTimeFormat() {
if (this.dateTime) {
this.listParams.sendBackBeginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.sendBackEndTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else {
this.listParams.sendBackBeginTime = '';
this.listParams.sendBackEndTime = '';
}
}
}
};
</script>
......@@ -16,9 +16,7 @@
<el-table-column width="120" align="left" prop="getedQuantity" label="领取数量"></el-table-column>
<el-table-column width="120" align="left" prop="usageQuantity" label="使用数量"></el-table-column>
<el-table-column width="120" align="left" prop="col4" label="核销率">
<template slot-scope="scope">
{{ ((scope.row.usageQuantity * 100) / (scope.row.getedQuantity === 0 ? 1 : scope.row.getedQuantity)).toFixed(2) }}%
</template>
<template slot-scope="scope"> {{ ((scope.row.usageQuantity * 100) / (scope.row.getedQuantity === 0 ? 1 : scope.row.getedQuantity)).toFixed(2) }}% </template>
</el-table-column>
<el-table-column width="120" align="left" prop="saleAmount" label="销售额"></el-table-column>
<el-table-column label="操作" align="left" width="160px" fixed="right">
......@@ -58,7 +56,7 @@ export default {
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '' }]); // eslint-disable-line
},
methods: {
//门店回调
......
......@@ -52,7 +52,7 @@ export default {
},
data() {
return {
successOptions: [{ value: '', label: '发送条件' }, { value: 0, label: '不满足' }, { value: 1, label: '满足' }],
successOptions: [{ value: '', label: '发送条件' }, { value: 0, label: '不满足' }, { value: 1, label: '满足' }], // eslint-disable-line
listParams: {
ecmPlanQuartzLogId: '',
success: '',
......
......@@ -47,7 +47,7 @@ export default {
let that = this;
return {
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
typeOptions: [{ value: '', label: '所有营销方式' }, { value: 'teletext', label: '图文' }, { value: 'text', label: '文本' }, { value: 'image', label: '图片' }, { value: 'card', label: '卡券' }, { value: 'wxa', label: '小程序' }, { value: 'message', label: '短信' }, { value: 'teltask', label: '话务' }, { value: 'integral', label: '积分' }],
typeOptions: [{ value: '', label: '所有营销方式' }, { value: 'teletext', label: '图文' }, { value: 'text', label: '文本' }, { value: 'image', label: '图片' }, { value: 'card', label: '卡券' }, { value: 'wxa', label: '小程序' }, { value: 'message', label: '短信' }, { value: 'teltask', label: '话务' }, { value: 'integral', label: '积分' }], // eslint-disable-line
listParams: {
ecmPlanId: this.$route.params.id,
beginTime: '',
......@@ -101,7 +101,7 @@ export default {
},
created() {
this.ecmBatchSendInfos();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }, { name: this.$route.query.name + ' - 批次记录', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }, { name: this.$route.query.name + ' - 批次记录', path: '' }]); // eslint-disable-line
this.$store.commit(
'mutations_layoutTips',
`<div class="layout--tips">
......
......@@ -49,7 +49,7 @@
import { ecmCurrentSendInfos, ecmCurrentSendDetails, exportCurrentSendDetails } from '@/service/api/ecmApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import memberInfo from '@/components/member-info/index.vue';
const typeOptions = [{ value: '', label: '所有类型' }, { value: 'teletext', label: '图文' }, { value: 'text', label: '文本' }, { value: 'image', label: '图片' }, { value: 'card', label: '卡券' }, { value: 'wxa', label: '小程序' }, { value: 'message', label: '短信' }, { value: 'teltask', label: '话务' }, { value: 'integral', label: '积分' }];
const typeOptions = [{ value: '', label: '所有类型' }, { value: 'teletext', label: '图文' }, { value: 'text', label: '文本' }, { value: 'image', label: '图片' }, { value: 'card', label: '卡券' }, { value: 'wxa', label: '小程序' }, { value: 'message', label: '短信' }, { value: 'teltask', label: '话务' }, { value: 'integral', label: '积分' }]; // eslint-disable-line
export default {
name: 'ecm-current-list',
components: {
......@@ -58,7 +58,7 @@ export default {
data() {
return {
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
successOptions: [{ value: '', label: '所有状态' }, { value: 1, label: '成功' }, { value: 0, label: '失败' }],
successOptions: [{ value: '', label: '所有状态' }, { value: 1, label: '成功' }, { value: 0, label: '失败' }], // eslint-disable-line
listParams: {
ecmPlanId: this.$route.params.id,
ecmMarketingTypeRelationIds: '',
......@@ -136,7 +136,7 @@ export default {
},
created() {
this.ecmCurrentSendInfos();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }, { name: this.$route.query.name + ' - 实时发送记录', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }, { name: this.$route.query.name + ' - 实时发送记录', path: '' }]); // eslint-disable-line
this.$store.commit('mutations_layoutTips', `<div class="layout--tips"><i class="el-icon-info"></i>历史数据限制:2018年11月15日之前的历史营销计划,没有详细数据</div>`);
setTimeout(_ => {
this.$store.commit('mutations_layoutTips', '');
......
......@@ -17,8 +17,8 @@ export default {
ecmPlanId: '', // 必传,
code: '1001',
loading: false,
effectActionOptions: [{ value: 'subscribe', label: '关注触发' }, { value: 'authentication', label: '认证触发' }, { value: 'consume', label: '消费触发' }, { value: 'upgrade', label: '会员卡升级触发' }, { value: 'degrade', label: '会员卡降级触发' }],
marketingTimesTypeOptions: [{ value: 0, label: '总共触发' }, { value: 1, label: '每天触发' }, { value: 2, label: '每周触发' }, { value: 3, label: '每月触发' }, { value: 4, label: '每年触发' }, { value: -1, label: '无限次触发' }],
effectActionOptions: [{ value: 'subscribe', label: '关注触发' }, { value: 'authentication', label: '认证触发' }, { value: 'consume', label: '消费触发' }, { value: 'upgrade', label: '会员卡升级触发' }, { value: 'degrade', label: '会员卡降级触发' }], // eslint-disable-line
marketingTimesTypeOptions: [{ value: 0, label: '总共触发' }, { value: 1, label: '每天触发' }, { value: 2, label: '每周触发' }, { value: 3, label: '每月触发' }, { value: 4, label: '每年触发' }, { value: -1, label: '无限次触发' }], // eslint-disable-line
dayOptions: Array(24)
.fill()
.map((v, i) => ({ value: i, label: i + ':00' })),
......@@ -464,7 +464,7 @@ export default {
return;
}
// 填一个就行
if (this.consumeChecked.cost && (!this.form.lowest_cost && !this.form.max_cost)) {
if (this.consumeChecked.cost && !this.form.lowest_cost && !this.form.max_cost) {
this.$tips({ type: 'warning', message: '请填写消费金额区间值' });
return;
}
......@@ -473,7 +473,7 @@ export default {
return;
}
// 填一个就行
if (this.consumeChecked.count && (!this.form.lowest_cost_count && !this.form.max_cost_count)) {
if (this.consumeChecked.count && !this.form.lowest_cost_count && !this.form.max_cost_count) {
this.$tips({ type: 'warning', message: '请填写消费件数区间值' });
return;
}
......@@ -836,7 +836,7 @@ export default {
this.sceneSettingList();
breadcrumbName = '智能营销新增';
}
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }, { name: breadcrumbName, path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }, { name: breadcrumbName, path: '' }]); // eslint-disable-line
this.listTemplateVariables();
}
};
......@@ -11,7 +11,7 @@ export default {
return {};
},
created() {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }]); // eslint-disable-line
this.$store.commit('aside_handler', false);
}
};
......
......@@ -44,13 +44,13 @@
<script>
import { loadEcmList, deleteEcm, offlineEcmPlan } from '@/service/api/ecmApi.js';
import { sceneSettingList } from '@/service/api/commonApi.js';
const marketingTypeOptions = [{ value: '', label: '所有发送类型' }, { value: 'card', label: '卡券营销' }, { value: 'message', label: '短信营销' }, { value: 'teletext', label: '图文营销' }, { value: 'text', label: '文本营销' }, { value: 'teltask', label: '话务' }, { value: 'image', label: '微信图片' }];
const marketingTypeOptions = [{ value: '', label: '所有发送类型' }, { value: 'card', label: '卡券营销' }, { value: 'message', label: '短信营销' }, { value: 'teletext', label: '图文营销' }, { value: 'text', label: '文本营销' }, { value: 'teltask', label: '话务' }, { value: 'image', label: '微信图片' }]; // eslint-disable-line
export default {
name: 'ecm',
data() {
return {
effectTypeOption: [{ value: '', label: '所有时效' }, { value: 0, label: '实时' }, { value: 1, label: '定时' }],
onlineOptions: [{ value: '', label: '所有上线状态' }, { value: 0, label: '待上线' }, { value: 1, label: '已上线' }, { value: 2, label: '已下线' }],
effectTypeOption: [{ value: '', label: '所有时效' }, { value: 0, label: '实时' }, { value: 1, label: '定时' }], // eslint-disable-line
onlineOptions: [{ value: '', label: '所有上线状态' }, { value: 0, label: '待上线' }, { value: 1, label: '已上线' }, { value: 2, label: '已下线' }], // eslint-disable-line
sceneSettingIdOptions: [],
marketingTypeOptions,
listParams: {
......@@ -108,7 +108,7 @@ export default {
this.loadEcmList();
this.sceneSettingList();
this.$store.commit('aside_handler', false);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }]); // eslint-disable-line
},
methods: {
search() {
......
......@@ -27,9 +27,7 @@
</template>
</el-table-column>
<el-table-column prop="cardLimit" :show-overflow-tooltip="false" label="领取限制" width="90">
<template slot-scope="scope">
{{ scope.row.cardLimit }}张/人
</template>
<template slot-scope="scope"> {{ scope.row.cardLimit }}张/人 </template>
</el-table-column>
<el-table-column :show-overflow-tooltip="false" :width="90" align="left" prop="storeMode" label="适用门店">
<template slot-scope="scope">
......
......@@ -48,7 +48,7 @@ export default {
comName: 'integral'
},
rules: {
integral: [{ required: true, message: '请输入积分值', trigger: 'blur' }, { validator: validInteral, trigger: 'blur' }]
integral: [{ required: true, message: '请输入积分值', trigger: 'blur' }, { validator: validInteral, trigger: 'blur' }] // eslint-disable-line
},
loading: false
};
......
......@@ -69,7 +69,7 @@ export default {
list: [],
goodList: [],
badList: [],
rate: [{ name: '服务态度评分', list: [], score: 0, sum: 1 }, { name: '专业程度评分', list: [], score: 0, sum: 1 }, { name: '门店环境评分', list: [], score: 0, sum: 1 }],
rate: [{ name: '服务态度评分', list: [], score: 0, sum: 1 }, { name: '专业程度评分', list: [], score: 0, sum: 1 }, { name: '门店环境评分', list: [], score: 0, sum: 1 }], // eslint-disable-line
detailShow: false,
scoredetailShow: false,
groupId: '',
......@@ -77,7 +77,7 @@ export default {
};
},
created() {
this.$store.commit('mutations_breadcrumb', [{ name: '企业管理', path: '' }, { name: '服务监督', path: '/evaluation' }, { name: '评价概览', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '企业管理', path: '' }, { name: '服务监督', path: '/evaluation' }, { name: '评价概览', path: '' }]); // eslint-disable-line
this.evaluateOverviewEchart(1);
this.evaluateOverviewEchart(2);
this.evaluateOverviewEchart(3);
......@@ -209,17 +209,17 @@ export default {
this.rate[0].name = '服务态度评分';
this.rate[0].score = fwtdScore;
this.rate[0].sum = fwtdSum;
this.rate[0].list = [{ socre: 1, count: fwtdCount2 }, { socre: 2, count: fwtdCount4 }, { socre: 3, count: fwtdCount6 }, { socre: 4, count: fwtdCount8 }, { socre: 5, count: fwtdCount10 }];
this.rate[0].list = [{ socre: 1, count: fwtdCount2 }, { socre: 2, count: fwtdCount4 }, { socre: 3, count: fwtdCount6 }, { socre: 4, count: fwtdCount8 }, { socre: 5, count: fwtdCount10 }]; // eslint-disable-line
this.rate[1].name = '专业程度评分';
this.rate[1].score = zycdScore;
this.rate[1].sum = zycdSum;
this.rate[1].list = [{ socre: 1, count: zycdCount2 }, { socre: 2, count: zycdCount4 }, { socre: 3, count: zycdCount6 }, { socre: 4, count: zycdCount8 }, { socre: 5, count: zycdCount10 }];
this.rate[1].list = [{ socre: 1, count: zycdCount2 }, { socre: 2, count: zycdCount4 }, { socre: 3, count: zycdCount6 }, { socre: 4, count: zycdCount8 }, { socre: 5, count: zycdCount10 }]; // eslint-disable-line
this.rate[2].name = '门店环境评分';
this.rate[2].score = mdhjScore;
this.rate[2].sum = mdhjSum;
this.rate[2].list = [{ socre: 1, count: mdhjCount2 }, { socre: 2, count: mdhjCount4 }, { socre: 3, count: mdhjCount6 }, { socre: 4, count: mdhjCount8 }, { socre: 5, count: mdhjCount10 }];
this.rate[2].list = [{ socre: 1, count: mdhjCount2 }, { socre: 2, count: mdhjCount4 }, { socre: 3, count: mdhjCount6 }, { socre: 4, count: mdhjCount8 }, { socre: 5, count: mdhjCount10 }]; // eslint-disable-line
}
if (type === 3) {
const goodTagList = res.result.goodTagList;
......
......@@ -3,7 +3,7 @@
<div class="clearfix pb22">
<store-group width="240" class="pr5" :model="storeGroupData" @commit-store="getStoreGroup"></store-group>
<el-date-picker v-if="$route.meta.type !== 'bad'" class="w250" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="refresh"></el-date-picker>
<el-input v-model="listParams.searchName" class="w300" placeholder="订单号/门店名称/会员姓名/卡号" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-input v-model="listParams.searchName" class="w350" placeholder="订单号/门店名称/会员姓名/卡号/导购名称" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-button icon="iconfont icon-icon_yunxiazai fz14" v-if="$route.meta.type !== 'bad'" class="fr" type="primary" @click="exportLatestEvaluate"> 下载Excel</el-button>
<el-button icon="el-icon-setting fz14" class="fr mr10 setting" @click="auto.visible = true" type="primary"></el-button>
</div>
......@@ -16,6 +16,7 @@
</el-select>
<el-checkbox class="vertical-middle" size="small" border v-if="$route.meta.type !== 'bad'" :true-label="1" :false-label="0" v-model="listParams.isBad" @change="refresh">不良评价</el-checkbox>
<el-checkbox class="vertical-middle" size="small" border v-if="$route.meta.type !== 'bad'" :true-label="1" :false-label="0" v-model="listParams.isContent" @change="refresh">有评语</el-checkbox>
<el-checkbox class="vertical-middle" size="small" border v-if="$route.meta.type !== 'bad'" :true-label="1" :false-label="0" v-model="listParams.hasReply" @change="refresh">有追评</el-checkbox>
</div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading" element-loading-text="拼命加载中">
<el-table-column :show-overflow-tooltip="false" width="90" align="left" prop="showStatus" fixed="left" label="服务号显示">
......@@ -23,7 +24,7 @@
<el-switch v-model="scope.row.showStatus" :active-value="1" :inactive-value="0" @change="changeShow(scope.row)"> </el-switch>
</template>
</el-table-column>
<el-table-column :show-overflow-tooltip="false" width="160" align="left" prop="createTime" label="评价时间">
<el-table-column :show-overflow-tooltip="false" width="160" align="left" prop="createTime" label="首次评价时间">
<template slot-scope="scope">
<p>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p>
<p class="fz13 gray">订单号:{{ scope.row.orderNumber }}</p>
......@@ -76,10 +77,10 @@
<el-table-column :show-overflow-tooltip="false" width="80" align="center" prop="replyStatus" label="回复">
<template slot-scope="scope">
<el-button v-if="scope.row.replyStatus !== 1 && scope.row.content" type="text" @click="replyData(scope.row)">立即回复</el-button>
<el-popover v-if="scope.row.replyStatus === 1" class="item" trigger="hover" :content="scope.row.replyContent" placement="top-start">
<i slot="reference" class="el-icon-message fz20 danger-color cursor"></i>
</el-popover>
<el-button type="text" @click="replyData(scope.row)">
<template v-if="scope.row.replyStatus !== 1 && scope.row.content">立即回复</template>
<i v-if="scope.row.replyStatus === 1" class="el-icon-message fz20 danger-color cursor"></i>
</el-button>
</template>
</el-table-column>
......@@ -138,8 +139,8 @@ export default {
loading: false,
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
tableList: [],
listParams: { searchName: '', currentPage: 1, pageSize: 20, isBad: 0, isContent: 0, currentStoreGroupId: '', visiteStatus: -1, beginTime: '', endTime: '' },
visiteStatusOptions: [{ value: -1, label: '所有' }, { value: 0, label: '待分配' }, { value: 1, label: '已分配' }, { value: 2, label: '回访结束' }, { value: 3, label: '回访逾期' }, { value: 5, label: '无需回访' }, { value: 6, label: '回访取消' }],
listParams: { searchName: '', currentPage: 1, pageSize: 20, isBad: 0, isContent: 0, hasReply: 0, currentStoreGroupId: '', visiteStatus: -1, beginTime: '', endTime: '' },
visiteStatusOptions: [{ value: -1, label: '所有' }, { value: 0, label: '待分配' }, { value: 1, label: '已分配' }, { value: 2, label: '回访结束' }, { value: 3, label: '回访逾期' }, { value: 5, label: '无需回访' }, { value: 6, label: '回访取消' }], // eslint-disable-line
total: 0,
replyShow: false,
replyId: '',
......@@ -160,9 +161,9 @@ export default {
created() {
this.getTableList();
if (this.$route.params.type) {
this.$store.commit('mutations_breadcrumb', [{ name: '企业管理', path: '' }, { name: '服务监督', path: '/evaluation' }, { name: '评价概览', path: '/evaluation/index/charts' }, { name: '差评详情', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '企业管理', path: '' }, { name: '服务监督', path: '/evaluation' }, { name: '评价概览', path: '/evaluation/index/charts' }, { name: '差评详情', path: '' }]); // eslint-disable-line
} else {
this.$store.commit('mutations_breadcrumb', [{ name: '企业管理', path: '' }, { name: '服务监督', path: '/evaluation' }, { name: '最新评价', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '企业管理', path: '' }, { name: '服务监督', path: '/evaluation' }, { name: '最新评价', path: '' }]); // eslint-disable-line
}
},
mounted() {
......
......@@ -50,7 +50,7 @@ export default {
handleRemark: ''
},
rules: {
handleRemark: [{ required: true, message: '请输入回复内容', trigger: 'blur' }, { max: 200, message: '字数不能大于200', trigger: 'blur' }]
handleRemark: [{ required: true, message: '请输入回复内容', trigger: 'blur' }, { max: 200, message: '字数不能大于200', trigger: 'blur' }] // eslint-disable-line
},
isInfo: this.$route.meta.type === 'info',
imgUrl: '', // 传递的图片 src
......@@ -58,7 +58,7 @@ export default {
};
},
created() {
this.$store.commit('mutations_breadcrumb', [{ name: '企业管理', path: '' }, { name: '服务监督', path: '/evaluation' }, { name: '投诉与建议', path: '/evaluation/suggestion' }, { name: '投诉与建议处理', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '企业管理', path: '' }, { name: '服务监督', path: '/evaluation' }, { name: '投诉与建议', path: '/evaluation/suggestion' }, { name: '投诉与建议处理', path: '' }]); // eslint-disable-line
this.getSuggestionsDetail();
},
computed: {
......
<template>
<el-dialog title="回复" :visible.sync="show" width="30%" :before-close="close">
<el-form :model="form" :rules="rules" ref="form" label-width="0" class="demo-ruleForm">
<el-form-item prop="content">
<dm-input type="textarea" v-model="form.content" :rows="4" placeholder="请输入回复内容" :maxlength="200"></dm-input>
</el-form-item>
</el-form>
<el-dialog title="查看详情" :visible.sync="show" width="670px" :before-close="close">
<div style="pading-left: 15px;" v-loading="loading">
<div class="rpList">
<div v-for="(item, idx) in replyList" :key="idx">
<!-- "replyType": 0, // 回复类型 (0:会员,1:商家) -->
<i class="iconfont sign" :class="`${item.replyType ? 'icon-kefu1 warning-color' : 'icon-huiyuan-copy blue'}`"></i>
<div class="head">
<p class="name">{{ item.replyType ? item.clerkName : item.memberName }}</p>
<p>{{ formatDateTimeByType(item.replyTime, 'yyyy-MM-dd-HH-mm') }}</p>
<div class="del">
<dm-delete @confirm="del(item)" tips="评论一旦删除,将无法在小程序端展示,请确认是否删除该条评论?" v-if="!['firstEvaluate', 'firstReply'].includes(item.evaluateReplyId)">
<el-button type="text">删除</el-button>
</dm-delete>
</div>
</div>
<div class="content">
<div class="text">{{ item.replyContent }}</div>
<!-- <div class="imgl" v-if="item.imgList && item.imgList.length">
<img v-for="(img, idx) in item.imgList" :key="idx" style="width: 52px; height: 52px;cursor: pointer;" title="点击查看大图" class="mr10" :src="img" preview-title-enable="true" preview-nav-enable="true" @click="showImage(img)" />
</div> -->
</div>
</div>
</div>
<div class="empty" v-show="!replyList.length">暂无回复</div>
<el-form :model="form" :rules="rules" ref="form" label-width="0" class="demo-ruleForm">
<p class="mb5 regular-font-color">添加回复:</p>
<el-form-item prop="content">
<dm-input type="textarea" v-model="form.content" :rows="4" placeholder="请输入回复内容" :maxlength="200"></dm-input>
</el-form-item>
</el-form>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="close">关 闭</el-button>
<el-button type="primary" @click="submit('form')">提 交</el-button>
</span>
<vue-gic-img-preview :imgUrl="imgUrl" :imgShowFlag="imgShowFlag" @hideImage="hideImage"></vue-gic-img-preview>
</el-dialog>
</template>
<script>
import { evaluationReply } from '@/service/api/evaluationApi.js';
import { formatDateTimeByType } from '@/utils/index.js';
import { addEvaluateReply, getEvaluateReplyList, delEvaluateReply } from '@/service/api/evaluationApi.js';
export default {
props: {
show: {
......@@ -30,23 +56,81 @@ export default {
form: {
content: ''
},
shouldRefresh: false,
loading: false,
rules: {
content: [{ required: true, message: '请输入回复内容', trigger: 'blur' }, { max: 200, message: '字数不能大于200', trigger: 'blur' }]
}
content: [{ required: true, message: '请输入回复内容', trigger: 'blur' }, { max: 200, message: '字数不能大于200', trigger: 'blur' }] // eslint-disable-line
},
srcList: [],
replyList: [],
imgShowFlag: false,
imgUrl: ''
};
},
watch: {
show(val) {
if (val) {
// 追评商户和用户评论暂无图片
// let arr = [];
// this.replyList.forEach(v => {
// if (v.sign && v.imgList && v.imgList.length) {
// arr = arr.concat(v.imgList);
// }
// });
// this.srcList = arr;
this.getEvaluateReplyList();
}
}
},
methods: {
formatDateTimeByType,
del({ evaluateReplyId }) {
this.loading = true;
delEvaluateReply({ evaluateReplyId }).then(res => {
this.loading = false;
if (res.errorCode === 0) {
this.getEvaluateReplyList();
this.$tips({ type: 'success', message: '删除成功' });
} else {
this.$tips({ type: 'warning', message: res.message || '删除失败' });
}
});
},
getEvaluateReplyList() {
this.loading = true;
getEvaluateReplyList({ evaluateId: this.id }).then(res => {
this.loading = false;
this.replyList = res.result || [];
});
},
close() {
if (this.shouldRefresh) {
this.$emit('refresh');
}
this.$refs.form.resetFields();
this.replyList = [];
this.srcList = [];
this.shouldRefresh = false;
this.$emit('update:show', false);
},
showImage(src) {
if (!src || src == '') {
return false;
}
this.imgShowFlag = true;
this.imgUrl = src;
},
hideImage(val) {
this.imgShowFlag = val;
},
submit(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
evaluationReply({ evaluateId: this.id, replyContent: this.form.content }).then(res => {
addEvaluateReply({ evaluateId: this.id, replyContent: this.form.content }).then(res => {
if (res.errorCode === 0) {
this.close();
this.$emit('refresh');
this.getEvaluateReplyList();
this.form.content = '';
this.shouldRefresh = true;
this.$tips({ type: 'success', message: '回复成功' });
} else {
this.$tips({ type: 'warning', message: res.message || '回复失败' });
......@@ -60,3 +144,77 @@ export default {
}
};
</script>
<style scoped lang="scss">
.rpList {
max-height: 400px;
overflow-y: auto;
> div {
position: relative;
padding-left: 40px;
padding-bottom: 20px;
i.sign {
position: absolute;
left: 0;
top: 3px;
width: 32px;
height: 32px;
line-height: 32px;
text-align: center;
font-size: 18px;
background: rgba(235, 236, 240, 1);
border-radius: 50%;
}
&:after {
top: 40px;
position: absolute;
width: 1px;
background: #e4e7ed;
left: 15px;
content: '';
height: calc(100% - 42px);
}
}
.head {
overflow: hidden;
position: relative;
.del {
// float: right;
position: absolute;
right: 0px;
top: 0px;
}
p.name {
color: rgba(48, 49, 51, 1);
line-height: 20px;
& + p {
color: rgba(96, 98, 102, 1);
line-height: 18px;
}
}
}
.content {
margin-top: 10px;
padding: 12px 18px;
background: #f5f7fa;
.text {
width: 532px;
color: rgba(48, 49, 51, 1);
line-height: 20px;
}
.imgl {
margin-top: 7px;
}
}
}
.demo-ruleForm {
margin-top: 25px;
padding-left: 40px;
}
.empty {
text-align: center;
color: #909399;
height: 80px;
line-height: 80px;
}
</style>
......@@ -78,7 +78,7 @@ export default {
storeSearch: '',
memberSearch: ''
},
statusOptions: [{ value: '', label: '所有' }, { value: 1, label: '待处理' }, { value: 4, label: '已解决' }],
statusOptions: [{ value: '', label: '所有' }, { value: 1, label: '待处理' }, { value: 4, label: '已解决' }], // eslint-disable-line
total: 0,
projectName: 'marketing', // 当前项目名
dialogVisible: false,
......@@ -90,7 +90,7 @@ export default {
this.listParams.status = Number(this.$route.query.status) || '';
this.pageSuggestionsList();
this.$store.commit('mutations_breadcrumb', [{ name: '企业管理', path: '' }, { name: '服务监督', path: '/evaluation' }, { name: '投诉与建议', path: '/suggestion' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '企业管理', path: '' }, { name: '服务监督', path: '/evaluation' }, { name: '投诉与建议', path: '/suggestion' }]); // eslint-disable-line
},
methods: {
search() {
......
......@@ -48,7 +48,7 @@ export default {
listParams: {
type: ''
},
kpiNameOptions: [{ label: '领取次数', value: 'card-puton1' }, { label: '使用次数', value: 'card-puton2' }, { label: '销售额', value: 'card-puton3' }],
kpiNameOptions: [{ label: '领取次数', value: 'card-puton1' }, { label: '使用次数', value: 'card-puton2' }, { label: '销售额', value: 'card-puton3' }], // eslint-disable-line
tableHeader: [
{ label: '渠道名称', prop: 'receiveName', align: 'left', minWidth: '200' },
{
......@@ -103,9 +103,9 @@ export default {
beginTime: '',
endTime: ''
};
this.kpiNameOptions = [{ label: '领取次数', value: 'shelf-cards1' }, { label: '使用次数', value: 'shelf-cards2' }, { label: '销售额', value: 'shelf-cards3' }];
this.kpiNameOptions = [{ label: '领取次数', value: 'shelf-cards1' }, { label: '使用次数', value: 'shelf-cards2' }, { label: '销售额', value: 'shelf-cards3' }]; // eslint-disable-line
this.cardTrendEchart();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '/card/shelf' }, { name: '卡券展架报表', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '/card/shelf' }, { name: '卡券展架报表', path: '' }]); // eslint-disable-line
} else {
this.chartParams = {
kpiName: 'card-puton1',
......@@ -114,9 +114,9 @@ export default {
endTime: '',
day: 1
};
(this.kpiNameOptions = [{ label: '领取次数', value: 'card-puton1' }, { label: '使用次数', value: 'card-puton2' }, { label: '销售额', value: 'card-puton3' }]), this.cardChannelAnalysis();
(this.kpiNameOptions = [{ label: '领取次数', value: 'card-puton1' }, { label: '使用次数', value: 'card-puton2' }, { label: '销售额', value: 'card-puton3' }]), this.cardChannelAnalysis(); // eslint-disable-line
this.cardTrendEchart();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: 'e袋洗服务', path: '' }, { name: '卡券报表', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: 'e袋洗服务', path: '' }, { name: '卡券报表', path: '' }]); // eslint-disable-line
}
},
methods: {
......
......@@ -950,6 +950,6 @@ export default {
}
},
created() {
this.$store.commit('mutations_breadcrumb', [{ name: 'e袋洗服务', path: '' }, { name: '服务列表', path: '/ewash/list' }, { name: `${this.isAdd ? '新增' : '编辑'}卡券`, path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: 'e袋洗服务', path: '' }, { name: '服务列表', path: '/ewash/list' }, { name: `${this.isAdd ? '新增' : '编辑'}卡券`, path: '' }]); // eslint-disable-line
}
};
......@@ -159,7 +159,7 @@ export default {
data() {
return {
loading: false,
putOnTypeOptions: [{ value: 0, label: '立即发送' }, { value: 1, label: '选择时间发送' }],
putOnTypeOptions: [{ value: 0, label: '立即发送' }, { value: 1, label: '选择时间发送' }], // eslint-disable-line
pickerOptions: {
disabledDate(val) {
return Date.now() >= val.getTime() + 24 * 60 * 60 * 1000;
......@@ -236,7 +236,7 @@ export default {
created() {
this.listTemplateVariables();
this.sceneSettingList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: 'e袋洗服务', path: '/ewash' }, { name: '服务列表', path: '/ewash/list' }, { name: '卡券群发', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: 'e袋洗服务', path: '/ewash' }, { name: '服务列表', path: '/ewash/list' }, { name: '卡券群发', path: '' }]); // eslint-disable-line
this.$store.commit(
'mutations_layoutTips',
`<div class="layout--tips">
......
......@@ -54,7 +54,7 @@ export default {
total: 0,
loading: false,
tableList: [],
cardTypeOptions: [{ value: '', label: '全部卡券类型' }, { value: 1, label: '抵金券' }, { value: 2, label: '免单券' }],
cardTypeOptions: [{ value: '', label: '全部卡券类型' }, { value: 1, label: '抵金券' }, { value: 2, label: '免单券' }], // eslint-disable-line
sortFlag: false,
adjustStock: false,
currentCard: {},
......@@ -71,7 +71,7 @@ export default {
created() {
window.scrollTo(0, 0);
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: 'e袋洗服务', path: '' }, { name: '服务列表', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: 'e袋洗服务', path: '' }, { name: '服务列表', path: '' }]); // eslint-disable-line
},
methods: {
//编辑库存 前置
......
......@@ -83,7 +83,7 @@ export default {
this.getTableList();
},
created() {
this.$store.commit('mutations_breadcrumb', [{ name: 'e袋洗服务', path: '' }, { name: '门店管理', path: '/ewash/store' }, { name: 'e袋洗账单', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: 'e袋洗服务', path: '' }, { name: '门店管理', path: '/ewash/store' }, { name: 'e袋洗账单', path: '' }]); // eslint-disable-line
},
methods: {
formatDateTimeByType,
......
......@@ -121,7 +121,7 @@ export default {
this.getTableList();
},
created() {
this.$store.commit('mutations_breadcrumb', [{ name: 'e袋洗服务', path: '' }, { name: '门店管理', path: '/ewash/store' }]);
this.$store.commit('mutations_breadcrumb', [{ name: 'e袋洗服务', path: '' }, { name: '门店管理', path: '/ewash/store' }]); // eslint-disable-line
}
};
</script>
......@@ -95,14 +95,10 @@
</template>
</el-table-column>
<el-table-column prop="prizeQuantity" label="商品数量" align="left" :min-width="160">
<template slot-scope="scope" v-if="scope.row.prizeType !== 3">
<el-input-number controls-position="right" v-model="scope.row.prizeCount" type="number" :min="0" :disabled="isInfo" class="width50" size="small"></el-input-number>
</template>
<template slot-scope="scope" v-if="scope.row.prizeType !== 3"> <el-input-number controls-position="right" v-model="scope.row.prizeCount" type="number" :min="0" :disabled="isInfo" class="width50" size="small"></el-input-number></template>
</el-table-column>
<el-table-column prop="date" :render-header="labelTips" align="left" width="100">
<template slot-scope="scope" v-if="scope.row.prizeType !== 3">
{{ (totalCount * scope.row.prizeCount || 0).toFixed(2) }}%
</template>
<template slot-scope="scope" v-if="scope.row.prizeType !== 3"> {{ (totalCount * scope.row.prizeCount || 0).toFixed(2) }}% </template>
</el-table-column>
</el-table>
</el-form-item>
......@@ -183,8 +179,8 @@ export default {
{ skinType: 3, code: '', imgUrl: require('../../../assets/img/1.3.jpg') } // eslint-disable-line
],
endRuleObj: { ruleId: '', prizeId: '', gameId: null, ruleSort: 0, ruleStatus: 0, prizeSort: null },
prizeReferTypeOptions: [{ value: 1, label: '积分' }, { value: 2, label: '卡券' }, { value: 3, label: '谢谢参与' }],
sortList: [{ label: '奖品1', value: 1 }, { label: '奖品2', value: 2 }, { label: '奖品3', value: 3 }, { label: '奖品4', value: 4 }, { label: '奖品5', value: 5 }, { label: '奖品6', value: 6 }, { label: '奖品7', value: 7 }, { label: '奖品8', value: 8 }, { label: '随机', value: null }],
prizeReferTypeOptions: [{ value: 1, label: '积分' }, { value: 2, label: '卡券' }, { value: 3, label: '谢谢参与' }], // eslint-disable-line
sortList: [{ label: '奖品1', value: 1 }, { label: '奖品2', value: 2 }, { label: '奖品3', value: 3 }, { label: '奖品4', value: 4 }, { label: '奖品5', value: 5 }, { label: '奖品6', value: 6 }, { label: '奖品7', value: 7 }, { label: '奖品8', value: 8 }, { label: '随机', value: null }], // eslint-disable-line
tableList: Array(8)
.fill({
prizeId: '',
......@@ -243,9 +239,9 @@ export default {
created() {
if (this.isEdit || this.isInfo) {
this.detailLottery();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '大转盘', path: '/game/dzp' }, { name: '大转盘详情', path: '/game/dzp/add' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '大转盘', path: '/game/dzp' }, { name: '大转盘详情', path: '/game/dzp/add' }]); // eslint-disable-line
} else {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '大转盘', path: '/game/dzp' }, { name: '大转盘新增', path: '/game/dzp/add' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '大转盘', path: '/game/dzp' }, { name: '大转盘新增', path: '/game/dzp/add' }]); // eslint-disable-line
}
},
computed: {
......
......@@ -44,7 +44,7 @@ export default {
mixins: [linksMixin, tableMethods],
data() {
return {
gameStatusOptions: [{ value: '', label: '所有状态' }, { value: 1, label: '待开始' }, { value: 2, label: '进行中' }, { value: 3, label: '已结束' }],
gameStatusOptions: [{ value: '', label: '所有状态' }, { value: 1, label: '待开始' }, { value: 2, label: '进行中' }, { value: 3, label: '已结束' }], // eslint-disable-line
listParams: {
gameStatus: '',
gameType: 1,
......@@ -123,7 +123,7 @@ export default {
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '大转盘', path: '/game/dzp' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '大转盘', path: '/game/dzp' }]); // eslint-disable-line
},
methods: {
// 拉取列表
......
......@@ -79,7 +79,7 @@ export default {
data() {
return {
formatDateTimeByType,
prizeTypeOptions: [{ value: '', label: '所有类型' }, { value: 1, label: '积分' }, { value: 2, label: '卡券' }],
prizeTypeOptions: [{ value: '', label: '所有类型' }, { value: 1, label: '积分' }, { value: 2, label: '卡券' }], // eslint-disable-line
loading: false,
listParams: {
gameId: this.$route.params.id,
......@@ -106,7 +106,7 @@ export default {
},
created() {
this.loadLotteryRecordList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '大转盘', path: '/game/dzp' }, { name: '大转盘中奖记录', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '大转盘', path: '/game/dzp' }, { name: '大转盘中奖记录', path: '' }]); // eslint-disable-line
},
methods: {
async loadLotteryRecordList() {
......
......@@ -73,14 +73,10 @@
</template>
</el-table-column>
<el-table-column prop="prizeQuantity" label="商品数量" align="left" :min-width="160">
<template slot-scope="scope" v-if="scope.row.prizeType !== 3">
<el-input-number controls-position="right" v-model="scope.row.prizeCount" type="number" :min="0" :disabled="isInfo" class="width50" size="small"></el-input-number>
</template>
<template slot-scope="scope" v-if="scope.row.prizeType !== 3"> <el-input-number controls-position="right" v-model="scope.row.prizeCount" type="number" :min="0" :disabled="isInfo" class="width50" size="small"></el-input-number></template>
</el-table-column>
<el-table-column prop="date" :render-header="labelTips" align="left" width="100">
<template slot-scope="scope" v-if="scope.row.prizeType !== 3">
{{ (totalCount * scope.row.prizeCount || 0).toFixed(2) }}%
</template>
<template slot-scope="scope" v-if="scope.row.prizeType !== 3"> {{ (totalCount * scope.row.prizeCount || 0).toFixed(2) }}% </template>
</el-table-column>
<el-table-column prop="date" label="操作" align="left" width="80">
<template slot-scope="scope">
......@@ -160,7 +156,7 @@ export default {
code: ''
}
},
prizeReferTypeOptions: [{ value: 1, label: '积分' }, { value: 2, label: '卡券' }, { value: 3, label: '谢谢参与' }],
prizeReferTypeOptions: [{ value: 1, label: '积分' }, { value: 2, label: '卡券' }, { value: 3, label: '谢谢参与' }], // eslint-disable-line
dataTest: {
code: '',
url: ''
......@@ -172,7 +168,7 @@ export default {
{ skinType: 2, code: '', imgUrl: require('../../../assets/img/2.2.jpg') }, // eslint-disable-line
{ skinType: 3, code: '', imgUrl: require('../../../assets/img/2.3.jpg') } // eslint-disable-line
],
sortList: [{ label: '奖品1', value: 1 }, { label: '奖品2', value: 2 }, { label: '奖品3', value: 3 }, { label: '奖品4', value: 4 }, { label: '奖品5', value: 5 }, { label: '奖品6', value: 6 }, { label: '奖品7', value: 7 }, { label: '奖品8', value: 8 }, { label: '随机', value: null }],
sortList: [{ label: '奖品1', value: 1 }, { label: '奖品2', value: 2 }, { label: '奖品3', value: 3 }, { label: '奖品4', value: 4 }, { label: '奖品5', value: 5 }, { label: '奖品6', value: 6 }, { label: '奖品7', value: 7 }, { label: '奖品8', value: 8 }, { label: '随机', value: null }], // eslint-disable-line
tableList: [{ prizeId: '', prizeType: 3, prizeCount: null, prizeIntegral: null, prizeCardId: '', gameId: '', prizeStatus: 0, prizeSort: null, prizeRate: 0, cardName: '', cardType: null, cardDenomination: null, cardImageUrl: '', cardStock: null, wechatCardId: null, winRecordCode: 0, receiveCount: 0 }],
prizeIndex: 0,
showCardDialog: false,
......@@ -211,9 +207,9 @@ export default {
created() {
if (this.isEdit || this.isInfo) {
this.detailLottery();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '刮刮卡', path: '/game/ggk' }, { name: '刮刮卡详情', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '刮刮卡', path: '/game/ggk' }, { name: '刮刮卡详情', path: '' }]); // eslint-disable-line
} else {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '刮刮卡', path: '/game/ggk' }, { name: '刮刮卡新增', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '刮刮卡', path: '/game/ggk' }, { name: '刮刮卡新增', path: '' }]); // eslint-disable-line
}
},
computed: {
......
......@@ -43,7 +43,7 @@ export default {
mixins: [linksMixin, tableMethods],
data() {
return {
gameStatusOptions: [{ value: '', label: '所有状态' }, { value: 1, label: '待开始' }, { value: 2, label: '进行中' }, { value: 3, label: '已结束' }],
gameStatusOptions: [{ value: '', label: '所有状态' }, { value: 1, label: '待开始' }, { value: 2, label: '进行中' }, { value: 3, label: '已结束' }], // eslint-disable-line
listParams: {
gameStatus: '',
gameType: 2,
......@@ -123,7 +123,7 @@ export default {
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '刮刮卡', path: '/game/ggk' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '刮刮卡', path: '/game/ggk' }]); // eslint-disable-line
},
methods: {
// 拉取列表
......
......@@ -79,7 +79,7 @@ export default {
data() {
return {
formatDateTimeByType,
prizeTypeOptions: [{ value: '', label: '所有类型' }, { value: 1, label: '积分' }, { value: 2, label: '卡券' }],
prizeTypeOptions: [{ value: '', label: '所有类型' }, { value: 1, label: '积分' }, { value: 2, label: '卡券' }], // eslint-disable-line
loading: false,
listParams: {
gameId: this.$route.params.id,
......@@ -110,7 +110,7 @@ export default {
},
created() {
this.loadLotteryRecordList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '刮刮卡', path: '/game/ggk' }, { name: '刮刮卡中奖记录', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '刮刮卡', path: '/game/ggk' }, { name: '刮刮卡中奖记录', path: '' }]); // eslint-disable-line
},
methods: {
async loadLotteryRecordList() {
......
......@@ -270,7 +270,11 @@ export default {
strategyType: 'add',
gamePrizeStrategyId: '',
prizeList: [{ prizeCount: 0, prizeStock: 0, card: { cardName: '' }, proGift: { mainPicUrl: { code: '', imgUrl: '' } }, codeId: '', gameCode: '', codeStock: '' }],
prizeReferTypeOptions: [{ value: 1, label: '积分' }, { value: 2, label: '卡券' }, { value: 3, label: '礼品' }],
prizeReferTypeOptions: [
{ value: 1, label: '积分' },
{ value: 2, label: '卡券' },
{ value: 3, label: '礼品' }
],
systemBakImgList: [{ imageUrl: '' }],
systemBtnImgList: [{ imageUrl: '' }],
currentBg: { imageUrl: '' },
......@@ -316,9 +320,9 @@ export default {
this.klflDetail();
this.klflStrategyList();
this.klflPrizeList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '口令福利', path: '/game/klfl' }, { name: '口令福利编辑', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '口令福利', path: '/game/klfl' }, { name: '口令福利编辑', path: '' }]); // eslint-disable-line
} else if (this.isAdd) {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '口令福利', path: '/game/klfl' }, { name: '口令福利新增', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '口令福利', path: '/game/klfl' }, { name: '口令福利新增', path: '' }]); // eslint-disable-line
(async () => {
await this.klflDetail(true);
await this.klflStrategyList();
......
......@@ -46,7 +46,7 @@ export default {
data() {
return {
loading: false,
gameStatusOptions: [{ value: -1, label: '所有状态' }, { value: 1, label: '待开始' }, { value: 2, label: '进行中' }, { value: 3, label: '已结束' }],
gameStatusOptions: [{ value: -1, label: '所有状态' }, { value: 1, label: '待开始' }, { value: 2, label: '进行中' }, { value: 3, label: '已结束' }], // eslint-disable-line
listParams: {
gameStatus: -1,
searchParam: '',
......@@ -107,7 +107,7 @@ export default {
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '口令福利', path: '/game/klfl' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '口令福利', path: '/game/klfl' }]); // eslint-disable-line
},
methods: {
async getTableList(noloading = false) {
......
......@@ -51,12 +51,12 @@ export default {
mixins: [filterAvatar],
created() {
this.klflReportList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '口令福利', path: '/game/klfl' }, { name: '口令福利中奖记录', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '口令福利', path: '/game/klfl' }, { name: '口令福利中奖记录', path: '' }]); // eslint-disable-line
},
data() {
return {
prizeReferTypeOptions: [{ value: -1, label: '所有类型' }, { value: 1, label: '积分' }, { value: 2, label: '卡券' }, { value: 3, label: '礼品' }],
getStatusOptions: [{ value: -1, label: '所有状态' }, { value: 1, label: '待领取' }, { value: 2, label: '已领取' }, { value: 3, label: '待核销' }, { value: 4, label: ' 已核销' }, { value: 5, label: '待完善信息' }, { value: 6, label: '待发货' }, { value: 7, label: '已发货' }],
prizeReferTypeOptions: [{ value: -1, label: '所有类型' }, { value: 1, label: '积分' }, { value: 2, label: '卡券' }, { value: 3, label: '礼品' }], // eslint-disable-line
getStatusOptions: [{ value: -1, label: '所有状态' }, { value: 1, label: '待领取' }, { value: 2, label: '已领取' }, { value: 3, label: '待核销' }, { value: 4, label: ' 已核销' }, { value: 5, label: '待完善信息' }, { value: 6, label: '待发货' }, { value: 7, label: '已发货' }], // eslint-disable-line
loading: false,
rankList: [],
rankHeader: [
......
......@@ -112,7 +112,7 @@ export default {
showCardDialog: false,
cardLimit: 1, //卡券限制类型 1-限制领取1张的卡券 2- 限制领取 1~100的卡券 3-限制领取>=100 的卡券
cardType: null, //卡券类型集合(0:抵金券,1:折扣券,2:兑换券)null-为全部类型 逗号分隔
prizeReferTypeOptions: [{ value: 1, label: '积分' }, { value: 2, label: '卡券' }, { value: 3, label: '礼品' }],
prizeReferTypeOptions: [{ value: 1, label: '积分' }, { value: 2, label: '卡券' }, { value: 3, label: '礼品' }], // eslint-disable-line
calculateShow: false,
//设置为奖品
prizeSetInfo: {
......
......@@ -17,14 +17,10 @@
<p class="gray fz13">用户按游戏得分由高到低依次获得奖项。</p>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%">
<el-table-column prop="awardName" label="奖项" align="left" width="90">
<template slot-scope="scope">
{{ (scope.$index + 1) | numberToChinese }}等奖
</template>
<template slot-scope="scope"> {{ (scope.$index + 1) | numberToChinese }}等奖 </template>
</el-table-column>
<el-table-column prop="winnerCount" label="奖品数量" align="left" width="220">
<template slot-scope="scope">
<el-input-number controls-position="right" v-model="scope.row.winnerCount" :precision="0" :min="1" size="small" class="w150" :disabled="isInfo"></el-input-number>
</template>
<template slot-scope="scope"> <el-input-number controls-position="right" v-model="scope.row.winnerCount" :precision="0" :min="1" size="small" class="w150" :disabled="isInfo"></el-input-number></template>
</el-table-column>
<el-table-column prop="prizeName" label="商品名称" align="left" :min-width="180">
<template slot-scope="scope">
......@@ -182,7 +178,7 @@ export default {
usedValue: { required: true, type: 'number', message: '请输入数值', trigger: 'blur' },
usedIntegral: { required: true, type: 'number', message: '请输入数值', trigger: 'blur' }
},
tableList: [{ awardName: '', winnerCount: 0, prizeName: '', prizeImg: { code: '', imgUrl: '' }, prizeQuantity: '' }, { awardName: '', winnerCount: 0, prizeName: '', prizeImg: { code: '', imgUrl: '' }, prizeQuantity: '' }, { awardName: '', winnerCount: 0, prizeName: '', prizeImg: { code: '', imgUrl: '' }, prizeQuantity: '' }],
tableList: [{ awardName: '', winnerCount: 0, prizeName: '', prizeImg: { code: '', imgUrl: '' }, prizeQuantity: '' }, { awardName: '', winnerCount: 0, prizeName: '', prizeImg: { code: '', imgUrl: '' }, prizeQuantity: '' }, { awardName: '', winnerCount: 0, prizeName: '', prizeImg: { code: '', imgUrl: '' }, prizeQuantity: '' }], // eslint-disable-line
isInfo: this.$route.meta.type === 'query',
isEdit: this.$route.meta.type === 'edit',
isAdd: this.$route.meta.type === 'add',
......@@ -222,13 +218,13 @@ export default {
gameInfo = {};
if (this.$route.meta.type === 'edit') {
this.ptyxDetail();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '拼图游戏', path: '/game/ptyx' }, { name: '拼图游戏编辑', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '拼图游戏', path: '/game/ptyx' }, { name: '拼图游戏编辑', path: '' }]); // eslint-disable-line
} else if (this.$route.meta.type === 'add') {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '拼图游戏', path: '/game/ptyx' }, { name: '拼图游戏新增', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '拼图游戏', path: '/game/ptyx' }, { name: '拼图游戏新增', path: '' }]); // eslint-disable-line
}
if (this.$route.meta.type === 'query') {
this.ptyxDetail();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '拼图游戏', path: '/game/ptyx' }, { name: '拼图游戏详情', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '拼图游戏', path: '/game/ptyx' }, { name: '拼图游戏详情', path: '' }]); // eslint-disable-line
}
this.getGameSystemMusicList();
},
......
......@@ -50,7 +50,7 @@ export default {
return {
loading: false,
total: 0,
gameStatusOptions: [{ value: -1, label: '所有状态' }, { value: 1, label: '待开始' }, { value: 2, label: '进行中' }, { value: 3, label: '已结束' }],
gameStatusOptions: [{ value: -1, label: '所有状态' }, { value: 1, label: '待开始' }, { value: 2, label: '进行中' }, { value: 3, label: '已结束' }], // eslint-disable-line
listParams: { gameStatus: -1, searchParam: '', currentPage: 1, pageSize: 20, showSelfFlag: '' },
tableHeader: [
{ label: '游戏名称', prop: 'gameName', align: 'left', fixed: 'left' },
......@@ -105,7 +105,7 @@ export default {
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '拼图游戏', path: '/game/ptyx' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '拼图游戏', path: '/game/ptyx' }]); // eslint-disable-line
},
methods: {
async getTableList() {
......
......@@ -66,11 +66,11 @@ export default {
mixins: [filterAvatar],
data() {
return {
gameStatusOptions: [{ value: -1, label: '所有状态' }, { value: 2, label: '成功' }, { value: 1, label: '失败' }],
gameStatusOptions: [{ value: -1, label: '所有状态' }, { value: 2, label: '成功' }, { value: 1, label: '失败' }], // eslint-disable-line
activeName: 'first',
loading: false,
rankList: [],
rankHeader: [{ label: '手机号码', prop: 'memberPhone', align: 'left' }, { label: '消耗方式', prop: 'costType', align: 'left' }, { label: '消耗数值', prop: 'costValue', align: 'left' }, { label: '参与次数', prop: 'playTimes', align: 'left' }, { label: '最佳时间', prop: 'opticalTime', align: 'left' }],
rankHeader: [{ label: '手机号码', prop: 'memberPhone', align: 'left' }, { label: '消耗方式', prop: 'costType', align: 'left' }, { label: '消耗数值', prop: 'costValue', align: 'left' }, { label: '参与次数', prop: 'playTimes', align: 'left' }, { label: '最佳时间', prop: 'opticalTime', align: 'left' }], // eslint-disable-line
listParams: {
tabName: 'rank',
gameActivityId: '',
......@@ -118,7 +118,7 @@ export default {
this.LoadPtyxRecordList();
this.LoadPtyxRecordList1();
this.ptyxCalcTitle();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '拼图游戏', path: '/game/ptyx' }, { name: '拼图游戏统计', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '拼图游戏', path: '/game/ptyx' }, { name: '拼图游戏统计', path: '' }]); // eslint-disable-line
},
methods: {
formatDateTimeByType,
......
......@@ -166,10 +166,10 @@ export default {
if (this.isEdit || this.isInfo) {
this.znmDetail();
this.znmStrategyList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '找你马', path: '/game/znm' }, { name: '找你马详情', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '找你马', path: '/game/znm' }, { name: '找你马详情', path: '' }]); // eslint-disable-line
} else if (this.isAdd) {
this.znmDetail(true);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '找你马', path: '/game/znm' }, { name: '找你马新增', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '找你马', path: '/game/znm' }, { name: '找你马新增', path: '' }]); // eslint-disable-line
}
},
methods: {
......
......@@ -43,7 +43,7 @@ export default {
data() {
return {
loading: false,
gameStatusOptions: [{ value: -1, label: '所有状态' }, { value: 1, label: '待开始' }, { value: 2, label: '进行中' }, { value: 3, label: '已结束' }],
gameStatusOptions: [{ value: -1, label: '所有状态' }, { value: 1, label: '待开始' }, { value: 2, label: '进行中' }, { value: 3, label: '已结束' }], // eslint-disable-line
listParams: { gameStatus: -1, searchParam: '', currentPage: 1, pageSize: 20, showSelfFlag: '' },
total: 0,
tableHeader: [
......@@ -97,7 +97,7 @@ export default {
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '找你马', path: '/game/znm' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '' }, { name: '找你马', path: '/game/znm' }]); // eslint-disable-line
},
methods: {
async getTableList() {
......
......@@ -70,11 +70,11 @@ export default {
created() {
this.znmReportList();
this.znmReportList1();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '找你马', path: '/game/znm' }, { name: '找你马统计', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '游戏营销', path: '/game' }, { name: '找你马', path: '/game/znm' }, { name: '找你马统计', path: '' }]); // eslint-disable-line
},
data() {
return {
gameStatusOptions: [{ value: -1, label: '所有状态' }, { value: 2, label: '成功' }, { value: 1, label: '失败' }],
gameStatusOptions: [{ value: -1, label: '所有状态' }, { value: 2, label: '成功' }, { value: 1, label: '失败' }], // eslint-disable-line
activeName: 'first',
loading: false,
rankList: [],
......
......@@ -85,7 +85,7 @@ export default {
content: '',
remark: ''
},
typeOptions: [{ value: 0, label: '普通短信' }, { value: 1, label: '营销短信' }, { value: 2, label: '验证码短信' }],
typeOptions: [{ value: 0, label: '普通短信' }, { value: 1, label: '营销短信' }, { value: 2, label: '验证码短信' }], // eslint-disable-line
rules: {
title: { required: true, message: '请输入模板名称', trigger: 'blur' },
type: { required: true, message: '请选择短信类型', trigger: 'blur' },
......@@ -102,10 +102,10 @@ export default {
},
created() {
if (this.editFlag) {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '短信营销', path: '' }, { name: '模板库', path: '/message/temp' }, { name: '编辑模板', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '短信营销', path: '' }, { name: '模板库', path: '/message/temp' }, { name: '编辑模板', path: '' }]); // eslint-disable-line
this.LoadTempInfo();
} else {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '短信营销', path: '' }, { name: '模板库', path: '/message/temp' }, { name: '新增模板', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '短信营销', path: '' }, { name: '模板库', path: '/message/temp' }, { name: '新增模板', path: '' }]); // eslint-disable-line
}
},
methods: {
......
......@@ -157,7 +157,7 @@ export default {
pageSize: 20
},
total: 0,
sendStatusOptions: [{ value: '', label: '所有状态' }, { value: 0, label: '成功' }, { value: 1, label: '未发送' }, { value: 2, label: '失败' }],
sendStatusOptions: [{ value: '', label: '所有状态' }, { value: 0, label: '成功' }, { value: 1, label: '未发送' }, { value: 2, label: '失败' }], // eslint-disable-line
errorCodeShow: false,
// 人群筛选器可传参数
sceneValue: 'member', // 场景值
......@@ -175,7 +175,7 @@ export default {
};
},
created() {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '短信营销', path: '/message' }, { name: '短信群发', path: '/message/record' }, { name: '短信群发详情', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '短信营销', path: '/message' }, { name: '短信群发', path: '/message/record' }, { name: '短信群发详情', path: '' }]); // eslint-disable-line
this.LoadMessageDetail(this.$route.params.id);
this.LoadMessageDetailList();
},
......
......@@ -59,7 +59,7 @@ export default {
return {
sceneSettingIdOptions: [],
loading: false,
sendTypeOptions: [{ value: 0, label: '立即发送' }, { value: 1, label: '选择时间发送' }],
sendTypeOptions: [{ value: 0, label: '立即发送' }, { value: 1, label: '选择时间发送' }], // eslint-disable-line
smsTempList: [],
pickerOptions: {
shortcuts: [
......@@ -124,7 +124,7 @@ export default {
},
created() {
this.sceneSettingList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '短信营销', path: '' }, { name: '短信群发', path: '/message/record' }, { name: '新建群发', path: '' }]);
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '短信营销', path: '' }, { name: '短信群发', path: '/message/record' }, { name: '新建群发', path: '' }]); // eslint-disable-line
},
methods: {
async sceneSettingList() {
......
<template>
<div class="dm-wrap" :loading="loading">
<p class="title mb30">手工导入群发</p>
<el-form ref="form" :model="ruleForm" label-width="120px" :rules="rules">
<el-form-item label="营销场景">
<span v-if="isInfo">{{ ruleForm.sceneSettingName }}</span>
<el-select v-else class="w250" v-model="ruleForm.sceneSettingId" placeholder="选择营销场景">
<el-option v-for="item in sceneSettingIdOptions" :key="item.sceneSettingId" :label="item.sceneName" :value="item.sceneSettingId"></el-option>
</el-select>
</el-form-item>
<el-form-item label="发送时间">
<el-select class="w250" v-model="ruleForm.sendType">
<el-option v-for="(v, i) in sendTypeOptions" :key="i" :value="v.value" :label="v.label"></el-option>
</el-select>
<el-date-picker class="w250" v-if="ruleForm.sendType" v-model="ruleForm.sendTime" type="datetime" placeholder="选择日期时间" align="right" :picker-options="pickerOptions"></el-date-picker>
</el-form-item>
<el-form-item label="上传文件">
<div>
<el-button icon="el-icon-upload2" class="dash-btn">点击上传</el-button>
<el-button type="text" class="ml10">点击下载文件模板</el-button>
</div>
<p style="margin-top:8px;color:#909399;font-size:12px;line-height:1;">券码数量单次最多不超过5000条</p>
</el-form-item>
</el-form>
<p class="title mb15 mt40">短信模板设置</p>
<div class="dm-title__label--tips" style="margin-top:15px;margin-bottom:20px;"><i class="el-icon-warning pr8 warning-color"></i>短信运营商限制:为避免骚扰用户,营销短信只允许在8点到22点发送</div>
<sms-temp pbSize="pb15" :activeId.sync="ruleForm.smsTemplateId" @emitSmsItemInfo="onSmsItemInfo"></sms-temp>
<div class="text-center">
<el-button type="primary">新建群发</el-button>
<el-button>返回</el-button>
</div>
</div>
</template>
<script>
import smsTemp from '@/components/libs/smsTemp';
import { formatDateTimeByType } from '@/utils/index.js';
import { sceneSettingList } from '@/service/api/wechatApi.js';
export default {
name: 'import-send-form',
data() {
return {
loading: false,
ruleForm: {
sceneSettingName: '',
sceneSettingId: '',
sendTime: '',
sendType: 0,
smsTemplateId: ''
},
rules: {},
sceneSettingIdOptions: [],
sendTypeOptions: [{ value: 0, label: '立即发送' }, { value: 1, label: '选择时间发送' }], // eslint-disable-line
isAdd: this.$route.meta.type === 'add',
isInfo: this.$route.meta.type === 'info'
};
},
components: {
smsTemp
},
methods: {
formatDateTimeByType,
onSmsItemInfo(val) {
this.smsType = val.type;
console.log(val);
},
async sceneSettingList() {
let res = await sceneSettingList();
this.sceneSettingIdOptions = res.result || [];
}
},
mounted() {
this.sceneSettingList();
},
created() {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '短信营销', path: '' }, { name: this.info ? '手工导入群发详情' : '新建导入群发', path: '' }]); // eslint-disable-line
}
};
</script>
<style lang="scss" scoped>
.mt40 {
margin-top: 40px;
}
.title {
font-size: 16px;
font-weight: 500;
color: rgba(48, 49, 51, 1);
line-height: 22px;
}
.dash-btn {
width: 174px;
border-style: dashed;
background: rgba(255, 255, 255, 1);
border-radius: 4px;
}
.dm-title__label--tips {
background: #fffbe6;
border-color: #ffe58f;
margin-right: 0px;
}
</style>
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed. Click to expand it.
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 diff is collapsed. Click to expand it.
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