跳转到内容

工具方法

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);
	}
}

Will Try My Best.