|
|
|
@ -29,3 +29,85 @@ export function throttle(fn, wait = 3000) { |
|
|
|
}, wait) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// ========== 错误处理相关 ========== - rqrq
|
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 截取错误信息,防止提示过长 - rqrq |
|
|
|
* @param {Error|Object|String} error - 错误对象、包含msg字段的对象或错误字符串 |
|
|
|
* @param {String} defaultMsg - 默认错误信息 |
|
|
|
* @param {Number} maxLength - 最大长度,默认100字符 |
|
|
|
* @return {String} 处理后的错误信息 |
|
|
|
* @author rqrq |
|
|
|
* @date 2024/01/17 |
|
|
|
*/ |
|
|
|
export function formatErrorMsg(error, defaultMsg = '操作失败', maxLength = 100) { |
|
|
|
let errorMsg = defaultMsg; |
|
|
|
|
|
|
|
// 从error对象中提取错误信息 - rqrq
|
|
|
|
if (error) { |
|
|
|
if (typeof error === 'string') { |
|
|
|
errorMsg = error; |
|
|
|
} else if (error.message) { |
|
|
|
errorMsg = error.message; |
|
|
|
} else if (error.msg) { |
|
|
|
errorMsg = error.msg; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 截取过长的错误信息 - rqrq
|
|
|
|
if (errorMsg && errorMsg.length > maxLength) { |
|
|
|
errorMsg = errorMsg.substring(0, maxLength) + '...'; |
|
|
|
} |
|
|
|
|
|
|
|
return errorMsg; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 统一的错误提示弹窗(带聚焦控制)- rqrq |
|
|
|
* @param {Object} vm - Vue组件实例(this) |
|
|
|
* @param {Error|Object|String} error - 错误对象 |
|
|
|
* @param {String} defaultMsg - 默认错误信息 |
|
|
|
* @param {String} inputRef - 需要聚焦的输入框ref名称(可选) |
|
|
|
* @author rqrq |
|
|
|
* @date 2024/01/17 |
|
|
|
*/ |
|
|
|
export function showErrorAlert(vm, error, defaultMsg = '操作失败', inputRef = '') { |
|
|
|
const errorMsg = formatErrorMsg(error, defaultMsg); |
|
|
|
|
|
|
|
vm.$alert(errorMsg, '错误', { |
|
|
|
confirmButtonText: '确定', |
|
|
|
callback: () => { |
|
|
|
// 如果提供了inputRef,则在回调中聚焦 - rqrq
|
|
|
|
if (inputRef) { |
|
|
|
vm.$nextTick(() => { |
|
|
|
if (vm.$refs[inputRef]) { |
|
|
|
vm.$refs[inputRef].focus(); |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @Description 统一的成功提示(带回调)- rqrq |
|
|
|
* @param {Object} vm - Vue组件实例(this) |
|
|
|
* @param {String} msg - 成功提示信息 |
|
|
|
* @param {Function} callback - 成功后的回调函数(可选) |
|
|
|
* @author rqrq |
|
|
|
* @date 2024/01/17 |
|
|
|
*/ |
|
|
|
export function showSuccessMsg(vm, msg = '操作成功', callback) { |
|
|
|
vm.$message({ |
|
|
|
message: msg, |
|
|
|
type: 'success', |
|
|
|
duration: 2000, |
|
|
|
showClose: true, |
|
|
|
onClose: () => { |
|
|
|
if (typeof callback === 'function') { |
|
|
|
callback(); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} |