user.ts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. import { usePost, stringify, useGet, usePut } from "@/.cool";
  2. import { config } from "@/config";
  3. export type LoginData = {
  4. access_token: string;
  5. refresh_token: string;
  6. }
  7. export interface GetInfoResult {
  8. permissions: any[]
  9. roles: any[]
  10. sysRoles: any[]
  11. userInfo: any
  12. }
  13. export interface CONFIG_OPEN_CHILDREN_ALL {
  14. code: string
  15. name: string
  16. id: string
  17. content: string
  18. description: string
  19. type: number
  20. openFlag: boolean
  21. }
  22. export interface DICT_CHILDREN_ALL {
  23. code: string
  24. label: string
  25. value: string
  26. }
  27. export interface CONFIG_OPEN_VALUE {
  28. [key: string]: string
  29. }
  30. export interface DICT_DATA {
  31. 'config:open:children-all': CONFIG_OPEN_CHILDREN_ALL[]
  32. 'config:open:value': CONFIG_OPEN_VALUE
  33. 'dict:children': {
  34. [key: string]: CONFIG_OPEN_VALUE
  35. }
  36. 'dict:value:obj': {
  37. [key: string]: CONFIG_OPEN_VALUE
  38. }
  39. 'dict:value': { [key: string]: CONFIG_OPEN_VALUE }
  40. 'dict:code': { [key: string]: CONFIG_OPEN_VALUE }
  41. 'dict:label': { [key: string]: CONFIG_OPEN_VALUE }
  42. 'dict:children-all': { [key: string]: DICT_CHILDREN_ALL[] }
  43. }
  44. export function loginApi(params) {
  45. return usePost(`/oauth/token?${stringify(params)}`) as Promise<LoginData>
  46. }
  47. export function refreshTokenApi(refreshToken: string): Promise<LoginData> {
  48. // 绕过 request() 避免 header spread 导致 Authorization 被 user.token 污染
  49. return new Promise((resolve, reject) => {
  50. uni.request({
  51. url: config.baseUrl + `/oauth/token?grant_type=refresh_token&refresh_token=${refreshToken}`,
  52. method: 'POST',
  53. header: { Authorization: 'Basic ZW5kOmVuZA==' },
  54. success(res: any) {
  55. // 小程序 uni.request 的 res.data 已是对象,无需 JSON.parse
  56. console.log('[refreshTokenApi] statusCode:', res.statusCode)
  57. console.log('[refreshTokenApi] data:', res.data)
  58. const d = res.data as UTSJSONObject
  59. if (d['code'] == 200 || d['code'] == 0) {
  60. resolve(d['data'] as LoginData)
  61. } else {
  62. reject({ message: (d['message'] as string) ?? 'refresh failed' })
  63. }
  64. },
  65. fail(err: any) {
  66. console.log('[refreshTokenApi] fail:', err)
  67. reject({ message: err.errMsg ?? 'refresh network error' })
  68. }
  69. })
  70. })
  71. }
  72. export function sendSmsCode(params) {
  73. return usePost(`/verify/sms/code/send`, params) as Promise<string>
  74. }
  75. export function getUsersInfo() {
  76. return useGet(`/upms/users/info`) as Promise<GetInfoResult>
  77. }
  78. export function dictData() {
  79. return useGet(`/upms/dicts/data`) as Promise<DICT_DATA>
  80. }
  81. export function updateUserInfo(parameter: any) {
  82. return usePut(`/upms/users/change-info`, parameter) as Promise<any>
  83. }
  84. export function changeUserPwd(parameter: any) {
  85. return usePut(`/upms/users/change-pwd`, parameter) as Promise<any>
  86. }
  87. export function bindWechatOpenId(parameter: any) {
  88. return useGet(`/wechat/bind/small/program`, parameter) as Promise<any>
  89. }
  90. export function wechatLogin(parameter: any) {
  91. return useGet(`/wechat/quickly/login/oauth`, parameter) as Promise<any>
  92. }
  93. export function wechatPay(parameter: any) {
  94. return useGet(`/wechat/pay/jsapi`, parameter) as Promise<any>
  95. }
  96. export function wechatPayRequest(parameter: any) {
  97. return useGet(`/wechat/pay/request/payment`, parameter) as Promise<any>
  98. }
  99. export function exchangeCode(params) {
  100. return usePost(`/upms/users/exchange/code`, params) as Promise<any>
  101. }
  102. export function wechatPayQuery(parameter: any) {
  103. return useGet(`/wechat/pay/query/pay/result`, parameter) as Promise<any>
  104. }
  105. export function wechatPayCancel(parameter: any) {
  106. return usePut(`/wechat/pay/user/cancel/pay/${parameter.outTradeNo}`, parameter) as Promise<any>
  107. }
  108. export function quicklyRegister(params) {
  109. return usePost(`/upms/users/register/quickly`, params) as Promise<any>
  110. }
  111. export function selfRegister(params) {
  112. return usePost(`/upms/users/register/self`, params) as Promise<any>
  113. }
  114. export function getNoticeFlag() {
  115. return useGet(`/subject/notice-user/read/flag`) as Promise<any>
  116. }