b_detail.js 5.88 KB
var util = require('../../../utils/util.js')
var uri = require('../../../utils/uri.js')
import App from '../../../utils/api';

const {regeneratorRuntime} = global
import TP from '../../../utils/tpls';
import gl from '../../global';

Page({
  data: {
    actionSheetHidden: true,
    actionSheetItems: ['客户取消', '客户行程改变'],
    hasEditorFlag: false,
  },
  sc: {},
  tpls: TP.tpls(),
  enter_params: {},
  onLoad: async function (opt) {
    util.setBarTitle('预订详情');
    console.log(opt)
    this.getDetail(opt.id);
    wx.showShareMenu({
      withShareTicket: true,
      success: function (res) {
        console.log(res)
      }
    })
    this.enter_params = util.cache('enter_params');
    this.sc = (await App.Reserve.SellerInfo(this.enter_params)).data;
    console.log('this.sc', this.sc);
    this.chooseManagerInit();
  },
  onShow: function () {
    this.notice = this.selectComponent('#notice');
    gl.getHasEditorFlag().then(() => {
      this.setData({
        hasEditorFlag: true,
      })
    }).catch(()=>{})
  },
  noticeCall: function () {
    this.selectComponent('#notice').show();
  },
  onShareAppMessage: function () {
    this.selectComponent('#notice').close();
    var obj = this.data.bookInfo;
    let path = util.http_build_query({
      id: this.data.bookInfo.id,
      fromid: getApp().openid,
      hasSellerShare: 1,
      hasInvitation: 1,
      tplid: 1
    }, '/pages/customer/index')
    return {
      //title: (nickname||'')+'给你发送了一个订座信息,点击查看详情',
      title: this.tpls[0].shareFirstTitle,
      path: path,
      imageUrl: this.tpls[0].shareFirstImage,
      success: function (res) {
        console.log(res, 666666)
      },
      fail: function () {
        console.log('ccccc')
      },
      complete: function () {
        console.log('ccccc')
      }
    };
  },
  getcall: function () {
    if (!this.detailData.hasOwner) {
      return util.toast('只有记录人可以拨打', 'none');
    }
    if (this.data.bookInfo.phone.length < 3) {
      return util.toast('号码错误', 'none');
    }
    wx.makePhoneCall({
      phoneNumber: this.data.bookInfo.phone, //仅为示例,并非真实的电话号码
      complete: () => {
        this.selectComponent('#notice').close();
      }
    })
  },
  chooseManagerInit() {
    try {
      let managers = this.sc.manager;
      let mans = [];
      let mans_role = [];
      // let space='';
      // for(let i=0;i<50;i++){
      //   space+=' ';
      // }
      if (managers.length > 0) {
        managers.forEach(man => {
          let nickname = man.nick_name || man.user_name;
          mans.push(nickname);
          //mans_role.push('     ['+man.role_name+'] -- '+man.user_name+space);
          mans_role.push('[' + man.role_name + '] -- ' + nickname);
        })
      }
      this.setData({mans: mans, mans_role: mans_role})
    } catch (e) {
      wx.showToast({
        title: '无客户经理',
        icon: 'none'
      });
    }
  },
  chooseManager(e) {
    let mansIndex = util.val(e);
    this.setData({mansIndex: mansIndex});
    try {
      let managers = this.sc.manager;
      let man = managers[mansIndex];
      if (man) {
        App.Reserve.SetReserveCusman({
          rid: this.data.bookInfo.id,
          cusman_id: man.id,
          cusman: man.nick_name || man.user_name,
          cusman_phone: man.user_phone ? man.user_phone : '',
          cusman_account: man.user_wechat ? man.user_wechat : '',
          cusman_openid: man.seat_openid ? man.seat_openid : ''
        }).then(() => {
          this.getDetail(this.data.bookInfo.id, true);
        });
      }
    } catch (e) {
      console.log(e);
    }

  },
  flushSellerInfo() {
    App.Reserve.SellerInfo(util.cache('enter_params'), true);
  },
  detailData: null,
  async getDetail(id, force = false) {
    let res = await App.Reserve.Detail({rid: id, openid: ''}, force);
    res.data.rdateStr = util.unixtoTime(res.data.ddate, "MM月DD日 HH:II")
    res.data.phoneStr = res.data.phone || '';
    let enter_params = util.cache('enter_params');
    let sc = (await App.Reserve.SellerInfo(enter_params)).data
    let note_openid = enter_params.seller_openid;
    res.data.hasOwner = false;
    if (note_openid == res.data.note_openid || sc.seller_user.role_name == '管理员') {
      res.data.hasOwner = true;
    }
    if (!res.data.hasOwner) {
      res.data.phoneStr = res.data.phoneStr.replace(/(\d{2})(.{5})(\d{3})/, function ($0, $1, $2, $3) {
        return $1 + '**' + $3;
      })
    }
    if (res.data.status == 4 && res.data.cancel) {
      res.data.cancel.cdateStr = util.unixtoTime(res.data.cancel.cdate, "YYYY.MM.DD HH:II")
    }
    this.detailData = res.data;

    this.setData({
      tables: res.data.tables,
      bookInfo: res.data,
    })
  },
  gotoModify() {
    wx.redirectTo({
      url: './b_addnew?id=' + this.data.bookInfo.id
    })
  },
  cancelReserve() {
    this.selectComponent('#cancel').show();
  },
  reserveCancel(e) {
    console.log('reserveCancel', e.detail);
    this.getDetail(this.data.bookInfo.id, true);
  },
  actionSheetChange(e) {
    this.setData({
      actionSheetHidden: true
    })
  },
  async startDinner(e) {
    let cause = {};
    let enter_params = util.cache('enter_params');
    let sc = (await App.Reserve.SellerInfo(enter_params)).data
    cause = {desc: ""}
    if (enter_params) {
      cause.uid = enter_params.manager_id;
    }
    if (sc.seller_user) {
      cause.uname = (sc.seller_user.nick_name || sc.seller_user.nickname)
    }
    App.Reserve.SetReserveStatus({
      rid: this.data.bookInfo.id,
      status: util.attr(e, 'status'),
      cause: JSON.stringify(cause),
    }).then(() => {
      this.getDetail(this.data.bookInfo.id, true);
    });
  },
  showOrder() {
    wx.navigateTo({
      url: util.http_build_query({
        rid: this.data.bookInfo.id,
        oid: this.data.bookInfo.orderid,
        identity: 2
      }, '/pack-cookbook/pages/success')
    });
  },
})