liuQiang il y a 1 an
Parent
commit
5b40f40351

+ 4 - 0
src/api/myfile/myfile.js

@@ -83,6 +83,10 @@ function fileChangeName(data) {
 function fileDown(data){
     return request({
         url:`/biz/info/download/${data}`,
+        responseType: 'blob',
+        headers:{
+            'Content-Type':'application/json',
+        },
         method:"get"
     })
 }

+ 28 - 2
src/views/department/MyFile.vue

@@ -800,7 +800,8 @@ export default {
                 fileNameChange.value = true
             }
             if (row.name === "下载") {
-                location.href = `${import.meta.env.VITE_APP_BASE_API}/api/download/${copyFileId.value}`;
+                // location.href = `${import.meta.env.VITE_APP_BASE_API}/api/download/${copyFileId.value}`;
+            downLoadfile()
             }
             if (row.name === '收藏') {
                 collects.value = true
@@ -1439,6 +1440,30 @@ export default {
                 ElMessage({ message: "验证失败", type: "error" })
             }
         }
+        const downLoadfile = ()=>{
+            myfile.fileDown(clickRow.value.fileId).then(res=>{
+                 var reader = new FileReader();
+                reader.onloadend = function(event){
+                //event 就是你要的返回内容
+                //因为返回的报错格式是字符串,手动转换成对象,转换成功表示请求失败
+                //转换失败就意味着你拿到的result是文件流,那么直接手动下载就好
+                try{
+                    let data = JSON.parse(event.target.result)
+                }catch(err){
+                    const link = document.createElement('a');  // 创建a标签
+                    let blob = new Blob([res.data]);     
+                    link.style.display = 'none';
+                    link.href = URL.createObjectURL(blob);   // 创建下载的链接
+                    link.setAttribute('download',clickRow.value.fileName+clickRow.value.fileType);  // 给下载后的文件命名
+                    document.body.appendChild(link);
+                    link.click();  // 点击下载
+                    document.body.removeChild(link);  //  完成移除元素
+                    window.URL.revokeObjectURL(link.href);  // 释放blob对象
+                }
+                };
+                reader.readAsText(res);
+            })
+        }
         onMounted(() => {
             getAllTop()
             getSpaceList()
@@ -1608,7 +1633,8 @@ export default {
             chooseNum,
             loadingPreview,
             thisRole,
-            noMenuItem
+            noMenuItem,
+            downLoadfile
         }
     },
     watch: {

+ 1 - 1
src/views/login.vue

@@ -195,7 +195,7 @@ const newPassRule = (rule, value, callback) => {
     callback(new Error("请输入密码"));
   } else if (!pPattern.test(value)) {
     callback(
-      new Error("密码长度最少为8位,且需包含大写字母、小写数字、字、特殊字符")
+      new Error("密码长度最少为8位,包含大小写数字、字、特殊字符")
     );
   } else {
     callback();

+ 29 - 2
src/views/myfile/MyFile.vue

@@ -828,7 +828,8 @@ export default {
                 fileNameChange.value = true
             }
             if (row.name === "下载") {
-                location.href = `${import.meta.env.VITE_APP_BASE_API}/api/download/${copyFileId.value}`;
+                // location.href = `${import.meta.env.VITE_APP_BASE_API}/biz/info/download/${copyFileId.value}`;
+            downLoadfile()
             }
             if (row.name === '收藏') {
                 collects.value = true
@@ -1455,6 +1456,31 @@ export default {
                 ElMessage({ message: "验证失败", type: "error" })
             }
         }
+        // 文件下载
+        const downLoadfile = ()=>{
+            myfile.fileDown(clickRow.value.fileId).then(res=>{
+                 var reader = new FileReader();
+                reader.onloadend = function(event){
+                //event 就是你要的返回内容
+                //因为返回的报错格式是字符串,手动转换成对象,转换成功表示请求失败
+                //转换失败就意味着你拿到的result是文件流,那么直接手动下载就好
+                try{
+                    let data = JSON.parse(event.target.result)
+                }catch(err){
+                    const link = document.createElement('a');  // 创建a标签
+                    let blob = new Blob([res.data]);     
+                    link.style.display = 'none';
+                    link.href = URL.createObjectURL(blob);   // 创建下载的链接
+                    link.setAttribute('download',clickRow.value.fileName+clickRow.value.fileType);  // 给下载后的文件命名
+                    document.body.appendChild(link);
+                    link.click();  // 点击下载
+                    document.body.removeChild(link);  //  完成移除元素
+                    window.URL.revokeObjectURL(link.href);  // 释放blob对象
+                }
+                };
+                reader.readAsText(res);
+            })
+        }
         onMounted(() => {
             getAllTop()
             getSpaceList()
@@ -1623,7 +1649,8 @@ export default {
             surePass,
             chooseRow,
             chooseNum,
-            loadingPreview
+            loadingPreview,
+            downLoadfile
         }
     },
     watch: {

+ 29 - 2
src/views/publicment/MyFile.vue

@@ -804,7 +804,8 @@ export default {
                 fileNameChange.value = true
             }
             if (row.name === "下载") {
-                location.href = `${import.meta.env.VITE_APP_BASE_API}/api/download/${copyFileId.value}`;
+                // location.href = `${import.meta.env.VITE_APP_BASE_API}/api/download/${copyFileId.value}`;
+            downLoadfile()
             }
             if (row.name === '收藏') {
                 collects.value = true
@@ -1443,6 +1444,31 @@ export default {
                 ElMessage({ message: "验证失败", type: "error" })
             }
         }
+        // 文件下载
+        const downLoadfile = ()=>{
+            myfile.fileDown(clickRow.value.fileId).then(res=>{
+                 var reader = new FileReader();
+                reader.onloadend = function(event){
+                //event 就是你要的返回内容
+                //因为返回的报错格式是字符串,手动转换成对象,转换成功表示请求失败
+                //转换失败就意味着你拿到的result是文件流,那么直接手动下载就好
+                try{
+                    let data = JSON.parse(event.target.result)
+                }catch(err){
+                    const link = document.createElement('a');  // 创建a标签
+                    let blob = new Blob([res.data]);     
+                    link.style.display = 'none';
+                    link.href = URL.createObjectURL(blob);   // 创建下载的链接
+                    link.setAttribute('download',clickRow.value.fileName+clickRow.value.fileType);  // 给下载后的文件命名
+                    document.body.appendChild(link);
+                    link.click();  // 点击下载
+                    document.body.removeChild(link);  //  完成移除元素
+                    window.URL.revokeObjectURL(link.href);  // 释放blob对象
+                }
+                };
+                reader.readAsText(res);
+            })
+        }
         onMounted(() => {
             getAllTop()
             getSpaceList()
@@ -1612,7 +1638,8 @@ export default {
             chooseNum,
             loadingPreview,
             thisRole,
-            noMenuItem
+            noMenuItem,
+            downLoadfile
         }
     },
     watch: {

+ 0 - 75
vite.config.js

@@ -1,75 +0,0 @@
-import {
-	defineConfig,
-	loadEnv
-} from 'vite'
-import path from 'path'
-import createVitePlugins from './vite/plugins'
-
-// https://vitejs.dev/config/
-export default defineConfig(({
-	mode,
-	command
-}) => {
-	const env = loadEnv(mode, process.cwd())
-	const {
-		VITE_APP_ENV
-	} = env
-	return {
-		// 部署生产环境和开发环境下的URL。
-		// 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上
-		// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
-		base: VITE_APP_ENV === 'production' ? '/' : '/',
-		plugins: createVitePlugins(env, command === 'build'),
-		resolve: {
-			// https://cn.vitejs.dev/config/#resolve-alias
-			alias: {
-				// 设置路径
-				'~': path.resolve(__dirname, './'),
-				// 设置别名
-				'@': path.resolve(__dirname, './src')
-			},
-			// https://cn.vitejs.dev/config/#resolve-extensions
-			extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
-		},
-		// vite 相关配置
-		server: {
-			port: 81,
-			host: true,
-			open: true,
-			proxy: {
-				// https://cn.vitejs.dev/config/#server-proxy
-				'/dev-api': {
-					// target: 'http://192.168.1.28:8080/',
-					// target: 'http://8.142.173.95:19527/',
-					// target:'http://192.168.1.28:8080/',
-					target:'http://192.168.1.11:8080',
-					changeOrigin: true,
-					rewrite: (p) => p.replace(/^\/dev-api/, '')
-				},
-				//websocket代理
-				'/websocket': {				
-					// target:'ws://8.142.173.95:19527/websocket',
-					target:'ws://192.168.1.28:8080/websocket',
-					// target:'ws://192.168.1.11:8080/websocket',
-					changeOrigin: true,
-					rewrite: (p) => p.replace(/^\/websocket/, '')
-				}
-			}
-		},
-		//fix:error:stdin>:7356:1: warning: "@charset" must be the first rule in the file
-		css: {
-			postcss: {
-				plugins: [{
-					postcssPlugin: 'internal:charset-removal',
-					AtRule: {
-						charset: (atRule) => {
-							if (atRule.name === 'charset') {
-								atRule.remove();
-							}
-						}
-					}
-				}]
-			}
-		}
-	}
-})