import { $wuxActionSheet } from "../../../../dist/index" import { addTopic } from "../../utils/api" const QQMapWX = require("../../utils/qqmap-wx-jssdk") const config = require("../../../../utils/config") Page({ data: { topicValue: "", imageList: [], qqmapsdk: "", addressValue: "", imageId: 1, location: { latitude: "", longitude: "" }, partyGroupId: "", topicType:"",//0:事好儿鼓个掌 1:话对捧个场 addTopicPrevious: 0, violationsCount: 0, isConReview: false }, onShow () { }, onLoad (options) { const qqmapsdk = new QQMapWX({ key: "CMJBZ-4DECI-JXGGN-5B4WU-QLV2H-B5BEJ" }) this.setData({ qqmapsdk, partyGroupId: options.partyGroupId, topicType: options.topicType, }) if(options.topicType == 0){ wx.setNavigationBarTitle({ title: "事好鼓个掌" }) }else{ wx.setNavigationBarTitle({ title: "话对捧个场" }) } this.getLocation() }, // 话题内容框 值双向绑定 bindTopicValue (e) { this.setData({ topicValue: e.detail.value }) console.log(this.data.topicValue) }, // 地址框 值双向绑定 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 }) } } }) }, // throttleAddTopic () { // let now = new Date() // if (now - this.data.addTopicPrevious > 2000) { // this.addTopic() // this.data.addTopicPrevious = now // } // }, // 添加话题事件 addTopic () { if (this.data.topicValue === "") { wx.showToast({ title: "请输入-话题内容", 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 = { topicType:this.data.topicType,//话题类型:0:事好儿鼓个掌 1:话对捧个场 topicContent: this.data.topicValue,//话题内容 topicAddress: this.data.addressValue,//话题地址 topicLatitude: this.data.location.latitude,//话题位置纬度 topicLongitude: this.data.location.longitude,//话题位置经度 partyGroupId:this.data.partyGroupId,//党群ID images: imagesList, isConReview: this.data.isConReview } wx.showLoading({ title: "加载中", }) let that = this addTopic(para).then(res => { wx.hideLoading() console.log(res) if (res.code == 0) { wx.showToast({ title: "发布成功", icon: "none", duration: 2000 }) this.setData({ violationsCount: 0, isConReview: false }) // var prePages = pages[pages.length - 2] setTimeout(() => { // prePages.pullRefreshGetTopicList() wx.navigateBack() }, 1000) } 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.addTopic() } else if (res.cancel) { console.log('用户点击取消') that.setData({ violationsCount: 0, isConReview: false }) } } }) } } }).catch(err => { console.log('err',err) }) }, // 删除图片 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 }) } })