Commit e318015e by 赵雅纹

Merge branch 'dev_7.1.0' into feature-zyw-sc

parents 1b73cc10 3271f73b
......@@ -20,10 +20,15 @@ Component({
methods: {
//点击上传图片
uploadImg(){
console.log('1111')
this.chooseImg()
},
deleteImage(event) {
var pics = this.data.pics
pics.splice(event.currentTarget.dataset.index, 1)
this.setData({
pics: pics
})
},
//选取图片
chooseImg(){
let that = this;
......
<!--component/uploadImg/uploadImg.wxml-->
<view class="page-upload-img">
<view class="flex-wrp" style="padding-bottom:{{pics.length >= 4 ? '100px;' : '0px'}};">
<view class="flex-item bc_green" wx:for="{{pics}}" wx:key="{{index}}">
<view class="flex-item bc_green image-preview" wx:for="{{pics}}" wx:key="{{index}}">
<icon size="16" type="clear" catchtap="deleteImage" data-index="{{index}}" />
<image class="item-img" src="{{item}}"></image>
</view>
<view class="flex-item bc_green">
......
......@@ -4,8 +4,6 @@
flex-wrap: wrap;
}
.upload-wrap{
/* width: 160rpx;
height: 160rpx;*/
border-radius: 5rpx;
border: 1px solid rgba(216, 216, 216, 1);
line-height: 160rpx;
......@@ -36,7 +34,47 @@
}
.flex-item {
margin-bottom: 20rpx;
width: 21%;
width: 21.5%;
height: 160rpx;
margin-left: 20rpx;
}
.image-preview {
position: relative;
border: 2rpx solid #d9d9d9;
margin-right: 20rpx;
}
.image-preview icon {
position: absolute;
right: -10rpx;
top: -10rpx;
background: #ffffff;
border-radius: 50%; }
.image-preview image {
float: left; }
.image-choose {
width: 150rpx;
height: 150rpx;
border: 2rpx solid #d9d9d9;
position: relative; }
.image-choose::before, .image-choose::after {
content: "";
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: #d9d9d9; }
.image-choose::before {
width: 4rpx;
height: 80rpx; }
.image-choose::after {
height: 4rpx;
width: 80rpx; }
.page-upload-img{
display: flex;
flex-wrap: wrap;
}
......@@ -52,22 +52,22 @@ wxService.page({
})
// 1556108807316001
// 1556108807316000
this.getCartList()
// this.getCartList()
// const trolleySku = {
// count: 1,
// skuId: '1556108807316001'
// }
// // 加入购物车
// wxService.post('/sale/trolley/put', trolleySku).then(res => {
// if (res) {
// const { result } = res.data
// if (result == 0) {
// wx.hideLoading()
// this.getCartList()
// }
// }
// })
const trolleySku = {
count: 1,
skuId: '1556108807316001'
}
// 加入购物车
wxService.post('/sale/trolley/put', trolleySku).then(res => {
if (res) {
const { result } = res.data
if (result == 0) {
wx.hideLoading()
this.getCartList()
}
}
})
},
// 查询 /trolley/query
getCartList() {
......
......@@ -42,7 +42,12 @@
</view>
</view>
<view class="empty" wx-if="{{cartList !== null && cartList.length == 0}}">亲,您的购物车还空空的哟~</view>
<view class="empty" wx-if="{{cartList !== null && cartList.length == 0}}">
<view class="empty-img">
<image class="no-cart-img" src="/assets/imgs/7_1_0/08_22/no-cart.png" mode="widthFix" />
</view>
<view class="empty-text">亲,您的购物车还空空的哟~</view>
</view>
<!-- 底部 -->
<!-- <view class="cart-bottom" style="bottom:{{currentHeight}}px">-->
......
......@@ -232,4 +232,16 @@ page{
width: 100%;
margin-top: 458rpx;
}
.empty-img{
margin: 0 auto;
margin-bottom: 50rpx;
}
.empty-img, .no-cart-img {
width: 210rpx;
height: 205rpx;
}
.empty-text {
color: rgba(128, 128, 128, 1);
font-size: 28rpx;
}
\ No newline at end of file
......@@ -80,6 +80,75 @@ wxService.page({
}
})
},
// 删除订单
handelDelOrder(e) {
const { id } = e.currentTarget.dataset
wx.showLoading({
title: '加载中',
mask: true
})
wxService.post(`/sale/trade/buyer/delete/${id}`).then(res => {
if (res) {
const { result } = res.data
if (result == 0) {
wx.hideLoading()
wx.showToast({
title: `删除成功!`,
icon: 'none'
})
} else {
wx.showToast({
title: `删除失败!`,
icon: 'none'
})
}
}
})
},
// 立即支付
handelToPay(e) {
const { id } = e.currentTarget.dataset
wx.showLoading({
title: '加载中',
mask: true
})
wxService.post(`/sale/trade/buyer/wxprepay/${id}`).then(res => {
if (res) {
const { result } = res.data
if (result == 0) {
wx.hideLoading()
// const payJson = JSON.parse(decodeURIComponent(res_.data.data.parameter))
// wx.requestPayment({
// 'timeStamp': payJson.timeStamp,
// 'nonceStr': payJson.nonceStr,
// 'package': payJson.package,
// 'signType': payJson.signType,
// 'paySign': payJson.paySign,
// 'success': _res => {
// wx.hideLoading()
// wx.showToast({
// title: '支付成功',
// icon: 'none',
// mask: true
// })
// wx.reportAnalytics('api_pay_success', {
// orderno: orderNo
// })
// this.initByStatus(this.data.status)
// },
// 'fail': _res => {
// wx.hideLoading()
// wx.showToast({
// title: '支付失败',
// icon: 'none',
// mask: true
// })
// }
// })
}
}
})
},
handelDetail(e) {
// const {detail} = e.currentTarget.dataset
const { id } = e.currentTarget.dataset
......@@ -128,7 +197,7 @@ wxService.page({
}
})
},
// 退款列表 /refund/buyer/history 滚动查询
// 退款列表 /refund/buyer/history 订单状态(C:取消;N:新建,A:已审核;R:退货已发R货;D:退货已收货)
getRefundList(pageNo, pageSize) {
wx.showLoading({
title: '加载中',
......
......@@ -62,10 +62,10 @@
</view>
<view class="btn-group">
<view class="order-status" wx-if="{{item.status == 'C'}}">
<button class="btn btn-sm btn-default" data-id="{{item.id}}">删除订单</button>
<button class="btn btn-sm btn-default" data-id="{{item.id}}" bindtap="handelDelOrder">删除订单</button>
</view>
<view class="order-status" wx-if="{{item.status == 'N'}}">
<button class="btn btn-sm btn-primary btn-outline" data-id="{{item.id}}">立即支付</button>
<button class="btn btn-sm btn-primary btn-outline" data-id="{{item.id}}" bindtap="handelToPay">立即支付</button>
</view>
<view class="order-status" wx-if="{{item.status == 'P'}}">
<button class="btn btn-sm btn-default" data-id="{{item.id}}">查看物流</button>
......
......@@ -61,7 +61,13 @@ wxService.page({
// 取消订单
handelCancelOrder() { console.log('取消订单') },
// 申请退款
handelRequestRefund() { console.log('申请退款') },
handelRequestRefund(e) {
const { id } = e.currentTarget.dataset
const { detail } = e.currentTarget.dataset
let params = JSON.stringify(detail)
// 退款申请
wxService.router(`/pages/refund/refund`).search({params})
},
// 确认收货
handelConfirmReceipt() { console.log('确认收货') },
copy(e) {
......
......@@ -99,21 +99,21 @@
</view>
<!-- 底部按钮 -->
<view class="button-wrap" wx-if="{{detail.status == 'C'}}">
<button class="btn btn-primary btn-lg" bindtap="handelDelOrder">删除订单</button>
<button class="btn btn-primary btn-lg" data-id="{{detail.id}}" bindtap="handelDelOrder">删除订单</button>
</view>
<view class="button-wrap" wx-if="{{detail.status == 'N'}}">
<button class="btn btn-primary btn-lg" bindtap="handelToPay">立即支付</button>
<button class="btn btn-lg btn-gray" bindtap="handelCancelOrder">取消订单</button>
<button class="btn btn-primary btn-lg" data-id="{{detail.id}}" bindtap="handelToPay">立即支付</button>
<button class="btn btn-lg btn-gray" data-id="{{detail.id}}" bindtap="handelCancelOrder">取消订单</button>
</view>
<view class="button-wrap" wx-if="{{detail.status == 'P'}}">
<button class="btn btn-lg btn-gray" bindtap="handelRequestRefund">申请退款</button>
<button class="btn btn-lg btn-gray" data-id="{{detail.id}}" data-detail="{{detail}}" bindtap="handelRequestRefund">申请退款</button>
</view>
<view class="button-wrap" wx-if="{{detail.status == 'D'}}">
<button class="btn btn-primary btn-lg" bindtap="handelRequestRefund">申请退款</button>
<button class="btn btn-lg btn-gray" bindtap="handelCancelOrder">确认收货</button>
<button class="btn btn-primary btn-lg" data-id="{{detail.id}}" data-detail="{{detail}}" bindtap="handelRequestRefund">申请退款</button>
<button class="btn btn-lg btn-gray" data-id="{{detail.id}}" bindtap="handelCancelOrder">确认收货</button>
</view>
<view class="button-wrap" wx-if="{{detail.status == 'R'}}">
<button class="btn btn-lg btn-gray" bindtap="handelConfirmReceipt">申请退款</button>
<button class="btn btn-lg btn-gray" data-id="{{detail.id}}" data-detail="{{detail}}" bindtap="handelConfirmReceipt">申请退款</button>
</view>
</view>
......@@ -10,35 +10,227 @@ wxService.page({
* 页面的初始数据
*/
data: {
cartList: [
{
imgUrl: '',
name: '1111',
sku: '1',
price: '¥456',
shows: '',
},
{
imgUrl: '',
name: '222',
sku: '2',
price: '¥222',
shows: ''
imageDomain: '',
refundCreateDto: {
reason: "", // 原因
skuList: [],
tradeId: 0
},
tempFilePaths: [], // 照片
refundMark: '',
cartList: [],
curType: { // 当前选择原因
value: 0,
name: '请选择'
},
resonType: [{ // 所有退货原因
value: 0,
name: '请选择'
}, {
value: 1,
name: '质量问题'
}, {
value: 2,
name: '大小尺码问题'
}, {
value: 3,
name: '不想要了'
}, {
value: 4,
name: '卖家发错漏发'
}, {
value: 5,
name: '拍错商品'
}, {
value: 6,
name: '商品实物与描述不同'
}],
refundAmount: 0,
checkedColor: 'rgb(203, 60, 60)',
pics:[]
},
submitRefund() {
if (this.data.curType.value == 0) {
wx.showToast({
title: '请选择退款原因',
icon: 'none'
})
return false
}
var selectGoods = this.data.cartList.filter(item => item.checked)
if (selectGoods.length == 0) {
wx.showToast({
title: '请选择退款商品',
icon: 'none'
})
return false
}
console.log('selectGoods', selectGoods)
var refundCreateDto = this.data.refundCreateDto
// refundCreateDto.reason = this.data.curType.value // 退款原因
refundCreateDto.reason = this.data.curType.name // 退款原因
refundCreateDto.skuList = selectGoods.map(function (item) {
return {
amount: item.amount,
count: item.count,
skuId: item.skuId
}
})
console.log('refundCreateDto', refundCreateDto)
this.handelRequestRefund(refundCreateDto)
},
handelRequestRefund(params) {
wx.showLoading({
title: '加载中',
mask: true
})
wxService.post('/sale/refund/buyer/create', params).then(res => {
if (res) {
const { result, data } = res.data
if (result == 0) {
wx.hideLoading()
}
}
],
reasonList:[
{
id:'0',
name:'111'
})
},
chooseImage: function (event) { // 选择图片
// wx.chooseImage({
// count: 1,
// success: res => {
// var tempFilePaths = res.tempFilePaths
// wx.uploadFile({
// url: app.globalData.ctx + 'returnOrder/uploadReturnGoodsImg',
// filePath: tempFilePaths[0],
// header: { token: wx.getStorageSync('token') },
// name: 'file',
// success: res_ => {
// this.setData({
// imageDomain: JSON.parse(res_.data).data.imageDomain,
// tempFilePaths: this.data.tempFilePaths.concat(JSON.parse(res_.data).data.imageDomain + JSON.parse(res_.data).data.imgPath)
// })
// }
// })
// }
// })
let that = this;
let tempFilePaths = this.data.tempFilePaths;
wx.chooseImage({
count: 5 - tempFilePaths.length, // 最多可以选择的图片5张,
sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
success: function (res) {
var imgsrc = res.tempFilePaths;
tempFilePaths = tempFilePaths.concat(imgsrc);
that.setData({
tempFilePaths: tempFilePaths
});
console.log(that.data.tempFilePaths)
// that.moreImgUpload({
// url: 'https://........',//这里是你图片上传的接口
// path: that.data.pics//这里是选取的图片的地址数组
// });
},
{
id: '2',
name: '222'
fail: function () {
// fail
},
complete: function () {
// complete
}
],
reasonIndex:'0'
})
},
checkPro(e) {
var index = e.currentTarget.dataset.index
const { cartList } = this.data
console.log('index', index, cartList[index].checked)
if (cartList[index].checked) {
cartList[index].checked = false
} else {
cartList[index].checked = true
}
this.setData({
cartList
})
},
changeRemark(event) { // 备注
this.setData({
refundMark: event.detail.value
})
},
selectType: function (event) { // 选择退货类型
this.setData({
curType: this.data.resonType[event.detail.value]
})
},
minusNum: function (e) { // 减少数量
var cartList = this.data.cartList
var index = e.currentTarget.dataset.index
let proNum = cartList[index].count
console.log('减少数量', proNum)
if (proNum > 1) {
proNum--
} else {
wx.showToast({
title: '数量不能为0',
icon: 'none'
})
return false
}
cartList[index].count = proNum
this.setData({
cartList: cartList
}, ()=> {
// this.getReturnPrice()
// this.editOk(cartList[e]) //调用完成
})
},
addNum: function (e) { // 增加数量
var index = e.currentTarget.dataset.index
var cartList = this.data.cartList
var proNum = cartList[index].count
console.log('增加数量',proNum)
proNum++
cartList[index].count = proNum
this.setData({
cartList: cartList
}, () => {
})
},
inputNum: function (e) { // 输入数量
var newNum = e.detail.value
var order = this.data.cartList
var index = e.currentTarget.dataset.index
var refundNum = order[index].count
console.log('inputNum', index, newNum, refundNum)
if (newNum === '' || newNum === '0') {
newNum = 1
} else {
newNum = parseInt(newNum)
if (newNum > refundNum) {
newNum = refundNum
}
}
order[index].count = refundNum
this.setData({
order: order
}, () => {
// this.getReturnPrice()
})
},
/**
* 生命周期函数--监听页面加载
*/
......@@ -57,7 +249,17 @@ wxService.page({
* 生命周期函数--监听页面显示
*/
onShow: function () {
const { params } = this.options
let detail = JSON.parse(params)
console.log('detail', detail)
// item.checked
detail.skuVOList.forEach(item => {
item.checked = false
})
this.setData({
cartList: detail.skuVOList,
refundAmount: detail.payAmount
})
},
/**
......
{
"navigationBarTitleText": "退款/售后",
"usingComponents": {
"upload-img": "/component/uploadImg/uploadImg"
"upload-img": "/component/uploadImg/uploadImg",
"scroll-del": "/component/scrollDel/scrollDel"
}
}
\ No newline at end of file
<!--pages/refund/refund.wxml-->
<view class="page-refund">
<view class="select-pro">选择商品</view>
<view class="cart-content">
<view class="cart-item" wx:for="{{cartList}}" wx:key="{{index}}">
<view class="cart-list" bindtouchstart="touchS" bindtouchmove="touchM" bindtouchend="touchE" style="{{item.shows}}" data-index="{{index}}">
<view class="select-radio" catchtap="selectPro" data-index="{{index}}">
<view class="{{item.isSelect ? 'theme-color' : ''}} circle-radio" >
<image wx:if="{{item.isSelect}}" class="tick-success" src="/assets/imgs/7_1_0/tick-success.png" mode="widthFix"></image>
</view>
</view>
<view class="pro-info">
<image class="pro-img" src="/assets/imgs/7_1_0/icon.png" mode="widthFix"></image>
<view class="pro-right-info">
<view class="pro-name">{{item.name}}</view>
<view class="pro-sku">{{item.sku}}</view>
<view class="pro-price">
<view class="price">{{item.price}}</view>
<view class="pro-num-edit">
<button class="redus-num" data-index="{{j}}" catchtap="minusNum">-</button>
<input class="pro-num-edit-input" type="number" data-index="{{j}}" catchtap bindblur="blurNum" bindinput="inputNum" value="{{product.quantity}}"></input>
<button class="add-num" data-index="{{j}}" catchtap="addNum">+</button>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="select-pro">选择商品</view>
<view class="cart-content">
<view class="cart-item" wx:for="{{cartList}}" wx:key="{{index}}">
<view class="cart-list" style="{{item.shows}}" data-index="{{index}}">
<view class="select-radio" catchtap="selectPro" data-index="{{index}}">
<icon
size="16"
type="{{item.checked ? 'success' : 'circle'}}"
color="{{checkedColor}}"
data-index="{{index}}"
catchtap="checkPro"
/>
</view>
<view class="pro-info">
<image class="pro-img" src="/assets/imgs/7_1_0/icon.png" mode="widthFix" />
<view class="pro-right-info">
<view class="pro-name">{{item.name}}</view>
<view class="pro-sku">{{item.sku}}</view>
<view class="pro-price">
<view class="price">¥ {{item.price}}</view>
<view class="pro-num-edit">
<button class="redus-num" data-index="{{index}}" catchtap="minusNum">-</button>
<input
class="pro-num-edit-input"
type="number"
data-index="{{index}}"
bindinput="inputNum"
value="{{item.count}}"
/>
<button class="add-num" data-index="{{index}}" catchtap="addNum">+</button>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="refund-info">
<view class="form">
<view class="form-label">退款原因</view>
<view class="form-picker">
<picker bindchange="bindSelectRefundReason" value="{{reasonIndex}}" range="{{reasonList}}" range-key="name" class="reason-picker">
<view class="picker">
当前选择:{{reasonList[reasonIndex].name}}
</view>
</picker>
</view>
</view>
<view class="form">
<view class="form-label">退款金额</view>
<view class="form-picker">
<text class="refund-price">¥398</text>
</view>
</view>
<view class="form">
<view class="form-label block-label">申请说明</view>
<view class="form-input">
<input type="textarea" class="desc" placeholder="请您详细填写退款说明(最多200字)" maxlength="200"></input>
</view>
</view>
<view class="form">
<view class="form-label">上传凭证 <text class="img-number">最多5张</text></view>
<view class="form-input">
<upload-img />
</view>
</view>
</view>
<view class="submit">
<button class="btn btn-primary btn-lg">提交申请</button>
</view>
<view class="refund-info">
<view class="form">
<view class="form-label">退款原因</view>
<view class="form-picker">
<picker
mode="selector"
bindchange="selectType"
range="{{resonType}}"
range-key="name"
class="reason-picker"
>
{{curType.name}}
</picker>
</view>
</view>
<view class="form">
<view class="form-label">退款金额</view>
<view class="form-picker">
<text class="refund-price">¥{{refundAmount}}</text>
</view>
</view>
<view class="form">
<view class="form-label block-label">申请说明</view>
<view class="form-input">
<input
type="textarea"
class="desc"
placeholder="请您详细填写退款说明(最多200字)"
maxlength="200"
bindblur="changeRemark"
/>
</view>
</view>
<view class="form">
<view class="form-label">上传凭证
<text class="img-number">最多5张</text>
</view>
<view class="form-input">
<upload-img/>
</view>
</view>
</view>
<view class="submit">
<button class="btn btn-primary btn-lg" bindtap="submitRefund">提交申请</button>
</view>
</view>
......@@ -148,4 +148,18 @@ page{
position: fixed;
bottom: 0;
left: 0;
}
\ No newline at end of file
}
.refund-info {
margin-top: 20rpx; }
.refund-head {
background: #fcfcfc;
border-bottom: 2rpx solid #f5f5f5;
color: #616161;
padding: 0 20rpx;
line-height: 80rpx; }
.refund-content {
background: #ffffff;
padding: 20rpx; }
......@@ -39,7 +39,7 @@
"list": []
},
"miniprogram": {
"current": -1,
"current": 24,
"list": [
{
"id": -1,
......@@ -196,17 +196,17 @@
"scene": null
},
{
"id": -1,
"name": "退款",
"id": 24,
"name": "退款申请",
"pathName": "pages/refund/refund",
"query": "",
"query": "params={\"id\":\"614116644096184320\",\"memberId\":\"598887367880871936\",\"status\":\"P\",\"skuVOList\":[{\"productId\":\"1556108606443006\",\"productCode\":\"test001\",\"productName\":\"test001\",\"skuId\":\"1556108807316001\",\"skuCode\":\"test001-4\",\"skuSpec\":\"颜色:白,尺寸:xl\",\"count\":1,\"price\":0.03,\"discount\":0,\"mainImgUrl\":\"http://testimg3.bigaka.com/group3/M00/00/17/Cv6CBF1Z9TKAU6T1AAAG8CvHO2o415.png\",\"amount\":0.03}],\"createTime\":\"2019-08-22 15:20:17\",\"payTime\":\"2019-08-22 15:20:42\",\"discount\":0,\"freightMoney\":0,\"payAmount\":0.03,\"skuCount\":1}",
"scene": null
},
{
"id": 25,
"name": "订单详情",
"pathName": "pages/orderDetail/orderDetail",
"query": "id=613402110104571904",
"query": "id=614116644096184320",
"scene": null
},
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment