Skip to content

Commit e78e4e9

Browse files
committed
mp:初步实现【草稿】的前端新增(优化,减少冗余代码)
1 parent d4cd9f9 commit e78e4e9

File tree

1 file changed

+77
-107
lines changed

1 file changed

+77
-107
lines changed

src/views/mp/draft/index.vue

Lines changed: 77 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ SOFTWARE.
3939
<!-- 操作工具栏 -->
4040
<el-row :gutter="10" class="mb8">
4141
<el-col :span="1.5">
42-
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddNews"
42+
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
4343
v-hasPermi="['mp:draft:create']">新增
4444
</el-button>
4545
</el-col>
@@ -114,7 +114,7 @@ SOFTWARE.
114114
</div>
115115
</div>
116116
</div>
117-
<div class="right" v-loading="addMaterialLoading">
117+
<div class="right" v-loading="addMaterialLoading" v-if="articlesAdd.length > 0">
118118
<!--富文本编辑器组件-->
119119
<el-row>
120120
<WxEditor v-model="articlesAdd[isActiveAddNews].content" :uploadData="uploadData"
@@ -154,7 +154,7 @@ SOFTWARE.
154154
</div>
155155
<div slot="footer" class="dialog-footer">
156156
<el-button @click="dialogNewsVisible = false">取 消</el-button>
157-
<el-button type="primary" @click="subNews">提 交</el-button>
157+
<el-button type="primary" @click="submitForm">提 交</el-button>
158158
</div>
159159
</el-dialog>
160160
</div>
@@ -212,18 +212,7 @@ export default {
212212
// ========== 草稿新建 or 修改 ==========
213213
dialogNewsVisible: false,
214214
addMaterialLoading: false, // 添加草稿的 loading 标识
215-
articlesAdd: [{
216-
"title": '',
217-
"thumbMediaId": '',
218-
"author": '',
219-
"digest": '',
220-
"showCoverPic": '',
221-
"content": '123', // TODO 芋艿:临时测试
222-
"contentSourceUrl": '',
223-
"needOpenComment": '',
224-
"onlyFansCanComment": '',
225-
"thumbUrl": '',
226-
}],
215+
articlesAdd: [],
227216
isActiveAddNews: 0,
228217
dialogImageVisible: false,
229218
imageListData: [],
@@ -349,80 +338,14 @@ export default {
349338
}).catch(() => {
350339
})
351340
},
352-
downNews(index){
353-
let temp = this.articlesAdd[index]
354-
this.articlesAdd[index] = this.articlesAdd[index+1]
355-
this.articlesAdd[index+1] = temp
356-
this.isActiveAddNews = index+1
357-
},
358-
upNews(index){
359-
let temp = this.articlesAdd[index]
360-
this.articlesAdd[index] = this.articlesAdd[index-1]
361-
this.articlesAdd[index-1] = temp
362-
this.isActiveAddNews = index-1
363-
},
364-
activeNews(index){
365-
this.hackResetEditor = false//销毁组件
366-
this.$nextTick(() => {
367-
this.hackResetEditor = true//重建组件
368-
})
369-
this.isActiveAddNews = index
370-
},
371-
minusNews(index){
372-
this.$confirm('确定删除该图文吗?', '提示', {
373-
confirmButtonText: '确定',
374-
cancelButtonText: '取消',
375-
type: 'warning'
376-
}).then(() => {
377-
this.articlesAdd.splice(index,1);
378-
if(this.isActiveAddNews === index){
379-
this.isActiveAddNews = 0
380-
}
381-
}).catch(() => {})
382-
},
383-
plusNews(){
384-
this.articlesAdd.push(
385-
{
386-
"title": '',
387-
"thumbMediaId": '',
388-
"author": '',
389-
"digest": '',
390-
"showCoverPic": '',
391-
"content": '',
392-
"contentSourceUrl": '',
393-
"needOpenComment":'',
394-
"onlyFansCanComment":'',
395-
"thumbUrl":''
396-
}
397-
)
398-
this.isActiveAddNews = this.articlesAdd.length - 1
399-
},
400-
subNews() {
341+
/** 提交按钮 */
342+
submitForm() {
401343
this.addMaterialLoading = true
402-
if(this.operateMaterial === 'add'){
344+
if (this.operateMaterial === 'add') {
403345
createDraft(this.queryParams.accountId, this.articlesAdd).then(response => {
404-
this.addMaterialLoading = false
405-
this.dialogNewsVisible = false
406-
if(response.code == 200){
407-
this.isActiveAddNews = 0
408-
this.articlesAdd = [
409-
{
410-
"title": '',
411-
"thumbMediaId": '',
412-
"author": '',
413-
"digest": '',
414-
"showCoverPic": '',
415-
"content": '',
416-
"contentSourceUrl": '',
417-
"needOpenComment":'',
418-
"onlyFansCanComment":'',
419-
"thumbUrl":''
420-
}
421-
]
422-
this.getList()
423-
} else {
424-
this.$message.error('新增图文出错:' + response.msg)
425-
}
346+
this.$modal.msgSuccess("新增成功");
347+
this.dialogNewsVisible = false;
348+
this.getList()
426349
}).finally(() => {
427350
this.addMaterialLoading = false
428351
})
@@ -472,32 +395,77 @@ export default {
472395
this.articlesMediaId = item.mediaId
473396
this.dialogNewsVisible = true
474397
},
475-
handleAddNews(){
398+
/** 新增按钮操作 */
399+
handleAdd() {
400+
this.resetEditor();
401+
this.reset();
402+
// 打开表单,并设置初始化
403+
this.operateMaterial = 'add'
404+
this.dialogNewsVisible = true
405+
},
406+
// 表单重置
407+
reset() {
408+
this.isActiveAddNews = 0
409+
this.articlesAdd = [this.buildEmptyArticle()]
410+
},
411+
// 表单 Editor 重置
412+
resetEditor() {
476413
this.hackResetEditor = false // 销毁组件
477414
this.$nextTick(() => {
478415
this.hackResetEditor = true // 重建组件
479416
})
480-
if(this.operateMaterial == 'edit'){
481-
this.isActiveAddNews = 0
482-
this.articlesAdd = [
483-
{
484-
"title": '',
485-
"thumbMediaId": '',
486-
"author": '',
487-
"digest": '',
488-
"showCoverPic": '',
489-
"content": '',
490-
"contentSourceUrl": '',
491-
"needOpenComment":'',
492-
"onlyFansCanComment":'',
493-
"thumbUrl":''
494-
}
495-
]
417+
},
418+
// 将图文向下移动
419+
downNews(index) {
420+
let temp = this.articlesAdd[index]
421+
this.articlesAdd[index] = this.articlesAdd[index+1]
422+
this.articlesAdd[index + 1] = temp
423+
this.isActiveAddNews = index + 1
424+
},
425+
// 将图文向上移动
426+
upNews(index) {
427+
let temp = this.articlesAdd[index]
428+
this.articlesAdd[index] = this.articlesAdd[index - 1]
429+
this.articlesAdd[index - 1] = temp
430+
this.isActiveAddNews = index - 1
431+
},
432+
// 选中指定 index 的图文
433+
activeNews(index) {
434+
this.resetEditor();
435+
this.isActiveAddNews = index
436+
},
437+
// 删除指定 index 的图文
438+
minusNews(index) {
439+
this.$modal.confirm('确定删除该图文吗?').then(() => {
440+
this.articlesAdd.splice(index,1);
441+
if (this.isActiveAddNews === index) {
442+
this.isActiveAddNews = 0
443+
}
444+
}).catch(() => {})
445+
},
446+
// 添加一个图文
447+
plusNews() {
448+
this.articlesAdd.push(this.buildEmptyArticle())
449+
this.isActiveAddNews = this.articlesAdd.length - 1
450+
},
451+
// 创建空的 article
452+
buildEmptyArticle() {
453+
return {
454+
"title": '',
455+
"thumbMediaId": '',
456+
"author": '',
457+
"digest": '',
458+
"showCoverPic": '',
459+
"content": '',
460+
"contentSourceUrl": '',
461+
"needOpenComment":'',
462+
"onlyFansCanComment":'',
463+
"thumbUrl":''
496464
}
497-
this.operateMaterial = 'add'
498-
this.dialogNewsVisible = true
499465
},
500-
beforeThumbImageUpload(file){
466+
467+
// ======================== 文件上传 ========================
468+
beforeThumbImageUpload(file) {
501469
this.addMaterialLoading = true
502470
const isType = file.type === 'image/jpeg'
503471
|| file.type === 'image/png'
@@ -539,6 +507,8 @@ export default {
539507
this.articlesAdd[this.isActiveAddNews].thumbMediaId = item.mediaId
540508
this.articlesAdd[this.isActiveAddNews].thumbUrl = item.url
541509
},
510+
511+
// ======================== 草稿箱发布 ========================
542512
handlePublishNews(item){
543513
this.$confirm('你正在通过发布的方式发表内容。 发布不占用群发次数,一天可多次发布。已发布内容不会推送给用户,也不会展示在公众号主页中。 发布后,你可以前往发表记录获取链接,也可以将发布内容添加到自定义菜单、自动回复、话题和页面模板中。', '提示', {
544514
confirmButtonText: '确定',

0 commit comments

Comments
 (0)