新增文章图集功能

This commit is contained in:
zjl 2024-09-19 10:54:15 +08:00
parent 5babfa0c06
commit de381654c3
2 changed files with 55 additions and 25 deletions

View File

@ -50,6 +50,14 @@
<template v-slot:tip>支持扩展名: jpg png jpeg;文件大小不超过200M</template> <template v-slot:tip>支持扩展名: jpg png jpeg;文件大小不超过200M</template>
</UploadImg> </UploadImg>
</el-form-item> </el-form-item>
<el-form-item
label="文章图集"
prop="imagesList"
:rules="{ required: true,message: '请上传文章图集', trigger: 'change' }"
>
<UploadImgs @upload="fileUploads" file-type=".jpeg,.png,.jpg,.gif" name="article"
:fileSize="200" :multiple="true" :fileList="formData.fileList"/>
</el-form-item>
<el-form-item label="导读" prop="intro" :rules="{ required: true, message: '请输入导读', trigger: 'blur' }"> <el-form-item label="导读" prop="intro" :rules="{ required: true, message: '请输入导读', trigger: 'blur' }">
<el-input placeholder="请输入" v-model="formData.intro" type="textarea"></el-input> <el-input placeholder="请输入" v-model="formData.intro" type="textarea"></el-input>
</el-form-item> </el-form-item>
@ -81,6 +89,7 @@ import {computed, onMounted,ref,shallowRef,reactive } from "vue";
import {FormInstance} from "element-plus"; import {FormInstance} from "element-plus";
const formRef = shallowRef<FormInstance>(); const formRef = shallowRef<FormInstance>();
import UploadImg from "@/components/Upload/Image.vue"; import UploadImg from "@/components/Upload/Image.vue";
import UploadImgs from '@/components/Upload/Images.vue';
import {useLockFn} from "@/utils/useLockFn"; import {useLockFn} from "@/utils/useLockFn";
import Editor from '@/components/Editor/tinymce.vue' import Editor from '@/components/Editor/tinymce.vue'
import {message,buildTree} from "@/utils/auth"; import {message,buildTree} from "@/utils/auth";
@ -116,11 +125,15 @@ const formData = reactive({
title: "", title: "",
author: "", author: "",
cover:'', cover:'',
images: '',
intro:'', intro:'',
content:'', content:'',
status:0, status:0,
click:'', click:'',
sort:0 sort:0,
imagesList:[],
filePath:'',
fileList:[],
}); });
const dialogClose = () => { const dialogClose = () => {
@ -135,12 +148,29 @@ const setFormData = async (row: any) => {
} }
} }
editorRef.value.myValue=formData.content editorRef.value.myValue=formData.content
//
if (formData.imagesList) {
formData.imagesList.map(item=>{
formData.fileList.push({
filePath:item
})
})
}
}; };
const editorRef=ref() const editorRef=ref()
const fileUploads = (list: any) => {
formData.fileList = list
};
const handleSubmit = async () => { const handleSubmit = async () => {
await formRef.value?.validate(); await formRef.value?.validate();
//
formData.images =''
formData.fileList.map((item,index)=>{
formData.images+=`${item.filePath}${index<formData.fileList.length-1?',':''}`
})
let ruleForm = JSON.parse(JSON.stringify(formData)); let ruleForm = JSON.parse(JSON.stringify(formData));
ruleForm.content=editorRef.value.myValue ruleForm.content=editorRef.value.myValue
if (!ruleForm.content) { if (!ruleForm.content) {