|
@@ -285,19 +285,19 @@ const edit = new Vue({
|
|
|
},
|
|
|
},
|
|
|
methods: {
|
|
|
- onFocused() {
|
|
|
+ onFocused(val = 300) {
|
|
|
setTimeout(() => {
|
|
|
this.validTime = null
|
|
|
console.log(111)
|
|
|
clearTimeout(this.validTime)
|
|
|
- }, 300)
|
|
|
+ }, val)
|
|
|
},
|
|
|
- onBlured() {
|
|
|
+ onBlured(val = 200) {
|
|
|
setTimeout(() => {
|
|
|
this.isFocus = true
|
|
|
this.validFormRule()
|
|
|
console.log(222)
|
|
|
- }, 200)
|
|
|
+ }, val)
|
|
|
},
|
|
|
// 自动保存校验
|
|
|
validFormRule() {
|
|
@@ -307,7 +307,7 @@ const edit = new Vue({
|
|
|
clearTimeout(this.validTime)
|
|
|
this.validTime = setTimeout(() => {
|
|
|
if (this.validTime) {
|
|
|
- this.handleConfirm()
|
|
|
+ this.handleConfirm_new()
|
|
|
}
|
|
|
clearTimeout(this.validTime)
|
|
|
this.validTime = null
|
|
@@ -321,6 +321,13 @@ const edit = new Vue({
|
|
|
handlerTypeId() {
|
|
|
this.onBlured()
|
|
|
},
|
|
|
+ changeVisible($event) {
|
|
|
+ if ($event) {
|
|
|
+ this.onFocused()
|
|
|
+ } else {
|
|
|
+ this.onBlured()
|
|
|
+ }
|
|
|
+ },
|
|
|
// 获取表单数据
|
|
|
fetchEntryData(){
|
|
|
const self = this
|
|
@@ -405,6 +412,40 @@ const edit = new Vue({
|
|
|
this.socrllToErrorWord()
|
|
|
}
|
|
|
},
|
|
|
+ // 提交表单
|
|
|
+ async handleConfirm_new() {
|
|
|
+ try {
|
|
|
+ if(this.showAgreement){
|
|
|
+ CAIMEI.dialog('请先阅读编辑须知协议', false);
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.formData.shopId = GLOBAL_SHOP_ID
|
|
|
+ this.formData.imageList = this.filterImageList(this.fileList)
|
|
|
+ this.formData.videoList = this.filterVideoList(this.fileList)
|
|
|
+ await this.$refs.ruleForm.validate()
|
|
|
+ const params = {
|
|
|
+ shopId: this.formData.shopId,
|
|
|
+ id: this.formData.id, // 词条id
|
|
|
+ name: this.formData.name, // 词条名称
|
|
|
+ alias: this.formData.alias, // 义项名
|
|
|
+ discription: this.formData.discription, // 词条概述
|
|
|
+ image: this.formData.image, // 头图地址
|
|
|
+ typeId: this.formData.typeId, // 分类id
|
|
|
+ seoKeyword: this.formData.seoKeyword, // seo关键字
|
|
|
+ status: this.formData.status, // 状态0保存草稿箱 1已发布
|
|
|
+ infoListStr: JSON.stringify(this.formData.infoList), // 信息栏集合
|
|
|
+ referenceListStr:JSON.stringify(this.formData.referenceList), // 参考资料集合
|
|
|
+ textInfoListStr: JSON.stringify(this.formData.textInfoList),
|
|
|
+ imageListStr: JSON.stringify(this.formData.imageList), // 概述图册集合
|
|
|
+ videoListStr:JSON.stringify(this.formData.videoList), // 视频集合
|
|
|
+ labelIds: this.formData.labelIds ? this.formData.labelIds.join(',') : '' // 关联标签库列表
|
|
|
+ };
|
|
|
+ this.sensitiveWordsValidate_new(params)
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e)
|
|
|
+ this.socrllToErrorWord()
|
|
|
+ }
|
|
|
+ },
|
|
|
/// 确定提交
|
|
|
onReallySave(params) {
|
|
|
const self = this
|
|
@@ -559,7 +600,8 @@ const edit = new Vue({
|
|
|
// 删除信息栏
|
|
|
handleInfoRemove(index) {
|
|
|
this.formData.infoList.splice(index, 1)
|
|
|
- this.onFocused()
|
|
|
+ this.onFocused(0)
|
|
|
+ this.onBlured(0)
|
|
|
},
|
|
|
// 正文目录数据
|
|
|
genereateTextInfo(type, index) {
|
|
@@ -585,7 +627,8 @@ const edit = new Vue({
|
|
|
// 删除正文目录
|
|
|
handleRemoveTextInfo(index, type) {
|
|
|
this.formData.textInfoList.splice(index, 1)
|
|
|
- this.onFocused()
|
|
|
+ this.onFocused(0)
|
|
|
+ this.onBlured(0)
|
|
|
},
|
|
|
// 文件上传成功
|
|
|
handleUploadSuccess(fileList) {
|
|
@@ -595,6 +638,8 @@ const edit = new Vue({
|
|
|
// 文件移除
|
|
|
handleFileRemove(file) {
|
|
|
this.fileList = this.fileList.filter(item => item.uuid !== file.uuid);
|
|
|
+ this.onFocused()
|
|
|
+ this.onBlured()
|
|
|
},
|
|
|
// 封面上传成功
|
|
|
handleCoverUploadSuccess(fileList) {
|
|
@@ -606,6 +651,8 @@ const edit = new Vue({
|
|
|
handleCoverRemove(file) {
|
|
|
this.formData.image = ''
|
|
|
this.coverList = this.coverList.filter(item => item.uuid !== file.uuid);
|
|
|
+ this.onFocused()
|
|
|
+ this.onBlured()
|
|
|
},
|
|
|
// 资料图片上传
|
|
|
handleReferenceImageUploadSuccess(fileList){
|
|
@@ -650,7 +697,41 @@ const edit = new Vue({
|
|
|
})
|
|
|
})
|
|
|
},
|
|
|
-
|
|
|
+ // 敏感词校验
|
|
|
+ sensitiveWordsValidate_new(params) {
|
|
|
+ const whiteList = [];
|
|
|
+ const self = this;
|
|
|
+ SupplierApi.ShopBaikeProductWordsValidate({checkPoint: 2}, function (res) {
|
|
|
+ let flag = true
|
|
|
+ for (const key in params) {
|
|
|
+ if (!whiteList.includes(key)) {
|
|
|
+ const target = JSON.stringify(params[key])
|
|
|
+ const bool = new RegExp(res.data, 'g').test(target)
|
|
|
+ if (bool) {
|
|
|
+ const value = self.matchWords(target, res.data)
|
|
|
+ self.$set(self.formValidate, key, value)
|
|
|
+ flag = false
|
|
|
+ } else {
|
|
|
+ self.$set(self.formValidate, key, '')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (flag) return self.onReallySave_new(params)
|
|
|
+ console.log(self.formValidate)
|
|
|
+ const tip = '当前发布内容存在敏感词,已为您标记在输入框下方,请修改后,再进行保存发布,强行保存发布将会导致审核不通过!'
|
|
|
+ self.$confirm(tip, '提示', {confirmButtonText: '保存', cancelButtonText: '取消'}).then(function () {
|
|
|
+ self.onReallySave_new(params)
|
|
|
+ }).catch(function () {
|
|
|
+ self.socrllToErrorWord() // 滚动到提示处
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ onReallySave_new(params) {
|
|
|
+ shopBikeApi.SaveEntrySumbit(params, (res) => {
|
|
|
+ CAIMEI.dialog('自动保存成功', false);
|
|
|
+ this.onFocused()
|
|
|
+ })
|
|
|
+ },
|
|
|
// 匹配敏感词
|
|
|
matchWords(word, validate) {
|
|
|
const list = []
|