123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- Page({
- data: {
- result: '', // 存储计算结果
- init_pH: '',
- target_pH: '',
- OM: '', // 有机质含量
- CL: '', // 土壤粘粒重量
- H: '', // 氢离子含量
- Al: '', // 铝离子含量
- showModal: false, // 控制弹窗显示与隐藏
- },
- // 更新输入数据并验证
- validateInput: function(value) {
- // 正则表达式:只允许数字和小数点
- const regExp = /^[0-9]*\.?[0-9]*$/;
- // 如果输入符合格式,则返回,否则去掉最后一个字符
- return regExp.test(value) ? value : value.slice(0, -1);
- },
- // 更新土壤初始pH
- onInitPhChange: function (e) {
- this.setData({
- init_pH: this.validateInput(e.detail.value),
- });
- },
- // 更新土壤目标pH
- onTargetPhChange: function (e) {
- this.setData({
- target_pH: this.validateInput(e.detail.value),
- });
- },
- // 更新有机质含量
- onOMChange: function (e) {
- this.setData({
- OM: this.validateInput(e.detail.value),
- });
- },
- // 更新土壤粘粒重量
- onCLChange: function (e) {
- this.setData({
- CL: this.validateInput(e.detail.value),
- });
- },
- // 更新氢离子含量
- onHChange: function (e) {
- this.setData({
- H: this.validateInput(e.detail.value),
- });
- },
- // 更新铝离子含量
- onAlChange: function (e) {
- this.setData({
- Al: this.validateInput(e.detail.value),
- });
- },
- // 点击按钮后进行计算并提示结果
- calculate: function () {
- console.log('开始计算...');
- const data = {
- model_id: 6,
- parameters: {
- init_pH: this.data.init_pH,
- target_pH: this.data.target_pH,
- OM: this.data.OM,
- CL: this.data.CL,
- H: this.data.H,
- Al: this.data.Al,
- },
- };
- wx.request({
- url: 'https://soilgd.com:5000/predict',
- method: 'POST',
- data: JSON.stringify(data),
- header: {
- 'content-type': 'application/json',
- },
- success: (res) => {
- console.log('预测结果:', res.data.result);
- // 确保结果显示两位小数
- let result = res.data.result;
- if (result !== null && !isNaN(result)) {
- result = parseFloat(result).toFixed(2); // 将结果格式化为两位小数
- }
- // 更新计算结果
- this.setData({
- result: result,
- showModal: true, // 显示弹窗
- });
- },
- fail: (error) => {
- console.error('请求失败:', error);
- wx.showToast({
- title: '计算失败,请重试',
- icon: 'none',
- });
- },
- });
- },
- // 关闭弹窗
- closeModal: function () {
- this.setData({
- showModal: false, // 隐藏弹窗
- });
- },
- });
|