|
@@ -1,10 +1,55 @@
|
|
|
// pages/groupmeallist/refund/refund.js
|
|
|
+import order from '../../../api/order'
|
|
|
+const cache = require('../../../utils/cache.js');
|
|
|
+import base from "../../../utils/base";
|
|
|
+import Upload from '../../../api/upload'
|
|
|
Page({
|
|
|
|
|
|
/**
|
|
|
* 页面的初始数据
|
|
|
*/
|
|
|
data: {
|
|
|
+ orderGoodList: [{}, {}, {}, {}],
|
|
|
+ showAllSku: false,
|
|
|
+ orderInfo: {},
|
|
|
+ orderSn: '',
|
|
|
+ chooseViewShowBanner: true,
|
|
|
+ orderGoodList: [], //spu-sku商品信息
|
|
|
+ isShowPannel: false,
|
|
|
+ reasonValue: '请选择退款原因',
|
|
|
+ reasonDetailValue: '',
|
|
|
+ avatarUrlShow: [],
|
|
|
+ t_length: 0,
|
|
|
+ avatarUrl: [],
|
|
|
+ reasonListChecked: false,
|
|
|
+ reasonList: [{
|
|
|
+ text: '不想要了/临时有事',
|
|
|
+ checked: false
|
|
|
+ }, {
|
|
|
+ text: '点错了/点多了/点少了',
|
|
|
+ checked: false
|
|
|
+ }, {
|
|
|
+ text: '地址/电话填错了',
|
|
|
+ checked: false
|
|
|
+ }, {
|
|
|
+ text: '忘记用红包/优惠券',
|
|
|
+ checked: false
|
|
|
+ }, {
|
|
|
+ text: '菜品质量问题',
|
|
|
+ checked: false
|
|
|
+ }, {
|
|
|
+ text: '出餐/送餐速度过慢',
|
|
|
+ checked: false
|
|
|
+ }, {
|
|
|
+ text: '没有按承诺的优惠',
|
|
|
+ checked: false
|
|
|
+ }, {
|
|
|
+ text: '其他',
|
|
|
+ checked: false
|
|
|
+ }, ]
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
},
|
|
|
|
|
@@ -12,9 +57,288 @@ Page({
|
|
|
* 生命周期函数--监听页面加载
|
|
|
*/
|
|
|
onLoad: function (options) {
|
|
|
+ if (options.sn) {
|
|
|
+ this.reloadPage(options.sn)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ reloadPage(orderSn) {
|
|
|
+ this.setData({
|
|
|
+ orderSn
|
|
|
+ })
|
|
|
+
|
|
|
+ this.getOrderdetail();
|
|
|
+ },
|
|
|
+ listenInput(e) {
|
|
|
+ let value = e.detail.value;
|
|
|
+ this.setData({
|
|
|
+ reasonDetailValue: value
|
|
|
+ })
|
|
|
|
|
|
},
|
|
|
+ callStorePerson() {
|
|
|
+ let phone = this.data.orderInfo.store.liaisonPhone;
|
|
|
+ wx.makePhoneCall({
|
|
|
+ phoneNumber: phone
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /** 图片选择 */
|
|
|
+ bindViewTap: function () {
|
|
|
+ var that = this;
|
|
|
+ if (this.data.avatarUrlShow.length < 4) {
|
|
|
+ wx.chooseImage({
|
|
|
+ // 设置最多可以选择的图片张数,默认9,如果我们设置了多张,那么接收时//就不在是单个变量了,
|
|
|
+ count: 1,
|
|
|
+ sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
|
|
|
+ sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
|
|
|
+ success: function (res) {
|
|
|
+ // 获取成功,将获取到的地址赋值给临时变量
|
|
|
+ console.log(res);
|
|
|
+ if (res.tempFilePaths.count == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //图片上传到金山云
|
|
|
+ var tempFilePaths = res.tempFilePaths
|
|
|
+
|
|
|
+ wx.uploadFile({
|
|
|
+ url: Upload.uploadPic(),
|
|
|
+ filePath: tempFilePaths[0],
|
|
|
+ name: 'file',
|
|
|
+ formData: {
|
|
|
+ 'basePath': 'welfareMall',
|
|
|
+ },
|
|
|
+ success: function (res) {
|
|
|
+ //提交路径
|
|
|
+ var urlImg = JSON.parse(res.data).data.url;
|
|
|
+ //展示路径
|
|
|
+ var destPath = JSON.parse(res.data).data.destPath;
|
|
|
|
|
|
+ var imgArrNow = that.data.avatarUrl;
|
|
|
+ var imgArrNowShow = that.data.avatarUrlShow;
|
|
|
+ imgArrNow.push(urlImg);
|
|
|
+ imgArrNowShow.push(destPath);
|
|
|
+ if (that.data.avatarUrlShow.length > 4) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '最多添加4张图片',
|
|
|
+ icon: 'none',
|
|
|
+ duration: 1500
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ that.setData({
|
|
|
+ //将临时变量赋值给已经在data中定义好的变量
|
|
|
+ avatarUrl: imgArrNow,
|
|
|
+ avatarUrlShow: imgArrNowShow
|
|
|
+ })
|
|
|
+ that.chooseViewShowBanner();
|
|
|
+ },
|
|
|
+ fail: function (err) {
|
|
|
+ console.log(err);
|
|
|
+ },
|
|
|
+ })
|
|
|
+
|
|
|
+ },
|
|
|
+ fail: function (res) {
|
|
|
+ // fail
|
|
|
+ },
|
|
|
+ complete: function (res) {
|
|
|
+ // complete
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ wx.showToast({
|
|
|
+ title: '最多添加4张图片',
|
|
|
+ icon: 'none',
|
|
|
+ duration: 1500
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /** 删除图片Banner */
|
|
|
+ deleteImvBanner: function (e) {
|
|
|
+ var avatarUrlShow = this.data.avatarUrlShow;
|
|
|
+ var avatarUrl = this.data.avatarUrl;
|
|
|
+ var itemIndex = e.currentTarget.dataset.id;
|
|
|
+ avatarUrlShow.splice(itemIndex, 1);
|
|
|
+ avatarUrl.splice(itemIndex, 1);
|
|
|
+ this.setData({
|
|
|
+ avatarUrlShow: avatarUrlShow
|
|
|
+ })
|
|
|
+ //判断是否隐藏选择图片
|
|
|
+ this.chooseViewShowBanner();
|
|
|
+ },
|
|
|
+ /** 是否隐藏图片选择Banner*/
|
|
|
+ chooseViewShowBanner: function () {
|
|
|
+ if (this.data.avatarUrlShow.length > 3) {
|
|
|
+ this.setData({
|
|
|
+ chooseViewShowBanner: false
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ this.setData({
|
|
|
+ chooseViewShowBanner: true
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 选中改变
|
|
|
+ changeChecked(e) {
|
|
|
+ let index = e.currentTarget.dataset.id;
|
|
|
+ let value = '';
|
|
|
+ this.data.reasonList.forEach((item, id) => {
|
|
|
+ if (id == index) {
|
|
|
+ item.checked = true
|
|
|
+ value = item.text
|
|
|
+ } else {
|
|
|
+ item.checked = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.setData({
|
|
|
+ reasonList: this.data.reasonList,
|
|
|
+ reasonValue: value,
|
|
|
+ reasonListChecked: true
|
|
|
+ // isShowPannel: false
|
|
|
+
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 获取订单详情
|
|
|
+ */
|
|
|
+ async getOrderdetail() {
|
|
|
+ let _self = this;
|
|
|
+ try {
|
|
|
+ let orderRes = await order.getOrderDetail({
|
|
|
+ orderSn: _self.data.orderSn,
|
|
|
+ mobile: cache.getMobile()
|
|
|
+ });
|
|
|
+ if (orderRes.code == 200 && orderRes.msg == "success") {
|
|
|
+ let orderInfo = orderRes.data;
|
|
|
+ orderInfo.originPrice = (parseFloat(orderInfo.payPrice) / 100).toFixed(2)
|
|
|
+ _self.setData({
|
|
|
+ orderInfo: orderInfo,
|
|
|
+ })
|
|
|
+ //组建spu sku
|
|
|
+ _self.createOrderGoodList(orderInfo.orderGoodsList)
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.log(error);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ closeCartPannel: function () {
|
|
|
+ this.setData({
|
|
|
+ isShowPannel: false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ //显示对话框
|
|
|
+ showCartPannel: function () {
|
|
|
+ // 显示遮罩层
|
|
|
+ var animation = wx.createAnimation({
|
|
|
+ duration: 100,
|
|
|
+ timingFunction: "linear",
|
|
|
+ delay: 0
|
|
|
+ })
|
|
|
+ this.animation = animation
|
|
|
+ animation.translateY(300).step()
|
|
|
+ this.setData({
|
|
|
+ animationData: animation.export(),
|
|
|
+ isShowPannel: true
|
|
|
+ })
|
|
|
+ setTimeout(function () {
|
|
|
+ animation.translateY(0).step()
|
|
|
+ this.setData({
|
|
|
+ animationData: animation.export()
|
|
|
+ })
|
|
|
+ }.bind(this), 100)
|
|
|
+ },
|
|
|
+
|
|
|
+ submit() {
|
|
|
+ if (this.data.reasonListChecked) {
|
|
|
+ order.refund({
|
|
|
+ mobile: cache.getMobile(),
|
|
|
+ orderSn: this.data.orderSn,
|
|
|
+ reason: this.data.reasonValue + this.data.reasonDetailValue,
|
|
|
+ photoList: this.data.avatarUrl
|
|
|
+ }).then(res => {
|
|
|
+ wx.redirectTo({
|
|
|
+ url: '../../welfareMall/historical/historical',
|
|
|
+ })
|
|
|
+
|
|
|
+
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ wx.showToast({
|
|
|
+ title: '请选择退款理由',
|
|
|
+ icon: 'none',
|
|
|
+ duration: 1000
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 组建spu sku
|
|
|
+ * @param {*} list
|
|
|
+ */
|
|
|
+ createOrderGoodList(list) {
|
|
|
+
|
|
|
+ console.log("进入详情")
|
|
|
+ console.log(list)
|
|
|
+ let _self = this;
|
|
|
+ if (list.length == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let orderGoodList = [];
|
|
|
+ for (let a = 0; a < list.length; a++) { //最外层
|
|
|
+ //某一个商品种类
|
|
|
+ let goodList = list[a];
|
|
|
+ //sku-list
|
|
|
+ let orderGoodsSkuList = goodList.orderGoodsSkuList;
|
|
|
+ let fullFigure = list[a].fullFigure;
|
|
|
+ for (let b = 0; b < orderGoodsSkuList.length; b++) {
|
|
|
+ let orderGood = {};
|
|
|
+ orderGood.productName = goodList.productName;
|
|
|
+ let orderGoodsSku = orderGoodsSkuList[b];
|
|
|
+ let text = '';
|
|
|
+ if (orderGoodsSku.comboSkuList != null && orderGoodsSku.comboSkuList.length > 0) {
|
|
|
+ console.log("进入套餐拼接")
|
|
|
+ text = "套餐:"
|
|
|
+ let productName = ''
|
|
|
+ let specValue = []
|
|
|
+ let num = ''
|
|
|
+ orderGoodsSku.comboSkuList.forEach(function (comboSkuList, index) {
|
|
|
+ comboSkuList.skuList.forEach(function (skuList, skuindex) {
|
|
|
+ productName = skuList.productName
|
|
|
+ num = skuList.num
|
|
|
+ if (skuList.specList != null) {
|
|
|
+ let specList = JSON.parse(skuList.specList);
|
|
|
+ if (base.isArray(specList)) {
|
|
|
+ specList.forEach(function (specList, skuindex) {
|
|
|
+
|
|
|
+ specValue.push(specList.specValue + " X" + num)
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ specValue.push(productName + " X" + num)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ specValue = specValue.join('、') || ""
|
|
|
+ text = text + "(" + specValue + ")"
|
|
|
+
|
|
|
+ }
|
|
|
+ orderGood.num = orderGoodsSkuList[b].num;
|
|
|
+ orderGood.allFee = base.fenToYuan(orderGoodsSkuList[b].price * orderGoodsSkuList[b].num)
|
|
|
+ orderGood.skuText = text
|
|
|
+ orderGood.fullFigure = fullFigure
|
|
|
+ orderGoodList.push(orderGood)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ _self.setData({
|
|
|
+ orderGoodList: orderGoodList
|
|
|
+ })
|
|
|
+
|
|
|
+ console.log(this.data.orderGoodList)
|
|
|
+ },
|
|
|
/**
|
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
|
*/
|
|
@@ -64,8 +388,8 @@ Page({
|
|
|
|
|
|
},
|
|
|
|
|
|
- showlable(){
|
|
|
-
|
|
|
+ showlable() {
|
|
|
+
|
|
|
|
|
|
}
|
|
|
})
|