|
@@ -24,6 +24,8 @@ var articleEdit = new Vue({
|
|
|
guidanceImage: '',
|
|
|
// seo关键词
|
|
|
keyword: '',
|
|
|
+ // 关联标签库
|
|
|
+ labelIds: '',
|
|
|
// 标签
|
|
|
label: '',
|
|
|
// 发布人
|
|
@@ -84,7 +86,10 @@ var articleEdit = new Vue({
|
|
|
{required: true, message: '请选择文章所属分类', trigger: 'change'}
|
|
|
]
|
|
|
},
|
|
|
- formValidate: {}
|
|
|
+ formValidate: {},
|
|
|
+ variable: '',
|
|
|
+ remoteLoading: false,
|
|
|
+ labelList: []
|
|
|
},
|
|
|
watch: {
|
|
|
chooseLabels: function chooseLabels(newVal) {
|
|
@@ -104,6 +109,7 @@ var articleEdit = new Vue({
|
|
|
mounted: function mounted() {
|
|
|
$('.navLayout').find('.navList').removeClass("on").find('.con').hide().find('a').removeClass("on");
|
|
|
$('.navLayout').find('.navList').eq(2).addClass("on").find('.con').show().find('a').eq(0).addClass("on");
|
|
|
+ this.initAutoInput('.seo-auto-input', 'keyword')
|
|
|
},
|
|
|
beforeDestroy: function beforeDestroy() {
|
|
|
localStorage.removeItem('articleId');
|
|
@@ -113,6 +119,7 @@ var articleEdit = new Vue({
|
|
|
init: function init() {
|
|
|
var articleId = localStorage.getItem('articleId') || 0;
|
|
|
this.formData.articleId = articleId;
|
|
|
+ this.fetchQueryKeywordList()
|
|
|
this.fetchArticleCatagory(); // 文章id就是修改文章
|
|
|
this.fetchFormList();
|
|
|
this.watchFormData()
|
|
@@ -137,7 +144,11 @@ var articleEdit = new Vue({
|
|
|
// 设置表单初始数据
|
|
|
setFormData: function setFormData(shopArticle) {
|
|
|
for (var key in this.formData) {
|
|
|
- this.formData[key] = shopArticle[key];
|
|
|
+ if(key === 'labelIds' && shopArticle[key]){
|
|
|
+ this.formData[key] = shopArticle[key].split(',').map(v => parseInt(v));
|
|
|
+ }else{
|
|
|
+ this.formData[key] = shopArticle[key];
|
|
|
+ }
|
|
|
}
|
|
|
// 初始化引导图
|
|
|
if (this.formData.guidanceImage) {
|
|
@@ -194,7 +205,8 @@ var articleEdit = new Vue({
|
|
|
this.$refs.ruleForm.validate(valide=>{
|
|
|
if(!valide) return;
|
|
|
// _this.save();
|
|
|
- _this.sensitiveWordsValidate(_this.formData)
|
|
|
+ const params = {..._this.formData, labelIds: _this.formData.labelIds.join(',')}
|
|
|
+ _this.sensitiveWordsValidate(params)
|
|
|
});
|
|
|
},
|
|
|
|
|
@@ -235,17 +247,14 @@ var articleEdit = new Vue({
|
|
|
const target = JSON.stringify(params[key])
|
|
|
const bool = new RegExp(res.data, 'g').test(target)
|
|
|
if (bool) {
|
|
|
- console.log(key, true)
|
|
|
const value = self.matchWords(target, res.data)
|
|
|
self.formValidate[key] = value
|
|
|
flag = false
|
|
|
} else {
|
|
|
- console.log(key, false)
|
|
|
self.formValidate[key] = ''
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- console.log(self.formValidate)
|
|
|
if(flag) return self.onReallySave(params)
|
|
|
const tip = '当前发布内容存在敏感词,已为您标记在输入框下方,请修改后,再进行保存发布,强行保存发布将会导致审核不通过!'
|
|
|
self.$confirm(tip, '提示', { confirmButtonText: '保存', cancelButtonText: '取消' }).then(function(){
|
|
@@ -295,6 +304,43 @@ var articleEdit = new Vue({
|
|
|
}, 800)
|
|
|
})
|
|
|
},
|
|
|
+ async fetchQueryKeywordList(keyword){
|
|
|
+ try {
|
|
|
+ this.remoteLoading = true
|
|
|
+ const res = await PublicApi.fetchLabelKeywordList({keyword: keyword});
|
|
|
+ this.labelList = res.data
|
|
|
+ this.remoteLoading = false
|
|
|
+ }catch (e){
|
|
|
+ console.log(e);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ async autoInputCallback(keyword){
|
|
|
+ try {
|
|
|
+ const res = await PublicApi.fetchQueryKeywordList({keyword: keyword});
|
|
|
+ if(!res.data) return [];
|
|
|
+ return res.data.map(item => item.keyword);
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ initAutoInput(el, variable){
|
|
|
+ const self = this
|
|
|
+ new AutoComplete({
|
|
|
+ el: el,
|
|
|
+ callback:async function(keyword){
|
|
|
+ try {
|
|
|
+ const res = await PublicApi.fetchQueryKeywordList({keyword: keyword});
|
|
|
+ if(!res.data) return [];
|
|
|
+ return res.data.map(item => item.keyword);
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ itemClick: function (keyword) {
|
|
|
+ self.formData[variable] = keyword
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
}
|
|
|
});
|
|
|
|