"use strict"; const common_vendor = require("../common/vendor.js"); const BASE_URL = "http://localhost:8080"; const getToken = () => { return common_vendor.index.getStorageSync("user_token") || null; }; const request = (options) => { return new Promise((resolve, reject) => { const token = getToken(); const header = options.header || {}; if (token) { header["Authorization"] = `Bearer ${token}`; } common_vendor.index.request({ url: `${BASE_URL}${options.url}`, method: options.method || "GET", data: options.data || {}, header, success: (res) => { if (res.statusCode === 200) { resolve(res.data); } else if (res.statusCode === 401) { common_vendor.index.showToast({ title: "登录已过期,请重新登录", icon: "none", duration: 2e3 }); common_vendor.index.removeStorageSync("user_token"); common_vendor.index.removeStorageSync("user_info"); setTimeout(() => { common_vendor.index.showModal({ title: "登录提示", content: "登录已过期,是否重新登录?", confirmText: "立即登录", cancelText: "暂不登录", success: (modalRes) => { if (modalRes.confirm) { "./auth.js".then((auth) => { auth.wxAuthLogin(); }); } } }); }, 2e3); reject(new Error("未授权")); } else { reject(new Error(res.data.message || "服务暂不可用")); } }, fail: (err) => { reject(new Error("网络异常")); } }); }); }; const wxLogin = (params) => { return request({ url: "/v1/auth/wxLogin", method: "POST", header: { "content-type": "application/json" }, data: params }); }; const updateUserProfile = (data) => { return request({ url: "/v1/user/profile", method: "PUT", header: { "content-type": "application/json" }, data }); }; const getSuggestions = (keyword) => { return request({ url: "/v1/stock/suggestion", method: "GET", data: { keyword } }); }; const searchStocks = (keyword) => { return request({ url: "/v1/stock/search", method: "POST", header: { "content-type": "application/json" }, data: { keyword } }); }; const getUserPortfolio = () => { return request({ url: "/v1/user/portfolio", method: "GET" }); }; const getLeaderboard = () => { return request({ url: "/v1/rank/leaderboard", method: "GET" }); }; exports.getLeaderboard = getLeaderboard; exports.getSuggestions = getSuggestions; exports.getUserPortfolio = getUserPortfolio; exports.searchStocks = searchStocks; exports.updateUserProfile = updateUserProfile; exports.wxLogin = wxLogin;