user.js 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  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. tenant_id: 1,
  29. _csrf: csrfToken // 添加 CSRF token
  30. };
  31. return http.post('/wechat/wechatLogin', requestData, {
  32. header: {
  33. 'X-CSRF-Token': csrfToken
  34. }
  35. });
  36. }
  37. /**
  38. * 获取用户详细信息
  39. * @param {String} userId - 用户ID,可选
  40. * @returns {Promise} - 返回用户详细信息
  41. */
  42. export const getUserInfo = (userId,openid) => {
  43. // 如果提供了userId,则获取指定用户信息,否则获取当前登录用户信息
  44. const url = userId ? `/api/wechat/get_user_info?id=${userId}&openid=${openid}` : '/wechat/getUserDetail';
  45. return http.get(url);
  46. };
  47. /**
  48. * 获取用户手机号
  49. * @param {Object} params - 包含code、encryptedData和iv的对象
  50. * @returns {Promise} - 返回用户手机号信息
  51. */
  52. export const getUserPhoneNumber = (params) => {
  53. return http.post('/wechat/getUserPhoneNumber', params);
  54. };
  55. /**
  56. * 更新用户信息
  57. * @param {Object} userData - 用户数据
  58. * @returns {Promise} - 返回更新结果
  59. */
  60. export const updateUserInfo = (userData) => {
  61. return http.put('/api/user/update', userData);
  62. };
  63. /**
  64. * 上传用户头像
  65. * @param {String} filePath - 文件路径
  66. * @returns {Promise} - 返回上传结果
  67. */
  68. export const uploadAvatar = (filePath) => {
  69. return http.upload('/api/upload/avatar', filePath, 'avatar');
  70. };
  71. /**
  72. * 退出登录
  73. * @returns {Promise} - 返回退出结果
  74. */
  75. export const logout = () => {
  76. return http.post('/api/user/logout');
  77. };
  78. /**
  79. * 获取职位列表
  80. * @param {Object} params - 查询参数
  81. * @param {Number} params.page - 页码
  82. * @param {Number} params.pageSize - 每页数量
  83. * @param {String} params.searchTerms - 搜索关键词
  84. * @param {String} params.status - 职位状态
  85. * @param {Number} params.tenant_id - 租户ID
  86. * @returns {Promise} - 返回职位列表
  87. */
  88. export const getJobList = (params = {}) => {
  89. // 设置默认参数
  90. const defaultParams = {
  91. page: 1,
  92. pageSize: 10,
  93. searchTerms: '',
  94. status: '',
  95. tenant_id: 1
  96. };
  97. // 合并默认参数和传入参数
  98. const queryParams = { ...defaultParams, ...params };
  99. return http.get('/api/system/job/list', defaultParams);
  100. };
  101. /* 填写用户信息 */
  102. export const fillUserInfo = (params) => {
  103. return http.post('/api/wechat/save_user_info', params);
  104. };
  105. /* 获取面试列表 */
  106. export const getInterviewList = (params) => {
  107. return http.get('/job/questions', params);
  108. };
  109. /* 获取面试详情 */
  110. export const getInterviewDetail = (params) => {
  111. return http.get('/interview_question/detail', params);
  112. };
  113. /* 提交答案 */
  114. export const submitAnswer = (params) => {
  115. return http.post('/api/job/submit_answer', params);
  116. };
  117. /* 申请职位 */
  118. export const applyJob = (params) => {
  119. return http.post('/api/job/apply', params);
  120. };
  121. /* 获取职位申请详情 */
  122. export const getApplicationDetail = (params) => {
  123. return http.get('/api/job/application_detail', params);
  124. };
  125. /* 文件上传 */
  126. export const uploadPhoto = (params) => {
  127. return http.post('/api/upload/', params);
  128. };
  129. /* 用户协议 */
  130. export const getUserAgreement = () => {
  131. return http.get('/api/public/agreements/terms_of_service/');
  132. };
  133. // 获取隐私政策
  134. /* export function getPrivacyPolicy() {
  135. return http.get('/api/privacy-policy');
  136. } */
  137. /* 获取问题数据 */
  138. export const getQuestions = (params) => {
  139. return http.get('/api/wechat/choice_questions/', params);
  140. };