|
@@ -20,7 +20,7 @@
|
|
<div class="artricle-inner" :style="{background:bgColorList[activeIndex].contentInnerBg}">
|
|
<div class="artricle-inner" :style="{background:bgColorList[activeIndex].contentInnerBg}">
|
|
<!-- 文章 -->
|
|
<!-- 文章 -->
|
|
<div class="atricle-data">
|
|
<div class="atricle-data">
|
|
- <normal-model :titleFontsize="wordFontsize+30" :wordFontsize="wordFontsize" :colorObj="bgColorList[activeIndex]" :articleType="articleType" :style="{'padding':'0 40px'}"></normal-model>
|
|
|
|
|
|
+ <normal-model :titleFontsize="wordFontsize+30" :wordFontsize="wordFontsize" :colorObj="bgColorList[activeIndex]" :articleType="articleType" :style="{'padding':'0 40px'}" v-if="menuType==='original'"></normal-model>
|
|
<div class="article-btn">
|
|
<div class="article-btn">
|
|
<div class="left">
|
|
<div class="left">
|
|
<span :class="['support colloct-article',support?'active':'']" @click="changeStatus('support')"><svg-icon icon-class="like-line"></svg-icon>2847</span>
|
|
<span :class="['support colloct-article',support?'active':'']" @click="changeStatus('support')"><svg-icon icon-class="like-line"></svg-icon>2847</span>
|
|
@@ -83,10 +83,22 @@
|
|
</div>
|
|
</div>
|
|
<!-- 右侧菜单 -->
|
|
<!-- 右侧菜单 -->
|
|
<div class="mene-right" :style="{background:bgColorList[activeIndex].contentInnerBg,borderColor:bgColorList[activeIndex].glossaryBg}">
|
|
<div class="mene-right" :style="{background:bgColorList[activeIndex].contentInnerBg,borderColor:bgColorList[activeIndex].glossaryBg}">
|
|
- <menu-right :colorObj="bgColorList[activeIndex]"></menu-right>
|
|
|
|
|
|
+ <menu-right :colorObj="bgColorList[activeIndex]" @changeArticleType="changeArticleType"></menu-right>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
+ <div class="share-box" v-if="menuFeature==='share'" v-loading="shareLoading">
|
|
|
|
+ <div class="share-box-top">
|
|
|
|
+ <h5>分享</h5>
|
|
|
|
+ <i class="el-icon-close" @click="handleCloseShare"></i>
|
|
|
|
+ </div>
|
|
|
|
+ <img :src="shareSrc" />
|
|
|
|
+ <div class="share-box-bottom">
|
|
|
|
+ <el-button type="primary" @click="downLoadImg(shareSrc)" size="small">下载图片</el-button>
|
|
|
|
+ <el-button @click="CopyToClipboard('copyDownUrl')" size="small" type="primary" plain>复制链接</el-button>
|
|
|
|
+ <span id="copyDownUrl">{{share_url}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -501,6 +513,11 @@ export default {
|
|
readLength: 0,
|
|
readLength: 0,
|
|
articleInfo: null,
|
|
articleInfo: null,
|
|
loading: false,
|
|
loading: false,
|
|
|
|
+ menuType: 'original',
|
|
|
|
+ menuFeature: '', // 功能
|
|
|
|
+ shareSrc: 'data:image/jpeg;base64,R0lGODlhgAAwAPEAAPr6+gAAAOnp6QAAACwAAAAAgAAwAAAC/pSPqcvtD6OcDdiLs968+w+G4qgZ5Imm6jqa7AvHcubO9o17dc738+4LCk/AofG4KWICzKaoyTRCp1Toy5kUeKhP67AK9qrENG2HC0ILw2zWNLt9p+XIeHSlxigt1Tm5vkGH0ldiFpjHgQi49HdCWHammPG4yIg1FtUIsAfgdJkY0PlZyTc6mNnI6Wl6sXo3+SkYo0mCJbtpqOEaClr6askbJkM7Emu6Z8sqGqrp1QZz6/ibmmvpy6sbzGplrFxM3IV9XQiq/dt616wI7neeMiqLnL6Nra7M/oHvlz0qX+9+yZ44WO6+FZQ2EN05fwoHTqN3cFnCcBNPVfyjpJu424AQK0rE5M1gpIXVfAFjdJKfR30qPdaKKCjjw1caD8EMWS7iS5cxSy5LKYrgRGIsgbphA0aPz5o/jTYc6dJmVINIe/K7GtTpuJwIdVKtSqaIKUofVULd6VVkO2xiAd4SeJbi1HByL7RNuK5j3BBF86UFerel1MFc+eLcidZuybFwzRb2+5duYgtA9DoWutcOWHyHhfKqHFlrWcKQN+Ps7JlyNdSiiXY2HU0hyM8+Sdm2wem2bha5d/smUvu38BbBhxvXUfy4ckjLmyN3Dh1O9OmqKVi/jj27dgoFAAA7', // 分享图片
|
|
|
|
+ share_url: '123456', // 分享链接
|
|
|
|
+ shareLoading: false
|
|
}
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
@@ -672,6 +689,79 @@ export default {
|
|
// .catch(() => {
|
|
// .catch(() => {
|
|
// });
|
|
// });
|
|
}
|
|
}
|
|
|
|
+ },
|
|
|
|
+ changeArticleType(type,e){
|
|
|
|
+ if(type==='print'||type==='share'||type==='list'||type==='cloud'){
|
|
|
|
+ this.menuFeature = type
|
|
|
|
+ if(type==='share'){
|
|
|
|
+ this.handleCreateShare()
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ this.menuType = type
|
|
|
|
+ this.menuFeature = ''
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ handleCloseShare(){
|
|
|
|
+ this.menuFeature = ''
|
|
|
|
+ },
|
|
|
|
+ CopyToClipboard(element) {
|
|
|
|
+ var doc = document,
|
|
|
|
+ text = doc.getElementById(element),
|
|
|
|
+ range,
|
|
|
|
+ selection;
|
|
|
|
+ if (doc.body.createTextRange) {
|
|
|
|
+ range = doc.body.createTextRange();
|
|
|
|
+ range.moveToElementText(text);
|
|
|
|
+ range.select();
|
|
|
|
+ } else if (window.getSelection) {
|
|
|
|
+ selection = window.getSelection();
|
|
|
|
+ range = doc.createRange();
|
|
|
|
+ range.selectNodeContents(text);
|
|
|
|
+ selection.removeAllRanges();
|
|
|
|
+ selection.addRange(range);
|
|
|
|
+ }
|
|
|
|
+ document.execCommand("copy");
|
|
|
|
+ this.$message({
|
|
|
|
+ message: "复制成功",
|
|
|
|
+ type: "success",
|
|
|
|
+ });
|
|
|
|
+ window.getSelection().removeAllRanges();
|
|
|
|
+ },
|
|
|
|
+ downLoadImg(base64URL){
|
|
|
|
+ const a = document.createElement('a');
|
|
|
|
+ a.download = '分享图片';
|
|
|
|
+ const mimeType = base64URL.match(/:(.*?);/)[1];
|
|
|
|
+ const byteCharacters = atob(base64URL.split(',')[1]);
|
|
|
|
+ const byteNumbers = new Array(byteCharacters.length);
|
|
|
|
+ for (let i = 0; i < byteCharacters.length; i++) {
|
|
|
|
+ byteNumbers[i] = byteCharacters.charCodeAt(i);
|
|
|
|
+ }
|
|
|
|
+ const byteArray = new Uint8Array(byteNumbers);
|
|
|
|
+ const blob = new Blob([byteArray], {type: mimeType});
|
|
|
|
+ a.href = URL.createObjectURL(blob);
|
|
|
|
+ document.body.appendChild(a);
|
|
|
|
+ a.click();
|
|
|
|
+ document.body.removeChild(a);
|
|
|
|
+ },
|
|
|
|
+ // 创建分享
|
|
|
|
+ handleCreateShare(){
|
|
|
|
+ this.shareLoading = true
|
|
|
|
+ let MethodName = "/ShopServer/Client/ShareManager/CreateShareRecord";
|
|
|
|
+ let data = {
|
|
|
|
+ goods_type: 21,
|
|
|
|
+ goods_id: this.articleId
|
|
|
|
+ }
|
|
|
|
+ getLogin(MethodName, data)
|
|
|
|
+ .then((res) => {
|
|
|
|
+ this.shareLoading = false
|
|
|
|
+ if(res.status===1){
|
|
|
|
+ this.share_url = res.share_url
|
|
|
|
+ this.shareSrc = 'data:image/jpeg;base64,'+res.image_content_base64
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ .catch(() => {
|
|
|
|
+ this.shareLoading = false
|
|
|
|
+ });
|
|
}
|
|
}
|
|
},
|
|
},
|
|
created(){
|
|
created(){
|
|
@@ -915,6 +1005,70 @@ export default {
|
|
cursor: initial;
|
|
cursor: initial;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+.share-box{
|
|
|
|
+ padding: 24px;
|
|
|
|
+ width: 428px;
|
|
|
|
+ height: 702px;
|
|
|
|
+ position: fixed;
|
|
|
|
+ top: 50%;
|
|
|
|
+ left: 50%;
|
|
|
|
+ margin-top: -351px;
|
|
|
|
+ margin-left: -214px;
|
|
|
|
+ border-radius: 8px;
|
|
|
|
+ border: 1px solid #D0D3D9;
|
|
|
|
+ background: #FFF;
|
|
|
|
+ box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.08), 0px 16px 24px 2px rgba(0, 0, 0, 0.04), 0px 6px 30px 5px rgba(0, 0, 0, 0.05);
|
|
|
|
+ &-top{
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ align-items: center;
|
|
|
|
+ h5{
|
|
|
|
+ color: #000;
|
|
|
|
+ font-size: 24px;
|
|
|
|
+ font-weight: 400;
|
|
|
|
+ line-height: 32px;
|
|
|
|
+ margin: 0;
|
|
|
|
+ }
|
|
|
|
+ .el-icon-close{
|
|
|
|
+ color: rgba(47, 55, 66, 1);
|
|
|
|
+ cursor: pointer;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ img{
|
|
|
|
+ width: 380px;
|
|
|
|
+ height: 532px;
|
|
|
|
+ border-radius: 16px;
|
|
|
|
+ margin: 24px 0;
|
|
|
|
+ }
|
|
|
|
+ #copyDownUrl{
|
|
|
|
+ width: 0;
|
|
|
|
+ height: 0;
|
|
|
|
+ opacity: 0;
|
|
|
|
+ }
|
|
|
|
+ &-bottom{
|
|
|
|
+ .el-button{
|
|
|
|
+ width: 184px;
|
|
|
|
+ height: 48px;
|
|
|
|
+ color: #FFF;
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ font-weight: 400;
|
|
|
|
+ line-height: 24px;
|
|
|
|
+ border-radius: 8px;
|
|
|
|
+ &.is-plain{
|
|
|
|
+ color: rgba(23, 93, 255, 1);
|
|
|
|
+ border-color: rgba(23, 93, 255, 1);
|
|
|
|
+ &:hover{
|
|
|
|
+ background: rgba(231, 238, 255, 1);
|
|
|
|
+ }
|
|
|
|
+ &:focus{
|
|
|
|
+ color: rgba(23, 93, 255, 1);
|
|
|
|
+ border-color: rgba(23, 93, 255, 1);
|
|
|
|
+ background: rgba(231, 238, 255, 1);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
</style>
|
|
</style>
|
|
<style lang="scss">
|
|
<style lang="scss">
|
|
.article-fontsize{
|
|
.article-fontsize{
|