|
|
@@ -12,9 +12,10 @@
|
|
|
</el-header>
|
|
|
<el-container class=" ms-container">
|
|
|
<el-aside width="280px">
|
|
|
+ <!-- 主图文章 -->
|
|
|
<div class="ms-main-article">
|
|
|
- <img :src='mainArticle.basicPic || '>
|
|
|
- <div class="ms-main-article-mask"></div>
|
|
|
+ <img :src="mainArticle.basicPic || ms.base+'/WEB-INF/manager/images/data/article-default.png'">
|
|
|
+ <div class="ms-article-mask"></div>
|
|
|
<span v-text='mainArticle.basicTitle'></span>
|
|
|
</div>
|
|
|
<draggable v-model="subArticleList" :options="{draggable:'.ms-article-item'}">
|
|
|
@@ -31,24 +32,38 @@
|
|
|
</el-aside>
|
|
|
<el-main>
|
|
|
<div class="ms-main-header">
|
|
|
- <el-upload class="ms-pic-upload" :show-file-list="false">
|
|
|
- <img v-if="false" :src="false" class="avatar">
|
|
|
- <i v-else class="el-icon-picture"></i>
|
|
|
- <span>添加封面</span>
|
|
|
+ <el-upload
|
|
|
+ class="ms-pic-upload"
|
|
|
+ :show-file-list="false"
|
|
|
+ :on-success="basicPicSuccess"
|
|
|
+ :before-upload='beforeBasicPicUpload'
|
|
|
+ :action="ms.web + '/file/upload.do'"
|
|
|
+ :limit='1'
|
|
|
+ :data={uploadFloderPath:"/mweixin/news"}
|
|
|
+ >
|
|
|
+ <div class="ms-article-mask" v-show='headMask' @mouseover='headMask=true;' @mouseleave='headMask=false'>
|
|
|
+ <i class="el-icon-delete" @click='delThumbnail'></i>
|
|
|
+ </div>
|
|
|
+ <img v-if="thumbnailShow" :src="thumbnailUrl"
|
|
|
+ class="article-thumbnail" @mouseover='headMask=true;' @mouseleave='headMask=false;'>
|
|
|
+ <template v-else>
|
|
|
+ <i class="el-icon-picture"></i>
|
|
|
+ <span>添加封面</span>
|
|
|
+ </template>
|
|
|
</el-upload>
|
|
|
<el-form label-width='40px'>
|
|
|
<el-form-item label="标题" prop="">
|
|
|
- <el-input size='small' placeholder="请输入图文标题" v-model='articleForm.basicTitle' @input="resetWordNum('title')">
|
|
|
+ <el-input size='small' placeholder="请输入图文标题" v-model='articleForm.basicTitle' @input="resetWordNum('basicTitle',64)">
|
|
|
<span slot='suffix' v-text="titleWordNumber+'/64'"></span>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="作者" prop="">
|
|
|
- <el-input size='small' placeholder="请输入图文作者" v-model='articleForm.articleAuthor' @input="resetWordNum('author')">
|
|
|
+ <el-input size='small' placeholder="请输入图文作者" v-model='articleForm.articleAuthor' @input="resetWordNum('articleAuthor',8)">
|
|
|
<span slot='suffix' v-text="authorWordNumber+'/8'"></span>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="摘要" prop="">
|
|
|
- <el-input size='small' type='textarea' placeholder="选填,如果不写会默认抓取正文前54个字" :autosize="{ minRows: 2, maxRows: 2}" resize='none' v-model='articleForm.basicDescription' @input="resetWordNum('desc')">
|
|
|
+ <el-input size='small' type='textarea' placeholder="选填,如果不写会默认抓取正文前54个字" :autosize="{ minRows: 2, maxRows: 2}" resize='none' v-model='articleForm.basicDescription' @input="resetWordNum(120)">
|
|
|
<span slot='suffix' v-text="descWordNumber+'/54'"></span>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
@@ -70,6 +85,7 @@
|
|
|
basicPic: '', //主图
|
|
|
basicTitle: '', //标题
|
|
|
},
|
|
|
+ defaultMainArticle:'',//拷贝主图信息
|
|
|
subArticleList: [],// 子文章列表
|
|
|
titleWordNumber: 64, //图文标题剩余字数
|
|
|
authorWordNumber: 8, //图文作者剩余字数
|
|
|
@@ -80,7 +96,19 @@
|
|
|
articleAuthor: '', //作者
|
|
|
basicDescription: '', //摘要
|
|
|
articleContent: '', //正文
|
|
|
- }
|
|
|
+ },
|
|
|
+ defaultArticleForm:'',//拷贝表单值
|
|
|
+ thumbnailShow:false,//显示缩略图
|
|
|
+ thumbnailUrl:'',//缩略图路径
|
|
|
+ headMask:false,//缩略图删除
|
|
|
+ },
|
|
|
+ watch:{
|
|
|
+ articleForm:{
|
|
|
+ handler:function(n,o){
|
|
|
+ this.mainArticle.basicTitle = n.basicTitle
|
|
|
+ },
|
|
|
+ deep:true,
|
|
|
+ }
|
|
|
},
|
|
|
methods: {
|
|
|
open:function(material){
|
|
|
@@ -88,11 +116,37 @@
|
|
|
if(material && material.newsId>0){
|
|
|
// 编辑
|
|
|
this.subArticleList = material.articleList
|
|
|
+ this.mainArticle = material.newsArticle
|
|
|
}else{
|
|
|
// 新增
|
|
|
+ console.log('this.defaultArticleForm',this.defaultArticleForm);
|
|
|
+ this.articleForm = this.defaultArticleForm
|
|
|
+ this.mainArticle = this.defaultMainArticle
|
|
|
}
|
|
|
console.log('"material',material);
|
|
|
},
|
|
|
+ // 图片上传之前的钩子
|
|
|
+ beforeBasicPicUpload:function(file){
|
|
|
+ var fileType = false;
|
|
|
+ if(file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/jpg'){
|
|
|
+ fileType = true;
|
|
|
+ }
|
|
|
+ const isLt2M = file.size / 1024 / 1024 < 2;
|
|
|
+ if (!fileType) {
|
|
|
+ this.$message.error('文章配图只能是 JPG、JPEG、PNG 格式!');
|
|
|
+ }
|
|
|
+ if (!isLt2M) {
|
|
|
+ this.$message.error('文章配图大小不能超过 2MB!');
|
|
|
+ }
|
|
|
+ return fileType && isLt2M;
|
|
|
+ },
|
|
|
+ // 图片上传成功函数
|
|
|
+ basicPicSuccess:function(url){
|
|
|
+ this.thumbnailShow = true
|
|
|
+ this.thumbnailUrl = ms.web + url
|
|
|
+ this.mainArticle.basicPic = this.thumbnailUrl
|
|
|
+
|
|
|
+ },
|
|
|
// 添加文章
|
|
|
addArticle: function() {
|
|
|
if(this.subArticleList.length > 6) {
|
|
|
@@ -108,9 +162,23 @@
|
|
|
basicThumbnailsl: 'https://img03.sogoucdn.com/app/a/100520091/20190125113148'
|
|
|
})
|
|
|
},
|
|
|
- // 计算剩余字数
|
|
|
- resetWordNum: function(type) {
|
|
|
+ delThumbnail:function(){
|
|
|
|
|
|
+ },
|
|
|
+ // 计算剩余字数
|
|
|
+ resetWordNum: function(type,limit) {
|
|
|
+ var result = event.target.value;
|
|
|
+ if(type.indexOf('Title') > -1){
|
|
|
+ this.titleWordNumber = this.titleWordNumber - result.length
|
|
|
+ }else{
|
|
|
+ this.authorWordNumber = this.authorWordNumber - result.length
|
|
|
+ }
|
|
|
+ if(result.length >= limit){
|
|
|
+ this.$message.error('超出字数限制,请输入不超过'+limit+'字符');
|
|
|
+ this.$nextTick(function(){
|
|
|
+ this.articleForm[type] = result.slice(0,limit);
|
|
|
+ })
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
mounted: function() {
|
|
|
@@ -150,6 +218,10 @@
|
|
|
);
|
|
|
});
|
|
|
}
|
|
|
+
|
|
|
+ // 初始化默认值
|
|
|
+ this.defaultArticleForm = JSON.parse(JSON.stringify(this.articleForm))
|
|
|
+ this.defaultMainArticle = JSON.parse(JSON.stringify(this.mainArticle))
|
|
|
}
|
|
|
})
|
|
|
</script>
|