tment_eval.js 4.46 KB
var e = getApp(),
  a = e.globalData.setting,
  os = a,
  t = e.request,
  d = e.globalData;
Page({

  /**
   * 页面的初始数据
   */
  data: {
    url: a.url, //接口网址
    iurl: a.imghost,
    stars_index: -1, //当前点击的星星下标
    labels: [], //星级标签数组
    sub_evaluate: 0, //是否评价成功
    proposal: "", //用户输入的建议
    proposal_size: 100, //评价意见和建议限定字数
    number: "", //订单单号
    beautician: "", //美容师信息
    fromType: "服务评价", //评价来源
    arrangeTime:"",//服务日期
  },
  //点击星级
  check_stars: function(e) {
    var th = this;
    var index = e.currentTarget.dataset.index;
    var stars_index = th.data.stars_index;
    if (index != stars_index) {
      var url = "/api/weshop/marketing/reservation/star/label/list";
      getApp().request.promiseGet(url, {
        data: {
          Star: index,
          storeId: a.stoid
        }
      }).then(res => {
        if (res.data.code == 0) {
          th.setData({
            labels: res.data.data
          })
        } else {
          getApp().my_warnning(res.data.msg, 0, th);
          return;
        }
      })
      th.setData({
        stars_index: index
      })
    }
  },
  //输入评价意见和建议
  input_proposal: function(e) {
    var th = this;
    var value = e.detail.value;
    th.setData({
      proposal: value
    })
  },
  //图片失败,默认图片
  bind_bnerr1: function(e) {
    var _errImg = e.target.dataset.errorimg;
    var _Img = e.target.dataset.img;
    if (_Img != undefined) {
      var _errObj = {};
      _errObj[_errImg] = "/miniapp/images/no-head.jpg";
      this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ;
    }
  },
  //选择标签
  check_label: function(e) {
    var th = this;
    var index = e.currentTarget.dataset.index;
    var label_id = th.data.labels[index].check;
    var labels = 'labels[' + index + '].check';
    if (label_id) {
      label_id = 0
    } else {
      label_id = 1
    }
    th.setData({
      [labels]: label_id
    })
  },
  //查询美容师信息
  query_bea: function() {
    var th = this;
    var url = "/api/weshop/marketing/reservation/reservation/page";
    var number = th.data.number; //订单编号
    getApp().request.promiseGet(url, {
      data: {
        storeId: a.stoid,
        userId: d.user_id,
        number: number
      }
    }).then(res => {
      if (res.data.code == 0) {
        var data = res.data.data.pageData;
        var arrangeTime = data[0].ArrangeTime.substring(0, 11);
        th.setData({
          beautician: data[0],
          arrangeTime: arrangeTime
        })
      } else {
        getApp().my_warnning(res.data.msg, 0, th);
      }
    })
  },
  //提交评价
  evaluate_save: function() {
    var th = this;
    var stars = th.data.stars_index; //评价星级
    //判断是否评级
    if (stars < 0) {
      getApp().my_warnning("请进行评分", 0, th);
      return false;
    }
    var labels = th.data.labels; //星级标签数组
    var evaLabList = []; //用户选择的评价标签
    // 查询评价标签
    for (var i = 0; i < labels.length; i++) {
      if (labels[i].check) {
        evaLabList.push(labels[i].LabelName);
      }
    }
    var url = th.data.url + "/api/weshop/evaluation/evaluate/save";
    var posNo = th.data.number; //收银单号
    var proposal = th.data.proposal; //用户建议内容
    var fromType = th.data.fromType; //评价来源
    var json = {
      "storeId": a.stoid,
      "evaLabList": evaLabList,
      "fromType": "预约评价",
      "posNo": posNo,
      "remark": proposal,
      "star": stars + 1
    };
    var data = JSON.stringify(json); //转换成json格式
    wx.request({
      url: url,
      data: data,
      method: 'POST',
      header: {
        'content-type': 'application/json'
      }, // 设置请求的 header
      success: function(res) {
        if (res.data.code == 0) {
          th.setData({
            sub_evaluate: 1
          })
          wx.navigateTo({
            url: "/pages/user/my_service/tment_order_list"
          });
        } else {
          getApp().my_warnning(res.data.msg, 0, th);
        }
      }
    })

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    var th = this;
    th.setData({
      number: options.Number
    })
    th.query_bea();
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },
})