import { $wuxActionSheet } from "../../../../dist/index" import { evaluation } from "../../utils/api" // const QQMapWX = require("../../utils/qqmap-wx-jssdk") const config = require("../../../../utils/config") Page({ data: { evaluateValue: "", imageList: [], imageId: 1, // qqmapsdk: "", // addressValue: "", // location: { // latitude: "", // longitude: "" // }, groupBuyId: "", violationsCount: 0, isConReview: false, lock: false, //锁定发布按钮状态,防止连击 dialogVisible: false, //提示框 dialogTitle: '', //提示内容 }, onShow () { }, onLoad (options) { // const qqmapsdk = new QQMapWX({ // key: "CMJBZ-4DECI-JXGGN-5B4WU-QLV2H-B5BEJ" // }) // this.setData({ // qqmapsdk, // partyGroupId: options.partyGroupId, // }) // this.getLocation() this.setData({ groupBuyId: options.id }) }, // 话题内容框 值双向绑定 bindTopicValue (e) { this.setData({ evaluateValue: e.detail.value }) console.log(this.data.evaluateValue) }, // 地址框 值双向绑定 bindAddressValue (e) { this.setData({ addressValue: e.detail.value }) console.log(this.data.addressValue) }, // 选择图片 chooseImage () { const that = this $wuxActionSheet().showSheet({ buttons: [{ text: "拍照" }, { text: "从相册中获取" }, ], buttonClicked (index) { if (index === 0) { wx.chooseImage({ count: 1, sizeType: ["original", "compressed"], sourceType: ["camera"], success (res) { const imageList = [...that.data.imageList] imageList.push({ img: res.tempFilePaths[0], upload: true, id: that.data.imageId++, ossUrl: "" }) that.setData({ imageList }) wx.uploadFile({ url: config.BASEURL() + "group/topic/upload", filePath: res.tempFilePaths[0], name: "file", header: { "Content-Type": "multipart/form-data" }, success (fileres) { const data = JSON.parse(fileres.data) if (data.code === 0 && data.msg === "success") { imageList[imageList.length - 1].ossUrl = data.data imageList[imageList.length - 1].upload = false } else { imageList.pop() wx.showToast({ title: "上传图片失败,请重试", icon: "none", duration: 2000 }) } that.setData({ imageList }) }, fail (err) { console.log(err) imageList.pop() wx.showToast({ title: "上传图片失败,请重试", icon: "none", duration: 2000 }) that.setData({ imageList }) } }) } }) } else if (index === 1) { wx.chooseImage({ count: 3 - that.data.imageList.length, sizeType: ["original", "compressed"], sourceType: ["album"], success (res) { let imageList = [] res.tempFilePaths.forEach(item => { imageList.push({ img: item, upload: true, id: that.data.imageId++, ossUrl: "" }) }) that.setData({ imageList: [...that.data.imageList, ...imageList] }) imageList.forEach((item, index) => { (function (index) { wx.uploadFile({ url: `${config.BASEURL()}group/topic/upload`, filePath: imageList[index].img, name: "file", header: { "Content-Type": "multipart/form-data" }, success (fileRes) { const data = JSON.parse(fileRes.data) if (data.code === 0 && data.msg === "success") { imageList[index].ossUrl = data.data imageList[index].upload = false } else { imageList.splice(index, 1) wx.showToast({ title: "上传图片失败,请重试", icon: "none", duration: 2000 }) } that.data.imageList = that.data.imageList.slice(0, that.data.imageList.length - res.tempFilePaths.length) that.setData({ imageList: [...that.data.imageList, ...imageList] }) }, fail (err) { console.log(err) imageList.splice(index, 1) wx.showToast({ title: "上传图片失败,请重试", icon: "none", duration: 2000 }) that.data.imageList = that.data.imageList.slice(0, that.data.imageList.length - res.tempFilePaths.length) that.setData({ imageList: [...that.data.imageList, ...imageList] }) } }) })(index) }) } }) } return true }, cancelText: "取消", cancel () {}, destructiveButtonClicked () {}, }) }, // 获取经纬度 getLocation () { wx.getLocation({ type: "gcj02", success: (res) => { console.log("经纬度", res) this.reverseGeocoder(res) this.setData({ location: { latitude: res.latitude, longitude: res.longitude } }) } }) }, // 逆地址解析 reverseGeocoder ({latitude, longitude}) { this.data.qqmapsdk.reverseGeocoder({ location: { latitude, longitude }, success: (res) => { console.log("逆地址解析", res) if (res.message === "query ok") { this.setData({ addressValue: res.result.address }) } } }) }, // 提交评价 addEvaluate () { this.data.evaluateValue = this.data.evaluateValue.trim() if (this.data.evaluateValue == "") { wx.showToast({ title: "请输入评价内容", icon: "none", duration: 2000 }) return false } else if (this.data.evaluateValue.length > 50) { wx.showToast({ title: "超出50字数限制", icon: "none", duration: 2000 }) return false // } else if (this.data.addressValue === "") { // wx.showToast({ // title: "请输入-地址", // icon: "none", // duration: 2000 // }) // return false } const imagesList = [] if (this.data.imageList.length > 0) { const isUploadingStatus = this.data.imageList.some(item => item.upload) if (isUploadingStatus) { wx.showToast({ title: "请等待图片上传完成", icon: "none", duration: 2000 }) return false } this.data.imageList.forEach(item => { imagesList.push(item.ossUrl) }) } const para = { groupBuyId: this.data.groupBuyId, evaluationContent: this.data.evaluateValue, evaluationImg: imagesList, // isConReview: this.data.isConReview } this.setData({ lock: true }) wx.showLoading({ title: "加载中", }) let that = this evaluation(para).then(res => { wx.hideLoading() this.setData({ lock: false }) // console.log(res) if (res.code == 0) { this.setData({ dialogVisible: true, dialogTitle: '评价成功', violationsCount: 0, isConReview: false }) } else if (res.code == 533) { this.data.violationsCount++ console.log(this.data.violationsCount) if (this.data.violationsCount == 1){ wx.showToast({ title: res.msg, icon: "none", duration: 2000 }) } else if (this.data.violationsCount == 2) { wx.showModal({ title: '提示', content: '您提交的内容再次被判定为违规,您确定是否要提交?', success (res) { if (res.confirm) { console.log('用户点击确定') that.data.isConReview = true that.addEvaluate() } else if (res.cancel) { console.log('用户点击取消') that.setData({ violationsCount: 0, isConReview: false }) } } }) } } }).catch(err => { console.log('err',err) wx.hideLoading() this.setData({ lock: false }) }) }, // 删除图片 deleteImage (e) { const index = this.data.imageList.findIndex((item,index) => index === e.currentTarget.dataset.index) this.data.imageList.splice(index, 1) const imageList = this.data.imageList this.setData({ imageList }) }, // 关闭弹框 closeDialog () { this.setData({ dialogVisible: false }) wx.navigateBack() }, })