| | |
| | | |
| | | <!-- 操作按钮 --> |
| | | <Row class="operation"> |
| | | <Button @click="openAdd" type="primary" icon="md-add">新增活动</Button> |
| | | <Button @click="openAdd" type="primary" icon="md-add">新增新闻</Button> |
| | | <Button @click="delBatch" type="error" icon="md-trash" :disabled="selectCount === 0">批量删除</Button> |
| | | </Row> |
| | | |
| | |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="24"> |
| | | <FormItem label="新闻内容:" prop="content"> |
| | | <FormItem label="快讯内容:" prop="content"> |
| | | <Upload |
| | | :show-upload-list="false" |
| | | ref="upload" |
| | |
| | | import 'quill/dist/quill.bubble.css'; |
| | | |
| | | import * as Quill from 'quill' //引入编辑器 |
| | | import VideoBlot from '../activity/video.js'; |
| | | import VideoBlot from './video.js'; |
| | | |
| | | const toolbarOptions = [ |
| | | ['bold', 'italic', 'underline', 'strike'], // 加粗,斜体,下划线,删除线 |
| | |
| | | }, |
| | | mounted() { |
| | | //初始化 |
| | | this.Quill=this.$refs.QuillEditor.quill |
| | | this.getNewsList(); |
| | | this.initTitle(); |
| | | this.initButton(); |
| | | this.$nextTick(() => { |
| | | if (this.$refs.QuillEditor) { |
| | | this.Quill=this.$refs.QuillEditor.quill |
| | | this.getNewsList(); |
| | | this.initTitle(); |
| | | this.initButton(); |
| | | } |
| | | }) |
| | | |
| | | }, |
| | | methods:{ |
| | | onEditorBlur(editor) { |
| | |
| | | this.uploadFile2() |
| | | return false |
| | | }, |
| | | uploadFile2() { |
| | | getFileType(file) { |
| | | // 获取文件类型或扩展名 |
| | | let type, extension; |
| | | |
| | | if (file instanceof File) { |
| | | // 如果是File对象 |
| | | type = file.type; |
| | | const name = file.name.toLowerCase(); |
| | | extension = name.substring(name.lastIndexOf('.') + 1); |
| | | } else if (typeof file === 'string') { |
| | | // 如果是字符串(文件名或URL) |
| | | const name = file.toLowerCase(); |
| | | extension = name.substring(name.lastIndexOf('.') + 1); |
| | | |
| | | // 尝试从URL中提取MIME类型(如果有) |
| | | const mimeMatch = file.match(/^data:(.+?);/); |
| | | if (mimeMatch) { |
| | | type = mimeMatch[1]; |
| | | } |
| | | } else { |
| | | return 'unknown'; |
| | | } |
| | | |
| | | // 常见图片和视频的MIME类型 |
| | | const imageTypes = [ |
| | | 'image/jpeg', 'image/png', 'image/gif', 'image/webp', 'image/bmp', 'image/svg+xml' |
| | | ]; |
| | | |
| | | const videoTypes = [ |
| | | 'video/mp4', 'video/webm', 'video/ogg', 'video/quicktime', 'video/x-msvideo', 'video/x-matroska' |
| | | ]; |
| | | |
| | | // 检查MIME类型 |
| | | if (type) { |
| | | if (imageTypes.includes(type)) return 'image'; |
| | | if (videoTypes.includes(type)) return 'video'; |
| | | } |
| | | |
| | | // 常见图片和视频的扩展名 |
| | | const imageExtensions = ['jpg', 'jpeg', 'png', 'gif', 'webp', 'bmp', 'svg']; |
| | | const videoExtensions = ['mp4', 'webm', 'ogg', 'mov', 'avi', 'mkv']; |
| | | |
| | | // 检查文件扩展名 |
| | | if (extension) { |
| | | if (imageExtensions.includes(extension)) return 'image'; |
| | | if (videoExtensions.includes(extension)) return 'video'; |
| | | } |
| | | |
| | | return 'unknown'; |
| | | }, |
| | | uploadFile2() { |
| | | if (!this.file) return |
| | | |
| | | this.submitLoading = true |
| | |
| | | let url = res.data.url; |
| | | let fileKey = res.data.fileKey; |
| | | let fileType = this.getFileType(this.file); |
| | | |
| | | console.log("打印") |
| | | console.log(this.Quill); |
| | | const range = this.Quill.getSelection(); |
| | | const index = range ? range.index : this.Quill.getLength(); |
| | | |
| | | console.log("--------"); |
| | | console.log(fileType); |
| | | if (fileType === 'video') { |
| | | this.Quill.insertEmbed(index, 'video', { |
| | | url:url, |
| | |
| | | console.log(this.newsForm.content) |
| | | this.Quill.setSelection(index + 1); |
| | | this.$Message.success('上传成功') |
| | | }else{ |
| | | this.$Message.error(res.msg) |
| | | } |
| | | }).catch(() => { |
| | | this.submitLoading = false |
| | |
| | | |
| | | saveOrUpdate(){ |
| | | console.log(this.newsForm) |
| | | // this.$refs.form.validate(valid => { |
| | | // if (valid) { |
| | | // this.submitLoading = true |
| | | // const submitData = { |
| | | // ...this.newsForm, |
| | | // publish: this.newsForm.publish !== 0, // true → 1, false → 0 |
| | | // }; |
| | | // if (this.newsForm.id){ |
| | | // editNews(submitData).then(res => { |
| | | // this.submitLoading = false |
| | | // if (res.code === 200) { |
| | | // this.$Message.success(res.msg) |
| | | // this.modelClose() |
| | | // this.getNewsList() |
| | | // } |
| | | // }).catch(() => { |
| | | // this.submitLoading = false |
| | | // }) |
| | | // }else { |
| | | // addNews(submitData).then(res => { |
| | | // this.submitLoading = false |
| | | // if (res.code === 200) { |
| | | // this.$Message.success(res.msg) |
| | | // this.modelClose() |
| | | // this.getNewsList() |
| | | // } |
| | | // }).catch(() => { |
| | | // this.submitLoading = false |
| | | // }) |
| | | // } |
| | | // |
| | | // } |
| | | // }) |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | this.submitLoading = true |
| | | const submitData = { |
| | | ...this.newsForm, |
| | | publish: this.newsForm.publish !== 0, // true → 1, false → 0 |
| | | }; |
| | | if (this.newsForm.id){ |
| | | editNews(submitData).then(res => { |
| | | this.submitLoading = false |
| | | if (res.code === 200) { |
| | | this.$Message.success(res.msg) |
| | | this.modelClose() |
| | | this.getNewsList() |
| | | } |
| | | }).catch(() => { |
| | | this.submitLoading = false |
| | | }) |
| | | }else { |
| | | addNews(submitData).then(res => { |
| | | this.submitLoading = false |
| | | if (res.code === 200) { |
| | | this.$Message.success(res.msg) |
| | | this.modelClose() |
| | | this.getNewsList() |
| | | } |
| | | }).catch(() => { |
| | | this.submitLoading = false |
| | | }) |
| | | } |
| | | |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | infoModelClose(){ |
| | |
| | | }, |
| | | |
| | | openEdit(row){ |
| | | this.modelTitle = '修改新闻'; |
| | | this.modelTitle = '修改快讯'; |
| | | this.modelShow = true; |
| | | this.$refs.form.resetFields(); |
| | | this.newsForm.title = row.title; |
| | | this.newsForm.content = row.content; |
| | | this.newsForm.id = row.id; |
| | | this.$refs.editor.setContent(this.newsForm.content) |
| | | // this.$refs.editor.setContent(this.newsForm.content) |
| | | }, |
| | | |
| | | openAdd(){ |
| | | this.modelTitle = '新增新闻'; |
| | | this.modelTitle = '新增快讯'; |
| | | this.modelShow = true; |
| | | this.$refs.form.resetFields() |
| | | this.newsForm.id = ''; |