Files
websopy-taro/src/api/passport/login/index.ts
T
gxwebsoft 9df90c1176 feat(address): 新增收货地址与售后申请功能
- 新增地址编辑页面,支持地址智能识别、地图选点、地区选择和默认地址设置
- 实现地址列表页面,支持地址查看、删除、设为默认及选择返回结算页
- 新增售后申请页面,支持退款类型选择、商品选择、原因填写、图片上传和提交审核
- 修复 passport 分包配置,移除不存在分包并补充缺失声明,避免 Taro 编译报错
- 新增地址类型定义,增强前端地址数据结构类型安全
- 优化页面交互体验,完善表单校验及错误提示逻辑
- 统一代码格式与命名规范,保持代码风格一致性
2026-07-16 01:18:42 +08:00

76 lines
1.9 KiB
TypeScript

import request from '@/utils/request';
import type { ApiResult } from '@/api';
import type {
LoginParam,
LoginResult,
CaptchaResult,
SmsCaptchaResult
} from './model';
import {saveStorageByLoginUser, SERVER_API_URL} from "@/utils/server";
import { isUserDisabled } from '@/utils/auth';
/**
* 账号密码登录
*/
export async function login(data: LoginParam) {
const res = await request.post<ApiResult<LoginResult>>(
SERVER_API_URL + '/login',
data
);
if (res.code === 0) {
if (res.data?.user && res.data?.access_token) {
if (isUserDisabled(res.data.user)) {
return Promise.reject(new Error('您的账号已被禁用,请联系管理员'));
}
saveStorageByLoginUser(res.data.access_token, res.data.user)
}
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 获取验证码
*/
export async function getCaptcha() {
const res = await request.get<ApiResult<CaptchaResult>>(
SERVER_API_URL + '/captcha',
{}
);
if (res.code === 0 && res.data) {
return res.data;
}
return Promise.reject(new Error(res.message));
}
export async function loginBySms(data: LoginParam) {
const res = await request.post<ApiResult<LoginResult>>(
SERVER_API_URL + '/loginBySms',
data
);
if (res.code === 0) {
if(res.data?.user){
if (isUserDisabled(res.data.user)) {
return Promise.reject(new Error('您的账号已被禁用,请联系管理员'));
}
saveStorageByLoginUser(`${res.data?.access_token}`, res.data?.user)
}
return res.message;
}
return Promise.reject(new Error(res.message));
}
/**
* 发送短信验证码
*/
export async function sendSmsCaptcha(data: LoginParam) {
const res = await request.post<ApiResult<SmsCaptchaResult>>(
SERVER_API_URL + '/sendSmsCaptcha',
data
);
if (res.code === 0) {
return res.message;
}
return Promise.reject(new Error(res.message));
}