优化:🔥 深度优化后端 CRUD 公共组件,并抽取前端下载功能到 CRUD 公共组件

1. 后端抽取导出功能到 CRUD 公共组件
2. 查询列表及导出接口支持排序参数
3. 深度优化 BaseServiceImpl 中的 CRUD 公共实现
4. 前端抽取公共下载组件
5. 优化部分细节并修复部分错误
This commit is contained in:
2023-02-13 21:15:06 +08:00
parent 142d315a8d
commit 03b57fb021
25 changed files with 457 additions and 307 deletions

View File

@@ -15,8 +15,9 @@ export function encryptByMd5(txt: string) {
return md5(txt).toString();
}
const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAM51dgYtMyF+tTQt80sfFOpSV27a7t9u' +
'aUVeFrdGiVxscuizE7H8SMntYqfn9lp8a5GH5P1/GGehVjUD2gF/4kcCAwEAAQ=='
const publicKey =
'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAM51dgYtMyF+tTQt80sfFOpSV27a7t9u' +
'aUVeFrdGiVxscuizE7H8SMntYqfn9lp8a5GH5P1/GGehVjUD2gF/4kcCAwEAAQ==';
export function encryptByRsa(txt: string) {
const encryptor = new JSEncrypt();

View File

@@ -1,16 +1,17 @@
import axios from "axios";
import type { AxiosRequestConfig, AxiosResponse } from "axios";
import { Message } from "@arco-design/web-vue";
import { getToken } from "@/utils/auth";
import axios from 'axios';
import type { AxiosRequestConfig, AxiosResponse } from 'axios';
import { Message } from '@arco-design/web-vue';
import { getToken } from '@/utils/auth';
// default config
if (import.meta.env.VITE_API_BASE_URL) {
axios.defaults.baseURL = import.meta.env.VITE_API_BASE_URL;
axios.defaults.timeout = 60000 // 1 分钟
axios.defaults.timeout = 60000; // 1 分钟
}
// request interceptors
axios.interceptors.request.use((config: AxiosRequestConfig) => {
axios.interceptors.request.use(
(config: AxiosRequestConfig) => {
const token = getToken();
if (token) {
if (!config.headers) {
@@ -35,9 +36,13 @@ export interface HttpResponse<T = unknown> {
}
// response interceptors
axios.interceptors.response.use((response: AxiosResponse<HttpResponse>) => {
axios.interceptors.response.use(
(response: AxiosResponse<HttpResponse>) => {
// 二进制数据则直接返回
if(response.request.responseType === 'blob' || response.request.responseType === 'arraybuffer'){
if (
response.request.responseType === 'blob' ||
response.request.responseType === 'arraybuffer'
) {
return response;
}
@@ -49,7 +54,7 @@ axios.interceptors.response.use((response: AxiosResponse<HttpResponse>) => {
// 操作失败,弹出错误提示
Message.error({
content: res.msg,
duration: 3000
duration: 3000,
});
//
// if (res.code === 401) {
@@ -61,9 +66,9 @@ axios.interceptors.response.use((response: AxiosResponse<HttpResponse>) => {
console.error(`err: ${error}`);
const res = error.response.data;
Message.error({
content: res.msg || "网络错误",
duration: 3000
content: res.msg || '网络错误',
duration: 3000,
});
return Promise.reject(error);
}
);
);