import request from '../../../utils/request'; Page({ data: { plantId: '', recordType: 'growth', content: '', image: '' }, onLoad(options) { if (options.plantId) { this.setData({ plantId: options.plantId }); } }, setRecordType(e) { const type = e.currentTarget.dataset.type; this.setData({ recordType: type }); }, onContentInput(e) { this.setData({ content: e.detail.value }); }, handleChooseImage() { wx.chooseMedia({ count: 1, mediaType: ['image'], sourceType: ['album', 'camera'], success: (res) => { this.setData({ image: res.tempFiles[0].tempFilePath }); } }); }, handleRemoveImage() { this.setData({ image: '' }); }, async handleAddRecord() { if (!this.data.content.trim()) { wx.showToast({ title: '请填写备注', icon: 'none' }); return; } if (!this.data.plantId) { wx.showToast({ title: '缺少植物ID', icon: 'none' }); return; } wx.showLoading({ title: '保存中...', mask: true }); try { let ossIds = []; // 1. Upload Image if exists if (this.data.image) { const uploadRes = await request.upload(this.data.image); // Correctly extract ID from nested 'file' object based on API response if (uploadRes && uploadRes.file && uploadRes.file.id) { ossIds.push(uploadRes.file.id); } else if (uploadRes && uploadRes.id) { // Fallback just in case ossIds.push(uploadRes.id); } else { console.warn('Upload response structure mismatch:', uploadRes); } } // 2. Prepare payload const mapTitle = { growth: '生长记录', flower: '开花记录', repot: '换盆记录', prune: '修剪记录', fertilize: '施肥记录', soil: '换土记录', pest: '病虫害记录', medicine: '用药记录', move: '移位记录', other: '日常记录' }; const title = mapTitle[this.data.recordType] || '日常记录'; const payload = { plantId: this.data.plantId, ossIds: ossIds, name: title, tag: this.data.recordType, desc: this.data.content.substring(0, 100), content: this.data.content }; // 3. Call Add API await request.post('/plant/growth/add', payload); wx.hideLoading(); wx.showToast({ title: '保存成功', icon: 'success' }); // 4. Navigate back, detail page will refresh in onShow setTimeout(() => { wx.navigateBack(); }, 1000); } catch (err) { wx.hideLoading(); console.error('Add record failed', err); } } });