chore(logs): 统一错误日志格式并完善参数校验

- 为所有组件和钩子函数的错误日志添加统一的前缀标识
master
LiuJiaNan 2026-01-13 09:05:08 +08:00
parent 0e328cfa43
commit dcbc80f844
15 changed files with 59 additions and 33 deletions

View File

@ -19,7 +19,12 @@ function DictionaryCascader(props) {
const getData = async () => { const getData = async () => {
if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) { if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) {
console.error("传入的 appKey 不在 DICTIONARY_APP_KEY_ENUM 中"); console.error(`【DictionaryCascader】 传入的 appKey 不在 DICTIONARY_APP_KEY_ENUM 中,当前传入的 appKey 是 ${appKey}`);
return;
}
if (!dictValue) {
console.error(`【DictionaryCascader】 缺少 dictValue 参数`);
return; return;
} }

View File

@ -19,7 +19,12 @@ function DictionaryLeftTree(props) {
const getData = async () => { const getData = async () => {
if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) { if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) {
console.error("传入的 appKey 不在 DICTIONARY_APP_KEY_ENUM 中"); console.error(`【DictionaryLeftTree】 传入的 appKey 不在 DICTIONARY_APP_KEY_ENUM 中,当前传入的 appKey 是 ${appKey}`);
return;
}
if (!dictValue) {
console.error(`【DictionaryLeftTree】 缺少 dictValue 参数`);
return; return;
} }

View File

@ -158,7 +158,7 @@ export default class CesiumMap {
} }
else { else {
if (callback && typeof callback === "function") if (callback && typeof callback === "function")
callback(new Error("无法获取坐标"), null); callback(new Error("【Map】 无法获取坐标"), null);
} }
}, window.Cesium.ScreenSpaceEventType.LEFT_CLICK); }, window.Cesium.ScreenSpaceEventType.LEFT_CLICK);
}; };

View File

