Model Selection.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. Page({
  2. data: {
  3. // 定义数据类型
  4. Model_name: [
  5. { value: 'reduce_model', label: '降酸模型' },
  6. { value: 'reflux_model', label: '反酸模型' }
  7. ],
  8. selectedModelType: '', // 当前选择的模型类型
  9. selectedModelLabel: '', // 当前选择的模型类型标签
  10. modelList: [], // 从后端获取的所有模型数据
  11. filteredModelList: [], // 根据类型过滤后的模型列表
  12. selectedModelId: null // 当前选择的模型ID
  13. },
  14. onLoad: function () {
  15. // 页面加载时获取模型列表
  16. this.fetchModelList();
  17. },
  18. // 从后端获取模型数据
  19. fetchModelList: function () {
  20. wx.request({
  21. url: 'https://soilgd.com:5000/models', // 后端接口
  22. method: 'GET',
  23. success: (res) => {
  24. if (res.data) {
  25. // 格式化数据并存储
  26. const models = res.data.map(model => ({
  27. ModelType: model.ModelType,
  28. ModelID: model.ModelID,
  29. ModelName: model.ModelName, // 包含模型名称
  30. PerformanceScore: (Number(model.PerformanceScore) || 0).toFixed(2)
  31. }));
  32. this.setData({
  33. modelList: models,
  34. filteredModelList: [] // 初始为空,待选择模型类型后填充
  35. });
  36. } else {
  37. wx.showToast({
  38. title: '模型数据为空',
  39. icon: 'none'
  40. });
  41. }
  42. },
  43. fail: (err) => {
  44. console.error('获取模型列表失败', err);
  45. wx.showToast({
  46. title: '获取模型失败',
  47. icon: 'none'
  48. });
  49. }
  50. });
  51. },
  52. // 切换模型类型时过滤模型列表
  53. onModelTypeChange: function (e) {
  54. const selectedType = this.data.Model_name[e.detail.value];
  55. const filteredModels = this.data.modelList.filter(
  56. model => model.ModelName === selectedType.value // 根据模型名称进行过滤
  57. );
  58. this.setData({
  59. selectedModelType: selectedType.value, // 记录选择的类型
  60. selectedModelLabel: selectedType.label, // 对应显示标签
  61. filteredModelList: filteredModels // 更新展示的模型列表
  62. });
  63. },
  64. // 选择具体模型
  65. onModelSelect: function (e) {
  66. const { modelId } = e.currentTarget.dataset;
  67. this.setData({
  68. selectedModelId: modelId
  69. });
  70. },
  71. // 提交选择
  72. onSubmitModel: function () {
  73. const { selectedModelId, selectedModelType } = this.data;
  74. if (!selectedModelId || !selectedModelType) {
  75. wx.showToast({
  76. title: '请先选择模型类型和具体模型',
  77. icon: 'none'
  78. });
  79. return;
  80. }
  81. wx.request({
  82. url: 'https://soilgd.com:5000/switch-model',
  83. method: 'POST',
  84. header: {
  85. 'Content-Type': 'application/json'
  86. },
  87. data: {
  88. model_id: selectedModelId,
  89. model_type: selectedModelType
  90. },
  91. success: (res) => {
  92. if (res.data && res.data.success) {
  93. wx.showToast({
  94. title: '模型切换成功',
  95. icon: 'success'
  96. });
  97. } else {
  98. wx.showToast({
  99. title: '模型切换失败',
  100. icon: 'none'
  101. });
  102. }
  103. },
  104. fail: (err) => {
  105. console.error('切换模型失败', err);
  106. wx.showToast({
  107. title: '切换模型失败',
  108. icon: 'none'
  109. });
  110. }
  111. });
  112. }
  113. });