41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
// @/utils/alova-iview.ts
|
||
import { createBschAlova } from "./alova-core";
|
||
import { Message } from "view-ui-plus";
|
||
import conf from "@/assets/config/host.config";
|
||
|
||
/* 全局 loading 遮罩实例 */
|
||
let spinInstance: any = null;
|
||
|
||
/* 主动关闭 loading */
|
||
function closeLoading() {
|
||
if (spinInstance) {
|
||
Message.destroy();
|
||
spinInstance = null;
|
||
}
|
||
}
|
||
|
||
const baseUrl = conf.serviceHost;
|
||
|
||
/* 创建带 View Design UI 的 Alova 实例 */
|
||
export const alovaInstance = createBschAlova(baseUrl, {
|
||
injectHeaders(method) {
|
||
// currentRole: encodeURI(JSON.stringify({ userId, roleId, schId: schoolId })),
|
||
if (localStorage.getItem("currentRole") != null) {
|
||
method.config.headers["currentRole"] = localStorage.getItem("currentRole") as string;
|
||
}
|
||
},
|
||
|
||
/* 2. 加载动画 – View Design Spin */
|
||
onLoadingStart() {
|
||
spinInstance = Message.loading("加载中...");
|
||
},
|
||
onLoadingEnd: closeLoading,
|
||
onBizError(msg: string) {
|
||
if (!!msg) Message.error(msg);
|
||
},
|
||
|
||
onHttpError(msg: string) {
|
||
Message.error({ title: "网络错误", content: msg });
|
||
},
|
||
});
|