Commit 85643cae by 无尘

feat: 增加路由和配置页面

parent b477c901
<!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>分享有礼</title><link href=./static/css/app.84fd37d2ca029b67afcb5f50e5e0072f.css rel=stylesheet></head><body style="background-color: #f0f2f5;min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/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/lib/elementUI/index.2.5.4.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.03.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.29.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.38.js></script><script src=//web-1251519181.file.myqcloud.com/components/aside-menu.2.0.11.js></script><script src=//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.91.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.12.js></script><script type=text/javascript src=./static/js/manifest.4c9a3a082e0c3944714e.js></script><script type=text/javascript src=./static/js/vendor.14f8172dd3290d7d86d8.js></script><script type=text/javascript src=./static/js/app.54830dfd03db1fb3ddb1.js></script></body></html> <!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>分享有礼</title><link href=./static/css/app.fdcc6953c98d61ef594c3a57c28a8dbe.css rel=stylesheet></head><body style="background-color: #f0f2f5;min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/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/lib/elementUI/index.2.5.4.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.03.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.29.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.38.js></script><script src=//web-1251519181.file.myqcloud.com/components/aside-menu.2.0.11.js></script><script src=//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.91.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.12.js></script><script type=text/javascript src=./static/js/manifest.d1dc105a1153160900ad.js></script><script type=text/javascript src=./static/js/vendor.14f8172dd3290d7d86d8.js></script><script type=text/javascript src=./static/js/app.5f91851d0177bf3c6f90.js></script></body></html>
\ No newline at end of file \ 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.
...@@ -614,6 +614,13 @@ strong { ...@@ -614,6 +614,13 @@ strong {
align-items: center; align-items: center;
} }
.flex-align-end {
-webkit-box-align: flex-end;
-webkit-align-items: flex-end;
-ms-flex-align: flex-end;
align-items: flex-end;
}
.flex-pack-center { .flex-pack-center {
-webkit-box-pack: center; -webkit-box-pack: center;
-webkit-justify-content: center; -webkit-justify-content: center;
...@@ -621,6 +628,13 @@ strong { ...@@ -621,6 +628,13 @@ strong {
justify-content: center; justify-content: center;
} }
.flex-pack-end {
-webkit-box-pack: flex-end;
-webkit-justify-content: flex-end;
-ms-flex-pack: flex-end;
justify-content: flex-end;
}
.flex-space-between { .flex-space-between {
-webkit-justify-content: space-between; -webkit-justify-content: space-between;
-moz-justify-content: space-between; -moz-justify-content: space-between;
......
dist/static/img/default.jpg

6.31 KB | W: | H:

dist/static/img/default.jpg

31.6 KB | W: | H:

dist/static/img/default.jpg
dist/static/img/default.jpg
dist/static/img/default.jpg
dist/static/img/default.jpg
  • 2-up
  • Swipe
  • Onion skin
webpackJsonp([0],{"3Xzz":function(e,t,r){"use strict";var n=r("P9l9"),o=r("Ch4/"),a={name:"navpath",data:function(){return{projectName:"member"}},props:{navpath:{type:Array,default:function(){return[]}},navtip:{type:Boolean,default:!1}},methods:{changeRoute:function(e,t){t?window.location.href=e:this.$router.push(e)},getNavPath:function(){var e=this,t={project:e.projectName,path:e.$route.path.split("/")[1]};Object(n.b)("/api-auth/get-current-memu-data",t).then(function(t){var r=t.data;if(0==r.errorCode){if(!r.result)return;return e.navpath=[],void(r.result.list&&r.result.list.length&&r.result.list.forEach(function(t,n){t.name=t.menuName,t.path="",n==r.result.list.length-1&&(t.path="/"+t.menuUrl),n>0&&e.navpath.push(t)}))}o.a.errorMsg(r)}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})}},mounted:function(){}},i={render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"navwrap boxbttom"},[r("el-breadcrumb",{attrs:{separator:"/"}},[e._l(e.navpath,function(t,n){return[t.path?[r("el-breadcrumb-item",{key:t.name+n,attrs:{to:{path:t.path}},on:{click:function(r){return e.changeRoute(t.path,t.relocation)}}},[r("span",{staticClass:"el-breadcrumb__inner is-link",on:{click:function(r){return e.changeRoute(t.path,t.relocation)}}},[e._v(e._s(t.name))])])]:[r("el-breadcrumb-item",{key:t.name+n},[e._v(e._s(t.name))])]]})],2),e._v(" "),r("h1",{staticClass:"navtitle"},[e._v(e._s(e.navpath[e.navpath.length-1].name))]),e._v(" "),1==e.navtip?r("div",{staticClass:"navtip navmTop"},[r("i",{staticClass:"el-icon-info navtipcolor"}),e._v("变更导航个数,移动顺序,更换页面链接均需提交小程序审核后重新发布生效,其他变更立即生效。小程序审核请联系品牌项目经理。\n ")]):e._e()],1)},staticRenderFns:[]};var c=r("VU/8")(a,i,!1,function(e){r("HmyY")},"data-v-3fe61a6b",null);t.a=c.exports},"Ch4/":function(e,t,r){"use strict";var n=r("zL8q");r.n(n);t.a={errorMsg:function(e){var t=window.location.origin;if(t.indexOf("localhost")&&(t="http://gicdev.demogic.com"),1!=e.errorCode){if(401==e.errorCode)return window.location.href=t+"/gic-web/#/",!1;n.Message.error({duration:1e3,message:e.message})}}}},CwSZ:function(e,t,r){"use strict";var n=r("p8xL"),o=r("XgCd"),a={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},i=Date.prototype.toISOString,c={delimiter:"&",encode:!0,encoder:n.encode,encodeValuesOnly:!1,serializeDate:function(e){return i.call(e)},skipNulls:!1,strictNullHandling:!1},s=function e(t,r,o,a,i,s,l,u,p,f,d,m){var y=t;if("function"==typeof l)y=l(r,y);else if(y instanceof Date)y=f(y);else if(null===y){if(a)return s&&!m?s(r,c.encoder):r;y=""}if("string"==typeof y||"number"==typeof y||"boolean"==typeof y||n.isBuffer(y))return s?[d(m?r:s(r,c.encoder))+"="+d(s(y,c.encoder))]:[d(r)+"="+d(String(y))];var g,h=[];if(void 0===y)return h;if(Array.isArray(l))g=l;else{var v=Object.keys(y);g=u?v.sort(u):v}for(var b=0;b<g.length;++b){var w=g[b];i&&null===y[w]||(h=Array.isArray(y)?h.concat(e(y[w],o(r,w),o,a,i,s,l,u,p,f,d,m)):h.concat(e(y[w],r+(p?"."+w:"["+w+"]"),o,a,i,s,l,u,p,f,d,m)))}return h};e.exports=function(e,t){var r=e,i=t?n.assign({},t):{};if(null!==i.encoder&&void 0!==i.encoder&&"function"!=typeof i.encoder)throw new TypeError("Encoder has to be a function.");var l=void 0===i.delimiter?c.delimiter:i.delimiter,u="boolean"==typeof i.strictNullHandling?i.strictNullHandling:c.strictNullHandling,p="boolean"==typeof i.skipNulls?i.skipNulls:c.skipNulls,f="boolean"==typeof i.encode?i.encode:c.encode,d="function"==typeof i.encoder?i.encoder:c.encoder,m="function"==typeof i.sort?i.sort:null,y=void 0!==i.allowDots&&i.allowDots,g="function"==typeof i.serializeDate?i.serializeDate:c.serializeDate,h="boolean"==typeof i.encodeValuesOnly?i.encodeValuesOnly:c.encodeValuesOnly;if(void 0===i.format)i.format=o.default;else if(!Object.prototype.hasOwnProperty.call(o.formatters,i.format))throw new TypeError("Unknown format option provided.");var v,b,w=o.formatters[i.format];"function"==typeof i.filter?r=(b=i.filter)("",r):Array.isArray(i.filter)&&(v=b=i.filter);var j,O=[];if("object"!=typeof r||null===r)return"";j=i.arrayFormat in a?i.arrayFormat:"indices"in i?i.indices?"indices":"repeat":"indices";var x=a[j];v||(v=Object.keys(r)),m&&v.sort(m);for(var C=0;C<v.length;++C){var A=v[C];p&&null===r[A]||(O=O.concat(s(r[A],A,x,u,p,f?d:null,b,m,y,g,w,h)))}var P=O.join(l),N=!0===i.addQueryPrefix?"?":"";return P.length>0?N+P:""}},DDCP:function(e,t,r){"use strict";var n=r("p8xL"),o=Object.prototype.hasOwnProperty,a={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:n.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},i=function(e,t,r){if(e){var n=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,i=/(\[[^[\]]*])/.exec(n),c=i?n.slice(0,i.index):n,s=[];if(c){if(!r.plainObjects&&o.call(Object.prototype,c)&&!r.allowPrototypes)return;s.push(c)}for(var l=0;null!==(i=a.exec(n))&&l<r.depth;){if(l+=1,!r.plainObjects&&o.call(Object.prototype,i[1].slice(1,-1))&&!r.allowPrototypes)return;s.push(i[1])}return i&&s.push("["+n.slice(i.index)+"]"),function(e,t,r){for(var n=t,o=e.length-1;o>=0;--o){var a,i=e[o];if("[]"===i)a=(a=[]).concat(n);else{a=r.plainObjects?Object.create(null):{};var c="["===i.charAt(0)&&"]"===i.charAt(i.length-1)?i.slice(1,-1):i,s=parseInt(c,10);!isNaN(s)&&i!==c&&String(s)===c&&s>=0&&r.parseArrays&&s<=r.arrayLimit?(a=[])[s]=n:a[c]=n}n=a}return n}(s,t,r)}};e.exports=function(e,t){var r=t?n.assign({},t):{};if(null!==r.decoder&&void 0!==r.decoder&&"function"!=typeof r.decoder)throw new TypeError("Decoder has to be a function.");if(r.ignoreQueryPrefix=!0===r.ignoreQueryPrefix,r.delimiter="string"==typeof r.delimiter||n.isRegExp(r.delimiter)?r.delimiter:a.delimiter,r.depth="number"==typeof r.depth?r.depth:a.depth,r.arrayLimit="number"==typeof r.arrayLimit?r.arrayLimit:a.arrayLimit,r.parseArrays=!1!==r.parseArrays,r.decoder="function"==typeof r.decoder?r.decoder:a.decoder,r.allowDots="boolean"==typeof r.allowDots?r.allowDots:a.allowDots,r.plainObjects="boolean"==typeof r.plainObjects?r.plainObjects:a.plainObjects,r.allowPrototypes="boolean"==typeof r.allowPrototypes?r.allowPrototypes:a.allowPrototypes,r.parameterLimit="number"==typeof r.parameterLimit?r.parameterLimit:a.parameterLimit,r.strictNullHandling="boolean"==typeof r.strictNullHandling?r.strictNullHandling:a.strictNullHandling,""===e||null===e||void 0===e)return r.plainObjects?Object.create(null):{};for(var c="string"==typeof e?function(e,t){for(var r={},n=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,i=t.parameterLimit===1/0?void 0:t.parameterLimit,c=n.split(t.delimiter,i),s=0;s<c.length;++s){var l,u,p=c[s],f=p.indexOf("]="),d=-1===f?p.indexOf("="):f+1;-1===d?(l=t.decoder(p,a.decoder),u=t.strictNullHandling?null:""):(l=t.decoder(p.slice(0,d),a.decoder),u=t.decoder(p.slice(d+1),a.decoder)),o.call(r,l)?r[l]=[].concat(r[l]).concat(u):r[l]=u}return r}(e,r):e,s=r.plainObjects?Object.create(null):{},l=Object.keys(c),u=0;u<l.length;++u){var p=l[u],f=i(p,c[p],r);s=n.merge(s,f,r)}return n.compact(s)}},HmyY:function(e,t){},P9l9:function(e,t,r){"use strict";r.d(t,"a",function(){return p}),r.d(t,"b",function(){return f});var n=r("//Fk"),o=r.n(n),a=r("lRwf"),i=r.n(a),c=r("mw3O"),s=r.n(c),l=r("zL8q");r.n(l);i.a.axios.defaults.timeout=25e3;var u=window.location.origin;-1!=u.indexOf("localhost")&&(u="http://gicdev.demogic.com"),i.a.axios.interceptors.request.use(function(e){return e},function(e){return l.Message.error({message:"请求超时!"}),o.a.resolve(e)}),i.a.axios.interceptors.response.use(function(e){return e.status&&200==e.status&&"401"==e.data.errorCode?(l.Message.error({message:e.data.message}),void(window.location.href=u+"/gic-web/#/")):e},function(e){return 504==e.response.status||404==e.response.status?l.Message.error({message:"服务异常⊙﹏⊙∥"}):(e.response.status,window.location.href=u+"/gic-web/#/"),o.a.resolve(e)});var p=function(e,t){return t.requestProject="member-tag",i.a.axios({method:"get",url:u+"/gic-member-tag-web"+e,data:{},params:t,headers:{"content-type":"application/x-www-form-urlencoded"}})},f=function(e,t){return t.requestProject="member-tag",i.a.axios({method:"post",url:u+"/gic-member-tag-web"+e,data:s.a.stringify(t),headers:{"content-type":"application/x-www-form-urlencoded"}})}},XgCd:function(e,t,r){"use strict";var n=String.prototype.replace,o=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return n.call(e,o,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},mw3O:function(e,t,r){"use strict";var n=r("CwSZ"),o=r("DDCP"),a=r("XgCd");e.exports={formats:a,parse:o,stringify:n}},p8xL:function(e,t,r){"use strict";var n=Object.prototype.hasOwnProperty,o=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}();t.arrayToObject=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},n=0;n<e.length;++n)void 0!==e[n]&&(r[n]=e[n]);return r},t.merge=function(e,r,o){if(!r)return e;if("object"!=typeof r){if(Array.isArray(e))e.push(r);else{if("object"!=typeof e)return[e,r];(o.plainObjects||o.allowPrototypes||!n.call(Object.prototype,r))&&(e[r]=!0)}return e}if("object"!=typeof e)return[e].concat(r);var a=e;return Array.isArray(e)&&!Array.isArray(r)&&(a=t.arrayToObject(e,o)),Array.isArray(e)&&Array.isArray(r)?(r.forEach(function(r,a){n.call(e,a)?e[a]&&"object"==typeof e[a]?e[a]=t.merge(e[a],r,o):e.push(r):e[a]=r}),e):Object.keys(r).reduce(function(e,a){var i=r[a];return n.call(e,a)?e[a]=t.merge(e[a],i,o):e[a]=i,e},a)},t.assign=function(e,t){return Object.keys(t).reduce(function(e,r){return e[r]=t[r],e},e)},t.decode=function(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return e}},t.encode=function(e){if(0===e.length)return e;for(var t="string"==typeof e?e:String(e),r="",n=0;n<t.length;++n){var a=t.charCodeAt(n);45===a||46===a||95===a||126===a||a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122?r+=t.charAt(n):a<128?r+=o[a]:a<2048?r+=o[192|a>>6]+o[128|63&a]:a<55296||a>=57344?r+=o[224|a>>12]+o[128|a>>6&63]+o[128|63&a]:(n+=1,a=65536+((1023&a)<<10|1023&t.charCodeAt(n)),r+=o[240|a>>18]+o[128|a>>12&63]+o[128|a>>6&63]+o[128|63&a])}return r},t.compact=function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n<t.length;++n)for(var o=t[n],a=o.obj[o.prop],i=Object.keys(a),c=0;c<i.length;++c){var s=i[c],l=a[s];"object"==typeof l&&null!==l&&-1===r.indexOf(l)&&(t.push({obj:a,prop:s}),r.push(l))}return function(e){for(var t;e.length;){var r=e.pop();if(t=r.obj[r.prop],Array.isArray(t)){for(var n=[],o=0;o<t.length;++o)void 0!==t[o]&&n.push(t[o]);r.obj[r.prop]=n}}return t}(t)},t.isRegExp=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},t.isBuffer=function(e){return null!==e&&void 0!==e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}}}); webpackJsonp([0],{"3Xzz":function(e,t,r){"use strict";var n=r("P9l9"),o=r("Ch4/"),a={name:"navpath",data:function(){return{projectName:"member"}},props:{navpath:{type:Array,default:function(){return[]}},navtip:{type:Boolean,default:!1}},methods:{changeRoute:function(e,t){t?window.location.href=e:this.$router.push(e)},getNavPath:function(){var e=this,t={project:e.projectName,path:e.$route.path.split("/")[1]};Object(n.b)("/api-auth/get-current-memu-data",t).then(function(t){var r=t.data;if(0==r.errorCode){if(!r.result)return;return e.navpath=[],void(r.result.list&&r.result.list.length&&r.result.list.forEach(function(t,n){t.name=t.menuName,t.path="",n==r.result.list.length-1&&(t.path="/"+t.menuUrl),n>0&&e.navpath.push(t)}))}o.a.errorMsg(r)}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})}},mounted:function(){}},i={render:function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"navwrap boxbttom"},[r("el-breadcrumb",{attrs:{separator:"/"}},[e._l(e.navpath,function(t,n){return[t.path?[r("el-breadcrumb-item",{key:t.name+n,attrs:{to:{path:t.path}},on:{click:function(r){return e.changeRoute(t.path,t.relocation)}}},[r("span",{staticClass:"el-breadcrumb__inner is-link",on:{click:function(r){return e.changeRoute(t.path,t.relocation)}}},[e._v(e._s(t.name))])])]:[r("el-breadcrumb-item",{key:t.name+n},[e._v(e._s(t.name))])]]})],2),e._v(" "),r("h1",{staticClass:"navtitle"},[e._v(e._s(e.navpath[e.navpath.length-1].name))]),e._v(" "),1==e.navtip?r("div",{staticClass:"navtip navmTop"},[r("i",{staticClass:"el-icon-info navtipcolor"}),e._v("变更导航个数,移动顺序,更换页面链接均需提交小程序审核后重新发布生效,其他变更立即生效。小程序审核请联系品牌项目经理。\n ")]):e._e()],1)},staticRenderFns:[]};var c=r("VU/8")(a,i,!1,function(e){r("HmyY")},"data-v-3fe61a6b",null);t.a=c.exports},"Ch4/":function(e,t,r){"use strict";var n=r("zL8q");r.n(n);t.a={errorMsg:function(e){var t=window.location.origin;if(t.indexOf("localhost")&&(t="http://gicdev.demogic.com"),1!=e.errorCode){if(401==e.errorCode)return window.location.href=t+"/gic-web/#/",!1;n.Message.error({duration:1e3,message:e.message})}}}},CwSZ:function(e,t,r){"use strict";var n=r("p8xL"),o=r("XgCd"),a={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},i=Date.prototype.toISOString,c={delimiter:"&",encode:!0,encoder:n.encode,encodeValuesOnly:!1,serializeDate:function(e){return i.call(e)},skipNulls:!1,strictNullHandling:!1},s=function e(t,r,o,a,i,s,l,u,p,f,d,y){var m=t;if("function"==typeof l)m=l(r,m);else if(m instanceof Date)m=f(m);else if(null===m){if(a)return s&&!y?s(r,c.encoder):r;m=""}if("string"==typeof m||"number"==typeof m||"boolean"==typeof m||n.isBuffer(m))return s?[d(y?r:s(r,c.encoder))+"="+d(s(m,c.encoder))]:[d(r)+"="+d(String(m))];var h,g=[];if(void 0===m)return g;if(Array.isArray(l))h=l;else{var v=Object.keys(m);h=u?v.sort(u):v}for(var b=0;b<h.length;++b){var w=h[b];i&&null===m[w]||(g=Array.isArray(m)?g.concat(e(m[w],o(r,w),o,a,i,s,l,u,p,f,d,y)):g.concat(e(m[w],r+(p?"."+w:"["+w+"]"),o,a,i,s,l,u,p,f,d,y)))}return g};e.exports=function(e,t){var r=e,i=t?n.assign({},t):{};if(null!==i.encoder&&void 0!==i.encoder&&"function"!=typeof i.encoder)throw new TypeError("Encoder has to be a function.");var l=void 0===i.delimiter?c.delimiter:i.delimiter,u="boolean"==typeof i.strictNullHandling?i.strictNullHandling:c.strictNullHandling,p="boolean"==typeof i.skipNulls?i.skipNulls:c.skipNulls,f="boolean"==typeof i.encode?i.encode:c.encode,d="function"==typeof i.encoder?i.encoder:c.encoder,y="function"==typeof i.sort?i.sort:null,m=void 0!==i.allowDots&&i.allowDots,h="function"==typeof i.serializeDate?i.serializeDate:c.serializeDate,g="boolean"==typeof i.encodeValuesOnly?i.encodeValuesOnly:c.encodeValuesOnly;if(void 0===i.format)i.format=o.default;else if(!Object.prototype.hasOwnProperty.call(o.formatters,i.format))throw new TypeError("Unknown format option provided.");var v,b,w=o.formatters[i.format];"function"==typeof i.filter?r=(b=i.filter)("",r):Array.isArray(i.filter)&&(v=b=i.filter);var j,O=[];if("object"!=typeof r||null===r)return"";j=i.arrayFormat in a?i.arrayFormat:"indices"in i?i.indices?"indices":"repeat":"indices";var x=a[j];v||(v=Object.keys(r)),y&&v.sort(y);for(var C=0;C<v.length;++C){var A=v[C];p&&null===r[A]||(O=O.concat(s(r[A],A,x,u,p,f?d:null,b,y,m,h,w,g)))}var P=O.join(l),N=!0===i.addQueryPrefix?"?":"";return P.length>0?N+P:""}},DDCP:function(e,t,r){"use strict";var n=r("p8xL"),o=Object.prototype.hasOwnProperty,a={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:n.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},i=function(e,t,r){if(e){var n=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,i=/(\[[^[\]]*])/.exec(n),c=i?n.slice(0,i.index):n,s=[];if(c){if(!r.plainObjects&&o.call(Object.prototype,c)&&!r.allowPrototypes)return;s.push(c)}for(var l=0;null!==(i=a.exec(n))&&l<r.depth;){if(l+=1,!r.plainObjects&&o.call(Object.prototype,i[1].slice(1,-1))&&!r.allowPrototypes)return;s.push(i[1])}return i&&s.push("["+n.slice(i.index)+"]"),function(e,t,r){for(var n=t,o=e.length-1;o>=0;--o){var a,i=e[o];if("[]"===i)a=(a=[]).concat(n);else{a=r.plainObjects?Object.create(null):{};var c="["===i.charAt(0)&&"]"===i.charAt(i.length-1)?i.slice(1,-1):i,s=parseInt(c,10);!isNaN(s)&&i!==c&&String(s)===c&&s>=0&&r.parseArrays&&s<=r.arrayLimit?(a=[])[s]=n:a[c]=n}n=a}return n}(s,t,r)}};e.exports=function(e,t){var r=t?n.assign({},t):{};if(null!==r.decoder&&void 0!==r.decoder&&"function"!=typeof r.decoder)throw new TypeError("Decoder has to be a function.");if(r.ignoreQueryPrefix=!0===r.ignoreQueryPrefix,r.delimiter="string"==typeof r.delimiter||n.isRegExp(r.delimiter)?r.delimiter:a.delimiter,r.depth="number"==typeof r.depth?r.depth:a.depth,r.arrayLimit="number"==typeof r.arrayLimit?r.arrayLimit:a.arrayLimit,r.parseArrays=!1!==r.parseArrays,r.decoder="function"==typeof r.decoder?r.decoder:a.decoder,r.allowDots="boolean"==typeof r.allowDots?r.allowDots:a.allowDots,r.plainObjects="boolean"==typeof r.plainObjects?r.plainObjects:a.plainObjects,r.allowPrototypes="boolean"==typeof r.allowPrototypes?r.allowPrototypes:a.allowPrototypes,r.parameterLimit="number"==typeof r.parameterLimit?r.parameterLimit:a.parameterLimit,r.strictNullHandling="boolean"==typeof r.strictNullHandling?r.strictNullHandling:a.strictNullHandling,""===e||null===e||void 0===e)return r.plainObjects?Object.create(null):{};for(var c="string"==typeof e?function(e,t){for(var r={},n=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,i=t.parameterLimit===1/0?void 0:t.parameterLimit,c=n.split(t.delimiter,i),s=0;s<c.length;++s){var l,u,p=c[s],f=p.indexOf("]="),d=-1===f?p.indexOf("="):f+1;-1===d?(l=t.decoder(p,a.decoder),u=t.strictNullHandling?null:""):(l=t.decoder(p.slice(0,d),a.decoder),u=t.decoder(p.slice(d+1),a.decoder)),o.call(r,l)?r[l]=[].concat(r[l]).concat(u):r[l]=u}return r}(e,r):e,s=r.plainObjects?Object.create(null):{},l=Object.keys(c),u=0;u<l.length;++u){var p=l[u],f=i(p,c[p],r);s=n.merge(s,f,r)}return n.compact(s)}},HmyY:function(e,t){},P9l9:function(e,t,r){"use strict";r.d(t,"a",function(){return p}),r.d(t,"b",function(){return f});var n=r("//Fk"),o=r.n(n),a=r("lRwf"),i=r.n(a),c=r("mw3O"),s=r.n(c),l=r("zL8q");r.n(l);i.a.axios.defaults.timeout=25e3;var u=window.location.origin;-1!=u.indexOf("localhost")&&(u="http://gicdev.demogic.com"),i.a.axios.interceptors.request.use(function(e){return e},function(e){return l.Message.error({message:"请求超时!"}),o.a.resolve(e)}),i.a.axios.interceptors.response.use(function(e){return e.status&&200==e.status&&"401"==e.data.errorCode?(l.Message.error({message:e.data.message}),void(window.location.href=u+"/gic-web/#/")):e},function(e){return 504==e.response.status||404==e.response.status?l.Message.error({message:"服务异常⊙﹏⊙∥"}):(e.response.status,window.location.href=u+"/gic-web/#/"),o.a.resolve(e)});var p=function(e,t){return t.requestProject="share-config",i.a.axios({method:"get",url:""+u+e,data:{},params:t,headers:{"content-type":"application/x-www-form-urlencoded"}})},f=function(e,t){return t.requestProject="share-config",i.a.axios({method:"post",url:""+u+e,data:s.a.stringify(t),headers:{"content-type":"application/x-www-form-urlencoded"}})}},XgCd:function(e,t,r){"use strict";var n=String.prototype.replace,o=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return n.call(e,o,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},mw3O:function(e,t,r){"use strict";var n=r("CwSZ"),o=r("DDCP"),a=r("XgCd");e.exports={formats:a,parse:o,stringify:n}},p8xL:function(e,t,r){"use strict";var n=Object.prototype.hasOwnProperty,o=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}();t.arrayToObject=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},n=0;n<e.length;++n)void 0!==e[n]&&(r[n]=e[n]);return r},t.merge=function(e,r,o){if(!r)return e;if("object"!=typeof r){if(Array.isArray(e))e.push(r);else{if("object"!=typeof e)return[e,r];(o.plainObjects||o.allowPrototypes||!n.call(Object.prototype,r))&&(e[r]=!0)}return e}if("object"!=typeof e)return[e].concat(r);var a=e;return Array.isArray(e)&&!Array.isArray(r)&&(a=t.arrayToObject(e,o)),Array.isArray(e)&&Array.isArray(r)?(r.forEach(function(r,a){n.call(e,a)?e[a]&&"object"==typeof e[a]?e[a]=t.merge(e[a],r,o):e.push(r):e[a]=r}),e):Object.keys(r).reduce(function(e,a){var i=r[a];return n.call(e,a)?e[a]=t.merge(e[a],i,o):e[a]=i,e},a)},t.assign=function(e,t){return Object.keys(t).reduce(function(e,r){return e[r]=t[r],e},e)},t.decode=function(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return e}},t.encode=function(e){if(0===e.length)return e;for(var t="string"==typeof e?e:String(e),r="",n=0;n<t.length;++n){var a=t.charCodeAt(n);45===a||46===a||95===a||126===a||a>=48&&a<=57||a>=65&&a<=90||a>=97&&a<=122?r+=t.charAt(n):a<128?r+=o[a]:a<2048?r+=o[192|a>>6]+o[128|63&a]:a<55296||a>=57344?r+=o[224|a>>12]+o[128|a>>6&63]+o[128|63&a]:(n+=1,a=65536+((1023&a)<<10|1023&t.charCodeAt(n)),r+=o[240|a>>18]+o[128|a>>12&63]+o[128|a>>6&63]+o[128|63&a])}return r},t.compact=function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n<t.length;++n)for(var o=t[n],a=o.obj[o.prop],i=Object.keys(a),c=0;c<i.length;++c){var s=i[c],l=a[s];"object"==typeof l&&null!==l&&-1===r.indexOf(l)&&(t.push({obj:a,prop:s}),r.push(l))}return function(e){for(var t;e.length;){var r=e.pop();if(t=r.obj[r.prop],Array.isArray(t)){for(var n=[],o=0;o<t.length;++o)void 0!==t[o]&&n.push(t[o]);r.obj[r.prop]=n}}return t}(t)},t.isRegExp=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},t.isBuffer=function(e){return null!==e&&void 0!==e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))}}});
\ No newline at end of file \ 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.
webpackJsonp([3],{"/VZe":function(t,e){},"3E4D":function(t,e,a){"use strict";var i=a("zL8q");a.n(i);e.a={showmsg:function(t,e){Object(i.Message)({duration:1e3,message:t,type:e})}}},Gx6y:function(t,e){},IEiK:function(t,e){},KCp1:function(t,e){},OSz6:function(t,e){},TQvf:function(t,e,a){
/*!
* clipboard.js v2.0.4
* https://zenorocha.github.io/clipboard.js
*
* Licensed MIT © Zeno Rocha
*/
var i;i=function(){return function(t){var e={};function a(i){if(e[i])return e[i].exports;var n=e[i]={i:i,l:!1,exports:{}};return t[i].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=t,a.c=e,a.d=function(t,e,i){a.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.t=function(t,e){if(1&e&&(t=a(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(a.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)a.d(i,n,function(e){return t[e]}.bind(null,n));return i},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=0)}([function(t,e,a){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n=function(){function t(t,e){for(var a=0;a<e.length;a++){var i=e[a];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,a,i){return a&&t(e.prototype,a),i&&t(e,i),e}}(),r=o(a(1)),s=o(a(3)),c=o(a(4));function o(t){return t&&t.__esModule?t:{default:t}}var l=function(t){function e(t,a){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var i=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return i.resolveOptions(a),i.listenClick(t),i}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,s.default),n(e,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===i(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,c.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new r.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,a=!!document.queryCommandSupported;return e.forEach(function(t){a=a&&!!document.queryCommandSupported(t)}),a}}]),e}();function u(t,e){var a="data-clipboard-"+t;if(e.hasAttribute(a))return e.getAttribute(a)}t.exports=l},function(t,e,a){"use strict";var i,n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=function(){function t(t,e){for(var a=0;a<e.length;a++){var i=e[a];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,a,i){return a&&t(e.prototype,a),i&&t(e,i),e}}(),s=a(2),c=(i=s)&&i.__esModule?i:{default:i};var o=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.resolveOptions(e),this.initSelection()}return r(t,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var a=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=a+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,c.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,c.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":n(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=o},function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var a=t.hasAttribute("readonly");a||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),a||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var i=window.getSelection(),n=document.createRange();n.selectNodeContents(t),i.removeAllRanges(),i.addRange(n),e=i.toString()}return e}},function(t,e){function a(){}a.prototype={on:function(t,e,a){var i=this.e||(this.e={});return(i[t]||(i[t]=[])).push({fn:e,ctx:a}),this},once:function(t,e,a){var i=this;function n(){i.off(t,n),e.apply(a,arguments)}return n._=e,this.on(t,n,a)},emit:function(t){for(var e=[].slice.call(arguments,1),a=((this.e||(this.e={}))[t]||[]).slice(),i=0,n=a.length;i<n;i++)a[i].fn.apply(a[i].ctx,e);return this},off:function(t,e){var a=this.e||(this.e={}),i=a[t],n=[];if(i&&e)for(var r=0,s=i.length;r<s;r++)i[r].fn!==e&&i[r].fn._!==e&&n.push(i[r]);return n.length?a[t]=n:delete a[t],this}},t.exports=a},function(t,e,a){var i=a(5),n=a(6);t.exports=function(t,e,a){if(!t&&!e&&!a)throw new Error("Missing required arguments");if(!i.string(e))throw new TypeError("Second argument must be a String");if(!i.fn(a))throw new TypeError("Third argument must be a Function");if(i.node(t))return function(t,e,a){return t.addEventListener(e,a),{destroy:function(){t.removeEventListener(e,a)}}}(t,e,a);if(i.nodeList(t))return function(t,e,a){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,a)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,a)})}}}(t,e,a);if(i.string(t))return function(t,e,a){return n(document.body,t,e,a)}(t,e,a);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var a=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===a||"[object HTMLCollection]"===a)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e,a){var i=a(7);function n(t,e,a,n,r){var s=function(t,e,a,n){return function(a){a.delegateTarget=i(a.target,e),a.delegateTarget&&n.call(t,a)}}.apply(this,arguments);return t.addEventListener(a,s,r),{destroy:function(){t.removeEventListener(a,s,r)}}}t.exports=function(t,e,a,i,r){return"function"==typeof t.addEventListener?n.apply(null,arguments):"function"==typeof a?n.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return n(t,e,a,i,r)}))}},function(t,e){var a=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}t.exports=function(t,e){for(;t&&t.nodeType!==a;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}}])},t.exports=i()},Vo6M:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAAXNSR0IArs4c6QAAA/VJREFUSA2VVt9rHFUU/s7Mzm5X22wbbNxsE2ljwWpoaSsqCAVFxT9A44OgLz70R9qkefBRGkFpn9okJYVW33yL+iqCVkUQBGmhSP2BMTVmk01qmiJtQpOdmeN3Np24zUw2kwu79557vnO/c849c2YEDUbniGbnpnEMii4FOkWRhWCcJl94Hob/PiZjDcwTVZK4y83281ryQ1xWxZ4kjAjucb+30iuXkvRr7SUS7h7S3LziKsmeWssw2nddvDR5Qr6J5PVmJwkwD7ydhsxsgxCnk85Yay+RECHvLe1QPFsc0GfSwmOEpYv6kAr2pj3AcLzPQ2nxMUJUWSQKN+0BhmP6UzsYI2Tpb90ImWEZYSGtTYwwUDyR1ngFx0fnhW81syI3WMQIGeGbDfCJKjaFJ0d/xsFE5arNGCHvb3YVJpUYuqikAcYJBR+wfc2kMY4wvMMPp7plIpIbzYmdpnVA+5ims40MIx3JxtnedkbyenM8QlpIHp/Qk1SpJWEqxyJHEiM0ZWlID2iIrxlpcwSOzYLLlR68IiLa36/OR80oaRXbeWguVFT5m2trQvnKYalGtmsSGqA4qKdYRP0RODY76Jrukc86zmhhIYv9dK5pNcZ1cC+o4trMu3LTdIkpjYyYrtFoHZsFP1ZO4POOi1qY93AoIjMCz8VvPLgWFZv7Jvat5+x1Z2c0JGR0L8aIbEPAdovj73O1sIADlFcyxTZXLvfKH07mwcfED7DXXnuJ3aHtY20O7uIUjd9JJAR+YmVeuQR9jJgt9RhmJaz55C/PkS4Mkb3r4PEVwrYRzYfTeJlRvUayN5iifARePTOcr2zPCsRyxO4UMJVTvgM/WMJt07mC2aoD9QJI6KBoqZUQj2RUVXYM4XhQwXv0druBU4x/DMNocjWsh78me+SXervxPrHOU+s+vL9bJHyajuYypfPoJdG5evB6axJtMoxmsWSl4fhoK55VcTwE/MyanToss7sG9NFFF9vUh1QVLYa3RyXDTL9uwkYGHew0vOdjbhFoDeg5xQ6WP9yAl8KmUQ3Rwqh2cg34tX9kBHMOtTuWxfT/JHy1a0TdLf+izDc1OeuGe79inf8r17RWTAUPY/ZYLN9DnU2KZcsPFRy53i9LOQfX6vGBj1JpWNtZlcX6/Yzi9+vdwkJlNdUr0q5Z+2dKg/r8jZMy4+VxNXrQmdCHg0Xsv5/mWmReDr9O9OFPO9si/JSk1G9wKDazCL5sHdS3ykdlMrcN37EKx5i6O47DYhLM884mCk34vtwto9ZvjYEYfsMP6+bbPvZR2sOGvYtG7bynImWrrmYitxKe55yhbolR2Ff3Hepvcj3BQy5MnZTas2nnNRr/AYSgULGfxss8AAAAAElFTkSuQmCC"},bIhT:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=a("3E4D"),n=a("Ch4/"),r=a("P9l9"),s={name:"active-select",data:function(){return{firstGoal:"",firstData:[{goalId:1,iconUrl:"",selectedIconUrl:"",goalName:"品牌传播",describe:"主要以推广品牌服务号和品牌会员为目的,旨在和更多潜在消费者或老客加强品牌互动。",check:!1},{goalId:2,iconUrl:"",selectedIconUrl:"",goalName:"活动宣传",describe:"有明确的活动主题,以提升活动的曝光范围和强度为核心目的,让更多受众能够了解和参与活动。",check:!1},{goalId:3,iconUrl:"",selectedIconUrl:"",goalName:"分销推广",describe:"以产生成交转化作为活动的最终目的,通过分销(分享裂变)的方式,用存量老客带动新客,从而赢得销售增量。",check:!1}],secondGoal:"",secondData:[{goalId:1,selectedIconUrl:"",iconUrl:"",goalName:"活动曝光",describe:{"适用场景":"针对线上营销且在线上(微信商城)完成消费的场景,即常规意义上的分销模式。","优劣分析":"成交更便捷,转化路径通畅,但对尚未建立足够品牌认知的客户而言,微信商城的信赖度略显不足。"},check:!1}],thirdData:[{goalId:1,iconUrl:"",selectedIconUrl:"",transName:"关注服务号",describe:"受邀人通过带服务号二维码的海报,关注并进入服务号对框框。",check:!1,transId:"",selectOne:0,mustFlag:1,display:0}],fourData:[{id:1,name:"活动营销页",placeholder:"请选择活动着陆页",describe:"受邀人关注服务号后,系统将自动推送活动营销页的小程序卡片,请选择具体的活动营销页以协助系统完成自动回复配置。",check:!1},{id:2,name:"游戏计划",placeholder:"请选择游戏计划",describe:"系统将自动生成游戏页面的小程序或二维码海报,请选择具体的游戏计划以协助系统完成配置。",check:!1},{id:3,name:"卡券配置",placeholder:"请选择卡券",describe:"受邀人完成会员认证后可获得卡券,请选择具体的卡券以协助系统完成认证后自动推送配置。",check:!1}],markingList:[],gameList:[],cardList:[]}},methods:{selectFirst:function(t){this.firstGoal=t,this.secondData=t.children},selectSecond:function(t){this.secondGoal=t,this.getThirdData(t.goalId)},getThirdData:function(t){var e=this,a={goalId:t};Object(r.a)("/sharing-core-web/list-activity-dict-trans",a).then(function(t){var a=t.data;if(1==a.errorCode)return a.result&&a.result.length&&a.result.forEach(function(t){t.check=!1,t.mustFlag&&(t.check=!0)}),e.thirdData=a.result||[],!1;n.a.errorMsg(a)}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})},selectThird:function(t){if(t.mustFlag)return!1;t.check=!t.check},toRedirectPage:function(t){1==t.id?window.open("/gic-web/custom"):2==t.id?window.open("/marketing/game/dzp"):window.open("marketing/card/list")},toCreate:function(){return this.firstGoalId?this.secondGoalId?void this.judgeCreate():(i.a.showmsg("请先完善活动目的","warning"),!1):(i.a.showmsg("请先选择活动目的","warning"),!1)},getTwoList:function(){var t=this;Object(r.a)("/sharing-core-web/load-activity-dict",{}).then(function(e){var a=e.data;if(1==a.errorCode)return t.firstData=a.result.result||[],!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})},getMarkingList:function(){var t=this;Object(r.a)("/sharing-core-web/load-marking-page",{}).then(function(e){var a=e.data;if(1==a.errorCode)return t.markingList=a.result.result||[],!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})},getGameList:function(){var t=this;Object(r.a)("/sharing-core-web/load-game-page",{}).then(function(e){var a=e.data;if(1==a.errorCode)return t.gameList=a.result.result||[],!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})},getCardList:function(){var t=this;Object(r.a)("/sharing-core-web/load-card",{}).then(function(e){var a=e.data;if(1==a.errorCode)return t.cardList=a.result.result||[],!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})},judgeCreate:function(){var t=this;Object(r.a)("/sharing-core-web/can-create",{}).then(function(e){var a=e.data;if(1==a.errorCode)return t.$router.push("/createActive"),!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})}},mounted:function(){this.getTwoList()}},c={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"active-select border-box"},[a("div",{staticClass:"active-select-title font-22 color-303133 font-w-600"},[t._v("请选择您的活动目的")]),t._v(" "),a("ul",{staticClass:"flex flex-space-between"},[t._l(t.firstData,function(e,i){return[a("li",{key:i+"first",class:["li-cell flex-1 ",t.firstGoal.goalId==e.goalId?"li-cell-active":""],on:{click:function(a){return t.selectFirst(e)}}},[a("div",{staticClass:"li-cell-inner flex "},[a("div",{staticClass:"li-cell-left flex flex-align-center flex-pack-center"},[a("img",{attrs:{src:e.iconUrl,alt:""}})]),t._v(" "),a("div",{staticClass:"li-cell-right border-box flex flex-column "},[a("div",{staticClass:"li-cell-active_name flex flex-align-center font-18 color-303133"},[t._v(t._s(e.goalName))]),t._v(" "),a("div",{staticClass:"li-cell-active_describe flex flex-align-center font-14 color-606266"},[t._v(t._s(e.describe))])])]),t._v(" "),t._m(0,!0)])]})],2),t._v(" "),t.firstGoal.goalId?a("div",[a("div",{staticClass:"active-select-next"}),t._v(" "),a("div",{staticClass:"active-select-title font-22 color-303133 font-w-600"},[t._v("请进一步明确活动目的")]),t._v(" "),a("ul",{staticClass:"flex flex-pack-center m-t-48"},[t._l(t.secondData,function(e,i){return[a("li",{key:i+"second",class:["li-cell li-second-cell flex-1 ",t.secondGoal.goalId==e.goalId?"li-second-active":""],on:{click:function(a){return t.selectSecond(e)}}},[a("div",{staticClass:"li-cell-inner"},[a("div",{staticClass:"li-cell-top border-box flex flex-align-center flex-pack-center"},[a("img",{attrs:{src:"",alt:""}}),a("span",{staticClass:"p-l-15 font-18 color-303133"},[t._v(t._s(e.goalName))])]),t._v(" "),a("div",{staticClass:"li-cell-bottom border-box"},[a("div",{staticClass:"li-cell-scene"},[a("div",{staticClass:"li-cell-scene_title font-14 color-303133"},[t._v("适用场景")]),t._v(" "),a("div",{staticClass:"li-cell-scene_text font-14 color-606266"},[t._v(t._s(e.describe["适用场景"]))])]),t._v(" "),a("div",{staticClass:"li-cell-quality"},[a("div",{staticClass:"li-cell-quality_title font-14 color-303133"},[t._v("优劣分析")]),t._v(" "),a("div",{staticClass:"li-cell-quality_text font-14 color-606266"},[t._v(t._s(e.describe["优劣分析"]))])])])]),t._v(" "),t._m(1,!0)])]})],2)]):t._e(),t._v(" "),t.secondGoal.goalId?a("div",[a("div",{staticClass:"active-select-next"}),t._v(" "),a("div",{staticClass:"active-select-title font-22 color-303133 font-w-600 m-b-0"},[t._v("请配置受邀人的转化路径")]),t._v(" "),a("div",{staticClass:"active-select-subtitle font-14 color-606266"},[t._v("基于您的活动设计期望,配置受邀人的转化路径(即受邀人需要经历的交互步骤)。系统会根据您所选择的转化路径,自动配置服务号关注后回复、认证后卡券投放等营销脚本。您只需要根据自身需求选择路径,并选择相关的营销活动页、游戏计划或卡券。")]),t._v(" "),a("ul",{staticClass:"flex flex-pack-center m-t-50"},[t._l(t.thirdData,function(e,i){return[a("li",{key:i+"third",class:["li-cell li-third-cell flex-1 ",e.check?"li-third-active":"",e.mustFlag?"li-third-active-disable":""],on:{click:function(a){return t.selectThird(e)}}},[a("div",{staticClass:"li-cell-inner border-box"},[t._m(2,!0),t._v(" "),a("div",{staticClass:"li-cell-path_title font-16 color-303133 text-center"},[t._v(t._s(e.name))]),t._v(" "),a("div",{staticClass:"li-cell-path_text font-14 color-606266"},[t._v(t._s(e.describe))])]),t._v(" "),t._m(3,!0)])]})],2)]):t._e(),t._v(" "),a("div",[a("div",{staticClass:"active-select-next"}),t._v(" "),a("div",{staticClass:"active-select-title font-22 color-303133 font-w-600 m-b-0"},[t._v("活动创建前准备工作")]),t._v(" "),a("div",{staticClass:"active-select-subtitle font-14 color-606266"},[t._v("根据您配置的转化路径,请确保完成以下工作,否则活动无法被正常执行。")]),t._v(" "),a("ul",{staticClass:"flex flex-pack-center m-t-50"},[t._l(t.fourData,function(e,i){return[a("li",{key:i+"four",staticClass:"li-four-cell flex-1 "},[a("div",{staticClass:"li-cell-inner border-box"},[a("div",{staticClass:"li-cell-title font-18 color-303133 font-w-600"},[t._v(t._s(e.name))]),t._v(" "),a("div",{staticClass:"li-cell-subtitle font-14 color-606266"},[t._v(t._s(e.describe))]),t._v(" "),a("div",{staticClass:"li-cell-tip font-14 color-303133"},[t._v("如果您还没有创建活动营销页,请立即前往创建。")]),t._v(" "),a("div",{staticClass:"li-cell-select"},[a("el-select",{attrs:{size:"large",placeholder:e.placeholder},model:{value:t.value,callback:function(e){t.value=e},expression:"value"}},t._l(t.markingList,function(t){return a("el-option",{key:t.value,attrs:{label:t.label,value:t.value}})}),1)],1),t._v(" "),a("div",{staticClass:"li-cell-seperator"},[t._v("OR")]),t._v(" "),a("div",{staticClass:"li-cell-btn"},[a("el-button",{attrs:{type:"primary",plain:""},on:{click:function(a){return t.toRedirectPage(e)}}},[t._v("立即前往创建")])],1)])])]})],2)]),t._v(" "),a("div",{staticClass:"to-active-config"},[a("div",{staticClass:"to-active-tip font-14 color-606266"},[t._v("确认完成了所有前期准备工作,即可前往活动配置。")]),t._v(" "),a("div",{staticClass:"to-active-btn"},[a("el-button",{attrs:{type:"primary"},on:{click:t.toCreate}},[t._v("前往活动配置"),a("i",{staticClass:"el-icon-right"})])],1)])])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"common-cell-check"},[e("div",{staticClass:"common-cell-triangle"},[e("div",{staticClass:"common-cell-outer"},[e("i",{staticClass:"el-icon-upload-success el-icon-check"})])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"common-cell-check"},[e("div",{staticClass:"common-cell-triangle"},[e("div",{staticClass:"common-cell-outer"},[e("i",{staticClass:"el-icon-upload-success el-icon-check"})])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"li-cell-path_img flex flex-pack-center flex-pack--center"},[e("img",{attrs:{src:"",alt:""}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"common-cell-check"},[e("div",{staticClass:"common-cell-triangle"},[e("div",{staticClass:"common-cell-outer"},[e("i",{staticClass:"el-icon-upload-success el-icon-check"})])])])}]};var o=a("VU/8")(s,c,!1,function(t){a("IEiK")},"data-v-0223559e",null).exports,l=a("fZjL"),u=a.n(l),f={name:"bar-chart",props:{barChartData:{type:[Array,Object],default:function(){return{}}},charHeight:{type:String,default:function(){return"300px"}}},components:{},data:function(){return this.chartSettings={showLine:["传播系数"]},this.colors=["#1890FF","#5AD8A6","#FF6383"],{}}},d={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"bar-chart"},[e("ve-histogram",{attrs:{data:this.barChartData,settings:this.chartSettings,colors:this.colors,height:this.charHeight}}),this._v(" "),e("div",{staticClass:"chart-title font-12 color-000 text-center"},[this._v("- 近15天趋势图 -")])],1)},staticRenderFns:[]};var v=a("VU/8")(f,d,!1,function(t){a("OSz6")},"data-v-2b9964bf",null).exports,h={name:"data-statistics",props:{activeData:{type:[Object,Array],default:function(){return{exposure:0,attend:0,invited:0,attendRate:0,spread:0}}},barChartData:{type:[Array,Object],default:function(){return{}}}},components:{barChart:v},data:function(){return{charHeight:"220px"}},mounted:function(){console.log(this.activeData)}},m={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"data-statistics"},[a("div",{staticClass:"data-statistics-body flex"},[a("div",{staticClass:"data-statistics-left"},[a("ul",{staticClass:"flex flex-column flex-pack-center flex-align-center"},[a("li",{staticClass:"flex-1 flex flex-pack-center flex-align-center"},[t._m(0),t._v(" "),a("div",{staticClass:"data-statistics-txt flex flex-column"},[a("div",{staticClass:"font-14 color-606266 font-w-400"},[t._v("活动曝光量")]),t._v(" "),a("div",{staticClass:"font-22 color-303133 font-w-600 p-t-10"},[t._v(t._s(t._f("formatThousand")(t.activeData.exposure)))])])]),t._v(" "),a("li",{staticClass:"flex-1 flex flex-pack-center flex-align-center"},[t._m(1),t._v(" "),a("div",{staticClass:"data-statistics-txt flex flex-column"},[a("div",{staticClass:"font-14 color-606266 font-w-400"},[t._v("参与人数")]),t._v(" "),a("div",{staticClass:"font-22 color-303133 font-w-600 p-t-10"},[t._v(t._s(t._f("formatThousand")(t.activeData.attend)))])])]),t._v(" "),a("li",{staticClass:"flex-1 flex flex-pack-center flex-align-center"},[t._m(2),t._v(" "),a("div",{staticClass:"data-statistics-txt flex flex-column"},[a("div",{staticClass:"font-14 color-606266 font-w-400"},[t._v("受邀人数")]),t._v(" "),a("div",{staticClass:"font-22 color-303133 font-w-600 p-t-10"},[t._v(t._s(t._f("formatThousand")(t.activeData.invited)))])])])])]),t._v(" "),a("div",{staticClass:"data-right-wrap"},[a("div",{staticClass:"data-right-top flex"},[a("div",{staticClass:"data-statistics-middle flex-1 border-box m-l-20"},[a("div",{staticClass:"font-14 color-606266"},[t._v("参与率")]),t._v(" "),a("div",{class:["font-22 color-303133 p-t-5 ",t.activeData.attendRate]},[t._v(t._s(t.activeData.attendRate)+" %")]),t._v(" "),a("div",{staticClass:"data-percentage"},[a("div",{staticClass:"data-percentage-inner",style:{width:t.activeData.attendRate+"%"}})])]),t._v(" "),a("div",{staticClass:"data-statistics-right flex-1 border-box m-l-20"},[a("div",{staticClass:"font-14 color-606266"},[t._v("传播系数")]),t._v(" "),a("div",{staticClass:"font-22 color-303133 p-t-5"},[t._v(t._s(t.activeData.spread))]),t._v(" "),a("div",{staticClass:"data-percentage"},[t._l(Math.floor(t.activeData.spread),function(t,e){return[a("i",{key:e+"xrbg",staticClass:"iconfont icon-xiaoren color-1890ff"})]}),t._v(" "),t._l(10-Math.floor(t.activeData.spread),function(t,e){return[a("i",{key:e+"xr",staticClass:"iconfont icon-xiaoren icon-xiaoren-opacity"})]})],2)])]),t._v(" "),a("div",{staticClass:"data-right-bottom"},[a("bar-chart",{attrs:{barChartData:t.barChartData,charHeight:t.charHeight}})],1)])])])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"data-statistics-icon"},[e("img",{attrs:{src:a("gjBT"),alt:""}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"data-statistics-icon"},[e("img",{attrs:{src:a("oj03"),alt:""}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"data-statistics-icon"},[e("img",{attrs:{src:a("Vo6M"),alt:""}})])}]};var g=a("VU/8")(h,m,!1,function(t){a("jyPR")},"data-v-07be8c24",null).exports,p={name:"funnel-chart",props:{funnelData:{type:[Object,Array],default:function(){return{}}}},data:function(){return{}}},b={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"funnel-chart"},[a("div",{staticClass:"funnel-chart-body flex"},[t._m(0),t._v(" "),a("div",{staticClass:"chart-right"},[a("div",{staticClass:"chart-text"},[a("div",{staticClass:"space-line h-20 p-l-98 font-12 color-606066"},[t._v("关注服务号 "+t._s(t._f("formatThousand")(t.funnelData.openCard))+" 人")]),t._v(" "),a("div",{staticClass:"bg-f5f7fa h-16"}),t._v(" "),a("div",{staticClass:"space-line h-22 p-l-90 font-12 color-606066"},[t._v("访问活动着陆页 "+t._s(t._f("formatThousand")(t.funnelData.openCard))+" 人")]),t._v(" "),a("div",{staticClass:"bg-f5f7fa h-18"}),t._v(" "),a("div",{staticClass:"space-line h-26 p-l-80 font-12 color-606066"},[t._v("认证开卡 "+t._s(t._f("formatThousand")(t.funnelData.openCard))+" 人")]),t._v(" "),a("div",{staticClass:"bg-f5f7fa h-22"}),t._v(" "),a("div",{staticClass:"space-line h-29 p-l-72 font-12 color-606066"},[t._v("参与游戏 "+t._s(t._f("formatThousand")(t.funnelData.openCard))+" 人")]),t._v(" "),a("div",{staticClass:"bg-f5f7fa h-23"}),t._v(" "),a("div",{staticClass:"space-line h-32 p-l-60 font-12 color-606066"},[t._v("领取卡券 "+t._s(t._f("formatThousand")(t.funnelData.openCard))+" 人")]),t._v(" "),a("div",{staticClass:"bg-f5f7fa h-25"}),t._v(" "),a("div",{staticClass:"space-line h-38 p-l-45 font-12 color-606066"},[t._v("消费 "+t._s(t._f("formatThousand")(t.funnelData.orderCount))+" 人, "+t._s(t._f("formatThousand")(t.funnelData.orderAmount))+" 元")])])])]),t._v(" "),a("div",{staticClass:"funnel-chart-title font-12 color-000"},[t._v("- 响应转化漏斗 -")])])},staticRenderFns:[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"chart-left"},[a("div",{staticClass:"trapezoid-bg"},[a("div",{staticClass:"space-line h-20 r-60"}),t._v(" "),a("div",{staticClass:"inner-bg bg-f5f7fa h-16"}),t._v(" "),a("div",{staticClass:"space-line h-22 r-57"}),t._v(" "),a("div",{staticClass:"inner-bg bg-f5f7fa h-18"}),t._v(" "),a("div",{staticClass:"space-line h-26 r-52"}),t._v(" "),a("div",{staticClass:"inner-bg bg-f5f7fa h-22"}),t._v(" "),a("div",{staticClass:"space-line h-29 r-48"}),t._v(" "),a("div",{staticClass:"inner-bg bg-f5f7fa h-23"}),t._v(" "),a("div",{staticClass:"space-line h-32 r-42"}),t._v(" "),a("div",{staticClass:"inner-bg bg-f5f7fa h-25"}),t._v(" "),a("div",{staticClass:"space-line h-38"})])])}]};var y=a("VU/8")(p,b,!1,function(t){a("/VZe")},"data-v-211657d0",null).exports,C={name:"card-table",props:{barChartData:{type:[Array,Object],default:function(){return{}}},funnelData:{type:[Array,Object],default:function(){return{}}}},components:{funnelChart:y,dataStatisticsChild:g},data:function(){return{activeData:{exposure:0,attend:0,invited:0,attendRate:0,spread:0}}},methods:{},watch:{funnelData:function(t,e){u()(t).length&&(this.activeData=t)}},mounted:function(){u()(this.funnelData).length&&(this.activeData=this.funnelData)}},_={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"out-date-active flex flex-space-between"},[e("data-statistics-child",{attrs:{activeData:this.activeData,barChartData:this.barChartData}}),this._v(" "),e("funnel-chart",{attrs:{funnelData:this.funnelData}})],1)},staticRenderFns:[]};var x=a("VU/8")(C,_,!1,function(t){a("KCp1")},"data-v-d0de4b5a",null).exports,k=a("TQvf"),w=a.n(k),A={name:"in-progress-active",components:{outDateActive:x},data:function(){return{funnelData:{},barChartData:{columns:["日期","新增参与人数","新增受邀人数","传播系数"],rows:[{"日期":"1","新增参与人数":1393,"新增受邀人数":1093,"传播系数":.32},{"日期":"2","新增参与人数":3530,"新增受邀人数":3230,"传播系数":.26},{"日期":"3","新增参与人数":2923,"新增受邀人数":2623,"传播系数":.76},{"日期":"4","新增参与人数":1723,"新增受邀人数":1423,"传播系数":.49},{"日期":"5","新增参与人数":3192,"新增受邀人数":3192,"传播系数":.323},{"日期":"6","新增参与人数":3593,"新增受邀人数":3293,"传播系数":.78}]},selectItem:"",inProgressData:[{acitivityId:1,acitivityName:"",startDate:"",endDate:"",acitivityUrl:""}]}},methods:{selectLi:function(t){this.selectItem=t.acitivityId,this.getActivityData(t.acitivityId)},getActivityData:function(t){var e=this,a={acitivityId:t};Object(r.a)("/sharing-core-web/get-activity-data-summary",a).then(function(t){var a=t.data;if(1==a.errorCode)return e.funnelData=a.result||{},e.barChartData=a.result.trend||{},!1;n.a.errorMsg(a)}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})},toEdit:function(t,e){this.$router.push("/createActive?activityId={row.activityId}")},toDataList:function(t,e){this.$router.push("/dataDetail?activityId={row.activityId}")},handleCopy:function(t,e){var a=new w.a(".copy-tag",{text:function(){return""+e.acitivityUrl}});a.on("success",function(t){i.a.showmsg("复制成功!","success"),a.destroy()}),a.on("error",function(t){i.a.showmsg("该浏览器不支持自动复制!","warning"),a.destroy()})},getTableList:function(){var t=this;Object(r.a)("/sharing-core-web/page-activity",{}).then(function(e){var a=e.data;if(1==a.errorCode){var i=(new Date).getTime(),r=[];return a.result.result&&a.result.result.length&&a.result.result.forEach(function(t){t.endDate>i&&r.push(t)}),t.inProgressData=r||[],t.getActivityData(r[0].acitivityId),!1}n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})}},mounted:function(){this.getTableList()}},D={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"in-progress-active border-box"},[a("ul",[t._l(t.inProgressData,function(e,i){return[a("li",{key:i+"data",class:["border-box",t.selectItem==e.acitivityId&&0!=i?"li-border":""]},[a("div",{staticClass:"in-progress-active-title flex flex-space-between border-box",on:{click:function(a){return a.stopPropagation(),t.selectLi(e)}}},[a("div",{staticClass:"active-title-left"},[a("div",{staticClass:"active-title-name font-18 color-303133"},[t._v(t._s(e.acitivityName))]),t._v(" "),a("div",{staticClass:"active-title-date font-14 color-909399 m-t-7"},[t._v(t._s(t._f("formatTimeYmdHms")(e.startDate))+" - "+t._s(t._f("formatTimeYmdHms")(e.endDate)))])]),t._v(" "),a("div",{staticClass:"active-title-right"},[a("el-button",{attrs:{type:"primary",plain:""},on:{click:function(a){return t.toEdit(i,e)}}},[t._v("活动配置")]),t._v(" "),a("el-button",{attrs:{type:"primary",plain:""},on:{click:function(a){return t.handleCopy(i,e)}}},[t._v("复制路径")]),t._v(" "),a("el-button",{attrs:{type:"primary",plain:""},on:{click:function(a){return t.toDataList(i,e)}}},[t._v("数据明细")])],1)]),t._v(" "),a("div",{staticClass:"in-progress-active-body"},[a("out-date-active",{attrs:{barChartData:t.barChartData,funnelData:t.funnelData}})],1)])]})],2)])},staticRenderFns:[]};var E={name:"finished-active",components:{outDateActive:x},data:function(){return{funnelData:[],barChartData:{columns:["日期","访问用户","下单用户","传播系数"],rows:[{"日期":"1/1","访问用户":1393,"下单用户":1093,"传播系数":.32},{"日期":"1/2","访问用户":3530,"下单用户":3230,"传播系数":.26},{"日期":"1/3","访问用户":2923,"下单用户":2623,"传播系数":.76},{"日期":"1/4","访问用户":1723,"下单用户":1423,"传播系数":.49},{"日期":"1/5","访问用户":3192,"下单用户":3192,"传播系数":.323},{"日期":"1/6","访问用户":3593,"下单用户":3293,"传播系数":.78}]},selectItem:"",finishedData:[{acitivityId:1,acitivityName:"1",startDate:1574300553953,endDate:1574300553953}],pageSize:20,currentPage:1,total:1}},methods:{selectLi:function(t){this.selectItem=t.acitivityId,this.getActivityData(t.acitivityId)},getActivityData:function(t){var e=this,a={acitivityId:t};Object(r.a)("/sharing-core-web/get-activity-data-summary",a).then(function(t){var a=t.data;if(1==a.errorCode)return e.funnelData=a.result,e.barChartData=a.result.trend,!1;n.a.errorMsg(a)}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})},toEdit:function(t,e){this.$router.push("/createActive?activityId={row.activityId}&editFlag=show")},toDataList:function(t,e){this.$router.push("/dataDetail?activityId={row.activityId}")},handleCopy:function(t,e){var a=new w.a(".copy-tag",{text:function(){return window.location.origin+"/?articleId="+e.articleId}});a.on("success",function(t){i.a.showmsg("复制成功!","success"),a.destroy()}),a.on("error",function(t){i.a.showmsg("该浏览器不支持自动复制!","warning"),a.destroy()})},handleSizeChange:function(t){this.pageSize=t,this.getData()},handleCurrentChange:function(t){this.currentPage=t,this.getData()},getTableList:function(){var t=this,e={pageNum:t.currentPage,pageSize:t.pageSize};Object(r.a)("/sharing-core-web/page-activity",e).then(function(e){var a=e.data,i=(new Date).getTime();if(1==a.errorCode){var r=[];return a.result.result&&a.result.result.length&&a.result.result.forEach(function(t){t.endDate<i&&r.push(t)}),t.finishedData=r||[],t.total=a.result.totalCount,!1}n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})}},mounted:function(){this.getTableList()}},S={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"finished-active border-box"},[a("ul",[t._l(t.finishedData,function(e,i){return[a("li",{key:i+"data",class:["border-box",t.selectItem==e.acitivityId&&0!=i?"li-border":""]},[a("div",{staticClass:"finished-active-title flex flex-space-between border-box",on:{click:function(a){return a.stopPropagation(),t.selectLi(e)}}},[a("div",{staticClass:"active-title-left"},[a("div",{staticClass:"active-title-name font-18 color-303133"},[t._v(t._s(e.acitivityName))]),t._v(" "),a("div",{staticClass:"active-title-date font-14 color-909399 m-t-7"},[t._v(t._s(t._f("formatTimeYmdHms")(e.startDate))+" - "+t._s(t._f("formatTimeYmdHms")(e.endDate)))])]),t._v(" "),a("div",{staticClass:"active-title-right"},[a("el-button",{attrs:{type:"primary",plain:""},on:{click:function(a){return t.toEdit(i,e)}}},[t._v("活动配置")]),t._v(" "),a("el-button",{attrs:{type:"primary",plain:""},on:{click:function(a){return t.toDataList(i,e)}}},[t._v("数据明细")])],1)]),t._v(" "),t.selectItem==e.acitivityId?a("div",{staticClass:"finished-active-body"},[a("out-date-active",{attrs:{barChartData:t.barChartData,funnelData:t.funnelData}})],1):t._e()])]})],2),t._v(" "),t.total?a("div",{staticClass:"pagination text-right m-t-14"},[a("el-pagination",{attrs:{small:"","page-size":t.pageSize,"current-page":t.currentPage,layout:"prev, pager, next",total:t.total},on:{"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}})],1):t._e()])},staticRenderFns:[]};var I={name:"share-index",components:{activeSelect:o,inProgressActive:a("VU/8")(A,D,!1,function(t){a("nHvg")},"data-v-3794d599",null).exports,finishedActive:a("VU/8")(E,S,!1,function(t){a("Gx6y")},"data-v-356e8aae",null).exports},data:function(){return{canCreate:!0}},methods:{judgeCreate:function(){var t=this;Object(r.a)("/sharing-core-web/can-create",{}).then(function(e){var a=e.data;if(1==a.errorCode)return t.canCreate=a.result,!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})}},mounted:function(){this.judgeCreate()}},O={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"share-index common-wrap"},[a("div",{staticClass:"right-content border-box"},[t.canCreate?a("div",[a("div",{staticClass:"separator-space no-active"},[t._v("\n - 当前无进行中的活动,请创建活动,别让业绩白白流失!-\n ")]),t._v(" "),a("active-select")],1):t._e(),t._v(" "),a("div",[a("div",{staticClass:"separator-space"},[t._v("- 当前有正在进行的活动,无法创建新的活动 -")]),t._v(" "),a("in-progress-active"),t._v(" "),a("div",{staticClass:"separator-space"},[t._v("- 以下为已结束活动 -")]),t._v(" "),a("finished-active")],1)]),t._v(" "),a("vue-gic-footer")],1)},staticRenderFns:[]};var T=a("VU/8")(I,O,!1,function(t){a("cS8z")},"data-v-00ca9b19",null);e.default=T.exports},cS8z:function(t,e){},gjBT:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAAXNSR0IArs4c6QAABKJJREFUSA2VVl1oHFUU/s7sbNImltJoNbtN6l8wFiHG30JiamvFB61gaEK1INYHKRg3kSoI1Yeg9K3VxG0qEZT2SVBbXyoK9ScJSkogKdZCqhGlJrvZJk3qT2iT7O69fnfobCazsxt7YZjz8517zj3nnjMj+B+r6l1docK4GQoVfMqUhRK+xdJII4QrKovLsDE1GcMlEdHFtpRiyuq4jqYzuEtrrCmGc3UhC/NKY2zyVVwo5Ligww3v6fqMRrW72fW8QwpjydflfJBNnsNIXD9YegPO2f9Cz2VwL/NzS5BhMRkdDlphrMtYqEnF5Csv1vIyVYf1Ztamf+FvjFyxcE9qnwxZJTgrIWS9uGK0ZWEx8RpmshqtksXxaLd+xIvPObw1rm/PZnCS9SrjqTbxIpyOdOn9e9swfqONAcvGX17DQjQdppz6CVq4z2oFnDR7u/icw0WFwwTc5CqgESZ/oLcbA3MK6/fO4sdQGGM5fQGiRCG18Yi+g4Hf50A01i4oxF2443BDl95BwJOu0Pum08aFLH76sAJ7kjE5HwYdC656MS4tgswLHZjOpNHiypy3xlORbt1saMchj/3OMkA+s0YpfMQUf6HKYUXK0B+yMeGHsWZTnSKKwbf6dczYfiOT6BFdqxYReIX9RjzBNGv0bCIm3xmd6dOMQh3rzYMDJWEMM5CS+QX8YXj/oq7WUhns8iuCeDo7VWqjznVmMOMxSYayPG0IM9SrO2cwRWc7g+yNTGex2xaFBtap8BKkLcGbiRgOBk2PiX1yVWs9WHkQ6/s6JVPZrVuYvsBF8UM2hNOkAIBRm1v5XLJdhqU9cA9HeC2QqWiPrmbGNhdC0s1Gzl9UBQF4qmMVNu4vF5wL0gfJmLKdDD5venmwGy3OdqfgOaHgH16M3ZFVeGkmjbfmND7I6VYilK8dfHjjy7TFbE4uOF1qoT4EDCXm8QPlbzDcZx7o1cuDyhksEebGakHDkiSQmrUI+pUqxXoduLsOTYsaDWmFM0zNw8aEPbUuOY/tgeYeYVatmE4YXzaLeMIK4e3yMgz/chYf08Hznn0cknU2jfy1X+7lidnGbFzyyvw0HfY5BTafJBb8EwJq/CDD8/QztXWo7NsmmSD99ciEPSSRbvxOo9uKGbLYTyQ68E30fRxilKuKYQvoRpMdErdND0W79CHO09xEDzJgOlqIPcXGrmHanw7CFJMxSGegO8M7shq9TNtwMQPqmls/1bzAOL4CLl8t+D7ZgRNG4dTQEJEevUlnMMjbudbwQYszczufM4tpXCRuxVYxe9DBrIRRn2yTccM7JzTEZJuM8rY+Zi6I4YOWZmP/+bJcZgM7X4sgzDKZIMUAt7rOjC7n0DDJV2TEBrYyrIuG9y/WublTa4tBfe7X+XliLtg2miZi8rNXl0upV1jVo2uyaRxlbzV65YYWG4/ypKNM6SQfU9P8JfiWfwV7Eu2S95FedkLXcqJNfmORm/hj+yIjXfZxZr+2pNplmtgBF+++Gf0IHe1KdcjjQc4MjhkMXtc+OUfZp8cicWzhRNrBv+pGbrrF6d04PqNlLfkx1rSfA//LiXYZCt5tSfofVt6aUjcV2t0AAAAASUVORK5CYII="},jyPR:function(t,e){},nHvg:function(t,e){},oj03:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAdCAYAAAC5UQwxAAAAAXNSR0IArs4c6QAABCxJREFUSA2tVl1oXEUU/mbu3d3au5uEVsyum6AkVWmLohSqqK2IL/7jg+2T+CI0VEmCpRSLfciLIIhFt5aY1/gg6Js+2BdFxL+gtrSk2J9IQ5LdVK3d/iT7k9x7j2eGvcvduXdTu/XCMnO++eZ883PmnBW4xW/XZ2T9UkTGJcjua1g6PSZW1nIp1hpca6z3PXKkhc0+kGvyJEi6WHSSmJ4ZEfUmHurcUPCuCcq5NWxRc6TE7/PDoqT6mwrUVfGw3SPcpuzwx7yVFGFq9k1xJYyrflvBvnHKuyv4mDnPgRo8ARKEYyKBodIbYp5FUxUfOz0f6yKOLSztyOG7z3cLLzwmw0bQzxVoh1fHNAs93xRTgyxMwDO+i+n8h/SkPjYXJ4J54ZY8pH9axEAYU/2I4NajlCYfk+y4xyQ3bUIX393kwAR1l/aLS7bApeZYqON5yIZM3Y0IXvZwkEfuNommTYS+Wg2HFM7bnjPHNY6Y+zWJ7OgFE2tnB1xnFdfiOJ6Aa+KRHXIU9ZmkdjYfu+bmqqjGcSwfZROPCDJh1iStYWvuTBcSJkcI+JkezJh4nOBxk9TOZqea6/twTI4tce7sa+K6iUcEpcARJkXO3pzIL9PjGC8onB96M9twAHmWhZMLo+J8ZI7immBxRJzke3zXxGPs9xeHxa/bJijhS2QtoM7PY16m8W1pVMzF8DXUNtNkC7SXV3uYI7Eli/Ax1vl3oDQi9O6yh2k7B09vIMBjLueWv1IW/rip1KYc9BdokPPSXhZ9VWccgU94J+PBcW0do+TlHjzCd9gdCIZbi7DwWD9OhdNb7A7zBVJORnjlL7KDloDgHVR4AV9ypThSGhY/qPL0YxH3c3nqD4sFfb7fq47EVFA9WgQfmCTn7zLGWeiVlhwazDZanvxpVwZDKhr5CraQi0GDok0Oon/2lPHz2Jjwm4KD43RHZQXHePUPxU1qiwmcSq3D07N7cDH/AR7lcrUhjpuwcEZdhRZUkVaq4RsWezyO/B+wqbTEEzUX0pPYydeRNOeoYNqYx9f6WRTrOHgLYsr3w8s+Di3sE1Xewawppmz2b5cXkRX5j2ij5+ICY5k44k1gy04KA/Uqrq9KPAU/WtyFxEXJ23/5fxBT63Kqdexu7PLP2IUSHMnF9tnYwQ5AEvx3hD+y4guyJCQ5deKeDnzHTuHnpH2t91CJI/g2rkg+6dvjBjvEtK9kPSrIiWI1aeO85OiJ1KwOxVSUaF/pHtQCH+o52DbmNtj4fu51UbaFjbe40HzFwusDUictO65xGjug5mbuBSXO4HjyKpa2DWBJ5dJiw6l++LmjtJkr4Nss+hLjLbmzwWvb6NwKfMEl/535UTHdltgY0IIBSWWcYhUPMngfO7qT86nDFdPhhehFMLbMWIXPbpmxkiVwtjeFE78NidXAx43afwGGeG0DzVSPiwAAAABJRU5ErkJggg=="}});
\ No newline at end of file
webpackJsonp([3],{"0uAL":function(t,e){},"1tPD":function(t,e){},"3E4D":function(t,e,a){"use strict";var i=a("zL8q");a.n(i);e.a={showmsg:function(t,e){Object(i.Message)({duration:1e3,message:t,type:e})}}},"510o":function(t,e){},FnTT:function(t,e){},OSz6:function(t,e){},QNJk:function(t,e){},QyI2:function(t,e){},TQvf:function(t,e,a){
/*!
* clipboard.js v2.0.4
* https://zenorocha.github.io/clipboard.js
*
* Licensed MIT © Zeno Rocha
*/
var i;i=function(){return function(t){var e={};function a(i){if(e[i])return e[i].exports;var n=e[i]={i:i,l:!1,exports:{}};return t[i].call(n.exports,n,n.exports,a),n.l=!0,n.exports}return a.m=t,a.c=e,a.d=function(t,e,i){a.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.t=function(t,e){if(1&e&&(t=a(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(a.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)a.d(i,n,function(e){return t[e]}.bind(null,n));return i},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="",a(a.s=0)}([function(t,e,a){"use strict";var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n=function(){function t(t,e){for(var a=0;a<e.length;a++){var i=e[a];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,a,i){return a&&t(e.prototype,a),i&&t(e,i),e}}(),s=o(a(1)),r=o(a(3)),c=o(a(4));function o(t){return t&&t.__esModule?t:{default:t}}var l=function(t){function e(t,a){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e);var i=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(e.__proto__||Object.getPrototypeOf(e)).call(this));return i.resolveOptions(a),i.listenClick(t),i}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,r.default),n(e,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===i(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,c.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,a=!!document.queryCommandSupported;return e.forEach(function(t){a=a&&!!document.queryCommandSupported(t)}),a}}]),e}();function u(t,e){var a="data-clipboard-"+t;if(e.hasAttribute(a))return e.getAttribute(a)}t.exports=l},function(t,e,a){"use strict";var i,n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},s=function(){function t(t,e){for(var a=0;a<e.length;a++){var i=e[a];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,a,i){return a&&t(e.prototype,a),i&&t(e,i),e}}(),r=a(2),c=(i=r)&&i.__esModule?i:{default:i};var o=function(){function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.resolveOptions(e),this.initSelection()}return s(t,[{key:"resolveOptions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var a=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=a+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,c.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,c.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":n(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=o},function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var a=t.hasAttribute("readonly");a||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),a||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var i=window.getSelection(),n=document.createRange();n.selectNodeContents(t),i.removeAllRanges(),i.addRange(n),e=i.toString()}return e}},function(t,e){function a(){}a.prototype={on:function(t,e,a){var i=this.e||(this.e={});return(i[t]||(i[t]=[])).push({fn:e,ctx:a}),this},once:function(t,e,a){var i=this;function n(){i.off(t,n),e.apply(a,arguments)}return n._=e,this.on(t,n,a)},emit:function(t){for(var e=[].slice.call(arguments,1),a=((this.e||(this.e={}))[t]||[]).slice(),i=0,n=a.length;i<n;i++)a[i].fn.apply(a[i].ctx,e);return this},off:function(t,e){var a=this.e||(this.e={}),i=a[t],n=[];if(i&&e)for(var s=0,r=i.length;s<r;s++)i[s].fn!==e&&i[s].fn._!==e&&n.push(i[s]);return n.length?a[t]=n:delete a[t],this}},t.exports=a},function(t,e,a){var i=a(5),n=a(6);t.exports=function(t,e,a){if(!t&&!e&&!a)throw new Error("Missing required arguments");if(!i.string(e))throw new TypeError("Second argument must be a String");if(!i.fn(a))throw new TypeError("Third argument must be a Function");if(i.node(t))return function(t,e,a){return t.addEventListener(e,a),{destroy:function(){t.removeEventListener(e,a)}}}(t,e,a);if(i.nodeList(t))return function(t,e,a){return Array.prototype.forEach.call(t,function(t){t.addEventListener(e,a)}),{destroy:function(){Array.prototype.forEach.call(t,function(t){t.removeEventListener(e,a)})}}}(t,e,a);if(i.string(t))return function(t,e,a){return n(document.body,t,e,a)}(t,e,a);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}},function(t,e){e.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},e.nodeList=function(t){var a=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===a||"[object HTMLCollection]"===a)&&"length"in t&&(0===t.length||e.node(t[0]))},e.string=function(t){return"string"==typeof t||t instanceof String},e.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e,a){var i=a(7);function n(t,e,a,n,s){var r=function(t,e,a,n){return function(a){a.delegateTarget=i(a.target,e),a.delegateTarget&&n.call(t,a)}}.apply(this,arguments);return t.addEventListener(a,r,s),{destroy:function(){t.removeEventListener(a,r,s)}}}t.exports=function(t,e,a,i,s){return"function"==typeof t.addEventListener?n.apply(null,arguments):"function"==typeof a?n.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return n(t,e,a,i,s)}))}},function(t,e){var a=9;if("undefined"!=typeof Element&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}t.exports=function(t,e){for(;t&&t.nodeType!==a;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}}])},t.exports=i()},VHoy:function(t,e){},Vo6M:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAAXNSR0IArs4c6QAAA/VJREFUSA2VVt9rHFUU/s7Mzm5X22wbbNxsE2ljwWpoaSsqCAVFxT9A44OgLz70R9qkefBRGkFpn9okJYVW33yL+iqCVkUQBGmhSP2BMTVmk01qmiJtQpOdmeN3Np24zUw2kwu79557vnO/c849c2YEDUbniGbnpnEMii4FOkWRhWCcJl94Hob/PiZjDcwTVZK4y83281ryQ1xWxZ4kjAjucb+30iuXkvRr7SUS7h7S3LziKsmeWssw2nddvDR5Qr6J5PVmJwkwD7ydhsxsgxCnk85Yay+RECHvLe1QPFsc0GfSwmOEpYv6kAr2pj3AcLzPQ2nxMUJUWSQKN+0BhmP6UzsYI2Tpb90ImWEZYSGtTYwwUDyR1ngFx0fnhW81syI3WMQIGeGbDfCJKjaFJ0d/xsFE5arNGCHvb3YVJpUYuqikAcYJBR+wfc2kMY4wvMMPp7plIpIbzYmdpnVA+5ims40MIx3JxtnedkbyenM8QlpIHp/Qk1SpJWEqxyJHEiM0ZWlID2iIrxlpcwSOzYLLlR68IiLa36/OR80oaRXbeWguVFT5m2trQvnKYalGtmsSGqA4qKdYRP0RODY76Jrukc86zmhhIYv9dK5pNcZ1cC+o4trMu3LTdIkpjYyYrtFoHZsFP1ZO4POOi1qY93AoIjMCz8VvPLgWFZv7Jvat5+x1Z2c0JGR0L8aIbEPAdovj73O1sIADlFcyxTZXLvfKH07mwcfED7DXXnuJ3aHtY20O7uIUjd9JJAR+YmVeuQR9jJgt9RhmJaz55C/PkS4Mkb3r4PEVwrYRzYfTeJlRvUayN5iifARePTOcr2zPCsRyxO4UMJVTvgM/WMJt07mC2aoD9QJI6KBoqZUQj2RUVXYM4XhQwXv0druBU4x/DMNocjWsh78me+SXervxPrHOU+s+vL9bJHyajuYypfPoJdG5evB6axJtMoxmsWSl4fhoK55VcTwE/MyanToss7sG9NFFF9vUh1QVLYa3RyXDTL9uwkYGHew0vOdjbhFoDeg5xQ6WP9yAl8KmUQ3Rwqh2cg34tX9kBHMOtTuWxfT/JHy1a0TdLf+izDc1OeuGe79inf8r17RWTAUPY/ZYLN9DnU2KZcsPFRy53i9LOQfX6vGBj1JpWNtZlcX6/Yzi9+vdwkJlNdUr0q5Z+2dKg/r8jZMy4+VxNXrQmdCHg0Xsv5/mWmReDr9O9OFPO9si/JSk1G9wKDazCL5sHdS3ykdlMrcN37EKx5i6O47DYhLM884mCk34vtwto9ZvjYEYfsMP6+bbPvZR2sOGvYtG7bynImWrrmYitxKe55yhbolR2Ff3Hepvcj3BQy5MnZTas2nnNRr/AYSgULGfxss8AAAAAElFTkSuQmCC"},bIhT:function(t,e,a){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var i=a("3E4D"),n=a("Ch4/"),s=a("P9l9"),r={name:"active-select",data:function(){return{firstGoalId:"",firstData:[{goalId:1,iconUrl:"",goalName:"品牌传播",describe:"主要以推广品牌服务号和品牌会员为目的,旨在和更多潜在消费者或老客加强品牌互动。",check:!1},{goalId:2,iconUrl:"",goalName:"活动宣传",describe:"有明确的活动主题,以提升活动的曝光范围和强度为核心目的,让更多受众能够了解和参与活动。",check:!1},{goalId:3,iconUrl:"",goalName:"分销推广",describe:"以产生成交转化作为活动的最终目的,通过分销(分享裂变)的方式,用存量老客带动新客,从而赢得销售增量。",check:!1}],secondGoalId:"",secondData:[{goalId:1,iconUrl:"",goalName:"活动曝光",describe:{"适用场景":"针对线上营销且在线上(微信商城)完成消费的场景,即常规意义上的分销模式。","优劣分析":"成交更便捷,转化路径通畅,但对尚未建立足够品牌认知的客户而言,微信商城的信赖度略显不足。"},check:!1}],thirdData:[{id:1,name:"关注服务号",describe:"受邀人通过带服务号二维码的海报,关注并进入服务号对框框。",check:!1}],fourData:[{id:1,name:"活动营销页",placeholder:"请选择活动着陆页",describe:"受邀人关注服务号后,系统将自动推送活动营销页的小程序卡片,请选择具体的活动营销页以协助系统完成自动回复配置。",check:!1},{id:2,name:"游戏计划",placeholder:"请选择游戏计划",describe:"系统将自动生成游戏页面的小程序或二维码海报,请选择具体的游戏计划以协助系统完成配置。",check:!1},{id:3,name:"卡券配置",placeholder:"请选择卡券",describe:"受邀人完成会员认证后可获得卡券,请选择具体的卡券以协助系统完成认证后自动推送配置。",check:!1}],markingList:[],gameList:[],cardList:[]}},methods:{selectFirst:function(t){this.firstGoalId=t.goalId},selectSecond:function(t){this.secondGoalId=t.goalId},selectThird:function(t){t.check=!t.check},toRedirectPage:function(t){1==t.id?window.open("/gic-web/custom"):2==t.id?window.open("/marketing/game/dzp"):window.open("marketing/card/list")},toCreate:function(){return this.firstGoalId?this.secondGoalId?void this.judgeCreate():(i.a.showmsg("请先完善活动目的","warning"),!1):(i.a.showmsg("请先选择活动目的","warning"),!1)},getTwoList:function(){var t=this;Object(s.a)("/sharing-core-web/load-activity-dict",{}).then(function(e){var a=e.data;if(1==a.errorCode)return t.firstData=a.result.result||[],!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})},getMarkingList:function(){var t=this;Object(s.a)("/sharing-core-web/load-marking-page",{}).then(function(e){var a=e.data;if(1==a.errorCode)return t.markingList=a.result.result||[],!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})},getGameList:function(){var t=this;Object(s.a)("/sharing-core-web/load-game-page",{}).then(function(e){var a=e.data;if(1==a.errorCode)return t.gameList=a.result.result||[],!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})},getCardList:function(){var t=this;Object(s.a)("/sharing-core-web/load-card",{}).then(function(e){var a=e.data;if(1==a.errorCode)return t.cardList=a.result.result||[],!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})},judgeCreate:function(){var t=this;Object(s.a)("/sharing-core-web/can-create",{}).then(function(e){var a=e.data;if(1==a.errorCode)return t.$router.push("/createActive"),!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})}}},c={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"active-select border-box"},[a("div",{staticClass:"active-select-title font-22 color-303133 font-w-600"},[t._v("请选择您的活动目的")]),t._v(" "),a("ul",{staticClass:"flex flex-space-between"},[t._l(t.firstData,function(e,i){return[a("li",{key:i+"first",class:["li-cell flex-1 ",t.firstGoalId==e.goalId?"li-cell-active":""],on:{click:function(a){return t.selectFirst(e)}}},[a("div",{staticClass:"li-cell-inner flex "},[a("div",{staticClass:"li-cell-left flex flex-align-center flex-pack-center"},[a("img",{attrs:{src:e.iconUrl,alt:""}})]),t._v(" "),a("div",{staticClass:"li-cell-right border-box flex flex-column "},[a("div",{staticClass:"li-cell-active_name flex flex-align-center font-18 color-303133"},[t._v(t._s(e.goalName))]),t._v(" "),a("div",{staticClass:"li-cell-active_describe flex flex-align-center font-14 color-606266"},[t._v(t._s(e.describe))])])]),t._v(" "),t._m(0,!0)])]})],2),t._v(" "),a("div",{staticClass:"active-select-next"}),t._v(" "),a("div",{staticClass:"active-select-title font-22 color-303133 font-w-600"},[t._v("请进一步明确活动目的")]),t._v(" "),a("ul",{staticClass:"flex flex-pack-center m-t-48"},[t._l(t.secondData,function(e,i){return[a("li",{key:i+"second",class:["li-cell li-second-cell flex-1 ",t.secondGoalId==e.goalId?"li-second-active":""],on:{click:function(a){return t.selectSecond(e)}}},[a("div",{staticClass:"li-cell-inner"},[a("div",{staticClass:"li-cell-top border-box flex flex-align-center flex-pack-center"},[a("img",{attrs:{src:"",alt:""}}),a("span",{staticClass:"p-l-15 font-18 color-303133"},[t._v(t._s(e.goalName))])]),t._v(" "),a("div",{staticClass:"li-cell-bottom border-box"},[a("div",{staticClass:"li-cell-scene"},[a("div",{staticClass:"li-cell-scene_title font-14 color-303133"},[t._v("适用场景")]),t._v(" "),a("div",{staticClass:"li-cell-scene_text font-14 color-606266"},[t._v(t._s(e.describe["适用场景"]))])]),t._v(" "),a("div",{staticClass:"li-cell-quality"},[a("div",{staticClass:"li-cell-quality_title font-14 color-303133"},[t._v("优劣分析")]),t._v(" "),a("div",{staticClass:"li-cell-quality_text font-14 color-606266"},[t._v(t._s(e.describe["优劣分析"]))])])])]),t._v(" "),t._m(1,!0)])]})],2),t._v(" "),a("div",{staticClass:"active-select-next"}),t._v(" "),a("div",{staticClass:"active-select-title font-22 color-303133 font-w-600 m-b-0"},[t._v("请配置受邀人的转化路径")]),t._v(" "),a("div",{staticClass:"active-select-subtitle font-14 color-606266"},[t._v("基于您的活动设计期望,配置受邀人的转化路径(即受邀人需要经历的交互步骤)。系统会根据您所选择的转化路径,自动配置服务号关注后回复、认证后卡券投放等营销脚本。您只需要根据自身需求选择路径,并选择相关的营销活动页、游戏计划或卡券。")]),t._v(" "),a("ul",{staticClass:"flex flex-pack-center m-t-50"},[t._l(t.thirdData,function(e,i){return[a("li",{key:i+"third",class:["li-cell li-third-cell flex-1 ",e.check?"li-third-active":"","li-third-active-disable"],on:{click:function(a){return t.selectThird(e)}}},[a("div",{staticClass:"li-cell-inner border-box"},[t._m(2,!0),t._v(" "),a("div",{staticClass:"li-cell-path_title font-16 color-303133 text-center"},[t._v(t._s(e.name))]),t._v(" "),a("div",{staticClass:"li-cell-path_text font-14 color-606266"},[t._v(t._s(e.describe))])]),t._v(" "),t._m(3,!0)])]})],2),t._v(" "),a("div",{staticClass:"active-select-next"}),t._v(" "),a("div",{staticClass:"active-select-title font-22 color-303133 font-w-600 m-b-0"},[t._v("活动创建前准备工作")]),t._v(" "),a("div",{staticClass:"active-select-subtitle font-14 color-606266"},[t._v("根据您配置的转化路径,请确保完成以下工作,否则活动无法被正常执行。")]),t._v(" "),a("ul",{staticClass:"flex flex-pack-center m-t-50"},[t._l(t.fourData,function(e,i){return[a("li",{key:i+"four",staticClass:"li-four-cell flex-1 "},[a("div",{staticClass:"li-cell-inner border-box"},[a("div",{staticClass:"li-cell-title font-18 color-303133 font-w-600"},[t._v(t._s(e.name))]),t._v(" "),a("div",{staticClass:"li-cell-subtitle font-14 color-606266"},[t._v(t._s(e.describe))]),t._v(" "),a("div",{staticClass:"li-cell-tip font-14 color-303133"},[t._v("如果您还没有创建活动营销页,请立即前往创建。")]),t._v(" "),a("div",{staticClass:"li-cell-select"},[a("el-select",{attrs:{size:"large",placeholder:e.placeholder},model:{value:t.value,callback:function(e){t.value=e},expression:"value"}},t._l(t.markingList,function(t){return a("el-option",{key:t.value,attrs:{label:t.label,value:t.value}})}),1)],1),t._v(" "),a("div",{staticClass:"li-cell-seperator"},[t._v("OR")]),t._v(" "),a("div",{staticClass:"li-cell-btn"},[a("el-button",{attrs:{type:"primary",plain:""},on:{click:function(a){return t.toRedirectPage(e)}}},[t._v("立即前往创建")])],1)])])]})],2),t._v(" "),a("div",{staticClass:"to-active-config"},[a("div",{staticClass:"to-active-tip font-14 color-606266"},[t._v("确认完成了所有前期准备工作,即可前往活动配置。")]),t._v(" "),a("div",{staticClass:"to-active-btn"},[a("el-button",{attrs:{type:"primary"},on:{click:t.toCreate}},[t._v("前往活动配置"),a("i",{staticClass:"el-icon-right"})])],1)])])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"common-cell-check"},[e("div",{staticClass:"common-cell-triangle"},[e("div",{staticClass:"common-cell-outer"},[e("i",{staticClass:"el-icon-upload-success el-icon-check"})])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"common-cell-check"},[e("div",{staticClass:"common-cell-triangle"},[e("div",{staticClass:"common-cell-outer"},[e("i",{staticClass:"el-icon-upload-success el-icon-check"})])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"li-cell-path_img flex flex-pack-center flex-pack--center"},[e("img",{attrs:{src:"",alt:""}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"common-cell-check"},[e("div",{staticClass:"common-cell-triangle"},[e("div",{staticClass:"common-cell-outer"},[e("i",{staticClass:"el-icon-upload-success el-icon-check"})])])])}]};var o=a("VU/8")(r,c,!1,function(t){a("0uAL")},"data-v-3751c862",null).exports,l={name:"bar-chart",props:{barChartData:{type:[Array,Object],default:function(){return{}}},charHeight:{type:String,default:function(){return"300px"}}},components:{},data:function(){return this.chartSettings={showLine:["传播系数"]},this.colors=["#1890FF","#5AD8A6","#FF6383"],{}}},u={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"bar-chart"},[e("ve-histogram",{attrs:{data:this.barChartData,settings:this.chartSettings,colors:this.colors,height:this.charHeight}}),this._v(" "),e("div",{staticClass:"chart-title font-12 color-000 text-center"},[this._v("- 近15天趋势图 -")])],1)},staticRenderFns:[]};var f=a("VU/8")(l,u,!1,function(t){a("OSz6")},"data-v-2b9964bf",null).exports,d={name:"data-statistics",props:{barChartData:{type:[Array,Object],default:function(){return{}}}},components:{barChart:f},data:function(){return{charHeight:"220px"}}},v={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"data-statistics"},[a("div",{staticClass:"data-statistics-body flex"},[a("div",{staticClass:"data-statistics-left"},[a("ul",{staticClass:"flex flex-column flex-pack-center flex-align-center"},[a("li",{staticClass:"flex-1 flex flex-pack-center flex-align-center"},[t._m(0),t._v(" "),a("div",{staticClass:"data-statistics-txt flex flex-column"},[a("div",{staticClass:"font-14 color-606266 font-w-400"},[t._v("活动曝光量")]),t._v(" "),a("div",{staticClass:"font-22 color-303133 font-w-600 p-t-10"},[t._v(t._s(t._f("formatThousand")("287123")))])])]),t._v(" "),a("li",{staticClass:"flex-1 flex flex-pack-center flex-align-center"},[t._m(1),t._v(" "),a("div",{staticClass:"data-statistics-txt flex flex-column"},[a("div",{staticClass:"font-14 color-606266 font-w-400"},[t._v("参与人数")]),t._v(" "),a("div",{staticClass:"font-22 color-303133 font-w-600 p-t-10"},[t._v(t._s(t._f("formatThousand")("287123")))])])]),t._v(" "),a("li",{staticClass:"flex-1 flex flex-pack-center flex-align-center"},[t._m(2),t._v(" "),a("div",{staticClass:"data-statistics-txt flex flex-column"},[a("div",{staticClass:"font-14 color-606266 font-w-400"},[t._v("受邀人数")]),t._v(" "),a("div",{staticClass:"font-22 color-303133 font-w-600 p-t-10"},[t._v(t._s(t._f("formatThousand")(287123)))])])])])]),t._v(" "),a("div",{staticClass:"data-right-wrap"},[a("div",{staticClass:"data-right-top flex"},[a("div",{staticClass:"data-statistics-middle flex-1 border-box m-l-20"},[a("div",{staticClass:"font-14 color-606266"},[t._v("参与率")]),t._v(" "),a("div",{staticClass:"font-22 color-303133 p-t-5"},[t._v("70%")]),t._v(" "),a("div",{staticClass:"data-percentage"},[a("div",{staticClass:"data-percentage-inner",style:{width:"70%"}})])]),t._v(" "),a("div",{staticClass:"data-statistics-right flex-1 border-box m-l-20"},[a("div",{staticClass:"font-14 color-606266"},[t._v("传播系数")]),t._v(" "),a("div",{staticClass:"font-22 color-303133 p-t-5"},[t._v("4.0")]),t._v(" "),a("div",{staticClass:"data-percentage"},[t._l(Math.floor(4.5),function(t,e){return[a("i",{key:e+"xrbg",staticClass:"iconfont icon-xiaoren color-1890ff"})]}),t._v(" "),t._l(10-Math.floor(4.5),function(t,e){return[a("i",{key:e+"xr",staticClass:"iconfont icon-xiaoren icon-xiaoren-opacity"})]})],2)])]),t._v(" "),a("div",{staticClass:"data-right-bottom"},[a("bar-chart",{attrs:{barChartData:t.barChartData,charHeight:t.charHeight}})],1)])])])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"data-statistics-icon"},[e("img",{attrs:{src:a("gjBT"),alt:""}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"data-statistics-icon"},[e("img",{attrs:{src:a("oj03"),alt:""}})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"data-statistics-icon"},[e("img",{attrs:{src:a("Vo6M"),alt:""}})])}]};var h=a("VU/8")(d,v,!1,function(t){a("FnTT")},"data-v-c13652e4",null).exports,m={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"funnel-chart"},[a("div",{staticClass:"funnel-chart-body flex"},[a("div",{staticClass:"chart-left"},[a("div",{staticClass:"trapezoid-bg"},[a("div",{staticClass:"space-line h-20 r-60"}),t._v(" "),a("div",{staticClass:"inner-bg bg-f5f7fa h-16"}),t._v(" "),a("div",{staticClass:"space-line h-22 r-57"}),t._v(" "),a("div",{staticClass:"inner-bg bg-f5f7fa h-18"}),t._v(" "),a("div",{staticClass:"space-line h-26 r-52"}),t._v(" "),a("div",{staticClass:"inner-bg bg-f5f7fa h-22"}),t._v(" "),a("div",{staticClass:"space-line h-29 r-48"}),t._v(" "),a("div",{staticClass:"inner-bg bg-f5f7fa h-23"}),t._v(" "),a("div",{staticClass:"space-line h-32 r-42"}),t._v(" "),a("div",{staticClass:"inner-bg bg-f5f7fa h-25"}),t._v(" "),a("div",{staticClass:"space-line h-38"})])]),t._v(" "),a("div",{staticClass:"chart-right"},[a("div",{staticClass:"chart-text"},[a("div",{staticClass:"space-line h-20 p-l-98 font-12 color-606066"},[t._v("关注服务号")]),t._v(" "),a("div",{staticClass:"bg-f5f7fa h-16"}),t._v(" "),a("div",{staticClass:"space-line h-22 p-l-90 font-12 color-606066"},[t._v("访问活动着陆页")]),t._v(" "),a("div",{staticClass:"bg-f5f7fa h-18"}),t._v(" "),a("div",{staticClass:"space-line h-26 p-l-80 font-12 color-606066"},[t._v("认证开卡")]),t._v(" "),a("div",{staticClass:"bg-f5f7fa h-22"}),t._v(" "),a("div",{staticClass:"space-line h-29 p-l-72 font-12 color-606066"},[t._v("参与游戏")]),t._v(" "),a("div",{staticClass:"bg-f5f7fa h-23"}),t._v(" "),a("div",{staticClass:"space-line h-32 p-l-60 font-12 color-606066"},[t._v("领取卡券")]),t._v(" "),a("div",{staticClass:"bg-f5f7fa h-25"}),t._v(" "),a("div",{staticClass:"space-line h-38 p-l-45 font-12 color-606066"},[t._v("消费")])])])]),t._v(" "),a("div",{staticClass:"funnel-chart-title font-12 color-000"},[t._v("- 响应转化漏斗 -")])])}]};var p=a("VU/8")({name:"funnel-chart",data:function(){return{}}},m,!1,function(t){a("510o")},"data-v-a52c6ba6",null).exports,g={name:"card-table",props:{barChartData:{type:[Array,Object],default:function(){return{}}},funnelData:{type:[Array,Object],default:function(){return{}}}},components:{funnelChart:p,dataStatisticsChild:h},data:function(){return{}},methods:{}},b={render:function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"out-date-active flex flex-space-between"},[e("data-statistics-child",{attrs:{barChartData:this.barChartData}}),this._v(" "),e("funnel-chart",{attrs:{funnelData:this.funnelData}})],1)},staticRenderFns:[]};var y=a("VU/8")(g,b,!1,function(t){a("QNJk")},"data-v-d8122392",null).exports,C=a("TQvf"),_=a.n(C),x={name:"in-progress-active",components:{outDateActive:y},data:function(){return{funnelData:[],barChartData:{columns:["日期","新增参与人数","新增受邀人数","传播系数"],rows:[{"日期":"1","新增参与人数":1393,"新增受邀人数":1093,"传播系数":.32},{"日期":"2","新增参与人数":3530,"新增受邀人数":3230,"传播系数":.26},{"日期":"3","新增参与人数":2923,"新增受邀人数":2623,"传播系数":.76},{"日期":"4","新增参与人数":1723,"新增受邀人数":1423,"传播系数":.49},{"日期":"5","新增参与人数":3192,"新增受邀人数":3192,"传播系数":.323},{"日期":"6","新增参与人数":3593,"新增受邀人数":3293,"传播系数":.78}]},selectItem:"",inProgressData:[{id:1}]}},methods:{selectLi:function(t){this.selectItem=t.id},handleCopy:function(t,e){var a=new _.a(".copy-tag",{text:function(){return window.location.origin+"/?articleId="+e.articleId}});a.on("success",function(t){i.a.showmsg("复制成功!","success"),a.destroy()}),a.on("error",function(t){i.a.showmsg("该浏览器不支持自动复制!","warning"),a.destroy()})},getTableList:function(){var t=this;Object(s.a)("/sharing-core-web/page-activity",{}).then(function(e){var a=e.data;if(1==a.errorCode)return t.inProgressData=a.result.result||[],t.totalCount=a.result.totalCount,!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})}},mounted:function(){this.getTableList()}},k={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"in-progress-active border-box"},[a("ul",[t._l(t.inProgressData,function(e,i){return[a("li",{key:i+"data",class:["border-box",t.selectItem==e.id&&0!=i?"li-border":""],on:{click:function(a){return a.stopPropagation(),t.selectLi(e)}}},[a("div",{staticClass:"in-progress-active-title flex flex-space-between border-box"},[t._m(0,!0),t._v(" "),a("div",{staticClass:"active-title-right"},[a("el-button",{attrs:{type:"primary",plain:""}},[t._v("活动配置")]),t._v(" "),a("el-button",{attrs:{type:"primary",plain:""},on:{click:function(a){return t.handleCopy(i,e)}}},[t._v("复制路径")]),t._v(" "),a("el-button",{attrs:{type:"primary",plain:""}},[t._v("数据明细")])],1)]),t._v(" "),a("div",{staticClass:"in-progress-active-body"},[a("out-date-active",{attrs:{barChartData:t.barChartData,funnelData:t.funnelData}})],1)])]})],2)])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"active-title-left"},[e("div",{staticClass:"active-title-name font-18 color-303133"},[this._v("活动名称活动名称活动名称活动名称活动名称活动名称")]),this._v(" "),e("div",{staticClass:"active-title-date font-14 color-909399 m-t-7"},[this._v("2019.10.01 12:00 - 2019.10.02 12:00")])])}]};var w={name:"finished-active",components:{outDateActive:y},data:function(){return{funnelData:[],barChartData:{columns:["日期","访问用户","下单用户","传播系数"],rows:[{"日期":"1/1","访问用户":1393,"下单用户":1093,"传播系数":.32},{"日期":"1/2","访问用户":3530,"下单用户":3230,"传播系数":.26},{"日期":"1/3","访问用户":2923,"下单用户":2623,"传播系数":.76},{"日期":"1/4","访问用户":1723,"下单用户":1423,"传播系数":.49},{"日期":"1/5","访问用户":3192,"下单用户":3192,"传播系数":.323},{"日期":"1/6","访问用户":3593,"下单用户":3293,"传播系数":.78}]},selectItem:"",finishedData:[{id:1},{id:2},{id:3},{id:4}],pageSize:20,currentPage:1,total:1}},methods:{selectLi:function(t){this.selectItem=t.id},handleCopy:function(t,e){var a=new _.a(".copy-tag",{text:function(){return window.location.origin+"/?articleId="+e.articleId}});a.on("success",function(t){i.a.showmsg("复制成功!","success"),a.destroy()}),a.on("error",function(t){i.a.showmsg("该浏览器不支持自动复制!","warning"),a.destroy()})},handleSizeChange:function(t){this.pageSize=t,this.getData()},handleCurrentChange:function(t){this.currentPage=t,this.getData()},getTableList:function(){var t=this,e={pageNum:t.currentPage,pageSize:t.pageSize};Object(s.a)("/sharing-core-web/page-activity",e).then(function(e){var a=e.data;if(1==a.errorCode)return t.finishedData=a.result.result||[],t.total=a.result.totalCount,!1;n.a.errorMsg(a)}).catch(function(e){t.$message.error({duration:1e3,message:e.message})})}},mounted:function(){this.getTableList()}},A={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"finished-active border-box"},[a("ul",[t._l(t.finishedData,function(e,i){return[a("li",{key:i+"data",class:["border-box",t.selectItem==e.id?"li-border":""],on:{click:function(a){return a.stopPropagation(),t.selectLi(e)}}},[a("div",{staticClass:"finished-active-title flex flex-space-between border-box"},[t._m(0,!0),t._v(" "),a("div",{staticClass:"active-title-right"},[a("el-button",{attrs:{type:"primary",plain:""}},[t._v("活动配置")]),t._v(" "),a("el-button",{attrs:{type:"primary",plain:""}},[t._v("数据明细")])],1)]),t._v(" "),t.selectItem==e.id?a("div",{staticClass:"finished-active-body"},[a("out-date-active",{attrs:{barChartData:t.barChartData,funnelData:t.funnelData}})],1):t._e()])]})],2),t._v(" "),t.total?a("div",{staticClass:"pagination text-right m-t-14"},[a("el-pagination",{attrs:{small:"","page-size":t.pageSize,"current-page":t.currentPage,layout:"prev, pager, next",total:t.total},on:{"size-change":t.handleSizeChange,"current-change":t.handleCurrentChange}})],1):t._e()])},staticRenderFns:[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"active-title-left"},[e("div",{staticClass:"active-title-name font-18 color-303133"},[this._v("活动名称活动名称活动名称活动名称活动名称活动名称")]),this._v(" "),e("div",{staticClass:"active-title-date font-14 color-909399 m-t-7"},[this._v("2019.10.01 12:00 - 2019.10.02 12:00")])])}]};var E={name:"share-index",components:{activeSelect:o,inProgressActive:a("VU/8")(x,k,!1,function(t){a("1tPD")},"data-v-6a65e8c5",null).exports,finishedActive:a("VU/8")(w,A,!1,function(t){a("QyI2")},"data-v-3186e848",null).exports},data:function(){return{}},methods:{}},S={render:function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"share-index common-wrap"},[a("div",{staticClass:"right-content border-box"},[a("div",{staticClass:"separator-space no-active"},[t._v("\n - 当前无进行中的活动,请创建活动,别让业绩白白流失!-\n ")]),t._v(" "),a("active-select"),t._v(" "),a("div",{staticClass:"separator-space"},[t._v("- 当前有正在进行的活动,无法创建新的活动 -")]),t._v(" "),a("in-progress-active"),t._v(" "),a("div",{staticClass:"separator-space"},[t._v("- 以下为已结束活动 -")]),t._v(" "),a("finished-active")],1),t._v(" "),a("vue-gic-footer")],1)},staticRenderFns:[]};var O=a("VU/8")(E,S,!1,function(t){a("VHoy")},"data-v-28363032",null);e.default=O.exports},gjBT:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAYAAAByDd+UAAAAAXNSR0IArs4c6QAABKJJREFUSA2VVl1oHFUU/s7sbNImltJoNbtN6l8wFiHG30JiamvFB61gaEK1INYHKRg3kSoI1Yeg9K3VxG0qEZT2SVBbXyoK9ScJSkogKdZCqhGlJrvZJk3qT2iT7O69fnfobCazsxt7YZjz8517zj3nnjMj+B+r6l1docK4GQoVfMqUhRK+xdJII4QrKovLsDE1GcMlEdHFtpRiyuq4jqYzuEtrrCmGc3UhC/NKY2zyVVwo5Ligww3v6fqMRrW72fW8QwpjydflfJBNnsNIXD9YegPO2f9Cz2VwL/NzS5BhMRkdDlphrMtYqEnF5Csv1vIyVYf1Ztamf+FvjFyxcE9qnwxZJTgrIWS9uGK0ZWEx8RpmshqtksXxaLd+xIvPObw1rm/PZnCS9SrjqTbxIpyOdOn9e9swfqONAcvGX17DQjQdppz6CVq4z2oFnDR7u/icw0WFwwTc5CqgESZ/oLcbA3MK6/fO4sdQGGM5fQGiRCG18Yi+g4Hf50A01i4oxF2443BDl95BwJOu0Pum08aFLH76sAJ7kjE5HwYdC656MS4tgswLHZjOpNHiypy3xlORbt1saMchj/3OMkA+s0YpfMQUf6HKYUXK0B+yMeGHsWZTnSKKwbf6dczYfiOT6BFdqxYReIX9RjzBNGv0bCIm3xmd6dOMQh3rzYMDJWEMM5CS+QX8YXj/oq7WUhns8iuCeDo7VWqjznVmMOMxSYayPG0IM9SrO2cwRWc7g+yNTGex2xaFBtap8BKkLcGbiRgOBk2PiX1yVWs9WHkQ6/s6JVPZrVuYvsBF8UM2hNOkAIBRm1v5XLJdhqU9cA9HeC2QqWiPrmbGNhdC0s1Gzl9UBQF4qmMVNu4vF5wL0gfJmLKdDD5venmwGy3OdqfgOaHgH16M3ZFVeGkmjbfmND7I6VYilK8dfHjjy7TFbE4uOF1qoT4EDCXm8QPlbzDcZx7o1cuDyhksEebGakHDkiSQmrUI+pUqxXoduLsOTYsaDWmFM0zNw8aEPbUuOY/tgeYeYVatmE4YXzaLeMIK4e3yMgz/chYf08Hznn0cknU2jfy1X+7lidnGbFzyyvw0HfY5BTafJBb8EwJq/CDD8/QztXWo7NsmmSD99ciEPSSRbvxOo9uKGbLYTyQ68E30fRxilKuKYQvoRpMdErdND0W79CHO09xEDzJgOlqIPcXGrmHanw7CFJMxSGegO8M7shq9TNtwMQPqmls/1bzAOL4CLl8t+D7ZgRNG4dTQEJEevUlnMMjbudbwQYszczufM4tpXCRuxVYxe9DBrIRRn2yTccM7JzTEZJuM8rY+Zi6I4YOWZmP/+bJcZgM7X4sgzDKZIMUAt7rOjC7n0DDJV2TEBrYyrIuG9y/WublTa4tBfe7X+XliLtg2miZi8rNXl0upV1jVo2uyaRxlbzV65YYWG4/ypKNM6SQfU9P8JfiWfwV7Eu2S95FedkLXcqJNfmORm/hj+yIjXfZxZr+2pNplmtgBF+++Gf0IHe1KdcjjQc4MjhkMXtc+OUfZp8cicWzhRNrBv+pGbrrF6d04PqNlLfkx1rSfA//LiXYZCt5tSfofVt6aUjcV2t0AAAAASUVORK5CYII="},oj03:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAdCAYAAAC5UQwxAAAAAXNSR0IArs4c6QAABCxJREFUSA2tVl1oXEUU/mbu3d3au5uEVsyum6AkVWmLohSqqK2IL/7jg+2T+CI0VEmCpRSLfciLIIhFt5aY1/gg6Js+2BdFxL+gtrSk2J9IQ5LdVK3d/iT7k9x7j2eGvcvduXdTu/XCMnO++eZ883PmnBW4xW/XZ2T9UkTGJcjua1g6PSZW1nIp1hpca6z3PXKkhc0+kGvyJEi6WHSSmJ4ZEfUmHurcUPCuCcq5NWxRc6TE7/PDoqT6mwrUVfGw3SPcpuzwx7yVFGFq9k1xJYyrflvBvnHKuyv4mDnPgRo8ARKEYyKBodIbYp5FUxUfOz0f6yKOLSztyOG7z3cLLzwmw0bQzxVoh1fHNAs93xRTgyxMwDO+i+n8h/SkPjYXJ4J54ZY8pH9axEAYU/2I4NajlCYfk+y4xyQ3bUIX393kwAR1l/aLS7bApeZYqON5yIZM3Y0IXvZwkEfuNommTYS+Wg2HFM7bnjPHNY6Y+zWJ7OgFE2tnB1xnFdfiOJ6Aa+KRHXIU9ZmkdjYfu+bmqqjGcSwfZROPCDJh1iStYWvuTBcSJkcI+JkezJh4nOBxk9TOZqea6/twTI4tce7sa+K6iUcEpcARJkXO3pzIL9PjGC8onB96M9twAHmWhZMLo+J8ZI7immBxRJzke3zXxGPs9xeHxa/bJijhS2QtoM7PY16m8W1pVMzF8DXUNtNkC7SXV3uYI7Eli/Ax1vl3oDQi9O6yh2k7B09vIMBjLueWv1IW/rip1KYc9BdokPPSXhZ9VWccgU94J+PBcW0do+TlHjzCd9gdCIZbi7DwWD9OhdNb7A7zBVJORnjlL7KDloDgHVR4AV9ypThSGhY/qPL0YxH3c3nqD4sFfb7fq47EVFA9WgQfmCTn7zLGWeiVlhwazDZanvxpVwZDKhr5CraQi0GDok0Oon/2lPHz2Jjwm4KD43RHZQXHePUPxU1qiwmcSq3D07N7cDH/AR7lcrUhjpuwcEZdhRZUkVaq4RsWezyO/B+wqbTEEzUX0pPYydeRNOeoYNqYx9f6WRTrOHgLYsr3w8s+Di3sE1Xewawppmz2b5cXkRX5j2ij5+ICY5k44k1gy04KA/Uqrq9KPAU/WtyFxEXJ23/5fxBT63Kqdexu7PLP2IUSHMnF9tnYwQ5AEvx3hD+y4guyJCQ5deKeDnzHTuHnpH2t91CJI/g2rkg+6dvjBjvEtK9kPSrIiWI1aeO85OiJ1KwOxVSUaF/pHtQCH+o52DbmNtj4fu51UbaFjbe40HzFwusDUictO65xGjug5mbuBSXO4HjyKpa2DWBJ5dJiw6l++LmjtJkr4Nss+hLjLbmzwWvb6NwKfMEl/535UTHdltgY0IIBSWWcYhUPMngfO7qT86nDFdPhhehFMLbMWIXPbpmxkiVwtjeFE78NidXAx43afwGGeG0DzVSPiwAAAABJRU5ErkJggg=="}});
\ No newline at end of file
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,f){for(var a,d,i,u=0,s=[];u<r.length;u++)d=r[u],t[d]&&s.push(t[d][0]),t[d]=0;for(a in c)Object.prototype.hasOwnProperty.call(c,a)&&(e[a]=c[a]);for(n&&n(r,c,f);s.length;)s.shift()();if(f)for(u=0;u<f.length;u++)i=o(o.s=f[u]);return i};var r={},t={15:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.timeout=12e4,o.nc&&f.setAttribute("nonce",o.nc),f.src=o.p+"static/js/"+e+"."+{0:"33d0c29fa31f393ab272",1:"5b546fa38466a0b05e37",2:"54bafab19f1e3d5fdab0",3:"e698fb6010fd5724021d",4:"c3325f8ffdd91a1c6c1c",5:"b19e63e305cd851d71d6",6:"46546cc7f3c9d48cc350",7:"b0fd74564cc799593b8f",8:"fe9ec49f63ecd8e527ba",9:"522a01ff8d619d2bf030",10:"e16b73d2d4b922255e52",11:"c11d02c33702d00b2e2e",12:"47f6c594ed379a74f6f2"}[e]+".js";var a=setTimeout(d,12e4);function d(){f.onerror=f.onload=null,clearTimeout(a);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return f.onerror=f.onload=d,c.appendChild(f),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]); !function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,f){for(var a,i,u,d=0,b=[];d<r.length;d++)i=r[d],t[i]&&b.push(t[i][0]),t[i]=0;for(a in c)Object.prototype.hasOwnProperty.call(c,a)&&(e[a]=c[a]);for(n&&n(r,c,f);b.length;)b.shift()();if(f)for(d=0;d<f.length;d++)u=o(o.s=f[d]);return u};var r={},t={15:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.timeout=12e4,o.nc&&f.setAttribute("nonce",o.nc),f.src=o.p+"static/js/"+e+"."+{0:"fe1d22745273babbb30b",1:"5b546fa38466a0b05e37",2:"3ec8497d74f0c733cb7f",3:"3bebb83fa165f78b8362",4:"c3325f8ffdd91a1c6c1c",5:"b19e63e305cd851d71d6",6:"46546cc7f3c9d48cc350",7:"b0fd74564cc799593b8f",8:"fe9ec49f63ecd8e527ba",9:"522a01ff8d619d2bf030",10:"e16b73d2d4b922255e52",11:"c11d02c33702d00b2e2e",12:"47f6c594ed379a74f6f2"}[e]+".js";var a=setTimeout(i,12e4);function i(){f.onerror=f.onload=null,clearTimeout(a);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return f.onerror=f.onload=i,c.appendChild(f),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file \ No newline at end of file
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
"vue": "^2.6.10", "vue": "^2.6.10",
"vue-clipboard2": "^0.2.0", "vue-clipboard2": "^0.2.0",
"vue-loader": "^13.7.3", "vue-loader": "^13.7.3",
"vue-qr": "^2.2.1",
"vue-router": "^3.0.1", "vue-router": "^3.0.1",
"xlsx": "^0.13.5" "xlsx": "^0.13.5"
}, },
......
import Vue from 'vue'; import Vue from 'vue';
// import axios from 'axios'; // import axios from 'axios';
import qs from 'qs'; import qs from 'qs';
import { Message } from 'element-ui'; import {
Message
} from 'element-ui';
Vue.axios.defaults.timeout = 25000; Vue.axios.defaults.timeout = 25000;
let local = window.location.origin; let local = window.location.origin;
...@@ -14,7 +16,9 @@ Vue.axios.interceptors.request.use( ...@@ -14,7 +16,9 @@ Vue.axios.interceptors.request.use(
return config; return config;
}, },
err => { err => {
Message.error({ message: '请求超时!' }); Message.error({
message: '请求超时!'
});
return Promise.resolve(err); return Promise.resolve(err);
} }
); );
...@@ -22,7 +26,9 @@ Vue.axios.interceptors.request.use( ...@@ -22,7 +26,9 @@ Vue.axios.interceptors.request.use(
Vue.axios.interceptors.response.use( Vue.axios.interceptors.response.use(
data => { data => {
if (data.status && data.status == 200 && data.data.errorCode == '401') { if (data.status && data.status == 200 && data.data.errorCode == '401') {
Message.error({ message: data.data.message }); Message.error({
message: data.data.message
});
window.location.href = local + '/gic-web/#/'; window.location.href = local + '/gic-web/#/';
return; return;
} }
...@@ -32,7 +38,9 @@ Vue.axios.interceptors.response.use( ...@@ -32,7 +38,9 @@ Vue.axios.interceptors.response.use(
// Message.error({message: err.response.message}); // Message.error({message: err.response.message});
if (err.response.status == 504 || err.response.status == 404) { if (err.response.status == 504 || err.response.status == 404) {
// window.location.href= local + "/gic-web/#/" // window.location.href= local + "/gic-web/#/"
Message.error({ message: '服务异常⊙﹏⊙∥' }); Message.error({
message: '服务异常⊙﹏⊙∥'
});
} else if (err.response.status == 403) { } else if (err.response.status == 403) {
window.location.href = local + '/gic-web/#/'; window.location.href = local + '/gic-web/#/';
// Message.error({message: '权限不足,请联系管理员!'}); // Message.error({message: '权限不足,请联系管理员!'});
...@@ -58,13 +66,15 @@ Vue.axios.interceptors.response.use( ...@@ -58,13 +66,15 @@ Vue.axios.interceptors.response.use(
*/ */
export const getRequest = (url, params) => { export const getRequest = (url, params) => {
params.requestProject = 'member-tag'; params.requestProject = 'share-config';
return Vue.axios({ return Vue.axios({
method: 'get', method: 'get',
url: `${local}/gic-member-tag-web${url}`, url: `${local}${url}`,
data: {}, data: {},
params: params, params: params,
headers: { 'content-type': 'application/x-www-form-urlencoded' } // "token": token headers: {
'content-type': 'application/x-www-form-urlencoded'
} // "token": token
}); });
}; };
...@@ -78,23 +88,27 @@ export const getRequest = (url, params) => { ...@@ -78,23 +88,27 @@ export const getRequest = (url, params) => {
*/ */
export const postRequest = (url, params) => { export const postRequest = (url, params) => {
params.requestProject = 'member-tag'; params.requestProject = 'share-config';
return Vue.axios({ return Vue.axios({
method: 'post', method: 'post',
url: `${local}/gic-member-tag-web${url}`, url: `${local}${url}`,
data: qs.stringify(params), data: qs.stringify(params),
headers: { 'content-type': 'application/x-www-form-urlencoded' } //multipart/form-data{"token": token} headers: {
'content-type': 'application/x-www-form-urlencoded'
} //multipart/form-data{"token": token}
}); });
}; };
export const postJsonRequest = (url, params) => { export const postJsonRequest = (url, params) => {
params.requestProject = 'member-tag'; params.requestProject = 'share-config';
return Vue.axios({ return Vue.axios({
method: 'post', method: 'post',
url: `${local}/gic-member-tag-web${url}`, url: `${local}${url}`,
data: '{}', data: '{}',
params: params, params: params,
headers: { 'Content-Type': 'application/json;charset=UTF-8' } //multipart/form-data{"token": token} headers: {
'Content-Type': 'application/json;charset=UTF-8'
} //multipart/form-data{"token": token}
}); });
}; };
...@@ -102,20 +116,24 @@ export const postJsonRequest = (url, params) => { ...@@ -102,20 +116,24 @@ export const postJsonRequest = (url, params) => {
* method: 'post' * method: 'post'
* 'Content-Type': 'application/json;charset=UTF-8' * 'Content-Type': 'application/json;charset=UTF-8'
* @data: params * @data: params
* @requestProject: 'member-tag' * @requestProject: 'share-config'
* *
*/ */
export const postJson = (url, params) => { export const postJson = (url, params) => {
// params.requestProject = "member-tag"; // params.requestProject = "share-config";
return Vue.axios({ return Vue.axios({
method: 'post', method: 'post',
url: `${local}/gic-member-tag-web${url}`, url: `${local}${url}`,
data: params, data: params,
params: { requestProject: 'member-tag' }, params: {
requestProject: 'share-config'
},
// withCredentials: true, // withCredentials: true,
// credentials: 'same-origin', // credentials: 'same-origin',
headers: { 'Content-Type': 'application/json;charset=UTF-8' } //multipart/form-data{"token": token} headers: {
'Content-Type': 'application/json;charset=UTF-8'
} //multipart/form-data{"token": token}
}); });
}; };
...@@ -125,10 +143,10 @@ export const postJson = (url, params) => { ...@@ -125,10 +143,10 @@ export const postJson = (url, params) => {
* *
*/ */
export const postForm = (url, params) => { export const postForm = (url, params) => {
params.requestProject = 'member-tag'; params.requestProject = 'share-config';
return Vue.axios({ return Vue.axios({
method: 'post', method: 'post',
url: `${local}/gic-member-tag-web${url}`, url: `${local}${url}`,
data: params, data: params,
headers: {} //'content-type': 'application/x-www-form-urlencoded'multipart/form-data{"token": token} headers: {} //'content-type': 'application/x-www-form-urlencoded'multipart/form-data{"token": token}
}); });
......
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-11-18 10:37:02
* @LastEditors: 无尘
* @LastEditTime: 2019-11-21 16:33:09
-->
<!--
<app-template :templateData="templateData"></app-template>
import appTemplate from '@/components/active-config/app-template.vue';
-->
<template>
<div class="app-template-content">
<div v-if="templateData.length > 0"></div>
<div class="displayItem" v-for="(item, index) in templateData" :key="index" :class="['item' + item.key, { curedit: curIndex == index }]">
<!-- 卡券 -->
<div v-if="item.key == 'B7'" class="card-wrap" :class="{ 'no-padding-r15': (item.cardSetting.length == 1 && item.cardSetting[0].cardData.length > 2) || item.cardSetting.length > 2 }">
<div class="img" v-if="item.cardStyle == 1">
<img v-if="(item.cardSetting.length == 1 && item.cardSetting[0].cardData.length < 2) || item.cardSetting.length == 0" src="../../../static/img/style2-1.png" alt="" />
<img v-if="(item.cardSetting.length == 1 && item.cardSetting[0].cardData.length == 2) || item.cardSetting.length == 2" src="../../../static/img/style2-2.png" alt="" />
<img v-if="(item.cardSetting.length == 1 && item.cardSetting[0].cardData.length > 2) || item.cardSetting.length > 2" src="../../../static/img/style01.png" alt="" />
</div>
<div class="img" v-if="item.cardStyle == 2">
<img v-if="(item.cardSetting.length == 1 && item.cardSetting[0].cardData.length < 2) || item.cardSetting.length == 0" src="../../../static/img/style1-1.png" alt="" />
<img v-if="(item.cardSetting.length == 1 && item.cardSetting[0].cardData.length == 2) || item.cardSetting.length == 2" src="../../../static/img/style1-2.png" alt="" />
<img v-if="(item.cardSetting.length == 1 && item.cardSetting[0].cardData.length > 2) || item.cardSetting.length > 2" src="../../../static/img/style02.png" alt="" />
</div>
<div class="img" v-if="item.cardStyle == 3">
<img src="../../../static/img/style03.png" alt="" />
</div>
</div>
<!-- 富文本 -->
<div v-if="item.key == 'A1'" class="fu-text-wrap" v-html="item.richTextContent"></div>
<!-- 图片广告 -->
<el-carousel :style="{ height: 60 + 'px' }" v-if="item.key == 'A2'" style="overflow: hidden;">
<el-carousel-item v-for="(list, index) in item.data" :key="index">
<img :style="{ height: 60 + 'px' }" width="100%" v-if="list.qcloudImageUrl" :src="list.qcloudImageUrl" alt="" />
<img :style="{ height: 60 + 'px' }" width="100%" v-else src="../../../static/img/ad.png" alt="" />
</el-carousel-item>
</el-carousel>
<!-- 魔方 九宫格-->
<div v-if="item.key == 'A3' && item.templateType == 9">
<div class="main" style="padding: 4px;">
<div class="column-item">
<div class="mainbox">
<div class="mainboxdraggable clearfix">
<template v-if="index < 3">
<div class="mainboximg" :class="curjggIndex == index ? 'curitem' : ''" v-for="(list, index) in item.data" :key="index">
<img v-if="list.qcloudImageUrl" :src="list.qcloudImageUrl" alt="" />
</div>
</template>
</div>
</div>
</div>
<div class="column-item">
<div class="mainbox">
<div class="mainboxdraggable clearfix">
<template v-if="index >= 3 && index < 6">
<div class="mainboximg" :class="curjggIndex == index ? 'curitem' : ''" v-for="(list, index) in item.data" :key="index">
<img v-if="list.qcloudImageUrl" :src="list.qcloudImageUrl" alt="" />
</div>
</template>
</div>
</div>
</div>
<div class="column-item">
<div class="mainbox">
<div class="mainboxdraggable clearfix">
<template v-if="index >= 6 && index < 9">
<div class="mainboximg" :class="curjggIndex == index ? 'curitem' : ''" v-for="(list, index) in item.data" :key="index">
<img v-if="list.qcloudImageUrl" :src="list.qcloudImageUrl" alt="" />
</div>
</template>
</div>
</div>
</div>
</div>
</div>
<!-- 魔方 自定义-->
<div v-if="item.key == 'A3' && item.templateType == 8" class="phone-cube">
<div
v-if="(item.data.length > 0 && item.data[0].pos == '') || item.data.length < 1"
:style="{
height: (157 / item.lineSetting.column) * item.lineSetting.row + 'px'
}"
></div>
<div v-else :style="{ height: (157 / item.lineSetting.column) * item.lineSetting.row + 'px' }">
<img class="img-cube" :src="itm.qcloudImageUrl" :alt="item.lineSetting.column" v-for="(itm, idx) in item.data" :key="idx" :style="{ width: (itm.pos[4] - itm.pos[0]) * (157 / item.lineSetting.column) + 'px', height: ((itm.pos[7] == 0 ? 10 : itm.pos[6]) - itm.pos[2]) * (157 / item.lineSetting.column) + 'px', left: itm.pos[0] * (157 / item.lineSetting.column) + 'px', top: itm.pos[2] * (157 / item.lineSetting.column) + 'px' }" />
</div>
</div>
<!-- 文本 -->
<div v-if="item.key == 'A5'" class="threecontent" v-html="enterLine(item.content)" :style="[{ color: item.fontColor, background: item.backgroundColor, textAlign: item.pos }, { padding: item.fillWay !== 0 ? '10px' : '' }]"></div>
<!-- 横栏 -->
<div class="crossbar" v-if="item.key == 'A6'">
<!-- icon横栏 -->
<ul v-if="parseInt(item.templateType) == 1">
<li class="crossbar-list" :style="[{ background: item.backgroundColor }]" v-for="(list, index) in item.data" :key="index">
<span class="crossbar-icon11">
<img v-if="list.qcloudImageUrl" :src="list.qcloudImageUrl" alt="" />
<img v-else src="../../../static/img/default.jpg" alt="" />
</span>
<span class="crossbar-icon2" :style="[{ color: item.fontColor }]">{{ list.title }}</span>
<span class="crossbar-icon3"> <i class="el-icon-arrow-right" v-if="item.jumpHint"></i> </span>
</li>
</ul>
<!-- 纯文字横栏 -->
<ul v-if="parseInt(item.templateType) == 2">
<li class="crossbar-list" :style="[{ background: item.backgroundColor }]" v-for="(list, index) in item.data" :key="index">
<span class="crossbar-icon2" :style="[{ color: item.fontColor }]">{{ list.title }}</span>
<span class="crossbar-icon3"> <i class="el-icon-arrow-right" v-if="item.jumpHint"></i> </span>
</li>
</ul>
<!-- 双向横栏 -->
<ul v-if="parseInt(item.templateType) == 3">
<li class="crossbar-list" :style="[{ background: item.backgroundColor }]">
<div class="double-heng-item" v-for="(list, index) in item.data" :key="index">
<span class="crossbar-icon11">
<img v-if="list.qcloudImageUrl" :src="list.qcloudImageUrl" alt="" />
<img v-else src="../../../static/img/default.jpg" alt="" />
</span>
<span class="crossbar-icon2" :style="[{ color: item.fontColor }]">{{ list.title }}</span>
</div>
</li>
</ul>
</div>
<!-- 辅助线 -->
<div v-if="item.key == 'A7'">
<div class="fuzhuline" :style="[{ borderColor: item.fontColor, borderStyle: parseInt(item.style) == 1 ? 'solid' : parseInt(item.style) == 2 ? 'dashed' : parseInt(item.style) == 3 ? 'dotted' : '' }, { margin: parseInt(item.fillWay) == 1 ? '2px 10px' : '' }]"></div>
</div>
<!-- 辅助空白 -->
<div v-if="item.key == 'A8'">
<div :style="{ height: item.fillWay + 'px' }"></div>
</div>
<!-- 进入积分 -->
<div v-if="item.key == 'B1'">
<div class="integral-list-page">
<div class="integral-list-top" :style="{ height: item.setting !== 1 ? '65px' : '' }">
<img class="integral-img" src="../../../static/img/credit-banner_bg.png" alt="" />
<div class="integral-list-item">
<p class="integral-num">10000</p>
<p class="integral-item-title">可用积分</p>
</div>
<div class="integral-list-item">
<p class="integral-num">300</p>
<p class="integral-item-title">冻结积分</p>
</div>
</div>
<div class="integral-list-bottom" style="overflow: hidden;">
<img width="353" height="85" src="../../../static/img/credit-sign_bg.png" />
</div>
</div>
</div>
<!-- 数据icon -->
<div v-if="item.key == 'B2'">
<div class="customicon" v-if="parseInt(item.templateType) == 3">
<template v-for="(list, index) in item.data">
<div class="customicon-item" :class="{ dataiconflex: parseInt(item.amount) == 3 }" v-if="list.status == true" :key="index">
<p :style="{ color: list.fontColor }">0</p>
<p :style="{ color: list.fontColor }">
<span>{{ list.title }}</span>
</p>
</div>
</template>
</div>
<div class="customicon" v-if="parseInt(item.templateType) !== 3">
<ul style="width: 100%">
<template v-for="(list, index) in item.data">
<li class="crossbar-list" :style="[{ background: item.backgroundColor }]" :key="index" v-if="list.status == true">
<span class="crossbar-icon1" v-if="parseInt(item.templateType) == 1">
<img width="20" height="20" v-if="list.qcloudImageUrl" :src="list.qcloudImageUrl" alt="" />
<img width="20" height="20" v-else src="../../../static/img/default.jpg" alt="" />
</span>
<span class="crossbar-icon2" :style="[{ color: item.fontColor }]">
<span>{{ list.title }}</span>
</span>
<span class="crossbar-icon3">0</span>
</li>
</template>
</ul>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: 'app-template',
props: {
templateData: {
type: [Array, Object],
default() {
return [];
}
}
},
data() {
return {};
},
methods: {
enterLine(val) {
if (val) {
val = val.replace(/\n/g, '<br>');
}
return val;
}
}
};
</script>
<style lang="less" scoped>
.clearfix:after,
.clearfix:before {
content: '';
display: block;
visibility: hidden;
height: 0;
clear: both;
}
.app-template-content {
.displayItem {
width: 100%;
border-bottom: 1px solid #eee;
min-height: 10px;
position: relative;
box-sizing: border-box;
// 卡券
.card-wrap {
padding: 10px 0px;
min-height: 50px;
background: #fff;
&.no-padding-r15 {
padding-right: 0;
}
.img {
width: 100%;
img {
width: 100%;
}
}
}
.crossbar-list {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
height: 30px;
padding: 0;
border-bottom: 1px solid #dcdfe6;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
text-align: left;
font-size: 0;
&:last-child {
border-bottom: 0;
}
}
.crossbar-icon2 {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
font-size: 15px;
text-align: left;
line-height: 20px;
color: #232326;
overflow: hidden;
}
.crossbar-icon3 {
-webkit-box-flex: 0;
-ms-flex: 0 0 25px;
flex: 0 0 25px;
font-size: 14px;
color: #5a5a5a;
}
.crossbar-icon11 {
img {
width: 22px;
}
}
.double-heng-item:first-child {
width: 90px;
margin-right: 15px;
border-right: 1px solid #e3e5e9;
}
.crossbar .double-heng-item {
width: 80px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
}
.fu-text-wrap {
width: 100%;
min-height: 180px;
text-align: left;
line-height: 36px;
white-space: pre-wrap;
word-break: break-all;
}
.customicon {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
width: 100%;
-webkit-box-pack: start;
-ms-flex-pack: start;
justify-content: flex-start;
.customicon-item {
-webkit-box-flex: 0;
-ms-flex: 0 0 25%;
flex: 0 0 25%;
min-height: 30px;
line-height: 20px;
font-size: 10px;
text-align: center;
}
}
&.itemA5 {
min-height: 20px;
}
.threecontent {
word-break: break-all;
}
.main {
width: 177px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
.column-item {
width: 177px;
.mainbox {
-webkit-box-sizing: border-box;
box-sizing: border-box;
.clearfix {
zoom: 1;
}
.mainboximg:first-child {
border-left: 1px solid #dcdfe6;
}
.mainboximg {
width: 56px;
min-height: 22px;
max-height: 22px;
float: left;
display: inline-block;
-webkit-box-sizing: border-box;
box-sizing: border-box;
border: 1px solid #dcdfe6;
margin-right: -1px;
margin-bottom: -1px;
overflow: hidden;
img {
width: 100%;
}
}
}
}
}
.phone-cube {
border: 10px solid #fff;
background: #d9d9d9;
position: relative;
.img-cube {
position: absolute;
}
}
.integral-list-page {
padding-bottom: 24px;
position: relative;
.integral-list-top {
height: 185px;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
position: relative;
overflow: hidden;
-ms-flex-pack: distribute;
justify-content: space-around;
.integral-img {
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
}
.integral-list-item {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
z-index: 2;
text-align: center;
.integral-num {
font-size: 12px;
margin-top: 9px;
text-align: center;
color: rgb(223, 183, 114);
}
.integral-item-title {
font-size: 10px;
margin-top: 11px;
text-align: center;
color: #fff;
}
}
}
.integral-list-bottom {
position: absolute;
bottom: 0;
left: 50%;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
img {
width: 170px;
height: auto;
}
}
}
}
}
</style>
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-18 10:37:02 * @Date: 2019-11-18 10:37:02
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-20 15:43:26 * @LastEditTime: 2019-11-21 14:01:24
--> -->
<!-- <!--
<base-config @submitNext="submitNext"></base-config> <base-config @submitNext="submitNext"></base-config>
...@@ -22,32 +22,32 @@ import baseConfig from '@/components/active-config/base-config.vue'; ...@@ -22,32 +22,32 @@ import baseConfig from '@/components/active-config/base-config.vue';
> >
<el-form-item <el-form-item
label="活动目的:" label="活动目的:"
prop="activeName" prop="activeInfoData"
> </el-form-item> > </el-form-item>
<el-form-item <el-form-item
label="转化路径:" label="转化路径:"
prop="activeName" prop="activeInfoData"
> </el-form-item> > </el-form-item>
<el-form-item <el-form-item
label="活动营销页:" label="活动营销页:"
prop="activeName" prop="activityName"
> </el-form-item> > </el-form-item>
<el-form-item <el-form-item
label="游戏计划:" label="游戏计划:"
prop="activeName" prop="activityName"
> </el-form-item> > </el-form-item>
<el-form-item <el-form-item
label="卡券:" label="卡券:"
prop="activeName" prop="activityName"
> </el-form-item> > </el-form-item>
<el-form-item <el-form-item
label="活动名称:" label="活动名称:"
prop="activeName" prop="activityName"
> >
<limitInput <limitInput
:inputWidth="350" :inputWidth="350"
:disflag="$route.query.interfaceId ? true : false" :disflag="$route.query.interfaceId ? true : false"
:inputValue.sync="activeInfoData.activeName" :inputValue.sync="activeInfoData.activityName"
:holder="'请输入活动名称'" :holder="'请输入活动名称'"
:getByType="'word'" :getByType="'word'"
:maxLength="30" :maxLength="30"
...@@ -87,7 +87,7 @@ import baseConfig from '@/components/active-config/base-config.vue'; ...@@ -87,7 +87,7 @@ import baseConfig from '@/components/active-config/base-config.vue';
</template> </template>
<script> <script>
import limitInput from '@/components/limit-input.vue'; import limitInput from '@/components/limit-input.vue';
import { postRequest } from '@/api/api'; import { getRequest,postRequest } from '@/api/api';
// import showMsg from '@/common/js/showmsg'; // import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error'; import errMsg from '@/common/js/error';
export default { export default {
...@@ -99,11 +99,18 @@ export default { ...@@ -99,11 +99,18 @@ export default {
data() { data() {
return { return {
activeInfoData: { activeInfoData: {
activeName: '', parentGoalId: '',
goalId: '',
activityMarketPageId: '',
gamePlanId: '',
cardCoupId: '',
routerBitValue: '',
routerBitName: '',
activityName: '',
dateRange: [] dateRange: []
}, },
rules: { rules: {
activeName: [{ required: true, message: '请输入活动名称', trigger: 'blur' }], activityName: [{ required: true, message: '请输入活动名称', trigger: 'blur' }],
dateRange: [{ required: true, message: '请选择活动有效期', trigger: 'blur' }] dateRange: [{ required: true, message: '请选择活动有效期', trigger: 'blur' }]
} }
}; };
...@@ -141,12 +148,22 @@ export default { ...@@ -141,12 +148,22 @@ export default {
}, },
postSave() { postSave() {
const that = this; const that = this;
if (!that.activeInfoData.dateRange) {
that.activeInfoData.dateRange = [];
}
let para = { let para = {
project: that.repProjectName, activityName: that.activeInfoData.activityName,
router: that.pathName, startDate: that.activeInfoData.dateRange[0],
requestProject: that.repProjectName endDate: that.activeInfoData.dateRange[1],
parentGoalId: that.activeInfoData.parentGoalId,
goalId: that.activeInfoData.goalId,
activityMarketPageId: that.activeInfoData.activityMarketPageId,
gamePlanId: that.activeInfoData.gamePlanId,
cardCoupId: that.activeInfoData.cardCoupId,
routerBitValue: that.activeInfoData.routerBitValue,
routerBitName: that.activeInfoData.routerBitName
}; };
postRequest('/haoban-manage-web/menu-detail', para) postRequest('/sharing-core-web/create-activity-base-info', para)
.then(res => { .then(res => {
let resData = res.data; let resData = res.data;
if (resData.errorCode == 1) { if (resData.errorCode == 1) {
...@@ -162,8 +179,37 @@ export default { ...@@ -162,8 +179,37 @@ export default {
message: error.message message: error.message
}); });
}); });
} },
} /**
* 获取基础信息
* /sharing-core-web/get-activity-base-info
*/
getBaseData(acitivityId) {
const that = this;
let para = {
acitivityId: acitivityId || that.$route.query.acitivityId
};
getRequest('/sharing-core-web/get-activity-base-info', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.activeInfoData = resData.result;
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
},
mounted() {
const that = this;
that.getBaseData();
},
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-18 10:37:02 * @Date: 2019-11-18 10:37:02
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-18 17:13:41 * @LastEditTime: 2019-11-21 17:18:50
--> -->
<!-- <!--
<card-config @submitBack="submitBack" @submitNext="submitNext"></card-config> <card-config @submitBack="submitBack" @submitNext="submitNext"></card-config>
...@@ -14,91 +14,70 @@ import cardConfig from '@/components/active-config/card-config.vue'; ...@@ -14,91 +14,70 @@ import cardConfig from '@/components/active-config/card-config.vue';
<template> <template>
<div class="card-config-content"> <div class="card-config-content">
<div class="config-title font-14 color-303133">小程序卡片配置</div> <div class="config-title font-14 color-303133">小程序卡片配置</div>
<el-form <div role="alert" class="el-alert el-alert--info">
label-width="114px" <i class="el-alert__icon el-icon-info font-12 color-1890ff"></i>
:model="activeInfoData" <div class="el-alert__content">
ref="cardForm" <span class="el-alert__title color-606266 font-14 font-w-400"
:rules="rules" >1. 邀请人可在活动中心一键转发【会员认证流程】的小程序卡片给微信好友,请对小程序卡片的样式进行设置。优秀的活动标题和封面图可以大幅提升受邀人的参与积极性!<br />
> 2. 受邀人服务号关注后,系统将自动发送【会员认证流程】的小程序卡片,请对小程序卡片的样式进行设置。优秀的活动标题和封面图可以大幅提升受邀人的参与积极性!</span
<el-form-item >
label="活动名称:" </div>
prop="activeName" </div>
> <div class="form-wrap flex">
<limitInput <el-form label-width="114px" :model="activeInfoData" ref="cardForm" :rules="rules">
:inputWidth="350" <el-form-item label="页面标题:" prop="appletTitle">
:disflag="$route.query.interfaceId ? true : false" <limitInput :inputWidth="503" :disflag="$route.query.interfaceId ? true : false" :inputValue.sync="activeInfoData.appletTitle" :holder="'请输入页面标题'" :getByType="'word'" :maxLength="40"> </limitInput>
:inputValue.sync="activeInfoData.activeName" </el-form-item>
:holder="'请输入活动名称'" <el-form-item label="海报上传:" prop="palyBillUrl">
:getByType="'word'" <single-upload v-model="activeInfoData.palyBillUrl"> </single-upload>
:maxLength="30" </el-form-item>
> </limitInput> <el-form-item class="m-t-50">
</el-form-item> <el-button type="primary" @click="submitBack">上一步</el-button>
<el-form-item <el-button type="primary" @click="submitForm('cardForm')">下一步</el-button>
label="活动有效期:" </el-form-item>
prop="dateRange" </el-form>
> <div class="form-preview">
<el-date-picker <div class="form-preview-top font-14 color-303133">效果预览</div>
class="m-l-10" <div class="form-preview-body">
prefix-icon="el-icon-time" <div class="form-preview-inner">
v-model="activeInfoData.dateRange" <div class="form-preview-title">{{ activeInfoData.appletTitle }}</div>
@change="changeDate" <div class="form-preview-img flex flex-pack-center flex-align-center">
:editable="false" <img :src="activeInfoData.palyBillUrl" alt="" />
:value-format="'yyyy-MM-dd'" </div>
type="daterange" </div>
align="right" </div>
unlink-panels </div>
range-separator="至" </div>
start-placeholder="开始日期"
end-placeholder="结束日期"
> </el-date-picker>
</el-form-item>
<el-form-item class="m-t-50">
<el-button
type="primary"
@click="submitBack"
>上一步</el-button>
<el-button
type="primary"
@click="submitForm('cardForm')"
>下一步</el-button>
</el-form-item>
</el-form>
</div> </div>
</template> </template>
<script> <script>
import limitInput from '@/components/limit-input.vue'; import limitInput from '@/components/limit-input.vue';
import singleUpload from '@/components/single-upload.vue';
// import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error';
import { getRequest, postRequest } from '@/api/api';
export default { export default {
name: 'card-config', name: 'card-config',
props: { props: {},
},
components: { components: {
limitInput limitInput,
singleUpload
}, },
data() { data() {
return { return {
activeInfoData: { activeInfoData: {
activeName: '', appletTitle: '',
dateRange: [] palyBillUrl: ''
}, },
rules: { rules: {
activeName: [{ required: true, message: '请输入活动名称', trigger: 'blur' }], appletTitle: [{ required: true, message: '请输入页面标题', trigger: 'blur' }],
dateRange: [{ required: true, message: '请选择活动有效期', trigger: 'blur' }] palyBillUrl: [{ required: true, message: '请上传海报图片', trigger: 'blur' }]
} }
} };
}, },
methods: { methods: {
/** /**
* 日期
*/
changeDate(e) {
const that = this;
if (!e) {
that.activeInfoData.dateRange = [];
}
},
/**
* 上一步 * 上一步
*/ */
submitBack() { submitBack() {
...@@ -110,17 +89,70 @@ export default { ...@@ -110,17 +89,70 @@ export default {
*/ */
submitForm(formName) { submitForm(formName) {
const that = this; const that = this;
that.$emit('submitNext', that.activeInfoData);
that.$store.dispatch('saveCardInfo', that.activeInfoData);
that.$refs[formName].validate(valid => { that.$refs[formName].validate(valid => {
if (valid) { if (valid) {
that.$emit('submitNext', that.activeInfoData); that.postSave();
that.$store.dispatch('saveCardInfo', that.activeInfoData);
} else { } else {
return false; return false;
} }
}); });
},
postSave() {
const that = this;
let para = {
activityId: that.activeInfoData.activityId,
palyBillUrl: that.activeInfoData.palyBillUrl,
appletTitle: that.activeInfoData.appletTitle
};
postRequest('/sharing-core-web/edit-activity-applet', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.$emit('submitNext', that.activeInfoData);
that.$store.dispatch('saveCardInfo', that.activeInfoData);
return;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
/**
* 获取活动中心数据
*/
getData(acitivityId) {
const that = this;
let para = {
acitivityId: acitivityId || that.$route.query.acitivityId
};
getRequest('/sharing-core-web/get-activity-applet', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.activeInfoData = resData.result;
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
} }
}, },
} mounted() {
const that = this;
that.getData();
}
};
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.card-config-content { .card-config-content {
...@@ -137,5 +169,64 @@ export default { ...@@ -137,5 +169,64 @@ export default {
color: #606266; color: #606266;
} }
} }
.el-alert--info {
width: 1130px;
margin-bottom: 17px;
background: #e6f7ff;
border: 1px solid #91d5ff;
.el-alert__icon {
padding-top: 5px;
align-self: flex-start;
}
.el-alert__content {
line-height: 22px;
padding-right: 0;
}
}
.form-wrap {
.el-form {
width: 640px;
max-width: 640px;
}
.form-preview {
position: relative;
width: 350px;
.form-preview-top {
line-height: 20px;
margin-bottom: 18px;
font-weight: 600;
}
.form-preview-body {
position: relative;
width: 350px;
height: 374px;
padding: 50px 26px;
background: url(../../assets/images/app-card.png) no-repeat left center;
background-size: 100%;
.form-preview-inner {
width: 100%;
height: 100%;
.form-preview-title {
height: 22px;
font-size: 16px;
font-weight: 600;
color: rgba(48, 49, 51, 1);
line-height: 22px;
margin-bottom: 8px;
}
.form-preview-img {
width: 298px;
height: 244px;
max-width: 298px;
max-height: 244px;
img {
max-width: 298px;
max-height: 244px;
}
}
}
}
}
}
} }
</style> </style>
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-18 10:37:02 * @Date: 2019-11-18 10:37:02
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-20 19:31:36 * @LastEditTime: 2019-11-21 16:44:31
--> -->
<!-- <!--
<center-config @submitBack="submitBack" @submitNext="submitNext"></center-config> <center-config @submitBack="submitBack" @submitNext="submitNext"></center-config>
...@@ -14,101 +14,47 @@ import centerConfig from '@/components/active-config/center-config.vue'; ...@@ -14,101 +14,47 @@ import centerConfig from '@/components/active-config/center-config.vue';
<template> <template>
<div class="center-config-content"> <div class="center-config-content">
<div class="config-title font-14 color-303133">活动中心配置</div> <div class="config-title font-14 color-303133">活动中心配置</div>
<div <div role="alert" class="el-alert el-alert--info">
role="alert"
class="el-alert el-alert--info"
>
<i class="el-alert__icon el-icon-info font-12 color-1890ff"></i> <i class="el-alert__icon el-icon-info font-12 color-1890ff"></i>
<div class="el-alert__content"> <div class="el-alert__content">
<span class="el-alert__title color-606266 font-14 font-w-400">1. 活动中心是邀请人访问的页面,用于介绍活动和奖励规则,展示受邀人清单和奖励信息。<br /> <span class="el-alert__title color-606266 font-14 font-w-400"
2. 当前活动的转化路径以服务号作为受邀人入口,邀请人可在活动中心一键服务号的带二维码海报,以实现朋友圈转发。</span> >1. 活动中心是邀请人访问的页面,用于介绍活动和奖励规则,展示受邀人清单和奖励信息。<br />
2. 当前活动的转化路径以服务号作为受邀人入口,邀请人可在活动中心一键服务号的带二维码海报,以实现朋友圈转发。</span
>
</div> </div>
</div> </div>
<div class="form-wrap flex"> <div class="form-wrap flex">
<el-form <el-form label-width="144px" :model="activeInfoData" ref="centerForm" :rules="rules">
label-width="144px" <el-form-item label="头图上传:" prop="headUrl">
:model="activeInfoData"
ref="centerForm"
:rules="rules"
>
<el-form-item
label="头图上传:"
prop="headUrl"
>
<single-upload v-model="activeInfoData.headUrl"> </single-upload> <single-upload v-model="activeInfoData.headUrl"> </single-upload>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="分享按钮:" prop="">
label="分享按钮:"
prop=""
>
<div class="flex"> <div class="flex">
<span class="color-wrap flex flex-pack-center flex-space-between border-box">背景色<el-color-picker v-model="activeInfoData.shareBackColor"></el-color-picker></span><span class="color-wrap flex flex-space-between flex-pack-center border-box">文字色<el-color-picker v-model="activeInfoData.shareFontColor"></el-color-picker></span> <span class="color-wrap flex flex-pack-center flex-space-between border-box">背景色<el-color-picker v-model="activeInfoData.shareBackColor"></el-color-picker></span><span class="color-wrap flex flex-space-between flex-pack-center border-box">文字色<el-color-picker v-model="activeInfoData.shareFontColor"></el-color-picker></span>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="分享按钮文案:" prop="shareButtonFont">
label="分享按钮文案:" <limitInput :inputWidth="394" :disflag="$route.query.editFlag ? true : false" :inputValue.sync="activeInfoData.shareButtonFont" :holder="'请输入分享按钮文案'" :getByType="'word'" :maxLength="20"> </limitInput>
prop="shareButtonFont"
>
<limitInput
:inputWidth="394"
:disflag="$route.query.editFlag ? true : false"
:inputValue.sync="activeInfoData.shareButtonFont"
:holder="'请输入分享按钮文案'"
:getByType="'word'"
:maxLength="20"
> </limitInput>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="活动介绍展现模式:" prop="activityIntroduceMode">
label="活动介绍展现模式:" <el-radio-group v-model="activeInfoData.activityIntroduceMode" @change="changeMode">
prop="activityIntroduceMode"
>
<el-radio-group
v-model="activeInfoData.activityIntroduceMode"
@change="changeMode"
>
<el-radio label="1">文字模式</el-radio> <el-radio label="1">文字模式</el-radio>
<el-radio label="2">图文模式</el-radio> <el-radio label="2">图文模式</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item <el-form-item v-if="activeInfoData.activityIntroduceMode == 1" label="活动介绍文案:" prop="activityIntroduceDetail">
label="活动介绍文案:"
prop="activityIntroduceDetail"
>
<div class="w-400"> <div class="w-400">
<tinymce-edit <tinymce-edit :disabledEdit="$route.query.editFlag ? true : false" ref="tinymceWrap" :bodyHtml="activeInfoData.activityIntroduceDetail" @changeEditor="changeEditor"></tinymce-edit>
:disabledEdit="$route.query.editFlag ? true : false"
ref="tinymceWrap"
:bodyHtml="activeInfoData.activityIntroduceDetail"
@changeEditor="changeEditor"
></tinymce-edit>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item v-if="activeInfoData.activityIntroduceMode == 2" label="活动介绍文案:" prop="activityIntroduceDetail">
label="活动介绍文案:" <el-select size="large" v-model="activeInfoData.templetePage" @change="changePage" placeholder="请选择自定义页面">
prop="activityIntroduceDetail" <el-option v-for="item in markingList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
>
<el-select
size="large"
v-model="activeInfoData.templetePage"
placeholder="请选择自定义页面"
>
<el-option
v-for="item in markingList"
:key="item.value"
:label="item.label"
:value="item.value"
> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item class="m-t-50"> <el-form-item class="m-t-50">
<el-button <el-button type="primary" @click="submitBack">上一步</el-button>
type="primary" <el-button type="primary" @click="submitForm('centerForm')">下一步</el-button>
@click="submitBack"
>上一步</el-button>
<el-button
type="primary"
@click="submitForm('centerForm')"
>下一步</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="form-preview"> <div class="form-preview">
...@@ -116,26 +62,18 @@ import centerConfig from '@/components/active-config/center-config.vue'; ...@@ -116,26 +62,18 @@ import centerConfig from '@/components/active-config/center-config.vue';
<div class="form-preview-inner"> <div class="form-preview-inner">
<div class="form-preview-body"> <div class="form-preview-body">
<div class="form-preview-body_top"> <div class="form-preview-body_top">
<img <img :src="activeInfoData.headUrl" alt="" />
:src="activeInfoData.headUrl"
alt=""
/>
</div> </div>
<div class="form-preview-body_middle border-box"> <div class="form-preview-body_middle border-box">
<div class="form-preview-body_content"> <div class="form-preview-body_content">
<div <div class="form-preview-btn" :style="{ background: activeInfoData.shareBackColor, color: activeInfoData.shareFontColor }">{{ activeInfoData.shareButtonFont }}</div>
class="form-preview-btn"
:style="{'background': activeInfoData.shareBackColor,'color': activeInfoData.shareFontColor}"
>{{activeInfoData.shareButtonFont}}</div>
</div> </div>
</div> </div>
<div class="form-preview-body_rules border-box"> <div class="form-preview-body_rules border-box">
<div class="rules-title">活动规则</div> <div class="rules-title">活动规则</div>
<div <div v-if="activeInfoData.activityIntroduceMode == 1" class="rules-body" v-html="activeInfoData.activityIntroduceDetail"></div>
class="rules-body" <!-- v-if="activeInfoData.activityIntroduceMode == 2" -->
v-html="activeInfoData.activityIntroduceDetail" <app-template v-if="activeInfoData.activityIntroduceMode == 2" :templateData="templateData"></app-template>
></div>
</div> </div>
</div> </div>
</div> </div>
...@@ -147,17 +85,21 @@ import centerConfig from '@/components/active-config/center-config.vue'; ...@@ -147,17 +85,21 @@ import centerConfig from '@/components/active-config/center-config.vue';
<script> <script>
import limitInput from '@/components/limit-input.vue'; import limitInput from '@/components/limit-input.vue';
import singleUpload from '@/components/single-upload.vue'; import singleUpload from '@/components/single-upload.vue';
import tinymceEdit from '@/components/tinymce-edit';
import appTemplate from '@/components/active-config/app-template.vue';
// import showMsg from '@/common/js/showmsg'; // import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error'; import errMsg from '@/common/js/error';
import tinymceEdit from '@/components/tinymce-edit';
import { getRequest } from '@/api/api'; import { getRequest, postRequest } from '@/api/api';
export default { export default {
name: 'center-config', name: 'center-config',
props: {}, props: {},
components: { components: {
singleUpload, singleUpload,
limitInput, limitInput,
tinymceEdit tinymceEdit,
appTemplate
}, },
data() { data() {
return { return {
...@@ -174,7 +116,8 @@ export default { ...@@ -174,7 +116,8 @@ export default {
rules: { rules: {
headUrl: [{ required: true, message: '请上传头图上', trigger: 'blur' }], headUrl: [{ required: true, message: '请上传头图上', trigger: 'blur' }],
shareButtonFont: [{ required: true, message: '请输入分享按钮文案', trigger: 'blur' }] shareButtonFont: [{ required: true, message: '请输入分享按钮文案', trigger: 'blur' }]
} },
templateData: []
}; };
}, },
methods: { methods: {
...@@ -184,10 +127,43 @@ export default { ...@@ -184,10 +127,43 @@ export default {
changeMode(e) { changeMode(e) {
const that = this; const that = this;
if (e == 2) { if (e == 2) {
// 获取自定义页面
that.getMarkingList(); that.getMarkingList();
} }
}, },
/** /**
* 选择自定义页面
*/
changePage(e) {
const that = this;
let para = { pageId: e };
getRequest('/api-admin/page-detail?pageId=ff808081644fea4201644fedaf3e0040', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 0) {
if (resData.result.value && resData.result.value.length) {
resData.result.value.forEach(ele => {
if (ele.key == 'A3') {
ele.lineSetting = JSON.parse(ele.lineSetting);
}
});
}
that.templateData = JSON.parse(JSON.stringify(resData.result.value)) || [];
if (that.activeInfoData.activityIntroduceMode == 2) {
that.activeInfoData.activityIntroduceDetail = JSON.parse(JSON.stringify(resData.result.value));
}
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
/**
* 富文本输入回调 * 富文本输入回调
* *
*/ */
...@@ -229,15 +205,73 @@ export default { ...@@ -229,15 +205,73 @@ export default {
*/ */
submitForm(formName) { submitForm(formName) {
const that = this; const that = this;
that.$emit('submitNext', that.activeInfoData);
that.$store.dispatch('saveCenterInfo', that.activeInfoData);
that.$refs[formName].validate(valid => { that.$refs[formName].validate(valid => {
if (valid) { if (valid) {
that.$emit('submitNext', that.activeInfoData); that.postSave();
that.$store.dispatch('saveCenterInfo', that.activeInfoData);
} else { } else {
return false; return false;
} }
}); });
},
postSave() {
const that = this;
let para = {
activityId: that.activeInfoData.activityId,
headUrl: that.activeInfoData.headUrl,
shareBackColor: that.activeInfoData.shareBackColor,
shareFontColor: that.activeInfoData.shareFontColor,
shareButtonFont: that.activeInfoData.shareButtonFont,
activityIntroduceMode: that.activeInfoData.activityIntroduceMode,
activityIntroduceDetail: that.activeInfoData.activityIntroduceDetail
};
postRequest('/sharing-core-web/edit-activity-center', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.$emit('submitNext', that.activeInfoData);
that.$store.dispatch('saveCenterInfo', that.activeInfoData);
return;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
/**
* 获取活动中心数据
*/
getData(acitivityId) {
const that = this;
let para = {
acitivityId: acitivityId || that.$route.query.acitivityId
};
getRequest('/sharing-core-web/get-activity-center', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.activeInfoData = resData.result;
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
} }
},
mounted() {
const that = this;
that.getData();
that.changePage();
} }
}; };
</script> </script>
...@@ -312,6 +346,10 @@ export default { ...@@ -312,6 +346,10 @@ export default {
&_top { &_top {
width: 100%; width: 100%;
height: 90px; height: 90px;
overflow: hidden;
img {
width: 100%;
}
} }
&_middle { &_middle {
position: relative; position: relative;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-18 10:37:02 * @Date: 2019-11-18 10:37:02
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-18 17:11:30 * @LastEditTime: 2019-11-21 19:53:37
--> -->
<!-- <!--
<poster-config @submitBack="submitBack" @submitNext="submitNext"></poster-config> <poster-config @submitBack="submitBack" @submitNext="submitNext"></poster-config>
...@@ -14,89 +14,130 @@ import posterConfig from '@/components/active-config/poster-config.vue'; ...@@ -14,89 +14,130 @@ import posterConfig from '@/components/active-config/poster-config.vue';
<template> <template>
<div class="poster-config-content"> <div class="poster-config-content">
<div class="config-title font-14 color-303133">分享海报配置</div> <div class="config-title font-14 color-303133">分享海报配置</div>
<el-form <div role="alert" class="el-alert el-alert--info">
label-width="114px" <i class="el-alert__icon el-icon-info font-12 color-1890ff"></i>
:model="activeInfoData" <div class="el-alert__content">
ref="posterForm" <span class="el-alert__title color-606266 font-14 font-w-400"
:rules="rules" >1. 当前活动的转化路径以小程序作为受邀人入口,邀请人可在活动中心一键保存小程序带二维码海报以实现朋友圈转发。 <br />
> 2. 请对分享海报进行配置,一张生动而有感染力的活动海报,是活动成败的关键!。</span
<el-form-item >
label="活动名称:" </div>
prop="activeName" </div>
> <div class="form-wrap flex">
<limitInput <el-form label-width="114px" :model="activeInfoData" ref="posterForm" :rules="rules">
:inputWidth="350" <el-form-item label="模板选择:" prop="">
:disflag="$route.query.interfaceId ? true : false" <div class="template-body">
:inputValue.sync="activeInfoData.activeName" <ul class="flex">
:holder="'请输入活动名称'" <li :class="['border-box ', activeInfoData.templateType == 1 ? 'select-li' : '']" @click="selectTemplate(1)">
:getByType="'word'" <img src="../../assets/images/templete-null.png" alt="" />
:maxLength="30" <div class="common-cell-check">
> </limitInput> <div class="common-cell-triangle">
</el-form-item> <div class="common-cell-outer">
<el-form-item <i class="el-icon-upload-success el-icon-check"></i>
label="活动有效期:" </div>
prop="dateRange" </div>
> </div>
<el-date-picker </li>
class="m-l-10" <li :class="['m-l-10 border-box flex flex-align-center', activeInfoData.templateType == 2 ? 'select-li' : '']" @click="selectTemplate(2)">
prefix-icon="el-icon-time" <img src="../../assets/images/templete-null.png" alt="" />
v-model="activeInfoData.dateRange" <div class="common-cell-check">
@change="changeDate" <div class="common-cell-triangle">
:editable="false" <div class="common-cell-outer">
:value-format="'yyyy-MM-dd'" <i class="el-icon-upload-success el-icon-check"></i>
type="daterange" </div>
align="right" </div>
unlink-panels </div>
range-separator="至" </li>
start-placeholder="开始日期" <li :class="['m-l-10 border-box flex flex-align-end', activeInfoData.templateType == 3 ? 'select-li' : '']" @click="selectTemplate(3)">
end-placeholder="结束日期" <img src="../../assets/images/templete-null.png" alt="" />
> </el-date-picker> <div class="common-cell-check">
</el-form-item> <div class="common-cell-triangle">
<el-form-item class="m-t-50"> <div class="common-cell-outer">
<el-button <i class="el-icon-upload-success el-icon-check"></i>
type="primary" </div>
@click="submitBack" </div>
>上一步</el-button> </div>
<el-button </li>
type="primary" <li :class="['m-l-10 border-box flex flex-align-end flex-pack-end', activeInfoData.templateType == 4 ? 'select-li' : '']" @click="selectTemplate(4)">
@click="submitForm('posterForm')" <img class="w-24" src="../../assets/images/templete-null.png" alt="" />
>下一步</el-button> <div class="common-cell-check">
</el-form-item> <div class="common-cell-triangle">
</el-form> <div class="common-cell-outer">
<i class="el-icon-upload-success el-icon-check"></i>
</div>
</div>
</div>
</li>
</ul>
</div>
</el-form-item>
<el-form-item label="海报上传:" prop="palyBillUrl">
<post-upload v-model="activeInfoData.palyBillUrl"> </post-upload>
</el-form-item>
<el-form-item label="二维码配置:" prop="">
<div class="item-bg border-box">
<div class="flex">
<span class="color-wrap flex flex-pack-center flex-space-between border-box">前景色<el-color-picker v-model="activeInfoData.qrcodeFrontColor" @change="changeFront"></el-color-picker></span><span class="color-wrap flex flex-space-between flex-pack-center border-box">背景色<el-color-picker v-model="activeInfoData.qrcodeBackColor" @change="changeBg"></el-color-picker></span>
<span>内边距</span>
<el-input-number class="w-90 m-l-20" v-model="activeInfoData.qrcodePadding" controls-position="right" @change="changePadding" :min="1" :max="60"></el-input-number>
</div>
</div>
</el-form-item>
<el-form-item class="m-t-50">
<el-button type="primary" @click="submitBack">上一步</el-button>
<el-button type="primary" @click="submitForm('posterForm')">下一步</el-button>
</el-form-item>
</el-form>
<div class="form-preview">
<div class="form-preview-top font-14 color-303133">效果预览</div>
<div class="form-preview-body" :style="{ background: `url(${activeInfoData.palyBillUrl}) no-repeat`, 'background-size': '100%' }">
<ul>
<li :class="['border-box', activeInfoData.templateType == 2 ? 'flex flex-align-center' : activeInfoData.templateType == 3 ? 'flex flex-align-end' : activeInfoData.templateType == 4 ? 'flex flex-align-end flex-pack-end li-50' : '']">
<!-- <img src="../../assets/images/templete-null.png" alt="" /> -->
<vue-qr text="123456" :margin="activeInfoData.qrcodePadding" :correctLevel="3" :colorDark="activeInfoData.qrcodeFrontColor" :backgroundColor="activeInfoData.qrcodeBackColor" :logoSrc="''" :size="100"></vue-qr>
</li>
</ul>
</div>
</div>
</div>
</div> </div>
</template> </template>
<script> <script>
import limitInput from '@/components/limit-input.vue'; import postUpload from '@/components/post-upload.vue';
import VueQr from 'vue-qr';
// import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error';
import { getRequest } from '@/api/api';
export default { export default {
name: 'poster-config', name: 'poster-config',
props: { props: {},
},
components: { components: {
limitInput postUpload,
VueQr
}, },
data() { data() {
return { return {
activeInfoData: { activeInfoData: {
activeName: '', palyBillUrl: '',
dateRange: [] templateType: '1',
qrcodeBackColor: '#ffffff',
qrcodeFrontColor: '#000000',
qrcodePadding: '1',
activityId: ''
}, },
rules: { rules: {
activeName: [{ required: true, message: '请输入活动名称', trigger: 'blur' }], palyBillUrl: [{ required: true, message: '请输入活动名称', trigger: 'blur' }]
dateRange: [{ required: true, message: '请选择活动有效期', trigger: 'blur' }]
} }
} };
}, },
methods: { methods: {
/** /**
* 日期 * 日期
*/ */
changeDate(e) { selectTemplate(num) {
const that = this; const that = this;
if (!e) { that.activeInfoData.templateType = num;
that.activeInfoData.dateRange = [];
}
}, },
/** /**
* 上一步 * 上一步
...@@ -118,11 +159,45 @@ export default { ...@@ -118,11 +159,45 @@ export default {
return false; return false;
} }
}); });
},
/**
* 获取活动中心数据
*/
getData(acitivityId) {
const that = this;
let para = {
acitivityId: acitivityId || that.$route.query.acitivityId
};
getRequest('/sharing-core-web/get-activity-share', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.activeInfoData = resData.result;
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
} }
}, },
} mounted() {
const that = this;
that.getData();
}
};
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.w-90 {
width: 90px;
}
.m-l-20 {
margin-left: 20px;
}
.poster-config-content { .poster-config-content {
padding: 48px 0 0 0; padding: 48px 0 0 0;
.config-title { .config-title {
...@@ -137,5 +212,152 @@ export default { ...@@ -137,5 +212,152 @@ export default {
color: #606266; color: #606266;
} }
} }
.el-alert--info {
width: 1130px;
margin-bottom: 17px;
background: #e6f7ff;
border: 1px solid #91d5ff;
.el-alert__icon {
padding-top: 5px;
align-self: flex-start;
}
.el-alert__content {
line-height: 22px;
padding-right: 0;
}
}
.form-wrap {
.el-form {
width: 640px;
max-width: 640px;
.color-wrap {
width: 91px;
height: 32px;
padding-left: 10px;
border-radius: 2px;
border: 1px solid rgba(196, 198, 207, 1);
font-size: 12px;
& + .color-wrap {
margin-left: 20px;
}
.el-color-picker {
/deep/ .el-color-picker__trigger {
border: none;
}
}
}
.template-body {
.m-l-10 {
margin-left: 10px;
}
li {
position: relative;
width: 65px;
height: 116px;
padding: 12px;
background: rgba(255, 255, 255, 1);
border-radius: 4px;
border: 1px solid rgba(220, 223, 230, 1);
cursor: pointer;
img {
width: 40px;
&.w-24 {
width: 24px;
}
}
.common-cell-check {
display: none;
position: absolute;
right: 0;
bottom: 0;
width: 22px;
height: 22px;
z-index: 1;
.common-cell-triangle {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
.common-cell-outer {
position: absolute;
right: -16px;
bottom: -6px;
width: 32px;
height: 20px;
background: #1890ff;
text-align: center;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
transform: rotate(-45deg);
i {
position: absolute;
top: 0px;
left: 7px;
font-size: 12px;
color: #fff;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
transform: rotate(45deg);
}
}
}
}
&.select-li {
border: 1px solid rgba(24, 144, 255, 1);
.common-cell-check {
display: block;
.common-cell-triangle {
border-bottom-right-radius: 4px;
}
}
}
}
}
.item-bg {
width: 401px;
height: 73px;
padding: 20px;
background: rgba(243, 246, 249, 1);
}
}
.form-preview {
position: relative;
width: 350px;
.form-preview-top {
line-height: 20px;
margin-bottom: 18px;
font-weight: 600;
}
.form-preview-body {
position: relative;
width: 180px;
height: 322px;
background: rgba(245, 247, 250, 1);
border-radius: 4px;
border: 1px solid rgba(220, 223, 230, 1);
background-repeat: no-repeat;
background-size: 100%;
ul {
width: 100%;
height: 100%;
}
li {
width: 100%;
height: 100%;
padding: 30px 33px;
img {
width: 110px;
}
&.li-50 {
img {
width: 50px;
}
}
}
}
}
}
} }
</style> </style>
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-18 10:37:02 * @Date: 2019-11-18 10:37:02
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-18 17:17:10 * @LastEditTime: 2019-11-21 12:53:10
--> -->
<!-- <!--
<reward-config @submitBack="submitBack" @submitNext="submitNext"></reward-config> <reward-config @submitBack="submitBack" @submitNext="submitNext"></reward-config>
...@@ -68,6 +68,10 @@ import rewardConfig from '@/components/active-config/reward-config.vue'; ...@@ -68,6 +68,10 @@ import rewardConfig from '@/components/active-config/reward-config.vue';
<script> <script>
import limitInput from '@/components/limit-input.vue'; import limitInput from '@/components/limit-input.vue';
import { _debounce } from '@/common/js/public'; import { _debounce } from '@/common/js/public';
// import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error';
import { getRequest } from '@/api/api';
export default { export default {
name: 'reward-config', name: 'reward-config',
props: { props: {
...@@ -119,7 +123,35 @@ export default { ...@@ -119,7 +123,35 @@ export default {
} }
}); });
},500), },500),
} /**
* 获取活动中心数据
*/
getData(acitivityId) {
const that = this;
let para = {
acitivityId: acitivityId || that.$route.query.acitivityId
};
getRequest('/sharing-core-web/get-activity-award', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.activeInfoData = resData.result;
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
},
mounted() {
const that = this;
that.getData();
},
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-13 16:37:02 * @Date: 2019-11-13 16:37:02
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-20 14:18:23 * @LastEditTime: 2019-11-21 11:25:14
--> -->
<!-- <!--
<active-select></active-select> <active-select></active-select>
...@@ -17,10 +17,17 @@ import activeSelect from '@/components/active/active-select.vue'; ...@@ -17,10 +17,17 @@ import activeSelect from '@/components/active/active-select.vue';
<div class="active-select-title font-22 color-303133 font-w-600">请选择您的活动目的</div> <div class="active-select-title font-22 color-303133 font-w-600">请选择您的活动目的</div>
<ul class="flex flex-space-between"> <ul class="flex flex-space-between">
<template v-for="(item, index) in firstData"> <template v-for="(item, index) in firstData">
<li :class="['li-cell flex-1 ', firstGoalId == item.goalId ? 'li-cell-active' : '']" :key="index + 'first'" @click="selectFirst(item)"> <li
:class="['li-cell flex-1 ', firstGoal.goalId == item.goalId ? 'li-cell-active' : '']"
:key="index + 'first'"
@click="selectFirst(item)"
>
<div class="li-cell-inner flex "> <div class="li-cell-inner flex ">
<div class="li-cell-left flex flex-align-center flex-pack-center"> <div class="li-cell-left flex flex-align-center flex-pack-center">
<img :src="item.iconUrl" alt="" /> <img
:src="item.iconUrl"
alt=""
/>
</div> </div>
<div class="li-cell-right border-box flex flex-column "> <div class="li-cell-right border-box flex flex-column ">
<div class="li-cell-active_name flex flex-align-center font-18 color-303133">{{ item.goalName }}</div> <div class="li-cell-active_name flex flex-align-center font-18 color-303133">{{ item.goalName }}</div>
...@@ -37,86 +44,126 @@ import activeSelect from '@/components/active/active-select.vue'; ...@@ -37,86 +44,126 @@ import activeSelect from '@/components/active/active-select.vue';
</li> </li>
</template> </template>
</ul> </ul>
<div class="active-select-next"></div> <div v-if="!!firstGoal.goalId">
<div class="active-select-title font-22 color-303133 font-w-600">请进一步明确活动目的</div> <div class="active-select-next"></div>
<ul class="flex flex-pack-center m-t-48"> <div class="active-select-title font-22 color-303133 font-w-600">请进一步明确活动目的</div>
<template v-for="(item, index) in secondData"> <ul class="flex flex-pack-center m-t-48">
<li :class="['li-cell li-second-cell flex-1 ', secondGoalId == item.goalId ? 'li-second-active' : '']" :key="index + 'second'" @click="selectSecond(item)"> <template v-for="(item, index) in secondData">
<div class="li-cell-inner"> <li
<div class="li-cell-top border-box flex flex-align-center flex-pack-center"> :class="['li-cell li-second-cell flex-1 ', secondGoal.goalId == item.goalId ? 'li-second-active' : '']"
<img src="" alt="" /><span class="p-l-15 font-18 color-303133">{{ item.goalName }}</span> :key="index + 'second'"
</div> @click="selectSecond(item)"
<div class="li-cell-bottom border-box"> >
<div class="li-cell-scene"> <div class="li-cell-inner">
<div class="li-cell-scene_title font-14 color-303133">适用场景</div> <div class="li-cell-top border-box flex flex-align-center flex-pack-center">
<div class="li-cell-scene_text font-14 color-606266">{{ item.describe['适用场景'] }}</div> <img
src=""
alt=""
/><span class="p-l-15 font-18 color-303133">{{ item.goalName }}</span>
</div> </div>
<div class="li-cell-quality"> <div class="li-cell-bottom border-box">
<div class="li-cell-quality_title font-14 color-303133">优劣分析</div> <div class="li-cell-scene">
<div class="li-cell-quality_text font-14 color-606266">{{ item.describe['优劣分析'] }}</div> <div class="li-cell-scene_title font-14 color-303133">适用场景</div>
<div class="li-cell-scene_text font-14 color-606266">{{ item.describe['适用场景'] }}</div>
</div>
<div class="li-cell-quality">
<div class="li-cell-quality_title font-14 color-303133">优劣分析</div>
<div class="li-cell-quality_text font-14 color-606266">{{ item.describe['优劣分析'] }}</div>
</div>
</div> </div>
</div> </div>
</div> <div class="common-cell-check">
<div class="common-cell-check"> <div class="common-cell-triangle">
<div class="common-cell-triangle"> <div class="common-cell-outer">
<div class="common-cell-outer"> <i class="el-icon-upload-success el-icon-check"></i>
<i class="el-icon-upload-success el-icon-check"></i> </div>
</div> </div>
</div> </div>
</div> </li>
</li> </template>
</template> </ul>
</ul> </div>
<div class="active-select-next"></div> <div v-if="!!secondGoal.goalId">
<div class="active-select-title font-22 color-303133 font-w-600 m-b-0">请配置受邀人的转化路径</div> <div class="active-select-next"></div>
<div class="active-select-subtitle font-14 color-606266">基于您的活动设计期望,配置受邀人的转化路径(即受邀人需要经历的交互步骤)。系统会根据您所选择的转化路径,自动配置服务号关注后回复、认证后卡券投放等营销脚本。您只需要根据自身需求选择路径,并选择相关的营销活动页、游戏计划或卡券。</div> <div class="active-select-title font-22 color-303133 font-w-600 m-b-0">请配置受邀人的转化路径</div>
<ul class="flex flex-pack-center m-t-50"> <div class="active-select-subtitle font-14 color-606266">基于您的活动设计期望,配置受邀人的转化路径(即受邀人需要经历的交互步骤)。系统会根据您所选择的转化路径,自动配置服务号关注后回复、认证后卡券投放等营销脚本。您只需要根据自身需求选择路径,并选择相关的营销活动页、游戏计划或卡券。</div>
<template v-for="(item, index) in thirdData"> <ul class="flex flex-pack-center m-t-50">
<li :class="['li-cell li-third-cell flex-1 ', item.check ? 'li-third-active' : '', 'li-third-active-disable']" :key="index + 'third'" @click="selectThird(item)"> <template v-for="(item, index) in thirdData">
<div class="li-cell-inner border-box"> <li
<div class="li-cell-path_img flex flex-pack-center flex-pack--center"> :class="['li-cell li-third-cell flex-1 ', item.check ? 'li-third-active' : '', item.mustFlag ?'li-third-active-disable':'']"
<img src="" alt="" /> :key="index + 'third'"
</div> @click="selectThird(item)"
<div class="li-cell-path_title font-16 color-303133 text-center">{{ item.name }}</div> >
<div class="li-cell-path_text font-14 color-606266">{{ item.describe }}</div> <div class="li-cell-inner border-box">
</div> <div class="li-cell-path_img flex flex-pack-center flex-pack--center">
<div class="common-cell-check"> <img
<div class="common-cell-triangle"> src=""
<div class="common-cell-outer"> alt=""
<i class="el-icon-upload-success el-icon-check"></i> />
</div> </div>
<div class="li-cell-path_title font-16 color-303133 text-center">{{ item.name }}</div>
<div class="li-cell-path_text font-14 color-606266">{{ item.describe }}</div>
</div> </div>
</div> <div class="common-cell-check">
</li> <div class="common-cell-triangle">
</template> <div class="common-cell-outer">
</ul> <i class="el-icon-upload-success el-icon-check"></i>
<div class="active-select-next"></div> </div>
<div class="active-select-title font-22 color-303133 font-w-600 m-b-0">活动创建前准备工作</div> </div>
<div class="active-select-subtitle font-14 color-606266">根据您配置的转化路径,请确保完成以下工作,否则活动无法被正常执行。</div>
<ul class="flex flex-pack-center m-t-50">
<template v-for="(item, index) in fourData">
<li class="li-four-cell flex-1 " :key="index + 'four'">
<div class="li-cell-inner border-box">
<div class="li-cell-title font-18 color-303133 font-w-600">{{ item.name }}</div>
<div class="li-cell-subtitle font-14 color-606266">{{ item.describe }}</div>
<div class="li-cell-tip font-14 color-303133">如果您还没有创建活动营销页,请立即前往创建。</div>
<div class="li-cell-select">
<el-select size="large" v-model="value" :placeholder="item.placeholder">
<el-option v-for="item in markingList" :key="item.value" :label="item.label" :value="item.value"> </el-option>
</el-select>
</div> </div>
<div class="li-cell-seperator">OR</div> </li>
<div class="li-cell-btn"> </template>
<el-button type="primary" plain @click="toRedirectPage(item)">立即前往创建</el-button> </ul>
</div>
<div>
<div class="active-select-next"></div>
<div class="active-select-title font-22 color-303133 font-w-600 m-b-0">活动创建前准备工作</div>
<div class="active-select-subtitle font-14 color-606266">根据您配置的转化路径,请确保完成以下工作,否则活动无法被正常执行。</div>
<ul class="flex flex-pack-center m-t-50">
<template v-for="(item, index) in fourData">
<li
class="li-four-cell flex-1 "
:key="index + 'four'"
>
<div class="li-cell-inner border-box">
<div class="li-cell-title font-18 color-303133 font-w-600">{{ item.name }}</div>
<div class="li-cell-subtitle font-14 color-606266">{{ item.describe }}</div>
<div class="li-cell-tip font-14 color-303133">如果您还没有创建活动营销页,请立即前往创建。</div>
<div class="li-cell-select">
<el-select
size="large"
v-model="value"
:placeholder="item.placeholder"
>
<el-option
v-for="item in markingList"
:key="item.value"
:label="item.label"
:value="item.value"
> </el-option>
</el-select>
</div>
<div class="li-cell-seperator">OR</div>
<div class="li-cell-btn">
<el-button
type="primary"
plain
@click="toRedirectPage(item)"
>立即前往创建</el-button>
</div>
</div> </div>
</div> </li>
</li> </template>
</template> </ul>
</ul> </div>
<div class="to-active-config"> <div class="to-active-config">
<div class="to-active-tip font-14 color-606266">确认完成了所有前期准备工作,即可前往活动配置。</div> <div class="to-active-tip font-14 color-606266">确认完成了所有前期准备工作,即可前往活动配置。</div>
<div class="to-active-btn"> <div class="to-active-btn">
<el-button type="primary" @click="toCreate">前往活动配置<i class="el-icon-right"></i></el-button> <el-button
type="primary"
@click="toCreate"
>前往活动配置<i class="el-icon-right"></i></el-button>
</div> </div>
</div> </div>
</div> </div>
...@@ -129,11 +176,12 @@ export default { ...@@ -129,11 +176,12 @@ export default {
name: 'active-select', name: 'active-select',
data() { data() {
return { return {
firstGoalId: '', firstGoal: '',
firstData: [ firstData: [
{ {
goalId: 1, goalId: 1,
iconUrl: '', iconUrl: '',
selectedIconUrl: '',
goalName: '品牌传播', goalName: '品牌传播',
describe: '主要以推广品牌服务号和品牌会员为目的,旨在和更多潜在消费者或老客加强品牌互动。', describe: '主要以推广品牌服务号和品牌会员为目的,旨在和更多潜在消费者或老客加强品牌互动。',
check: false check: false
...@@ -141,6 +189,7 @@ export default { ...@@ -141,6 +189,7 @@ export default {
{ {
goalId: 2, goalId: 2,
iconUrl: '', iconUrl: '',
selectedIconUrl: '',
goalName: '活动宣传', goalName: '活动宣传',
describe: '有明确的活动主题,以提升活动的曝光范围和强度为核心目的,让更多受众能够了解和参与活动。', describe: '有明确的活动主题,以提升活动的曝光范围和强度为核心目的,让更多受众能够了解和参与活动。',
check: false check: false
...@@ -148,15 +197,17 @@ export default { ...@@ -148,15 +197,17 @@ export default {
{ {
goalId: 3, goalId: 3,
iconUrl: '', iconUrl: '',
selectedIconUrl: '',
goalName: '分销推广', goalName: '分销推广',
describe: '以产生成交转化作为活动的最终目的,通过分销(分享裂变)的方式,用存量老客带动新客,从而赢得销售增量。', describe: '以产生成交转化作为活动的最终目的,通过分销(分享裂变)的方式,用存量老客带动新客,从而赢得销售增量。',
check: false check: false
} }
], ],
secondGoalId: '', secondGoal: '',
secondData: [ secondData: [
{ {
goalId: 1, goalId: 1,
selectedIconUrl: '',
iconUrl: '', iconUrl: '',
goalName: '活动曝光', goalName: '活动曝光',
describe: { 适用场景: '针对线上营销且在线上(微信商城)完成消费的场景,即常规意义上的分销模式。', 优劣分析: '成交更便捷,转化路径通畅,但对尚未建立足够品牌认知的客户而言,微信商城的信赖度略显不足。' }, describe: { 适用场景: '针对线上营销且在线上(微信商城)完成消费的场景,即常规意义上的分销模式。', 优劣分析: '成交更便捷,转化路径通畅,但对尚未建立足够品牌认知的客户而言,微信商城的信赖度略显不足。' },
...@@ -165,10 +216,16 @@ export default { ...@@ -165,10 +216,16 @@ export default {
], ],
thirdData: [ thirdData: [
{ {
id: 1, goalId: 1,
name: '关注服务号', iconUrl: '',
selectedIconUrl: '',
transName: '关注服务号',
describe: '受邀人通过带服务号二维码的海报,关注并进入服务号对框框。', describe: '受邀人通过带服务号二维码的海报,关注并进入服务号对框框。',
check: false check: false,
transId: '', // 链路值
selectOne: 0, //可选
mustFlag: 1, // 必选不可取消
display: 0 // 显示
} }
], ],
fourData: [ fourData: [
...@@ -206,20 +263,55 @@ export default { ...@@ -206,20 +263,55 @@ export default {
*/ */
selectFirst(item) { selectFirst(item) {
const that = this; const that = this;
that.firstGoalId = item.goalId; that.firstGoal = item;
that.secondData = item.children;
}, },
/** /**
* 选择二级 * 选择二级
*/ */
selectSecond(item) { selectSecond(item) {
const that = this; const that = this;
that.secondGoalId = item.goalId; that.secondGoal = item;
that.getThirdData(item.goalId);
},
/**
* 获取三级
*/
getThirdData(goalId) {
const that = this;
let para = {goalId: goalId};
getRequest('/sharing-core-web/list-activity-dict-trans', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
if (resData.result&&resData.result.length) {
resData.result.forEach(ele => {
ele.check = false;
if (ele.mustFlag) {
ele.check = true;
}
})
}
that.thirdData = resData.result || [];
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
}, },
/** /**
* 选择三级 * 选择三级
*/ */
selectThird(item) { selectThird(item) {
// const that = this; // const that = this;
if (item.mustFlag) {
return false;
}
item.check = item.check ? false : true; item.check = item.check ? false : true;
}, },
/** /**
...@@ -360,7 +452,11 @@ export default { ...@@ -360,7 +452,11 @@ export default {
}); });
}); });
} }
} },
mounted() {
const that = this;
that.getTwoList();
},
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
...@@ -4,10 +4,10 @@ ...@@ -4,10 +4,10 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-13 16:37:02 * @Date: 2019-11-13 16:37:02
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-20 10:09:01 * @LastEditTime: 2019-11-21 10:46:18
--> -->
<!-- <!--
<data-statistics-child :barChartData="barChartData"></data-statistics-child> <data-statistics-child :activeData="activeData" :barChartData="barChartData"></data-statistics-child>
import dataStatisticsChild from '@/components/active/data-statistics-child.vue'; import dataStatisticsChild from '@/components/active/data-statistics-child.vue';
--> -->
...@@ -18,27 +18,36 @@ import dataStatisticsChild from '@/components/active/data-statistics-child.vue'; ...@@ -18,27 +18,36 @@ import dataStatisticsChild from '@/components/active/data-statistics-child.vue';
<div class="data-statistics-left"> <div class="data-statistics-left">
<ul class="flex flex-column flex-pack-center flex-align-center"> <ul class="flex flex-column flex-pack-center flex-align-center">
<li class="flex-1 flex flex-pack-center flex-align-center"> <li class="flex-1 flex flex-pack-center flex-align-center">
<div class="data-statistics-icon"><img src="../../assets/images/bgl.png" alt="" /></div> <div class="data-statistics-icon"><img
src="../../assets/images/bgl.png"
alt=""
/></div>
<div class="data-statistics-txt flex flex-column"> <div class="data-statistics-txt flex flex-column">
<div class="font-14 color-606266 font-w-400">活动曝光量</div> <div class="font-14 color-606266 font-w-400">活动曝光量</div>
<div class="font-22 color-303133 font-w-600 p-t-10">{{ '287123' | formatThousand }}</div> <div class="font-22 color-303133 font-w-600 p-t-10">{{ activeData.exposure | formatThousand }}</div>
</div> </div>
</li> </li>
<li class="flex-1 flex flex-pack-center flex-align-center"> <li class="flex-1 flex flex-pack-center flex-align-center">
<div class="data-statistics-icon"><img src="../../assets/images/cyrs.png" alt="" /></div> <div class="data-statistics-icon"><img
src="../../assets/images/cyrs.png"
alt=""
/></div>
<div class="data-statistics-txt flex flex-column"> <div class="data-statistics-txt flex flex-column">
<div class="font-14 color-606266 font-w-400">参与人数</div> <div class="font-14 color-606266 font-w-400">参与人数</div>
<div class="font-22 color-303133 font-w-600 p-t-10">{{ '287123' | formatThousand }}</div> <div class="font-22 color-303133 font-w-600 p-t-10">{{ activeData.attend | formatThousand }}</div>
</div> </div>
</li> </li>
<li class="flex-1 flex flex-pack-center flex-align-center"> <li class="flex-1 flex flex-pack-center flex-align-center">
<div class="data-statistics-icon"><img src="../../assets/images/syrs.png" alt="" /></div> <div class="data-statistics-icon"><img
src="../../assets/images/syrs.png"
alt=""
/></div>
<div class="data-statistics-txt flex flex-column"> <div class="data-statistics-txt flex flex-column">
<div class="font-14 color-606266 font-w-400">受邀人数</div> <div class="font-14 color-606266 font-w-400">受邀人数</div>
<div class="font-22 color-303133 font-w-600 p-t-10">{{ 287123 | formatThousand }}</div> <div class="font-22 color-303133 font-w-600 p-t-10">{{ activeData.invited | formatThousand }}</div>
</div> </div>
</li> </li>
</ul> </ul>
...@@ -47,26 +56,38 @@ import dataStatisticsChild from '@/components/active/data-statistics-child.vue'; ...@@ -47,26 +56,38 @@ import dataStatisticsChild from '@/components/active/data-statistics-child.vue';
<div class="data-right-top flex"> <div class="data-right-top flex">
<div class="data-statistics-middle flex-1 border-box m-l-20"> <div class="data-statistics-middle flex-1 border-box m-l-20">
<div class="font-14 color-606266">参与率</div> <div class="font-14 color-606266">参与率</div>
<div class="font-22 color-303133 p-t-5">70%</div> <div :class="['font-22 color-303133 p-t-5 ', activeData.attendRate]">{{ activeData.attendRate }} %</div>
<div class="data-percentage"> <div class="data-percentage">
<div class="data-percentage-inner" :style="{ width: '70%' }"></div> <div
class="data-percentage-inner"
:style="{ width: activeData.attendRate + '%' }"
></div>
</div> </div>
</div> </div>
<div class="data-statistics-right flex-1 border-box m-l-20"> <div class="data-statistics-right flex-1 border-box m-l-20">
<div class="font-14 color-606266">传播系数</div> <div class="font-14 color-606266">传播系数</div>
<div class="font-22 color-303133 p-t-5">4.0</div> <div class="font-22 color-303133 p-t-5">{{ activeData.spread }}</div>
<div class="data-percentage"> <div class="data-percentage">
<template v-for="(child, key) in Math.floor(4.5)"> <template v-for="(child, key) in Math.floor(activeData.spread)">
<i class="iconfont icon-xiaoren color-1890ff" :key="key + 'xrbg'"></i> <i
class="iconfont icon-xiaoren color-1890ff"
:key="key + 'xrbg'"
></i>
</template> </template>
<template v-for="(child, key) in 10 - Math.floor(4.5)"> <template v-for="(child, key) in 10 - Math.floor(activeData.spread)">
<i class="iconfont icon-xiaoren icon-xiaoren-opacity" :key="key + 'xr'"></i> <i
class="iconfont icon-xiaoren icon-xiaoren-opacity"
:key="key + 'xr'"
></i>
</template> </template>
</div> </div>
</div> </div>
</div> </div>
<div class="data-right-bottom"> <div class="data-right-bottom">
<bar-chart :barChartData="barChartData" :charHeight="charHeight"></bar-chart> <bar-chart
:barChartData="barChartData"
:charHeight="charHeight"
></bar-chart>
</div> </div>
<!--<div class="chart-title font-12 color-000 text-center">- 近15天趋势图 -</div>--> <!--<div class="chart-title font-12 color-000 text-center">- 近15天趋势图 -</div>-->
</div> </div>
...@@ -78,6 +99,18 @@ import barChart from '@/components/active/bar-chart.vue'; ...@@ -78,6 +99,18 @@ import barChart from '@/components/active/bar-chart.vue';
export default { export default {
name: 'data-statistics', name: 'data-statistics',
props: { props: {
activeData: {
type: [Object,Array],
default() {
return {
exposure: 0,
attend: 0,
invited: 0,
attendRate: 0,
spread: 0
};
}
},
barChartData: { barChartData: {
type: [Array, Object], type: [Array, Object],
default() { default() {
...@@ -90,10 +123,13 @@ export default { ...@@ -90,10 +123,13 @@ export default {
return { return {
charHeight: '220px' charHeight: '220px'
}; };
} },
/* methods() { /* methods() {
} */ } */
mounted() {
console.log(this.activeData);
}
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
...@@ -18,30 +18,24 @@ import dataStatistics from '@/components/active/data-statistics.vue'; ...@@ -18,30 +18,24 @@ import dataStatistics from '@/components/active/data-statistics.vue';
<div class="data-statistics-left"> <div class="data-statistics-left">
<ul class="flex flex-pack-center flex-align-center"> <ul class="flex flex-pack-center flex-align-center">
<li class="flex-1 flex flex-pack-center flex-align-center"> <li class="flex-1 flex flex-pack-center flex-align-center">
<div class="data-statistics-icon"><img <div class="data-statistics-icon"><img src="" alt="" /></div>
src=""
alt=""
></div>
<div class="data-statistics-txt flex flex-column"> <div class="data-statistics-txt flex flex-column">
<div class="font-14 color-606266">活动曝光量</div> <div class="font-14 color-606266">活动曝光量</div>
<div class="font-22 color-303133 p-t-10"></div> <div class="font-22 color-303133 p-t-10"></div>
</div> </div>
</li> </li>
<li class="flex-1 flex flex-pack-center flex-align-center"> <li class="flex-1 flex flex-pack-center flex-align-center">
<div class="data-statistics-icon"><img <div class="data-statistics-icon"><img src="" alt="" /></div>
src=""
alt=""
></div>
<div class="data-statistics-txt flex flex-column"> <div class="data-statistics-txt flex flex-column">
<div class="font-14 color-606266">参与人数</div> <div class="font-14 color-606266">参与人数</div>
<div class="font-22 color-303133 p-t-10">287,123</div> <div class="font-22 color-303133 p-t-10">287,123</div>
</div> </div>
</li> </li>
<li class="flex-1 flex flex-pack-center flex-align-center"> <li class="flex-1 flex flex-pack-center flex-align-center">
<div class="data-statistics-icon"><img <div class="data-statistics-icon"><img src="" alt="" /></div>
src=""
alt=""
></div>
<div class="data-statistics-txt flex flex-column"> <div class="data-statistics-txt flex flex-column">
<div class="font-14 color-606266">受邀人数</div> <div class="font-14 color-606266">受邀人数</div>
<div class="font-22 color-303133 p-t-10"></div> <div class="font-22 color-303133 p-t-10"></div>
...@@ -53,10 +47,7 @@ import dataStatistics from '@/components/active/data-statistics.vue'; ...@@ -53,10 +47,7 @@ import dataStatistics from '@/components/active/data-statistics.vue';
<div class="font-14 color-606266">参与率</div> <div class="font-14 color-606266">参与率</div>
<div class="font-22 color-303133 p-t-5">70%</div> <div class="font-22 color-303133 p-t-5">70%</div>
<div class="data-percentage"> <div class="data-percentage">
<div <div class="data-percentage-inner" :style="{ width: '70%' }"></div>
class="data-percentage-inner"
:style="{'width': '70%'}"
></div>
</div> </div>
</div> </div>
<div class="data-statistics-right border-box m-l-20"> <div class="data-statistics-right border-box m-l-20">
...@@ -70,19 +61,25 @@ import dataStatistics from '@/components/active/data-statistics.vue'; ...@@ -70,19 +61,25 @@ import dataStatistics from '@/components/active/data-statistics.vue';
export default { export default {
name: 'data-statistics', name: 'data-statistics',
props: { props: {
activeData: {
type: [Array, Object],
default() {
return {};
}
},
barChartData: { barChartData: {
type: [Array, Object], type: [Array, Object],
default() { default() {
return {} return {};
} }
} }
}, },
components: { }, components: {},
data() { data() {
this.chartSettings = { this.chartSettings = {
showLine: ['传播系数'] showLine: ['传播系数']
} };
this.colors = ['#1890FF','#5AD8A6', '#FF6383'] this.colors = ['#1890FF', '#5AD8A6', '#FF6383'];
return {}; return {};
} }
/* methods() { /* methods() {
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-13 16:37:02 * @Date: 2019-11-13 16:37:02
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-20 10:13:46 * @LastEditTime: 2019-11-21 11:50:20
--> -->
<!-- <!--
<finished-active></finished-active> <finished-active></finished-active>
...@@ -16,30 +16,61 @@ import finishedActive from '@/components/active/finished-active.vue'; ...@@ -16,30 +16,61 @@ import finishedActive from '@/components/active/finished-active.vue';
<div class="finished-active border-box"> <div class="finished-active border-box">
<ul> <ul>
<template v-for="(item, index) in finishedData"> <template v-for="(item, index) in finishedData">
<li :class="['border-box', selectItem == item.id ? 'li-border' : '']" @click.stop="selectLi(item)" :key="index + 'data'"> <li
<div class="finished-active-title flex flex-space-between border-box"> :class="['border-box', selectItem == item.acitivityId && index != 0 ? 'li-border' : '']"
:key="index + 'data'"
>
<div
class="finished-active-title flex flex-space-between border-box"
@click.stop="selectLi(item)"
>
<div class="active-title-left"> <div class="active-title-left">
<div class="active-title-name font-18 color-303133">活动名称活动名称活动名称活动名称活动名称活动名称</div> <div class="active-title-name font-18 color-303133">{{ item.acitivityName }}</div>
<div class="active-title-date font-14 color-909399 m-t-7">2019.10.01 12:00 - 2019.10.02 12:00</div> <div class="active-title-date font-14 color-909399 m-t-7">{{ item.startDate | formatTimeYmdHms }} - {{ item.endDate | formatTimeYmdHms }}</div>
</div> </div>
<div class="active-title-right"> <div class="active-title-right">
<el-button type="primary" plain>活动配置</el-button> <el-button
type="primary"
plain
@click="toEdit(index, item)"
>活动配置</el-button>
<!-- <el-button <!-- <el-button
type="primary" type="primary"
plain plain
@click="handleCopy(index, item)" @click="handleCopy(index, item)"
>复制路径</el-button> --> >复制路径</el-button> -->
<el-button type="primary" plain>数据明细</el-button> <el-button
type="primary"
plain
@click="toDataList(index, item)"
>数据明细</el-button>
</div> </div>
</div> </div>
<div v-if="selectItem == item.id" class="finished-active-body"> <div
<out-date-active :barChartData="barChartData" :funnelData="funnelData"></out-date-active> v-if="selectItem == item.acitivityId"
class="finished-active-body"
>
<out-date-active
:barChartData="barChartData"
:funnelData="funnelData"
></out-date-active>
</div> </div>
</li> </li>
</template> </template>
</ul> </ul>
<div class="pagination text-right m-t-14" v-if="total"> <div
<el-pagination small :page-size="pageSize" :current-page="currentPage" layout="prev, pager, next" :total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange"> </el-pagination> class="pagination text-right m-t-14"
v-if="total"
>
<el-pagination
small
:page-size="pageSize"
:current-page="currentPage"
layout="prev, pager, next"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
> </el-pagination>
</div> </div>
</div> </div>
</template> </template>
...@@ -64,16 +95,10 @@ export default { ...@@ -64,16 +95,10 @@ export default {
selectItem: '', selectItem: '',
finishedData: [ finishedData: [
{ {
id: 1 acitivityId: 1,
}, acitivityName: '1',
{ startDate: 1574300553953,
id: 2 endDate: 1574300553953
},
{
id: 3
},
{
id: 4
} }
], ],
// 分页 // 分页
...@@ -88,7 +113,48 @@ export default { ...@@ -88,7 +113,48 @@ export default {
*/ */
selectLi(item) { selectLi(item) {
const that = this; const that = this;
that.selectItem = item.id; that.selectItem = item.acitivityId;
that.getActivityData(item.acitivityId);
},
/**
* 获取单个活动数据信息
* /sharing-core-web/get-activity-data-summary
*/
getActivityData(acitivityId) {
const that = this;
let para = {
acitivityId: acitivityId
};
getRequest('/sharing-core-web/get-activity-data-summary', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.funnelData = resData.result;
that.barChartData = resData.result.trend;
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
/**
* 活动配置
*/
toEdit(index, row) {
const that = this;
that.$router.push(`/createActive?activityId={row.activityId}&editFlag=show`)
},
/**
* 数据明细
*/
toDataList(index, row) {
const that = this;
that.$router.push(`/dataDetail?activityId={row.activityId}`)
}, },
/** /**
* 复制路径 * 复制路径
...@@ -134,8 +200,17 @@ export default { ...@@ -134,8 +200,17 @@ export default {
getRequest('/sharing-core-web/page-activity', para) getRequest('/sharing-core-web/page-activity', para)
.then(res => { .then(res => {
let resData = res.data; let resData = res.data;
const nowDate = new Date().getTime();
if (resData.errorCode == 1) { if (resData.errorCode == 1) {
that.finishedData = resData.result.result || []; let arr = [];
if (resData.result.result && resData.result.result.length) {
resData.result.result.forEach(ele => {
if (ele.endDate < nowDate) {
arr.push(ele);
}
});
}
that.finishedData = arr || [];
that.total = resData.result.totalCount; that.total = resData.result.totalCount;
return false; return false;
} }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-13 16:37:02 * @Date: 2019-11-13 16:37:02
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-19 12:33:59 * @LastEditTime: 2019-11-21 10:03:23
--> -->
<!-- <!--
<funnel-chart :funnelData="funnelData"></funnel-chart> <funnel-chart :funnelData="funnelData"></funnel-chart>
...@@ -13,7 +13,6 @@ import funnelChart from '@/components/active/funnel-chart.vue'; ...@@ -13,7 +13,6 @@ import funnelChart from '@/components/active/funnel-chart.vue';
--> -->
<template> <template>
<div class="funnel-chart"> <div class="funnel-chart">
<div class="funnel-chart-body flex"> <div class="funnel-chart-body flex">
<div class="chart-left"> <div class="chart-left">
...@@ -33,17 +32,17 @@ import funnelChart from '@/components/active/funnel-chart.vue'; ...@@ -33,17 +32,17 @@ import funnelChart from '@/components/active/funnel-chart.vue';
</div> </div>
<div class="chart-right"> <div class="chart-right">
<div class="chart-text"> <div class="chart-text">
<div class="space-line h-20 p-l-98 font-12 color-606066">关注服务号</div> <div class="space-line h-20 p-l-98 font-12 color-606066">关注服务号 {{ funnelData.openCard | formatThousand }}</div>
<div class="bg-f5f7fa h-16"></div> <div class="bg-f5f7fa h-16"></div>
<div class="space-line h-22 p-l-90 font-12 color-606066">访问活动着陆页</div> <div class="space-line h-22 p-l-90 font-12 color-606066">访问活动着陆页 {{ funnelData.openCard | formatThousand }}</div>
<div class="bg-f5f7fa h-18"></div> <div class="bg-f5f7fa h-18"></div>
<div class="space-line h-26 p-l-80 font-12 color-606066">认证开卡</div> <div class="space-line h-26 p-l-80 font-12 color-606066">认证开卡 {{ funnelData.openCard | formatThousand }}</div>
<div class="bg-f5f7fa h-22"></div> <div class="bg-f5f7fa h-22"></div>
<div class="space-line h-29 p-l-72 font-12 color-606066">参与游戏</div> <div class="space-line h-29 p-l-72 font-12 color-606066">参与游戏 {{ funnelData.openCard | formatThousand }}</div>
<div class="bg-f5f7fa h-23"></div> <div class="bg-f5f7fa h-23"></div>
<div class="space-line h-32 p-l-60 font-12 color-606066">领取卡券</div> <div class="space-line h-32 p-l-60 font-12 color-606066">领取卡券 {{ funnelData.openCard | formatThousand }}</div>
<div class="bg-f5f7fa h-25"></div> <div class="bg-f5f7fa h-25"></div>
<div class="space-line h-38 p-l-45 font-12 color-606066">消费</div> <div class="space-line h-38 p-l-45 font-12 color-606066">消费 {{ funnelData.orderCount | formatThousand }} 人, {{ funnelData.orderAmount | formatThousand }}</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -53,6 +52,14 @@ import funnelChart from '@/components/active/funnel-chart.vue'; ...@@ -53,6 +52,14 @@ import funnelChart from '@/components/active/funnel-chart.vue';
<script> <script>
export default { export default {
name: 'funnel-chart', name: 'funnel-chart',
props: {
funnelData: {
type: [Object, Array],
default() {
return {};
}
}
},
data() { data() {
return {}; return {};
} }
......
<!--
<game-select
v-mode="">
</game-select>
import gameSelect from '@/components/active/game-select.vue'
-->
<template>
<div>
<el-cascader
v-model="caseValue"
:options="options"
:props="props"
@change="handleChange"
@expand-change="expandChange"
></el-cascader>
</div>
</template>
<script>
import { getDocGroup, getDocListGroup } from '@/api/api';
import errMsg from '@/common/js/error';
export default {
name: 'game-select',
props: {
value: {
type: [String, Array, Object],
default() {
return [];
}
}
},
data() {
return {
caseValue: [], // 选择值
options: [],
props: {
label: 'label',
children: 'children',
value: 'id'
}
};
},
methods: {
/**
* 选择
*/
handleChange(value) {
const that = this;
that.$emit('input', value);
},
/**
*
*/
expandChange(val) {
const that = this;
that.getContent(val[0]);
},
/**
* 获取游戏一级类型
*/
getContentGroup() {
const that = this;
let para = {
// pageSize: that.pageSize
};
getDocGroup(para)
.then(res => {
let resData = res;
if (resData.errorCode == 1) {
if (!!resData.result && resData.result.length) {
resData.result.forEach(ele => {
ele.id = ele.groupId;
ele.label = ele.groupName;
ele.children = [];
});
}
that.options = resData.result || [];
return;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
/**
* 获取二级内容
*/
getContent(groupId) {
const that = this;
let para = {
groupId: groupId
};
getDocListGroup(para)
.then(res => {
let resData = res;
if (resData.errorCode == 1) {
if (!!resData.result && resData.result.length) {
resData.result.forEach(ele => {
ele.id = ele.articleId;
ele.label = ele.title;
});
}
that.options.forEach(ele => {
if (ele.id == groupId) {
ele.children = resData.result;
}
});
that.$forceUpdate();
return;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
}
},
watch: {
value(newData, oldData) {
const that = this;
that.caseValue = newData;
that.getContentGroup();
setTimeout(() => {
if (newData.length) {
that.getContent(newData[0]);
}
}, 500);
}
},
/* 接收数据 */
mounted() {
const that = this;
that.caseValue = that.value;
that.getContentGroup();
setTimeout(() => {
if (that.value.length) {
that.getContent(that.value[0]);
}
}, 500);
}
};
</script>
<style lang="less">
.el-cascader-menu {
overflow-x: hidden;
}
.el-scrollbar__wrap {
overflow-x: hidden;
}
</style>
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-13 16:37:02 * @Date: 2019-11-13 16:37:02
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-20 09:57:07 * @LastEditTime: 2019-11-21 12:42:40
--> -->
<!-- <!--
<in-progress-active></in-progress-active> <in-progress-active></in-progress-active>
...@@ -16,20 +16,41 @@ import inProgressActive from '@/components/active/in-progress-active.vue'; ...@@ -16,20 +16,41 @@ import inProgressActive from '@/components/active/in-progress-active.vue';
<div class="in-progress-active border-box"> <div class="in-progress-active border-box">
<ul> <ul>
<template v-for="(item, index) in inProgressData"> <template v-for="(item, index) in inProgressData">
<li :class="['border-box', selectItem == item.id && index != 0 ? 'li-border' : '']" @click.stop="selectLi(item)" :key="index + 'data'"> <li
<div class="in-progress-active-title flex flex-space-between border-box"> :class="['border-box', selectItem == item.acitivityId && index != 0 ? 'li-border' : '']"
:key="index + 'data'"
>
<div
class="in-progress-active-title flex flex-space-between border-box"
@click.stop="selectLi(item)"
>
<div class="active-title-left"> <div class="active-title-left">
<div class="active-title-name font-18 color-303133">活动名称活动名称活动名称活动名称活动名称活动名称</div> <div class="active-title-name font-18 color-303133">{{ item.acitivityName }}</div>
<div class="active-title-date font-14 color-909399 m-t-7">2019.10.01 12:00 - 2019.10.02 12:00</div> <div class="active-title-date font-14 color-909399 m-t-7">{{ item.startDate | formatTimeYmdHms }} - {{ item.endDate | formatTimeYmdHms }}</div>
</div> </div>
<div class="active-title-right"> <div class="active-title-right">
<el-button type="primary" plain>活动配置</el-button> <el-button
<el-button type="primary" plain @click="handleCopy(index, item)">复制路径</el-button> type="primary"
<el-button type="primary" plain>数据明细</el-button> plain
@click="toEdit(index, item)"
>活动配置</el-button>
<el-button
type="primary"
plain
@click="handleCopy(index, item)"
>复制路径</el-button>
<el-button
type="primary"
plain
@click="toDataList(index, item)"
>数据明细</el-button>
</div> </div>
</div> </div>
<div class="in-progress-active-body"> <div class="in-progress-active-body">
<out-date-active :barChartData="barChartData" :funnelData="funnelData"></out-date-active> <out-date-active
:barChartData="barChartData"
:funnelData="funnelData"
></out-date-active>
</div> </div>
</li> </li>
</template> </template>
...@@ -49,7 +70,7 @@ export default { ...@@ -49,7 +70,7 @@ export default {
}, },
data() { data() {
return { return {
funnelData: [], funnelData: {},
barChartData: { barChartData: {
columns: ['日期', '新增参与人数', '新增受邀人数', '传播系数'], columns: ['日期', '新增参与人数', '新增受邀人数', '传播系数'],
rows: [{ 日期: '1', 新增参与人数: 1393, 新增受邀人数: 1093, 传播系数: 0.32 }, { 日期: '2', 新增参与人数: 3530, 新增受邀人数: 3230, 传播系数: 0.26 }, { 日期: '3', 新增参与人数: 2923, 新增受邀人数: 2623, 传播系数: 0.76 }, { 日期: '4', 新增参与人数: 1723, 新增受邀人数: 1423, 传播系数: 0.49 }, { 日期: '5', 新增参与人数: 3192, 新增受邀人数: 3192, 传播系数: 0.323 }, { 日期: '6', 新增参与人数: 3593, 新增受邀人数: 3293, 传播系数: 0.78 }] rows: [{ 日期: '1', 新增参与人数: 1393, 新增受邀人数: 1093, 传播系数: 0.32 }, { 日期: '2', 新增参与人数: 3530, 新增受邀人数: 3230, 传播系数: 0.26 }, { 日期: '3', 新增参与人数: 2923, 新增受邀人数: 2623, 传播系数: 0.76 }, { 日期: '4', 新增参与人数: 1723, 新增受邀人数: 1423, 传播系数: 0.49 }, { 日期: '5', 新增参与人数: 3192, 新增受邀人数: 3192, 传播系数: 0.323 }, { 日期: '6', 新增参与人数: 3593, 新增受邀人数: 3293, 传播系数: 0.78 }]
...@@ -57,7 +78,11 @@ export default { ...@@ -57,7 +78,11 @@ export default {
selectItem: '', selectItem: '',
inProgressData: [ inProgressData: [
{ {
id: 1 acitivityId: 1,
acitivityName: '',
startDate: '',
endDate: '',
acitivityUrl: ''
} }
] ]
}; };
...@@ -68,7 +93,48 @@ export default { ...@@ -68,7 +93,48 @@ export default {
*/ */
selectLi(item) { selectLi(item) {
const that = this; const that = this;
that.selectItem = item.id; that.selectItem = item.acitivityId;
that.getActivityData(item.acitivityId);
},
/**
* 获取单个活动数据信息
* /sharing-core-web/get-activity-data-summary
*/
getActivityData(acitivityId) {
const that = this;
let para = {
acitivityId: acitivityId
};
getRequest('/sharing-core-web/get-activity-data-summary', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.funnelData = resData.result || {};
that.barChartData = resData.result.trend || {};
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
/**
* 活动配置
*/
toEdit(index, row) {
const that = this;
that.$router.push(`/createActive?activityId={row.activityId}`)
},
/**
* 数据明细
*/
toDataList(index, row) {
const that = this;
that.$router.push(`/dataDetail?activityId={row.activityId}`)
}, },
/** /**
* 复制路径 * 复制路径
...@@ -76,7 +142,7 @@ export default { ...@@ -76,7 +142,7 @@ export default {
handleCopy(index, row) { handleCopy(index, row) {
let clipboard = new Clipboard('.copy-tag', { let clipboard = new Clipboard('.copy-tag', {
text: function() { text: function() {
return `${window.location.origin}/?articleId=${row.articleId}`; return `${row.acitivityUrl}`;
} }
}); });
clipboard.on('success', e => { clipboard.on('success', e => {
...@@ -102,8 +168,17 @@ export default { ...@@ -102,8 +168,17 @@ export default {
.then(res => { .then(res => {
let resData = res.data; let resData = res.data;
if (resData.errorCode == 1) { if (resData.errorCode == 1) {
that.inProgressData = resData.result.result || []; const nowDate = new Date().getTime();
that.totalCount = resData.result.totalCount; let arr = [];
if (resData.result.result && resData.result.result.length) {
resData.result.result.forEach(ele => {
if (ele.endDate > nowDate) {
arr.push(ele);
}
});
}
that.inProgressData = arr || [];
that.getActivityData(arr[0].acitivityId);
return false; return false;
} }
errMsg.errorMsg(resData); errMsg.errorMsg(resData);
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-15 10:10:08 * @Date: 2019-11-15 10:10:08
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-15 11:46:16 * @LastEditTime: 2019-11-21 10:46:33
--> -->
<!-- <!--
<out-date-active :barChartData="barChartData" :funnelData="funnelData"></out-date-active> <out-date-active :barChartData="barChartData" :funnelData="funnelData"></out-date-active>
...@@ -13,7 +13,10 @@ import outDateActive from '@/components/active/out-date-active.vue'; ...@@ -13,7 +13,10 @@ import outDateActive from '@/components/active/out-date-active.vue';
--> -->
<template> <template>
<div class="out-date-active flex flex-space-between"> <div class="out-date-active flex flex-space-between">
<data-statistics-child :barChartData="barChartData"></data-statistics-child> <data-statistics-child
:activeData="activeData"
:barChartData="barChartData"
></data-statistics-child>
<funnel-chart :funnelData="funnelData"></funnel-chart> <funnel-chart :funnelData="funnelData"></funnel-chart>
</div> </div>
</template> </template>
...@@ -26,13 +29,13 @@ export default { ...@@ -26,13 +29,13 @@ export default {
barChartData: { barChartData: {
type: [Array, Object], type: [Array, Object],
default() { default() {
return {} return {};
} }
}, },
funnelData: { funnelData: {
type: [Array, Object], type: [Array, Object],
default() { default() {
return {} return {};
} }
} }
}, },
...@@ -42,12 +45,31 @@ export default { ...@@ -42,12 +45,31 @@ export default {
}, },
data() { data() {
return { return {
activeData: {
exposure: 0,
attend: 0,
invited: 0,
attendRate: 0,
spread: 0
}
};
},
methods: {},
watch: {
funnelData(newData, oldData) {
if (Object.keys(newData).length) {
this.activeData= newData;
}
} }
}, },
methods: { mounted() {
const that = this;
if (Object.keys(that.funnelData).length) {
that.activeData = that.funnelData;
}
}, },
} };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.out-date-active { .out-date-active {
......
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-11-20 13:44:22
* @LastEditors: 无尘
* @LastEditTime: 2019-11-20 16:25:45
-->
<!--
单个上传组件
<post-upload
:uploadLimit="uploadLimit"
:limitFlag="limitFlag"
:width="width"
:height="height"
v-model="imgsrc">
</post-upload>
import postUpload from '@/components/post-upload.vue';
-->
<template>
<div class="single-upload-wrap">
<el-upload class="avatar-uploader" :action="uploadUrl()" :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
<img v-if="value" :src="value" class="avatar" @mouseover="showImage(value)" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
<p class="upload-tip w-500">
图片规格750*1300px,大小不超过,2M,仅限JPG格式。
</p>
<p class="upload-tip">为了确保二维码位置的准确,建议,<a class="color-1890ff" href="https://report-1251519181.cos.ap-shanghai.myqcloud.com/haoban/20190619185604/好办管理员.pdf" download="好办帮助手册.pdf"> 下载模板</a> 基于模板进行海报设计。</p>
<p class="upload-tip">如果设计师还没有设计好图片,可以先跳过该步骤,先保存活动配置。</p>
<!-- 图片预览 -->
<vue-gic-img-preview :imgUrl="imgUrl" :imgShowFlag="imgShowFlag" @hideImage="hideImage"></vue-gic-img-preview>
</div>
</template>
<script>
import vueGicImgPreview from '@/components/vue-gic-img-preview.vue';
import errMsg from '@/common/js/error';
export default {
name: 'single-upload',
components: {
vueGicImgPreview
},
props: {
value: {
// 传入 input value
type: String,
default: ''
},
uploadLimit: {
type: Number,
default: 1
},
limitFlag: {
type: [Number, String],
default: 1 // 1: 根据大于宽高,2:根据固定宽高
},
width: {
type: Number,
default: 300
},
height: {
type: Number,
default: 300
}
},
data() {
return {
projectName: '', // 当前项目名
imgShowFlag: false, // 是否弹框显示,true: 显示;false: 不显示
imgUrl: '' // 传递的图片 src
};
},
beforeMount() {
const that = this;
let host = window.location.origin;
if (host.indexOf('localhost') != -1) {
that.baseUrl = 'http://www.gicdev.com';
} else {
that.baseUrl = host;
}
// that.upUrl = that.baseUrl + '/api-plug/upload-img?wxFlag=1'
},
methods: {
/**
* 上传图片
*/
uploadUrl() {
const that = this;
let host = window.location.origin;
let baseUrl;
if (host.indexOf('localhost') != '-1') {
baseUrl = 'http://www.gicdev.com';
} else {
baseUrl = host;
}
that.upUrl = `${baseUrl}/api-plug/upload-img?wxFlag=1&requestProject=share`;
return that.upUrl;
},
/**
* 上传图片
*/
handleAvatarSuccess(res, file, type) {
const that = this;
if (res.errorCode == 1) {
that.$emit('input', res.result[0].qcloudImageUrl);
} else {
errMsg.errorMsg(res);
}
},
beforeAvatarUpload(file) {
const that = this;
const isJPG = file.type === 'image/jpeg' || file.type === 'image/jpg';
const isLt2M = file.size / 1024 / 1024 < that.uploadLimit;
if (!isJPG) {
that.$message.error('上传图片只能是 JPG 格式!');
}
if (!isLt2M) {
that.$message.error(`上传图片大小不能超过 ${that.uploadLimit}MB!`);
}
return (
isJPG &&
isLt2M &&
new Promise(function(resolve, reject) {
let reader = new FileReader();
reader.onload = function(event) {
let image = new Image();
image.onload = function() {
/* eslint-disable */
let width = this.width;
let height = this.height;
if (that.limitFlag == 2 && (width !== that.width || height !== that.height)) {
that.$message.error('图片尺寸必须为750*1300px!');
reject();
}
if (that.limitFlag == 1 && (width < that.width || height < that.height)) {
that.$message.error('图片尺寸必须为750*1300px!');
reject();
}
resolve();
};
image.src = event.target.result;
// that.$emit('update:value',event.target.result)
};
reader.readAsDataURL(file);
})
);
},
/**
* 上传图片预览
*/
showImage(src) {
const that = this;
if (!src || src == '') {
return false;
}
that.imgShowFlag = true;
that.imgUrl = src;
},
hideImage(val) {
const that = this;
that.imgShowFlag = val;
}
}
// mounted() {}
};
</script>
<style lang="less" scoped>
.w-500 {
width: 500px;
}
.avatar-uploader {
/deep/ .el-upload {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
width: 80px;
height: 80px;
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
}
/* flex */
.flex {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
.flex-1 {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.flex-column {
-webkit-flex-direction: column;
-moz-flex-direction: column;
-ms-flex-direction: column;
-o-flex-direction: column;
flex-direction: column;
}
.flex-row {
-webkit-flex-direction: row;
-moz-flex-direction: row;
-ms-flex-direction: row;
-o-flex-direction: row;
flex-direction: row;
}
.flex-align-center {
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.flex-pack-center {
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 80px;
height: 80px;
line-height: 80px;
text-align: center;
background: rgba(245, 247, 250, 1);
}
.avatar {
max-width: 80px;
max-height: 80px;
display: block;
}
.upload-tip {
margin-top: 8px;
color: #909399;
font-size: 12px;
line-height: 20px;
}
.color-1890ff {
color: #1890ff;
}
</style>
...@@ -55,16 +55,17 @@ export default { ...@@ -55,16 +55,17 @@ export default {
}, },
}, },
mounted() { mounted() {
const that = this const that = this;
that.imgSrc = this.imgUrl; that.imgSrc = that.imgUrl;
this.showFlag = that.imgShowFlag; that.showFlag = that.imgShowFlag;
// 监听点击隐藏弹层 // 监听点击隐藏弹层
document.addEventListener('mousedown', that.hidePanel, false) document.addEventListener('mousedown', that.hidePanel, false)
}, },
beforeDestroy() { beforeDestroy() {
// 监听点击隐藏弹层 // 监听点击隐藏弹层
document.removeEventListener('mousedown') const that = this;
document.removeEventListener('mousedown', that.hidePanel, false)
}, },
} }
</script> </script>
......
...@@ -100,7 +100,9 @@ const timeStampToHms = function(data) { ...@@ -100,7 +100,9 @@ const timeStampToHms = function(data) {
}; };
const formatThousand = function(num) { const formatThousand = function(num) {
console.log(num); if (!num) {
return 0;
}
const reg = /\d{1,3}(?=(\d{3})+$)/g; const reg = /\d{1,3}(?=(\d{3})+$)/g;
return (num + '').replace(reg, '$&,'); return (num + '').replace(reg, '$&,');
}; };
......
...@@ -4,20 +4,24 @@ ...@@ -4,20 +4,24 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-12 10:59:45 * @Date: 2019-11-12 10:59:45
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-20 13:47:02 * @LastEditTime: 2019-11-21 10:47:35
--> -->
<template> <template>
<div class="share-index common-wrap"> <div class="share-index common-wrap">
<div class="right-content border-box"> <div class="right-content border-box">
<div class="separator-space no-active"> <div v-if="canCreate">
- 当前无进行中的活动,请创建活动,别让业绩白白流失!- <div class="separator-space no-active">
- 当前无进行中的活动,请创建活动,别让业绩白白流失!-
</div>
<active-select></active-select>
</div>
<div>
<!-- v-if="!canCreate" -->
<div class="separator-space">- 当前有正在进行的活动,无法创建新的活动 -</div>
<in-progress-active></in-progress-active>
<div class="separator-space">- 以下为已结束活动 -</div>
<finished-active></finished-active>
</div> </div>
<active-select></active-select>
<div class="separator-space">- 当前有正在进行的活动,无法创建新的活动 -</div>
<in-progress-active></in-progress-active>
<div class="separator-space">- 以下为已结束活动 -</div>
<finished-active></finished-active>
</div> </div>
<vue-gic-footer></vue-gic-footer> <vue-gic-footer></vue-gic-footer>
</div> </div>
...@@ -26,6 +30,9 @@ ...@@ -26,6 +30,9 @@
import activeSelect from '@/components/active/active-select.vue'; import activeSelect from '@/components/active/active-select.vue';
import inProgressActive from '@/components/active/in-progress-active.vue'; import inProgressActive from '@/components/active/in-progress-active.vue';
import finishedActive from '@/components/active/finished-active.vue'; import finishedActive from '@/components/active/finished-active.vue';
// import showMsg from '@/common/js/showmsg';
import errMsg from '@/common/js/error';
import { getRequest } from '@/api/api';
export default { export default {
name: 'share-index', name: 'share-index',
components: { components: {
...@@ -34,9 +41,38 @@ export default { ...@@ -34,9 +41,38 @@ export default {
finishedActive finishedActive
}, },
data() { data() {
return {}; return {
canCreate: true
};
},
methods: {
/**
* 是否可以创建活动
*/
judgeCreate() {
const that = this;
let para = {};
getRequest('/sharing-core-web/can-create', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1) {
that.canCreate = resData.result;
return false;
}
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
}
}, },
methods: {} mounted() {
const that = this;
that.judgeCreate();
}
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
......
...@@ -614,6 +614,13 @@ strong { ...@@ -614,6 +614,13 @@ strong {
align-items: center; align-items: center;
} }
.flex-align-end {
-webkit-box-align: flex-end;
-webkit-align-items: flex-end;
-ms-flex-align: flex-end;
align-items: flex-end;
}
.flex-pack-center { .flex-pack-center {
-webkit-box-pack: center; -webkit-box-pack: center;
-webkit-justify-content: center; -webkit-justify-content: center;
...@@ -621,6 +628,13 @@ strong { ...@@ -621,6 +628,13 @@ strong {
justify-content: center; justify-content: center;
} }
.flex-pack-end {
-webkit-box-pack: flex-end;
-webkit-justify-content: flex-end;
-ms-flex-pack: flex-end;
justify-content: flex-end;
}
.flex-space-between { .flex-space-between {
-webkit-justify-content: space-between; -webkit-justify-content: space-between;
-moz-justify-content: space-between; -moz-justify-content: space-between;
......
static/img/default.jpg

6.31 KB | W: | H:

static/img/default.jpg

31.6 KB | W: | H:

static/img/default.jpg
static/img/default.jpg
static/img/default.jpg
static/img/default.jpg
  • 2-up
  • Swipe
  • Onion skin
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