index.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. Page({
  2. data: {
  3. keyword: '',
  4. loading: false,
  5. hasSearched: false,
  6. errorMsg: '',
  7. result: null,
  8. },
  9. onKeywordChange(e) {
  10. this.setData({
  11. keyword: e.detail.value || '',
  12. });
  13. },
  14. onSearch() {
  15. const keyword = (this.data.keyword || '').trim();
  16. if (!keyword) {
  17. wx.showToast({
  18. title: '请输入股票代码或名称',
  19. icon: 'none',
  20. });
  21. return;
  22. }
  23. this.setData({
  24. loading: true,
  25. hasSearched: true,
  26. errorMsg: '',
  27. result: null,
  28. });
  29. // TODO: 将 baseUrl 修改为你自己的后端域名(并在小程序后台配置 request 合法域名)
  30. const baseUrl = 'https://api.your-domain.com';
  31. wx.request({
  32. url: `${baseUrl}/v1/score/query`,
  33. method: 'POST',
  34. header: {
  35. 'content-type': 'application/json',
  36. },
  37. data: {
  38. keyword,
  39. },
  40. success: (res) => {
  41. if (res.statusCode !== 200 || !res.data) {
  42. this.setData({
  43. errorMsg: '服务暂不可用,请稍后重试',
  44. });
  45. return;
  46. }
  47. const { code, message, data } = res.data;
  48. if (code !== 0 || !data) {
  49. this.setData({
  50. errorMsg: message || '未查询到相关股票,请检查代码或名称',
  51. });
  52. return;
  53. }
  54. this.setData({
  55. result: {
  56. stockCode: data.stockCode,
  57. stockName: data.stockName,
  58. market: data.market || '',
  59. score: data.score,
  60. scoreLevel: data.scoreLevel || '',
  61. scoreDate: data.scoreDate || '',
  62. price: data.price || '',
  63. changePercent: data.changePercent || 0,
  64. },
  65. });
  66. },
  67. fail: () => {
  68. this.setData({
  69. errorMsg: '网络异常,请检查网络后重试',
  70. });
  71. },
  72. complete: () => {
  73. this.setData({
  74. loading: false,
  75. });
  76. },
  77. });
  78. },
  79. });