From fdaeec1cdf3f9dafd05399ee4e18574fbb27bbae Mon Sep 17 00:00:00 2001 From: yuanteng <1876787513@qq.com> Date: Sat, 19 Apr 2025 18:16:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BA=86=E6=97=A5=E5=8E=86?= =?UTF-8?q?=E6=9C=89=E9=87=8D=E5=A4=8D=E5=80=BC=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E3=80=81=E5=AF=8C=E6=96=87=E6=9C=AC=E7=BB=84=E4=BB=B6=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E4=B8=8A=E4=BC=A0=E8=8E=AB=E5=90=8D=E6=92=91=E5=A4=A7?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/myAxios.ts | 6 +- src/layout/components/richTextUtil.vue | 9 +- src/utils/formatImgUpload.ts | 8 +- src/views/Commodity/EntityProductDetail.vue | 2 +- src/views/Commodity/TypeManagement.vue | 43 +++++++-- .../CostumeAppointments/ManagementCenter.vue | 7 +- src/views/Coupons/CouponCenter.vue | 21 +++++ src/views/Orders/OrderList.vue | 20 ++-- .../OtherManagement/CourseCarouseCenter.vue | 35 +++++-- .../OtherManagement/EntityCarouseCenter.vue | 35 +++++-- .../OtherManagement/ExpressManagement.vue | 92 +++++++++++++++++++ src/views/ServiceType/ProductCenter.vue | 5 +- .../ServiceType/ServiceProductDetail.vue | 18 ++-- vite.config.ts | 11 ++- 14 files changed, 262 insertions(+), 50 deletions(-) diff --git a/src/api/myAxios.ts b/src/api/myAxios.ts index 7749dfd..66ca6df 100644 --- a/src/api/myAxios.ts +++ b/src/api/myAxios.ts @@ -4,10 +4,10 @@ import router from '../router' const myAxios = axios.create({ withCredentials:true, - baseURL: 'http://localhost:9092/api' - // baseURL: 'http://123.249.108.160:8888/api' //测试服务器 + // baseURL: 'http://localhost:9092/api' // baseURL: 'http://154.8.193.216:9093/api' //隋雨霏服务器测试环境 - // baseURL: 'https://www.carboner.cn:8888/api' + baseURL: 'https://www.carboner.cn:8888/api' + // baseURL:'http://1.94.237.210:9092/api' }); // 添加请求拦截器 axios.interceptors.request.use(function (config) { diff --git a/src/layout/components/richTextUtil.vue b/src/layout/components/richTextUtil.vue index b8520c5..a4caa93 100644 --- a/src/layout/components/richTextUtil.vue +++ b/src/layout/components/richTextUtil.vue @@ -21,6 +21,7 @@ const props = defineProps({ context: String, disableRich: Boolean }) +const imgRegEx = //gi; onMounted(() => { setTimeout(() => { @@ -48,7 +49,7 @@ editorConfig.MENU_CONF['uploadImage'] = { maxFileSize: 1024 * 1024 * 10, //最大图片10M async customUpload(file, insertFn) { const res = await myAxios({ - url: '/file/uploadFile', + url: '/file/upload', method: 'POST', headers: { 'Content-Type': 'multipart/form-data', @@ -77,6 +78,12 @@ const handleCreated = (editor) => { const handleChange = (editor) => { //当选项改变时触发emit传值 emit('richTextContent', valueHtml.value) + const richText = valueHtml.value + valueHtml.value = richText.replace(imgRegEx, (match) => { + console.log(match) + return match.replace(/ diff --git a/src/utils/formatImgUpload.ts b/src/utils/formatImgUpload.ts index d9ed127..952fa5f 100644 --- a/src/utils/formatImgUpload.ts +++ b/src/utils/formatImgUpload.ts @@ -1,9 +1,11 @@ //上传链接 -export const uploadUrl : string = 'http://localhost:9092/api/file/uploadFile' +// export const uploadUrl : string = 'http://localhost:9092/api/file/upload' -// export const uploadUrl : string= 'https://www.carboner.cn:8888/api/file/uploadFile' +export const uploadUrl : string= 'https://www.carboner.cn:8888/api/file/upload' -// export const uploadUrl : string = 'http://154.8.193.216:9093/api/file/uploadFile' //测试环境 +// export const uploadUrl : string = 'http://154.8.193.216:9093/api/file/upload' //测试环境 + +// export const uploadUrl : string = 'http://1.94.237.210:9092/api/file/upload' //下载链接 export const downloadUrl : string = 'https://www.carboner.cn:8888/api/file/downloadFile?objectKey=' diff --git a/src/views/Commodity/EntityProductDetail.vue b/src/views/Commodity/EntityProductDetail.vue index 00aea6a..508f8df 100644 --- a/src/views/Commodity/EntityProductDetail.vue +++ b/src/views/Commodity/EntityProductDetail.vue @@ -129,7 +129,7 @@ onMounted(() => { const getFestivalArr = async () => { let tempFestivalArr : any = [] //临时数组,存放每一次获取的节日名称,用于判断 const res = await myAxios.get('/festival/get') - console.log('节日信息--->',res.data.data) + // console.log('节日信息--->',res.data.data) if(res.data.code === 1) { festivalArr.value = res.data.data festivalArr.value.forEach((item : any) => { diff --git a/src/views/Commodity/TypeManagement.vue b/src/views/Commodity/TypeManagement.vue index a72bebe..51f7445 100644 --- a/src/views/Commodity/TypeManagement.vue +++ b/src/views/Commodity/TypeManagement.vue @@ -15,7 +15,7 @@ :auto-upload="false" multiple="true" :on-remove="handleRemove" - @change="(event: any) => handleChange(event)" + @change="compressImage" :on-exceed="Exceed_ProductImg" limit="1"> @@ -69,7 +69,8 @@ import {ElMessage, type UploadProps, type UploadUserFile,type UploadFile, genFil import {ErrorInfo, SuccessInfo} from '@/utils/messageInfo'; import {onMounted, ref} from 'vue' import myAxios from '@/api/myAxios'; -import { downloadUrl } from '@/utils/formatImgUpload' +import {downloadUrl, uploadUrl} from '@/utils/formatImgUpload' +import Compressor from "compressorjs"; const fileSimple = ref() //单个文件 const selectedItems = ref([]) @@ -96,30 +97,52 @@ onMounted(() => { //获取类别列表 const getTypeList = async () => { const res = await myAxios.post('/category/list/web') - // console.log(res.data.data) + console.log(res.data.data) if (res.data.code === 1) { tableData.value = res.data.data } else { ElMessage.error('获取类别列表失败,请检查服务') } } + +const compressImage =(file: any)=> { //图片压缩方法 + return new Promise((resolve, reject) => { + new Compressor(file.raw, { + quality: 0.2, //压缩质量,越高文件越大 + success(result) { + // console.log('res--->',result) + // 压缩成功后的处理 + // 可以在这里预览、上传或者做其他处理 + const compressedFile = new File([result], file.raw.name, { type: result.type }); + // 可以在这里预览、上传或者做其他处理 + console.log("Compressed file:", compressedFile); + // 如果需要上传,可以在这里执行上传操作 + handleChange(compressedFile) + // resolve(compressedFile); + }, + error(err) { + reject("压缩失败"); + console.log("Compressor error:", err.message); + } + }); + }); +} + //上传图片,一张图片,不需要flag值 const handleChange = async (file: any) => { - fileSimple.value = file loading.value = true - let formData = new FormData() //这一步很重要 创建一个FormData对象 - formData.append("file", fileSimple.value.raw) //fileSimple.value.raw 才是文件主体 将其以文件的格式插入formData const res = await myAxios({ //编写请求,与以前的请求不同,这一次要指定好头部类型和文件类型 - url: '/file/uploadFile', + url: uploadUrl, method: 'post', headers: { 'content-Type': 'multipart/form-data' }, data: { biz: "test", - file: formData.get("file") // 取出formData对象中的file + file: file } }) + console.log('图片上传--->',res.data); if (res.data.code === 1) { loading.value = false SuccessInfo('上传成功') @@ -199,7 +222,7 @@ const addOrUpdateType = async () => { ElMessage.error('更新失败') } } - getTypeList() + await getTypeList() } //重置表单 const resetForm = () => { @@ -234,7 +257,7 @@ const Delete_type = async (index: number) => { message: '删除成功', }) } - getTypeList() + await getTypeList() } const changeInput = () => { //当输入栏变化时解除禁用提交按钮 submitable.value = false diff --git a/src/views/CostumeAppointments/ManagementCenter.vue b/src/views/CostumeAppointments/ManagementCenter.vue index adb9278..e98d074 100644 --- a/src/views/CostumeAppointments/ManagementCenter.vue +++ b/src/views/CostumeAppointments/ManagementCenter.vue @@ -482,9 +482,12 @@ const submitDate = async ()=> { //提交日期方法 appointmentDateAddRequestList.value.forEach((item:any,index:number)=>{ Object.assign(item, {photoProductId : photoProductId}) //添加photoProductId到appointmentDateAddRequestList每一项中 }) - console.log('预约---->',appointmentDateAddRequestList.value); + // console.log('预约---->',appointmentDateAddRequestList.value); const res = await myAxios.post("/book/addBatch", appointmentDateAddRequestList.value) - console.log('添加日期返回的结果',res.data) + // console.log('添加日期返回的结果',res.data) + if(res.data.code === 1) { + reload() + } await getOutfitList(); addDateVisible.value = false appointmentDateAddRequestList.value = [] diff --git a/src/views/Coupons/CouponCenter.vue b/src/views/Coupons/CouponCenter.vue index abe258d..163c19f 100644 --- a/src/views/Coupons/CouponCenter.vue +++ b/src/views/Coupons/CouponCenter.vue @@ -27,6 +27,12 @@ + + +