// pages/order/create/index.js const request = require('../../../utils/request'); //导入模块 const util = require('../../../utils/util'); const event = require('../../../utils/event.js') Page({ /** * 页面的初始数据 */ data: { form: { centerId: null, latitude: 0, longitude: 0, provinceId: '', cityId: '', regionId: '', districtId: '', fullAddress: '', poiName: '', streetNumber: '', appointDate: '', appointTimePeriodStr: '', appointTimePeriod: '', remark: '', orderPapers: [], vehicleTypeDemand: -1, settlementType: 0, weightType: -1, shippingType: -1, maxVehicleType: -1, estimatePrice: 0, estimateWeight: 0, transportDistance: '', // 提货距离 loadDistance: '' // 运输距离 }, orderPapers: [{ cateId: '', cateName: '', guidePrice: 0, price: 0, weight: 0, paperState: '', paperStateStr: '' }], cateList: [], cateStatusList: [ { value: '1', text: '散纸' }, { value: '2', text: '已装袋' }, { value: '3', text: '已压包' } ], keyboard: false, picking: false, requesting: false }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { wx.showLoading({ title: '加载中', mask: true }) // /scrapStatusList/v150废品状态列表 request.get('/recycle-service/scrapStatusList/v150').then(result => { //成功回调 var statusList = [] result.data.forEach((item) => { statusList.push({ text: item.name, value: item.id }) }) this.setData({ cateStatusList: statusList }) }) // /paperCategoryList 获取纸品列表 request.get('/recycle-service/paperCategoryList').then(result => { //成功回调 result.data.forEach((item) => { this.data.cateList.push({ text: item.name, value: item.id, price: item.guidePrice }) }) this.setData({ cateList: this.data.cateList }) wx.hideLoading() }).catch(err => { //异常回调 wx.hideLoading() }) this.pickerView = this.pickerView || this.selectComponent('#picker-view') this.checkView = this.checkView || this.selectComponent('#check-view') this.timeView = this.timeView || this.selectComponent('#picker-time') }, onReady: function(){ wx.getLocation({ type: 'wgs84', success(res) { const latitude = res.latitude const longitude = res.longitude util.showToast(res.latitude + ',' + res.longitude) } }) }, getDateString: function (addDayCount) { const day = new Date() day.setDate(dd.getDate() + addDayCount) // 获取AddDayCount天后的日期 const y = dd.getFullYear() const m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1 // 获取当前月份的日期,不足10补0 const d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate() // 获取当前几号,不足10补0 return y + '-' + m + '-' + d }, showPaperPicker: function (e) { var index = e.currentTarget.dataset.index var item = this.data.orderPapers[index] this.pickerView.showPicker(this.data.cateList, item.cateId, index) this.setData({ picking: true }) }, showStatusPicker: function (e) { var index = e.currentTarget.dataset.index var item = this.data.orderPapers[index] this.setData({ picking: true }) this.checkView.showPicker(this.data.cateStatusList, item.paperState, index) }, onStatusChange: function (e) { this.setData({ picking: false }) if(!e.detail){ return } var index = e.detail.type var paperState = '' var paperStateStr = '' var list = e.detail.value.sort((a, b) => parseInt(a.value) - parseInt(b.value)) list.forEach(item => { paperState += item.value + ',' paperStateStr += item.text + ';' }) this.setData({ ['orderPapers[' + index + '].paperState']: paperState.substr(0, paperState.length - 1), ['orderPapers[' + index + '].paperStateStr']: paperStateStr.substr(0, paperStateStr.length - 1) }) }, onPaperChange: function (e) { this.setData({ picking: false }) if(!e.detail){ return } for (var i = 0; i < this.data.orderPapers.length; i++) { if (Number(this.data.orderPapers[i].cateId) == Number(e.detail.value)) { util.showToast('纸品已经存在,请不要重复添加') return } } var index = e.detail.type this.setData({ ['orderPapers[' + index + '].cateId']: e.detail.value, ['orderPapers[' + index + '].cateName']: e.detail.text }) }, bindPrice: function (e) { var index = e.currentTarget.dataset.index this.setData({ ['orderPapers[' + index + '].price']: e.detail.value }) }, bindWeight: function (e) { var index = e.currentTarget.dataset.index var value = float.checkWeight(e.detail.value); this.setData({ ['orderPapers[' + index + '].weight']: Number(value) }) }, addCate: function (e) { this.data.orderPapers.push({ cateId: '', cateName: '', guidePrice: 0, price: 0, weight: 0, paperState: '', paperStateStr: '' }) this.setData({ orderPapers: this.data.orderPapers }) }, deleteCate: function (e) { this.data.orderPapers.splice(e.currentTarget.dataset.index, 1) this.setData({ orderPapers: this.data.orderPapers }) this.sumAmount(e) }, sumAmount: function (e) { var index = e.currentTarget.dataset.index var item = this.data.orderPapers[index] if (Number(item.weight) > 0 && Number(item.price) > 0) { this.checkOrderPaper() } }, checkOrderPaper: function () { var estimatePrice = 0 var estimateWeight = 0 for (let i = 0; i < this.data.orderPapers.length; i++) { this.data.orderPapers[i].guidePrice = parseInt(Number(this.data.orderPapers[i].price) * 100) estimatePrice += parseFloat(this.data.orderPapers[i].weight) * parseFloat(Number(this.data.orderPapers[i].price) * 100) estimateWeight += Number(this.data.orderPapers[i].weight) } this.setData({ ['form.estimatePrice']: estimatePrice, ['form.estimateWeight']: estimateWeight }) }, chooseLocation: function () { wx.chooseLocation({ success: (res) => { this.setData({ ['form.latitude']: res.latitude, ['form.longitude']: res.longitude, ['form.fullAddress']: res.address, ['form.poiName']: res.name }); } }) }, showDatePicker: function (e) { this.timeView.showPicker() this.setData({ picking: true }) }, bindKeyboard: function(e){ this.setData({ keyboard: e.detail.height > 0 }) }, onDateChange: function (e) { this.setData({ picking: false }) if(!e.detail){ return } this.setData({ ['form.appointDate']: e.detail[0].text, ['form.appointTimePeriod']: parseInt(e.detail[1].value), ['form.appointTimePeriodStr']: e.detail[1].text, }) }, bindForm: function (e) { var form_data = 'form.' + e.target.id this.setData({ [form_data]: e.detail.value }) }, submitForm: function (e) { for (let i = 0; i < this.data.orderPapers.length; i++) { if (util.isEmpty(this.data.orderPapers[i].cateId)) { util.showToast('请选择第' + (i + 1) + '项废纸品类') return } if (util.isEmpty(this.data.orderPapers[i].paperState)) { util.showToast('请选择第' + (i + 1) + '项纸品状态') return } if (parseFloat(this.data.orderPapers[i].price) <= 0) { util.showToast('请输入第' + (i + 1) + '项预估价格,价格必须为正数') return } if (parseFloat(this.data.orderPapers[i].weight) <= 0) { util.showToast('请输入第' + (i + 1) + '项预估重量,重量必须为正数') return } } if (util.isEmpty(this.data.form.appointDate)) { util.showToast('请选择收货日期') return } this.checkOrderPaper() this.data.form.orderPapers = this.data.orderPapers this.setData({ requesting: true }) wx.showLoading({ title: '加载中', mask: true }) request.post('/warehouse/h5/customerOrders', this.data.form).then(result => { //成功回调 wx.hideLoading() event.emit('EventMessage', { what: 2, desc: 'OrderCreate' }) wx.showModal({ title: '温馨提示', content: '订单提交已经成功,可以查看下单详情', showCancel: false, success: function (res) { if (res.confirm) { wx.redirectTo({ url: '/pages/order/order-info/index?orderId=' + result.response.id }) } } }) }).catch(err => { //异常回调 wx.hideLoading() util.showToast(err) this.setData({ requesting: false }) }) } })