提交 e80bab3a 作者: ZhangLingKun

功能:代码规范

上级 a58b7568
#本地
# REACT_APP_BASE_URL='http://192.168.3.100:32015/'
# REACT_APP_BASE_URL='http://10.246.106.74:32015/'
#线上
REACT_APP_BASE_URL = 'https://testapi.sharefly.mmcuav.cn/'
#REACT_APP_BASE_URL = 'https://csfapi.mmcuav.cn/'
NODE_ENV = 'development'
VERSION='2.2.4.230217.Release'
#测试
REACT_APP_BASE_URL = 'https://testapi.sharefly.mmcuav.cn/'
#正式
#REACT_APP_BASE_URL = 'https://csfapi.mmcuav.cn/'
NODE_ENV = 'production'
VERSION='2.2.4.230217.Release'
......@@ -23,7 +23,11 @@
"react-dom": "^18.1.0",
"react-router-dom": "^6.10.0",
"sort-by": "^1.2.0",
"xlsx": "^0.18.5"
"xlsx": "^0.18.5",
"axios": "^1.4.0",
"js-base64": "^3.7.3",
"js-cookie": "^3.0.1",
"lodash": "^4.17.21"
},
"devDependencies": {
"@types/react": "^18.0.9",
......
import { PointManageAPI } from './modules/pointManageAPI';
export {
PointManageAPI,
};
// 分页通用接口
export interface PaginationProps {
pageSize?: number;
pageNo?: number;
}
// 通用返回接口(分页)
export interface ResponseListType<D> {
code: string;
message: string;
result: {
pageNo: number;
pageSize: number;
totalCount: number;
totalPage: number;
list: Array<D>;
};
}
// 通用返回接口(分页了,但又没有分页)
export interface ResponseItemType<D> {
code: string;
message: string;
result: {
pageNo: number;
pageSize: number;
totalCount: number;
totalPage: number;
list: D;
};
}
// 通用返回接口
export interface ResponseType<D> {
code: string;
message: string;
result: D;
}
// 通用接口封装(分页) 不推荐
export interface InterListType<D, T> {
req: D & PaginationProps;
res: Promise<ResponseListType<T>>;
}
// 通用接口封装(不分页) 不推荐
export interface InterType<D, T> {
req: D;
res: Promise<ResponseType<T>>;
}
// 通用接口封装函数(分页) 建议用这个
export interface InterListFunction<D extends object, T> {
(req: D & PaginationProps): Promise<ResponseListType<T>>;
}
// 通用接口封装函数(不分页) 建议用这个
export interface InterFunction<D extends object, T> {
(req?: D): Promise<ResponseType<T>>;
}
// 通用接口封装函数(分页了,但又没有分页) 建议用这个
export interface InterItemFunction<D extends object, T> {
(req: D & PaginationProps): Promise<ResponseItemType<T>>;
}
import axios from "@/api/request";
import {
AddAndEditBonusRuleType,
AddConvertRuleType,
BonusRuleListQueryType,
CalculateOrderBonusVOType,
CheckUserScoreType,
DistributeMallOrderBonusType,
GetOrderInfoByOrderNoType,
GetScoreListType,
GetUserScoreDetailsType,
ListCirculateInfoType,
ListConvertRuleType,
ListKBTMallUserType,
ListMallUserPageType,
ListProportionObjectType,
MallUserBySearchKeyType,
OrderBonusBuildMallType,
OrderBonusListByOrderIdType,
OrderBonusListPageType,
OrderBonusListRuleType,
OrderScoreReleaseType,
PointListType,
RemoveBonusRuleType,
UpdateMallOrderBonusType,
UserScoreDetailsListType,
UserScorePageListType,
} from "@/api/interface/pointManageType";
export class PointManageAPI {
// 演示规范
static PointList: PointListType = (params) =>
axios.post("malluser/muser/listMallUserPage", params);
// 积分列表-分页
static UserScorePageList: UserScorePageListType = (params) =>
axios.post("/uavscore/score/userScorePageList", params);
// 个人积分明细列表
static UserScoreDetailsList: UserScoreDetailsListType = (params) =>
axios.post("/uavscore/score/userScoreDetailsList", params);
// 个人积分明细--查看单条数据
static GetUserScoreDetails: GetUserScoreDetailsType = (params) =>
axios.get("/uavscore/score/getUserScoreDetails", { params });
// 流通方式列表
static ListCirculateInfo: ListCirculateInfoType = (params) =>
axios.get("/uavscore/score/listCirculateInfo", { params });
// 积分发放
static OrderScoreRelease: OrderScoreReleaseType = (params) =>
axios.post("/uavscore/score/orderScoreRelease", params);
// 兑换规则--条件查询列表
static ListConvertRule: ListConvertRuleType = (params) =>
axios.get("/uavscore/score/listConvertRule", { params });
// 积分发放
static AddConvertRule: AddConvertRuleType = (params) =>
axios.post("/uavscore/score/addConvertRule", params);
// 积分提现审批
static CheckUserScore: CheckUserScoreType = (params) =>
axios.get("/uavscore/score/checkUserScore", { params });
// 获取指定明细列表
static GetScoreList: GetScoreListType = (params) =>
axios.get("/uavscore/score/getScoreList", { params });
// 根据订单编号查询订单
static GetOrderInfoByOrderNo: GetOrderInfoByOrderNoType = (params) =>
axios.get("/mallorder/pmorderVerOne/getOrderInfoByOrderNo", { params });
// 积分管理-分成规则-列表查询
static BonusRuleListQuery: BonusRuleListQueryType = (params) =>
axios.get("/uavscore/bonus/bonusRuleListQuery", { params });
// 积分管理-分成规则-分成对象列表
static ListProportionObject: ListProportionObjectType = (params) =>
axios.get("/uavscore/bonus/listProportionObject", { params });
// 积分管理-分成规则-分成对象新增/编辑
static AddAndEditBonusRule: AddAndEditBonusRuleType = (params) =>
axios.post("/uavscore/bonus/addAndEditBonusRule", params);
// 积分管理-分成规则-分成对象删除
static RemoveBonusRule: RemoveBonusRuleType = (params) =>
axios.get("/uavscore/bonus/removeBonusRule", { params });
// 积分管理-订单分成-获取科比特员工标签的相关用户
static ListKBTMallUser: ListKBTMallUserType = (params) =>
axios.get("/malluser/muser/listKBTMallUser", { params });
// 积分管理-订单分成-订单分成列表
static OrderBonusListPage: OrderBonusListPageType = (params) =>
axios.post("/mallorder/orderBonus/listPage", params);
// 积分管理-订单分成-规则-下拉列表
static OrderBonusListRule: OrderBonusListRuleType = (params) =>
axios.get("/uavscore/bonus/listRule", { params });
// 积分管理-订单分成-订单分成详情
static OrderBonusListByOrderId: OrderBonusListByOrderIdType = (params) =>
axios.get("/mallorder/orderBonus/listByOrderId", { params });
// 积分管理-订单分成-根据规则id、订单id 计算分成对象积分
static OrderBonusBuildMall: OrderBonusBuildMallType = (params) =>
axios.get("/mallorder/orderBonus/buildMallOrderBonus", { params });
// 积分管理-订单分成-无人机城账号管理-分页
static ListMallUserPage: ListMallUserPageType = (params) =>
axios.post("/malluser/muser/listMallUserPage", params);
// 积分管理-订单分成-计算拓展规则分成对象
static CalculateOrderBonusVO: CalculateOrderBonusVOType = (params) =>
axios.post("/mallorder/orderBonus/calculateOrderBonusVO", params);
// 积分管理-订单分成-修改分成对象
static UpdateMallOrderBonus: UpdateMallOrderBonusType = (params) =>
axios.post("/mallorder/orderBonus/updateMallOrderBonus", params);
// 积分管理-订单分成-分页条件查找用户列表
static MallUserBySearchKey: MallUserBySearchKeyType = (params) =>
axios.get("/malluser/muser/mallUserBySearchKey", { params });
// 积分管理-订单分成-发放积分
static DistributeMallOrderBonus: DistributeMallOrderBonusType = (params) =>
axios.get("/mallorder/orderBonus/distributeMallOrderBonus", { params });
}
import axios, { AxiosResponse } from 'axios';
import { message } from 'antd';
import Cookies from 'js-cookie';
import { Base64 } from 'js-base64';
const { REACT_APP_BASE_URL } = process.env;
export const uploadImgURL = `${REACT_APP_BASE_URL}ossservlet/upload/imgOss`;
export const uploadVideoURL = `${REACT_APP_BASE_URL}ossservlet/upload/videoOss`;
export const uploadFileURL = `${REACT_APP_BASE_URL}ossservlet/upload/oss`;
const service = axios.create({
baseURL: REACT_APP_BASE_URL,
timeout: 6000,
});
service.interceptors.request.use(
(config: any) => {
const token = Cookies.get('SXTB-TOKEN');
if (token) {
config.headers.token = token;
}
return config;
},
(error) => {
return Promise.reject(error);
},
);
service.interceptors.response.use(
(response: AxiosResponse) => {
const { data, status } = response;
// 当接口返回正常时执行
if (status === 200) {
// 如果不报错就直接返回数据
if (data.code === '200') {
return Promise.resolve(data);
}
// 重新登录?
if (['605', '603', '602', '4004', '607'].includes(data.code)) {
message.error(data.message).then();
Cookies.remove('SXTB-TOKEN');
setTimeout(() => {
window.location.reload();
}, 1000);
// 阻止后续代码执行
return Promise.reject(data);
}
// 文件/base64导出判断
if (data instanceof Blob || Base64.isValid(data)) {
return Promise.resolve(data);
}
// 如果还有其他报错那么就弹出报错信息(不需要对每个接口的报错做单独判断)
message.error(data.message || '啊呀,出错了').then();
return Promise.reject(data);
}
// 网络错误或链接超时
message.error(data.message).then();
return Promise.reject(data);
},
(error) => {
if (error.response) {
message.error(`${error.response.status},${error.response.statusText}`, 1).then();
}
return Promise.reject(error);
},
);
export const generateCancelToken = () => {
let cancel = null;
const cancelToken = new axios.CancelToken((c) => {
cancel = c;
});
return {
cancel,
cancelToken,
};
};
export default service;
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论