From 406d27d67d643c91bb9a5cff5582994cec19b1a1 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期一, 04 八月 2025 18:12:05 +0800 Subject: [PATCH] 厨神二维码,新闻添加的bug --- manager/src/views/news/index.vue | 149 ++++++++++++++++++++++++++++++++++--------------- 1 files changed, 103 insertions(+), 46 deletions(-) diff --git a/manager/src/views/news/index.vue b/manager/src/views/news/index.vue index bf83454..81e8cd4 100644 --- a/manager/src/views/news/index.vue +++ b/manager/src/views/news/index.vue @@ -53,7 +53,7 @@ <!-- 鎿嶄綔鎸夐挳 --> <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> @@ -134,7 +134,7 @@ </FormItem> </Col> <Col span="24"> - <FormItem label="鏂伴椈鍐呭锛�" prop="content"> + <FormItem label="蹇鍐呭锛�" prop="content"> <Upload :show-upload-list="false" ref="upload" @@ -232,7 +232,7 @@ 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'], // 鍔犵矖锛屾枩浣擄紝涓嬪垝绾匡紝鍒犻櫎绾� @@ -443,10 +443,15 @@ }, 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) { @@ -492,8 +497,57 @@ this.uploadFile2() return false }, - uploadFile2() { + getFileType(file) { + // 鑾峰彇鏂囦欢绫诲瀷鎴栨墿灞曞悕 + let type, extension; + if (file instanceof File) { + // 濡傛灉鏄疐ile瀵硅薄 + type = file.type; + const name = file.name.toLowerCase(); + extension = name.substring(name.lastIndexOf('.') + 1); + } else if (typeof file === 'string') { + // 濡傛灉鏄瓧绗︿覆锛堟枃浠跺悕鎴朥RL锛� + const name = file.toLowerCase(); + extension = name.substring(name.lastIndexOf('.') + 1); + + // 灏濊瘯浠嶶RL涓彁鍙朚IME绫诲瀷锛堝鏋滄湁锛� + 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' + ]; + + // 妫�鏌IME绫诲瀷 + 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 @@ -505,11 +559,12 @@ 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, @@ -528,6 +583,8 @@ console.log(this.newsForm.content) this.Quill.setSelection(index + 1); this.$Message.success('涓婁紶鎴愬姛') + }else{ + this.$Message.error(res.msg) } }).catch(() => { this.submitLoading = false @@ -551,39 +608,39 @@ 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(){ @@ -617,17 +674,17 @@ }, 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 = ''; -- Gitblit v1.8.0