主题
工具方法
js
/**
* 获取当前环境
* @return {'miniProgram' | 'wechat' | 'browser' | 'unknown'} - 返回当前环境
*/
export function getSource() {
if (typeof navigator === 'undefined') {
return 'unknown'; // SSR 或 Node 环境
}
const ua = navigator.userAgent.toLowerCase();
// 微信小程序(H5 WebView 中)
if (window.__wxjs_environment === 'miniprogram') {
return 'miniProgram';
}
// 判断是否是微信浏览器
if (ua.includes('micromessenger')) {
return 'wechat';
}
return 'browser';
}
/**
* 动态获取图片路径
* @param icon
*/
export function getImgUrl(icon) {
return new URL(`../assets/images/${icon}`, import.meta.url).href;
}Result类
ts
/**
* 通用返回结构
*/
export class Result<T = any> {
success: boolean;
message: string;
data?: T;
private constructor(success: boolean, message: string, data?: T) {
this.success = success;
this.message = message;
this.data = data;
}
/** 创建成功结果 */
static ok<T = any>(data?: T, message = '操作成功'): Result<T> {
return new Result<T>(true, message, data);
}
/** 创建失败结果 */
static fail<T = any>(message = '操作失败', data?: T): Result<T> {
return new Result<T>(false, message, data);
}
}js
/**
* 通用返回结构
*/
class Result {
constructor(success, message, data) {
this.success = success;
this.message = message;
if (data !== undefined) {
this.data = data;
}
}
/** 创建成功结果 */
static ok(data, message = '操作成功') {
return new Result(true, message, data);
}
/** 创建失败结果 */
static fail(message = '操作失败', data) {
return new Result(false, message, data);
}
}
export default Result;js
import Result from './Result.js';
import http from '@/api/http.js';
export async function checkSensitivityWord(word) {
try {
const res = await http.request({
url: '/mztSensitiveWords/check',
method: 'POST',
data: { word },
});
if (res.code === 0) {
return Result.ok(res.data, '检测成功');
} else {
return Result.fail('检测失败: ' + res.message);
}
} catch (e) {
return Result.fail('请求异常: ' + e.message);
}
}