123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391 |
- 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, '<br/>'),
- 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(/<br\/>/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, '<br/>');
- 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()
- }
- }
- })
|