const util = require('../../../utils/util.js'); const app = getApp(); Page({ data: { datas: {}, imgUrl: [], uploadImg: [], star: 0, cusStar: 0,// 客服 leaderStar: 0,// 领队 pgStar: 0, // 摄影师 aid: '', title: '', orderid: '', type: '', act: '', content: '', //评价 wordsLength: 0,//评价字数 cid: '', one: [{ txt: '带队技能欠佳', cet: false }, { txt: '与宣传有差距', cet: false }, { txt: '活动不合理', cet: false }, { txt: '孩子体验一般', cet: false }, { txt: '吃住有待升级', cet: false }, { txt: '性价比一般', cet: false }], two: [{ txt: '正能量的小黄人', cet: false }, { txt: '领队专业细心', cet: false }, { txt: '教育意义明显', cet: false }, { txt: '活动安排有序', cet: false }, { txt: '安全措施到位', cet: false }, { txt: '性价比超值', cet: false }], chooseIndex: [], option: [], recommendArr: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], //推荐值数组 recomLevel: 0, //推荐值 }, onLoad(options) { let orderid = options.orderid, type = options.otype, act = options.act || ''; this.setData({ orderid, type, act }); this.getData(orderid, type, act); }, getData(orderid, type, act) { let that = this; util.ajax({ func: "v2/order/detail", data: { "orderid": orderid, "type": (type != undefined ? type : "") } }, function (res) { if (res.code == 0) { let datas = res.data, star = 5, uploadImg = [], content = '', wordsLength = 0, option = [], options = that.data.two, cid = '', recomLevel = 0; if (!util.isObjEmpty(datas.comment)) { cid = datas.comment.cid; that.updateCommentData(datas.comment) } if (that.data.act != 'edit') { that.getlocalData(); } that.setData({ aid: datas.aid, cid, datas, title: datas.title, }) } else util.showTips(res.reason); }) }, chooseImg() { let that = this, uploadImg = that.data.uploadImg, count = 8 - uploadImg.length, img = []; wx.chooseMedia({ count: count, mediaType: ['image'], sizeType: ['compressed', 'compressed'], //可以指定是原图还是压缩图 sourceType: ['album', 'camera'], //从相册选择 success: (res) => { let imgUrl = res.tempFiles if ((imgUrl.length + that.data.uploadImg.length) > 8) { util.showTips("最多只能上传8张照片"); return false; } res.tempFiles.forEach(item => { let avatarUrl = item.tempFilePath wx.showLoading({ title: '上传中…' }); util.uploadFile("oss/policy", avatarUrl, { type: 'baoBeiEvaluate' }, true).then((res) => { if (res.code == 0) { uploadImg.push(res.url); img.push(res.url); if (img.length == imgUrl.length) { that.setData({ uploadImg: that.data.uploadImg }); wx.hideLoading(); } } }); }) } }) }, delImg(e) { let index = e.currentTarget.dataset.index, uploadImg = this.data.uploadImg; uploadImg.splice(index, 1); this.setData({ uploadImg }) }, submit() { let that = this, data = {}, uploadImg = this.data.uploadImg, act = this.data.act, userInfo = app.globalData.userInfo, star = this.data.star, content = this.data.content.replace(/\n/g, '
'), option = this.data.two; if (star == 1 || star == 2) { option = this.data.one; } for (let i in option) { if (option[i].cet) { content = content + '#' + option[i].txt + '#' } } let pages = getCurrentPages(), prevPage = pages[pages.length - 2]; if (prevPage.route == "pages/order/detail/index") { prevPage.data.query.otype = 0; } data['aid'] = this.data.aid; data['orderid'] = this.data.orderid; data['arating'] = star; //整体活动评分 data['crating'] = this.data.cusStar; //客服评分 data['ratingLeader'] = this.data.leaderStar; //领队评分 data['ratingPhoto'] = this.data.pgStar; //摄影师评分 data['outTradeNo'] = this.data.datas.outTradeNo; // 商户订单号 data['content'] = content; data['cid'] = this.data.cid; data['image'] = uploadImg ? uploadImg.join(',') : ''; data['rid'] = userInfo ? userInfo['rid'] : ""; data['recomLevel'] = this.data.recomLevel; if (data.arating == 0 && this.data.datas.atype == 0) { util.showTips("尚未填写活动评分,请填写后再进行提交~"); return false; } if (data.crating == 0 && this.data.datas.atype == 0) { util.showTips("请对于客服这次的服务打分。"); return false; } if (data.ratingLeader == 0 && this.data.datas.atype == 0) { util.showTips("请对于领队这次的服务打分。"); return false; } if (data.ratingPhoto == 0 && this.data.datas.atype == 0) { util.showTips("请对于摄影师这次的服务打分。"); return false; } if (data.recomLevel <= 0 && this.data.datas.atype == 0) { util.showTips("请点击数字对本次活动体验进行打分。"); return false; } if (util.isEmpty(data.content)) { util.showTips(this.data.datas.atype == 0 ? "请填写本次活动体验后的评价。" : '请填写对此商品的评价。'); return false; } util.ajax({ func: (act == 'edit' ? "v2/comments/order/update" : "v2/comments/order/addcomment"), data: data, method: "POST", load: true, title: '提交中' }, function (res) { if (res.code == 0) { if (act == 'edit' || that.data.datas.atype == 1) { wx.navigateBack(); } else { wx.redirectTo({ url: '/pages/order/scratch/scratch?orderid=' + that.data.orderid + '&coin=' + res.data || 0 }) } } else { util.showTips(res.reason); } }); }, // 获取的评论数据整理公共方法 updateCommentData(commentData) { let star = 5, cusStar = 5, leaderStar = 5, pgStar = 5, uploadImg = [], content = '', wordsLength = 0, option = [], options = this.data.two, recomLevel = 0; star = commentData.arating; cusStar = commentData.crating; leaderStar = commentData.leaderStar; pgStar = commentData.pgStar; recomLevel = commentData.recomLevel; uploadImg = commentData.images || []; content = commentData.content.replace(/#([^#]+)#/g, "").replace(//g, '\n'); option = commentData.content.match(/#([^#]+)#/g); star >= 3 || star == 0 ? options = this.data.two : options = this.data.one; for (let i in option) { option[i] = option[i].replace(/#/g, ""); for (let k in options) { if (option[i] == options[k].txt) { options[k].cet = true } } } if (star >= 3 || star == 0) { this.setData({ two: options }) } else { this.setData({ one: options }) } this.setData({ star, cusStar, leaderStar, pgStar, uploadImg, content, wordsLength: content.length, recomLevel }) }, // 获取本地草稿数据 getlocalData() { if (!util.isObjEmpty(wx.getStorageSync("orderComment"))) { let localData = wx.getStorageSync("orderComment"); if (localData.orderid == this.data.orderid) { this.updateCommentData(localData) } } }, // 保存草稿至本地 saveDataToLocal() { let that = this, commentData = {}, option = this.data.two; if (!util.isEmpty(this.data.content) || this.data.uploadImg.length > 0) { commentData.orderid = this.data.orderid; commentData.saveDate = util.getNowFormatDate('yyyy-MM-dd hh:mm:ss'); commentData.arating = this.data.star; commentData.crating = this.data.cusStar; commentData.leaderStar = this.data.leaderStar; commentData.pgStar = this.data.pgStar; commentData.recomLevel = this.data.recomLevel; commentData.images = this.data.uploadImg || ''; let content = this.data.content.replace(/\n/g, '
'); if (this.data.star == 1 || this.data.star == 2) { option = this.data.one; } for (let i in option) { if (option[i].cet) { content = content + '#' + option[i].txt + '#' } } commentData.content = content; wx.setStorageSync("orderComment", commentData); } }, chooseOpt: function (e) { var star = this.data.star, chooseIndex = this.data.chooseIndex, index = e.currentTarget.dataset.index, option = this.data.two; if (star == 1 || star == 2) { option = this.data.one; } if (option[index].cet) { option[index].cet = false; } else { option[index].cet = true; } if (star == 1 || star == 2) { this.setData({ one: option }); } else { this.setData({ two: option }); } }, bindblur: function (e) { this.setData({ content: e.detail.value, wordsLength: e.detail.value.length }); }, bindstar: function (e) { if (e.currentTarget.dataset.type == 'star') { if (this.data.star == 0 || !this.data.star) { this.setData({ cusStar: e.target.dataset.index, leaderStar: e.target.dataset.index, pgStar: e.target.dataset.index, }); } this.setData({ star: e.target.dataset.index }); } else if (e.currentTarget.dataset.type == 'leaderStar') { this.setData({ leaderStar: e.target.dataset.index }); } else if (e.currentTarget.dataset.type == 'pgStar') { this.setData({ pgStar: e.target.dataset.index }); } else { this.setData({ cusStar: e.target.dataset.index }); } }, recommend(e) { this.setData({ recomLevel: e.target.dataset.number }) }, onUnload: function () { if (this.data.datas.atype == '0') { this.saveDataToLocal() } }, onHide() { if (this.data.datas.atype == '0') { this.saveDataToLocal() } } })