user.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. /**
  2. * 用户相关接口
  3. */
  4. import http from '../utils/request.js';
  5. /**
  6. * 微信登录
  7. * @param {Object} loginParams - 登录参数
  8. * @returns {Promise} - 返回登录结果
  9. */
  10. export function wxLogin(loginParams) {
  11. // 获取 CSRF token
  12. const csrfToken = uni.getStorageSync('csrfToken');
  13. // 确保参数格式正确,完全匹配后端期望的格式
  14. const requestData = {
  15. code: loginParams.code,
  16. userInfo: {
  17. nickname: loginParams.userInfo?.nickName || '微信用户',
  18. avatarUrl: loginParams.userInfo?.avatarUrl || '',
  19. gender: loginParams.userInfo?.gender || 0,
  20. province: loginParams.userInfo?.province || '',
  21. city: loginParams.userInfo?.city || '',
  22. country: loginParams.userInfo?.country || ''
  23. },
  24. signature: loginParams.signature || '',
  25. rawData: loginParams.rawData || '',
  26. encryptedData: loginParams.encryptedData || '',
  27. iv: loginParams.iv || '',
  28. _csrf: csrfToken // 添加 CSRF token
  29. };
  30. return http.post('/wechat/wechatLogin', requestData, {
  31. header: {
  32. 'X-CSRF-Token': csrfToken
  33. }
  34. });
  35. }
  36. /**
  37. * 获取用户详细信息
  38. * @param {String} userId - 用户ID,可选
  39. * @returns {Promise} - 返回用户详细信息
  40. */
  41. export const getUserInfo = (userId) => {
  42. // 如果提供了userId,则获取指定用户信息,否则获取当前登录用户信息
  43. const url = userId ? `/wechat/getUserDetail?id=${userId}` : '/wechat/getUserDetail';
  44. return http.get(url);
  45. };
  46. /**
  47. * 获取用户手机号
  48. * @param {Object} params - 包含code、encryptedData和iv的对象
  49. * @returns {Promise} - 返回用户手机号信息
  50. */
  51. export const getUserPhoneNumber = (params) => {
  52. return http.post('/wechat/getUserPhoneNumber', params);
  53. };
  54. /**
  55. * 更新用户信息
  56. * @param {Object} userData - 用户数据
  57. * @returns {Promise} - 返回更新结果
  58. */
  59. export const updateUserInfo = (userData) => {
  60. return http.put('/api/user/update', userData);
  61. };
  62. /**
  63. * 上传用户头像
  64. * @param {String} filePath - 文件路径
  65. * @returns {Promise} - 返回上传结果
  66. */
  67. export const uploadAvatar = (filePath) => {
  68. return http.upload('/api/upload/avatar', filePath, 'avatar');
  69. };
  70. /**
  71. * 退出登录
  72. * @returns {Promise} - 返回退出结果
  73. */
  74. export const logout = () => {
  75. return http.post('/api/user/logout');
  76. };
  77. /**
  78. * 获取职位列表
  79. * @param {Object} params - 查询参数
  80. * @param {Number} params.page - 页码
  81. * @param {Number} params.pageSize - 每页数量
  82. * @param {String} params.searchTerms - 搜索关键词
  83. * @param {String} params.status - 职位状态
  84. * @param {Number} params.tenant_id - 租户ID
  85. * @returns {Promise} - 返回职位列表
  86. */
  87. export const getJobList = (params = {}) => {
  88. // 设置默认参数
  89. const defaultParams = {
  90. page: 1,
  91. pageSize: 10,
  92. searchTerms: '',
  93. status: '',
  94. tenant_id: 1
  95. };
  96. // 合并默认参数和传入参数
  97. const queryParams = { ...defaultParams, ...params };
  98. return http.get('/api/job/list', defaultParams);
  99. };
  100. /* 填写用户信息 */
  101. export const fillUserInfo = (params) => {
  102. return http.post('/api/system/wechat/save_user_info', params);
  103. };
  104. /* 获取面试列表 */
  105. export const getInterviewList = (params) => {
  106. return http.get('/system/job/questions', params);
  107. };
  108. /* 获取面试详情 */
  109. export const getInterviewDetail = (params) => {
  110. return http.get('/system/interview_question/detail', params);
  111. };
  112. /* 提交答案 */
  113. export const submitAnswer = (params) => {
  114. return http.post('/api/job/submit_answer', params);
  115. };
  116. /* 申请职位 */
  117. export const applyJob = (params) => {
  118. return http.post('/api/job/apply', params);
  119. };
  120. /* 文件上传 */
  121. export const uploadPhoto = (params) => {
  122. return http.post('/api/system/upload/', params);
  123. };