@ -166,7 +166,7 @@ const MapSelector = (props) => {
// 加载地图资源 // 加载地图资源
const loadMap = () => { const loadMap = () => {
if (!window.mapLongitude && !window.mapLatitude) { if (!window.mapLongitude && !window.mapLatitude) {
console.error("请在window设置变量 mapLongitude 和 mapLatitude以供地图初始化坐标使用"); console.error("【Map】 请在window设置变量 mapLongitude 和 mapLatitude以供地图初始化坐标使用");
return; return;
} }
if (type === "baidu") { if (type === "baidu") {

View File

@ -19,7 +19,12 @@ function DictionarySelect(props) {
const getData = async () => { const getData = async () => {
if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) { if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) {
console.error("传入的 appKey 不在 DICTIONARY_APP_KEY_ENUM 中"); console.error(`【DictionarySelect】 传入的 appKey 不在 DICTIONARY_APP_KEY_ENUM 中,当前传入的 appKey 是 ${appKey}`);
return;
}
if (!dictValue) {
console.error(`【DictionarySelect】 缺少 dictValue 参数`);
return; return;
} }

View File

@ -31,7 +31,7 @@ function PersonnelSelect(props) {
if (isNeedPostId && !params.postId) if (isNeedPostId && !params.postId)
return; return;
if (!isNeedCorpInfoId && !isNeedDepartmentId && !isNeedPostId) { if (!isNeedCorpInfoId && !isNeedDepartmentId && !isNeedPostId) {
console.error("请至少传入一个参数"); console.error("【PersonnelSelect】 请至少传入一个参数");
return; return;
} }

View File

@ -19,7 +19,12 @@ function DictionarySelectTree(props) {
const getData = async () => { const getData = async () => {
if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) { if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) {
console.error("传入的 appKey 不在 DICTIONARY_APP_KEY_ENUM 中"); console.error(`【DictionarySelectTree】 传入的 appKey 不在 DICTIONARY_APP_KEY_ENUM 中,当前传入的 appKey 是 ${appKey}`);
return;
}
if (!dictValue) {
console.error(`【DictionarySelectTree】 缺少 dictValue 参数`);
return; return;
} }

View File

@ -13,7 +13,7 @@ function useDeleteFile(returnType = "object") {
// 删除文件 // 删除文件
const deleteFile = (options) => { const deleteFile = (options) => {
if (!options) { if (!options) {
console.error("请传入 options"); console.error("【deleteFile】 缺少 options 参数");
return; return;
} }
@ -27,11 +27,11 @@ function useDeleteFile(returnType = "object") {
const { files = [], single = true } = options; const { files = [], single = true } = options;
if (!files) { if (!files) {
console.error("请传入 files"); console.error("【deleteFile】 缺少 files 参数");
return; return;
} }
if (!Array.isArray(files)) { if (!Array.isArray(files)) {
console.error("请传入有效的 files"); console.error("【deleteFile】 的 files 需要是一个数组");
return; return;
} }

View File

@ -14,7 +14,7 @@ function useDictionary(returnType = "object") {
// 获取数据字典 // 获取数据字典
const getDictionary = (options) => { const getDictionary = (options) => {
if (!options) { if (!options) {
console.error("请传入 options"); console.error("【getDictionary】 缺少 options 参数");
return; return;
} }
@ -28,11 +28,12 @@ function useDictionary(returnType = "object") {
const { appKey = DICTIONARY_APP_KEY_ENUM.DEFAULT, dictValue } = options; const { appKey = DICTIONARY_APP_KEY_ENUM.DEFAULT, dictValue } = options;
if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) { if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) {
console.error("传入的 options.appKey 不在 DICTIONARY_APP_KEY_ENUM 中"); console.error(`【getDictionary】 传入的 options.appKey 不在 DICTIONARY_APP_KEY_ENUM 中,当前传入的 options.appKey 是 ${appKey}`);
return; return;
} }
if (!dictValue) { if (!dictValue) {
console.error("请传入 options.dictValue"); console.error(`【getDictionary】 缺少 options.dictValue 参数`);
return; return;
} }

View File

@ -19,10 +19,12 @@ export default function useDownloadBlob(returnType = "object") {
setLoading(true); setLoading(true);
} }
return new Promise((resolve, reject) => { if (!url) {
if (!url) console.error("【downloadBlob】 缺少 url 参数");
return reject(new Error("请传入 url")); return;
}
return new Promise((resolve, reject) => {
const { name = "", type = "", params = {} } = options; const { name = "", type = "", params = {} } = options;
const finalUrl = new URL((process.env.app.API_HOST || window.__JJB_ENVIRONMENT__.API_HOST) + url); const finalUrl = new URL((process.env.app.API_HOST || window.__JJB_ENVIRONMENT__.API_HOST) + url);
Object.entries(params).forEach(([key, value]) => { Object.entries(params).forEach(([key, value]) => {
@ -38,7 +40,7 @@ export default function useDownloadBlob(returnType = "object") {
}) })
.then((response) => { .then((response) => {
if (!response.ok) { if (!response.ok) {
console.error("网络响应异常"); console.error("【downloadBlob】 网络响应异常");
return; return;
} }
return response.blob(); return response.blob();

View File

@ -21,7 +21,7 @@ export default function useDownloadFile(returnType = "object") {
const { url, name: fileName } = options; const { url, name: fileName } = options;
if (!url) { if (!url) {
console.error("请传入 url"); console.error("【downloadFile】 缺少 url 参数");
return; return;
} }

View File

@ -15,7 +15,7 @@ function useGetFile(returnType = "object") {
// 获取文件 // 获取文件
const getFile = (options) => { const getFile = (options) => {
if (!options) { if (!options) {
console.error("请传入 options"); console.error("【getFile】 缺少 options 参数");
return; return;
} }
@ -29,18 +29,18 @@ function useGetFile(returnType = "object") {
const { eqType, eqForeignKey } = options; const { eqType, eqForeignKey } = options;
if (!eqType) { if (!eqType) {
console.error("请传入 options.eqType"); console.error("【getFile】 缺少 options.eqType 参数");
return; return;
} }
// 检查eqType是否在UPLOAD_FILE_TYPE_ENUM中 // 检查eqType是否在UPLOAD_FILE_TYPE_ENUM中
if (!Object.values(UPLOAD_FILE_TYPE_ENUM).includes(eqType)) { if (!Object.values(UPLOAD_FILE_TYPE_ENUM).includes(eqType)) {
console.error("传入的 eqType 不在 UPLOAD_FILE_TYPE_ENUM 中"); console.error(`【getFile】 传入的 eqType 不在 UPLOAD_FILE_TYPE_ENUM 中,当前传入的 eqType 是 ${eqType}`);
return; return;
} }
if (eqForeignKey === undefined || eqForeignKey === null) { if (eqForeignKey === undefined || eqForeignKey === null) {
console.error("请传入 options.eqForeignKey"); console.error("【getFile】 缺少 options.eqForeignKey 参数");
return; return;
} }

View File

@ -18,9 +18,12 @@ export default function useImportFile(returnType = "object") {
setLoading(true); setLoading(true);
} }
if (!url) {
console.error("【importFile】 缺少 url 参数");
return;
}
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!url)
return reject(new Error("请传入 url"));
const { files = [], params = {} } = options; const { files = [], params = {} } = options;
const formData = new FormData(); const formData = new FormData();

View File

@ -45,7 +45,7 @@ function getService(service, getExtraParams = {}, transform, usePermission) {
*/ */
function useTable(service, options) { function useTable(service, options) {
if (!service) { if (!service) {
console.error("请传入 service") console.error("【useTable】 缺少 service 参数");
return; return;
} }

View File

@ -14,7 +14,7 @@ function useUploadFile(returnType = "object") {
// 上传文件 // 上传文件
const uploadFile = (options) => { const uploadFile = (options) => {
if (!options) { if (!options) {
console.error("请传入 options"); console.error("【uploadFile】 缺少 options 参数");
return; return;
} }
@ -28,39 +28,39 @@ function useUploadFile(returnType = "object") {
const { files = [], single = true, params } = options; const { files = [], single = true, params } = options;
if (!files) { if (!files) {
console.error("请传入 files"); console.error("【uploadFile】 缺少 files 参数");
return; return;
} }
if (!Array.isArray(files)) { if (!Array.isArray(files)) {
console.error("请传入有效的 files"); console.error("【uploadFile】 的 files 需要是一个数组");
return; return;
} }
if (!params) { if (!params) {
console.error("请传入 options.params"); console.error("【uploadFile】 缺少 options.params 参数");
return; return;
} }
if (!params.type) { if (!params.type) {
console.error("请传入 options.params.type"); console.error("【uploadFile】 缺少 options.params.type 参数");
return; return;
} }
// 检查type是否在UPLOAD_FILE_TYPE_ENUM中 // 检查type是否在UPLOAD_FILE_TYPE_ENUM中
if (!Object.values(UPLOAD_FILE_TYPE_ENUM).includes(params.type)) { if (!Object.values(UPLOAD_FILE_TYPE_ENUM).includes(params.type)) {
console.error("传入的 type 不在 UPLOAD_FILE_TYPE_ENUM 中"); console.error(`【uploadFile】 传入的 type 不在 UPLOAD_FILE_TYPE_ENUM 中,当前传入的 type 是 ${params.type}`);
return; return;
} }
// 根据type获取对应的path // 根据type获取对应的path
const path = UPLOAD_FILE_PATH_ENUM[params.type]; const path = UPLOAD_FILE_PATH_ENUM[params.type];
if (!path) { if (!path) {
console.error(`未找到 type ${params.type} 对应的 path `); console.error(`【uploadFile】未找到 type ${params.type} 对应的 path `);
return; return;
} }
// 当single为false时foreignKey是必需的 // 当single为false时foreignKey是必需的
if (!single) { if (!single) {
if (!params.hasOwnProperty("foreignKey")) { if (!params.hasOwnProperty("foreignKey")) {
console.error("请传入 options.params.foreignKey"); console.error("【uploadFile】 的 single 是 false缺少 options.params.foreignKey 参数");
return; return;
} }
// 如果 foreignKey 是 undefined设置默认值为空字符串 // 如果 foreignKey 是 undefined设置默认值为空字符串