import { usePost, stringify, useGet, usePut } from "@/.cool"; import { config } from "@/config"; export type LoginData = { access_token: string; refresh_token: string; } export interface GetInfoResult { permissions: any[] roles: any[] sysRoles: any[] userInfo: any } export interface CONFIG_OPEN_CHILDREN_ALL { code: string name: string id: string content: string description: string type: number openFlag: boolean } export interface DICT_CHILDREN_ALL { code: string label: string value: string } export interface CONFIG_OPEN_VALUE { [key: string]: string } export interface DICT_DATA { 'config:open:children-all': CONFIG_OPEN_CHILDREN_ALL[] 'config:open:value': CONFIG_OPEN_VALUE 'dict:children': { [key: string]: CONFIG_OPEN_VALUE } 'dict:value:obj': { [key: string]: CONFIG_OPEN_VALUE } 'dict:value': { [key: string]: CONFIG_OPEN_VALUE } 'dict:code': { [key: string]: CONFIG_OPEN_VALUE } 'dict:label': { [key: string]: CONFIG_OPEN_VALUE } 'dict:children-all': { [key: string]: DICT_CHILDREN_ALL[] } } export function loginApi(params) { return usePost(`/oauth/token?${stringify(params)}`) as Promise } export function refreshTokenApi(refreshToken: string): Promise { // 绕过 request() 避免 header spread 导致 Authorization 被 user.token 污染 return new Promise((resolve, reject) => { uni.request({ url: config.baseUrl + `/oauth/token?grant_type=refresh_token&refresh_token=${refreshToken}`, method: 'POST', header: { Authorization: 'Basic ZW5kOmVuZA==' }, success(res: any) { // 小程序 uni.request 的 res.data 已是对象,无需 JSON.parse console.log('[refreshTokenApi] statusCode:', res.statusCode) console.log('[refreshTokenApi] data:', res.data) const d = res.data as UTSJSONObject if (d['code'] == 200 || d['code'] == 0) { resolve(d['data'] as LoginData) } else { reject({ message: (d['message'] as string) ?? 'refresh failed' }) } }, fail(err: any) { console.log('[refreshTokenApi] fail:', err) reject({ message: err.errMsg ?? 'refresh network error' }) } }) }) } export function sendSmsCode(params) { return usePost(`/verify/sms/code/send`, params) as Promise } export function getUsersInfo() { return useGet(`/upms/users/info`) as Promise } export function dictData() { return useGet(`/upms/dicts/data`) as Promise } export function updateUserInfo(parameter: any) { return usePut(`/upms/users/change-info`, parameter) as Promise } export function changeUserPwd(parameter: any) { return usePut(`/upms/users/change-pwd`, parameter) as Promise } export function bindWechatOpenId(parameter: any) { return useGet(`/wechat/bind/small/program`, parameter) as Promise } export function wechatLogin(parameter: any) { return useGet(`/wechat/quickly/login/oauth`, parameter) as Promise } export function wechatPay(parameter: any) { return useGet(`/wechat/pay/jsapi`, parameter) as Promise } export function wechatPayRequest(parameter: any) { return useGet(`/wechat/pay/request/payment`, parameter) as Promise } export function exchangeCode(params) { return usePost(`/upms/users/exchange/code`, params) as Promise } export function wechatPayQuery(parameter: any) { return useGet(`/wechat/pay/query/pay/result`, parameter) as Promise } export function wechatPayCancel(parameter: any) { return usePut(`/wechat/pay/user/cancel/pay/${parameter.outTradeNo}`, parameter) as Promise } export function quicklyRegister(params) { return usePost(`/upms/users/register/quickly`, params) as Promise } export function selfRegister(params) { return usePost(`/upms/users/register/self`, params) as Promise } export function getNoticeFlag() { return useGet(`/subject/notice-user/read/flag`) as Promise }