From 2511a6cc3212ec3ce2faccfa40943f6fd9fde5be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Czouyf=E2=80=9D?= <80906036@qq.com> Date: Thu, 21 Nov 2024 15:02:40 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/renderer/src/api/file/img.js | 42 +++++++++ .../src/components/tinymce/tinymce.vue | 91 +++++++++++-------- .../newClassTaskAssign/myQuestion/index.vue | 1 + .../questionUpload/quesItem/index.vue | 81 ++--------------- .../searchQuestion/index.vue | 4 +- .../Details/classroomPresentation/index.vue | 8 +- 6 files changed, 113 insertions(+), 114 deletions(-) create mode 100644 src/renderer/src/api/file/img.js diff --git a/src/renderer/src/api/file/img.js b/src/renderer/src/api/file/img.js new file mode 100644 index 0000000..6d833e9 --- /dev/null +++ b/src/renderer/src/api/file/img.js @@ -0,0 +1,42 @@ +import request from '@/utils/request' + +// 新增图片存eos +export function saveUploadFile(data) { + return request({ + url: '/education/uploadfile/saveUploadFile', + method: 'post', + headers: { + 'Content-Type': 'multipart/form-data' + }, + data: data + }) +} + +// 新增批量图片存eos +export function saveUploadFiles(data) { + return request({ + url: '/education/uploadfile/saveUploadFiles', + method: 'post', + headers: { + 'Content-Type': 'multipart/form-data' + }, + data: data + }) +} + +// 修改basecomment +export function updateUploadFile(data) { + return request({ + url: '/education/uploadfile', + method: 'put', + data: data + }) +} + +// 删除basecomment +export function delUploadFile(id) { + return request({ + url: '/education/uploadfile/' + id, + method: 'delete' + }) +} \ No newline at end of file diff --git a/src/renderer/src/components/tinymce/tinymce.vue b/src/renderer/src/components/tinymce/tinymce.vue index 30b84ca..4c74536 100644 --- a/src/renderer/src/components/tinymce/tinymce.vue +++ b/src/renderer/src/components/tinymce/tinymce.vue @@ -46,7 +46,8 @@ import "tinymce/plugins/anchor"; //锚点 import { ref, reactive, defineProps, defineEmits, nextTick, onMounted, computed, watch } from 'vue' import { getStaticUrl } from '@/utils/tool' -//import { listUploadfile, getUploadFile, delUploadFile, addUploadFile, saveUploadFile } from "@/api/comm/uploadfile"; +import useUserStore from '@/store/modules/user' +import { saveUploadFile } from "@/api/file/img"; const emits = defineEmits(["update:modelValue", "setHtml"]); //这里我选择将数据定义在props里面,方便在不同的页面也可以配置出不同的编辑器,当然也可以直接在组件中直接定义 @@ -107,6 +108,8 @@ const props = defineProps({ default: () => ({ userId: 0, fileAlias: '单题上传' }), }, }); + +const userStore = useUserStore().user; const pasteImgName = ref(''); const uploadUrl = ref(import.meta.env.VITE_APP_BASE_API + "/common/upload"); // 上传的图片服务器地址 @@ -212,29 +215,31 @@ const init = reactive({ // 插入/编辑图片(普通) - 因此处上传可传图片和文件故仅参考, 实际以[images_upload_handler]这个为准 file_picker_callback: function(callback, value, meta) { + return; + //文件分类 - let filetype='.pdf, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .mp3, .mp4'; - let upURL = '/common/upload'; - //为不同插件指定文件类型及后端地址 - switch(meta.filetype){ - case 'image': - filetype='.jpg, .jpeg, .png, .gif'; - //upURL='upimg.php'; - break; - case 'media': - filetype='.mp3, .mp4'; - //upURL='upfile.php'; - break; - case 'file': - default: - } + // let filetype='.pdf, .txt, .zip, .rar, .7z, .doc, .docx, .xls, .xlsx, .ppt, .pptx, .mp3, .mp4'; + // let upURL = '/common/upload'; + // //为不同插件指定文件类型及后端地址 + // switch(meta.filetype){ + // case 'image': + // filetype='.jpg, .jpeg, .png, .gif'; + // //upURL='upimg.php'; + // break; + // case 'media': + // filetype='.mp3, .mp4'; + // //upURL='upfile.php'; + // break; + // case 'file': + // default: + // } - // 模拟出一个input用于添加本地文件 - let input = document.createElement('input'); - input.setAttribute('type', 'file'); - input.setAttribute('accept', filetype); + // // 模拟出一个input用于添加本地文件 + // let input = document.createElement('input'); + // input.setAttribute('type', 'file'); + // input.setAttribute('accept', filetype); - // 暂时屏蔽 + // // 暂时屏蔽 // input.onchange = function() { // const file = this.files[0]; // const formData = new FormData(); @@ -250,7 +255,7 @@ const init = reactive({ // }); // }; - input.click(); + // input.click(); }, // 插入/编辑图片(上传) @@ -278,22 +283,25 @@ const init = reactive({ formData.append("entpcourseid", 0); formData.append("filetype", "image"); formData.append("suffix", "image"); - formData.append("status", '0'); - if(props.upFileParams?.hasOwnProperty('deptId')){ - formData.append("entpid", props.upFileParams.deptId); + formData.append("status", '1'); + if(userStore.deptId && userStore.deptId != null){ + formData.append("entpid", userStore.deptId); } - if(props.upFileParams?.hasOwnProperty('userId')){ - formData.append("userid", props.upFileParams.userId); + if(userStore.userId && userStore.userId != null){ + formData.append("userid", userStore.userId); } - if(props.upFileParams?.hasOwnProperty('edudegree')){ - let edudegree = props.upFileParams.edudegree.toString(); + if(userStore.edudegree && userStore.edudegree != null){ + let edudegree = userStore.edudegree.toString(); if(edudegree != '' && edudegree.indexOf('年级') == -1){ edudegree += '年级'; } formData.append("edudegree", edudegree); } - if(props.upFileParams?.hasOwnProperty('edusubject')){ - formData.append("edusubject", props.upFileParams.edusubject); + if(userStore.edusubject && userStore.edusubject != null){ + formData.append("edusubject", userStore.edusubject); + } + if(userStore.edustage && userStore.edustage != null){ + formData.append("edustage", userStore.edustage); } if(props.upFileParams?.hasOwnProperty('lessionId')){ formData.append("evalid", props.upFileParams.lessionId); @@ -301,19 +309,22 @@ const init = reactive({ if(props.upFileParams?.hasOwnProperty('fileAlias')){ formData.append("filegroup", props.upFileParams.fileAlias); } + loading.value = true; + console.log('formData->', formData); // 暂时屏蔽 - // saveUploadFile(formData) - // .then((res) => { - // loading.value = false; - // return resolve(res.fileurl); - // }) - // .catch((err) => { - // loading.value = false; - // return reject('err:' + err); - // }); + saveUploadFile(formData) + .then((res) => { + console.log('res->', res); + loading.value = false; + return resolve(res.fileurl); + }) + .catch((err) => { + loading.value = false; + return reject('err:' + err); + }); } ), diff --git a/src/renderer/src/views/classTask/newClassTaskAssign/myQuestion/index.vue b/src/renderer/src/views/classTask/newClassTaskAssign/myQuestion/index.vue index 4661abe..9689f4f 100644 --- a/src/renderer/src/views/classTask/newClassTaskAssign/myQuestion/index.vue +++ b/src/renderer/src/views/classTask/newClassTaskAssign/myQuestion/index.vue @@ -94,6 +94,7 @@ \ No newline at end of file diff --git a/src/renderer/src/views/classTask/newClassTaskAssign/questionUpload/quesItem/index.vue b/src/renderer/src/views/classTask/newClassTaskAssign/questionUpload/quesItem/index.vue index 03c24ee..629991f 100644 --- a/src/renderer/src/views/classTask/newClassTaskAssign/questionUpload/quesItem/index.vue +++ b/src/renderer/src/views/classTask/newClassTaskAssign/questionUpload/quesItem/index.vue @@ -1733,6 +1733,7 @@ watch(() => props.bookobj.levelSecondId, (newVal, oldVal) => { // 暴露给父组件的参数和方法(外部需要什么,都可以从这里暴露出去) defineExpose({ updateForm, + resetForm, cropperFormItemCallBack, }) -- 2.44.0.windows.1 From 14bfef69032b6622091762d8f234649f090079ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E4=BA=86=E4=B8=AA=E7=99=BD?= <543593352@qq.com> Date: Thu, 21 Nov 2024 15:30:55 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E9=A2=98=E5=BA=93?= =?UTF-8?q?=EF=BC=9A=E9=A2=98=E7=9B=AE=E6=96=B0=E5=A2=9E=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../newClassTaskAssign/myQuestion/index.vue | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/renderer/src/views/classTask/newClassTaskAssign/myQuestion/index.vue b/src/renderer/src/views/classTask/newClassTaskAssign/myQuestion/index.vue index d142d03..1c1ff42 100644 --- a/src/renderer/src/views/classTask/newClassTaskAssign/myQuestion/index.vue +++ b/src/renderer/src/views/classTask/newClassTaskAssign/myQuestion/index.vue @@ -93,14 +93,15 @@ - + props.bookobj.levelSecondId, (newVal, oldVal) => { }) + \ No newline at end of file -- 2.44.0.windows.1