Commit 113ad7c1 by 无尘

feat: 新增项目

parent 0addd03b
<!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>分享有礼</title><link href=./static/css/app.20028b62002d2620a91f3f4d949d02d0.css rel=stylesheet></head><body style="background-color: #f0f2f5;min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.33.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.03.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.29.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.38.js></script><script src=//web-1251519181.file.myqcloud.com/components/aside-menu.2.0.11.js></script><script src=//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.91.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.12.js></script><script type=text/javascript src=./static/js/manifest.6ee2464bd6c63650c2d8.js></script><script type=text/javascript src=./static/js/vendor.14f8172dd3290d7d86d8.js></script><script type=text/javascript src=./static/js/app.84ffe828841fcf0f3398.js></script></body></html> <!DOCTYPE html><html><head><meta charset=utf-8><link rel="shortcut icon" href=./favicon.ico><title>分享有礼</title><link href=./static/css/app.9a90a44bcfad2a2a6ae36647f1203149.css rel=stylesheet></head><body style="background-color: #f0f2f5;min-width: 1400px;"><div id=app></div><script src=//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/vue.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/vuex/3.1.0/vuex.min.js></script><script src=//web-1251519181.file.myqcloud.com/lib/elementUI/index.2.5.4.js></script><script src=//web-1251519181.file.myqcloud.com/components/header.2.0.33.js></script><script src=//web-1251519181.file.myqcloud.com/components/footer.2.0.03.js></script><script src=//web-1251519181.file.myqcloud.com/components/store-new.2.0.29.js></script><script src=//web-1251519181.file.myqcloud.com/components/people.2.0.38.js></script><script src=//web-1251519181.file.myqcloud.com/components/aside-menu.2.0.11.js></script><script src=//web-1251519181.file.myqcloud.com/components/area-ab.2.0.00.js></script><script src=//web-1251519181.file.myqcloud.com/components/card.2.0.02.js></script><script src=//web-1251519181.file.myqcloud.com/components/selector.1.1.91.js></script><script src=//web-1251519181.file.myqcloud.com/components/export-excel.2.0.12.js></script><script type=text/javascript src=./static/js/manifest.7e6be1250f4d151d8321.js></script><script type=text/javascript src=./static/js/vendor.14f8172dd3290d7d86d8.js></script><script type=text/javascript src=./static/js/app.54830dfd03db1fb3ddb1.js></script></body></html>
\ 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.
This source diff could not be displayed because it is too large. You can view the blob instead.
webpackJsonp([2],{"1tPD":function(t,e){},"3E4D":function(t,e,a){"use strict";var i=a("zL8q");a.n(i);e.a={showmsg:function(t,e){Object(i.Message)({duration:1e3,message:t,type:e})}}},"510o":function(t,e){},FnTT:function(t,e){},OSz6:function(t,e){},QNJk:function(t,e){},QyI2:function(t,e){},TQvf:function(t,e,a){ webpackJsonp([3],{"1tPD":function(t,e){},"3E4D":function(t,e,a){"use strict";var i=a("zL8q");a.n(i);e.a={showmsg:function(t,e){Object(i.Message)({duration:1e3,message:t,type:e})}}},"510o":function(t,e){},FnTT:function(t,e){},OSz6:function(t,e){},QNJk:function(t,e){},QyI2:function(t,e){},TQvf:function(t,e,a){
/*! /*!
* clipboard.js v2.0.4 * clipboard.js v2.0.4
* https://zenorocha.github.io/clipboard.js * https://zenorocha.github.io/clipboard.js
......
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var f,d,i,u=0,s=[];u<r.length;u++)d=r[u],t[d]&&s.push(t[d][0]),t[d]=0;for(f in c)Object.prototype.hasOwnProperty.call(c,f)&&(e[f]=c[f]);for(n&&n(r,c,a);s.length;)s.shift()();if(a)for(u=0;u<a.length;u++)i=o(o.s=a[u]);return i};var r={},t={15:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+e+"."+{0:"33d0c29fa31f393ab272",1:"5b546fa38466a0b05e37",2:"1df5b5d0d4f5a43aaef8",3:"6a86bd148375a99ef428",4:"c3325f8ffdd91a1c6c1c",5:"b19e63e305cd851d71d6",6:"46546cc7f3c9d48cc350",7:"b0fd74564cc799593b8f",8:"fe9ec49f63ecd8e527ba",9:"522a01ff8d619d2bf030",10:"e16b73d2d4b922255e52",11:"c11d02c33702d00b2e2e",12:"47f6c594ed379a74f6f2"}[e]+".js";var f=setTimeout(d,12e4);function d(){a.onerror=a.onload=null,clearTimeout(f);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return a.onerror=a.onload=d,c.appendChild(a),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]); !function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var f,i,u,d=0,s=[];d<r.length;d++)i=r[d],t[i]&&s.push(t[i][0]),t[i]=0;for(f in c)Object.prototype.hasOwnProperty.call(c,f)&&(e[f]=c[f]);for(n&&n(r,c,a);s.length;)s.shift()();if(a)for(d=0;d<a.length;d++)u=o(o.s=a[d]);return u};var r={},t={15:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+e+"."+{0:"33d0c29fa31f393ab272",1:"5b546fa38466a0b05e37",2:"af5b98712aa35bee12c5",3:"06e0e6539b93fcc9216a",4:"c3325f8ffdd91a1c6c1c",5:"b19e63e305cd851d71d6",6:"46546cc7f3c9d48cc350",7:"b0fd74564cc799593b8f",8:"fe9ec49f63ecd8e527ba",9:"522a01ff8d619d2bf030",10:"e16b73d2d4b922255e52",11:"c11d02c33702d00b2e2e",12:"47f6c594ed379a74f6f2"}[e]+".js";var f=setTimeout(i,12e4);function i(){a.onerror=a.onload=null,clearTimeout(f);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return a.onerror=a.onload=i,c.appendChild(a),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="./",o.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file \ No newline at end of file
.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,.mce-content-body.mce-content-readonly *[contentEditable=true]:hover{outline:none}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}.mce-content-body{line-height:1.3}
\ No newline at end of file
body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,.mce-content-body.mce-content-readonly *[contentEditable=true]:hover{outline:none}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}
\ No newline at end of file
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{position:absolute;display:inline-block;background-color:green;opacity:.5}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}
\ No newline at end of file
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
"echarts": "^4.4.0", "echarts": "^4.4.0",
"element-ui": "^2.12.0", "element-ui": "^2.12.0",
"file-saver": "^1.3.8", "file-saver": "^1.3.8",
"tinymce": "^4.8.3", "tinymce": "^4.9.6",
"v-charts": "^1.19.0", "v-charts": "^1.19.0",
"vue": "^2.6.10", "vue": "^2.6.10",
"vue-clipboard2": "^0.2.0", "vue-clipboard2": "^0.2.0",
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
"@antv/g2": "^3.1.0", "@antv/g2": "^3.1.0",
"@gic-test/vue-gic-datepicker": "^1.3.8", "@gic-test/vue-gic-datepicker": "^1.3.8",
"@riophae/vue-treeselect": "0.0.29", "@riophae/vue-treeselect": "0.0.29",
"@tinymce/tinymce-vue": "^1.0.8", "@tinymce/tinymce-vue": "^1.1.2",
"autoprefixer": "^7.1.2", "autoprefixer": "^7.1.2",
"axios": "^0.18.0", "axios": "^0.18.0",
"babel-core": "^6.22.1", "babel-core": "^6.22.1",
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-18 10:37:02 * @Date: 2019-11-18 10:37:02
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-18 15:56:59 * @LastEditTime: 2019-11-20 15:43:26
--> -->
<!-- <!--
<base-config @submitNext="submitNext"></base-config> <base-config @submitNext="submitNext"></base-config>
...@@ -14,24 +14,73 @@ import baseConfig from '@/components/active-config/base-config.vue'; ...@@ -14,24 +14,73 @@ import baseConfig from '@/components/active-config/base-config.vue';
<template> <template>
<div class="base-config-content"> <div class="base-config-content">
<div class="config-title font-14 color-303133">基本信息</div> <div class="config-title font-14 color-303133">基本信息</div>
<el-form label-width="114px" :model="activeInfoData" ref="baseForm" :rules="rules"> <el-form
<el-form-item label="活动目的:" prop="activeName"> </el-form-item> label-width="114px"
<el-form-item label="转化路径:" prop="activeName"> </el-form-item> :model="activeInfoData"
<el-form-item label="活动营销页:" prop="activeName"> </el-form-item> ref="baseForm"
<el-form-item label="游戏计划:" prop="activeName"> </el-form-item> :rules="rules"
<el-form-item label="卡券:" prop="activeName"> </el-form-item> >
<el-form-item label="活动名称:" prop="activeName"> <el-form-item
<limitInput :inputWidth="350" :disflag="$route.query.interfaceId ? true : false" :inputValue.sync="activeInfoData.activeName" :holder="'请输入活动名称'" :getByType="'word'" :maxLength="30"> </limitInput> label="活动目的:"
prop="activeName"
> </el-form-item>
<el-form-item
label="转化路径:"
prop="activeName"
> </el-form-item>
<el-form-item
label="活动营销页:"
prop="activeName"
> </el-form-item>
<el-form-item
label="游戏计划:"
prop="activeName"
> </el-form-item>
<el-form-item
label="卡券:"
prop="activeName"
> </el-form-item>
<el-form-item
label="活动名称:"
prop="activeName"
>
<limitInput
:inputWidth="350"
:disflag="$route.query.interfaceId ? true : false"
:inputValue.sync="activeInfoData.activeName"
:holder="'请输入活动名称'"
:getByType="'word'"
:maxLength="30"
> </limitInput>
</el-form-item> </el-form-item>
<el-form-item label="活动有效期:" prop="dateRange"> <el-form-item
<el-date-picker class="m-l-10" prefix-icon="el-icon-time" v-model="activeInfoData.dateRange" @change="changeDate" :editable="false" :value-format="'yyyy-MM-dd'" type="daterange" align="right" unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"> </el-date-picker> label="活动有效期:"
prop="dateRange"
>
<el-date-picker
class="m-l-10"
prefix-icon="el-icon-time"
v-model="activeInfoData.dateRange"
@change="changeDate"
:editable="false"
:value-format="'yyyy-MM-dd'"
type="daterange"
align="right"
unlink-panels
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item class="m-t-50"> <el-form-item class="m-t-50">
<!-- <el-button <!-- <el-button
type="primary" type="primary"
@click="returnBack" @click="returnBack"
>返回</el-button> --> >返回</el-button> -->
<el-button type="primary" @click="submitForm('baseForm')">下一步</el-button> <el-button
type="primary"
@click="submitForm('baseForm')"
>下一步</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
...@@ -82,6 +131,8 @@ export default { ...@@ -82,6 +131,8 @@ export default {
const that = this; const that = this;
that.$refs[formName].validate(valid => { that.$refs[formName].validate(valid => {
if (valid) { if (valid) {
that.$emit('submitNext', that.activeInfoData);
that.$store.dispatch('saveBaseInfo', that.activeInfoData);
that.postSave(); that.postSave();
} else { } else {
return false; return false;
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Author: 无尘 * @Author: 无尘
* @Date: 2019-11-18 10:37:02 * @Date: 2019-11-18 10:37:02
* @LastEditors: 无尘 * @LastEditors: 无尘
* @LastEditTime: 2019-11-18 17:13:33 * @LastEditTime: 2019-11-20 16:36:29
--> -->
<!-- <!--
<center-config @submitBack="submitBack" @submitNext="submitNext"></center-config> <center-config @submitBack="submitBack" @submitNext="submitNext"></center-config>
...@@ -14,79 +14,69 @@ import centerConfig from '@/components/active-config/center-config.vue'; ...@@ -14,79 +14,69 @@ import centerConfig from '@/components/active-config/center-config.vue';
<template> <template>
<div class="center-config-content"> <div class="center-config-content">
<div class="config-title font-14 color-303133">活动中心配置</div> <div class="config-title font-14 color-303133">活动中心配置</div>
<el-form <div role="alert" class="el-alert el-alert--info">
label-width="114px" <i class="el-alert__icon el-icon-info font-12 color-1890ff"></i>
:model="activeInfoData" <div class="el-alert__content">
ref="centerForm" <span class="el-alert__title color-606266 font-14 font-w-400"
:rules="rules" >1. 活动中心是邀请人访问的页面,用于介绍活动和奖励规则,展示受邀人清单和奖励信息。<br />
> 2. 当前活动的转化路径以服务号作为受邀人入口,邀请人可在活动中心一键服务号的带二维码海报,以实现朋友圈转发。</span
<el-form-item >
label="活动名称:" </div>
prop="activeName" </div>
> <el-form label-width="144px" :model="activeInfoData" ref="centerForm" :rules="rules">
<limitInput <el-form-item label="头图上传:" prop="headUrl">
:inputWidth="350" <single-upload v-model="activeInfoData.headUrl"> </single-upload>
:disflag="$route.query.interfaceId ? true : false"
:inputValue.sync="activeInfoData.activeName"
:holder="'请输入活动名称'"
:getByType="'word'"
:maxLength="30"
> </limitInput>
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="分享按钮:" prop="">
label="活动有效期:" <div class="flex">
prop="dateRange" <span class="color-wrap flex flex-pack-center flex-space-between border-box">背景色<el-color-picker v-model="activeInfoData.shareBackColor"></el-color-picker></span><span class="color-wrap flex flex-space-between flex-pack-center border-box">文字色<el-color-picker v-model="activeInfoData.shareFontColor"></el-color-picker></span>
> </div>
<el-date-picker </el-form-item>
class="m-l-10" <el-form-item label="分享按钮文案:" prop="shareButtonFont">
prefix-icon="el-icon-time" <limitInput :inputWidth="394" :disflag="$route.query.editFlag ? true : false" :inputValue.sync="activeInfoData.shareButtonFont" :holder="'请输入分享按钮文案'" :getByType="'word'" :maxLength="20"> </limitInput>
v-model="activeInfoData.dateRange" </el-form-item>
@change="changeDate" <el-form-item label="活动介绍展现模式:" prop="activityIntroduceMode">
:editable="false" <el-radio v-model="activeInfoData.activityIntroduceMode" label="1">文字模式</el-radio>
:value-format="'yyyy-MM-dd'" <el-radio v-model="activeInfoData.activityIntroduceMode" label="2">图文模式</el-radio>
type="daterange" </el-form-item>
align="right" <el-form-item label="活动介绍文案:" prop="activityIntroduceDetail">
unlink-panels <tinymce-edit ref="tinymceWrap" :bodyHtml="activeInfoData.activityIntroduceDetail" @changeEditor="changeEditor"></tinymce-edit>
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item class="m-t-50"> <el-form-item class="m-t-50">
<el-button <el-button type="primary" @click="submitBack">上一步</el-button>
type="primary" <el-button type="primary" @click="submitForm('centerForm')">下一步</el-button>
@click="submitBack"
>上一步</el-button>
<el-button
type="primary"
@click="submitForm('centerForm')"
>下一步</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
</template> </template>
<script> <script>
import limitInput from '@/components/limit-input.vue'; import limitInput from '@/components/limit-input.vue';
import singleUpload from '@/components/single-upload.vue';
import tinymceEdit from '@/components/tinymce-edit';
export default { export default {
name: 'center-config', name: 'center-config',
props: { props: {},
},
components: { components: {
limitInput singleUpload,
limitInput,
tinymceEdit
}, },
data() { data() {
return { return {
activeInfoData: { activeInfoData: {
activeName: '', headUrl: '',
dateRange: [] shareBackColor: '#1890ff',
shareFontColor: '#ffffff',
shareButtonFont: '',
activityIntroduceMode: '1',
activityIntroduceDetail: ''
}, },
rules: { rules: {
activeName: [{ required: true, message: '请输入活动名称', trigger: 'blur' }], headUrl: [{ required: true, message: '请上传头图上', trigger: 'blur' }],
dateRange: [{ required: true, message: '请选择活动有效期', trigger: 'blur' }] shareButtonFont: [{ required: true, message: '请输入分享按钮文案', trigger: 'blur' }]
} }
} };
}, },
methods: { methods: {
/** /**
...@@ -119,8 +109,8 @@ export default { ...@@ -119,8 +109,8 @@ export default {
} }
}); });
} }
}, }
} };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.center-config-content { .center-config-content {
...@@ -137,5 +127,34 @@ export default { ...@@ -137,5 +127,34 @@ export default {
color: #606266; color: #606266;
} }
} }
.el-alert--info {
width: 799px;
margin-bottom: 17px;
background: #e6f7ff;
border: 1px solid #91d5ff;
.el-alert__icon {
padding-top: 5px;
align-self: flex-start;
}
.el-alert__content {
line-height: 22px;
padding-right: 0;
}
}
.color-wrap {
width: 91px;
height: 32px;
padding-left: 10px;
border-radius: 2px;
border: 1px solid rgba(196, 198, 207, 1);
& + .color-wrap {
margin-left: 20px;
}
.el-color-picker {
/deep/ .el-color-picker__trigger {
border: none;
}
}
}
} }
</style> </style>
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
:getByType="'word'" :getByType="'word'"
:maxLength="40"> :maxLength="40">
</limitInput> </limitInput>
import limitInput from '@/components/limit-input.vue';
--> -->
<template> <template>
<div <div
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
:disInput="" :disInput=""
:maxLength="40"> :maxLength="40">
</limit-textarea> </limit-textarea>
import limitTextarea from '@/components/limit-textarea.vue';
--> -->
<template> <template>
<div <div
......
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-11-20 13:44:22
* @LastEditors: 无尘
* @LastEditTime: 2019-11-20 16:25:45
-->
<!--
单个上传组件
<single-upload
:uploadLimit="uploadLimit"
:limitFlag="limitFlag"
:width="width"
:height="height"
v-model="imgsrc">
</single-upload>
import singleUpload from '@/components/single-upload.vue';
-->
<template>
<div class="single-upload-wrap">
<el-upload
class="avatar-uploader"
:action="uploadUrl()"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
>
<img
v-if="value"
:src="value"
class="avatar"
@mouseover="showImage(value)"
/>
<i
v-else
class="el-icon-plus avatar-uploader-icon"
></i>
</el-upload>
<p class="upload-tip w-500">
必须为规格≥300*300的正方形图片,大小不超过1M,仅限JPG格式。
</p>
<!-- 图片预览 -->
<vue-gic-img-preview
:imgUrl="imgUrl"
:imgShowFlag="imgShowFlag"
@hideImage="hideImage"
></vue-gic-img-preview>
</div>
</template>
<script>
import vueGicImgPreview from '@/components/vue-gic-img-preview.vue';
import errMsg from '@/common/js/error';
export default {
name: 'single-upload',
components: {
vueGicImgPreview
},
props: {
value: {
// 传入 input value
type: String,
default: ''
},
uploadLimit: {
type: Number,
default: 1
},
limitFlag: {
type: [Number, String],
default: 1 // 1: 根据大于宽高,2:根据固定宽高
},
width: {
type: Number,
default: 300
},
height: {
type: Number,
default: 300
},
},
data() {
return {
projectName: '', // 当前项目名
imgShowFlag: false, // 是否弹框显示,true: 显示;false: 不显示
imgUrl: '' // 传递的图片 src
};
},
beforeMount() {
const that = this;
let host = window.location.origin;
if (host.indexOf('localhost') != -1) {
that.baseUrl = 'http://www.gicdev.com';
} else {
that.baseUrl = host;
}
// that.upUrl = that.baseUrl + '/api-plug/upload-img?wxFlag=1'
},
methods: {
/**
* 上传图片
*/
uploadUrl() {
const that = this;
let host = window.location.origin;
let baseUrl;
if (host.indexOf('localhost') != '-1') {
baseUrl = 'http://www.gicdev.com';
} else {
baseUrl = host;
}
that.upUrl = `${baseUrl}/api-plug/upload-img?wxFlag=1&requestProject=share`;
return that.upUrl;
},
/**
* 上传图片
*/
handleAvatarSuccess(res, file, type) {
const that = this;
if (res.errorCode == 1) {
that.$emit('input', res.result[0].qcloudImageUrl);
} else {
errMsg.errorMsg(res);
}
},
beforeAvatarUpload(file) {
const that = this;
const isJPG = file.type === 'image/jpeg' || file.type === 'image/jpg' ;
const isLt2M = file.size / 1024 / 1024 < that.uploadLimit;
if (!isJPG) {
that.$message.error('上传图片只能是 JPG 格式!');
}
if (!isLt2M) {
that.$message.error(`上传图片大小不能超过 ${that.uploadLimit}MB!`);
}
return (
isJPG &&
isLt2M &&
new Promise(function(resolve, reject) {
let reader = new FileReader();
reader.onload = function(event) {
let image = new Image();
image.onload = function() {
/* eslint-disable */
let width = this.width;
let height = this.height;
if (that.limitFlag == 2 && (width !== that.width || height !== that.height) ){
that.$message.error('图片尺寸必须为750*1300px!');
reject();
}
if (that.limitFlag == 1 && (width < that.width || height < that.height) ){
that.$message.error('图片尺寸必须为750*1300px!');
reject();
}
resolve();
};
image.src = event.target.result;
// that.$emit('update:value',event.target.result)
};
reader.readAsDataURL(file);
})
);
},
/**
* 上传图片预览
*/
showImage(src) {
const that = this;
if (!src || src == '') {
return false;
}
that.imgShowFlag = true;
that.imgUrl = src;
},
hideImage(val) {
const that = this;
that.imgShowFlag = val;
}
}
// mounted() {}
};
</script>
<style lang="less" scoped>
.w-500 {
width: 500px;
}
.avatar-uploader {
/deep/ .el-upload {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center;
width: 80px;
height: 80px;
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
}
/* flex */
.flex {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
}
.flex-1 {
-webkit-box-flex: 1;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
}
.flex-column {
-webkit-flex-direction: column;
-moz-flex-direction: column;
-ms-flex-direction: column;
-o-flex-direction: column;
flex-direction: column;
}
.flex-row {
-webkit-flex-direction: row;
-moz-flex-direction: row;
-ms-flex-direction: row;
-o-flex-direction: row;
flex-direction: row;
}
.flex-align-center {
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.flex-pack-center {
-webkit-box-pack: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 80px;
height: 80px;
line-height: 80px;
text-align: center;
background:rgba(245,247,250,1);
}
.avatar {
max-width: 80px;
max-height: 80px;
display: block;
}
.upload-tip {
margin-top: 8px;
color: #606266;
font-size: 12px;
line-height: 20px;
}
.color-1890ff {
color: #1890ff;
}
</style>
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-06-11 17:29:53
* @LastEditors: 无尘
* @LastEditTime: 2019-11-20 16:45:22
-->
<!--
备注:由于使用拖拽上传图片,超过限制的图片不上传不显示,暂时修改了源码的的方法,增加了一个判断,
本来 images_upload_handler 中增加了判断可是
安装 tinymce
$ npm install @tinymce/tinymce-vue -S
npm install tinymce -S
安装之后,在 node_modules 中找到 tinymce/skins 目录,然后将 skins 目录拷贝到 static 目录下
文中所有 static 目录相关都这样处理
tinymce 默认是英文界面,所以还需要下载一个中文语言包:
中文:https://tinymce-services.azurewebsites.net/1/i18n/download?langs=zh_CN
然后将这个语言包放到 static 目录下,为了结构清晰,包一层 tinymce 目录
static
|____tinymce
|___skins
|___zh_CN.js
<tinymce-edit ref="tinymceWrap" :bodyHtml="ruleForm.gradeDescribe" :projectName="projectName" @changeEditor="changeEditor"></tinymce-edit>
import tinymceEdit from '@/components/tinymce-edit'
引入路径修改成自己的路径
-->
<template>
<div class="tinymce-contain">
<editor
id="tinymce"
v-model="tinymceHtml"
:init="init"
:disabled="disabledEdit"
></editor>
</div>
</template>
<script>
/* eslint-disable */
import tinymce from 'tinymce/tinymce';
import 'tinymce/themes/modern/theme';
import Editor from '@tinymce/tinymce-vue';
import 'tinymce/plugins/link';
import 'tinymce/plugins/code';
import 'tinymce/plugins/lists';
import 'tinymce/plugins/contextmenu';
import 'tinymce/plugins/wordcount';
import 'tinymce/plugins/colorpicker';
import 'tinymce/plugins/textcolor';
export default {
name: 'tinymce-edit',
props: {
/* value: {
type: String,
default() {
return '';
}
} */
disabledEdit: {
type: Boolean,
default() {
return false;
}
},
bodyHtml: {
type: String,
default() {
return '';
}
},
projectName: {
type: String,
default() {
return 'haoban-manage-web';
}
}
},
data() {
return {
repProjectName: 'haoban-manage-web',
// tinymce
tinymceHtml: '请输入内容',
init: {
language_url: 'static/tinymce/zh_CN.js',
language: 'zh_CN',
skin_url: 'static/tinymce/skins/lightgray',
height: 300,
// 添加插件
plugins: 'link colorpicker textcolor ', // paste media preview
toolbar: 'bold italic underline strikethrough | fontsizeselect | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist | outdent indent blockquote | undo redo | removeformat',
branding: false,
setup: function(editor) {
// 点击编辑框回调
editor.on('click input change undo redo execCommand KeyUp', function(e) {
});
},
fontsize_formats: '8px 10px 12px 14px 18px 24px 36px'
}
};
},
methods: {
},
watch: {
projectName: function(newData, oldData) {
const that = this;
that.repProjectName = newData || 'gic-web';
},
tinymceHtml: function(newData, oldData) {
const that = this;
that.$emit('changeEditor', newData);
},
bodyHtml: function(newData, oldData) {
const that = this;
that.tinymceHtml = newData;
}
},
components: {
Editor
},
mounted() {
const that = this;
tinymce.init({});
that.tinymceHtml = that.bodyHtml;
}
};
</script>
<style lang="less" scoped>
.tinymce-contain {
width: 100%;
position: relative;
/deep/ .mce-tinymce {
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
border: 1px solid #dcdfe6;
}
/deep/ .mce-panel {
border: 0px solid #dcdfe6;
}
}
</style>
<template>
<div
class="image-view-contain"
v-if="showFlag"
>
<!-- <div class="image-view-mask" @click.stop="hideImage"></div> -->
<transition name="fade">
<div
class="image-view-body"
@click.stop="hideImage"
>
<i class="el-icon-close"></i>
<img
:src="imgSrc"
alt=""
/>
</div>
</transition>
</div>
</template>
<script>
export default {
name: 'vue-gic-img-preview',
props: {
imgUrl: String,
imgShowFlag: Boolean
},
data () {
return {
showFlag: false,
imgSrc: '',
}
},
methods: {
hideImage() {
const that = this
that.showFlag = false
that.$emit('hideImage',that.showFlag)
},
hidePanel() {
const that = this
if (!!that.showFlag) {
that.hideImage()
}
}
},
watch: {
imgUrl: function(newVal) {
this.imgSrc = newVal
},
imgShowFlag: function(newVal) {
this.showFlag = newVal
},
},
mounted() {
const that = this
that.imgSrc = this.imgUrl;
this.showFlag = that.imgShowFlag;
// 监听点击隐藏弹层
document.addEventListener('mousedown', that.hidePanel, false)
},
beforeDestroy() {
// 监听点击隐藏弹层
document.removeEventListener('mousedown')
},
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.image-view-contain {
position: relative;
width: 100%;
}
.image-view-body {
position: fixed;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
z-index: 50;
display: -webkit-flex;
display: flex;
justify-content: center;
align-items: center;
/*width: 520px;
height: 520px;*/
padding: 24px;
background: #fff;
text-align: center;
border-radius: 4px;
-webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
overflow: hidden;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.el-icon-close {
position: absolute;
top: 10px;
right: 10px;
font-size: 14px;
color: #909399;
cursor: pointer;
}
.image-view-body img {
/*-webkit-flex: 1;
-moz-flex: 1;
-ms-flex: 1;
-o-flex: 1;
flex: 1;*/
max-width: 452px;
max-height: 452px;
}
.image-view-mask {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 2000;
}
</style>
.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,.mce-content-body.mce-content-readonly *[contentEditable=true]:hover{outline:none}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}.mce-content-body{line-height:1.3}
\ No newline at end of file
body{background-color:#FFFFFF;color:#000000;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px;line-height:1.3;scrollbar-3dlight-color:#F0F0EE;scrollbar-arrow-color:#676662;scrollbar-base-color:#F0F0EE;scrollbar-darkshadow-color:#DDDDDD;scrollbar-face-color:#E0E0DD;scrollbar-highlight-color:#F0F0EE;scrollbar-shadow-color:#F0F0EE;scrollbar-track-color:#F5F5F5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:14px}.word-wrap{word-wrap:break-word;-ms-word-break:break-all;word-break:break-all;word-break:break-word;-ms-hyphens:auto;-moz-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}.mce-content-body .mce-reset{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:black;font-family:Arial;font-size:11px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;line-height:normal;font-weight:normal;text-align:left;-webkit-tap-highlight-color:transparent;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;direction:ltr;max-width:none}.mce-object{border:1px dotted #3A3A3A;background:#D5D5D5 url(img/object.gif) no-repeat center}.mce-preview-object{display:inline-block;position:relative;margin:0 2px 0 2px;line-height:0;border:1px solid gray}.mce-preview-object[data-mce-selected="2"] .mce-shim{display:none}.mce-preview-object .mce-shim{position:absolute;top:0;left:0;width:100%;height:100%;background:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)}figure.align-left{float:left}figure.align-right{float:right}figure.image.align-center{display:table;margin-left:auto;margin-right:auto}figure.image{display:inline-block;border:1px solid gray;margin:0 2px 0 1px;background:#f5f2f0}figure.image img{margin:8px 8px 0 8px}figure.image figcaption{margin:6px 8px 6px 8px;text-align:center}.mce-toc{border:1px solid gray}.mce-toc h2{margin:4px}.mce-toc li{list-style-type:none}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px;page-break-before:always}@media print{.mce-pagebreak{border:0}}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;user-select:all;user-modify:read-only;width:9px !important;height:9px !important;border:1px dotted #3A3A3A;background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-nbsp,.mce-shy{background:#AAA}.mce-shy::after{content:'-'}.mce-match-marker{background:#AAA;color:#fff}.mce-match-marker-selected{background:#3399ff;color:#fff}.mce-spellchecker-word{border-bottom:2px solid rgba(208,2,27,0.5);cursor:default}.mce-spellchecker-grammar{border-bottom:2px solid #008000;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td[data-mce-selected],th[data-mce-selected]{background-color:#2276d2 !important}.mce-edit-focus{outline:1px dotted #333}.mce-content-body *[contentEditable=false] *[contentEditable=true]:focus{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false] *[contentEditable=true]:hover{outline:2px solid #2276d2}.mce-content-body *[contentEditable=false][data-mce-selected]{outline:2px solid #2276d2}.mce-content-body.mce-content-readonly *[contentEditable=true]:focus,.mce-content-body.mce-content-readonly *[contentEditable=true]:hover{outline:none}.mce-content-body *[data-mce-selected="inline-boundary"]{background:#bfe6ff}.mce-content-body .mce-item-anchor[data-mce-selected]{background:#D5D5D5 url(img/anchor.gif) no-repeat center}.mce-content-body hr{cursor:default}.mce-content-body table{-webkit-nbsp-mode:normal}.ephox-snooker-resizer-bar{background-color:#2276d2;opacity:0}.ephox-snooker-resizer-cols{cursor:col-resize}.ephox-snooker-resizer-rows{cursor:row-resize}.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging{opacity:.2}
\ No newline at end of file
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection{position:absolute;display:inline-block;background-color:green;opacity:.5}body{-webkit-text-size-adjust:none}body img{max-width:96vw}body table img{max-width:95%}
\ No newline at end of file
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