Commit b7c6e416 by zhangmeng

docs:加了一些注释

parent a44d796d
...@@ -28,7 +28,7 @@ module.exports = { ...@@ -28,7 +28,7 @@ module.exports = {
], ],
// allow async-await // allow async-await
'generator-star-spacing': 'off', 'generator-star-spacing': 'off',
'no-console': process.env.NODE_ENV === 'production' ? 2 : 0, 'no-console': 0,
'no-alert': process.env.NODE_ENV === 'production' ? 2 : 0, //禁止使用alert confirm prompt 'no-alert': process.env.NODE_ENV === 'production' ? 2 : 0, //禁止使用alert confirm prompt
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
// --------------------静态检测----------------------------- // --------------------静态检测-----------------------------
......
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var r=e();for(var n in r)("object"==typeof exports?exports:t)[n]=r[n]}}("undefined"!=typeof self?self:this,function(){return function(t){function e(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var r={};return e.m=t,e.c=r,e.d=function(t,r,n){e.o(t,r)||Object.defineProperty(t,r,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var r=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(r,"a",r),r},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/com/",e(e.s=143)}([function(t,e){t.exports=function(t,e,r,n,o,i){var a,c=t=t||{},s=typeof t.default;"object"!==s&&"function"!==s||(a=t,c=t.default);var u="function"==typeof c?c.options:c;e&&(u.render=e.render,u.staticRenderFns=e.staticRenderFns,u._compiled=!0),r&&(u.functional=!0),o&&(u._scopeId=o);var l;if(i?(l=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),n&&n.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(i)},u._ssrRegister=l):n&&(l=n),l){var f=u.functional,d=f?u.render:u.beforeCreate;f?(u._injectStyles=l,u.render=function(t,e){return l.call(e),d(t,e)}):u.beforeCreate=d?[].concat(d,l):[l]}return{esModule:a,exports:c,options:u}}},function(t,e,r){"use strict";var n=r(31),o=r(32),i=r(13);t.exports={formats:i,parse:o,stringify:n}},function(t,e){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,e){var r=t.exports={version:"2.6.2"};"number"==typeof __e&&(__e=r)},,,,function(t,e,r){var n=r(8);t.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,r){t.exports=!r(16)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,r){var n=r(2),o=r(3),i=r(21),a=r(11),c=r(17),s=function(t,e,r){var u,l,f,d=t&s.F,p=t&s.G,h=t&s.S,v=t&s.P,y=t&s.B,g=t&s.W,m=p?o:o[e]||(o[e]={}),b=m.prototype,x=p?n:h?n[e]:(n[e]||{}).prototype;p&&(r=e);for(u in r)(l=!d&&x&&void 0!==x[u])&&c(m,u)||(f=l?x[u]:r[u],m[u]=p&&"function"!=typeof x[u]?r[u]:y&&l?i(f,n):g&&x[u]==f?function(t){var e=function(e,r,n){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,r)}return new t(e,r,n)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(f):v&&"function"==typeof f?i(Function.call,f):f,v&&((m.virtual||(m.virtual={}))[u]=f,t&s.R&&b&&!b[u]&&a(b,u,f)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,t.exports=s},function(t,e,r){var n=r(23),o=r(33);t.exports=r(9)?function(t,e,r){return n.f(t,e,o(1,r))}:function(t,e,r){return t[e]=r,t}},function(t,e,r){"use strict";var n=Object.prototype.hasOwnProperty,o=function(){for(var t=[],e=0;e<256;++e)t.push("%"+((e<16?"0":"")+e.toString(16)).toUpperCase());return t}(),i=function(t){for(var e;t.length;){var r=t.pop();if(e=r.obj[r.prop],Array.isArray(e)){for(var n=[],o=0;o<e.length;++o)void 0!==e[o]&&n.push(e[o]);r.obj[r.prop]=n}}return e},a=function(t,e){for(var r=e&&e.plainObjects?Object.create(null):{},n=0;n<t.length;++n)void 0!==t[n]&&(r[n]=t[n]);return r},c=function t(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 i=e;return Array.isArray(e)&&!Array.isArray(r)&&(i=a(e,o)),Array.isArray(e)&&Array.isArray(r)?(r.forEach(function(r,i){n.call(e,i)?e[i]&&"object"==typeof e[i]?e[i]=t(e[i],r,o):e.push(r):e[i]=r}),e):Object.keys(r).reduce(function(e,i){var a=r[i];return n.call(e,i)?e[i]=t(e[i],a,o):e[i]=a,e},i)},s=function(t,e){return Object.keys(e).reduce(function(t,r){return t[r]=e[r],t},t)},u=function(t){try{return decodeURIComponent(t.replace(/\+/g," "))}catch(e){return t}},l=function(t){if(0===t.length)return t;for(var e="string"==typeof t?t:String(t),r="",n=0;n<e.length;++n){var i=e.charCodeAt(n);45===i||46===i||95===i||126===i||i>=48&&i<=57||i>=65&&i<=90||i>=97&&i<=122?r+=e.charAt(n):i<128?r+=o[i]:i<2048?r+=o[192|i>>6]+o[128|63&i]:i<55296||i>=57344?r+=o[224|i>>12]+o[128|i>>6&63]+o[128|63&i]:(n+=1,i=65536+((1023&i)<<10|1023&e.charCodeAt(n)),r+=o[240|i>>18]+o[128|i>>12&63]+o[128|i>>6&63]+o[128|63&i])}return r},f=function(t){for(var e=[{obj:{o:t},prop:"o"}],r=[],n=0;n<e.length;++n)for(var o=e[n],a=o.obj[o.prop],c=Object.keys(a),s=0;s<c.length;++s){var u=c[s],l=a[u];"object"==typeof l&&null!==l&&-1===r.indexOf(l)&&(e.push({obj:a,prop:u}),r.push(l))}return i(e)},d=function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},p=function(t){return null!==t&&void 0!==t&&!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))};t.exports={arrayToObject:a,assign:s,compact:f,decode:u,encode:l,isBuffer:p,isRegExp:d,merge:c}},function(t,e,r){"use strict";var n=String.prototype.replace,o=/%20/g;t.exports={default:"RFC3986",formatters:{RFC1738:function(t){return n.call(t,o,"+")},RFC3986:function(t){return t}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},function(t,e){function r(t,e){var r=t[1]||"",o=t[3];if(!o)return r;if(e&&"function"==typeof btoa){var i=n(o);return[r].concat(o.sources.map(function(t){return"/*# sourceURL="+o.sourceRoot+t+" */"})).concat([i]).join("\n")}return[r].join("\n")}function n(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var n=r(e,t);return e[2]?"@media "+e[2]+"{"+n+"}":n}).join("")},e.i=function(t,r){"string"==typeof t&&(t=[[null,t,""]]);for(var n={},o=0;o<this.length;o++){var i=this[o][0];"number"==typeof i&&(n[i]=!0)}for(o=0;o<t.length;o++){var a=t[o];"number"==typeof a[0]&&n[a[0]]||(r&&!a[2]?a[2]=r:r&&(a[2]="("+a[2]+") and ("+r+")"),e.push(a))}},e}},function(t,e,r){function n(t){for(var e=0;e<t.length;e++){var r=t[e],n=l[r.id];if(n){n.refs++;for(var o=0;o<n.parts.length;o++)n.parts[o](r.parts[o]);for(;o<r.parts.length;o++)n.parts.push(i(r.parts[o]));n.parts.length>r.parts.length&&(n.parts.length=r.parts.length)}else{for(var a=[],o=0;o<r.parts.length;o++)a.push(i(r.parts[o]));l[r.id]={id:r.id,refs:1,parts:a}}}}function o(){var t=document.createElement("style");return t.type="text/css",f.appendChild(t),t}function i(t){var e,r,n=document.querySelector("style["+g+'~="'+t.id+'"]');if(n){if(h)return v;n.parentNode.removeChild(n)}if(m){var i=p++;n=d||(d=o()),e=a.bind(null,n,i,!1),r=a.bind(null,n,i,!0)}else n=o(),e=c.bind(null,n),r=function(){n.parentNode.removeChild(n)};return e(t),function(n){if(n){if(n.css===t.css&&n.media===t.media&&n.sourceMap===t.sourceMap)return;e(t=n)}else r()}}function a(t,e,r,n){var o=r?"":n.css;if(t.styleSheet)t.styleSheet.cssText=b(e,o);else{var i=document.createTextNode(o),a=t.childNodes;a[e]&&t.removeChild(a[e]),a.length?t.insertBefore(i,a[e]):t.appendChild(i)}}function c(t,e){var r=e.css,n=e.media,o=e.sourceMap;if(n&&t.setAttribute("media",n),y.ssrId&&t.setAttribute(g,e.id),o&&(r+="\n/*# sourceURL="+o.sources[0]+" */",r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(o))))+" */"),t.styleSheet)t.styleSheet.cssText=r;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(r))}}var s="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!s)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var u=r(25),l={},f=s&&(document.head||document.getElementsByTagName("head")[0]),d=null,p=0,h=!1,v=function(){},y=null,g="data-vue-ssr-id",m="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());t.exports=function(t,e,r,o){h=r,y=o||{};var i=u(t,e);return n(i),function(e){for(var r=[],o=0;o<i.length;o++){var a=i[o],c=l[a.id];c.refs--,r.push(c)}e?(i=u(t,e),n(i)):i=[];for(var o=0;o<r.length;o++){var c=r[o];if(0===c.refs){for(var s=0;s<c.parts.length;s++)c.parts[s]();delete l[c.id]}}}};var b=function(){var t=[];return function(e,r){return t[e]=r,t.filter(Boolean).join("\n")}}()},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){var r={}.hasOwnProperty;t.exports=function(t,e){return r.call(t,e)}},function(t,e,r){var n=r(34),o=r(20);t.exports=function(t){return n(o(t))}},function(t,e){var r=Math.ceil,n=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?n:r)(t)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,r){var n=r(22);t.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,r){var n=r(7),o=r(40),i=r(41),a=Object.defineProperty;e.f=r(9)?Object.defineProperty:function(t,e,r){if(n(t),e=i(e,!0),n(r),o)try{return a(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[e]=r.value),t}},function(t,e){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},function(t,e){t.exports=function(t,e){for(var r=[],n={},o=0;o<e.length;o++){var i=e[o],a=i[0],c=i[1],s=i[2],u=i[3],l={id:t+":"+o,css:c,media:s,sourceMap:u};n[a]?n[a].parts.push(l):r.push(n[a]={id:a,parts:[l]})}return r}},function(t,e){t.exports=!0},function(t,e,r){var n=r(8),o=r(2).document,i=n(o)&&n(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},,function(t,e,r){var n=r(42),o=r(38);t.exports=Object.keys||function(t){return n(t,o)}},function(t,e,r){var n=r(36)("keys"),o=r(37);t.exports=function(t){return n[t]||(n[t]=o(t))}},function(t,e,r){"use strict";var n=r(12),o=r(13),i={brackets:function(t){return t+"[]"},indices:function(t,e){return t+"["+e+"]"},repeat:function(t){return t}},a=Date.prototype.toISOString,c={delimiter:"&",encode:!0,encoder:n.encode,encodeValuesOnly:!1,serializeDate:function(t){return a.call(t)},skipNulls:!1,strictNullHandling:!1},s=function t(e,r,o,i,a,s,u,l,f,d,p,h){var v=e;if("function"==typeof u)v=u(r,v);else if(v instanceof Date)v=d(v);else if(null===v){if(i)return s&&!h?s(r,c.encoder):r;v=""}if("string"==typeof v||"number"==typeof v||"boolean"==typeof v||n.isBuffer(v)){if(s){return[p(h?r:s(r,c.encoder))+"="+p(s(v,c.encoder))]}return[p(r)+"="+p(String(v))]}var y=[];if(void 0===v)return y;var g;if(Array.isArray(u))g=u;else{var m=Object.keys(v);g=l?m.sort(l):m}for(var b=0;b<g.length;++b){var x=g[b];a&&null===v[x]||(y=Array.isArray(v)?y.concat(t(v[x],o(r,x),o,i,a,s,u,l,f,d,p,h)):y.concat(t(v[x],r+(f?"."+x:"["+x+"]"),o,i,a,s,u,l,f,d,p,h)))}return y};t.exports=function(t,e){var r=t,a=e?n.assign({},e):{};if(null!==a.encoder&&void 0!==a.encoder&&"function"!=typeof a.encoder)throw new TypeError("Encoder has to be a function.");var u=void 0===a.delimiter?c.delimiter:a.delimiter,l="boolean"==typeof a.strictNullHandling?a.strictNullHandling:c.strictNullHandling,f="boolean"==typeof a.skipNulls?a.skipNulls:c.skipNulls,d="boolean"==typeof a.encode?a.encode:c.encode,p="function"==typeof a.encoder?a.encoder:c.encoder,h="function"==typeof a.sort?a.sort:null,v=void 0!==a.allowDots&&a.allowDots,y="function"==typeof a.serializeDate?a.serializeDate:c.serializeDate,g="boolean"==typeof a.encodeValuesOnly?a.encodeValuesOnly:c.encodeValuesOnly;if(void 0===a.format)a.format=o.default;else if(!Object.prototype.hasOwnProperty.call(o.formatters,a.format))throw new TypeError("Unknown format option provided.");var m,b,x=o.formatters[a.format];"function"==typeof a.filter?(b=a.filter,r=b("",r)):Array.isArray(a.filter)&&(b=a.filter,m=b);var w=[];if("object"!=typeof r||null===r)return"";var C;C=a.arrayFormat in i?a.arrayFormat:"indices"in a?a.indices?"indices":"repeat":"indices";var _=i[C];m||(m=Object.keys(r)),h&&m.sort(h);for(var j=0;j<m.length;++j){var O=m[j];f&&null===r[O]||(w=w.concat(s(r[O],O,_,l,f,d?p:null,b,h,v,y,x,g)))}var T=w.join(u),S=!0===a.addQueryPrefix?"?":"";return T.length>0?S+T:""}},function(t,e,r){"use strict";var n=r(12),o=Object.prototype.hasOwnProperty,i={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:n.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},a=function(t,e){for(var r={},n=e.ignoreQueryPrefix?t.replace(/^\?/,""):t,a=e.parameterLimit===1/0?void 0:e.parameterLimit,c=n.split(e.delimiter,a),s=0;s<c.length;++s){var u,l,f=c[s],d=f.indexOf("]="),p=-1===d?f.indexOf("="):d+1;-1===p?(u=e.decoder(f,i.decoder),l=e.strictNullHandling?null:""):(u=e.decoder(f.slice(0,p),i.decoder),l=e.decoder(f.slice(p+1),i.decoder)),o.call(r,u)?r[u]=[].concat(r[u]).concat(l):r[u]=l}return r},c=function(t,e,r){for(var n=e,o=t.length-1;o>=0;--o){var i,a=t[o];if("[]"===a)i=[],i=i.concat(n);else{i=r.plainObjects?Object.create(null):{};var c="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,s=parseInt(c,10);!isNaN(s)&&a!==c&&String(s)===c&&s>=0&&r.parseArrays&&s<=r.arrayLimit?(i=[],i[s]=n):i[c]=n}n=i}return n},s=function(t,e,r){if(t){var n=r.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t,i=/(\[[^[\]]*])/,a=/(\[[^[\]]*])/g,s=i.exec(n),u=s?n.slice(0,s.index):n,l=[];if(u){if(!r.plainObjects&&o.call(Object.prototype,u)&&!r.allowPrototypes)return;l.push(u)}for(var f=0;null!==(s=a.exec(n))&&f<r.depth;){if(f+=1,!r.plainObjects&&o.call(Object.prototype,s[1].slice(1,-1))&&!r.allowPrototypes)return;l.push(s[1])}return s&&l.push("["+n.slice(s.index)+"]"),c(l,e,r)}};t.exports=function(t,e){var r=e?n.assign({},e):{};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:i.delimiter,r.depth="number"==typeof r.depth?r.depth:i.depth,r.arrayLimit="number"==typeof r.arrayLimit?r.arrayLimit:i.arrayLimit,r.parseArrays=!1!==r.parseArrays,r.decoder="function"==typeof r.decoder?r.decoder:i.decoder,r.allowDots="boolean"==typeof r.allowDots?r.allowDots:i.allowDots,r.plainObjects="boolean"==typeof r.plainObjects?r.plainObjects:i.plainObjects,r.allowPrototypes="boolean"==typeof r.allowPrototypes?r.allowPrototypes:i.allowPrototypes,r.parameterLimit="number"==typeof r.parameterLimit?r.parameterLimit:i.parameterLimit,r.strictNullHandling="boolean"==typeof r.strictNullHandling?r.strictNullHandling:i.strictNullHandling,""===t||null===t||void 0===t)return r.plainObjects?Object.create(null):{};for(var o="string"==typeof t?a(t,r):t,c=r.plainObjects?Object.create(null):{},u=Object.keys(o),l=0;l<u.length;++l){var f=u[l],d=s(f,o[f],r);c=n.merge(c,d,r)}return n.compact(c)}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,r){var n=r(24);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==n(t)?t.split(""):Object(t)}},function(t,e,r){var n=r(19),o=Math.min;t.exports=function(t){return t>0?o(n(t),9007199254740991):0}},function(t,e,r){var n=r(3),o=r(2),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:n.version,mode:r(26)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){var r=0,n=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+n).toString(36))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,r){var n=r(20);t.exports=function(t){return Object(n(t))}},function(t,e,r){t.exports=!r(9)&&!r(16)(function(){return 7!=Object.defineProperty(r(27)("div"),"a",{get:function(){return 7}}).a})},function(t,e,r){var n=r(8);t.exports=function(t,e){if(!n(t))return t;var r,o;if(e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!n(o=r.call(t)))return o;if(!e&&"function"==typeof(r=t.toString)&&!n(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,r){var n=r(17),o=r(18),i=r(43)(!1),a=r(30)("IE_PROTO");t.exports=function(t,e){var r,c=o(t),s=0,u=[];for(r in c)r!=a&&n(c,r)&&u.push(r);for(;e.length>s;)n(c,r=e[s++])&&(~i(u,r)||u.push(r));return u}},function(t,e,r){var n=r(18),o=r(35),i=r(44);t.exports=function(t){return function(e,r,a){var c,s=n(e),u=o(s.length),l=i(a,u);if(t&&r!=r){for(;u>l;)if((c=s[l++])!=c)return!0}else for(;u>l;l++)if((t||l in s)&&s[l]===r)return t||l||0;return!t&&-1}}},function(t,e,r){var n=r(19),o=Math.max,i=Math.min;t.exports=function(t,e){return t=n(t),t<0?o(t+e,0):i(t,e)}},,,,function(t,e){e.f={}.propertyIsEnumerable},,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,r){"use strict";var n=r(147),o=r.n(n),i=r(151),a=r.n(i),c=r(1),s=r.n(c),u=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"yyyy-MM-dd-HH-mm-ss";return t?("number"==typeof t&&(t=new Date(t)),"string"==typeof t?t:(e.indexOf("yyyy")>=0?l(t.getFullYear()):"")+(e.indexOf("MM")>=0?"-"+l(t.getMonth()+1):"")+(e.indexOf("dd")>=0?"-"+l(t.getDate()):"")+(e.indexOf("HH")>=0?" "+l(t.getHours()):"")+(e.indexOf("mm")>=0?":"+l(t.getMinutes()):"")+(e.indexOf("ss")>=0?":"+l(t.getSeconds()):"")):""},l=function(t){return t*=1,t<10?"0"+t:t};e.a={name:"vue-gic-card",props:{disabledList:{type:Array,default:function(){return[]}},showCardDialog:{type:Boolean,default:!1},projectName:{type:String,default:""},cardLimit:{type:[String,Number],default:0},cardType:{type:[String,Number],default:null}},computed:{limitTips:function(){return 2===this.cardLimitType?"领取限制领取1~100的卡券,系统已过滤,符合条件共":3===this.cardLimitType?"领取限制领取<100的卡券不支持选择,系统已过滤,符合条件共":"领取限制>1的卡券不支持选择,系统已过滤,符合条件共"}},data:function(){return{repProjectName:"gic-web",searchText:"",cardData:[],currentRow:null,radio:null,dialogCard:!1,cardCurrentPage:1,cardPageSize:5,total:0,cardLimitType:"",cardTypes:"",baseUrl:"",formateDateTimeByType:u}},beforeMount:function(){var t=window.location.origin;console.log("当前host:",t),"-1"!=t.indexOf("localhost")?this.baseUrl="http://gicdev.demogic.com":this.baseUrl=t},methods:{add:function(){window.open("/marketing/#/card/add")},refresh:function(){this.cardCurrentPage=1,this.getCardList()},handleCurrentChangeTable:function(t){t.disabled||(this.radio=t.coupCardId,this.currentRow=t)},cardCurrentChange:function(t){this.cardCurrentPage=t,this.getCardList()},setNewData:function(t){this.dialogCard=t},toSearchInput:function(t){this.cardCurrentPage=1,this.getCardList()},clearInput:function(t){this.cardCurrentPage=1,this.getCardList()},dialogCardConfirm:function(){if(!this.currentRow||!a()(this.currentRow).length||!o()(this.currentRow).length)return void this.$message.error({duration:1e3,message:"请选择卡券"});this.$emit("selectCard",this.currentRow),this.currentRow={},this.radio=null},handleCardClose:function(){this.dialogCardcancel()},dialogCardcancel:function(){var t=this;this.$confirm("确认关闭?","",{confirmButtonText:"确定",cancelButtonText:"取消",type:""}).then(function(){console.log("点击确认"),t.currentRow={},t.radio=null,t.$emit("selectCard")}).catch(function(){console.log("取消 取消关闭")})},getCardList:function(){var t=this,e={currentPage:this.cardCurrentPage,pageSize:this.cardPageSize,searchParam:this.searchText||"",requestProject:this.repProjectName,cardLimitType:this.cardLimitType,cardTypes:this.cardTypes};this.axios.post(this.baseUrl+"/api-plug/get-coupon-list",s.a.stringify(e)).then(function(e){console.log(e,e.data,e.data.errorCode);var r=e.data;0==r.errorCode?r.result&&(r.result.result&&(r.result.result.forEach(function(e,r){e.beginDate&&(e.beginDate=t.formatDate(e.beginDate,".")),e.endDate&&(e.endDate=t.formatDate(e.endDate,".")),console.log(e),e.disabled=t.disabledList.indexOf(e.coupCardId)>=0}),t.cardData=r.result.result),t.total=r.result.totalCount):t.$message.error({duration:1e3,message:r.message})}).catch(function(e){t.$message.error({duration:1e4,message:e.message})})},formatDate:function(t,e){function r(t){return t>9?""+t:"0"+t}var n=new Date(t),o=n.getFullYear(),i=n.getMonth()+1,a=n.getDate();return o+e+r(i)+e+r(a)+e}},watch:{showCardDialog:function(t,e){this.setNewData(t)},projectName:function(t,e){this.repProjectName=t||"gic-web"},cardLimit:function(t,e){this.cardLimitType=t},cardType:function(t,e){this.cardTypes=t}},mounted:function(){this.repProjectName=this.projectName||"gic-web",this.cardLimitType=this.cardLimit,this.cardTypes=this.cardType,this.getCardList(),this.setNewData(this.showCardDialog)},filters:{filterCardTips:function(t){var e="";switch(t){case 1:e="限制领取1张的卡券,系统已自动过滤";break;case 2:e="限制领取1~100的卡券,系统已自动过滤";break;case 3:e="限制领取>=100的卡券,系统已自动过滤";break;case-1:default:e="卡券领取无限制"}return e}}}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=r(144),o={install:function(t,e){t.component(n.a.name,n.a)}};"undefined"!=typeof window&&window.Vue&&window.Vue.use(o),e.default=o},function(t,e,r){"use strict";function n(t){r(145)}var o=r(76),i=r(155),a=r(0),c=n,s=a(o.a,i.a,!1,c,"data-v-1bd6577e",null);e.a=s.exports},function(t,e,r){var n=r(146);"string"==typeof n&&(n=[[t.i,n,""]]),n.locals&&(t.exports=n.locals);r(15)("1eed93cf",n,!0,{})},function(t,e,r){e=t.exports=r(14)(!1),e.push([t.i,"#wrap[data-v-1bd6577e]{background:#fff}.search-input[data-v-1bd6577e]{width:200px}.attention-textAndImg-wrap[data-v-1bd6577e] .text-img-search{font-size:14px;color:#292929;height:36px;padding-bottom:22px;line-height:36px}.attention-textAndImg-wrap[data-v-1bd6577e] .text-img-search>span{float:left;margin-right:10px}.attention-textAndImg-wrap[data-v-1bd6577e] .text-img-search /deep/.search-input{width:200px}.attention-textAndImg-wrap[data-v-1bd6577e] .text-img-search .search-btn{margin-left:4px}.attention-textAndImg-wrap[data-v-1bd6577e] .text-img-search .limit-text{color:#909399;font-size:12px;line-height:1;padding-top:4px;display:inline-block}.attention-textAndImg-wrap[data-v-1bd6577e] .pic-list-box .list-img{width:80px;height:80px}.attention-textAndImg-wrap[data-v-1bd6577e] .pic-list-box .list-img img{width:100%;height:100%}.attention-textAndImg-wrap[data-v-1bd6577e] .pic-list-box .card-table{position:relative}.attention-textAndImg-wrap[data-v-1bd6577e] .el-table thead th,.attention-textAndImg-wrap[data-v-1bd6577e] .el-table thead tr{background:#f1f3f7}.pagination[data-v-1bd6577e]{text-align:right;margin-top:20px}.pic-list-box[data-v-1bd6577e] .el-table__row{cursor:pointer}.attention-textAndImg-wrap[data-v-1bd6577e] .el-dialog__body{padding:10px 20px}",""])},function(t,e,r){t.exports={default:r(148),__esModule:!0}},function(t,e,r){r(149),t.exports=r(3).Object.values},function(t,e,r){var n=r(10),o=r(150)(!1);n(n.S,"Object",{values:function(t){return o(t)}})},function(t,e,r){var n=r(29),o=r(18),i=r(48).f;t.exports=function(t){return function(e){for(var r,a=o(e),c=n(a),s=c.length,u=0,l=[];s>u;)i.call(a,r=c[u++])&&l.push(t?[r,a[r]]:a[r]);return l}}},function(t,e,r){t.exports={default:r(152),__esModule:!0}},function(t,e,r){r(153),t.exports=r(3).Object.keys},function(t,e,r){var n=r(39),o=r(29);r(154)("keys",function(){return function(t){return o(n(t))}})},function(t,e,r){var n=r(10),o=r(3),i=r(16);t.exports=function(t,e){var r=(o.Object||{})[t]||Object[t],a={};a[t]=e(r),n(n.S+n.F*i(function(){r(1)}),"Object",a)}},function(t,e,r){"use strict";var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"attention-textAndImg-wrap"},[r("el-dialog",{attrs:{title:"选择卡券",visible:t.dialogCard,width:"820px","before-close":t.handleCardClose},on:{"update:visible":function(e){t.dialogCard=e}}},[r("div",{staticClass:"text-img-search clearfix"},[r("div",{staticClass:"fl"},[r("el-input",{staticClass:"search-input",attrs:{placeholder:"请输入卡券名/备注名","prefix-icon":"el-icon-search",clearable:""},on:{clear:t.clearInput},nativeOn:{keyup:function(e){return function(e){return t.toSearchInput(e)}(e)}},model:{value:t.searchText,callback:function(e){t.searchText=e},expression:"searchText"}}),t._v(" "),r("span",{staticClass:"limit-text"},[t._v(t._s(t.limitTips)+t._s(t.total)+"张。 ")])],1),t._v(" "),r("div",{staticClass:"fr"},[r("el-button",{attrs:{type:"primary"},on:{click:t.add}},[t._v("新建卡券")]),t._v(" "),r("el-button",{on:{click:t.refresh}},[t._v("刷新列表")])],1)]),t._v(" "),r("div",{staticClass:"pic-list-box"},[r("el-table",{ref:"multipleTable",staticClass:"card-table",staticStyle:{width:"100%"},attrs:{data:t.cardData,"tooltip-effect":"dark"},on:{"row-click":t.handleCurrentChangeTable}},[r("el-table-column",{attrs:{label:"",width:"55"},scopedSlots:t._u([{key:"default",fn:function(e){return[r("el-radio",{staticClass:"radio-style",attrs:{label:e.row.coupCardId,disabled:e.row.disabled},model:{value:t.radio,callback:function(e){t.radio=e},expression:"radio"}})]}}])}),t._v(" "),r("el-table-column",{attrs:{"show-overflow-tooltip":!0,"min-width":100,align:"left",prop:"cardName",label:"卡券名称"}}),t._v(" "),r("el-table-column",{attrs:{"show-overflow-tooltip":!0,"min-width":100,align:"left",prop:"subName",label:"备注名"}}),t._v(" "),r("el-table-column",{attrs:{prop:"",label:"有效期","min-width":100,"show-overflow-tooltip":!1},scopedSlots:t._u([{key:"default",fn:function(e){return[0==e.row.cardEffectiveMode?r("div",[t._v("固定日期:"+t._s(t.formateDateTimeByType(e.row.beginDate,"yyyy-MM-dd")+"至"+t.formateDateTimeByType(e.row.endDate,"yyyy-MM-dd")))]):t._e(),t._v(" "),1==e.row.cardEffectiveMode?r("div",[t._v("领取后"+t._s((0===e.row.startDay?"当":e.row.startDay)+"天,有效天数"+e.row.limitDay)+"天")]):t._e()]}}])}),t._v(" "),r("el-table-column",{attrs:{prop:"cardLimit","show-overflow-tooltip":!1,label:"领取限制",width:"90"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(e.row.cardLimit)+"张/人\n ")]}}])}),t._v(" "),r("el-table-column",{attrs:{"show-overflow-tooltip":!1,width:90,align:"left",prop:"storeMode",label:"适用门店"},scopedSlots:t._u([{key:"default",fn:function(e){return[t._v("\n "+t._s(0===e.row.storeMode?"所有门店":1===e.row.storeMode?"部分分组":"部分门店")+"\n ")]}}])}),t._v(" "),r("el-table-column",{attrs:{"show-overflow-tooltip":!1,width:100,align:"left",prop:"couponStock",label:"库存"}})],1),t._v(" "),t.total>0?r("div",{staticClass:"pagination"},[r("el-pagination",{attrs:{"current-page":t.cardCurrentPage,"page-size":t.cardPageSize,layout:"prev, pager, next",total:t.total},on:{"current-change":t.cardCurrentChange}})],1):t._e()],1),t._v(" "),r("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[r("el-button",{on:{click:t.dialogCardcancel}},[t._v("关 闭")]),t._v(" "),r("el-button",{attrs:{type:"primary"},on:{click:t.dialogCardConfirm}},[t._v("确 定")])],1)])],1)},o=[],i={render:n,staticRenderFns:o};e.a=i}])});
\ No newline at end of file
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var r=t();for(var o in r)("object"==typeof exports?exports:e)[o]=r[o]}}("undefined"!=typeof self?self:this,function(){return function(e){function t(o){if(r[o])return r[o].exports;var a=r[o]={i:o,l:!1,exports:{}};return e[o].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var r={};return t.m=e,t.c=r,t.d=function(e,r,o){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/com/",t(t.s=156)}({0:function(e,t){e.exports=function(e,t,r,o,a,i){var n,s=e=e||{},l=typeof e.default;"object"!==l&&"function"!==l||(n=e,s=e.default);var d="function"==typeof s?s.options:s;t&&(d.render=t.render,d.staticRenderFns=t.staticRenderFns,d._compiled=!0),r&&(d.functional=!0),a&&(d._scopeId=a);var c;if(i?(c=function(e){e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,e||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(i)},d._ssrRegister=c):o&&(c=o),c){var u=d.functional,f=u?d.render:d.beforeCreate;u?(d._injectStyles=c,d.render=function(e,t){return c.call(t),f(e,t)}):d.beforeCreate=f?[].concat(f,c):[c]}return{esModule:n,exports:s,options:d}}},1:function(e,t,r){"use strict";var o=r(31),a=r(32),i=r(13);e.exports={formats:i,parse:a,stringify:o}},12:function(e,t,r){"use strict";var o=Object.prototype.hasOwnProperty,a=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),i=function(e){for(var t;e.length;){var r=e.pop();if(t=r.obj[r.prop],Array.isArray(t)){for(var o=[],a=0;a<t.length;++a)void 0!==t[a]&&o.push(t[a]);r.obj[r.prop]=o}}return t},n=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},o=0;o<e.length;++o)void 0!==e[o]&&(r[o]=e[o]);return r},s=function e(t,r,a){if(!r)return t;if("object"!=typeof r){if(Array.isArray(t))t.push(r);else{if("object"!=typeof t)return[t,r];(a.plainObjects||a.allowPrototypes||!o.call(Object.prototype,r))&&(t[r]=!0)}return t}if("object"!=typeof t)return[t].concat(r);var i=t;return Array.isArray(t)&&!Array.isArray(r)&&(i=n(t,a)),Array.isArray(t)&&Array.isArray(r)?(r.forEach(function(r,i){o.call(t,i)?t[i]&&"object"==typeof t[i]?t[i]=e(t[i],r,a):t.push(r):t[i]=r}),t):Object.keys(r).reduce(function(t,i){var n=r[i];return o.call(t,i)?t[i]=e(t[i],n,a):t[i]=n,t},i)},l=function(e,t){return Object.keys(t).reduce(function(e,r){return e[r]=t[r],e},e)},d=function(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return e}},c=function(e){if(0===e.length)return e;for(var t="string"==typeof e?e:String(e),r="",o=0;o<t.length;++o){var i=t.charCodeAt(o);45===i||46===i||95===i||126===i||i>=48&&i<=57||i>=65&&i<=90||i>=97&&i<=122?r+=t.charAt(o):i<128?r+=a[i]:i<2048?r+=a[192|i>>6]+a[128|63&i]:i<55296||i>=57344?r+=a[224|i>>12]+a[128|i>>6&63]+a[128|63&i]:(o+=1,i=65536+((1023&i)<<10|1023&t.charCodeAt(o)),r+=a[240|i>>18]+a[128|i>>12&63]+a[128|i>>6&63]+a[128|63&i])}return r},u=function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],o=0;o<t.length;++o)for(var a=t[o],n=a.obj[a.prop],s=Object.keys(n),l=0;l<s.length;++l){var d=s[l],c=n[d];"object"==typeof c&&null!==c&&-1===r.indexOf(c)&&(t.push({obj:n,prop:d}),r.push(c))}return i(t)},f=function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},p=function(e){return null!==e&&void 0!==e&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))};e.exports={arrayToObject:n,assign:l,compact:u,decode:d,encode:c,isBuffer:p,isRegExp:f,merge:s}},13:function(e,t,r){"use strict";var o=String.prototype.replace,a=/%20/g;e.exports={default:"RFC3986",formatters:{RFC1738:function(e){return o.call(e,a,"+")},RFC3986:function(e){return e}},RFC1738:"RFC1738",RFC3986:"RFC3986"}},14:function(e,t){function r(e,t){var r=e[1]||"",a=e[3];if(!a)return r;if(t&&"function"==typeof btoa){var i=o(a);return[r].concat(a.sources.map(function(e){return"/*# sourceURL="+a.sourceRoot+e+" */"})).concat([i]).join("\n")}return[r].join("\n")}function o(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var o=r(t,e);return t[2]?"@media "+t[2]+"{"+o+"}":o}).join("")},t.i=function(e,r){"string"==typeof e&&(e=[[null,e,""]]);for(var o={},a=0;a<this.length;a++){var i=this[a][0];"number"==typeof i&&(o[i]=!0)}for(a=0;a<e.length;a++){var n=e[a];"number"==typeof n[0]&&o[n[0]]||(r&&!n[2]?n[2]=r:r&&(n[2]="("+n[2]+") and ("+r+")"),t.push(n))}},t}},15:function(e,t,r){function o(e){for(var t=0;t<e.length;t++){var r=e[t],o=c[r.id];if(o){o.refs++;for(var a=0;a<o.parts.length;a++)o.parts[a](r.parts[a]);for(;a<r.parts.length;a++)o.parts.push(i(r.parts[a]));o.parts.length>r.parts.length&&(o.parts.length=r.parts.length)}else{for(var n=[],a=0;a<r.parts.length;a++)n.push(i(r.parts[a]));c[r.id]={id:r.id,refs:1,parts:n}}}}function a(){var e=document.createElement("style");return e.type="text/css",u.appendChild(e),e}function i(e){var t,r,o=document.querySelector("style["+g+'~="'+e.id+'"]');if(o){if(m)return h;o.parentNode.removeChild(o)}if(v){var i=p++;o=f||(f=a()),t=n.bind(null,o,i,!1),r=n.bind(null,o,i,!0)}else o=a(),t=s.bind(null,o),r=function(){o.parentNode.removeChild(o)};return t(e),function(o){if(o){if(o.css===e.css&&o.media===e.media&&o.sourceMap===e.sourceMap)return;t(e=o)}else r()}}function n(e,t,r,o){var a=r?"":o.css;if(e.styleSheet)e.styleSheet.cssText=w(t,a);else{var i=document.createTextNode(a),n=e.childNodes;n[t]&&e.removeChild(n[t]),n.length?e.insertBefore(i,n[t]):e.appendChild(i)}}function s(e,t){var r=t.css,o=t.media,a=t.sourceMap;if(o&&e.setAttribute("media",o),b.ssrId&&e.setAttribute(g,t.id),a&&(r+="\n/*# sourceURL="+a.sources[0]+" */",r+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */"),e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}var l="undefined"!=typeof document;if("undefined"!=typeof DEBUG&&DEBUG&&!l)throw new Error("vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.");var d=r(25),c={},u=l&&(document.head||document.getElementsByTagName("head")[0]),f=null,p=0,m=!1,h=function(){},b=null,g="data-vue-ssr-id",v="undefined"!=typeof navigator&&/msie [6-9]\b/.test(navigator.userAgent.toLowerCase());e.exports=function(e,t,r,a){m=r,b=a||{};var i=d(e,t);return o(i),function(t){for(var r=[],a=0;a<i.length;a++){var n=i[a],s=c[n.id];s.refs--,r.push(s)}t?(i=d(e,t),o(i)):i=[];for(var a=0;a<r.length;a++){var s=r[a];if(0===s.refs){for(var l=0;l<s.parts.length;l++)s.parts[l]();delete c[s.id]}}}};var w=function(){var e=[];return function(t,r){return e[t]=r,e.filter(Boolean).join("\n")}}()},156:function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=r(157),a={install:function(e,t){e.component(o.a.name,o.a)}};"undefined"!=typeof window&&window.Vue&&window.Vue.use(a),t.default=a},157:function(e,t,r){"use strict";function o(e){r(158)}var a=r(77),i=r(164),n=r(0),s=o,l=n(a.a,i.a,!1,s,"data-v-0b9df33a",null);t.a=l.exports},158:function(e,t,r){var o=r(159);"string"==typeof o&&(o=[[e.i,o,""]]),o.locals&&(e.exports=o.locals);r(15)("bb1a21f2",o,!0,{})},159:function(e,t,r){var o=r(160);t=e.exports=r(14)(!1),t.push([e.i,".navheader[data-v-0b9df33a]{position:fixed;display:-webkit-box;display:-ms-flexbox;display:flex;top:0;left:0;width:100%;height:64px;line-height:64px;font-size:14px;background-color:#fff;padding:0;z-index:99;color:#fff}.navheader .fl[data-v-0b9df33a]{float:left}.navheader .fr[data-v-0b9df33a]{float:right}.navheader-logo[data-v-0b9df33a]{-webkit-box-flex:0;-ms-flex:0 0 200px;flex:0 0 200px;width:200px;height:64px;float:left;text-align:center;background:url("+o(r(161))+') no-repeat 50% #04143a}.navheader-pic[data-v-0b9df33a]{vertical-align:middle}.navheader-item[data-v-0b9df33a]{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-shadow:5px -1px 10px #ddd;box-shadow:5px -1px 10px #ddd}.navheader .itemlink[data-v-0b9df33a]{float:left;padding:0 20px;display:inline-block;height:62px;cursor:pointer;color:#606266}.navheader .itemlink[data-v-0b9df33a]:hover{color:#1890ff}.navheader .bottom[data-v-0b9df33a]:hover{border-bottom:2px solid #1890ff}.navheader .current-module.bottom[data-v-0b9df33a]{color:#1890ff;border-bottom:2px solid #1890ff;font-weight:500}.navheader .moveleft[data-v-0b9df33a]{margin-left:-136px;-webkit-transition:all .3s ease;transition:all .3s ease;background-position:151px 10px}.navheader .moveright[data-v-0b9df33a]{margin-left:0;-webkit-transition:all .2s ease;transition:all .2s ease}.navheader .arrowico[data-v-0b9df33a]{position:absolute;-webkit-transition:all .5s;transition:all .5s;right:0;top:25px}.navheader .arrow-icon-down[data-v-0b9df33a]{position:relative;-webkit-transition:all .5s;transition:all .5s}.navheader .el-dialog__wrapper[data-v-0b9df33a] .el-dialog{min-width:425px;width:425px}.navheader .el-dialog__body[data-v-0b9df33a]{padding:0 20px}.navheader__status[data-v-0b9df33a]{color:#999;cursor:pointer}.navheader__status a[data-v-0b9df33a]{color:#f5222d}.navheader__status[data-v-0b9df33a] .el-button--danger{background:#fff}.navheader__status[data-v-0b9df33a] .el-button--danger:active,.navheader__status[data-v-0b9df33a] .el-button--danger:focus,.navheader__status[data-v-0b9df33a] .el-button--danger:hover{color:#f5222d}.navheader__status[data-v-0b9df33a] .el-button--warning{background:#fff}.navheader__status[data-v-0b9df33a] .el-button--warning:active,.navheader__status[data-v-0b9df33a] .el-button--warning:focus,.navheader__status[data-v-0b9df33a] .el-button--warning:hover{color:#faad14}.itemlink-gic[data-v-0b9df33a]{float:left;display:inline-block;height:62px;padding:0 20px;position:relative;color:#606266;cursor:pointer}.itemlink-gic[data-v-0b9df33a]:hover{color:#1890ff}.itemlink-gic:hover .arrow-icon-down[data-v-0b9df33a]{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.itemlink-gic:hover .itempanel[data-v-0b9df33a]{display:block}.itemlink-gic .curitemlink[data-v-0b9df33a]{border-bottom:2px solid #1890ff}.itemlink-gic .itempanel[data-v-0b9df33a]{display:none}.itemlink-gic .containers-listlik.current-rout[data-v-0b9df33a]{color:#1890ff}.itemlink-gic .containers-listlik-a[data-v-0b9df33a]{display:block}.itemlink-gic .gicnavlink[data-v-0b9df33a]{position:absolute;left:-100px;top:60px;width:966px;min-height:550px;background:#fff;min-width:150px;border-radius:4px;border:1px solid #ebeef5;padding:12px 0 25px 30px;z-index:9999;color:#606266;line-height:1.4;text-align:justify;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}.itemlink-gic .gicnavarrow[data-v-0b9df33a]{position:absolute;left:50%;top:50px;-webkit-transform:translate(-50%);transform:translate(-50%);z-index:3}.itemlink-gic .gicnavarrow .arrow[data-v-0b9df33a]{position:relative;display:block;background-color:#fff;width:6px;height:6px;border:0;border-top:1px solid #ebeef5;border-right:1px solid #ebeef5;-webkit-transform:translateY(7px) rotate(-45deg);transform:translateY(7px) rotate(-45deg);-webkit-filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.itemlink-gic .gicnavarrow .arrow[data-v-0b9df33a]:after{position:absolute;left:0;top:-2px;width:10px;height:1px;content:"";border-radius:2px;background-color:#fff;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.itemlink-gic .containers[data-v-0b9df33a]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;padding:0;-webkit-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;margin:0}.itemlink-gic .containers-ul[data-v-0b9df33a]{line-height:40px}.itemlink-gic .containers-title[data-v-0b9df33a]{color:#303133;font-size:14px;font-weight:700;padding:0;-webkit-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}.itemlink-gic .containers-listlik[data-v-0b9df33a]{font-size:12px;color:#606266;line-height:30px}.itemlink-gic .containers-listlik[data-v-0b9df33a]:hover{color:#1890ff}.itemlink-gic .containers-item[data-v-0b9df33a]{-webkit-box-flex:0;-ms-flex:0 0 185px;flex:0 0 185px;-webkit-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}.itemlink-gic .curactive[data-v-0b9df33a]{color:#fede29}li[data-v-0b9df33a]{list-style:none}.navuserinfo[data-v-0b9df33a]{width:140px;text-align:center}.navuserinfo[data-v-0b9df33a] a{color:#606266}.navuserinfo[data-v-0b9df33a] .navusername{position:relative;display:inline-block;padding:0 20px;height:48px}.navuserinfo[data-v-0b9df33a] .navusername:hover{color:#1890ff}.navuserinfo[data-v-0b9df33a] .navusername:hover .arrowico{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.navsuerwrap[data-v-0b9df33a] .useritem{position:relative;line-height:35px;height:35px;margin-bottom:10px;text-align:center;color:#606266}.navsuerwrap[data-v-0b9df33a] .useritem a{color:#606266}.navsuerwrap[data-v-0b9df33a] .useritem:hover .usertext{display:block;width:119px;margin-left:-12px;color:#1890ff;background-color:#ecf5ff;cursor:pointer}.navsuerwrap[data-v-0b9df33a] .loginout{border-top:1px solid #eee;-webkit-box-sizing:border-box;box-sizing:border-box;padding:15px 0;margin-bottom:20px}.el-popover.user-header-pop[data-v-0b9df33a],.el-popover[data-v-0b9df33a],.user-header-pop[data-v-0b9df33a]{min-width:95px}.el-dialog__wrapper[data-v-0b9df33a] .el-dialog{min-width:425px;width:425px}.el-dialog__wrapper[data-v-0b9df33a] .el-dialog /deep/ .el-dialog__body{padding:0 20px}.user-form-dialog[data-v-0b9df33a] .el-dialog{min-width:425px}.user-form-dialog[data-v-0b9df33a] .el-dialog__body{padding:0 20px}.user-form-dialog[data-v-0b9df33a] .el-input{width:260px}.pass-form-dialog[data-v-0b9df33a] .el-dialog{min-width:425px}.pass-form-dialog[data-v-0b9df33a] .el-dialog__body{padding:0 20px}.el-input[data-v-0b9df33a]{width:260px}@media screen and (max-width:1280px){.navheader[data-v-0b9df33a]{min-width:1280px}}@media screen and (min-width:1280px) and (max-width:1366px){.navheader[data-v-0b9df33a]{min-width:1280px}}@media screen and (min-width:1366px) and (max-width:1440px){.navheader[data-v-0b9df33a]{min-width:1366px}}@media screen and (min-width:1440px) and (max-width:1920px){.navheader[data-v-0b9df33a]{min-width:1440px}}.dialog-footer[data-v-0b9df33a]{line-height:1}',""])},160:function(e,t){e.exports=function(e){return"string"!=typeof e?e:(/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),/["'() \t\n]/.test(e)?'"'+e.replace(/"/g,'\\"').replace(/\n/g,"\\n")+'"':e)}},161:function(e,t,r){e.exports=r.p+"logo.png?567d2bcb0ba7ec281f5613c41ce4b7c6"},162:function(e,t,r){e.exports={default:r(163),__esModule:!0}},163:function(e,t,r){var o=r(3),a=o.JSON||(o.JSON={stringify:JSON.stringify});e.exports=function(e){return a.stringify.apply(a,arguments)}},164:function(e,t,r){"use strict";var o=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"navheader"},[r("div",{staticClass:"navheader-logo fl",class:e.isCollapse?"moveleft":"moveright"}),e._v(" "),r("div",{staticClass:"navheader-item fl"},[r("a",{staticClass:"itemlink",on:{click:e.handleCollapse}},[r("i",{staticClass:"iconfont",class:e.isCollapse?"icon-zhankai":"icon-shouqi"})]),e._v(" "),r("a",{class:["itemlink","bottom","menu-all","/memberSummary"==e.summaryName?"current-module":""],attrs:{href:e.origin+"/report/#/memberSummary"}},[e._v("总览")]),e._v(" "),r("div",{class:["itemlink-gic","bottom","gic-web"==e.pathName?"current-module":""],on:{mouseover:e.showChild,mouseout:e.hideChild}},[e._v("\n GIC商户后台\n "),r("i",{staticClass:"el-icon-arrow-down arrow-icon-down"}),e._v(" "),r("div",{staticClass:"itempanel",style:{display:e.showItem},attrs:{id:"itempanel"}},[r("div",{staticClass:"gicnavlink"},[r("div",{staticClass:"containers"},e._l(e.menuHeadRouter,function(t,o){return r("div",{key:o,staticClass:"containers-item"},[r("ul",{staticClass:"containers-ul"},[r("h1",{staticClass:"containers-title"},[e._v(e._s(t.menuName))]),e._v(" "),e._l(t.children,function(t,o){return[t.isRouter?r("li",{key:o,class:["containers-listlik",e.activeCode==t.menuCode?"current-rout":""],on:{click:function(r){e.toRouter(t.menuUrl,t.menuName,t.menuCode)}}},[e._v(e._s(t.menuName))]):e._e(),e._v(" "),t.isRouter?e._e():r("a",{key:o,staticClass:"containers-listlik containers-listlik-a",attrs:{href:t.menuUrl,target:1==t.target?"_blank":""}},[e._v(e._s(t.menuName))])]})],2)])}),0)]),e._v(" "),e._m(0)])]),e._v(" "),e._l(e.menuHead,function(t){return[r("a",{class:["itemlink","bottom","menu-mall",e.pathName==t.project?"current-module":""],attrs:{href:e.origin+t.menuUrl,target:1==t.target?"_blank":""}},[e._v(e._s(t.menuName))])]}),e._v(" "),r("div",{staticClass:"navuserinfo fr"},[r("el-popover",{staticStyle:{"min-width":"95px"},attrs:{placement:"bottom",title:"",width:"95",trigger:"hover","popper-class":"user-header-pop"}},[r("ul",{staticClass:"navsuerwrap"},[r("li",{staticClass:"useritem",on:{click:e.toUserInfo}},[r("a",{staticClass:"usertext"},[e._v("账户信息")])]),e._v(" "),r("li",{staticClass:"useritem",on:{click:e.toModifyInfo}},[r("a",{staticClass:"usertext"},[e._v("修改密码")])]),e._v(" "),r("li",{staticClass:"useritem loginout",on:{click:e.toLoginOut}},[r("a",{staticClass:"usertext"},[e._v("退出登录")])])]),e._v(" "),r("a",{staticClass:"navusername",attrs:{slot:"reference"},slot:"reference"},[e._v(e._s(e.userInfo.realName)+"\n "),r("i",{staticClass:"el-icon-arrow-down arrowico"})])])],1),e._v(" "),2===e.accountStatus||3===e.accountStatus?r("div",{staticClass:"navheader__status fr"},[r("el-tooltip",{attrs:{effect:"dark",placement:"bottom-start","popper-class":"navheader__status--tooltip"}},[r("div",{staticClass:"w200",attrs:{slot:"content"},slot:"content"},[e._v("\n "+e._s(2===e.accountStatus?"当前账户已欠费,授信欠费额度5000,如不及时充值将无法使用营销管理-短信营销、营销管理-智能营销、双向呼叫、短信语音验证码等模块,为了保障您的权益,请尽快充值。":"账户余额超出欠费额度,当前无法使用营销管理-短信营销、营销管理-智能营销、双向呼叫、短信语音验证码等模块,为了保障您的权益,请尽快充值。")+"\n ")]),e._v(" "),r("el-button",{attrs:{size:"medium",type:2===e.accountStatus?"warning":"danger",plain:"",round:""},on:{click:e.toRecharge}},[e._v(e._s(2===e.accountStatus?"账户已欠费":"账户异常"))])],1)],1):e._e()],2),e._v(" "),r("el-dialog",{staticClass:"user-form-dialog",attrs:{title:"账户信息",visible:e.userFormVisible,width:"425px","modal-append-to-body":!1,"before-close":e.userFormClose}},[r("el-form",{ref:"userForm",attrs:{model:e.userInfoForm,"before-close":e.userFormClose,rules:e.userFormRules}},[r("el-form-item",{attrs:{label:"姓名","label-width":e.formLabelWidth,prop:"realName"}},[r("el-input",{model:{value:e.userInfoForm.realName,callback:function(t){e.$set(e.userInfoForm,"realName",t)},expression:"userInfoForm.realName"}})],1),e._v(" "),r("el-form-item",{attrs:{label:"性别","label-width":e.formLabelWidth,prop:"gender"}},[r("el-radio-group",{model:{value:e.userInfoForm.gender,callback:function(t){e.$set(e.userInfoForm,"gender",t)},expression:"userInfoForm.gender"}},[r("el-radio",{attrs:{label:1}},[e._v("男")]),e._v(" "),r("el-radio",{attrs:{label:2}},[e._v("女")])],1)],1),e._v(" "),r("el-form-item",{attrs:{label:"员工代码","label-width":e.formLabelWidth,prop:"clerkCode"}},[r("el-input",{model:{value:e.userInfoForm.clerkCode,callback:function(t){e.$set(e.userInfoForm,"clerkCode",t)},expression:"userInfoForm.clerkCode"}})],1),e._v(" "),r("el-form-item",{attrs:{label:"手机号码","label-width":e.formLabelWidth,prop:"phoneNumber"}},[r("el-input",{attrs:{type:"text",maxlength:11},model:{value:e.userInfoForm.phoneNumber,callback:function(t){e.$set(e.userInfoForm,"phoneNumber",t)},expression:"userInfoForm.phoneNumber"}})],1),e._v(" "),r("el-form-item",{attrs:{label:"职位","label-width":e.formLabelWidth,prop:"positionName"}},[r("el-input",{model:{value:e.userInfoForm.positionName,callback:function(t){e.$set(e.userInfoForm,"positionName",t)},expression:"userInfoForm.positionName"}})],1)],1),e._v(" "),r("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[r("el-button",{on:{click:e.cancelModUserInfo}},[e._v("取 消")]),e._v(" "),r("el-button",{attrs:{type:"primary"},on:{click:function(t){e.confirmModUserInfo("userForm")}}},[e._v("确 定")])],1)],1),e._v(" "),r("el-dialog",{staticClass:"pass-form-dialog",attrs:{title:"修改密码",visible:e.passFormVisible,width:"425px","modal-append-to-body":!1,"before-close":e.passFormClose}},[r("el-form",{ref:"passForm",attrs:{model:e.passwordForm,"before-close":e.passFormClose,rules:e.passFormRules}},[r("el-form-item",{attrs:{label:"旧密码","label-width":e.formLabelWidth,prop:"oldPassword"}},[r("el-input",{attrs:{"auto-complete":"off"},model:{value:e.passwordForm.oldPassword,callback:function(t){e.$set(e.passwordForm,"oldPassword",t)},expression:"passwordForm.oldPassword"}})],1),e._v(" "),r("el-form-item",{attrs:{label:"新密码","label-width":e.formLabelWidth,prop:"newPassword"}},[r("el-input",{model:{value:e.passwordForm.newPassword,callback:function(t){e.$set(e.passwordForm,"newPassword",t)},expression:"passwordForm.newPassword"}})],1),e._v(" "),r("el-form-item",{attrs:{label:"确认密码","label-width":e.formLabelWidth,prop:"confirmNewPassword"}},[r("el-input",{model:{value:e.passwordForm.confirmNewPassword,callback:function(t){e.$set(e.passwordForm,"confirmNewPassword",t)},expression:"passwordForm.confirmNewPassword"}})],1)],1),e._v(" "),r("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[r("el-button",{on:{click:e.cancelModPass}},[e._v("取 消")]),e._v(" "),r("el-button",{attrs:{type:"primary"},on:{click:function(t){e.confirmModPass("passForm")}}},[e._v("确 定")])],1)],1)],1)},a=[function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"gicnavarrow"},[r("span",{staticClass:"arrow"})])}],i={render:o,staticRenderFns:a};t.a=i},25:function(e,t){e.exports=function(e,t){for(var r=[],o={},a=0;a<t.length;a++){var i=t[a],n=i[0],s=i[1],l=i[2],d=i[3],c={id:e+":"+a,css:s,media:l,sourceMap:d};o[n]?o[n].parts.push(c):r.push(o[n]={id:n,parts:[c]})}return r}},3:function(e,t){var r=e.exports={version:"2.6.2"};"number"==typeof __e&&(__e=r)},31:function(e,t,r){"use strict";var o=r(12),a=r(13),i={brackets:function(e){return e+"[]"},indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},n=Date.prototype.toISOString,s={delimiter:"&",encode:!0,encoder:o.encode,encodeValuesOnly:!1,serializeDate:function(e){return n.call(e)},skipNulls:!1,strictNullHandling:!1},l=function e(t,r,a,i,n,l,d,c,u,f,p,m){var h=t;if("function"==typeof d)h=d(r,h);else if(h instanceof Date)h=f(h);else if(null===h){if(i)return l&&!m?l(r,s.encoder):r;h=""}if("string"==typeof h||"number"==typeof h||"boolean"==typeof h||o.isBuffer(h)){if(l){return[p(m?r:l(r,s.encoder))+"="+p(l(h,s.encoder))]}return[p(r)+"="+p(String(h))]}var b=[];if(void 0===h)return b;var g;if(Array.isArray(d))g=d;else{var v=Object.keys(h);g=c?v.sort(c):v}for(var w=0;w<g.length;++w){var x=g[w];n&&null===h[x]||(b=Array.isArray(h)?b.concat(e(h[x],a(r,x),a,i,n,l,d,c,u,f,p,m)):b.concat(e(h[x],r+(u?"."+x:"["+x+"]"),a,i,n,l,d,c,u,f,p,m)))}return b};e.exports=function(e,t){var r=e,n=t?o.assign({},t):{};if(null!==n.encoder&&void 0!==n.encoder&&"function"!=typeof n.encoder)throw new TypeError("Encoder has to be a function.");var d=void 0===n.delimiter?s.delimiter:n.delimiter,c="boolean"==typeof n.strictNullHandling?n.strictNullHandling:s.strictNullHandling,u="boolean"==typeof n.skipNulls?n.skipNulls:s.skipNulls,f="boolean"==typeof n.encode?n.encode:s.encode,p="function"==typeof n.encoder?n.encoder:s.encoder,m="function"==typeof n.sort?n.sort:null,h=void 0!==n.allowDots&&n.allowDots,b="function"==typeof n.serializeDate?n.serializeDate:s.serializeDate,g="boolean"==typeof n.encodeValuesOnly?n.encodeValuesOnly:s.encodeValuesOnly;if(void 0===n.format)n.format=a.default;else if(!Object.prototype.hasOwnProperty.call(a.formatters,n.format))throw new TypeError("Unknown format option provided.");var v,w,x=a.formatters[n.format];"function"==typeof n.filter?(w=n.filter,r=w("",r)):Array.isArray(n.filter)&&(w=n.filter,v=w);var y=[];if("object"!=typeof r||null===r)return"";var k;k=n.arrayFormat in i?n.arrayFormat:"indices"in n?n.indices?"indices":"repeat":"indices";var _=i[k];v||(v=Object.keys(r)),m&&v.sort(m);for(var N=0;N<v.length;++N){var C=v[N];u&&null===r[C]||(y=y.concat(l(r[C],C,_,c,u,f?p:null,w,m,h,b,x,g)))}var F=y.join(d),j=!0===n.addQueryPrefix?"?":"";return F.length>0?j+F:""}},32:function(e,t,r){"use strict";var o=r(12),a=Object.prototype.hasOwnProperty,i={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:o.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},n=function(e,t){for(var r={},o=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,n=t.parameterLimit===1/0?void 0:t.parameterLimit,s=o.split(t.delimiter,n),l=0;l<s.length;++l){var d,c,u=s[l],f=u.indexOf("]="),p=-1===f?u.indexOf("="):f+1;-1===p?(d=t.decoder(u,i.decoder),c=t.strictNullHandling?null:""):(d=t.decoder(u.slice(0,p),i.decoder),c=t.decoder(u.slice(p+1),i.decoder)),a.call(r,d)?r[d]=[].concat(r[d]).concat(c):r[d]=c}return r},s=function(e,t,r){for(var o=t,a=e.length-1;a>=0;--a){var i,n=e[a];if("[]"===n)i=[],i=i.concat(o);else{i=r.plainObjects?Object.create(null):{};var s="["===n.charAt(0)&&"]"===n.charAt(n.length-1)?n.slice(1,-1):n,l=parseInt(s,10);!isNaN(l)&&n!==s&&String(l)===s&&l>=0&&r.parseArrays&&l<=r.arrayLimit?(i=[],i[l]=o):i[s]=o}o=i}return o},l=function(e,t,r){if(e){var o=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,i=/(\[[^[\]]*])/,n=/(\[[^[\]]*])/g,l=i.exec(o),d=l?o.slice(0,l.index):o,c=[];if(d){if(!r.plainObjects&&a.call(Object.prototype,d)&&!r.allowPrototypes)return;c.push(d)}for(var u=0;null!==(l=n.exec(o))&&u<r.depth;){if(u+=1,!r.plainObjects&&a.call(Object.prototype,l[1].slice(1,-1))&&!r.allowPrototypes)return;c.push(l[1])}return l&&c.push("["+o.slice(l.index)+"]"),s(c,t,r)}};e.exports=function(e,t){var r=t?o.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||o.isRegExp(r.delimiter)?r.delimiter:i.delimiter,r.depth="number"==typeof r.depth?r.depth:i.depth,r.arrayLimit="number"==typeof r.arrayLimit?r.arrayLimit:i.arrayLimit,r.parseArrays=!1!==r.parseArrays,r.decoder="function"==typeof r.decoder?r.decoder:i.decoder,r.allowDots="boolean"==typeof r.allowDots?r.allowDots:i.allowDots,r.plainObjects="boolean"==typeof r.plainObjects?r.plainObjects:i.plainObjects,r.allowPrototypes="boolean"==typeof r.allowPrototypes?r.allowPrototypes:i.allowPrototypes,r.parameterLimit="number"==typeof r.parameterLimit?r.parameterLimit:i.parameterLimit,r.strictNullHandling="boolean"==typeof r.strictNullHandling?r.strictNullHandling:i.strictNullHandling,""===e||null===e||void 0===e)return r.plainObjects?Object.create(null):{};for(var a="string"==typeof e?n(e,r):e,s=r.plainObjects?Object.create(null):{},d=Object.keys(a),c=0;c<d.length;++c){var u=d[c],f=l(u,a[u],r);s=o.merge(s,f,r)}return o.compact(s)}},77:function(e,t,r){"use strict";var o=r(162),a=r.n(o),i=r(1),n=r.n(i);t.a={name:"vue-gic-header",props:["menuRouter","collapseFlag","projectName"],data:function(){return{repProjectName:"gic-web",activeCode:"",pathName:"",showItem:"none",summaryName:"",origin:"",cliqueFlag:"",isCollapse:!1,menuHeadRouter:[],menuHead:[],userInfo:{realName:"",gender:"",clerkCode:"",phoneNumber:"",positionName:""},userFormVisible:!1,formLabelWidth:"100px",userInfoForm:{realName:"",gender:"",clerkCode:"",phoneNumber:"",positionName:""},userFormRules:{realName:[{required:!0,message:"请输入姓名",trigger:"blur"}],gender:[{required:!0,message:"请选择性别",trigger:"change"}],clerkCode:[{required:!0,message:"请输入员工代码",trigger:"blur"}],phoneNumber:[{required:!0,message:"请输入手机号",trigger:"blur"},{pattern:/^1[34578]\d{9}$/,message:"手机号码格式不正确"}],positionName:[{required:!0,message:"请输入职位",trigger:"blur"}]},passFormVisible:!1,passwordForm:{oldPassword:"",newPassword:"",confirmNewPassword:""},passFormRules:{oldPassword:[{required:!0,message:"请输入旧密码",trigger:"blur"}],newPassword:[{required:!0,message:"请输入新密码",trigger:"blur"}],confirmNewPassword:[{required:!0,message:"请输入确认密码",trigger:"blur"}]},baseUrl:"",routePathName:"",accountStatus:1}},beforeMount:function(){var e=window.location.origin;"-1"!=e.indexOf("localhost")?this.baseUrl="http://gicdev.demogic.com":this.baseUrl=e},methods:{getLeftMenu:function(){var e=this,t={project:this.repProjectName,path:this.routePathName,requestProject:this.repProjectName};this.axios.post(this.baseUrl+"/api-auth/get-current-memu-data",n.a.stringify(t)).then(function(t){var r=t.data;if(0==r.errorCode)return void(e.activeCode=r.result.level2.menuCode);e.$message.error({duration:1e3,message:r.message})}).catch(function(t){e.$message.error({duration:1e3,message:error.message})})},showChild:function(){this.showItem="block"},hideChild:function(){this.showItem="none"},setNewData:function(e){var t=[],r=[];e.forEach(function(e){e.parentCode?r.push(e):t.push(e)}),t.forEach(function(e){e.children=[],r.forEach(function(t){t.parentCode==e.menuCode&&e.children.push(t)})}),this.menuHeadRouter=t},handleCollapse:function(){this.isCollapse=!this.isCollapse,this.$emit("collapseTag",this.isCollapse)},toUserInfo:function(){var e=JSON.parse(a()(this.userInfo));this.userInfoForm.realName=e.realName,this.userInfoForm.gender=parseInt(e.gender),this.userInfoForm.clerkCode=e.clerkCode,this.userInfoForm.phoneNumber=e.phoneNumber,this.userInfoForm.positionName=e.positionName,this.userFormVisible=!0},modifyUserInfo:function(){var e=this,t={realName:this.userInfoForm.realName,gender:this.userInfoForm.gender,clerkCode:this.userInfoForm.clerkCode,phoneNumber:this.userInfoForm.phoneNumber,positionName:this.userInfoForm.positionName,requestProject:this.repProjectName};this.axios.post(this.baseUrl+"/api-auth/modify-user-info",n.a.stringify(t)).then(function(t){var r=t.data;0==r.errorCode?(e.userFormVisible=!1,e.$message({message:"修改成功",type:"success"})):e.$message.error({duration:1e3,message:r.message})}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})},confirmModUserInfo:function(e){var t=this;this.$refs[e].validate(function(e){e&&t.modifyUserInfo()})},cancelModUserInfo:function(){this.userFormVisible=!1},toModifyInfo:function(){this.passFormVisible=!0,this.passwordForm.newPassword="",this.passwordForm.oldPassword="",this.passwordForm.confirmNewPassword=""},modifyUserPassword:function(){var e=this,t={oldPassword:this.passwordForm.oldPassword,newPassword:this.passwordForm.newPassword,requestProject:this.repProjectName};return this.passwordForm.oldPassword.trim()&&this.passwordForm.newPassword.trim()&&this.passwordForm.confirmNewPassword.trim()?this.passwordForm.newPassword.trim()!=this.passwordForm.confirmNewPassword.trim()?(this.$message.error({duration:1e3,message:"两次密码输入不一致!"}),!1):void this.axios.post(this.baseUrl+"/api-auth/modify-password",n.a.stringify(t)).then(function(t){var r=t.data;0==r.errorCode?(e.passFormVisible=!1,e.$message({message:"修改成功",type:"success"}),e.postLoginOut()):e.$message.error({duration:1e3,message:r.message})}).catch(function(t){e.$message.error({duration:1e3,message:t.message})}):(this.$message.error({duration:1e3,message:"请输入密码"}),!1)},confirmModPass:function(e){var t=this;this.$refs[e].validate(function(e){e||t.modifyUserPassword()})},cancelModPass:function(){this.passFormVisible=!1},userFormClose:function(){this.userFormVisible=!1},passFormClose:function(){this.passFormVisible=!1},toLoginOut:function(){var e=this;this.$confirm("确认退出吗?","提示",{type:"warning"}).then(function(){e.postLoginOut()}).catch(function(){e.$message.error({duration:1e3,message:error.message})})},postLoginOut:function(){var e=this;this.axios.post(this.baseUrl+"/api-auth/do-logout",{}).then(function(t){var r=t.data;if(0==r.errorCode)return e.$message({message:"退出成功",type:"success"}),void(window.location.href=window.location.origin+"/gic-web/#/");e.$message.error({duration:1e3,message:r.message})}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})},isClique:function(){var e=this,t={requestProject:this.repProjectName};this.axios.post(this.baseUrl+"/api-auth/is-relevance-clique",n.a.stringify(t)).then(function(t){var r=t.data;if(0==r.errorCode)return void(e.cliqueFlag=r.result);e.$message.error({duration:1e3,message:r.message})}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})},toRouter:function(e,t,r){this.showItem="none",this.activeCode=r;var o={path:"/"+e,name:t};this.$emit("toRouterView",o)},getUserInfo:function(){var e=this,t={requestProject:this.repProjectName};this.axios.post(this.baseUrl+"/api-auth/get-login-user-info",n.a.stringify(t)).then(function(t){var r=t.data;if(0==r.errorCode)return e.userInfo.realName=r.result.realName,e.userInfo.gender=r.result.clerkGender,e.userInfo.clerkCode=r.result.clerkCode,e.userInfo.phoneNumber=r.result.loginName,e.userInfo.positionName=r.result.positionName,void(document.title=r.result.enterpriseDTO.brandName||r.result.enterpriseDTO.enterpriseName);e.$message.error({duration:1e3,message:r.message})}).catch(function(e){this.$message.error({duration:1e3,message:e.message})})},getHeaderMenu:function(){var e=this,t={project:this.repProjectName,requestProject:this.repProjectName};this.axios.post(this.baseUrl+"/api-auth/login-clerk-menu",n.a.stringify(t)).then(function(t){var r=t.data;if(0==r.errorCode)return e.menuHeadRouter=r.result,void e.getLeftMenu();e.$message.error({duration:1e3,message:r.message})}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})},getMenu:function(){var e=this,t={requestProject:this.repProjectName};this.axios.post(this.baseUrl+"/api-auth/login-clerk-top-project",n.a.stringify(t)).then(function(t){var r=t.data;if(0==r.errorCode)return void(e.menuHead=r.result);e.$message.error({duration:1e3,message:r.message})}).catch(function(t){e.$message.error({duration:1e3,message:t.message})})},getAccountStateInfo:function(){var e=this;this.axios.post(this.baseUrl+"/api-marketing/account-state-info",n.a.stringify({requestProject:"gic-web"})).then(function(t){0===t.data.errorCode&&(e.accountStatus=t.data.result.status||1,localStorage.setItem("accountStatus",e.accountStatus))})},toRecharge:function(){window.location.href="/marketing/#/recharge/do"}},watch:{$route:{handler:function(e,t){this.summaryName=e.path,"-1"!=this.summaryName.indexOf("memberSummary")&&(this.activeCode="")},deep:!0},collapseFlag:function(e,t){this.isCollapse=e},userInfo:function(e,t){this.userInfo=e},projectName:function(e,t){this.repProjectName=e||"gic-web"}},mounted:function(){this.summaryName=this.$route.path,this.routePathName=window.location.hash.split("/")[1],-1!=this.routePathName.indexOf("?")&&(this.routePathName=this.routePathName.split("?")[0]),-1!=this.routePathName.indexOf("/")&&(this.routePathName=this.routePathName.split("/")[0]),this.repProjectName=this.projectName||"gic-web",this.pathName=this.repProjectName,this.isCollapse=this.collapseFlag,this.getUserInfo(),this.getHeaderMenu(),this.origin=window.location.origin,this.getMenu(),this.getAccountStateInfo()}}}})});
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/css/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link href=/marketing/static/css/main.dab2952454dc4742e476d242448b0300.css rel=stylesheet></head><body><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.07.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.15.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script type=text/javascript src=/marketing/static/js/manifest.0a85049e489e85ac5f0a.js></script><script type=text/javascript src=/marketing/static/js/vendor.15e47b251ca9f81106a4.js></script><script type=text/javascript src=/marketing/static/js/main.91b99d7f8d8cf4bd2ce2.js></script></body></html> <!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" href=./static/img/favicon.ico><title>GIC后台</title><link rel=stylesheet type=text/css href=static/css/iconfont.css><link rel=stylesheet type=text/css href=static/css/common.css><link href=/marketing/static/css/main.d03563e9478456e92ff7e590f71edca5.css rel=stylesheet></head><body><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.5.2/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.07.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/store.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/img-preview.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/member-group.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-card.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/confirm-people.2.0.01.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.15.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/input.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/delete.2.0.00.js></script><script type=text/javascript src=/marketing/static/js/manifest.0a85049e489e85ac5f0a.js></script><script type=text/javascript src=/marketing/static/js/vendor.15e47b251ca9f81106a4.js></script><script type=text/javascript src=/marketing/static/js/main.65f9180c778361a67583.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.
import vueGicAsideMenu from './component.vue'; // 导入组件
const vueGicAside = {
install(Vue, options) {
Vue.component(vueGicAsideMenu.name, vueGicAsideMenu); // vueGicAsideMenu.name 组件的name属性
// 类似通过 this.$xxx 方式调用插件的 其实只是挂载到原型上而已
// Vue.prototype.$xxx // 最终可以在任何地方通过 this.$xxx 调用
// 虽然没有明确规定用$开头 但是大家都默认遵守这个规定
}
};
if (typeof window !== 'undefined' && window.Vue) {
window.Vue.use(vueGicAside);
}
export default vueGicAside;
// export {
// vueGicAsideMenu
// }
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<div class="layout-container" :style="{ height: bodyHeight + 'px' }"> <div class="layout-container" :style="{ height: bodyHeight + 'px' }">
<vue-gic-header class="user-header-pop" style="z-index: 1999;" :projectName="projectName" :collapseFlag="collapseFlag" @collapseTag="collapseTagHandler" @toRouterView="toRouterView"></vue-gic-header> <vue-gic-header class="user-header-pop" style="z-index: 1999;" :projectName="projectName" :collapseFlag="collapseFlag" @collapseTag="collapseTagHandler" @toRouterView="toRouterView"></vue-gic-header>
<div class="layout"> <div class="layout">
<vue-gic-aside-menu class="layout-left" v-if="asideShow" :projectName="projectName" :leftModulesName="leftModulesName" :collapseFlag.sync="collapseFlag"></vue-gic-aside-menu> <aside-menu class="layout-left" v-if="asideShow" :projectName="projectName" :leftModulesName="leftModulesName" :collapseFlag.sync="collapseFlag"></aside-menu>
<div class="layout-right" :class="[{ asideShow: asideShow }, { collapseFlag: asideShow && collapseFlag }]"> <div class="layout-right" :class="[{ asideShow: asideShow }, { collapseFlag: asideShow && collapseFlag }]">
<div class="layout-title"> <div class="layout-title">
<el-breadcrumb class="dm-breadcrumb" separator="/"> <el-breadcrumb class="dm-breadcrumb" separator="/">
...@@ -25,7 +25,11 @@ ...@@ -25,7 +25,11 @@
</div> </div>
</template> </template>
<script> <script>
import asideMenu from '../aside-menu';
export default { export default {
components: {
asideMenu
},
data() { data() {
return { return {
collapseFlag: false, collapseFlag: false,
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<el-table-column :show-overflow-tooltip="true" :min-width="100" align="left" prop="subName" label="备注名"></el-table-column> <el-table-column :show-overflow-tooltip="true" :min-width="100" align="left" prop="subName" label="备注名"></el-table-column>
<el-table-column prop="" label="有效期" :min-width="100" :show-overflow-tooltip="false"> <el-table-column prop="" label="有效期" :min-width="100" :show-overflow-tooltip="false">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.cardEffectiveMode == 0">固定日期:{{ formateDateTimeByType(scope.row.beginDate, 'yyyy-MM-dd') + '至' + formateDateTimeByType(scope.row.endDate, 'yyyy-MM-dd') }}</div> <div v-if="scope.row.cardEffectiveMode == 0">固定日期:{{ formatDateTimeByType(scope.row.beginDate, 'yyyy-MM-dd') + '至' + formatDateTimeByType(scope.row.endDate, 'yyyy-MM-dd') }}</div>
<div v-if="scope.row.cardEffectiveMode == 1">领取后{{ (scope.row.startDay === 0 ? '当' : scope.row.startDay) + '天,有效天数' + scope.row.limitDay }}</div> <div v-if="scope.row.cardEffectiveMode == 1">领取后{{ (scope.row.startDay === 0 ? '当' : scope.row.startDay) + '天,有效天数' + scope.row.limitDay }}</div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -45,7 +45,7 @@ ...@@ -45,7 +45,7 @@
<script> <script>
import { getCardList } from '@/service/api/commonApi.js'; import { getCardList } from '@/service/api/commonApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
export default { export default {
props: { props: {
activeId: { activeId: {
...@@ -90,7 +90,7 @@ export default { ...@@ -90,7 +90,7 @@ export default {
}, },
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
listParams: { listParams: {
searchParam: '', searchParam: '',
currentPage: 1, currentPage: 1,
......
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
<script> <script>
import { loadImgTextList, deleteImageText } from '@/service/api/wechatApi.js'; import { loadImgTextList, deleteImageText } from '@/service/api/wechatApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import syncImgtext from './syncImgtext'; import syncImgtext from './syncImgtext';
export default { export default {
props: { props: {
...@@ -112,8 +112,8 @@ export default { ...@@ -112,8 +112,8 @@ export default {
this.textImgList = res.result.result || []; this.textImgList = res.result.result || [];
this.total = res.result.totalCount; this.total = res.result.totalCount;
this.textImgList.map(v => { this.textImgList.map(v => {
v.createTimeStr = formateDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm'); v.createTimeStr = formatDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm');
v.updateTimeStr = formateDateTimeByType(v.updateTime, 'yyyy-MM-dd-HH-mm'); v.updateTimeStr = formatDateTimeByType(v.updateTime, 'yyyy-MM-dd-HH-mm');
if (this.activeId === v.imageTextWechatId) { if (this.activeId === v.imageTextWechatId) {
this.selectedData = v; this.selectedData = v;
} }
......
...@@ -59,8 +59,8 @@ export default { ...@@ -59,8 +59,8 @@ export default {
}, },
submit() { submit() {
this.popoverShow = false; this.popoverShow = false;
console.log(this.newModel);
this.$emit('commit-store', this.newModel); this.$emit('commit-store', this.newModel);
this.$store.commit('mutations_setStoreObj', this.newModel);
}, },
close() { close() {
this.popoverShow = false; this.popoverShow = false;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import config from '@/config'; import config from '@/config';
let baseUrl = window.location.protocol + '//' + window.location.host || ''; let baseUrl = window.location.protocol + '//' + window.location.host || '';
// if (config.api === '') { // if (config.api === '') {
...@@ -180,7 +180,7 @@ export default { ...@@ -180,7 +180,7 @@ export default {
if (cardticket.cardEffectiveMode) { if (cardticket.cardEffectiveMode) {
html += `<p style="font-size: 12px; color:white;">领取后${cardticket.startDay} - ${cardticket.startDay + cardticket.limitDay}天</p>`; html += `<p style="font-size: 12px; color:white;">领取后${cardticket.startDay} - ${cardticket.startDay + cardticket.limitDay}天</p>`;
} else { } else {
html += `<p style="font-size: 12px; color:white;">${formateDateTimeByType(cardticket.beginDate, 'yyyy-MM-dd')}${formateDateTimeByType(cardticket.endDate, 'yyyy-MM-dd')}</p>`; html += `<p style="font-size: 12px; color:white;">${formatDateTimeByType(cardticket.beginDate, 'yyyy-MM-dd')}${formatDateTimeByType(cardticket.endDate, 'yyyy-MM-dd')}</p>`;
} }
html += '</div>'; html += '</div>';
......
...@@ -4,9 +4,7 @@ import router from './router'; ...@@ -4,9 +4,7 @@ import router from './router';
import store from './store'; import store from './store';
import { axios } from './service/api/index'; import { axios } from './service/api/index';
import directives from './directives'; import directives from './directives';
import vueGicAsideMenu from '@/components/aside-menu';
Vue.config.productionTip = false; Vue.config.productionTip = false;
Vue.use(vueGicAsideMenu);
Vue.prototype.axios = axios; Vue.prototype.axios = axios;
Vue.prototype.axios.withCredentials = true; Vue.prototype.axios.withCredentials = true;
Object.keys(directives).map(item => Vue.directive(item, directives[item])); Object.keys(directives).map(item => Vue.directive(item, directives[item]));
......
import Vue from 'vue';
export default {
methods: {
nonnegative(val) {
if (val < 0) {
val = 0;
this.$tips({ type: 'warning', message: '不能为负值' });
}
}
}
};
...@@ -58,7 +58,7 @@ export default { ...@@ -58,7 +58,7 @@ export default {
name: '大转盘查看', name: '大转盘查看',
component: dzpForm, component: dzpForm,
meta: { meta: {
type: 'detail', type: 'info',
path: '/game/dzp' path: '/game/dzp'
} }
}, },
...@@ -101,7 +101,7 @@ export default { ...@@ -101,7 +101,7 @@ export default {
name: '刮刮卡详情', name: '刮刮卡详情',
component: ggkForm, component: ggkForm,
meta: { meta: {
type: 'detail', type: 'info',
path: '/game/ggk' path: '/game/ggk'
} }
}, },
......
// 短信营销 // 短信营销
import message from '../../views/message'; import message from '../../views/message';
import addRecord from '../../views/message/addRecord'; import form from '../../views/message/form';
import record from '../../views/message/record'; import record from '../../views/message/record';
import temp from '../../views/message/temp'; import temp from '../../views/message/temp';
import addTemp from '../../views/message/addTemp'; import addTemp from '../../views/message/addTemp';
...@@ -50,7 +50,7 @@ export default { ...@@ -50,7 +50,7 @@ export default {
{ {
path: 'record/add', path: 'record/add',
name: '新建群发', name: '新建群发',
component: addRecord, component: form,
meta: { meta: {
path: '/message/record' path: '/message/record'
} }
......
import test from '@/test';
import staticCom from '@/test/example/static-com';
import marketingEvent from '@/test/example/marketing-event';
import storeNew from '@/test/example/store-new';
import card from '@/test/example/card';
import linkTools from '@/test/example/link-tools';
import dmTable from '@/test/example/dm-table';
import wxText from '@/test/example/wx-text';
export default {
path: '/test',
name: '测试组件',
component: test,
redirect: '/test/marketingEvent',
children: [
{
path: 'staticcom',
name: '静态组件',
component: staticCom
},
{
path: 'storeNew',
name: '门店组件',
component: storeNew
},
{
path: 'marketingEvent',
name: '营销事件组件',
component: marketingEvent
},
{
path: 'card',
name: '卡券弹窗组件',
component: card
},
{
path: 'linktools',
name: '链接小工具',
component: linkTools
},
{
path: 'table',
name: '表格封装',
component: dmTable
},
{
path: 'wxtext',
name: '微信文本编辑器',
component: wxText
}
]
};
...@@ -4,8 +4,6 @@ import page403 from '@/views/error/403'; ...@@ -4,8 +4,6 @@ import page403 from '@/views/error/403';
import page404 from '@/views/error/404'; import page404 from '@/views/error/404';
import page500 from '@/views/error/500'; import page500 from '@/views/error/500';
// import test from './modules/test';
//微信营销 //微信营销
import wechat from './modules/wechat'; import wechat from './modules/wechat';
//游戏营销 //游戏营销
...@@ -55,5 +53,4 @@ export default [ ...@@ -55,5 +53,4 @@ export default [
name: '未知领域', name: '未知领域',
component: page404 component: page404
} }
// test
]; ];
...@@ -59,10 +59,6 @@ const mutations = { ...@@ -59,10 +59,6 @@ const mutations = {
} }
} }
}, },
mutations_setStoreObj(state, val) {
state.storeObj = val;
},
aside_handler(state, val) { aside_handler(state, val) {
state.asideShow = val; state.asideShow = val;
}, },
......
...@@ -31,7 +31,7 @@ export const fillZero = num => { ...@@ -31,7 +31,7 @@ export const fillZero = num => {
* @param {*时间} date * @param {*时间} date
* @param {*转换的格式} type * @param {*转换的格式} type
*/ */
export const formateDateTimeByType = (date, type = 'yyyy-MM-dd-HH-mm-ss') => { export const formatDateTimeByType = (date, type = 'yyyy-MM-dd-HH-mm-ss') => {
if (!date) { if (!date) {
return ''; return '';
} }
......
<template> <template>
<section class="dm-wrap"> <section class="dm-wrap">
<div class="pb22 clearfix"> <div class="pb22 clearfix">
<el-date-picker v-model="dateTime" :picker-options="pickerOptions" class="w250" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="callLogList"></el-date-picker> <el-date-picker v-model="dateTime" :picker-options="pickerOptions" class="w250" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="getTableList"></el-date-picker>
<el-select class="dm-select" clearable="" v-model="listParams.callStatus" placeholder="选择通话状态" @change="callLogList"> <el-select class="dm-select" clearable="" v-model="listParams.callStatus" placeholder="选择通话状态" @change="getTableList">
<el-option v-for="(v, i) in callStatusOption" :key="i" :label="v.label" :value="v.value"></el-option> <el-option v-for="(v, i) in callStatusOption" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select> </el-select>
<el-select class="dm-select" clearable v-model="listParams.telTaskType" placeholder="选择类型" @change="callLogList"> <el-select class="dm-select" clearable v-model="listParams.telTaskType" placeholder="选择类型" @change="getTableList">
<el-option v-for="(v, i) in telTaskTypeOption" :key="i" :label="v.label" :value="v.value"></el-option> <el-option v-for="(v, i) in telTaskTypeOption" :key="i" :label="v.label" :value="v.value"></el-option>
</el-select> </el-select>
<el-input v-model="listParams.phoneNumber" class="w200" placeholder="输入号码查询" clearable @change="search"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input> <el-input v-model="listParams.phoneNumber" class="w200" placeholder="输入号码查询" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
</div> </div>
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading"> <el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading">
<el-table-column align="left" width="160" prop="callBeginTime" label="呼叫时间"> <el-table-column align="left" width="160" prop="callBeginTime" label="呼叫时间">
<template slot-scope="scope"> <template slot-scope="scope">
{{ formateDateTimeByType(scope.row.callBeginTime, 'yyyy-MM-dd-HH-mm-ss') }} {{ formatDateTimeByType(scope.row.callBeginTime, 'yyyy-MM-dd-HH-mm-ss') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="left" min-width="150" prop="clerkName" label="主叫"> <el-table-column align="left" min-width="150" prop="clerkName" label="主叫">
...@@ -60,15 +60,16 @@ ...@@ -60,15 +60,16 @@
</template> </template>
<script> <script>
import { callLogList } from '@/service/api/calllogApi.js'; import { callLogList } from '@/service/api/calllogApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import tableMethods from '@/mixins/tableMethods.js';
import { formatDateTimeByType } from '@/utils/index.js';
import filterAvatar from '@/mixins/filterAvater.js'; import filterAvatar from '@/mixins/filterAvater.js';
export default { export default {
name: 'call-log', name: 'call-log',
mixins: [filterAvatar], mixins: [filterAvatar, tableMethods],
data() { data() {
const _vm = this; const that = this;
return { return {
formateDateTimeByType, formatDateTimeByType,
defaultAvatar: require('../../assets/img/head_default.png'), defaultAvatar: require('../../assets/img/head_default.png'),
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()], dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
callStatusOption: [{ value: '', label: '全部' }, { value: 1, label: '未接通' }, { value: 2, label: '接通' }], callStatusOption: [{ value: '', label: '全部' }, { value: 1, label: '未接通' }, { value: 2, label: '接通' }],
...@@ -80,9 +81,9 @@ export default { ...@@ -80,9 +81,9 @@ export default {
pickerOptions: { pickerOptions: {
onPick({ maxDate, minDate }) { onPick({ maxDate, minDate }) {
if (new Date(maxDate).getTime() - new Date(minDate).getTime() > 90 * 24 * 60 * 60 * 1000) { if (new Date(maxDate).getTime() - new Date(minDate).getTime() > 90 * 24 * 60 * 60 * 1000) {
_vm.$tips({ type: 'warning', message: '时间范围不能大于90天' }); that.$tips({ type: 'warning', message: '时间范围不能大于90天' });
_vm.$nextTick(_ => { that.$nextTick(_ => {
_vm.dateTime = ['', '']; that.dateTime = ['', ''];
}); });
} }
}, },
...@@ -95,27 +96,14 @@ export default { ...@@ -95,27 +96,14 @@ export default {
created() { created() {
this.$store.commit('aside_handler', false); this.$store.commit('aside_handler', false);
this.$store.commit('mutations_breadcrumb', [{ name: '会员管理', path: '' }, { name: '通话记录', path: '' }]); this.$store.commit('mutations_breadcrumb', [{ name: '会员管理', path: '' }, { name: '通话记录', path: '' }]);
this.callLogList(); this.getTableList();
}, },
methods: { methods: {
/**表格方法 */
search() {
this.listParams.currentPage = 1;
this.callLogList();
},
handleSizeChange(val) {
this.listParams.pageSize = val;
this.callLogList();
},
handleCurrentChange(val) {
this.listParams.currentPage = val;
this.callLogList();
},
//列表请求 //列表请求
async callLogList() { async getTableList() {
if (this.dateTime) { if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.beginTime = ''; this.listParams.beginTime = '';
this.listParams.endTime = ''; this.listParams.endTime = '';
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</template> </template>
<script> <script>
import { cardChannelAnalysis, cardTrendEchart } from '@/service/api/cardApi.js'; import { cardChannelAnalysis, cardTrendEchart } from '@/service/api/cardApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import VeLine from 'v-charts/lib/line.common'; import VeLine from 'v-charts/lib/line.common';
import G2 from '@antv/g2'; import G2 from '@antv/g2';
import DataSet from '@antv/data-set'; import DataSet from '@antv/data-set';
...@@ -37,7 +37,7 @@ export default { ...@@ -37,7 +37,7 @@ export default {
xAxisType: 'time' xAxisType: 'time'
}; };
return { return {
formateDateTimeByType, formatDateTimeByType,
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()], dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
dateTime2: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()], dateTime2: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
loading: false, loading: false,
...@@ -130,8 +130,8 @@ export default { ...@@ -130,8 +130,8 @@ export default {
endTime: '' endTime: ''
}; };
if (this.dateTime2) { if (this.dateTime2) {
params.beginTime = formateDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd'); params.beginTime = formatDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
params.endTime = formateDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd'); params.endTime = formatDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
} else { } else {
params.beginTime = ''; params.beginTime = '';
params.endTime = ''; params.endTime = '';
...@@ -150,8 +150,8 @@ export default { ...@@ -150,8 +150,8 @@ export default {
//加载图表 //加载图表
async cardTrendEchart() { async cardTrendEchart() {
if (this.dateTime) { if (this.dateTime) {
this.chartParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.chartParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.chartParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.chartParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.chartParams.beginTime = ''; this.chartParams.beginTime = '';
this.chartParams.endTime = ''; this.chartParams.endTime = '';
...@@ -188,6 +188,7 @@ export default { ...@@ -188,6 +188,7 @@ export default {
console.log(err); console.log(err);
} }
}, },
// 画图方法
initCharts(data) { initCharts(data) {
var chart = new G2.Chart({ var chart = new G2.Chart({
container: 'mountNode', container: 'mountNode',
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<el-input v-model="listParams.searchParam" class="w300" placeholder="请输入订单信息" @change="search"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input> <el-input v-model="listParams.searchParam" class="w300" placeholder="请输入订单信息" @change="search"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<span class="fz12 gray pl20">*仅显示满足核销条件的订单 </span> <span class="fz12 gray pl20">*仅显示满足核销条件的订单 </span>
</div> </div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading" @row-click="chooseCard"> <el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading" @row-click="rowClick">
<el-table-column :show-overflow-tooltip="false" :width="60" align="left" prop="orderId" label="选择"> <el-table-column :show-overflow-tooltip="false" :width="60" align="left" prop="orderId" label="选择">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="sms-record_left label-hidden"> <div class="sms-record_left label-hidden">
...@@ -25,8 +25,10 @@ ...@@ -25,8 +25,10 @@
<script> <script>
import { listCoupcardOrder, writeOffCard } from '@/service/api/cardApi.js'; import { listCoupcardOrder, writeOffCard } from '@/service/api/cardApi.js';
import tableMethods from '@/mixins/tableMethods.js';
export default { export default {
name: 'card-order', name: 'card-order',
mixins: [tableMethods],
props: { props: {
obj: { obj: {
type: Object, type: Object,
...@@ -63,24 +65,12 @@ export default { ...@@ -63,24 +65,12 @@ export default {
show(val) { show(val) {
this.listParams.coupLogId = this.obj.coupLogId; this.listParams.coupLogId = this.obj.coupLogId;
this.listParams.memberId = this.obj.memberId; this.listParams.memberId = this.obj.memberId;
if (val) this.listCoupcardOrder(); if (val) this.getTableList();
} }
}, },
methods: { methods: {
search() {
this.listParams.currentPage = 1;
this.listCoupcardOrder();
},
handleSizeChange(val) {
this.listParams.pageSize = val;
this.listCoupcardOrder();
},
handleCurrentChange(val) {
this.listParams.currentPage = val;
this.listCoupcardOrder();
},
// 加载列表 // 加载列表
async listCoupcardOrder() { async getTableList() {
this.loading = true; this.loading = true;
try { try {
let res = await listCoupcardOrder(this.listParams); let res = await listCoupcardOrder(this.listParams);
...@@ -94,7 +84,8 @@ export default { ...@@ -94,7 +84,8 @@ export default {
close() { close() {
this.$emit('update:show', false); this.$emit('update:show', false);
}, },
chooseCard(row) { // 点击行选择卡券
rowClick(row) {
this.selectedId = row.orderId; this.selectedId = row.orderId;
this.selectedObj = row; this.selectedObj = row;
}, },
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading"> <el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading">
<el-table-column :show-overflow-tooltip="true" width="160" align="left" prop="createTime" label="操作时间"> <el-table-column :show-overflow-tooltip="true" width="160" align="left" prop="createTime" label="操作时间">
<template slot-scope="scope"> <template slot-scope="scope">
<p>{{ formateDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p> <p>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :show-overflow-tooltip="true" width="160" align="left" prop="orderNumber" label="订单流水号"> <el-table-column :show-overflow-tooltip="true" width="160" align="left" prop="orderNumber" label="订单流水号">
...@@ -61,14 +61,14 @@ ...@@ -61,14 +61,14 @@
</template> </template>
<script> <script>
import { coupcardCheckList, exportCoupcardCheckExcel } from '@/service/api/cardApi.js'; import { coupcardCheckList, exportCoupcardCheckExcel } from '@/service/api/cardApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import talbeMethods from '@/mixins/tableMethods.js'; import talbeMethods from '@/mixins/tableMethods.js';
export default { export default {
name: 'card-check', name: 'card-check',
mixins: [talbeMethods], mixins: [talbeMethods],
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
defaultAvatar: require('../../assets/img/head_default.png'), defaultAvatar: require('../../assets/img/head_default.png'),
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()], dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
listParams: { listParams: {
...@@ -120,8 +120,8 @@ export default { ...@@ -120,8 +120,8 @@ export default {
/**-------辅助方法---------- */ /**-------辅助方法---------- */
dataTimeFormat() { dataTimeFormat() {
if (this.dateTime) { if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.beginTime = ''; this.listParams.beginTime = '';
this.listParams.endTime = ''; this.listParams.endTime = '';
......
/** /**
* 卡券新增编辑 * 卡券新增编辑
*/ */
import dmUploadImg from '../../components/upload/img'; import dmUploadImg from '@/components/upload/img';
import imgTextDrag from './partials/imgtext-drag'; import imgTextDrag from './partials/imgtext-drag';
import { formateDateTimeByType } from '../../utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import { cardGetShelfs, getCardDetail, saveUpdateCard, copyCardDetailService } from '../../service/api/cardApi.js'; import { cardGetShelfs, getCardDetail, saveUpdateCard, copyCardDetailService } from '@/service/api/cardApi.js';
import dmGoodsInput from '../../components/goods-input/index.vue'; import dmGoodsInput from '@/components/goods-input/index.vue';
const initForm = { const initForm = {
auditingStatus: '', auditingStatus: '',
cardType: 0, // 1.卡券类型: 抵金券: 0; 折扣券: 1; 兑换券: 2 cardType: 0, // 1.卡券类型: 抵金券: 0; 折扣券: 1; 兑换券: 2
...@@ -468,8 +468,8 @@ export default { ...@@ -468,8 +468,8 @@ export default {
if (!this.form.dateTime) { if (!this.form.dateTime) {
card.beginDate = card.endDate = ''; card.beginDate = card.endDate = '';
} else { } else {
card.beginDate = formateDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd'); card.beginDate = formatDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd');
card.endDate = formateDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd'); card.endDate = formatDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd');
} }
} else { } else {
card.startDay = this.form.startDay || 0; card.startDay = this.form.startDay || 0;
......
...@@ -147,7 +147,7 @@ ...@@ -147,7 +147,7 @@
import { checkPutonMemberIds, saveUpdatePutonCard, getCardDetail, getCardPutonDetail } from '@/service/api/cardApi.js'; import { checkPutonMemberIds, saveUpdatePutonCard, getCardDetail, getCardPutonDetail } from '@/service/api/cardApi.js';
import { listTemplateVariables } from '@/service/api/msgApi.js'; import { listTemplateVariables } from '@/service/api/msgApi.js';
import { sceneSettingList } from '@/service/api/commonApi.js'; import { sceneSettingList } from '@/service/api/commonApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import itemCard from './partials/item-card.vue'; import itemCard from './partials/item-card.vue';
import varDialog from './partials/variables.vue'; import varDialog from './partials/variables.vue';
export default { export default {
...@@ -573,7 +573,7 @@ export default { ...@@ -573,7 +573,7 @@ export default {
params.memberIds = this.form.openIds; // 指定会员:memberType = 1, 多个会员memberId用逗号拼接 params.memberIds = this.form.openIds; // 指定会员:memberType = 1, 多个会员memberId用逗号拼接
} }
if (this.form.putOnType) { if (this.form.putOnType) {
params.putOnTime = formateDateTimeByType(this.form.putOnTime, 'yyyy-MM-dd-HH-mm-ss'); params.putOnTime = formatDateTimeByType(this.form.putOnTime, 'yyyy-MM-dd-HH-mm-ss');
} }
if (this.$route.meta.type === 'edit') { if (this.$route.meta.type === 'edit') {
params.coupCardPutOnId = this.$route.params.id; // 投放主键ID, 新建不传; 修改传 params.coupCardPutOnId = this.$route.params.id; // 投放主键ID, 新建不传; 修改传
......
...@@ -9,10 +9,10 @@ ...@@ -9,10 +9,10 @@
<el-button @click="sortList('col4')">核销率<i class="el-icon--right" :class="listParams.sortBy === 'col4' ? 'el-icon-caret-top' : listParams.sortBy === 'col4 desc' ? 'el-icon-caret-bottom' : 'el-icon-d-caret'"></i></el-button> <el-button @click="sortList('col4')">核销率<i class="el-icon--right" :class="listParams.sortBy === 'col4' ? 'el-icon-caret-top' : listParams.sortBy === 'col4 desc' ? 'el-icon-caret-bottom' : 'el-icon-d-caret'"></i></el-button>
<el-button @click="sortList('col5')">核销额<i class="el-icon--right" :class="listParams.sortBy === 'col5' ? 'el-icon-caret-top' : listParams.sortBy === 'col5 desc' ? 'el-icon-caret-bottom' : 'el-icon-d-caret'"></i></el-button> <el-button @click="sortList('col5')">核销额<i class="el-icon--right" :class="listParams.sortBy === 'col5' ? 'el-icon-caret-top' : listParams.sortBy === 'col5 desc' ? 'el-icon-caret-bottom' : 'el-icon-d-caret'"></i></el-button>
</el-button-group> </el-button-group>
<el-select class="dm-select" v-model="listParams.cardType" placeholder="选择卡券类型" @change="cardPageList"> <el-select class="dm-select" v-model="listParams.cardType" placeholder="选择卡券类型" @change="refresh">
<el-option v-for="(item, index) in cardTypeOptions" :key="index" :label="item.label" :value="item.value"></el-option> <el-option v-for="(item, index) in cardTypeOptions" :key="index" :label="item.label" :value="item.value"></el-option>
</el-select> </el-select>
<el-input v-model="listParams.searchParam" class="w200 vertical-middle" placeholder="输入卡券名称/备注" clearable @change="cardPageList"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input> <el-input v-model="listParams.searchParam" class="w200 vertical-middle" placeholder="输入卡券名称/备注" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-button class="fr" type="primary" @click="$router.push('/card/add')">新增卡券</el-button> <el-button class="fr" type="primary" @click="$router.push('/card/add')">新增卡券</el-button>
</div> </div>
<ul class="clearfix" v-loading="loading" element-loading-text="拼命加载中"> <ul class="clearfix" v-loading="loading" element-loading-text="拼命加载中">
...@@ -30,8 +30,10 @@ ...@@ -30,8 +30,10 @@
import { cardPageList, deleteCard } from '@/service/api/cardApi.js'; import { cardPageList, deleteCard } from '@/service/api/cardApi.js';
import adjustStock from './partials/adjust-Stock'; import adjustStock from './partials/adjust-Stock';
import cardItem from './partials/card-item'; import cardItem from './partials/card-item';
import tableMethods from '@/mixins/tableMethods.js';
export default { export default {
name: 'card-list', name: 'card-list',
mixins: [tableMethods],
data() { data() {
return { return {
listParams: { listParams: {
...@@ -57,7 +59,7 @@ export default { ...@@ -57,7 +59,7 @@ export default {
}, },
created() { created() {
window.scrollTo(0, 0); window.scrollTo(0, 0);
this.cardPageList(); this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券库', path: '' }]); this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券库', path: '' }]);
}, },
methods: { methods: {
...@@ -73,17 +75,9 @@ export default { ...@@ -73,17 +75,9 @@ export default {
sortList(val) { sortList(val) {
this.sortFlag = !this.sortFlag; this.sortFlag = !this.sortFlag;
this.listParams.sortBy = this.sortFlag ? val + ' desc' : val; this.listParams.sortBy = this.sortFlag ? val + ' desc' : val;
this.cardPageList(); this.refresh();
}, },
handleSizeChange(val) { async getTableList() {
this.listParams.pageSize = val;
this.cardPageList();
},
handleCurrentChange(val) {
this.listParams.currentPage = val;
this.cardPageList();
},
async cardPageList() {
this.loading = true; this.loading = true;
try { try {
let res = await cardPageList(this.listParams); let res = await cardPageList(this.listParams);
...@@ -110,7 +104,7 @@ export default { ...@@ -110,7 +104,7 @@ export default {
async deleteCard(coupCardId) { async deleteCard(coupCardId) {
await deleteCard({ coupCardId }); await deleteCard({ coupCardId });
this.$tips({ type: 'success', message: '删除成功!' }); this.$tips({ type: 'success', message: '删除成功!' });
this.cardPageList(); this.getTableList();
} }
} }
}; };
......
...@@ -48,6 +48,7 @@ export default { ...@@ -48,6 +48,7 @@ export default {
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '/card/shelf' }, { name: '卡券展架管理', path: '' }]); this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '/card/shelf' }, { name: '卡券展架管理', path: '' }]);
}, },
methods: { methods: {
// 加载列表
async getTableList() { async getTableList() {
this.loading = true; this.loading = true;
try { try {
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<div class="card-item__detail"> <div class="card-item__detail">
<p class="ellipsis-100"> <p class="ellipsis-100">
有效期:<span v-if="item.cardEffectiveMode !== 0">领取后第{{ item.startDay + 1 }}-{{ item.limitDay + item.startDay }}</span> 有效期:<span v-if="item.cardEffectiveMode !== 0">领取后第{{ item.startDay + 1 }}-{{ item.limitDay + item.startDay }}</span>
<span v-if="item.cardEffectiveMode === 0">{{ formateDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formateDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</span> <span v-if="item.cardEffectiveMode === 0">{{ formatDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formatDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</span>
</p> </p>
<p class="ellipsis-100"> <p class="ellipsis-100">
使用条件:<el-popover placement="top-start" width="200" trigger="hover" :content="item.useCondition | filterUseCondition"> 使用条件:<el-popover placement="top-start" width="200" trigger="hover" :content="item.useCondition | filterUseCondition">
...@@ -61,7 +61,7 @@ ...@@ -61,7 +61,7 @@
<script> <script>
import renderTemp from './status-render.js'; import renderTemp from './status-render.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
export default { export default {
props: { props: {
item: { item: {
...@@ -80,7 +80,7 @@ export default { ...@@ -80,7 +80,7 @@ export default {
}, },
data() { data() {
return { return {
formateDateTimeByType formatDateTimeByType
}; };
}, },
components: { components: {
......
...@@ -47,8 +47,9 @@ ...@@ -47,8 +47,9 @@
<script> <script>
import draggable from 'vuedraggable'; import draggable from 'vuedraggable';
import elUploadWrap from '../../../components/upload/el-upload-wrap'; import elUploadWrap from '@/components/upload/el-upload-wrap';
export default { export default {
name: 'imgtext-drag',
props: { props: {
list: Array, list: Array,
disabled: { disabled: {
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<div class="inline-block"> <div class="inline-block">
<p class="dm-card__item__title">{{ item.cardName }}</p> <p class="dm-card__item__title">{{ item.cardName }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode !== 0">领取后第{{ item.startDay + 1 }}-{{ item.limitDay + item.startDay }}</p> <p class="dm-card__item__desc" v-if="item.cardEffectiveMode !== 0">领取后第{{ item.startDay + 1 }}-{{ item.limitDay + item.startDay }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode === 0">{{ formateDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formateDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</p> <p class="dm-card__item__desc" v-if="item.cardEffectiveMode === 0">{{ formatDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formatDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</p>
</div> </div>
</div> </div>
<p class="dm-card__item--bottom"> <p class="dm-card__item--bottom">
...@@ -15,12 +15,12 @@ ...@@ -15,12 +15,12 @@
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils'; import { formatDateTimeByType } from '@/utils';
export default { export default {
name: 'item-card', name: 'item-card',
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
loadErrorImg: require('../../../assets/img/loaderror.png') loadErrorImg: require('../../../assets/img/loaderror.png')
}; };
}, },
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<el-table-column :show-overflow-tooltip="true" :min-width="100" align="left" prop="subName" label="备注名"></el-table-column> <el-table-column :show-overflow-tooltip="true" :min-width="100" align="left" prop="subName" label="备注名"></el-table-column>
<el-table-column prop="" label="有效期" :min-width="100" :show-overflow-tooltip="false"> <el-table-column prop="" label="有效期" :min-width="100" :show-overflow-tooltip="false">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.cardEffectiveMode == 0">固定日期:{{ formateDateTimeByType(scope.row.beginDate, 'yyyy-MM-dd') + '至' + formateDateTimeByType(scope.row.endDate, 'yyyy-MM-dd') }}</div> <div v-if="scope.row.cardEffectiveMode == 0">固定日期:{{ formatDateTimeByType(scope.row.beginDate, 'yyyy-MM-dd') + '至' + formatDateTimeByType(scope.row.endDate, 'yyyy-MM-dd') }}</div>
<div v-if="scope.row.cardEffectiveMode == 1">领取后{{ (scope.row.startDay === 0 ? '当' : scope.row.startDay) + '天,有效天数' + scope.row.limitDay }}</div> <div v-if="scope.row.cardEffectiveMode == 1">领取后{{ (scope.row.startDay === 0 ? '当' : scope.row.startDay) + '天,有效天数' + scope.row.limitDay }}</div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -44,7 +44,7 @@ ...@@ -44,7 +44,7 @@
<script> <script>
import { cardPageList, saveShelfCard } from '@/service/api/cardApi.js'; import { cardPageList, saveShelfCard } from '@/service/api/cardApi.js';
import { throttle } from '@/utils/index.js'; import { throttle } from '@/utils/index.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
export default { export default {
name: 'shelf-add', name: 'shelf-add',
props: { props: {
...@@ -65,7 +65,7 @@ export default { ...@@ -65,7 +65,7 @@ export default {
data() { data() {
return { return {
throttle, throttle,
formateDateTimeByType, formatDateTimeByType,
loading: false, loading: false,
listParams: { listParams: {
currentPage: 1, currentPage: 1,
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<el-table tooltipEffect="light" :data="recordList" style="width: 100%" v-loading="recordLoading" @sort-change="sortList"> <el-table tooltipEffect="light" :data="recordList" style="width: 100%" v-loading="recordLoading" @sort-change="sortList">
<el-table-column width="135" align="left" prop="receiveTime" label="领取时间" fixed="left"> <el-table-column width="135" align="left" prop="receiveTime" label="领取时间" fixed="left">
<template slot-scope="scope"> <template slot-scope="scope">
{{ formateDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm') }} {{ formatDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="80" align="left" prop="cardTypeExcel" label="卡券类型"> </el-table-column> <el-table-column width="80" align="left" prop="cardTypeExcel" label="卡券类型"> </el-table-column>
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<el-table-column min-width="100" align="left" prop="attentionStatus" label="关注状态"> </el-table-column> <el-table-column min-width="100" align="left" prop="attentionStatus" label="关注状态"> </el-table-column>
<el-table-column width="135" align="left" prop="transferDate" label="关注时间"> <el-table-column width="135" align="left" prop="transferDate" label="关注时间">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.transferDate ? formateDateTimeByType(scope.row.transferDate, 'yyyy-MM-dd-HH-mm') : '--' }} {{ scope.row.transferDate ? formatDateTimeByType(scope.row.transferDate, 'yyyy-MM-dd-HH-mm') : '--' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="140" header-align="left" align="left" :key="Math.random()" prop="clerkId" label="会员信息"> <el-table-column :show-overflow-tooltip="true" min-width="140" header-align="left" align="left" :key="Math.random()" prop="clerkId" label="会员信息">
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
</section> </section>
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import { templateReceiveCardPage, exportTemplateReceivedExcel } from '@/service/api/cardApi.js'; import { templateReceiveCardPage, exportTemplateReceivedExcel } from '@/service/api/cardApi.js';
import tableMethods from '@/mixins/tableMethods.js'; import tableMethods from '@/mixins/tableMethods.js';
export default { export default {
...@@ -56,7 +56,7 @@ export default { ...@@ -56,7 +56,7 @@ export default {
data() { data() {
return { return {
defaultAvatar: require('../../assets/img/head_default.png'), defaultAvatar: require('../../assets/img/head_default.png'),
formateDateTimeByType, formatDateTimeByType,
dateTime: [Date.now() - 3 * 30 * 24 * 60 * 60 * 1000, Date.now()], dateTime: [Date.now() - 3 * 30 * 24 * 60 * 60 * 1000, Date.now()],
dateTime2: ['', ''], dateTime2: ['', ''],
statusOptions: [{ value: '', label: '全部关注状态' }, { value: 0, label: '已关注' }, { value: 1, label: '未关注' }], statusOptions: [{ value: '', label: '全部关注状态' }, { value: 0, label: '已关注' }, { value: 1, label: '未关注' }],
...@@ -105,15 +105,15 @@ export default { ...@@ -105,15 +105,15 @@ export default {
async getTableList() { async getTableList() {
this.recordLoading = true; this.recordLoading = true;
if (this.dateTime) { if (this.dateTime) {
this.listParams.receiveBeginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.receiveBeginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.receiveEndTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.receiveEndTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.receiveBeginTime = ''; this.listParams.receiveBeginTime = '';
this.listParams.receiveEndTime = ''; this.listParams.receiveEndTime = '';
} }
if (this.dateTime2) { if (this.dateTime2) {
this.listParams.attentionBeginTime = formateDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd'); this.listParams.attentionBeginTime = formatDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
this.listParams.attentionEndTime = formateDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd'); this.listParams.attentionEndTime = formatDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.attentionBeginTime = ''; this.listParams.attentionBeginTime = '';
this.listParams.attentionEndTime = ''; this.listParams.attentionEndTime = '';
...@@ -128,15 +128,15 @@ export default { ...@@ -128,15 +128,15 @@ export default {
this.dialogVisible = true; this.dialogVisible = true;
this.excelUrl = exportTemplateReceivedExcel; this.excelUrl = exportTemplateReceivedExcel;
if (this.dateTime) { if (this.dateTime) {
this.listParams.receiveBeginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.receiveBeginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.receiveEndTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.receiveEndTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.receiveBeginTime = ''; this.listParams.receiveBeginTime = '';
this.listParams.receiveEndTime = ''; this.listParams.receiveEndTime = '';
} }
if (this.dateTime2) { if (this.dateTime2) {
this.listParams.attentionBeginTime = formateDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd'); this.listParams.attentionBeginTime = formatDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
this.listParams.attentionEndTime = formateDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd'); this.listParams.attentionEndTime = formatDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.attentionBeginTime = ''; this.listParams.attentionBeginTime = '';
this.listParams.attentionEndTime = ''; this.listParams.attentionEndTime = '';
......
...@@ -15,12 +15,12 @@ ...@@ -15,12 +15,12 @@
<el-table tooltipEffect="light" :data="recordList" style="width: 100%" v-loading="recordLoading" @sort-change="sortList"> <el-table tooltipEffect="light" :data="recordList" style="width: 100%" v-loading="recordLoading" @sort-change="sortList">
<el-table-column width="135" align="left" prop="receiveTime" label="领取时间" fixed="left" sortable="custom"> <el-table-column width="135" align="left" prop="receiveTime" label="领取时间" fixed="left" sortable="custom">
<template slot-scope="scope"> <template slot-scope="scope">
{{ formateDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm') }} {{ formatDateTimeByType(scope.row.receiveTime, 'yyyy-MM-dd-HH-mm') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="135" align="left" prop="writeOffTime" label="核销时间" fixed="left" sortable="custom"> <el-table-column width="135" align="left" prop="writeOffTime" label="核销时间" fixed="left" sortable="custom">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.useTime ? formateDateTimeByType(scope.row.useTime, 'yyyy-MM-dd-HH-mm') : '--' }} {{ scope.row.useTime ? formatDateTimeByType(scope.row.useTime, 'yyyy-MM-dd-HH-mm') : '--' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="140" header-align="left" align="left" :key="Math.random()" prop="clerkId" label="会员信息"> <el-table-column :show-overflow-tooltip="true" min-width="140" header-align="left" align="left" :key="Math.random()" prop="clerkId" label="会员信息">
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
</section> </section>
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import { cardRecordPage, coupcardDestroy, exportReceivedRecordExcel } from '@/service/api/cardApi.js'; import { cardRecordPage, coupcardDestroy, exportReceivedRecordExcel } from '@/service/api/cardApi.js';
import cardOrder from './card-order'; import cardOrder from './card-order';
import tableMethods from '@/mixins/tableMethods.js'; import tableMethods from '@/mixins/tableMethods.js';
...@@ -90,7 +90,7 @@ export default { ...@@ -90,7 +90,7 @@ export default {
data() { data() {
return { return {
defaultAvatar: require('../../assets/img/head_default.png'), defaultAvatar: require('../../assets/img/head_default.png'),
formateDateTimeByType, formatDateTimeByType,
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()], dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
dateTime2: ['', ''], dateTime2: ['', ''],
cardStatusOptions: [{ value: '', label: '全部卡券状态' }, { value: 4, label: '待核销' }, { value: 5, label: '已核销' }, { value: 6, label: '已过期' }, { value: 7, label: '已销毁' }, { value: 8, label: '已占用' }], cardStatusOptions: [{ value: '', label: '全部卡券状态' }, { value: 4, label: '待核销' }, { value: 5, label: '已核销' }, { value: 6, label: '已过期' }, { value: 7, label: '已销毁' }, { value: 8, label: '已占用' }],
...@@ -140,15 +140,15 @@ export default { ...@@ -140,15 +140,15 @@ export default {
async getTableList() { async getTableList() {
this.recordLoading = true; this.recordLoading = true;
if (this.dateTime) { if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.beginTime = ''; this.listParams.beginTime = '';
this.listParams.endTime = ''; this.listParams.endTime = '';
} }
if (this.dateTime2) { if (this.dateTime2) {
this.listParams.writeOffBeginTime = formateDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd'); this.listParams.writeOffBeginTime = formatDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
this.listParams.writeOffEndTime = formateDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd'); this.listParams.writeOffEndTime = formatDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.writeOffBeginTime = ''; this.listParams.writeOffBeginTime = '';
this.listParams.writeOffEndTime = ''; this.listParams.writeOffEndTime = '';
...@@ -189,15 +189,15 @@ export default { ...@@ -189,15 +189,15 @@ export default {
this.dialogVisible = true; this.dialogVisible = true;
this.excelUrl = exportReceivedRecordExcel; this.excelUrl = exportReceivedRecordExcel;
if (this.dateTime) { if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.beginTime = ''; this.listParams.beginTime = '';
this.listParams.endTime = ''; this.listParams.endTime = '';
} }
if (this.dateTime2) { if (this.dateTime2) {
this.listParams.writeOffBeginTime = formateDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd'); this.listParams.writeOffBeginTime = formatDateTimeByType(this.dateTime2[0], 'yyyy-MM-dd');
this.listParams.writeOffEndTime = formateDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd'); this.listParams.writeOffEndTime = formatDateTimeByType(this.dateTime2[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.writeOffBeginTime = ''; this.listParams.writeOffBeginTime = '';
this.listParams.writeOffEndTime = ''; this.listParams.writeOffEndTime = '';
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<el-table tooltipEffect="light" :data="recordList" style="width: 100%" row-key="putonTime" v-loading="loading"> <el-table tooltipEffect="light" :data="recordList" style="width: 100%" row-key="putonTime" v-loading="loading">
<el-table-column width="160" align="left" prop="putonTime" label="投放时间" fixed="left"> <el-table-column width="160" align="left" prop="putonTime" label="投放时间" fixed="left">
<template slot-scope="scope"> <template slot-scope="scope">
{{ formateDateTimeByType(scope.row.putonTime, 'yyyy-MM-dd-HH-mm') }} {{ formatDateTimeByType(scope.row.putonTime, 'yyyy-MM-dd-HH-mm') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column width="150" align="left" prop="cardName" label="卡券名称"> <el-table-column width="150" align="left" prop="cardName" label="卡券名称">
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
</template> </template>
<script> <script>
import { cardRecordPage, deleteCardPuton } from '@/service/api/cardApi.js'; import { cardRecordPage, deleteCardPuton } from '@/service/api/cardApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import timeCounts from '@/components/timeCount/index.vue'; import timeCounts from '@/components/timeCount/index.vue';
import tableMethods from '@/mixins/tableMethods.js'; import tableMethods from '@/mixins/tableMethods.js';
export default { export default {
...@@ -51,7 +51,7 @@ export default { ...@@ -51,7 +51,7 @@ export default {
}, },
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
loading: false, loading: false,
recordList: [], recordList: [],
recordHeader: [ recordHeader: [
......
<template> <template>
<section class="dm-wrap"> <section class="dm-wrap">
<div class="pb22"> <div class="pb22">
<vue-gic-store-group class="w200 pr4" :model="currentData" @commit-store="storeChange"></vue-gic-store-group> <store-group class="w200 pr4" :model="currentData" @commit-store="storeChange"></store-group>
<el-input class="w300" v-model="listParams.searchParam" clearable placeholder="输入门店名称/代码/地区名" @change="searchParam"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input> <el-input class="w300" v-model="listParams.searchParam" clearable placeholder="输入门店名称/代码/地区名" @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
</div> </div>
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading" @sort-change="sortList"> <el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading" @sort-change="sortList">
<el-table-column min-width="140" align="left" prop="shelfName" label="门店名称"> <el-table-column min-width="140" align="left" prop="shelfName" label="门店名称">
...@@ -34,8 +34,10 @@ ...@@ -34,8 +34,10 @@
<script> <script>
import { pageCardShelfs } from '@/service/api/cardApi.js'; import { pageCardShelfs } from '@/service/api/cardApi.js';
import storeGroup from '@/components/storeGroup/index'; import storeGroup from '@/components/storeGroup/index';
import tableMethods from '@/mixins/tableMethods.js';
export default { export default {
name: 'card-record-send', name: 'card-record-send',
mixins: [tableMethods],
data() { data() {
return { return {
loading: false, loading: false,
...@@ -55,41 +57,34 @@ export default { ...@@ -55,41 +57,34 @@ export default {
storeGroup storeGroup
}, },
created() { created() {
this.pageCardShelfs(); this.getTableList();
this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '' }]); this.$store.commit('mutations_breadcrumb', [{ name: '营销管理', path: '' }, { name: '卡券营销', path: '' }, { name: '卡券展架', path: '' }]);
}, },
methods: { methods: {
//门店回调 //门店回调
storeChange(val) { storeChange(val) {
console.log(val);
this.currentData = val; this.currentData = val;
if (val.id) { if (val.id) {
this.listParams.storeGroupId = val.id; this.listParams.storeGroupId = val.id;
this.pageCardShelfs(); this.refresh();
} }
}, },
searchParam() { async getTableList() {
this.listParams.currentPage = 1;
this.pageCardShelfs();
},
handleSizeChange(val) {
this.listParams.pageSize = val;
this.pageCardShelfs();
},
handleCurrentChange(val) {
this.listParams.currentPage = val;
this.pageCardShelfs();
},
async pageCardShelfs() {
this.loading = true; this.loading = true;
try {
let res = await pageCardShelfs(this.listParams); let res = await pageCardShelfs(this.listParams);
this.tableList = res.result.result; this.tableList = res.result.result || [];
this.total = res.result.totalCount; this.total = res.result.totalCount || 0;
this.loading = false; this.loading = false;
} catch (err) {
console.log(err);
}
}, },
//列表 排序 //列表 排序
sortList(obj) { sortList(obj) {
this.listParams.sortBy = obj.order === 'descending' ? obj.prop + ' desc' : obj.prop; this.listParams.sortBy = obj.order === 'descending' ? obj.prop + ' desc' : obj.prop;
this.pageCardShelfs(); this.getTableList();
} }
} }
}; };
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
</template> </template>
<script> <script>
import { ecmBatchSendInfos } from '@/service/api/ecmApi.js'; import { ecmBatchSendInfos } from '@/service/api/ecmApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import batchDialog from './batch-dialog'; import batchDialog from './batch-dialog';
export default { export default {
...@@ -59,7 +59,7 @@ export default { ...@@ -59,7 +59,7 @@ export default {
align: 'left', align: 'left',
fixed: 'left', fixed: 'left',
formatter(row) { formatter(row) {
return formateDateTimeByType(row.execTime, 'yyyy-MM-dd-HH-mm'); return formatDateTimeByType(row.execTime, 'yyyy-MM-dd-HH-mm');
} }
}, },
{ {
...@@ -123,8 +123,8 @@ export default { ...@@ -123,8 +123,8 @@ export default {
async ecmBatchSendInfos() { async ecmBatchSendInfos() {
this.loading = true; this.loading = true;
if (this.dateTime) { if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.beginTime = this.listParams.senendTimedEndTime = ''; this.listParams.beginTime = this.listParams.senendTimedEndTime = '';
} }
...@@ -139,7 +139,7 @@ export default { ...@@ -139,7 +139,7 @@ export default {
this.dialogShow = true; this.dialogShow = true;
this.dialogId = row.ecmPlanQuartzLogId; this.dialogId = row.ecmPlanQuartzLogId;
this.dialogEcmPlanName = this.$route.params.name; this.dialogEcmPlanName = this.$route.params.name;
this.dialogExecTime = formateDateTimeByType(row.execTime, 'yyyy-MM-dd-HH-mm-ss'); this.dialogExecTime = formatDateTimeByType(row.execTime, 'yyyy-MM-dd-HH-mm-ss');
console.log(this.dialogId); console.log(this.dialogId);
} }
} }
......
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
</template> </template>
<script> <script>
import { ecmCurrentSendInfos, ecmCurrentSendDetails, exportCurrentSendDetails } from '@/service/api/ecmApi.js'; import { ecmCurrentSendInfos, ecmCurrentSendDetails, exportCurrentSendDetails } from '@/service/api/ecmApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import memberInfo from '@/components/member-info/index.vue'; import memberInfo from '@/components/member-info/index.vue';
const typeOptions = [{ value: '', label: '所有类型' }, { value: 'teletext', label: '图文' }, { value: 'text', label: '文本' }, { value: 'image', label: '图片' }, { value: 'card', label: '卡券' }, { value: 'wxa', label: '小程序' }, { value: 'message', label: '短信' }, { value: 'teltask', label: '话务' }]; const typeOptions = [{ value: '', label: '所有类型' }, { value: 'teletext', label: '图文' }, { value: 'text', label: '文本' }, { value: 'image', label: '图片' }, { value: 'card', label: '卡券' }, { value: 'wxa', label: '小程序' }, { value: 'message', label: '短信' }, { value: 'teltask', label: '话务' }];
export default { export default {
...@@ -101,7 +101,7 @@ export default { ...@@ -101,7 +101,7 @@ export default {
minWidth: '120', minWidth: '120',
align: 'left', align: 'left',
formatter(row) { formatter(row) {
return formateDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm'); return formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm');
} }
}, },
{ label: '会员信息', prop: 'marketingType', minWidth: '120', align: 'left', component: 'member-info' }, { label: '会员信息', prop: 'marketingType', minWidth: '120', align: 'left', component: 'member-info' },
...@@ -206,8 +206,8 @@ export default { ...@@ -206,8 +206,8 @@ export default {
/*-----------辅助方法-------------*/ /*-----------辅助方法-------------*/
formatterTimeFunc() { formatterTimeFunc() {
if (this.dateTime) { if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.beginTime = this.listParams.senendTimedEndTime = ''; this.listParams.beginTime = this.listParams.senendTimedEndTime = '';
} }
......
...@@ -254,7 +254,7 @@ import { sceneSettingList } from '@/service/api/commonApi.js'; ...@@ -254,7 +254,7 @@ import { sceneSettingList } from '@/service/api/commonApi.js';
import { checkMessageSendCount } from '@/service/api/messageApi.js'; import { checkMessageSendCount } from '@/service/api/messageApi.js';
import { klflStrategy } from '@/service/api/gameApi.js'; // 会员等级列表接口 import { klflStrategy } from '@/service/api/gameApi.js'; // 会员等级列表接口
import marketingEvent from './marketing-event/index.vue'; import marketingEvent from './marketing-event/index.vue';
import { formateDateTimeByType, sleep } from '@/utils/index.js'; import { formatDateTimeByType, sleep } from '@/utils/index.js';
import itemCard from './partials/item-card.vue'; import itemCard from './partials/item-card.vue';
import varDialog from './partials/variables.vue'; import varDialog from './partials/variables.vue';
export default { export default {
...@@ -678,8 +678,8 @@ export default { ...@@ -678,8 +678,8 @@ export default {
memberSearchDTO: this.form.memberType ? this.form.memberGroupIds : this.form.memberSearchDTO, memberSearchDTO: this.form.memberType ? this.form.memberGroupIds : this.form.memberSearchDTO,
searchJson: this.getSaveData, searchJson: this.getSaveData,
expireType: this.form.expireType, expireType: this.form.expireType,
beginDate: this.form.expireType ? formateDateTimeByType(this.form.beginDate, 'yyyy-MM-dd-HH-mm-ss') : '', beginDate: this.form.expireType ? formatDateTimeByType(this.form.beginDate, 'yyyy-MM-dd-HH-mm-ss') : '',
endDate: this.form.expireType ? formateDateTimeByType(this.form.endDate, 'yyyy-MM-dd-HH-mm-ss') : '', endDate: this.form.expireType ? formatDateTimeByType(this.form.endDate, 'yyyy-MM-dd-HH-mm-ss') : '',
cardNoticeType: this.form.cardNoticeType, cardNoticeType: this.form.cardNoticeType,
templateNoticeFlag: this.form.templateNoticeFlag, templateNoticeFlag: this.form.templateNoticeFlag,
......
...@@ -15,7 +15,7 @@ export const fillZero = num => { ...@@ -15,7 +15,7 @@ export const fillZero = num => {
* @param {*时间} date * @param {*时间} date
* @param {*转换的格式} type * @param {*转换的格式} type
*/ */
export const formateDateTimeByType = (date, type = 'yyyy-MM-dd-HH-mm-ss') => { export const formatDateTimeByType = (date, type = 'yyyy-MM-dd-HH-mm-ss') => {
if (!date) { if (!date) {
return ''; return '';
} }
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<div class="inline-block"> <div class="inline-block">
<p class="dm-card__item__title">{{ item.cardName }}</p> <p class="dm-card__item__title">{{ item.cardName }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode !== 0">领取后第{{ item.startDay + 1 }}-{{ item.limitDay + item.startDay }}</p> <p class="dm-card__item__desc" v-if="item.cardEffectiveMode !== 0">领取后第{{ item.startDay + 1 }}-{{ item.limitDay + item.startDay }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode === 0">{{ formateDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formateDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</p> <p class="dm-card__item__desc" v-if="item.cardEffectiveMode === 0">{{ formatDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formatDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</p>
</div> </div>
</div> </div>
<p class="dm-card__item--bottom"> <p class="dm-card__item--bottom">
...@@ -15,12 +15,12 @@ ...@@ -15,12 +15,12 @@
</template> </template>
<script> <script>
import { formateDateTimeByType } from '../assets/utils.js'; import { formatDateTimeByType } from '../assets/utils.js';
export default { export default {
name: 'item-card', name: 'item-card',
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
loadErrorImg: require('../assets/img/loaderror.png') loadErrorImg: require('../assets/img/loaderror.png')
}; };
}, },
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
<el-table-column :show-overflow-tooltip="true" :min-width="100" align="left" prop="subName" label="备注名"></el-table-column> <el-table-column :show-overflow-tooltip="true" :min-width="100" align="left" prop="subName" label="备注名"></el-table-column>
<el-table-column prop="" label="有效期" :min-width="100" :show-overflow-tooltip="false"> <el-table-column prop="" label="有效期" :min-width="100" :show-overflow-tooltip="false">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.cardEffectiveMode == 0">固定日期:{{ formateDateTimeByType(scope.row.beginDate, 'yyyy-MM-dd') + '至' + formateDateTimeByType(scope.row.endDate, 'yyyy-MM-dd') }}</div> <div v-if="scope.row.cardEffectiveMode == 0">固定日期:{{ formatDateTimeByType(scope.row.beginDate, 'yyyy-MM-dd') + '至' + formatDateTimeByType(scope.row.endDate, 'yyyy-MM-dd') }}</div>
<div v-if="scope.row.cardEffectiveMode == 1">领取后{{ (scope.row.startDay === 0 ? '当' : scope.row.startDay) + '天,有效天数' + scope.row.limitDay }}</div> <div v-if="scope.row.cardEffectiveMode == 1">领取后{{ (scope.row.startDay === 0 ? '当' : scope.row.startDay) + '天,有效天数' + scope.row.limitDay }}</div>
</template> </template>
</el-table-column> </el-table-column>
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<script> <script>
import { getCardList } from '../assets/api.js'; import { getCardList } from '../assets/api.js';
import { formateDateTimeByType } from '../assets/utils.js'; import { formatDateTimeByType } from '../assets/utils.js';
export default { export default {
name: 'lib-card', name: 'lib-card',
props: { props: {
...@@ -74,7 +74,7 @@ export default { ...@@ -74,7 +74,7 @@ export default {
}, },
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
listParams: { listParams: {
searchParam: '', searchParam: '',
currentPage: 1, currentPage: 1,
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<script> <script>
import { loadImgTextList } from '../assets/api.js'; import { loadImgTextList } from '../assets/api.js';
import { formateDateTimeByType } from '../assets/utils.js'; import { formatDateTimeByType } from '../assets/utils.js';
export default { export default {
name: 'lib-teletext', name: 'lib-teletext',
props: { props: {
...@@ -81,8 +81,8 @@ export default { ...@@ -81,8 +81,8 @@ export default {
this.textImgList = res.result.result || []; this.textImgList = res.result.result || [];
this.total = res.result.totalCount; this.total = res.result.totalCount;
this.textImgList.map(v => { this.textImgList.map(v => {
v.createTimeStr = formateDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm'); v.createTimeStr = formatDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm');
v.updateTimeStr = formateDateTimeByType(v.updateTime, 'yyyy-MM-dd-HH-mm'); v.updateTimeStr = formatDateTimeByType(v.updateTime, 'yyyy-MM-dd-HH-mm');
}); });
} }
this.loading = false; this.loading = false;
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<div class="inline-block"> <div class="inline-block">
<p class="dm-card__item__title">{{ item.cardName }}</p> <p class="dm-card__item__title">{{ item.cardName }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode !== 0">领取后第{{ item.startDay + 1 }}-{{ item.limitDay + item.startDay }}</p> <p class="dm-card__item__desc" v-if="item.cardEffectiveMode !== 0">领取后第{{ item.startDay + 1 }}-{{ item.limitDay + item.startDay }}</p>
<p class="dm-card__item__desc" v-if="item.cardEffectiveMode === 0">{{ formateDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formateDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</p> <p class="dm-card__item__desc" v-if="item.cardEffectiveMode === 0">{{ formatDateTimeByType(item.beginDate, 'yyyy-MM-dd') }}{{ formatDateTimeByType(item.endDate, 'yyyy-MM-dd') }}</p>
</div> </div>
</div> </div>
<p class="dm-card__item--bottom"> <p class="dm-card__item--bottom">
...@@ -15,12 +15,12 @@ ...@@ -15,12 +15,12 @@
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils'; import { formatDateTimeByType } from '@/utils';
export default { export default {
name: 'item-card', name: 'item-card',
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
loadErrorImg: require('../../../assets/img/loaderror.png') loadErrorImg: require('../../../assets/img/loaderror.png')
}; };
}, },
......
<template> <template>
<section class="eval-charts"> <section class="eval-charts">
<div class="dm-form__wrap"> <div class="dm-form__wrap">
<vue-gic-store-group width="240" class="pr5" :model="storeGroupData" @commit-store="getStoreGroup"></vue-gic-store-group> <store-group width="240" class="pr5" :model="storeGroupData" @commit-store="getStoreGroup"></store-group>
<span class="pl10 danger-color">*以下数据取自近180天</span> <span class="pl10 danger-color">*以下数据取自近180天</span>
</div> </div>
<div class="dm-form__wrap"> <div class="dm-form__wrap">
...@@ -59,9 +59,6 @@ import storeGroup from '@/components/storeGroup'; ...@@ -59,9 +59,6 @@ import storeGroup from '@/components/storeGroup';
import { evaluateOverviewEchart } from '@/service/api/evaluationApi.js'; import { evaluateOverviewEchart } from '@/service/api/evaluationApi.js';
import detail from './detail'; import detail from './detail';
import scoredetail from './scoredetail'; import scoredetail from './scoredetail';
import demoData from './demo.js';
export default { export default {
components: { components: {
storeGroup, storeGroup,
...@@ -96,7 +93,6 @@ export default { ...@@ -96,7 +93,6 @@ export default {
let res = await evaluateOverviewEchart({ currentStoreGroupId: id, chartType: type }); let res = await evaluateOverviewEchart({ currentStoreGroupId: id, chartType: type });
if (type === 1) { if (type === 1) {
const result = res.result; const result = res.result;
// const result = demoData.result;
let list = []; let list = [];
result.sundayList.map((v, i) => { result.sundayList.map((v, i) => {
list.push({ day: v, name: '订单总数', temperature: result.yDataorders[i] }); list.push({ day: v, name: '订单总数', temperature: result.yDataorders[i] });
......
export default {
errorCode: 0,
message: null,
detailError: null,
result: {
yDataorders: ['0', '0', '0', '0', '0', '0', '0', '0', '153', '522', '443', '370', '380', '352', '383', '307', '298', '270', '235', '199', '231', '214', '279', '358', '495', '305', '100'],
yDatagood: ['0', '0', '0', '0', '0', '0', '0', '0', '9', '35', '21', '13', '21', '18', '19', '20', '10', '13', '10', '10', '9', '9', '9', '9', '14', '15', '1'],
yDataevaluate: ['0', '0', '0', '0', '0', '0', '0', '0', '9', '35', '22', '13', '21', '18', '19', '20', '10', '13', '10', '10', '9', '9', '9', '9', '14', '15', '1'],
sundayList: ['2018-04-15', '2018-04-22', '2018-04-29', '2018-05-06', '2018-05-13', '2018-05-20', '2018-05-27', '2018-06-03', '2018-06-10', '2018-06-17', '2018-06-24', '2018-07-01', '2018-07-08', '2018-07-15', '2018-07-22', '2018-07-29', '2018-08-05', '2018-08-12', '2018-08-19', '2018-08-26', '2018-09-02', '2018-09-09', '2018-09-16', '2018-09-23', '2018-09-30', '2018-10-07', '2018-10-14'],
xDataevaluate: ['201815', '201816', '201817', '201818', '201819', '201820', '201821', '201822', '201823', '201824', '201825', '201826', '201827', '201828', '201829', '201830', '201831', '201832', '201833', '201834', '201835', '201836', '201837', '201838', '201839', '201840', '201841']
}
};
<template> <template>
<el-dialog title="趋势详情" :visible.sync="show" width="70%" :before-close="close"> <el-dialog title="趋势详情" :visible.sync="show" width="70%" :before-close="close">
<vue-gic-store-group width="240" class="pb22" :model="storeGroupData" @commit-store="getStoreGroup"></vue-gic-store-group> <store-group width="240" class="pb22" :model="storeGroupData" @commit-store="getStoreGroup"></store-group>
<el-table tooltipEffect="light" :data="tableList" height="350" style="width: 100%" v-loading="loading" @sort-change="sortList"> <el-table tooltipEffect="light" :data="tableList" height="350" style="width: 100%" v-loading="loading" @sort-change="sortList">
<el-table-column :show-overflow-tooltip="true" :min-width="140" align="left" prop="storeName" label="门店名称"> <el-table-column :show-overflow-tooltip="true" :min-width="140" align="left" prop="storeName" label="门店名称">
<template slot-scope="scope"> <template slot-scope="scope">
......
<template> <template>
<section class="eval-newest dm-wrap"> <section class="eval-newest dm-wrap">
<div class="clearfix pb22"> <div class="clearfix pb22">
<vue-gic-store-group width="240" class="pr5" :model="storeGroupData" @commit-store="getStoreGroup"></vue-gic-store-group> <store-group width="240" class="pr5" :model="storeGroupData" @commit-store="getStoreGroup"></store-group>
<el-date-picker v-if="$route.meta.type !== 'bad'" class="w250" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="refresh"></el-date-picker> <el-date-picker v-if="$route.meta.type !== 'bad'" class="w250" v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="refresh"></el-date-picker>
<el-input v-model="listParams.searchName" class="w300" placeholder="订单号/门店名称/会员姓名/卡号" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input> <el-input v-model="listParams.searchName" class="w300" placeholder="订单号/门店名称/会员姓名/卡号" clearable @change="refresh"><i slot="prefix" class="el-input__icon el-icon-search"></i></el-input>
<el-button icon="iconfont icon-icon_yunxiazai fz14" v-if="$route.meta.type !== 'bad'" class="fr" type="primary" @click="exportLatestEvaluate"> 下载Excel</el-button> <el-button icon="iconfont icon-icon_yunxiazai fz14" v-if="$route.meta.type !== 'bad'" class="fr" type="primary" @click="exportLatestEvaluate"> 下载Excel</el-button>
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
</el-table-column> </el-table-column>
<el-table-column :show-overflow-tooltip="false" width="160" align="left" prop="createTime" label="评价时间"> <el-table-column :show-overflow-tooltip="false" width="160" align="left" prop="createTime" label="评价时间">
<template slot-scope="scope"> <template slot-scope="scope">
<p>{{ formateDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p> <p>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p>
<p class="fz13 gray">订单号:{{ scope.row.orderNumber }}</p> <p class="fz13 gray">订单号:{{ scope.row.orderNumber }}</p>
</template> </template>
</el-table-column> </el-table-column>
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
</template> </template>
<script> <script>
import { latestEvaluationList, evaluateBad, evaluationStoreExists, allocateEvaluation, changeShowStatus, exportLatestEvaluate } from '@/service/api/evaluationApi.js'; import { latestEvaluationList, evaluateBad, evaluationStoreExists, allocateEvaluation, changeShowStatus, exportLatestEvaluate } from '@/service/api/evaluationApi.js';
import { formateDateTimeByType, filterAvatar } from '@/utils/index.js'; import { formatDateTimeByType, filterAvatar } from '@/utils/index.js';
import reply from './reply'; import reply from './reply';
import storeGroup from '@/components/storeGroup'; import storeGroup from '@/components/storeGroup';
import tableMethods from '@/mixins/tableMethods.js'; import tableMethods from '@/mixins/tableMethods.js';
...@@ -118,7 +118,7 @@ export default { ...@@ -118,7 +118,7 @@ export default {
data() { data() {
return { return {
storeGroupData: {}, storeGroupData: {},
formateDateTimeByType, formatDateTimeByType,
filterAvatar, filterAvatar,
defaultAvatar: require('../../assets/img/head_default.png'), defaultAvatar: require('../../assets/img/head_default.png'),
loading: false, loading: false,
...@@ -187,7 +187,7 @@ export default { ...@@ -187,7 +187,7 @@ export default {
visiteStatus: 1, visiteStatus: 1,
memberId: row.memberId, memberId: row.memberId,
storeId: row.storeId, storeId: row.storeId,
createTime: formateDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss'), createTime: formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss'),
evaluatedId: row.evaluatedId evaluatedId: row.evaluatedId
}); });
if (res.errorCode === 0) { if (res.errorCode === 0) {
...@@ -288,8 +288,8 @@ export default { ...@@ -288,8 +288,8 @@ export default {
if (!this.dateTime) { if (!this.dateTime) {
this.listParams.beginTime = this.listParams.endDate = ''; this.listParams.beginTime = this.listParams.endDate = '';
} else { } else {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} }
} }
} }
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
</div> </div>
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import { getSuggestionsDetail, handleSuggestions } from '@/service/api/evaluationApi.js'; import { getSuggestionsDetail, handleSuggestions } from '@/service/api/evaluationApi.js';
export default { export default {
data() { data() {
...@@ -86,7 +86,7 @@ export default { ...@@ -86,7 +86,7 @@ export default {
try { try {
let res = await getSuggestionsDetail({ problemId: this.$route.params.id }); let res = await getSuggestionsDetail({ problemId: this.$route.params.id });
const result = res.result; const result = res.result;
this.form.createTimeStr = formateDateTimeByType(result.createTime, 'yyyy-MM-dd-HH-mm-ss'); this.form.createTimeStr = formatDateTimeByType(result.createTime, 'yyyy-MM-dd-HH-mm-ss');
this.form.memberName = result.memberName || ''; this.form.memberName = result.memberName || '';
this.form.thirdNickName = result.thirdNickName || ''; this.form.thirdNickName = result.thirdNickName || '';
this.form.imgs = result.imgs || []; this.form.imgs = result.imgs || [];
......
<template> <template>
<el-dialog title="门店评分" :visible.sync="show" width="70%" :before-close="close"> <el-dialog title="门店评分" :visible.sync="show" width="70%" :before-close="close">
<vue-gic-store-group width="240" class="pb22" :model="storeGroupData" @commit-store="getStoreGroup"></vue-gic-store-group> <store-group width="240" class="pb22" :model="storeGroupData" @commit-store="getStoreGroup"></store-group>
<el-table tooltipEffect="light" :data="tableList" height="350" style="width: 100%" v-loading="loading" @sort-change="sortList"> <el-table tooltipEffect="light" :data="tableList" height="350" style="width: 100%" v-loading="loading" @sort-change="sortList">
<el-table-column :show-overflow-tooltip="true" :min-width="140" align="left" prop="storeName" label="门店名称"> <el-table-column :show-overflow-tooltip="true" :min-width="140" align="left" prop="storeName" label="门店名称">
<template slot-scope="scope"> <template slot-scope="scope">
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading" element-loading-text="拼命加载中"> <el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading" element-loading-text="拼命加载中">
<el-table-column :show-overflow-tooltip="true" width="160" align="left" :key="Math.random()" prop="createTime" label="评价时间"> <el-table-column :show-overflow-tooltip="true" width="160" align="left" :key="Math.random()" prop="createTime" label="评价时间">
<template slot-scope="scope"> <template slot-scope="scope">
<p>{{ formateDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p> <p>{{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm') }}</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :show-overflow-tooltip="true" min-width="200" align="left" :key="Math.random()" prop="storeName" label="门店"> <el-table-column :show-overflow-tooltip="true" min-width="200" align="left" :key="Math.random()" prop="storeName" label="门店">
...@@ -54,12 +54,12 @@ ...@@ -54,12 +54,12 @@
</template> </template>
<script> <script>
import { pageSuggestionsList, exportProblemsCsv } from '@/service/api/evaluationApi.js'; import { pageSuggestionsList, exportProblemsCsv } from '@/service/api/evaluationApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
export default { export default {
name: 'suggestion', name: 'suggestion',
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
defaultAvatar: require('../../assets/img/head_default.png'), defaultAvatar: require('../../assets/img/head_default.png'),
loading: false, loading: false,
tableList: [], tableList: [],
...@@ -139,8 +139,8 @@ export default { ...@@ -139,8 +139,8 @@ export default {
if (!this.dateTime) { if (!this.dateTime) {
this.listParams.beginTime = this.listParams.endDate = ''; this.listParams.beginTime = this.listParams.endDate = '';
} else { } else {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} }
} }
} }
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
</template> </template>
<script> <script>
import VueQr from 'vue-qr'; import VueQr from 'vue-qr';
import { formateDateTimeByType, downloadFile } from '@/utils/index.js'; import { formatDateTimeByType, downloadFile } from '@/utils/index.js';
export default { export default {
name: 'links', name: 'links',
components: { components: {
...@@ -59,7 +59,7 @@ export default { ...@@ -59,7 +59,7 @@ export default {
downloadImg() { downloadImg() {
const qrWrap = document.getElementById('qrWrap'); const qrWrap = document.getElementById('qrWrap');
const qrImg = qrWrap && qrWrap.childNodes[0].src; const qrImg = qrWrap && qrWrap.childNodes[0].src;
downloadFile(this.gameTypeName + '-' + this.obj.gameName + formateDateTimeByType(this.obj.gameStartTime, 'yyyy-MM-dd-HH-mm-ss') || '游戏链接', qrImg); downloadFile(this.gameTypeName + '-' + this.obj.gameName + formatDateTimeByType(this.obj.gameStartTime, 'yyyy-MM-dd-HH-mm-ss') || '游戏链接', qrImg);
} }
} }
}; };
......
...@@ -110,14 +110,13 @@ ...@@ -110,14 +110,13 @@
<script> <script>
import { detailLottery, saveLottery } from '@/service/api/gameApi.js'; import { detailLottery, saveLottery } from '@/service/api/gameApi.js';
import { numberToChinese, formateDateTimeByType } from '@/utils/index.js'; import { numberToChinese, formatDateTimeByType } from '@/utils/index.js';
import dmUploadAvatar from '@/components/upload/avatar'; import dmUploadAvatar from '@/components/upload/avatar';
import nonnegative from '@/mixins/nonnegative.js';
import editAlertMixin from '../common/editAlertMixin.js'; import editAlertMixin from '../common/editAlertMixin.js';
let key = Date.now(); let key = Date.now();
let result = {}; let result = {};
export default { export default {
mixins: [nonnegative, editAlertMixin], mixins: [editAlertMixin],
data() { data() {
const that = this; const that = this;
return { return {
...@@ -177,7 +176,7 @@ export default { ...@@ -177,7 +176,7 @@ export default {
gameIntegral: { type: 'number', required: true, message: '请输入消耗积分', trigger: 'blur' }, gameIntegral: { type: 'number', required: true, message: '请输入消耗积分', trigger: 'blur' },
gameWinningRate: { type: 'number', required: true, message: '中奖概率不能为空', trigger: 'blur' } gameWinningRate: { type: 'number', required: true, message: '中奖概率不能为空', trigger: 'blur' }
}, },
isInfo: this.$route.meta.type === 'detail', isInfo: this.$route.meta.type === 'info',
isEdit: this.$route.meta.type === 'edit', isEdit: this.$route.meta.type === 'edit',
isAdd: this.$route.meta.type === 'add', isAdd: this.$route.meta.type === 'add',
pickerOptions: { pickerOptions: {
...@@ -319,8 +318,8 @@ export default { ...@@ -319,8 +318,8 @@ export default {
let params = { let params = {
gameId: this.form.gameId, // 游戏主键ID (新建传空, 修改必传) gameId: this.form.gameId, // 游戏主键ID (新建传空, 修改必传)
gameName: this.form.gameName, // 1.游戏名称 gameName: this.form.gameName, // 1.游戏名称
gameStartTimeStr: this.form.dateTime ? formateDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 startDate gameStartTimeStr: this.form.dateTime ? formatDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 startDate
gameEndTimeStr: this.form.dateTime ? formateDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 endDate gameEndTimeStr: this.form.dateTime ? formatDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 endDate
skinType: this.form.skinType, // 1.皮肤模板: 0-自定义 1-黑金 2-红色 3- 霓虹灯 (不为0时, banner图标和 背景颜色隐藏, 对应属性不用传值) skinType: this.form.skinType, // 1.皮肤模板: 0-自定义 1-黑金 2-红色 3- 霓虹灯 (不为0时, banner图标和 背景颜色隐藏, 对应属性不用传值)
gameImageFieldCode: this.form.skinType === 0 ? this.form.gameImage.code : '', // 3.上传后返回的banner图标 code (skinType!=0 时为空) gameImageFieldCode: this.form.skinType === 0 ? this.form.gameImage.code : '', // 3.上传后返回的banner图标 code (skinType!=0 时为空)
gameImageUrl: this.form.skinType === 0 ? this.form.gameImage.imgUrl : '', // 3.上传后返回的banner图标 URL (skinType!=0为空) gameImageUrl: this.form.skinType === 0 ? this.form.gameImage.imgUrl : '', // 3.上传后返回的banner图标 URL (skinType!=0为空)
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import { loadLotteryList, delLotteryService } from '@/service/api/gameApi.js'; import { loadLotteryList, delLotteryService } from '@/service/api/gameApi.js';
import linksMixin from '../common/linksMixin.js'; import linksMixin from '../common/linksMixin.js';
import tableMethods from '@/mixins/tableMethods.js'; import tableMethods from '@/mixins/tableMethods.js';
...@@ -93,7 +93,7 @@ export default { ...@@ -93,7 +93,7 @@ export default {
tooltip: true, tooltip: true,
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ {
...@@ -103,7 +103,7 @@ export default { ...@@ -103,7 +103,7 @@ export default {
tooltip: true, tooltip: true,
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ label: '参与人数', prop: 'userCount', width: '80', align: 'left' }, { label: '参与人数', prop: 'userCount', width: '80', align: 'left' },
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<el-table tooltipEffect="light" :data="recordList" style="width:100%" v-loading="loading"> <el-table tooltipEffect="light" :data="recordList" style="width:100%" v-loading="loading">
<el-table-column :min-width="150" align="left" label="中奖时间"> <el-table-column :min-width="150" align="left" label="中奖时间">
<template slot-scope="scope"> <template slot-scope="scope">
{{ formateDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss') }} {{ formatDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :min-width="150" align="left" label="会员信息"> <el-table-column :min-width="150" align="left" label="会员信息">
...@@ -63,12 +63,12 @@ ...@@ -63,12 +63,12 @@
<script> <script>
import { loadLotteryRecordList, exportLotteryExcel } from '@/service/api/gameApi.js'; import { loadLotteryRecordList, exportLotteryExcel } from '@/service/api/gameApi.js';
import filterAvatar from '@/mixins/filterAvater.js'; import filterAvatar from '@/mixins/filterAvater.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
export default { export default {
mixins: [filterAvatar], mixins: [filterAvatar],
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
prizeTypeOptions: [{ value: '', label: '所有类型' }, { value: 1, label: '积分' }, { value: 2, label: '卡券' }], prizeTypeOptions: [{ value: '', label: '所有类型' }, { value: 1, label: '积分' }, { value: 2, label: '卡券' }],
loading: false, loading: false,
listParams: { listParams: {
...@@ -103,8 +103,8 @@ export default { ...@@ -103,8 +103,8 @@ export default {
this.loading = true; this.loading = true;
try { try {
if (this.dateTime) { if (this.dateTime) {
this.listParams.startDate = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss'); this.listParams.startDate = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.endDate = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss'); this.listParams.endDate = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss');
} }
let res = await loadLotteryRecordList(this.listParams); let res = await loadLotteryRecordList(this.listParams);
this.recordList = res.result.result || []; this.recordList = res.result.result || [];
...@@ -128,8 +128,8 @@ export default { ...@@ -128,8 +128,8 @@ export default {
if (!this.date) { if (!this.date) {
this.listParams.startDate = this.listParams.endDate = ''; this.listParams.startDate = this.listParams.endDate = '';
} else { } else {
this.listParams.startDate = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss'); this.listParams.startDate = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.endDate = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss'); this.listParams.endDate = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss');
} }
this.params = { this.params = {
searchParam: this.listParams.searchParam, searchParam: this.listParams.searchParam,
......
...@@ -100,13 +100,12 @@ ...@@ -100,13 +100,12 @@
<script> <script>
import { detailLottery, saveLottery } from '@/service/api/gameApi.js'; import { detailLottery, saveLottery } from '@/service/api/gameApi.js';
import { numberToChinese, formateDateTimeByType } from '@/utils/index.js'; import { numberToChinese, formatDateTimeByType } from '@/utils/index.js';
import dmUploadAvatar from '@/components/upload/avatar'; import dmUploadAvatar from '@/components/upload/avatar';
import nonnegative from '@/mixins/nonnegative.js';
import editAlertMixin from '../common/editAlertMixin.js'; import editAlertMixin from '../common/editAlertMixin.js';
let result = {}; let result = {};
export default { export default {
mixins: [nonnegative, editAlertMixin], mixins: [editAlertMixin],
data() { data() {
const that = this; const that = this;
return { return {
...@@ -273,8 +272,8 @@ export default { ...@@ -273,8 +272,8 @@ export default {
let params = { let params = {
gameId: this.form.gameId, // 游戏主键ID (新建传空, 修改必传) gameId: this.form.gameId, // 游戏主键ID (新建传空, 修改必传)
gameName: this.form.gameName, // 1.游戏名称 gameName: this.form.gameName, // 1.游戏名称
gameStartTimeStr: this.form.dateTime ? formateDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 startDate gameStartTimeStr: this.form.dateTime ? formatDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 startDate
gameEndTimeStr: this.form.dateTime ? formateDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 endDate gameEndTimeStr: this.form.dateTime ? formatDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss') : '', // 2.游戏时间 endDate
skinType: this.form.skinType, // 1.皮肤模板: 0-自定义 1-黑金 2-红色 3- 霓虹灯 (不为0时, banner图标和 背景颜色隐藏, 对应属性不用传值) skinType: this.form.skinType, // 1.皮肤模板: 0-自定义 1-黑金 2-红色 3- 霓虹灯 (不为0时, banner图标和 背景颜色隐藏, 对应属性不用传值)
gameImageFieldCode: this.form.skinType === 0 ? this.form.gameImage.code : '', // 3.上传后返回的banner图标 code (skinType!=0 时为空) gameImageFieldCode: this.form.skinType === 0 ? this.form.gameImage.code : '', // 3.上传后返回的banner图标 code (skinType!=0 时为空)
gameImageUrl: this.form.skinType === 0 ? this.form.gameImage.imgUrl : '', // 3.上传后返回的banner图标 URL (skinType!=0为空) gameImageUrl: this.form.skinType === 0 ? this.form.gameImage.imgUrl : '', // 3.上传后返回的banner图标 URL (skinType!=0为空)
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</section> </section>
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import { loadLotteryList, delLotteryService } from '@/service/api/gameApi.js'; import { loadLotteryList, delLotteryService } from '@/service/api/gameApi.js';
import linksMixin from '../common/linksMixin.js'; import linksMixin from '../common/linksMixin.js';
import tableMethods from '@/mixins/tableMethods.js'; import tableMethods from '@/mixins/tableMethods.js';
...@@ -92,7 +92,7 @@ export default { ...@@ -92,7 +92,7 @@ export default {
tooltip: true, tooltip: true,
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ {
...@@ -102,7 +102,7 @@ export default { ...@@ -102,7 +102,7 @@ export default {
tooltip: true, tooltip: true,
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ label: '参与人数', prop: 'userCount', width: '80', align: 'left' }, { label: '参与人数', prop: 'userCount', width: '80', align: 'left' },
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<el-table tooltipEffect="light" :data="recordList" style="width:100%" v-loading="loading"> <el-table tooltipEffect="light" :data="recordList" style="width:100%" v-loading="loading">
<el-table-column :min-width="150" align="left" label="中奖时间"> <el-table-column :min-width="150" align="left" label="中奖时间">
<template slot-scope="scope"> <template slot-scope="scope">
{{ formateDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss') }} {{ formatDateTimeByType(scope.row.winDate, 'yyyy-MM-dd-HH-mm-ss') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :min-width="150" align="left" label="会员信息"> <el-table-column :min-width="150" align="left" label="会员信息">
...@@ -62,13 +62,13 @@ ...@@ -62,13 +62,13 @@
</template> </template>
<script> <script>
import { loadLotteryRecordList, exportLotteryExcel } from '@/service/api/gameApi.js'; import { loadLotteryRecordList, exportLotteryExcel } from '@/service/api/gameApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import filterAvatar from '@/mixins/filterAvater.js'; import filterAvatar from '@/mixins/filterAvater.js';
export default { export default {
mixins: [filterAvatar], mixins: [filterAvatar],
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
prizeTypeOptions: [{ value: '', label: '所有类型' }, { value: 1, label: '积分' }, { value: 2, label: '卡券' }], prizeTypeOptions: [{ value: '', label: '所有类型' }, { value: 1, label: '积分' }, { value: 2, label: '卡券' }],
loading: false, loading: false,
listParams: { listParams: {
...@@ -106,8 +106,8 @@ export default { ...@@ -106,8 +106,8 @@ export default {
async loadLotteryRecordList() { async loadLotteryRecordList() {
this.loading = true; this.loading = true;
if (this.dateTime) { if (this.dateTime) {
this.listParams.startDate = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss'); this.listParams.startDate = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.endDate = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss'); this.listParams.endDate = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss');
} }
let res = await loadLotteryRecordList(this.listParams); let res = await loadLotteryRecordList(this.listParams);
this.recordList = res.result.result || []; this.recordList = res.result.result || [];
...@@ -128,8 +128,8 @@ export default { ...@@ -128,8 +128,8 @@ export default {
if (!this.date) { if (!this.date) {
this.listParams.startDate = this.listParams.endDate = ''; this.listParams.startDate = this.listParams.endDate = '';
} else { } else {
this.listParams.startDate = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss'); this.listParams.startDate = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd-HH-mm-ss');
this.listParams.endDate = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss'); this.listParams.endDate = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd-HH-mm-ss');
} }
this.params = { this.params = {
searchParam: this.listParams.searchParam, searchParam: this.listParams.searchParam,
......
...@@ -193,7 +193,7 @@ ...@@ -193,7 +193,7 @@
<script> <script>
import { klflDetail, klflSave, klflStrategyList, klflPrizeList, klflStrategySort, klflStrategyDel, klflDownTemp } from '@/service/api/gameApi.js'; import { klflDetail, klflSave, klflStrategyList, klflPrizeList, klflStrategySort, klflStrategyDel, klflDownTemp } from '@/service/api/gameApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import dmUploadImg from '@/components/upload/img'; import dmUploadImg from '@/components/upload/img';
import dmUploadAvatar from '@/components/upload/avatar'; import dmUploadAvatar from '@/components/upload/avatar';
import strategy from './strategy'; import strategy from './strategy';
...@@ -538,8 +538,8 @@ export default { ...@@ -538,8 +538,8 @@ export default {
backgroudImgFieldCode: this.currentBg.imgFieldCode, backgroudImgFieldCode: this.currentBg.imgFieldCode,
buttonImgUrl: this.currentBtn.imageUrl, buttonImgUrl: this.currentBtn.imageUrl,
buttonImgFieldCode: this.currentBtn.imgFieldCode, buttonImgFieldCode: this.currentBtn.imgFieldCode,
gameStartTime: formateDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss'), gameStartTime: formatDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss'),
gameEndTime: formateDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss'), gameEndTime: formatDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss'),
gameIntroduction: this.form.gameIntroduction, gameIntroduction: this.form.gameIntroduction,
codeType: this.form.codeType, codeType: this.form.codeType,
singleCode: this.form.singleCode, singleCode: this.form.singleCode,
......
...@@ -34,7 +34,7 @@ ...@@ -34,7 +34,7 @@
</section> </section>
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import { LoadKlflList, deleteGame, createQrCode, downloadQrCode } from '@/service/api/gameApi.js'; import { LoadKlflList, deleteGame, createQrCode, downloadQrCode } from '@/service/api/gameApi.js';
import linksMixin from '../common/linksMixin.js'; import linksMixin from '../common/linksMixin.js';
import tableMethods from '@/mixins/tableMethods.js'; import tableMethods from '@/mixins/tableMethods.js';
...@@ -76,7 +76,7 @@ export default { ...@@ -76,7 +76,7 @@ export default {
tooltip: true, tooltip: true,
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ {
...@@ -86,7 +86,7 @@ export default { ...@@ -86,7 +86,7 @@ export default {
tooltip: true, tooltip: true,
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ label: '参与人数', prop: 'cyrs', width: '80', align: 'left' }, { label: '参与人数', prop: 'cyrs', width: '80', align: 'left' },
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
</template> </template>
<script> <script>
import { klflReportList, klflRecordExcel } from '@/service/api/gameApi.js'; import { klflReportList, klflRecordExcel } from '@/service/api/gameApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import filterAvatar from '@/mixins/filterAvater.js'; import filterAvatar from '@/mixins/filterAvater.js';
export default { export default {
mixins: [filterAvatar], mixins: [filterAvatar],
...@@ -50,7 +50,7 @@ export default { ...@@ -50,7 +50,7 @@ export default {
prop: 'createTime', prop: 'createTime',
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ label: '手机号码', prop: 'phoneNumber', align: 'left' }, { label: '手机号码', prop: 'phoneNumber', align: 'left' },
...@@ -100,8 +100,8 @@ export default { ...@@ -100,8 +100,8 @@ export default {
if (!this.date) { if (!this.date) {
this.listParams.startDate = this.listParams.endDate = ''; this.listParams.startDate = this.listParams.endDate = '';
} else { } else {
this.listParams.startDate = formateDateTimeByType(this.date[0], 'yyyy-MM-dd'); this.listParams.startDate = formatDateTimeByType(this.date[0], 'yyyy-MM-dd');
this.listParams.endDate = formateDateTimeByType(this.date[1], 'yyyy-MM-dd'); this.listParams.endDate = formatDateTimeByType(this.date[1], 'yyyy-MM-dd');
} }
let res = await klflReportList(this.listParams); let res = await klflReportList(this.listParams);
this.rankList = res.result.result || []; this.rankList = res.result.result || [];
...@@ -122,8 +122,8 @@ export default { ...@@ -122,8 +122,8 @@ export default {
if (!this.date) { if (!this.date) {
this.listParams.startDate = this.listParams.endDate = ''; this.listParams.startDate = this.listParams.endDate = '';
} else { } else {
this.listParams.startDate = formateDateTimeByType(this.date[0], 'yyyy-MM-dd'); this.listParams.startDate = formatDateTimeByType(this.date[0], 'yyyy-MM-dd');
this.listParams.endDate = formateDateTimeByType(this.date[1], 'yyyy-MM-dd'); this.listParams.endDate = formatDateTimeByType(this.date[1], 'yyyy-MM-dd');
} }
this.params = { this.params = {
searchParam: this.listParams.searchParam, searchParam: this.listParams.searchParam,
......
...@@ -164,9 +164,8 @@ ...@@ -164,9 +164,8 @@
<script> <script>
import { ptyxDetail, savePtyx, getGameSystemMusic, downloadPtyxSkinPsd } from '@/service/api/gameApi.js'; import { ptyxDetail, savePtyx, getGameSystemMusic, downloadPtyxSkinPsd } from '@/service/api/gameApi.js';
import { numberToChinese, formateDateTimeByType } from '@/utils/index.js'; import { numberToChinese, formatDateTimeByType } from '@/utils/index.js';
import dmUploadAvatar from '@/components/upload/avatar'; import dmUploadAvatar from '@/components/upload/avatar';
import nonnegative from '@/mixins/nonnegative.js';
import editAlertMixin from '../common/editAlertMixin.js'; import editAlertMixin from '../common/editAlertMixin.js';
// import shareCom from '../common/share'; // import shareCom from '../common/share';
import ptyxSkin from './partials/ptyx-skin.vue'; import ptyxSkin from './partials/ptyx-skin.vue';
...@@ -182,7 +181,7 @@ export default { ...@@ -182,7 +181,7 @@ export default {
ptyxSkin, ptyxSkin,
audioUpload audioUpload
}, },
mixins: [nonnegative, editAlertMixin], mixins: [editAlertMixin],
data() { data() {
const that = this; const that = this;
return { return {
...@@ -424,8 +423,8 @@ export default { ...@@ -424,8 +423,8 @@ export default {
gameInfo.gameName = this.form.gameName || ''; gameInfo.gameName = this.form.gameName || '';
gameInfo.puzzleImgFieldCode = this.form.puzzleImg.code || ''; gameInfo.puzzleImgFieldCode = this.form.puzzleImg.code || '';
gameInfo.puzzleImgUrl = this.form.puzzleImg.imgUrl || ''; gameInfo.puzzleImgUrl = this.form.puzzleImg.imgUrl || '';
gameInfo.startTimeStr = formateDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss') || ''; gameInfo.startTimeStr = formatDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm-ss') || '';
gameInfo.endTimeStr = formateDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss') || ''; gameInfo.endTimeStr = formatDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm-ss') || '';
gameInfo.gameIntroduction = this.form.gameIntroduction || ''; gameInfo.gameIntroduction = this.form.gameIntroduction || '';
gameInfo.logoImgFieldCode = this.form.logoImg.code || ''; gameInfo.logoImgFieldCode = this.form.logoImg.code || '';
gameInfo.logoImgUrl = this.form.logoImg.imgUrl || ''; gameInfo.logoImgUrl = this.form.logoImg.imgUrl || '';
...@@ -569,6 +568,13 @@ export default { ...@@ -569,6 +568,13 @@ export default {
setAudioList(obj) { setAudioList(obj) {
this.customMusic = { ...obj, isPlay: false }; this.customMusic = { ...obj, isPlay: false };
}, },
// 输入正整数
nonnegative(val) {
if (val < 0) {
val = 0;
this.$tips({ type: 'warning', message: '不能为负值' });
}
},
/**---------人群筛选器的方法------------- */ /**---------人群筛选器的方法------------- */
getData() { getData() {
this.$refs.peopleFilter.confirmSet(); this.$refs.peopleFilter.confirmSet();
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
</section> </section>
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import { LoadPtyxList, deleteGame } from '@/service/api/gameApi.js'; import { LoadPtyxList, deleteGame } from '@/service/api/gameApi.js';
import config from './config'; import config from './config';
import linksMixin from '../common/linksMixin.js'; import linksMixin from '../common/linksMixin.js';
...@@ -74,7 +74,7 @@ export default { ...@@ -74,7 +74,7 @@ export default {
tooltip: true, tooltip: true,
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ {
...@@ -84,7 +84,7 @@ export default { ...@@ -84,7 +84,7 @@ export default {
tooltip: true, tooltip: true,
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ label: '参与人数', prop: 'cyrs', width: '80', align: 'left' }, { label: '参与人数', prop: 'cyrs', width: '80', align: 'left' },
......
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
</template> </template>
<script> <script>
import { LoadPtyxRecordList, exportPtyxExcel, ptyxCalcTitle } from '@/service/api/gameApi.js'; import { LoadPtyxRecordList, exportPtyxExcel, ptyxCalcTitle } from '@/service/api/gameApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import filterAvatar from '@/mixins/filterAvater.js'; import filterAvatar from '@/mixins/filterAvater.js';
export default { export default {
mixins: [filterAvatar], mixins: [filterAvatar],
...@@ -80,7 +80,7 @@ export default { ...@@ -80,7 +80,7 @@ export default {
prop: 'createTime', prop: 'createTime',
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ label: '手机号码', prop: 'memberPhone', align: 'left' }, { label: '手机号码', prop: 'memberPhone', align: 'left' },
......
...@@ -78,7 +78,7 @@ ...@@ -78,7 +78,7 @@
<script> <script>
import { znmDetail, znmSave, znmStrategyList, znmStrategySort, znmStrategyDel } from '@/service/api/gameApi.js'; import { znmDetail, znmSave, znmStrategyList, znmStrategySort, znmStrategyDel } from '@/service/api/gameApi.js';
import { numberToChinese, formateDateTimeByType } from '@/utils/index.js'; import { numberToChinese, formatDateTimeByType } from '@/utils/index.js';
import dmUploadAvatar from '@/components/upload/avatar'; import dmUploadAvatar from '@/components/upload/avatar';
import strategy from './strategy'; import strategy from './strategy';
import editAlertMixin from '../common/editAlertMixin.js'; import editAlertMixin from '../common/editAlertMixin.js';
...@@ -250,8 +250,8 @@ export default { ...@@ -250,8 +250,8 @@ export default {
gameName: this.form.gameName, // 是 String 游戏名称 gameName: this.form.gameName, // 是 String 游戏名称
logoImgUrl: this.form.logoImg.imgUrl, // 是 String LOGO上传 url logoImgUrl: this.form.logoImg.imgUrl, // 是 String LOGO上传 url
logoImgFieldCode: this.form.logoImg.code, // 是 String LOGO上传 code logoImgFieldCode: this.form.logoImg.code, // 是 String LOGO上传 code
gameStartTime: formateDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm'), // 是 String 开始时间 “2018-05-23 11:00” gameStartTime: formatDateTimeByType(this.form.dateTime[0], 'yyyy-MM-dd-HH-mm'), // 是 String 开始时间 “2018-05-23 11:00”
gameEndTime: formateDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm'), // 是 String 结束时间 2018-06-14 16:00 gameEndTime: formatDateTimeByType(this.form.dateTime[1], 'yyyy-MM-dd-HH-mm'), // 是 String 结束时间 2018-06-14 16:00
gameIntroduction: this.form.gameIntroduction, // 是 string 游戏说明 gameIntroduction: this.form.gameIntroduction, // 是 string 游戏说明
firstCouponId: this.firstStrategy.coupCardId, // 是 String 首次奖项设置 load-game-znm-strategy-list 返回的firstStrategy—prizeReferId卡券ID firstCouponId: this.firstStrategy.coupCardId, // 是 String 首次奖项设置 load-game-znm-strategy-list 返回的firstStrategy—prizeReferId卡券ID
strategyIds: this.tableList.map(v => v.gamePrizeStrategyId).join(','), // 否 String (不是必传)首次特殊策略 load-game-znm-strategy-list strategyList集合—gamePrizeStrategyId 多个用逗号隔开 strategyIds: this.tableList.map(v => v.gamePrizeStrategyId).join(','), // 否 String (不是必传)首次特殊策略 load-game-znm-strategy-list strategyList集合—gamePrizeStrategyId 多个用逗号隔开
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
</section> </section>
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import { LoadZnmList, deleteGame } from '@/service/api/gameApi.js'; import { LoadZnmList, deleteGame } from '@/service/api/gameApi.js';
import linksMixin from '../common/linksMixin.js'; import linksMixin from '../common/linksMixin.js';
import tableMethods from '@/mixins/tableMethods.js'; import tableMethods from '@/mixins/tableMethods.js';
...@@ -68,7 +68,7 @@ export default { ...@@ -68,7 +68,7 @@ export default {
tooltip: true, tooltip: true,
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.gameStartTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ {
...@@ -78,7 +78,7 @@ export default { ...@@ -78,7 +78,7 @@ export default {
tooltip: true, tooltip: true,
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.gameEndTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ label: '参与人数', prop: 'cyrs', width: '80', align: 'left' }, { label: '参与人数', prop: 'cyrs', width: '80', align: 'left' },
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
</template> </template>
<script> <script>
import { znmReportList, znmRankExcel, znmRecordExcel } from '@/service/api/gameApi.js'; import { znmReportList, znmRankExcel, znmRecordExcel } from '@/service/api/gameApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import filterAvatar from '@/mixins/filterAvater.js'; import filterAvatar from '@/mixins/filterAvater.js';
export default { export default {
mixins: [filterAvatar], mixins: [filterAvatar],
...@@ -99,7 +99,7 @@ export default { ...@@ -99,7 +99,7 @@ export default {
prop: 'createTime', prop: 'createTime',
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ label: '手机号码', prop: 'memberPhone', align: 'left' }, { label: '手机号码', prop: 'memberPhone', align: 'left' },
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
</template> </template>
<script> <script>
import { znmStrategy, znmStrategySave } from '@/service/api/gameApi.js'; import { znmStrategy, znmStrategySave } from '@/service/api/gameApi.js';
import { findAnyComponent, formateDateTimeByType, resetParams } from '@/utils/index.js'; import { findAnyComponent, formatDateTimeByType, resetParams } from '@/utils/index.js';
export default { export default {
props: { props: {
......
<template>
<div class="login">
<div class="header" id="top">
<div class="clearfix">
<div class="fl">
<a href="http://www.demogic.com/" class="logo"></a>
</div>
<a class="home-link fr border-1px" href="http://www.demogic.com/" translate="login.home">返回首页</a>
</div>
</div>
<div class="login_contetnt">
<h3 class="login-top">让信息连接一切</h3>
<h4 class="login-bottom">GIC商户后台</h4>
<div class="form">
<form class="login-form" id="optForm" method="post" action="../../uLogin.htm?operate=login">
<div class="form-control">
<label for="phone">账号</label>
<input id="userName" name="userName" type="text" v-model="account" autocomplete="off" />
</div>
<div class="form-control">
<label for="password">密码</label>
<input id="password" name="password" type="password" v-model="password" autocomplete="new-password" />
<p class="error" id="passwordError" v-show="error.flag">{{ error.msg }}</p>
</div>
<button type="button" class="submit" @click="submit">立即登录</button>
</form>
</div>
</div>
<footer id="footer">
<p class="copyright">Copyright 2017 Demogic.com All Rights Reserved 浙ICP备15033117号-1</p>
</footer>
</div>
</template>
<script>
import { login, loginEid } from '@/service/api/systemApi.js';
export default {
name: 'login',
data() {
return {
error: {
flag: false,
msg: ''
},
account: 'damogic',
password: 'damo2018'
};
},
created() {
// this.$http.get('api-marketing/list-clerk-department',{},(res) => {
// console.log(res)
// })
},
methods: {
async submit() {
if (!this.account || !this.password) {
this.$message.error('账号或者密码不能为空');
return;
}
let eidParams = {
loginName: this.account
};
let resEid = await loginEid(eidParams);
let params = {
loginName: this.account,
password: this.password,
eid: resEid.result[0].enterpriseId
// eid:'ff808081593917d90159398eca1a0014'
};
let resLogin = await login(params);
console.log(resLogin);
//先作跳转
this.$router.replace('/wechat');
}
}
};
</script>
<style scoped>
.login {
height: 100%;
background-image: url(../../assets/img/login_bg.jpg);
background-position: center top;
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
background-color: rgba(255, 255, 255, 0.15);
text-align: center;
}
#top {
background: transparent;
position: relative;
width: 100%;
height: 80px;
background-color: #111111;
position: relative;
z-index: 2;
}
#top .logo {
display: block;
float: left;
margin-left: 100px;
width: 150px;
height: 80px;
background: url(../../assets/img/login_logo.png) left center no-repeat;
text-indent: -999px;
}
.home-link {
width: 80px;
height: 32px;
margin-top: 23px;
margin-right: 135px;
border-radius: 0;
text-align: center;
font-size: 14px;
line-height: 32px;
color: rgba(255, 255, 255, 0.6);
border: 1px solid #fede29;
background: 0 0;
}
.header {
position: fixed;
left: 0;
top: 0;
height: 80px;
width: 100%;
background: 0 0;
/* box-shadow: inset 0 -1px 0 0 rgba(81, 130, 228, .15); */
z-index: 1000;
}
.home-link {
width: 80px;
height: 32px;
margin-top: 23px;
margin-right: 135px;
border-radius: 0;
text-align: center;
font-size: 14px;
line-height: 32px;
color: rgba(255, 255, 255, 0.6);
border: 1px solid #fede29;
background: 0 0;
}
.login_contetnt {
width: 350px;
margin: 0 auto;
}
.login-top {
position: relative;
z-index: 1;
font-size: 24px;
font-weight: normal;
color: #ffffff;
margin: 70px 0 20px;
}
.login-bottom {
position: relative;
z-index: 1;
font-size: 16px;
font-weight: normal;
color: #fede29;
margin-bottom: 40px;
}
.form {
position: relative;
z-index: 3;
width: 350px;
margin: 0 auto;
}
#top {
background: transparent;
position: relative;
}
#top:hover {
background: transparent;
}
.form-control {
position: relative;
}
.form-control > label {
position: absolute;
/*top: 13px;*/
line-height: 46px;
left: 15px;
font-size: 14px;
color: #fff;
cursor: text;
}
.form-control > input {
font-size: 14px;
padding-left: 50px;
color: #fff;
font-weight: 100;
width: 298px;
height: 46px;
line-height: 14px;
text-indent: 15px;
background: rgba(0, 0, 0, 0.5);
outline: 0;
margin-bottom: 10px;
}
.form-control > input:-webkit-autofill {
-webkit-box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.5) inset;
}
.submit {
width: 100%;
height: 50px;
line-height: 50px;
text-align: center;
font-size: 16px;
margin-top: 30px;
margin-bottom: 36px;
}
.submit:active {
color: rgba(0, 0, 0, 0.6);
background-color: #e0bb26;
}
.submit,
.login-btn {
color: #000;
outline: 0;
border: 0;
background-color: #fede29;
cursor: pointer;
}
.header {
position: fixed;
left: 0;
top: 0;
height: 80px;
width: 100%;
background: 0 0;
/*box-shadow: inset 0 -1px 0 0 rgba(81, 130, 228, .15);*/
z-index: 1000;
}
.error {
color: #f64e4e;
font-size: 12px;
line-height: 12px;
text-align: left;
display: none;
}
.bottom-error {
margin-bottom: 10px;
}
#footer {
width: 100%;
position: absolute;
bottom: 20px;
background: transparent;
color: #fff;
text-align: center;
}
@media screen and (max-width: 767px) {
#top {
background: transparent;
position: relative;
}
.home-link {
width: 60px;
height: 20px;
margin-top: 9px;
margin-right: 15px;
border-radius: 0;
text-align: center;
font-size: 12px;
line-height: 20px;
color: rgba(255, 255, 255, 0.6);
border: 1px solid #fede29;
background: 0 0;
}
.login_contetnt {
width: 250px;
}
.form-control > label {
font-size: 13px;
}
.form-control > input {
width: 198px;
}
.form {
width: 250px;
}
.login-top {
font-size: 16px;
}
.login-bottom {
font-size: 12px;
}
#footer {
display: block;
}
}
</style>
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<el-row :gutter="20" class="message-detail__label"> <el-row :gutter="20" class="message-detail__label">
<el-col :span="8"> <el-col :span="8">
<span class="primary-font-color">发送时间:</span> <span class="primary-font-color">发送时间:</span>
<span class="regular-font-color">{{ formateDateTimeByType(info.sendTime, 'yyyy-MM-dd-HH-mm-ss') }}</span> <span class="regular-font-color">{{ formatDateTimeByType(info.sendTime, 'yyyy-MM-dd-HH-mm-ss') }}</span>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<span class="primary-font-color">发送人数:</span> <span class="primary-font-color">发送人数:</span>
...@@ -94,14 +94,14 @@ ...@@ -94,14 +94,14 @@
</template> </template>
<script> <script>
import { LoadMessageDetail, LoadMessageDetailList, exportSmsExcel } from '@/service/api/messageApi.js'; import { LoadMessageDetail, LoadMessageDetailList, exportSmsExcel } from '@/service/api/messageApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import errorCodeDialog from './errorCode'; import errorCodeDialog from './errorCode';
import filterAvatar from '@/mixins/filterAvater.js'; import filterAvatar from '@/mixins/filterAvater.js';
export default { export default {
mixins: [filterAvatar], mixins: [filterAvatar],
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
info: { info: {
searchParams: '', searchParams: '',
memberType: 0 memberType: 0
...@@ -127,7 +127,7 @@ export default { ...@@ -127,7 +127,7 @@ export default {
tooltip: true, tooltip: true,
align: 'left', align: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.backTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.backTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ {
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
import { saveSendSmsService, checkMessageSendCount } from '@/service/api/messageApi.js'; import { saveSendSmsService, checkMessageSendCount } from '@/service/api/messageApi.js';
import { sceneSettingList } from '@/service/api/wechatApi.js'; import { sceneSettingList } from '@/service/api/wechatApi.js';
import smsTemp from '@/components/libs/smsTemp'; import smsTemp from '@/components/libs/smsTemp';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
export default { export default {
name: 'add-record', name: 'add-record',
...@@ -196,7 +196,7 @@ export default { ...@@ -196,7 +196,7 @@ export default {
params.openIds = this.info.openIds; params.openIds = this.info.openIds;
} }
if (this.info.sendType) { if (this.info.sendType) {
params.sendTime = formateDateTimeByType(this.info.sendTime, 'yyyy-MM-dd-HH-mm-ss'); params.sendTime = formatDateTimeByType(this.info.sendTime, 'yyyy-MM-dd-HH-mm-ss');
} }
saveSendSmsService(params) saveSendSmsService(params)
.then(res => { .then(res => {
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<script> <script>
import { LoadMessageList, invalidsmsRecord } from '@/service/api/messageApi.js'; import { LoadMessageList, invalidsmsRecord } from '@/service/api/messageApi.js';
import { sceneSettingList } from '@/service/api/wechatApi.js'; import { sceneSettingList } from '@/service/api/wechatApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import timeCounts from '@/components/timeCount/index.vue'; import timeCounts from '@/components/timeCount/index.vue';
import tableMethods from '@/mixins/tableMethods.js'; import tableMethods from '@/mixins/tableMethods.js';
export default { export default {
...@@ -59,7 +59,7 @@ export default { ...@@ -59,7 +59,7 @@ export default {
align: 'left', align: 'left',
fixed: 'left', fixed: 'left',
formatter(row) { formatter(row) {
return formateDateTimeByType(row.sendTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.sendTime, 'yyyy-MM-dd-HH-mm-ss');
} }
}, },
{ {
...@@ -125,8 +125,8 @@ export default { ...@@ -125,8 +125,8 @@ export default {
try { try {
this.recordLoading = true; this.recordLoading = true;
if (this.dateTime) { if (this.dateTime) {
this.listParams.sendBeginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.sendBeginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.sendEndTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.sendEndTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.sendBeginTime = this.listParams.sendEndTime = ''; this.listParams.sendBeginTime = this.listParams.sendEndTime = '';
} }
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<div class="sms-lib-item_bottom clearfix"> <div class="sms-lib-item_bottom clearfix">
<div class="fl"> <div class="fl">
<span>{{ v.addUserName }}</span> <span>{{ v.addUserName }}</span>
<span>创建于 {{ formateDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm-ss') }}</span> <span>创建于 {{ formatDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm-ss') }}</span>
</div> </div>
<div class="fr"> <div class="fr">
<el-button type="text" v-if="v.status === 2" @click="$router.push('/message/temp/edit/' + v.smsTemplateId)">修改</el-button> <el-button type="text" v-if="v.status === 2" @click="$router.push('/message/temp/edit/' + v.smsTemplateId)">修改</el-button>
...@@ -48,13 +48,13 @@ ...@@ -48,13 +48,13 @@
</section> </section>
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import { LoadLibList, delTempService } from '@/service/api/messageApi.js'; import { LoadLibList, delTempService } from '@/service/api/messageApi.js';
export default { export default {
name: 'sms-lib', name: 'sms-lib',
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
loading: false, loading: false,
smsTempList: [], smsTempList: [],
libTypeOptions: [{ value: '', label: '全部' }, { value: 0, label: '普通短信模板' }, { value: 1, label: '营销短信模板' }, { value: 2, label: '验证码模板' }], libTypeOptions: [{ value: '', label: '全部' }, { value: 0, label: '普通短信模板' }, { value: 1, label: '营销短信模板' }, { value: 2, label: '验证码模板' }],
...@@ -92,8 +92,8 @@ export default { ...@@ -92,8 +92,8 @@ export default {
async LoadLibList() { async LoadLibList() {
this.loading = true; this.loading = true;
if (this.dateTime) { if (this.dateTime) {
this.listParams.startTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.startTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.startTime = this.listParams.endTime = ''; this.listParams.startTime = this.listParams.endTime = '';
} }
......
...@@ -122,7 +122,7 @@ ...@@ -122,7 +122,7 @@
</template> </template>
<script> <script>
import { getTempDetail, listTemplateVariables, updateTempAdvice } from '@/service/api/msgApi.js'; import { getTempDetail, listTemplateVariables, updateTempAdvice } from '@/service/api/msgApi.js';
import { formateDateTimeByType, checkUrl } from '@/utils/index.js'; import { formatDateTimeByType, checkUrl } from '@/utils/index.js';
import varDialog from './variables.vue'; import varDialog from './variables.vue';
import innerUrl from '@/components/innerUrl/innerUrl'; import innerUrl from '@/components/innerUrl/innerUrl';
import linktoolspage from '@/components/linktools/linktoolspage.vue'; import linktoolspage from '@/components/linktools/linktoolspage.vue';
...@@ -150,7 +150,7 @@ export default { ...@@ -150,7 +150,7 @@ export default {
dayOptions: Array(15) dayOptions: Array(15)
.fill() .fill()
.map((v, i) => ({ value: i + 8, label: i + 8 + ':00' })), .map((v, i) => ({ value: i + 8, label: i + 8 + ':00' })),
formateDateTimeByType, formatDateTimeByType,
options: [], options: [],
checked1: false, checked1: false,
checked2: false, checked2: false,
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
</template> </template>
<script> <script>
import { pageTemplateMessage, syncWechatMessageTemplate, getLatestSyncTime, deleteTemplateAdvice } from '@/service/api/msgApi.js'; import { pageTemplateMessage, syncWechatMessageTemplate, getLatestSyncTime, deleteTemplateAdvice } from '@/service/api/msgApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
export default { export default {
name: 'sms-record', name: 'sms-record',
data() { data() {
...@@ -75,7 +75,7 @@ export default { ...@@ -75,7 +75,7 @@ export default {
align: 'left', align: 'left',
sortable: 'custom', sortable: 'custom',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.updateTime, 'yyyy-MM-dd-HH-mm-ss'); return formatDateTimeByType(row.updateTime, 'yyyy-MM-dd-HH-mm-ss');
} }
} }
], ],
......
...@@ -107,7 +107,7 @@ ...@@ -107,7 +107,7 @@
<script> <script>
import { rechargeCenter, consumeRecord } from '@/service/api/rechargeApi.js'; import { rechargeCenter, consumeRecord } from '@/service/api/rechargeApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
export default { export default {
name: 'recharge', name: 'recharge',
...@@ -141,8 +141,8 @@ export default { ...@@ -141,8 +141,8 @@ export default {
async consumeRecord() { async consumeRecord() {
this.loading = true; this.loading = true;
if (this.dateTime) { if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.beginTime = ''; this.listParams.beginTime = '';
this.listParams.endTime = ''; this.listParams.endTime = '';
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="dm-wrap">日期:<el-date-picker v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="loadAll(false)"></el-date-picker></div> <div class="dm-wrap">日期:<el-date-picker v-model="dateTime" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="loadAll(false)"></el-date-picker></div>
<div class="dm-form__wrap"> <div class="dm-form__wrap">
<h3 class="dm-title__label">趋势分析图</h3> <h3 class="dm-title__label">趋势分析图</h3>
<div class="text-center fz16">{{ formateDateTimeByType(dateTime[0], 'yyyy-MM-dd') }}{{ formateDateTimeByType(dateTime[1], 'yyyy-MM-dd') }} 成功发送:{{ sumCount || 0 }} 条 总计消费:{{ (sumFee / 1000).toFixed(2) }}</div> <div class="text-center fz16">{{ formatDateTimeByType(dateTime[0], 'yyyy-MM-dd') }}{{ formatDateTimeByType(dateTime[1], 'yyyy-MM-dd') }} 成功发送:{{ sumCount || 0 }} 条 总计消费:{{ (sumFee / 1000).toFixed(2) }}</div>
<div> <div>
<div id="mountNode" ref="mountNode" v-show="list.length"></div> <div id="mountNode" ref="mountNode" v-show="list.length"></div>
<div class="chart--nodata" v-show="!list.length"></div> <div class="chart--nodata" v-show="!list.length"></div>
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading" v-if="$route.params.type === 'marketing'"> <el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading" v-if="$route.params.type === 'marketing'">
<el-table-column align="left" width="170" prop="sendTime" label="发送时间"> <el-table-column align="left" width="170" prop="sendTime" label="发送时间">
<template slot-scope="scope"> <template slot-scope="scope">
{{ formateDateTimeByType(scope.row.sendTime, 'yyyy-MM-dd-HH-mm-ss') }} {{ formatDateTimeByType(scope.row.sendTime, 'yyyy-MM-dd-HH-mm-ss') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="left" width="150" prop="telephone" label="接收号码"></el-table-column> <el-table-column align="left" width="150" prop="telephone" label="接收号码"></el-table-column>
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading" v-if="$route.params.type === 'sms'"> <el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading" v-if="$route.params.type === 'sms'">
<el-table-column align="left" width="170" prop="createTime" label="发送时间"> <el-table-column align="left" width="170" prop="createTime" label="发送时间">
<template slot-scope="scope"> <template slot-scope="scope">
{{ formateDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss') }} {{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="left" width="150" prop="receivePhone" label="接收号码"></el-table-column> <el-table-column align="left" width="150" prop="receivePhone" label="接收号码"></el-table-column>
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading" v-if="$route.params.type === 'voice'"> <el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading" v-if="$route.params.type === 'voice'">
<el-table-column align="left" prop="createTime" label="发送时间" width="170px"> <el-table-column align="left" prop="createTime" label="发送时间" width="170px">
<template slot-scope="scope"> <template slot-scope="scope">
{{ formateDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss') }} {{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="left" prop="receivePhone" label="接收号码"></el-table-column> <el-table-column align="left" prop="receivePhone" label="接收号码"></el-table-column>
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
<el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading" v-if="$route.params.type === 'call'"> <el-table tooltipEffect="light" :data="tableList" style="width:100%" v-loading="loading" v-if="$route.params.type === 'call'">
<el-table-column align="left" width="160" prop="createTime" label="呼叫时间"> <el-table-column align="left" width="160" prop="createTime" label="呼叫时间">
<template slot-scope="scope"> <template slot-scope="scope">
{{ formateDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss') }} {{ formatDateTimeByType(scope.row.createTime, 'yyyy-MM-dd-HH-mm-ss') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :show-overflow-tooltip="true" align="left" min-width="180" prop="storeName" label="主门店"> <el-table-column :show-overflow-tooltip="true" align="left" min-width="180" prop="storeName" label="主门店">
...@@ -142,7 +142,7 @@ ...@@ -142,7 +142,7 @@
</template> </template>
<script> <script>
import { messageMarketingChart, messageMarketingPage, smsData, voiceData, callData } from '@/service/api/rechargeApi.js'; import { messageMarketingChart, messageMarketingPage, smsData, voiceData, callData } from '@/service/api/rechargeApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import G2 from '@antv/g2'; import G2 from '@antv/g2';
import DataSet from '@antv/data-set'; import DataSet from '@antv/data-set';
export default { export default {
...@@ -151,7 +151,7 @@ export default { ...@@ -151,7 +151,7 @@ export default {
return { return {
list: [], list: [],
defaultAvatar: require('../../assets/img/head_default.png'), defaultAvatar: require('../../assets/img/head_default.png'),
formateDateTimeByType, formatDateTimeByType,
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()], dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
loading: false, loading: false,
tableList: [], tableList: [],
...@@ -185,8 +185,8 @@ export default { ...@@ -185,8 +185,8 @@ export default {
}, },
loadAll(onlyList = false) { loadAll(onlyList = false) {
if (this.dateTime) { if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.beginTime = ''; this.listParams.beginTime = '';
this.listParams.endTime = ''; this.listParams.endTime = '';
......
...@@ -4,13 +4,13 @@ ...@@ -4,13 +4,13 @@
<el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading"> <el-table tooltipEffect="light" :data="tableList" style="width: 100%" v-loading="loading">
<el-table-column align="left" prop="timeEnd" label="充值时间"> <el-table-column align="left" prop="timeEnd" label="充值时间">
<template slot-scope="scope"> <template slot-scope="scope">
{{ formateDateTimeByType(scope.row.timeEnd, 'yyyy-MM-dd-HH-mm-ss') }} {{ formatDateTimeByType(scope.row.timeEnd, 'yyyy-MM-dd-HH-mm-ss') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="left" prop="transactionId" label="充值流水号"></el-table-column> <el-table-column align="left" prop="transactionId" label="充值流水号"></el-table-column>
<el-table-column align="left" prop="payType" label="充值方式"> <el-table-column align="left" prop="payType" label="充值方式">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.payType === 1 ? '微信' : '支付宝' }} {{ scope.row.payType | filterPayType }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="金额" align="left" prop="totalFee"> <el-table-column label="金额" align="left" prop="totalFee">
...@@ -24,13 +24,13 @@ ...@@ -24,13 +24,13 @@
</template> </template>
<script> <script>
import { rechargeRecord } from '@/service/api/rechargeApi.js'; import { rechargeRecord } from '@/service/api/rechargeApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
export default { export default {
name: 'recharge-record', name: 'recharge-record',
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()], dateTime: [Date.now() - 30 * 24 * 60 * 60 * 1000, Date.now()],
loading: false, loading: false,
tableList: [], tableList: [],
...@@ -60,8 +60,8 @@ export default { ...@@ -60,8 +60,8 @@ export default {
async rechargeRecord() { async rechargeRecord() {
this.loading = true; this.loading = true;
if (this.dateTime) { if (this.dateTime) {
this.listParams.beginTime = formateDateTimeByType(this.dateTime[0], 'yyyy-MM-dd'); this.listParams.beginTime = formatDateTimeByType(this.dateTime[0], 'yyyy-MM-dd');
this.listParams.endTime = formateDateTimeByType(this.dateTime[1], 'yyyy-MM-dd'); this.listParams.endTime = formatDateTimeByType(this.dateTime[1], 'yyyy-MM-dd');
} else { } else {
this.listParams.beginTime = ''; this.listParams.beginTime = '';
this.listParams.endTime = ''; this.listParams.endTime = '';
...@@ -78,6 +78,26 @@ export default { ...@@ -78,6 +78,26 @@ export default {
} }
this.loading = false; this.loading = false;
} }
},
filters: {
filterPayType(val) {
let result = '';
switch (val) {
case 1:
result = '微信';
break;
case 2:
result = '支付宝';
break;
case 2:
result = '线下充值';
break;
default:
result = '未知';
break;
}
return result;
}
} }
}; };
</script> </script>
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
</template> </template>
<script> <script>
import { loadAudioList, delAudioService } from '@/service/api/wechatApi.js'; import { loadAudioList, delAudioService } from '@/service/api/wechatApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import dmAudioItem from './audioItem'; import dmAudioItem from './audioItem';
import dmAudioDialog from './audioDialog'; import dmAudioDialog from './audioDialog';
...@@ -53,7 +53,7 @@ export default { ...@@ -53,7 +53,7 @@ export default {
this.audioList = res.result.result || []; this.audioList = res.result.result || [];
this.audioList.map(v => { this.audioList.map(v => {
if (typeof v.createTime === 'number') { if (typeof v.createTime === 'number') {
v.createTimeStr = formateDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm-ss'); v.createTimeStr = formatDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm-ss');
} else { } else {
v.createTimeStr = ''; v.createTimeStr = '';
} }
......
...@@ -253,7 +253,7 @@ export default { ...@@ -253,7 +253,7 @@ export default {
}); });
}, },
methods: { methods: {
//editorInstance实例, API http://fex.baidu.com/ueditor/#api-common //editorInstance实例
ready(editorInstance) { ready(editorInstance) {
this.editorInstance = editorInstance; this.editorInstance = editorInstance;
if (this.$route.meta.type === 'edit') { if (this.$route.meta.type === 'edit') {
......
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
<el-table-column :show-overflow-tooltip="true" prop="remark" minWidth="180" label="备注"></el-table-column> <el-table-column :show-overflow-tooltip="true" prop="remark" minWidth="180" label="备注"></el-table-column>
<el-table-column prop="updateTime" width="140" label="更新时间"> <el-table-column prop="updateTime" width="140" label="更新时间">
<template slot-scope="scope"> <template slot-scope="scope">
{{ formateDateTimeByType(scope.row.updateTime, 'yyyy-MM-dd-HH-mm') }} {{ formatDateTimeByType(scope.row.updateTime, 'yyyy-MM-dd-HH-mm') }}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
<script> <script>
import dmImgText from '@/components/libs/imgTextTemp'; import dmImgText from '@/components/libs/imgTextTemp';
import dmImgBox from '@/components/libs/imgTemp/index-box.vue'; import dmImgBox from '@/components/libs/imgTemp/index-box.vue';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import { checkMessageSendCount } from '@/service/api/messageApi.js'; import { checkMessageSendCount } from '@/service/api/messageApi.js';
import { sceneSettingList, sendRecordSaveService, wechatImageTextEdit, getWechatMarketingDetail } from '@/service/api/wechatApi.js'; import { sceneSettingList, sendRecordSaveService, wechatImageTextEdit, getWechatMarketingDetail } from '@/service/api/wechatApi.js';
import config from '@/config'; import config from '@/config';
...@@ -115,7 +115,7 @@ export default { ...@@ -115,7 +115,7 @@ export default {
sendTypeOptions: [{ value: 0, label: '立即发送' }, { value: 1, label: '选择时间发送' }], sendTypeOptions: [{ value: 0, label: '立即发送' }, { value: 1, label: '选择时间发送' }],
customToolbar: [['link']], customToolbar: [['link']],
currentImgText: { itemList: [] }, currentImgText: { itemList: [] },
formateDateTimeByType, formatDateTimeByType,
sceneSettingIdOptions: [], sceneSettingIdOptions: [],
// 人群筛选器可传参数 // 人群筛选器可传参数
projectName: '', // 当前项目名 projectName: '', // 当前项目名
...@@ -346,7 +346,7 @@ export default { ...@@ -346,7 +346,7 @@ export default {
params.mediaId = this.info.mediaId; params.mediaId = this.info.mediaId;
} }
if (this.info.sendType) { if (this.info.sendType) {
params.sendTime = formateDateTimeByType(this.info.sendTime, 'yyyy-MM-dd-HH-mm'); params.sendTime = formatDateTimeByType(this.info.sendTime, 'yyyy-MM-dd-HH-mm');
} }
sendRecordSaveService(params) sendRecordSaveService(params)
.then(res => { .then(res => {
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<div class="msg_card_inner msg_card_inner_single wechat-item-previe-div" data-index="0" style="display: block;" @click="preview(true)"> <div class="msg_card_inner msg_card_inner_single wechat-item-previe-div" data-index="0" style="display: block;" @click="preview(true)">
<div class="card_cover_appmsg_title" style="margin: 6px;"> <div class="card_cover_appmsg_title" style="margin: 6px;">
<p style="margin-bottom: 6px;" id="main-item-title">{{ firstImgText.titleName }}</p> <p style="margin-bottom: 6px;" id="main-item-title">{{ firstImgText.titleName }}</p>
<p style="margin-bottom: 12px;color: #8c8c8c;font-size: 13px;">{{ formateDateTimeByType(firstImgText.updateTime, 'yyyy-MM-dd') }}</p> <p style="margin-bottom: 12px;color: #8c8c8c;font-size: 13px;">{{ formatDateTimeByType(firstImgText.updateTime, 'yyyy-MM-dd') }}</p>
</div> </div>
<div class="card_appmsg_item"> <div class="card_appmsg_item">
<img style="width: 243px;height: 120px;" id="main-item-img" :src="firstImgText.qcloudImageUrl || ''" /> <img style="width: 243px;height: 120px;" id="main-item-img" :src="firstImgText.qcloudImageUrl || ''" />
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<div class="rich_media_area_primary"> <div class="rich_media_area_primary">
<p class="rich_media_title"></p> <p class="rich_media_title"></p>
<div class="rich_media_meta_list"> <div class="rich_media_meta_list">
<em class="rich_media_meta rich_media_meta_text">{{ formateDateTimeByType(activeImgText.updateTime, 'yyyy-MM-dd') }}</em> <em class="rich_media_meta rich_media_meta_text"></em> <span class="rich_media_meta rich_media_meta_link" id="content-authoer">{{ activeImgText.authorName }}</span> <em class="rich_media_meta rich_media_meta_text">{{ formatDateTimeByType(activeImgText.updateTime, 'yyyy-MM-dd') }}</em> <em class="rich_media_meta rich_media_meta_text"></em> <span class="rich_media_meta rich_media_meta_link" id="content-authoer">{{ activeImgText.authorName }}</span>
</div> </div>
<div class="rich_media_content" ref="richMediaContent" v-html="activeImgText.previewContent"></div> <div class="rich_media_content" ref="richMediaContent" v-html="activeImgText.previewContent"></div>
</div> </div>
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
</template> </template>
<script> <script>
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
export default { export default {
props: { props: {
...@@ -68,7 +68,7 @@ export default { ...@@ -68,7 +68,7 @@ export default {
}, },
data() { data() {
return { return {
formateDateTimeByType, formatDateTimeByType,
activeImgText: {}, activeImgText: {},
contentHide: true contentHide: true
}; };
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
<script> <script>
import { sendRecordList, sceneSettingList, delWechatMarketingRecord, invalidWechatMarketingRecord } from '@/service/api/wechatApi.js'; import { sendRecordList, sceneSettingList, delWechatMarketingRecord, invalidWechatMarketingRecord } from '@/service/api/wechatApi.js';
import dmDialog from './dialog'; import dmDialog from './dialog';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import timeCounts from '@/components/timeCount/index.vue'; import timeCounts from '@/components/timeCount/index.vue';
export default { export default {
name: 'wechat-record', name: 'wechat-record',
...@@ -72,7 +72,7 @@ export default { ...@@ -72,7 +72,7 @@ export default {
align: 'left', align: 'left',
fixed: 'left', fixed: 'left',
formatter: function(row) { formatter: function(row) {
return formateDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm'); return formatDateTimeByType(row.createTime, 'yyyy-MM-dd-HH-mm');
} }
}, },
{ label: '用户名称', prop: 'clerkName', align: 'left', fixed: 'left' }, { label: '用户名称', prop: 'clerkName', align: 'left', fixed: 'left' },
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
</template> </template>
<script> <script>
import { loadVideoList, delVideoService } from '@/service/api/wechatApi.js'; import { loadVideoList, delVideoService } from '@/service/api/wechatApi.js';
import { formateDateTimeByType } from '@/utils/index.js'; import { formatDateTimeByType } from '@/utils/index.js';
import dmVideoItem from './videoItem'; import dmVideoItem from './videoItem';
export default { export default {
...@@ -63,7 +63,7 @@ export default { ...@@ -63,7 +63,7 @@ export default {
this.videoList = res.result.result || []; this.videoList = res.result.result || [];
this.videoList.map(v => { this.videoList.map(v => {
if (typeof v.createTime === 'number') { if (typeof v.createTime === 'number') {
v.createTimeStr = formateDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm-ss'); v.createTimeStr = formatDateTimeByType(v.createTime, 'yyyy-MM-dd-HH-mm-ss');
} else { } else {
v.createTimeStr = ''; v.createTimeStr = '';
} }
......
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