Page({ data: { // 定义数据类型 Model_name: [ { value: 'reduce_model', label: '降酸模型' }, { value: 'reflux_model', label: '反酸模型' } ], selectedModelType: '', // 当前选择的模型类型 selectedModelLabel: '', // 当前选择的模型类型标签 modelList: [], // 从后端获取的所有模型数据 filteredModelList: [], // 根据类型过滤后的模型列表 selectedModelId: null // 当前选择的模型ID }, onLoad: function () { // 页面加载时获取模型列表 this.fetchModelList(); }, // 从后端获取模型数据 fetchModelList: function () { wx.request({ url: 'https://soilgd.com:5000/models', // 后端接口 method: 'GET', success: (res) => { if (res.data) { // 格式化数据并存储 const models = res.data.map(model => ({ ModelType: model.ModelType, ModelID: model.ModelID, ModelName: model.ModelName, // 包含模型名称 PerformanceScore: (Number(model.PerformanceScore) || 0).toFixed(2), MAE: (Number(model.MAE) || 0).toFixed(2), RMSE: (Number(model.RMSE) || 0).toFixed(2) })); this.setData({ modelList: models, filteredModelList: [] // 初始为空,待选择模型类型后填充 }); } else { wx.showToast({ title: '模型数据为空', icon: 'none' }); } }, fail: (err) => { console.error('获取模型列表失败', err); wx.showToast({ title: '获取模型失败', icon: 'none' }); } }); }, // 切换模型类型时过滤模型列表 onModelTypeChange: function (e) { const selectedType = this.data.Model_name[e.detail.value]; const filteredModels = this.data.modelList.filter( model => model.ModelName === selectedType.value // 根据模型名称进行过滤 ); this.setData({ selectedModelType: selectedType.value, // 记录选择的类型 selectedModelLabel: selectedType.label, // 对应显示标签 filteredModelList: filteredModels // 更新展示的模型列表 }); }, // 选择具体模型 onModelSelect: function (e) { const { modelId } = e.currentTarget.dataset; this.setData({ selectedModelId: modelId }); }, // 提交选择 onSubmitModel: function () { const { selectedModelId, selectedModelType } = this.data; console.log(selectedModelId, selectedModelType) if (!selectedModelId || !selectedModelType) { wx.showToast({ title: '请先选择模型类型和具体模型', icon: 'none' }); return; } wx.request({ url: 'https://soilgd.com:5000/switch-model', method: 'POST', header: { 'Content-Type': 'application/json' }, data: { model_id: selectedModelId, model_type: selectedModelType }, success: (res) => { if (res.data && res.data.success) { wx.showToast({ title: '模型切换成功', icon: 'success' }); } else { wx.showToast({ title: '模型切换失败', icon: 'none' }); } }, fail: (err) => { console.error('切换模型失败', err); wx.showToast({ title: '切换模型失败', icon: 'none' }); } }); } });