| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- import { message } from 'ant-design-vue'
- import { Ref } from 'vue'
- import { ResultInfo } from './interface'
- /**
- * 获取请求接口时候成功或者失败信息
- * @param map 提示信息数据集合
- * @param type 数据集合 的key
- * @returns [成功信息, 失败信息]
- */
- export function getRequestResultInfo(map: Map<number, ResultInfo>, type: number): ResultInfo {
- if (map.has(type)) {
- const result = map.get(type) as ResultInfo
- return result
- } else {
- return ['成功', '失败']
- }
- }
- /**
- * 请求接口通用信息处理(此方法用于不关心请求结果,只关心成功或者失败状态)
- * @param fn 处理服务接口的函数
- * @param sign 自定义成功和失败的信息
- * @param loading loading状态
- */
- export function commonResultInfo(fn: Promise<any>, sign: ResultInfo, loading: Ref<boolean>): Promise<string> {
- return fn.then(() => {
- message.success(sign[0])
- return Promise.resolve(sign[0])
- })
- .catch((err: string) => {
- console.warn(`${fn}调用失败: err`);
- message.error(sign[1] + err)
- return Promise.reject(sign[1] + err)
- }).finally(() => {
- loading.value = false
- })
- }
- /**
- * 控制 请求接口 打开与关闭loading
- * @param fn 请求接口 函数
- * @param param 请求接口 参数
- * @param loading
- * @returns
- */
- export async function controlLoading(fn: Function, loading: Ref<boolean>, param?: any,): Promise<any> {
- loading.value = true;
- try {
- return await param ? fn(param) : fn()
- } catch (err) {
- Promise.resolve(err)
- } finally {
- loading.value = false;
- }
- }
- /**
- * 控制服务请求成功和失败的弹窗提示
- * @param fn 请求接口 函数
- * @param msgInfo [成功结果, 失败结果]
- * @returns
- */
- export function controlResultInfo(fn: Promise<any>, msgInfo: [string, string] = ['成功', '失败']) {
- const [sucInfo, errInfo] = msgInfo
- return fn.then(res => {
- message.success(sucInfo)
- return res;
- }).catch(err => {
- console.warn(`${fn}调用失败: err`);
- const result = errInfo + err
- message.error(result)
- Promise.reject(result)
- })
- }
- /**
- * 用户查询数据,成功返回数据,失败提示
- * @param fn
- * @returns
- */
- export function controlResultErrInfo(fn: Promise<any>) {
- return fn.then(res => {
- let result = res
- if (Array.isArray(res)) {
- // 列表数据需要一个key,要不然会报错,统一处理
- result = res.map((e: any, i: number) => {
- if (e.hasOwnProperty('key')) {
- return e
- } else {
- return { ...e, key: String(i) };
- }
- })
- }
- console.log('查询数据成功:', result)
- return result
- }).catch(err => {
- console.error('查询数据失败:', err)
- message.error(err.message)
- })
- }
- /**
- * 处理服务请求时候的loading和 成功和失败提示
- * @param fn
- * @param param
- * @param loading
- * @param messageInfo
- * @returns
- */
- export function requestResultLoadingAndInfo(fn: Function, param: any, loading: Ref<boolean>, messageInfo: [string, string] = ['成功', '失败']) {
- return controlResultInfo(controlLoading(fn, loading, param), messageInfo)
- }
- /**
- * 查询数据 loading 成功和失败提示
- * @param fn
- * @param loading
- * @param param
- * @returns
- */
- export function queryResultLoadingAndInfo(fn: Function, loading: Ref<boolean>, param?: any) {
- return controlResultErrInfo(controlLoading(fn, loading, param))
- }
|