123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431 |
- const util = require("../../../utils/util");
- const api = require('../../../api/api.js');
- var app = getApp();
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- colorService: '#85868A',
- colorChange: '#85868A',
- name: '',
- problem: {
- id: 0,
- name: '',
- tempMobile:'',
- mobile: '',
- remark: '',
- picUrls: [],
- bookTime: "选择服务日期-时间",
- changeTime: '选择服务日期-时间',
- city: '',
- bookTradeNo: ''
- },
- problemInfo: {},
- files: [],
- date: [
- ["2021-02-01", "2021-02-02", "2021-02-03"],
- ["2021-02-04", "2021-02-05", "2021-02-06"]
- ],
- multiIndex: [0, 2, 0],
- multiChangeIndex: 0,
- oneHour: ["08:30-09:30", "10:45-11:45", "13:00-14:00", "14:45-15:45", "17:30-18:30", "17:30-19:30", "20:00-21:00"],
- twoHour: ["08:00-10:00", "13:00-15:00", "16:00-18:00"],
- threeHour: ["08:00-11:00", "12:00-15:00", "13:00-16:00", "17:00-20:00", "17:30-20:30"],
- fourHour: ["08:00-12:00", "13:45-17:45", "14:00-18:00", "17:00-21:00", "18:00-22:00"],
- sixHour: ["08:00-14:00", "13:00-19:00"],
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function (options) {
- console.info(options)
- let that = this
- that.setData({
- 'problem.id': options.id,
- name: options.name,
- })
- that.initServiceDate();
- that.getProblemInfo(options.id);
- if (options.bookTradeNo) {
- that.setData({
- 'problem.bookTradeNo': options.bookTradeNo
- })
- that.getBookTradeInfo();
- }
- },
- getProblemInfo(id) {
- let that = this
- wx.showLoading();
- util.request(api.ProblemInfo, {
- id: id
- }).then(function (res) {
- wx.hideLoading();
- console.info(res.data)
- if (res.errno === 0) {
- that.setData({
- problemInfo: res.data
- });
- }
- });
- },
- maskPhone(phone) {
- if (!phone || phone.length !== 11) return phone; // 确保电话号码有效且长度为11位
- return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
- },
- getBookTradeInfo() {
- let that = this
- if (that.data.problem.bookTradeNo) {
- util.request(api.BookHmTradeInfo, {
- bookTradeNo: that.data.problem.bookTradeNo
- }).then(function (res) {
- if (res.errno === 0) {
- var p = that.data.problem;
- p.name = res.data.userName;
- p.mobile = res.data.userPhone;
- p.tempMobile=res.data.userPhone;//that.maskPhone(res.data.userPhone);
- if(that.data.problem.bookTradeNo.indexOf("JZ")==-1){
- p.tempMobile=that.maskPhone(res.data.userPhone);
- }
- p.bookTime = res.data.bookTime;
- p.changeTime = '选择服务日期-时间',
- that.setData({
- problem: p,
- colorService: '#333'
- });
- }
- });
- }
- },
- initServiceDate() { //构造服务日期及时间段
- var date = [];
- var now = util.formatDate(new Date());
- for (var i = 0; i < 7; i++) {
- date.push(util.mathChangeDate(now, '+', i, true));
- }
- var data = [];
- data.push(date, ['1小时', '2小时', '3小时', '4小时', '6小时'], this.data.threeHour);
- console.info(data)
- this.setData({
- date: data
- })
- },
- /**
- * 生命周期函数--监听页面初次渲染完成
- */
- onReady: function () {
- },
- //服务时间段
- bindMultiPickerChange(e) {
- console.info(e)
- var date = this.data.date[0][e.detail.value[0]]
- var time = this.data.date[2][e.detail.value[2]]
- this.setData({
- 'problem.bookTime': date + ' ' + time,
- colorService: '#333'
- })
- },
- bindMultiPickerColumnChange(e) {
- console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
- let that = this
- var data = that.data.date;
- if (e.detail.column == 1) { //修改时间段列
- switch (e.detail.value) {
- case 0: //"1小时"
- data[2] = that.data.oneHour;
- break;
- case 1: //"2小时"
- data[2] = that.data.twoHour;
- break;
- case 2: //"3小时"
- data[2] = that.data.threeHour;
- break;
- case 3: //"4小时"
- data[2] = that.data.fourHour;
- break;
- case 4: //"6小时"
- data[2] = that.data.sixHour;
- break;
- }
- this.setData({
- date: data
- })
- }
- },
- bindNeedFollowed(e){//是否需要客服介入
- console.info(e.detail.value)
- this.setData({
- 'problem.isNeedFollowed': e.detail.value
- })
- },
- //期望服务时间
- bindChangePickerChange(e) {
- var date = this.data.date[0][e.detail.value[0]]
- var time = this.data.date[2][e.detail.value[2]]
- this.setData({
- 'problem.changeTime': date + ' ' + time,
- colorChange: '#333'
- })
- },
- /**
- * 生命周期函数--监听页面显示
- */
- onShow: function () {
- this.setData({
- 'problem.city': app.globalData.city
- })
- },
- saveProblem() {
- console.info("handle saveProblem")
- let that = this
- if (that.data.problem.tempMobile.length != 11 || that.data.problem.tempMobile.startsWith("1") == false) {
- wx.showToast({
- title: '请输入正确手机号',
- duration: 3000,
- icon:'none'
- });
- return;
- }
- if(that.data.problem.tempMobile.indexOf("*")==-1){//用输入后的手机
- this.setData({
- 'problem.mobile': that.data.problem.tempMobile
- })
- }
- if (that.data.problem.bookTime == '选择服务日期-时间') {
- wx.showToast({
- title: '请选择服务时间',
- duration: 3000,
- icon:'none'
- });
- return;
- }
- if (that.data.problemInfo.isChangeTime && that.data.problem.changeTime == '选择服务日期-时间') {
- wx.showToast({
- title: '请选择期望改约的服务时间',
- duration: 3000,
- icon:'none'
- });
- return;
- }
- if (that.data.problemInfo.isNeedPic && that.data.problem.picUrls.length == 0) {
- wx.showToast({
- title: '请上传照片',
- duration: 3000,
- icon:'none'
- });
- return;
- }
- console.log(that.data.problem);
-
- wx.showModal({
- title: '提示',
- content: '确定要报备此问题吗?',
- success: function (sm) {
- if (sm.confirm) {
- wx.showLoading();
- util.request(api.ProblemAdd, that.data.problem, "POST").then(function (res) {
- wx.hideLoading();
- let msg=typeof that.data.problemInfo.alertMsg=='undefined'? '问题报备成功':that.data.problemInfo.alertMsg;
- if (res.errno === 0) {
- wx.showModal({
- title: '报备成功',
- content: msg,
- showCancel: false,//是否显示取消按钮
- confirmText:"确定",//默认是“确定”
- confirmColor: 'skyblue',//确定文字的颜色
- success: function (res) {
- if (res.cancel) {
- //点击取消,默认隐藏弹框
- } else {
- //点击确定
- // wx.switchTab({
- // url: '/pages/problem/index',
- // })
- // wx.navigateTo({
- // url: '/pages/new/ticketDetail/ticketDetail?bookTradeNo=' + that.data.problem.bookTradeNo,
- // })
- wx.navigateBack({
- delta: 2,
- })
- }
- },
- })
- } else {
- wx.showToast({
- title: res.errmsg,
- duration: 3000
- });
- }
- });
- }
- }
- })
- },
- bindRemark(e) {
- this.setData({
- 'problem.remark': e.detail.value
- })
- },
- bindName(e) {
- this.setData({
- 'problem.name': e.detail.value
- })
- },
- bindMobile(e) {
- this.setData({
- 'problem.tempMobile': e.detail.value
- })
- },
- chooseImage: function (e) {
- if (this.data.files.length >= 5) {
- util.showErrorToast('只能上传五张图片')
- return false;
- }
- var that = this;
- wx.chooseImage({
- count: 1,
- sizeType: ['original', 'compressed'],
- sourceType: ['album', 'camera'],
- success: function (res) {
- that.setData({
- files: that.data.files.concat(res.tempFilePaths)
- });
- console.info(res.tempFilePaths[0])
- //that.compressImage(res.tempFilePaths[0], (res1) => {
- that.upload(res)
- //})
- }
- })
- },
- upload: function (res) {
- var that = this;
- const uploadTask = wx.uploadFile({
- url: api.StorageUpload(),
- filePath: res.tempFilePaths[0],
- name: 'file',
- success: function (res) {
- var _res = JSON.parse(res.data);
- if (_res.errno === 0) {
- var url = _res.data.fileUrl
- var pics = that.data.problem.picUrls;
- pics.push(url);
- that.setData({
- hasPicture: true,
- 'problem.picUrls': pics
- })
- }
- },
- fail: function (e) {
- wx.showModal({
- title: '错误',
- content: '上传失败',
- showCancel: false
- })
- },
- })
- uploadTask.onProgressUpdate((res) => {
- console.log('上传进度', res.progress)
- console.log('已经上传的数据长度', res.totalBytesSent)
- console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend)
- })
- },
- previewImage: function (e) {
- wx.previewImage({
- current: e.currentTarget.id, // 当前显示图片的http链接
- urls: this.data.files // 需要预览的图片http链接列表
- })
- },
- compressImage(path, callback) {
- var that = this;
- //获取图片信息
- wx.getImageInfo({
- src: path,
- success: function (res) {
- //如果图片小于1200宽度 不压缩
- if (res.width < 1200) {
- callback(res.path);
- return
- }
- console.info("开始压缩")
- var ctx = wx.createCanvasContext('photo_canvas'); // 创建画布
- var towidth = 1200; //设置canvas尺寸,按宽度500px的比例压缩
- var toheight = Math.trunc(1200 * res.height / res.width); //根据图片比例换算出图片高度
- that.setData({
- canvasHeight: toheight
- });
- console.info("开始压缩2")
- ctx.drawImage(path, 0, 0, res.width, res.height, 0, 0, towidth, toheight);
- console.info("开始压缩3")
- ctx.draw(false, function () {
- wx.canvasToTempFilePath({
- canvasId: 'photo_canvas',
- fileType: "jpg",
- quality: 0.8,
- success: function (res) {
- console.log(res.tempFilePath);
- callback(res.tempFilePath);
- },
- fail: function (res) {
- console.info(res)
- }
- }, this)
- })
- console.info("开始压缩4")
- }
- });
- },
- /**
- * 生命周期函数--监听页面隐藏
- */
- onHide: function () {
- },
- /**
- * 生命周期函数--监听页面卸载
- */
- onUnload: function () {
- },
- /**
- * 页面相关事件处理函数--监听用户下拉动作
- */
- onPullDownRefresh: function () {
- },
- /**
- * 页面上拉触底事件的处理函数
- */
- onReachBottom: function () {
- },
- /**
- * 用户点击右上角分享
- */
- onShareAppMessage: function () {
- }
- })
|