const app = getApp() Page({ data: { content: '', imageList: [] as any[], submitting: false, // 弹窗 popupShow: false, popupType: 'popup2', popupParams: {} as any, }, onLoad() { app.waitLogin({ type: 1 }) }, onContentInput(e: any) { this.setData({ content: e.detail.value }) }, onUploadSuccess(e: any) { const file = e.detail.file const imageList = this.data.imageList.concat([file]) this.setData({ imageList }) }, onUploadError(e: any) { wx.showToast({ title: '图片上传失败', icon: 'none' }) }, deleteImage(e: any) { const uid = e.currentTarget.dataset.uid const imageList = this.data.imageList.filter((item: any) => item.uid !== uid) this.setData({ imageList }) }, previewImage(e: any) { const url = e.currentTarget.dataset.url const urls = this.data.imageList.map((item: any) => item.url) wx.previewImage({ current: url, urls }) }, handleSubmit() { if (this.data.submitting) return const content = this.data.content.trim() if (!content) { wx.showToast({ title: '请输入反馈内容', icon: 'none' }) return } if (content.length > 500) { wx.showToast({ title: '反馈内容不能超过500字', icon: 'none' }) return } this.setData({ submitting: true }) const images = this.data.imageList.map((item: any) => item.url) const imagesStr = images.length > 0 ? JSON.stringify(images) : '' wx.ajax({ url: '/feedback/submit', method: 'POST', data: { content, images: imagesStr, }, loading: true, loadingText: '提交中...', }) .then(() => { this.setData({ popupShow: true }) }) .catch(() => { wx.showToast({ title: '提交失败,请重试', icon: 'none' }) }) .finally(() => { this.setData({ submitting: false }) }) }, handlePopupOk() { this.setData({ popupShow: false }) wx.navigateBack() }, handlePopupCancel() { this.setData({ popupShow: false }) wx.navigateBack() }, }) export {}