细节修改

version/0412
fanfan 1 year ago
parent 06ab086b9b
commit 455ad609ea
  1. 2
      api/newFun.js
  2. 6
      pages/news3/addressList.vue
  3. 5
      pages/news3/shopOrder.vue
  4. 2
      pages/news3/shopOrderDetails.vue
  5. 22
      pages/order/detail.vue
  6. 73
      pages/order/index.vue
  7. 581
      pages/refund/index.vue

@ -178,7 +178,7 @@ export const updateAddress = (param) => {
} }
//店长 查地址 //店长 查地址
export const addressList = (param) => { export const addressList = (param) => {
return request.post('Address/list', param) return request.post('store/getAddressList', param)
} }
// 店长同意拒绝 // 店长同意拒绝
export const audit = (param) => { export const audit = (param) => {

@ -62,9 +62,9 @@
user_id: userInfo.user_id user_id: userInfo.user_id
}) })
.then(result => { .then(result => {
this.addressData = result.data.list[0] this.addressData = result.data.data[0]
that.addIndex = result.data.list[0].address_id that.addIndex = result.data.data[0].address_id
that.addList = result.data.list that.addList = result.data.data
}) })
.catch(reject) .catch(reject)
}) })

@ -154,7 +154,7 @@
<view class="tuiAdderss" v-if="audit_status==10"> <view class="tuiAdderss" v-if="audit_status==10">
<text>退货地址:</text> <text>退货地址:</text>
<view class="" @click="goJump('/pages/news3/addressList','',0)"><text <view class="" @click="goJump('/pages/news3/addressList','',0)"><text
:style="{'color': addressData?'#303030':'#EAEAEA'}"></text> :style="{'color': addressData?'#303030':'#ABABAB'}"></text>
{{addressData?addressData.name+addressData.phone:'请选择退货地址'}} {{addressData?addressData.name+addressData.phone:'请选择退货地址'}}
<u-icon name="arrow-right" color="#979797" size="28"></u-icon> <u-icon name="arrow-right" color="#979797" size="28"></u-icon>
</view> </view>
@ -166,7 +166,6 @@
<u-input v-model="refund_notes" placeholder="请输入您的留言" type="textarea" :auto-height="true" /> <u-input v-model="refund_notes" placeholder="请输入您的留言" type="textarea" :auto-height="true" />
</view> </view>
</view> </view>
<!-- :style="{'opacity': refund_image_id?1:0.6 }" -->
<view class="submit" @click="submitRefund()"> <view class="submit" @click="submitRefund()">
确定 确定
</view> </view>
@ -442,7 +441,7 @@
data data
} = await newFunApi.audit(params); } = await newFunApi.audit(params);
if (status == 200) { if (status == 200) {
that.$toast(message) this.$toast(message)
this.afterSale = false this.afterSale = false
this.pageNum = 1 this.pageNum = 1
this.goodShopsList = []; this.goodShopsList = [];

@ -196,7 +196,7 @@
<view class="filterItem c"> <view class="filterItem c">
<view class="tuiAdderss" v-if="audit_status==10"> <view class="tuiAdderss" v-if="audit_status==10">
<text>退货地址:</text> <text>退货地址:</text>
<view class="" @click="goJump('/pages/news3/addressList','',0)"><text :style="{'color': addressData?'#303030':'#EAEAEA'}"></text> <view class="" @click="goJump('/pages/news3/addressList','',0)"><text :style="{'color': addressData?'#303030':'#ABABAB'}"></text>
{{addressData?addressData.name+addressData.phone:'请选择退货地址'}} {{addressData?addressData.name+addressData.phone:'请选择退货地址'}}
<u-icon name="arrow-right" color="#979797" size="28"></u-icon> <u-icon name="arrow-right" color="#979797" size="28"></u-icon>
</view> </view>

@ -58,7 +58,7 @@
核销码 核销码
</view> </view>
<view class="codeNum" @click="onQrcodeImage"> <view class="codeNum" @click="onQrcodeImage">
<image :src="qrcodeImage" mode=""></image> <image :src="qrcodeImage" mode=""></image>
</view> </view>
<view class="openCode"> <view class="openCode">
点击放大核销码 点击放大核销码
@ -239,7 +239,7 @@
{{order.ziti_time}} {{order.ziti_time}}
</view> </view>
</view> </view>
<view class="orderTitle" v-if="order.ziti_image"> <view class="orderTitle" v-if="order.ziti_image">
<view class="total"> <view class="total">
提货照片 提货照片
</view> </view>
@ -297,7 +297,7 @@
v-if="order.pay_status == PayStatusEnum.SUCCESS.value && order.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value"> v-if="order.pay_status == PayStatusEnum.SUCCESS.value && order.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value">
催发货 催发货
</view> </view>
<!-- <view class="buyAgain" @click="onCancel(order.order_id)" <!-- <view class="buyAgain" @click="onCancel(order.order_id)"
v-if="order.order_status == OrderStatusEnum.NORMAL.value && order.pay_status == PayStatusEnum.SUCCESS.value && order.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value"> v-if="order.order_status == OrderStatusEnum.NORMAL.value && order.pay_status == PayStatusEnum.SUCCESS.value && order.delivery_status == DeliveryStatusEnum.NOT_DELIVERED.value">
取消订单 取消订单
</view> --> </view> -->
@ -456,7 +456,9 @@
app.isLoading = true app.isLoading = true
OrderApi.detail(app.orderId) OrderApi.detail(app.orderId)
.then(result => { .then(result => {
app.onExtractQRCode(result.data.order.order_id) if (result.data.order.delivery_type == 20) {
app.onExtractQRCode(result.data.order.order_id)
}
app.order = result.data.order app.order = result.data.order
app.setting = result.data.setting app.setting = result.data.setting
app.isLoading = false app.isLoading = false
@ -583,7 +585,7 @@
app.qrcodeImage = result.data.qrcode app.qrcodeImage = result.data.qrcode
}) })
}, },
onQrcodeImage(){ onQrcodeImage() {
this.showQRCodePopup = true this.showQRCodePopup = true
}, },
// 退 // 退
@ -613,12 +615,14 @@
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
page{ page {
height: 100%; height: 100%;
} }
::v-deep .qrcode-popup{
::v-deep .qrcode-popup {
padding: 44rpx 80rpx !important; padding: 44rpx 80rpx !important;
} }
.detail { .detail {
width: 750rpx; width: 750rpx;
padding-bottom: 150rpx; padding-bottom: 150rpx;
@ -1377,6 +1381,7 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
margin-top: 30rpx; margin-top: 30rpx;
.codeImg { .codeImg {
width: 394rpx; width: 394rpx;
height: 458rpx; height: 458rpx;
@ -1427,7 +1432,8 @@
font-size: 24rpx; font-size: 24rpx;
font-weight: 500; font-weight: 500;
color: #1E1E1E; color: #1E1E1E;
padding: 15rpx 0; padding: 15rpx 0;
text { text {
font-size: 36rpx; font-size: 36rpx;
} }

@ -7,9 +7,18 @@
</view> </view>
</view> </view>
<!-- tab栏 --> <!-- tab栏 -->
<u-tabs :list="tabs" bg-color="#fafafa" :is-scroll="true" height="120" font-size="32" :current="current" <view class="container">
<view class="classify-list">
<view class="list" v-for="(item,index) in tabs" :class="{'action':current==index}"
@click="onChangeTab(item,index)" :key="index">
<text>{{item.name}}</text>
<text class="line" v-show="current==index"></text>
</view>
</view>
</view>
<!-- <u-tabs :list="tabs" bg-color="#fafafa" :is-scroll="true" height="120" font-size="32" :current="current"
bar-width="56" bar-height="6" active-color="#3B3B3B" :show-bar='true' :duration="0.2" bar-width="56" bar-height="6" active-color="#3B3B3B" :show-bar='true' :duration="0.2"
@change="onChangeTab" /> @change="onChangeTab" /> -->
<!-- 订单列表 --> <!-- 订单列表 -->
<view class="order-list"> <view class="order-list">
<view class="item" v-for="(item,index) in list" v-if="list.length>0"> <view class="item" v-for="(item,index) in list" v-if="list.length>0">
@ -257,6 +266,7 @@
app.getOrderList() app.getOrderList()
}, },
changeMenu(index) { changeMenu(index) {
let idList = []
this.list.forEach(item => { this.list.forEach(item => {
item.menushow = false; item.menushow = false;
idList.push(item.response.data.fileInfo.file_id) idList.push(item.response.data.fileInfo.file_id)
@ -272,7 +282,7 @@
if (options.dataType) { if (options.dataType) {
const index = app.tabs.findIndex(item => item.value == options.dataType) const index = app.tabs.findIndex(item => item.value == options.dataType)
app.current = index > -1 ? index : 0 app.current = index > -1 ? index : 0
console.log(app.current,'KKKKKKK') console.log(app.current, 'KKKKKKK')
} }
}, },
@ -305,7 +315,7 @@
}, },
// //
onChangeTab(index) { onChangeTab(item,index) {
const app = this const app = this
app.list = [] app.list = []
// //
@ -480,7 +490,61 @@
background-color: rgb(255, 98, 87) !important; background-color: rgb(255, 98, 87) !important;
} }
.container {
background-color: #fff;
}
.classify-list {
white-space: nowrap;
width: 100%;
height: 100rpx;
overflow-x: auto;
overflow-y: hidden;
.list {
position: relative;
display: inline-block;
width: 18%;
height: 100%;
line-height: 100rpx;
text-align: center;
text {
font-size: 28rpx;
color: #3B3B3B;
}
.line {
position: absolute;
left: 50%;
bottom: 10rpx;
// width: 60%;
// height: 8rpx;
background: linear-gradient(to right, #f8f893, #fe9d00);
// border-radius: 10rpx;
transform: translate(-50%, 0);
width: 60upx;
height: 8upx;
background: #FF6257;
border-radius: 29px 29px 29px 29px;
opacity: 1;
}
}
.action {
text {
font-size: 32rpx;
opacity: 1;
}
}
}
.order { .order {
.order-list{
margin-top: 20rpx;
}
.receive { .receive {
width: 100%; width: 100%;
background: #F8F8F8; background: #F8F8F8;
@ -856,6 +920,7 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
margin-top: 30rpx; margin-top: 30rpx;
.codeImg { .codeImg {
width: 394rpx; width: 394rpx;
height: 458rpx; height: 458rpx;

@ -1,263 +1,340 @@
<template> <template>
<view class="container" :style="appThemeStyle"> <view class="container" :style="appThemeStyle">
<mescroll-body ref="mescrollRef" :sticky="true" @init="mescrollInit" :down="{ native: true }" @down="downCallback" :up="upOption" <mescroll-body ref="mescrollRef" :sticky="true" @init="mescrollInit" :down="{ native: true }"
@up="upCallback"> @down="downCallback" :up="upOption" @up="upCallback">
<!-- tab栏 --> <!-- tab栏 -->
<u-tabs :list="tabs" :is-scroll="false" :current="curTab" :active-color="appTheme.mainBg" :duration="0.2" @change="onChangeTab" /> <!-- <u-tabs :list="tabs" :is-scroll="false" :current="curTab" :active-color="appTheme.mainBg" :duration="0.2"
@change="onChangeTab" /> -->
<!-- 退款/售后单 --> <view class="container">
<view class="widget-list"> <view class="classify-list">
<view class="widget-detail" v-if="list.data.length>0" v-for="(item, index) in list.data" :key="index"> <view class="list" v-for="(item,index) in tabs" :class="{'action':curTab==index}"
<view class="row-block dis-flex flex-y-center"> @click="onChangeTab(index)" :key="index">
<view class="flex-box">{{ item.create_time }}</view> <text>{{item.name}}</text>
<view class="flex-box t-r"> <text class="line" v-show="curTab==index"></text>
<text class="col-m">{{ item.state_text }}</text> </view>
</view> </view>
</view> </view>
<view class="detail-goods row-block dis-flex" @click.stop="handleTargetDetail(item.order_refund_id)"> <!-- 退款/售后单 -->
<view class="goods-image"> <view class="widget-list">
<image class="image" :src="item.orderGoods.goods_image" mode="aspectFit"></image> <view class="widget-detail" v-if="list.data.length>0" v-for="(item, index) in list.data" :key="index">
</view> <view class="row-block dis-flex flex-y-center">
<view class="goods-right flex-box"> <view class="flex-box">{{ item.create_time }}</view>
<view class="goods-name"> <view class="flex-box t-r">
<text class="twoline-hide">{{ item.orderGoods.goods_name }}</text> <text class="col-m">{{ item.state_text }}</text>
</view> </view>
<view class="goods-props clearfix"> </view>
<view class="goods-props-item" v-for="(props, idx) in item.orderGoods.goods_props" :key="idx"> <view class="detail-goods row-block dis-flex"
<text>{{ props.value.name }}</text> @click.stop="handleTargetDetail(item.order_refund_id)">
</view> <view class="goods-image">
</view> <image class="image" :src="item.orderGoods.goods_image" mode="aspectFit"></image>
<view class="goods-num t-r"> </view>
<text class="f-26 col-8">×{{ item.orderGoods.total_num }}</text> <view class="goods-right flex-box">
</view> <view class="goods-name">
</view> <text class="twoline-hide">{{ item.orderGoods.goods_name }}</text>
</view> </view>
<view class="detail-order row-block"> <view class="goods-props clearfix">
<view class="item dis-flex flex-x-end flex-y-center"> <view class="goods-props-item" v-for="(props, idx) in item.orderGoods.goods_props"
<text class="">付款金额</text> :key="idx">
<text class="col-m">{{ item.orderGoods.total_pay_price }}</text> <text>{{ props.value.name }}</text>
</view> </view>
</view> </view>
<view class="detail-operate row-block dis-flex flex-x-end flex-y-center"> <view class="goods-num t-r">
<view class="detail-btn btn-detail" @click.stop="handleTargetDetail(item.order_refund_id)">查看详情</view> <text class="f-26 col-8">×{{ item.orderGoods.total_num }}</text>
</view> </view>
</view> </view>
<u-empty text="暂无数据显示哦~" v-else mode="list"></u-empty> </view>
</view> <view class="detail-order row-block">
<view class="item dis-flex flex-x-end flex-y-center">
</mescroll-body> <text class="">付款金额</text>
<text class="col-m">{{ item.orderGoods.total_pay_price }}</text>
</view> </view>
</view>
<view class="detail-operate row-block dis-flex flex-x-end flex-y-center">
<view class="detail-btn btn-detail" @click.stop="handleTargetDetail(item.order_refund_id)">查看详情
</view>
</view>
</view>
<u-empty text="暂无数据显示哦~" v-else mode="list"></u-empty>
</view>
</mescroll-body>
</view>
</template> </template>
<script> <script>
import MescrollMixin from '@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins' import MescrollMixin from '@/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-mixins'
import { getEmptyPaginateObj, getMoreListData } from '@/core/app' import {
import * as RefundApi from '@/api/refund' getEmptyPaginateObj,
getMoreListData
// } from '@/core/app'
const pageSize = 15 import * as RefundApi from '@/api/refund'
// tab //
const tabs = [{ const pageSize = 15
name: '全部',
value: -1 // tab
}, { const tabs = [{
name: '待处理', name: '全部',
value: 0 value: -1
}] }, {
name: '待处理',
export default { value: 0
mixins: [MescrollMixin], }]
data() {
return { export default {
// mixins: [MescrollMixin],
list: getEmptyPaginateObj(), data() {
// tabs return {
tabs, //
// list: getEmptyPaginateObj(),
curTab: 0, // tabs
// tabs,
upOption: { //
// curTab: 0,
auto: true, //
// ; 10 upOption: {
page: { size: pageSize }, //
// 2 auto: true,
noMoreSize: 2, // ; 10
// page: {
empty: { size: pageSize
tip: '亲,暂无售后单记录' },
} // 2
}, noMoreSize: 2,
// onShow //
canReset: false, empty: {
} tip: '亲,暂无售后单记录'
}, }
},
/** // onShow
* 生命周期函数--监听页面加载 canReset: false,
*/ }
onLoad(options) { },
onUnload() {
}, uni.switchTab({
url: '/pages/user/index' // targetTab tab
/** })
* 生命周期函数--监听页面显示 },
*/ /**
onShow() { * 生命周期函数--监听页面加载
this.canReset && this.onRefreshList() */
this.canReset = true onLoad(options) {
},
},
methods: {
/**
/** * 生命周期函数--监听页面显示
* 上拉加载的回调 (页面初始化时也会执行一次) */
* 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10 onShow() {
* @param {Object} page this.canReset && this.onRefreshList()
*/ this.canReset = true
upCallback(page) { },
const app = this
// methods: {
app.getRefundList(page.num)
.then(list => { /**
const curPageLen = list.data.length * 上拉加载的回调 (页面初始化时也会执行一次)
const totalSize = list.data.total * 其中page.num:当前页 从1开始, page.size:每页数据条数,默认10
app.mescroll.endBySize(curPageLen, totalSize) * @param {Object} page
}) */
.catch(() => app.mescroll.endErr()) upCallback(page) {
}, const app = this
//
// 退/ app.getRefundList(page.num)
getRefundList(pageNo = 1) { .then(list => {
const app = this const curPageLen = list.data.length
return new Promise((resolve, reject) => { const totalSize = list.data.total
RefundApi.list({ state: app.getTabValue(), page: pageNo }, { load: false }) app.mescroll.endBySize(curPageLen, totalSize)
.then(result => { })
// .catch(() => app.mescroll.endErr())
const newList = result.data.list },
app.list.data = getMoreListData(newList, app.list, pageNo)
resolve(newList) // 退/
}) getRefundList(pageNo = 1) {
}) const app = this
}, return new Promise((resolve, reject) => {
RefundApi.list({
// state: app.getTabValue(),
onChangeTab(index) { page: pageNo
const app = this }, {
// load: false
app.curTab = index })
// .then(result => {
app.onRefreshList() //
}, const newList = result.data.list
app.list.data = getMoreListData(newList, app.list, pageNo)
// resolve(newList)
onRefreshList() { })
this.list = getEmptyPaginateObj() })
setTimeout(() => { },
this.mescroll.resetUpScroll()
}, 120) //
}, onChangeTab(index) {
console.log(index)
// const app = this
getTabValue() { //
return this.tabs[this.curTab].value app.curTab = index
}, //
app.onRefreshList()
// },
handleTargetDetail(orderRefundId) {
this.$navTo('pages/refund/detail', { orderRefundId }) //
}, onRefreshList() {
this.list = getEmptyPaginateObj()
} setTimeout(() => {
} this.mescroll.resetUpScroll()
}, 120)
},
//
getTabValue() {
return this.tabs[this.curTab].value
},
//
handleTargetDetail(orderRefundId) {
this.$navTo('pages/refund/detail', {
orderRefundId
})
},
}
}
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .u-empty { ::v-deep .u-empty {
padding: 100rpx 0; padding: 100rpx 0;
} }
.widget-detail {
box-sizing: border-box; .classify-list {
background: #fff; white-space: nowrap;
margin: 20rpx 20rpx 0 20rpx; width: 100%;
border-radius: 24rpx; height: 100rpx;
overflow-x: auto;
.row-block { overflow-y: hidden;
padding: 0 20rpx;
min-height: 70rpx; .list {
} position: relative;
display: inline-block;
.detail-goods { width: 50%;
padding: 20rpx; height: 100%;
line-height: 100rpx;
.goods-image { text-align: center;
margin-right: 20rpx;
text {
.image { font-size: 28rpx;
display: block; color: #3B3B3B;
width: 200rpx;
height: 200rpx; }
}
} .line {
position: absolute;
.goods-right { left: 50%;
padding: 15rpx 0; bottom: 10rpx;
} // width: 60%;
// height: 8rpx;
.goods-name { background: linear-gradient(to right, #f8f893, #fe9d00);
margin-bottom: 10rpx; // border-radius: 10rpx;
} transform: translate(-50%, 0);
width: 60upx;
.goods-props { height: 8upx;
margin-top: 14rpx; background: #FF6257;
height: 40rpx; border-radius: 29px 29px 29px 29px;
color: #ababab; opacity: 1;
font-size: 24rpx; }
overflow: hidden; }
.goods-props-item { .action {
display: inline-block; text {
margin-right: 14rpx; font-size: 32rpx;
padding: 4rpx 16rpx; opacity: 1;
border-radius: 12rpx; }
background-color: #F5F5F5; }
width: auto; }
}
} .widget-detail {
box-sizing: border-box;
} background: #fff;
margin: 20rpx 20rpx 0 20rpx;
.detail-operate { border-radius: 24rpx;
padding-bottom: 20rpx;
.row-block {
.detail-btn { padding: 0 20rpx;
border-radius: 4px; min-height: 70rpx;
border: 1rpx solid #ccc; }
padding: 8rpx 20rpx;
font-size: 28rpx; .detail-goods {
color: #555; padding: 20rpx;
margin-left: 10rpx;
} .goods-image {
} margin-right: 20rpx;
.detail-order { .image {
padding: 10rpx 20rpx; display: block;
font-size: 28rpx; width: 200rpx;
height: 50rpx; height: 200rpx;
display: flex; }
align-items: center; }
.item { .goods-right {
margin-bottom: 10rpx; padding: 15rpx 0;
}
&:last-child {
margin-bottom: 0; .goods-name {
} margin-bottom: 10rpx;
} }
}
}
.goods-props {
margin-top: 14rpx;
height: 40rpx;
color: #ababab;
font-size: 24rpx;
overflow: hidden;
.goods-props-item {
display: inline-block;
margin-right: 14rpx;
padding: 4rpx 16rpx;
border-radius: 12rpx;
background-color: #F5F5F5;
width: auto;
}
}
}
.detail-operate {
padding-bottom: 20rpx;
.detail-btn {
border-radius: 4px;
border: 1rpx solid #ccc;
padding: 8rpx 20rpx;
font-size: 28rpx;
color: #555;
margin-left: 10rpx;
}
}
.detail-order {
padding: 10rpx 20rpx;
font-size: 28rpx;
height: 50rpx;
display: flex;
align-items: center;
.item {
margin-bottom: 10rpx;
&:last-child {
margin-bottom: 0;
}
}
}
}
</style> </style>

Loading…
Cancel
Save