Commit 4cc86897 by chenxin

fix: 扫码营销

parent 1a99e77c
<!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.60ee1a8bc48bdbb2f07dafb65e38c6f4.css rel=stylesheet></head><body><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/components/element.2.12.0.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.38.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.2.24.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.18.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.46.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.42.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.2.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script src=//web-1251519181.file.myqcloud.com/components/track.1.0.3.js></script><script type=text/javascript src=/marketing/static/js/manifest.957d5cc9a4dec2c90769.js></script><script type=text/javascript src=/marketing/static/js/vendor.b30a466c3b2d11195801.js></script><script type=text/javascript src=/marketing/static/js/main.f03ba571891f68d98fe0.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.5b200cc79e73e698ad2a95c12b6a144a.css rel=stylesheet></head><body><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/components/element.2.12.0.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.38.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.04.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.2.24.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.18.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.571.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.42.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.20.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.2.13.js></script><script src=//web-1251519181.file.myqcloud.com/components/pagination.1.0.8.js></script><script type=text/javascript src=/marketing/static/js/manifest.5376bcac7a3100205ae9.js></script><script type=text/javascript src=/marketing/static/js/vendor.fef1c3d3b3b586faaee2.js></script><script type=text/javascript src=/marketing/static/js/main.765c3b199bddfdc12e21.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -6,6 +6,83 @@
"description": "",
"glyphs": [
{
"icon_id": "16041446",
"name": "排序",
"font_class": "paixu1",
"unicode": "e64f",
"unicode_decimal": 58959
},
{
"icon_id": "12577879",
"name": "图片",
"font_class": "tupian-copy",
"unicode": "e64c",
"unicode_decimal": 58956
},
{
"icon_id": "17614018",
"name": "绘制热区",
"font_class": "huizhirequ",
"unicode": "e64d",
"unicode_decimal": 58957
},
{
"icon_id": "17682067",
"name": "热区绘制",
"font_class": "requhuizhi",
"unicode": "e64e",
"unicode_decimal": 58958
},
{
"icon_id": "17675917",
"name": "视频流量",
"font_class": "shipinliuliang",
"unicode": "eb4d",
"unicode_decimal": 60237
},
{
"icon_id": "10501417",
"name": "图标_图片空间",
"font_class": "tubiao_tupiankongjian",
"unicode": "e656",
"unicode_decimal": 58966
},
{
"icon_id": "5722952",
"name": "视频",
"font_class": "video1",
"unicode": "e64b",
"unicode_decimal": 58955
},
{
"icon_id": "12472553",
"name": "开卡",
"font_class": "kaika",
"unicode": "e716",
"unicode_decimal": 59158
},
{
"icon_id": "12987636",
"name": "订单",
"font_class": "dingdan1",
"unicode": "e64a",
"unicode_decimal": 58954
},
{
"icon_id": "12996480",
"name": "会员数量",
"font_class": "huiyuanshuliang",
"unicode": "e6e2",
"unicode_decimal": 59106
},
{
"icon_id": "8922363",
"name": "好友",
"font_class": "haoyou",
"unicode": "e649",
"unicode_decimal": 58953
},
{
"icon_id": "3824532",
"name": "兑换记录",
"font_class": "duihuanjilu",
......
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,o,c){for(var i,f,u,s=0,b=[];s<n.length;s++)f=n[s],t[f]&&b.push(t[f][0]),t[f]=0;for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(e[i]=o[i]);for(r&&r(n,o,c);b.length;)b.shift()();if(c)for(s=0;s<c.length;s++)u=a(a.s=c[s]);return u};var n={},t={15:0};function a(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,a),t.l=!0,t.exports}a.e=function(e){var r=t[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var n=new Promise(function(n,a){r=t[e]=[n,a]});r[2]=n;var o=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,a.nc&&c.setAttribute("nonce",a.nc),c.src=a.p+"static/js/"+({0:"card",1:"game",2:"wechat",3:"message",4:"ewash",5:"scan",6:"ecm",7:"evaluation",8:"activity",9:"cdKey",10:"recharge",11:"msg",12:"calllog"}[e]||e)+"."+{0:"e166f6857069c5f2917b",1:"82b6563092b3c562b01d",2:"e75ff782a449673a6172",3:"41f3917d7be985a3a660",4:"391130c8f773cb8775d6",5:"d32bc8a3636f336a6e3b",6:"fa41bb8a307a243f1f78",7:"63a1a6d2b30b644fe2b0",8:"262d5730485583a8e9ea",9:"b28ab42e4c850a719a9e",10:"deed87acac924fb81b10",11:"68885a5b2ba02a163454",12:"374fb631de99b469adc8"}[e]+".js";var i=setTimeout(f,12e4);function f(){c.onerror=c.onload=null,clearTimeout(i);var r=t[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return c.onerror=c.onload=f,o.appendChild(c),n},a.m=e,a.c=n,a.d=function(e,r,n){a.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},a.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(r,"a",r),r},a.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},a.p="/marketing/",a.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var r=window.webpackJsonp;window.webpackJsonp=function(t,a,c){for(var f,i,u,d=0,s=[];d<t.length;d++)i=t[d],n[i]&&s.push(n[i][0]),n[i]=0;for(f in a)Object.prototype.hasOwnProperty.call(a,f)&&(e[f]=a[f]);for(r&&r(t,a,c);s.length;)s.shift()();if(c)for(d=0;d<c.length;d++)u=o(o.s=c[d]);return u};var t={},n={14:0};function o(r){if(t[r])return t[r].exports;var n=t[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,o),n.l=!0,n.exports}o.e=function(e){var r=n[e];if(0===r)return new Promise(function(e){e()});if(r)return r[2];var t=new Promise(function(t,o){r=n[e]=[t,o]});r[2]=t;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:"card",1:"game",2:"wechat",3:"message",4:"ewash",5:"ecm",6:"evaluation",7:"activity",8:"cdKey",9:"recharge",10:"msg",11:"calllog"}[e]||e)+"."+{0:"e166f6857069c5f2917b",1:"82b6563092b3c562b01d",2:"21a2ae8bde8fd576d6c1",3:"108440167bb83f4091b2",4:"391130c8f773cb8775d6",5:"4250880241ba99afbdbe",6:"fe87f8c54744c96fa200",7:"73e5fc5c4c70c216a37e",8:"078735466efde17f1d65",9:"d0c7fdeaae259a8befad",10:"0d4820f42ef1fa47e4cc",11:"07f9326e2a68fd201646"}[e]+".js";var f=setTimeout(i,12e4);function i(){c.onerror=c.onload=null,clearTimeout(f);var r=n[e];0!==r&&(r&&r[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return c.onerror=c.onload=i,a.appendChild(c),t},o.m=e,o.c=t,o.d=function(e,r,t){o.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:t})},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.
webpackJsonp([12],{"+2+s":function(t,n,r){"use strict";var e=r("Ds5P"),o=r("49qz")(!0);e(e.P,"String",{at:function(t){return o(this,t)}})},"+CM9":function(t,n,r){"use strict";var e=r("Ds5P"),o=r("ot5s")(!1),i=[].indexOf,u=!!i&&1/[1].indexOf(1,-0)<0;e(e.P+e.F*(u||!r("NNrz")(i)),"Array",{indexOf:function(t){return u?i.apply(this,arguments)||0:o(this,t,arguments[1])}})},"+E39":function(t,n,r){t.exports=!r("S82l")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"+Mt+":function(t,n,r){"use strict";var e=r("Ds5P"),o=r("7gX0"),i=r("OzIq"),u=r("7O1s"),c=r("nphH");e(e.P+e.R,"Promise",{finally:function(t){var n=u(this,o.Promise||i.Promise),r="function"==typeof t;return this.then(r?function(r){return c(n,t()).then(function(){return r})}:t,r?function(r){return c(n,t()).then(function(){throw r})}:t)}})},"+ZMJ":function(t,n,r){var e=r("lOnJ");t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,o){return t.call(n,r,e,o)}}return function(){return t.apply(n,arguments)}}},"+tPU":function(t,n,r){r("xGkn");for(var e=r("7KvD"),o=r("hJx8"),i=r("/bQp"),u=r("dSzd")("toStringTag"),c="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),a=0;a<c.length;a++){var s=c[a],f=e[s],l=f&&f.prototype;l&&!l[u]&&o(l,u,s),i[s]=i.Array}},"+vXH":function(t,n,r){r("77Ug")("Float64",8,function(t){return function(n,r,e){return t(this,n,r,e)}})},"+yjc":function(t,n,r){var e=r("UKM+");r("3i66")("isSealed",function(t){return function(n){return!e(n)||!!t&&t(n)}})},"//Fk":function(t,n,r){t.exports={default:r("U5ju"),__esModule:!0}},"/bQp":function(t,n){t.exports={}},"/whu":function(t,n){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},"07k+":function(t,n,r){for(var e,o=r("OzIq"),i=r("2p1q"),u=r("ulTY"),c=u("typed_array"),a=u("view"),s=!(!o.ArrayBuffer||!o.DataView),f=s,l=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(e=o[h[l++]])?(i(e.prototype,c,!0),i(e.prototype,a,!0)):f=!1;t.exports={ABV:s,CONSTR:f,TYPED:c,VIEW:a}},"0Rih":function(t,n,r){"use strict";var e=r("OzIq"),o=r("Ds5P"),i=r("R3AP"),u=r("A16L"),c=r("1aA0"),a=r("vmSO"),s=r("9GpA"),f=r("UKM+"),l=r("zgIt"),h=r("qkyc"),p=r("yYvK"),v=r("kic5");t.exports=function(t,n,r,d,y,g){var m=e[t],x=m,b=y?"set":"add",w=x&&x.prototype,P={},S=function(t){var n=w[t];i(w,t,"delete"==t?function(t){return!(g&&!f(t))&&n.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!f(t))&&n.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!f(t)?void 0:n.call(this,0===t?0:t)}:"add"==t?function(t){return n.call(this,0===t?0:t),this}:function(t,r){return n.call(this,0===t?0:t,r),this})};if("function"==typeof x&&(g||w.forEach&&!l(function(){(new x).entries().next()}))){var O=new x,_=O[b](g?{}:-0,1)!=O,D=l(function(){O.has(1)}),E=h(function(t){new x(t)}),j=!g&&l(function(){for(var t=new x,n=5;n--;)t[b](n,n);return!t.has(-0)});E||((x=n(function(n,r){s(n,x,t);var e=v(new m,n,x);return void 0!=r&&a(r,y,e[b],e),e})).prototype=w,w.constructor=x),(D||j)&&(S("delete"),S("has"),y&&S("get")),(j||_)&&S(b),g&&w.clear&&delete w.clear}else x=d.getConstructor(n,t,y,b),u(x.prototype,r),c.NEED=!0;return p(x,t),P[t]=x,o(o.G+o.W+o.F*(x!=m),P),g||d.setStrong(x,t,y),x}},"0j1G":function(t,n,r){"use strict";var e=r("Ds5P");t.exports=function(t){e(e.S,t,{of:function(){for(var t=arguments.length,n=new Array(t);t--;)n[t]=arguments[t];return new this(n)}})}},"0pGU":function(t,n,r){"use strict";var e=r("DIVP");t.exports=function(){var t=e(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},"1A13":function(t,n,r){"use strict";var e=r("49qz")(!0);r("uc2A")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,n=this._t,r=this._i;return r>=n.length?{value:void 0,done:!0}:(t=e(n,r),this._i+=t.length,{value:t,done:!1})})},"1ETD":function(t,n,r){var e=r("kkCw")("match");t.exports=function(t){var n=/./;try{"/./"[t](n)}catch(r){try{return n[e]=!1,!"/./"[t](n)}catch(t){}}return!0}},"1H6C":function(t,n,r){var e=function(){return this}()||Function("return this")(),o=e.regeneratorRuntime&&Object.getOwnPropertyNames(e).indexOf("regeneratorRuntime")>=0,i=o&&e.regeneratorRuntime;if(e.regeneratorRuntime=void 0,t.exports=r("HhN8"),o)e.regeneratorRuntime=i;else try{delete e.regeneratorRuntime}catch(t){e.regeneratorRuntime=void 0}},"1Yoh":function(t,n){
webpackJsonp([13],{"+2+s":function(t,n,r){"use strict";var e=r("Ds5P"),o=r("49qz")(!0);e(e.P,"String",{at:function(t){return o(this,t)}})},"+CM9":function(t,n,r){"use strict";var e=r("Ds5P"),o=r("ot5s")(!1),i=[].indexOf,u=!!i&&1/[1].indexOf(1,-0)<0;e(e.P+e.F*(u||!r("NNrz")(i)),"Array",{indexOf:function(t){return u?i.apply(this,arguments)||0:o(this,t,arguments[1])}})},"+E39":function(t,n,r){t.exports=!r("S82l")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"+Mt+":function(t,n,r){"use strict";var e=r("Ds5P"),o=r("7gX0"),i=r("OzIq"),u=r("7O1s"),c=r("nphH");e(e.P+e.R,"Promise",{finally:function(t){var n=u(this,o.Promise||i.Promise),r="function"==typeof t;return this.then(r?function(r){return c(n,t()).then(function(){return r})}:t,r?function(r){return c(n,t()).then(function(){throw r})}:t)}})},"+ZMJ":function(t,n,r){var e=r("lOnJ");t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,o){return t.call(n,r,e,o)}}return function(){return t.apply(n,arguments)}}},"+tPU":function(t,n,r){r("xGkn");for(var e=r("7KvD"),o=r("hJx8"),i=r("/bQp"),u=r("dSzd")("toStringTag"),c="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),a=0;a<c.length;a++){var s=c[a],f=e[s],l=f&&f.prototype;l&&!l[u]&&o(l,u,s),i[s]=i.Array}},"+vXH":function(t,n,r){r("77Ug")("Float64",8,function(t){return function(n,r,e){return t(this,n,r,e)}})},"+yjc":function(t,n,r){var e=r("UKM+");r("3i66")("isSealed",function(t){return function(n){return!e(n)||!!t&&t(n)}})},"//Fk":function(t,n,r){t.exports={default:r("U5ju"),__esModule:!0}},"/bQp":function(t,n){t.exports={}},"/whu":function(t,n){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},"07k+":function(t,n,r){for(var e,o=r("OzIq"),i=r("2p1q"),u=r("ulTY"),c=u("typed_array"),a=u("view"),s=!(!o.ArrayBuffer||!o.DataView),f=s,l=0,h="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<9;)(e=o[h[l++]])?(i(e.prototype,c,!0),i(e.prototype,a,!0)):f=!1;t.exports={ABV:s,CONSTR:f,TYPED:c,VIEW:a}},"0Rih":function(t,n,r){"use strict";var e=r("OzIq"),o=r("Ds5P"),i=r("R3AP"),u=r("A16L"),c=r("1aA0"),a=r("vmSO"),s=r("9GpA"),f=r("UKM+"),l=r("zgIt"),h=r("qkyc"),p=r("yYvK"),v=r("kic5");t.exports=function(t,n,r,d,y,g){var m=e[t],x=m,b=y?"set":"add",w=x&&x.prototype,P={},S=function(t){var n=w[t];i(w,t,"delete"==t?function(t){return!(g&&!f(t))&&n.call(this,0===t?0:t)}:"has"==t?function(t){return!(g&&!f(t))&&n.call(this,0===t?0:t)}:"get"==t?function(t){return g&&!f(t)?void 0:n.call(this,0===t?0:t)}:"add"==t?function(t){return n.call(this,0===t?0:t),this}:function(t,r){return n.call(this,0===t?0:t,r),this})};if("function"==typeof x&&(g||w.forEach&&!l(function(){(new x).entries().next()}))){var O=new x,_=O[b](g?{}:-0,1)!=O,D=l(function(){O.has(1)}),E=h(function(t){new x(t)}),j=!g&&l(function(){for(var t=new x,n=5;n--;)t[b](n,n);return!t.has(-0)});E||((x=n(function(n,r){s(n,x,t);var e=v(new m,n,x);return void 0!=r&&a(r,y,e[b],e),e})).prototype=w,w.constructor=x),(D||j)&&(S("delete"),S("has"),y&&S("get")),(j||_)&&S(b),g&&w.clear&&delete w.clear}else x=d.getConstructor(n,t,y,b),u(x.prototype,r),c.NEED=!0;return p(x,t),P[t]=x,o(o.G+o.W+o.F*(x!=m),P),g||d.setStrong(x,t,y),x}},"0j1G":function(t,n,r){"use strict";var e=r("Ds5P");t.exports=function(t){e(e.S,t,{of:function(){for(var t=arguments.length,n=new Array(t);t--;)n[t]=arguments[t];return new this(n)}})}},"0pGU":function(t,n,r){"use strict";var e=r("DIVP");t.exports=function(){var t=e(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},"1A13":function(t,n,r){"use strict";var e=r("49qz")(!0);r("uc2A")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,n=this._t,r=this._i;return r>=n.length?{value:void 0,done:!0}:(t=e(n,r),this._i+=t.length,{value:t,done:!1})})},"1ETD":function(t,n,r){var e=r("kkCw")("match");t.exports=function(t){var n=/./;try{"/./"[t](n)}catch(r){try{return n[e]=!1,!"/./"[t](n)}catch(t){}}return!0}},"1H6C":function(t,n,r){var e=function(){return this}()||Function("return this")(),o=e.regeneratorRuntime&&Object.getOwnPropertyNames(e).indexOf("regeneratorRuntime")>=0,i=o&&e.regeneratorRuntime;if(e.regeneratorRuntime=void 0,t.exports=r("HhN8"),o)e.regeneratorRuntime=i;else try{delete e.regeneratorRuntime}catch(t){e.regeneratorRuntime=void 0}},"1Yoh":function(t,n){
/*!
* Determine if an object is a Buffer
*
......
......@@ -355,7 +355,7 @@
tbody {
td {
border-bottom: 1px solid #e4e7ed;
padding: 12px 10px;
padding: 12px 0px;
vertical-align: middle;
color: #606266;
}
......
......@@ -145,7 +145,6 @@ export default {
that.axios
.post(that.baseUrl + '/api-auth/get-current-memu-data', qs.stringify(para))
.then(res => {
// console.log(res,res.data,res.data.errorCode)
var resData = res.data;
if (resData.errorCode == 0) {
if (!resData.result) {
......@@ -228,7 +227,6 @@ export default {
that.pathName = that.pathName.split('?')[0];
}
// console.log("pathname:",that.pathName)
// 获取菜单
that.getLeftMenu();
// 设置默认打开子菜单
......
......@@ -73,7 +73,7 @@ export default {
export const scan = {
path: 'scan',
name: '扫码营销管理',
component: () => import(/* webpackChunkName: "scan" */ '../../views/ecm/index.vue'),
component: () => import(/* webpackChunkName: "scan" */ '../../views/ecm/scan-index.vue'),
redirect: '/scan/list',
children: [
{
......@@ -127,6 +127,15 @@ export const scan = {
type: 'add',
path: '/scan/log'
}
},
{
path: 'currentlist/:id',
name: '扫码营销记录',
component: () => import(/* webpackChunkName: "scan" */ '../../views/ecm/scan-current-list.vue'),
meta: {
type: 'add',
path: '/scan/list'
}
}
]
};
......@@ -7,6 +7,12 @@ export const url = config.api + PREFIX;
//智能营销--ECM营销引擎分页列表
export const loadEcmList = params => requests(PREFIX + 'page-ecm-list', params);
//扫码营销--分页列表排序
export const changeEcmPlanSort = params => requests(PREFIX + 'change-ecm-plan-sort', params);
//扫码营销-日志
export const listEcmScanLogPage = params => requests(PREFIX + 'list-ecm-scan-log-page', params);
//智能营销--ECM营销引擎-- 删除
export const deleteEcm = params => requests(PREFIX + 'delete-ecm', params);
......
......@@ -65,6 +65,13 @@ export default {
components: {
'member-info': memberInfo
},
props: {
isComponet: {
// 是否作为组件使用 扫码营销作为组件引入该页面
default: false,
type: Boolean
}
},
data() {
return {
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
......@@ -152,14 +159,18 @@ export default {
};
},
mounted() {
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', '');
}, 5000);
if (!this.isComponet) {
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', '');
}, 5000);
}
},
created() {
this.ecmCurrentSendInfos();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }, { name: this.$route.query.name + ` - ${ this.$route.meta.type == 'current' ? '实时' : '立即' }发送记录`, path: '' }]); // eslint-disable-line
if (!this.isComponet) {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '智能营销', path: '/ecm' }, { name: this.$route.query.name + ` - ${ this.$route.meta.type == 'current' ? '实时' : '立即' }发送记录`, path: '' }]); // eslint-disable-line
}
},
beforeDestroy() {
this.$store.commit('mutations_layoutTips', '');
......
<template>
<div>
<currentList isComponet></currentList>
</div>
</template>
<script>
import currentList from './current-list';
export default {
name: 'scan-current-list',
components: {
currentList
},
mounted() {
const bread = [
{ name: '扫码营销', path: '' },
{ name: '营销计划', path: '/scan/list' }
];
console.log(this.$route.query.isHistory);
if (this.$route.query.isHistory) {
bread.push({ name: '历史营销计划', path: '/scan/history-list' });
}
this.$nextTick(_ => {
this.$store.commit('mutations_breadcrumb', [...bread, { name: this.$route.query.name + ` - 扫码营销记录` }]); // eslint-disable-line
});
}
};
</script>
<template>
<section class="dm-wrap" v-loading="loading">
<div class="pb22 clearfix">
<el-date-picker class="w400 ml10" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="创建开始时间" end-placeholder="创建结束时间" @change="search"></el-date-picker>
<el-input v-model="listParams.searchName" class="w200" placeholder="输入计划名称" clearable @change="search"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-checkbox class="vertical-middle" v-if="$store.state.marketing.isShowSelf" v-model="listParams.showSelfFlag" :true-label="1" :false-label="0" label="仅看本人" border @change="search" />
</div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" element-loading-text="拼命加载中">
<el-table-column v-for="(v, i) in tableHeader" :fixed="v.fixed" :show-overflow-tooltip="v.tooltip" :width="v.width" :min-width="v.minWidth" :align="v.align" :key="i" :prop="v.prop" :label="v.label" :formatter="v.formatter">
<template slot-scope="scope">
<span v-if="v.formatter" v-html="v.formatter(scope.row)"></span>
<span v-else>{{ scope.row[v.prop] || '--' }}</span>
</template>
</el-table-column>
<el-table-column min-width="100" align="left" prop="creatorName" label="创建人" v-if="$store.state.marketing.openFlag"></el-table-column>
<el-table-column label="操作" align="left" width="130" fixed="right">
<template slot-scope="scope">
<template v-if="scope.row.canEdit !== false">
<el-button type="text" @click="toRecord(scope.row)">记录</el-button>
<el-button type="text" v-if="scope.row.effectType == 2" @click="$router.push(`/scan/info/${scope.row.ecmPlanId}`)">详情</el-button>
</template>
<dm-delete v-if="scope.row.putonStatus !== 2 && scope.row.canEdit !== false" @confirm="delData(scope.row)" tips="是否删除该计划?">
<el-button type="text">删除</el-button>
</dm-delete>
</template>
</el-table-column>
</el-table>
<dm-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"></dm-pagination>
</section>
</template>
<script>
import { formatDateTimeByType } from '@/utils/index.js';
import { loadEcmList, deleteEcm } from '@/service/api/ecmApi.js';
export default {
name: 'scan-list',
data() {
return {
dateTime: [],
listParams: {
beginTime: '',
endTime: '',
onlineStatus: 2, // onlineStatus字段:不填为有效记录 2:历史记录
searchName: '',
currentPage: 1,
pageSize: 20,
showSelfFlag: '',
effectAction: 'scanning' // 新增字段:effectAction 当effectAction=scanning时 按level_sort倒序
},
total: 0,
loading: false,
tableHeader: [
{ label: '计划名称', prop: 'ecmPlanName', minWidth: '130', align: 'left' },
{
label: '创建时间',
prop: 'createTime',
minWidth: '140',
align: 'left',
formatter(row) {
const date = formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss', true);
return date.y + '\n' + date.h;
}
},
{
label: '状态',
minWidth: '100',
align: 'left',
formatter(row) {
return '已下线';
}
},
{
label: '执行时间',
prop: 'createTime',
minWidth: '140',
align: 'left',
formatter(row) {
const date = formatDateTimeByType(row.beginDate, 'yyyy-MM-dd-HH-mm-ss') + ' ~ <br/>' + formatDateTimeByType(row.endDate, 'yyyy-MM-dd-HH-mm-ss');
return date;
}
},
{ label: '合计营销次数', prop: 'timesForPeople', width: '160', align: 'left' }
],
tableList: []
};
},
created() {
this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '扫码营销', path: '' }, { name: '营销计划', path: '/scan' }, { name: '历史营销计划' }]); // eslint-disable-line
},
methods: {
search() {
this.listParams.currentPage = 1;
this.getTableList();
},
handleSizeChange(val) {
this.listParams.pageSize = val;
this.getTableList();
},
handleCurrentChange(val) {
this.listParams.currentPage = val;
this.getTableList();
},
async getTableList() {
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 = '';
}
const params = { ...this.listParams };
if (params.effectType === '') {
params.effectType = -1; // 全部时效的默认值是-1
}
this.loading = true;
try {
let res = await loadEcmList(params);
this.tableList = res.result.result || [];
this.total = res.result.totalCount;
this.loading = false;
} catch (error) {
this.loading = false;
}
},
// 记录
toRecord(row) {
this.$router.push({ path: `/scan/currentlist/${row.ecmPlanId}`, query: { name: row.ecmPlanName, isHistory: 1 } });
},
// 删除
async delData(row) {
try {
let res = await deleteEcm({ ecmPlanId: row.ecmPlanId });
if (res.errorCode === 0) {
this.$tips({ type: 'success', message: '删除成功!' });
if (this.tableList.length === 1 && this.listParams.currentPage !== 1) {
this.listParams.currentPage--;
}
this.getTableList();
} else {
this.$tips({ type: 'error', message: res.message || '删除失败!' });
}
} catch (err) {
this.$tips({ type: 'error', message: '删除失败!' });
}
}
}
};
</script>
<template>
<div>
<router-view />
</div>
</template>
<script>
export default {
name: 'scan-index',
created() {
this.$store.commit('aside_handler', false);
this.$nextTick(_ => {
this.$store.commit('aside_handler', true);
});
}
};
</script>
<template>
<section class="dm-wrap" v-loading="loading">
<div class="pb22 clearfix">
<el-select class="dm-select" v-model="listParams.gameStatus" placeholder="选择游戏状态" @change="refresh">
<el-option v-for="(v, i) in gameStatusOptions" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select>
<el-input v-model="listParams.searchParam" class="w200" placeholder="输入游戏名称" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-checkbox class="vertical-middle ml0" v-if="$store.state.marketing.isShowSelf" v-model="listParams.showSelfFlag" :true-label="1" :false-label="0" label="仅看本人" border @change="refresh" />
<el-button class="fr" type="primary" @click="$router.push('/game/dzp/add')">新建游戏</el-button>
<el-date-picker class="w400 ml10" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="扫码开始时间" end-placeholder="扫码结束时间" @change="search"></el-date-picker>
<el-input v-model="listParams.search" class="w200" placeholder="输入会员信息" clearable @change="search"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
</div>
<el-table tooltipEffect="light" :data="tableList" style="width:100%">
<el-table-column v-for="(v, i) in tableHeader" :fixed="v.fixed" :show-overflow-tooltip="v.tooltip" :width="v.width" :min-width="v.minWidth" :align="v.align" :key="i" :prop="v.prop" :label="v.label" :formatter="v.formatter">
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" element-loading-text="拼命加载中">
<el-table-column label="扫码时间" align="left" min-width="130">
<template slot-scope="scope">
<span v-if="v.formatter" v-html="v.formatter(scope.row)"></span>
<span v-else>{{ scope.row[v.prop] }}</span>
<p class="cell-time">
{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).y }}<br />
<span>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss', true).h }}</span>
</p>
</template>
</el-table-column>
<el-table-column min-width="100" align="left" prop="creatorName" label="创建人" v-if="$store.state.marketing.openFlag"></el-table-column>
<el-table-column label="操作" align="left" width="220px" fixed="right">
<el-table-column min-width="120" align="left" prop="memberName" label="用户"></el-table-column>
<el-table-column label="二维码信息" align="left" min-width="150">
<template slot-scope="scope">
<el-button type="text" @click="setLinks(scope.row, 1)">链接</el-button>
<el-button type="text" @click="$router.push('/game/dzp/record/' + scope.row.gameId)">中奖记录</el-button>
<el-button type="text" @click="$router.push('/game/dzp/edit/' + scope.row.gameId)" v-if="scope.row.gameStatus != '3'">编辑</el-button>
<el-button type="text" @click="$router.push('/game/dzp/detail/' + scope.row.gameId)" v-if="scope.row.gameStatus == '3'">详情</el-button>
<dm-delete @confirm="delData(scope.row)" v-if="scope.row.canEdit !== false" tips="是否删除该游戏?">
<el-button type="text">删除</el-button>
</dm-delete>
<div>门店:{{ scope.row.scanStoreName || '--' }}</div>
<div>导购:{{ scope.row.scanClerkName || '--' }}</div>
</template>
</el-table-column>
<el-table-column label="匹配扫码营销计划" align="left" min-width="140">
<template slot-scope="scope">
<el-button type="text" @click="$router.push(`/scan/info/${scope.row.ecmPlanId}?new=1`)">{{ scope.row.ecmPlanName || '--' }}</el-button>
</template>
</el-table-column>
</el-table>
<dm-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"></dm-pagination>
<links :show.sync="linkShow" :obj="linksObj" :gameTypeName="gameTypeName"></links>
</section>
</template>
<script>
import { formatDateTimeByType } from '@/utils/index.js';
import { loadLotteryList } from '@/service/api/gameApi.js';
import tableMethods from '@/mixins/tableMethods.js';
import { listEcmScanLogPage } from '@/service/api/ecmApi.js';
export default {
name: 'scan-log-list',
mixins: [tableMethods],
name: 'scan-list',
data() {
return {
gameStatusOptions: [{ value: '', label: '所有状态' }, { value: 1, label: '待开始' }, { value: 2, label: '进行中' }, { value: 3, label: '已结束' }], // eslint-disable-line
dateTime: [],
listParams: {
gameStatus: '',
gameType: 1,
searchParam: '',
search: '',
currentPage: 1,
pageSize: 20,
showSelfFlag: ''
beginTime: '',
endTime: ''
},
total: 0,
loading: false,
tableHeader: [
{ label: '游戏名称', prop: 'gameName', align: 'left', fixed: 'left' },
{
label: '抽奖消耗',
prop: 'gameIntegral',
width: '120',
align: 'left',
formatter: function(row) {
return row.gameIntegral + '积分';
}
},
{
label: '中奖几率',
prop: 'gameWinningRate',
width: '120',
align: 'left',
formatter: function(row) {
return row.gameWinningRate.toFixed(1) + '%';
}
},
{
label: '游戏状态',
prop: 'gameStatusName',
width: '120',
align: 'left',
isRender: true,
formatter: function(row) {
if (row.gameStatusName === '进行中') {
return `<div><span class="dm-status--primary--flash"></span>${row.gameStatusName}</div>`;
} else {
return `<div class="${row.gameStatusName === '未开始' ? 'dm-status--warning' : 'dm-status--info'}">${row.gameStatusName}</div>`;
}
}
},
{
label: '开始时间',
prop: 'gameStartTime',
minWidth: '100',
tooltip: true,
align: 'left',
formatter: function(row) {
return `<p class="cell-time">
${formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{
label: '结束时间',
prop: 'gameEndTime',
minWidth: '100',
tooltip: true,
align: 'left',
formatter: function(row) {
return `<p class="cell-time">
${formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true).y}<br />
<span>${formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss', true).h}</span>
</p>`;
}
},
{ label: '参与人数', prop: 'userCount', width: '100', align: 'left' },
{ label: '参与次数', prop: 'totalCount', width: '100', align: 'left' }
],
tableList: []
};
},
created() {
this.getTableList();
this.$store.commit('aside_handler', true);
this.$store.commit('mutations_breadcrumb', [{ name: '扫码营销', path: '' }, { name: '营销计划日志' }]); // eslint-disable-line
this.$store.commit('mutations_breadcrumb', [{ name: '扫码营销', path: '' }, { name: '营销计划', path: '/scan' }, { name: '历史营销计划' }]); // eslint-disable-line
},
methods: {
// 拉取列表
getTableList() {
formatDateTimeByType,
search() {
this.listParams.currentPage = 1;
this.getTableList();
},
handleSizeChange(val) {
this.listParams.pageSize = val;
this.getTableList();
},
handleCurrentChange(val) {
this.listParams.currentPage = val;
this.getTableList();
},
async getTableList() {
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 = '';
}
this.loading = true;
loadLotteryList(this.listParams)
.then(res => {
if (res.errorCode === 0) {
this.tableList = res.result.page.result || [];
this.total = res.result.page.totalCount || 0;
this.loading = false;
}
})
.catch(err => {
this.loading = false;
});
try {
let res = await listEcmScanLogPage(this.listParams);
this.tableList = res.result.result || [];
this.total = res.result.totalCount;
this.loading = false;
} catch (error) {
this.loading = false;
}
}
}
};
......
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