|
@@ -13,8 +13,9 @@
|
|
|
ref="richEditor"
|
|
ref="richEditor"
|
|
|
v-model="form.imageTextVos"
|
|
v-model="form.imageTextVos"
|
|
|
@change="onContentChange"
|
|
@change="onContentChange"
|
|
|
- @auto-submit="onEditorAutoSubmit"
|
|
|
|
|
|
|
+ @collect-delete="onCollectDelete"
|
|
|
:action="getLoginInfo.imgUploadApi"
|
|
:action="getLoginInfo.imgUploadApi"
|
|
|
|
|
+ :deferDelete="isEdit"
|
|
|
/>
|
|
/>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
@@ -46,7 +47,8 @@ export default {
|
|
|
imageTextVos: [] // 新增图文内容数组
|
|
imageTextVos: [] // 新增图文内容数组
|
|
|
},
|
|
},
|
|
|
isEdit: false,
|
|
isEdit: false,
|
|
|
- autoSubmitMode: false
|
|
|
|
|
|
|
+ // 编辑模式下,暂存删除的图片路径(短路径)
|
|
|
|
|
+ delImgQueue: []
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
onLoad(option) {
|
|
onLoad(option) {
|
|
@@ -116,6 +118,14 @@ export default {
|
|
|
onContentChange(content) {
|
|
onContentChange(content) {
|
|
|
this.form.imageTextVos = content;
|
|
this.form.imageTextVos = content;
|
|
|
},
|
|
},
|
|
|
|
|
+ // 收集编辑模式下的删除图片
|
|
|
|
|
+ onCollectDelete(payload){
|
|
|
|
|
+ if (!this.isEdit) return;
|
|
|
|
|
+ if (!payload || !Array.isArray(payload.filePaths)) return;
|
|
|
|
|
+ payload.filePaths.forEach(p => {
|
|
|
|
|
+ if (p && !this.delImgQueue.includes(p)) this.delImgQueue.push(p)
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
|
|
|
// 预览内容
|
|
// 预览内容
|
|
|
previewContent() {
|
|
previewContent() {
|
|
@@ -183,38 +193,26 @@ export default {
|
|
|
if(res.code == 1){
|
|
if(res.code == 1){
|
|
|
uni.$emit('refreshListPage');
|
|
uni.$emit('refreshListPage');
|
|
|
that.$msg(this.isEdit ? '修改成功' : '添加成功');
|
|
that.$msg(this.isEdit ? '修改成功' : '添加成功');
|
|
|
- if (!this.autoSubmitMode) {
|
|
|
|
|
- uni.navigateBack({
|
|
|
|
|
- delta: 1
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ // 编辑模式下,如存在待删图片,统一调用批量删除
|
|
|
|
|
+ if (this.isEdit && this.delImgQueue.length > 0) {
|
|
|
|
|
+ const { delImages } = require('@/api/pic-text');
|
|
|
|
|
+ const filePaths = Array.from(new Set(this.delImgQueue))
|
|
|
|
|
+ delImages({ filePaths }).then(() => {
|
|
|
|
|
+ this.delImgQueue = []
|
|
|
|
|
+ }).catch(() => {})
|
|
|
}
|
|
}
|
|
|
- that.autoSubmitMode = false;
|
|
|
|
|
|
|
+ uni.navigateBack({
|
|
|
|
|
+ delta: 1
|
|
|
|
|
+ });
|
|
|
} else {
|
|
} else {
|
|
|
that.$msg(res.message || '操作失败');
|
|
that.$msg(res.message || '操作失败');
|
|
|
- that.autoSubmitMode = false;
|
|
|
|
|
}
|
|
}
|
|
|
}).catch(err => {
|
|
}).catch(err => {
|
|
|
uni.hideLoading();
|
|
uni.hideLoading();
|
|
|
console.error('提交失败:', err);
|
|
console.error('提交失败:', err);
|
|
|
that.$msg('提交失败,请稍后重试');
|
|
that.$msg('提交失败,请稍后重试');
|
|
|
- that.autoSubmitMode = false;
|
|
|
|
|
});
|
|
});
|
|
|
},
|
|
},
|
|
|
- // 接收编辑器自动提交事件
|
|
|
|
|
- onEditorAutoSubmit() {
|
|
|
|
|
- // 只需要在编辑图文时,才自动提交
|
|
|
|
|
- if (!this.isEdit) return;
|
|
|
|
|
-
|
|
|
|
|
- this.autoSubmitMode = true;
|
|
|
|
|
- const e = {
|
|
|
|
|
- detail: {
|
|
|
|
|
- value: {
|
|
|
|
|
- title: this.form.title
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- };
|
|
|
|
|
- this.formSubmit(e);
|
|
|
|
|
- },
|
|
|
|
|
formSubmit(e) {
|
|
formSubmit(e) {
|
|
|
let rules = [
|
|
let rules = [
|
|
|
{ name: "title", rule: ["required", "notEmpty"], msg: ["请输入标题"] },
|
|
{ name: "title", rule: ["required", "notEmpty"], msg: ["请输入标题"] },
|
|
@@ -228,7 +226,6 @@ export default {
|
|
|
// 检查图文内容
|
|
// 检查图文内容
|
|
|
if (this.form.imageTextVos.length === 0) {
|
|
if (this.form.imageTextVos.length === 0) {
|
|
|
this.$msg("请添加至少一项图文内容");
|
|
this.$msg("请添加至少一项图文内容");
|
|
|
- this.autoSubmitMode = false;
|
|
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|