更新代码
@@ -54,11 +54,109 @@ const companiesCode = () => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 退货单列表
|
||||||
|
const storeReturn = (state) => {
|
||||||
|
return request({
|
||||||
|
url: 'manages/refunds',
|
||||||
|
data: {
|
||||||
|
state
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 退货单详情
|
||||||
|
const orderDetails = (refund_id) => {
|
||||||
|
return request({
|
||||||
|
url: 'manages/refunds/' + refund_id
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 退货单-操作日志
|
||||||
|
const orderJournal = (refund_id) => {
|
||||||
|
return request({
|
||||||
|
url: 'mall/refunds/' + refund_id + '/logs'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 退货单签收
|
||||||
|
const storeSign = (refund_id) => {
|
||||||
|
return request({
|
||||||
|
url: 'manages/refunds/' + refund_id + '/sign'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 退货单-退货
|
||||||
|
const storeToken = (refund_id) => {
|
||||||
|
return request({
|
||||||
|
url: 'manages/refunds/' + refund_id + '/retoken'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 退货单-审核
|
||||||
|
const storeAudit = (refund_id, data) => {
|
||||||
|
return request({
|
||||||
|
url: 'manages/refunds/' + refund_id + '/audit',
|
||||||
|
method: 'POST',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提货单列表
|
||||||
|
const storeDeliver = (state) => {
|
||||||
|
return request({
|
||||||
|
url: 'manages/shipments',
|
||||||
|
data: {
|
||||||
|
state
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提货单详情
|
||||||
|
const deliverDetails = (shipment__no) => {
|
||||||
|
return request({
|
||||||
|
url: 'manages/shipments/' + shipment__no
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提货单发货前置
|
||||||
|
const deliverFront = (shipment__no) => {
|
||||||
|
return request({
|
||||||
|
url: 'manages/shipments/' + shipment__no + '/deliver'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提货单发货
|
||||||
|
const deliverForm = (shipment__no, data) => {
|
||||||
|
return request({
|
||||||
|
url: 'manages/shipments/' + shipment__no + '/deliver',
|
||||||
|
method: 'POST',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 提货单物流
|
||||||
|
const deliverLogistic = (shipment__no) => {
|
||||||
|
return request({
|
||||||
|
url: 'manages/shipments/' + shipment__no + '/logistic'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export {
|
export {
|
||||||
index,
|
index,
|
||||||
customer,
|
customer,
|
||||||
visitors,
|
visitors,
|
||||||
basicsConfig,
|
basicsConfig,
|
||||||
basicsInfo,
|
basicsInfo,
|
||||||
companiesCode
|
companiesCode,
|
||||||
|
storeReturn,
|
||||||
|
orderDetails,
|
||||||
|
orderJournal,
|
||||||
|
storeSign,
|
||||||
|
storeToken,
|
||||||
|
storeAudit,
|
||||||
|
storeDeliver,
|
||||||
|
deliverDetails,
|
||||||
|
deliverFront,
|
||||||
|
deliverForm,
|
||||||
|
deliverLogistic
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,10 +27,16 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="member-cont">
|
<view class="member-cont">
|
||||||
<view class="member-tips">
|
<view class="member-tips">
|
||||||
<view class="member-tips-title">会员升级/续费</view>
|
<view class="member-tips-title" v-if="wordData.grade == 1">会员升级/续费</view>
|
||||||
<view class="member-tips-time">有效期:2022年10月1日</view>
|
<view class="member-tips-title" v-else-if="wordData.grade == 2">续费</view>
|
||||||
|
<view class="member-tips-title" v-else>企业会员</view>
|
||||||
|
<view class="member-tips-time">有效期:{{wordData.identity}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="member-btn" @click="$Router.push({name: 'Vip'})">
|
<view class="member-btn" v-if="wordData.grade == 3">
|
||||||
|
<image class="member-btn-icon" src="../../static/icons/store_icon_vip.png" mode="aspectFill"></image>
|
||||||
|
<view class="member-btn-name">已满级</view>
|
||||||
|
</view>
|
||||||
|
<view class="member-btn" @click="$Router.push({name: 'Vip'})" v-else>
|
||||||
<image class="member-btn-icon" src="../../static/icons/store_icon_vip.png" mode="aspectFill"></image>
|
<image class="member-btn-icon" src="../../static/icons/store_icon_vip.png" mode="aspectFill"></image>
|
||||||
<view class="member-btn-name">去升级</view>
|
<view class="member-btn-name">去升级</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -65,12 +71,12 @@
|
|||||||
<view class="number">{{wordData.middle.sale || 0}}</view>
|
<view class="number">{{wordData.middle.sale || 0}}</view>
|
||||||
<view class="text">在售权证</view>
|
<view class="text">在售权证</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="general-item">
|
<view class="general-item" @click="$Router.push({name: 'Return'})">
|
||||||
<view class="number">{{wordData.top.barter_total || 0}}</view>
|
<view class="number">{{wordData.order.deliver || 0}}</view>
|
||||||
<view class="text">退货单处理</view>
|
<view class="text">退货单处理</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="general-item">
|
<view class="general-item" @click="$Router.push({name: 'Deliver'})">
|
||||||
<view class="number">{{wordData.top.barter_total || 0}}</view>
|
<view class="number">{{wordData.order.refund || 0}}</view>
|
||||||
<view class="text">发货单处理</view>
|
<view class="text">发货单处理</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -132,7 +138,7 @@
|
|||||||
<image class="icon" src="@/static/icons/tool_icon_05.png" mode="aspectFill"></image>
|
<image class="icon" src="@/static/icons/tool_icon_05.png" mode="aspectFill"></image>
|
||||||
<view class="title">智能名片</view>
|
<view class="title">智能名片</view>
|
||||||
</view> -->
|
</view> -->
|
||||||
<view class="store-item">
|
<view class="store-item" @click="$Router.push({name: 'Spread'})">
|
||||||
<image class="icon" src="@/static/icons/tool_icon_06.png" mode="aspectFill"></image>
|
<image class="icon" src="@/static/icons/tool_icon_06.png" mode="aspectFill"></image>
|
||||||
<view class="title">营销推广码</view>
|
<view class="title">营销推广码</view>
|
||||||
</view>
|
</view>
|
||||||
@@ -162,7 +168,16 @@
|
|||||||
order : {}
|
order : {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
identityData:{
|
||||||
|
type: Object,
|
||||||
|
default: () => {
|
||||||
|
return {
|
||||||
|
time : {},
|
||||||
|
grade : {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
252
components/store-order-details/store-order-details.vue
Normal file
@@ -0,0 +1,252 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<view class="OrderInfo">
|
||||||
|
<!-- 订单状态 -->
|
||||||
|
<view class="order-status">
|
||||||
|
<block v-if="listType == 'deliver'">
|
||||||
|
<view class="info">
|
||||||
|
{{info.state_text}}
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<block v-else>
|
||||||
|
<view class="info" v-if="info.state">
|
||||||
|
{{info.state.text}}
|
||||||
|
<span>{{info.state.remark}}</span>
|
||||||
|
</view>
|
||||||
|
</block>
|
||||||
|
<image src="../../static/icons/fire.png" mode="widthFix"></image>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 订单信息 -->
|
||||||
|
<view class="goods-info1">
|
||||||
|
<view class="top">
|
||||||
|
<view class="company">
|
||||||
|
<view class="company-logo" v-if="info.shop">
|
||||||
|
<image :src="info.shop.cover" mode="aspectFill" />
|
||||||
|
<view class="name nowrap">{{info.shop.name}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="flexrow">
|
||||||
|
<view class="no nowrap" v-if="listType == 'deliver'">退货单号: {{info.shipment_no}}</view>
|
||||||
|
<view class="no nowrap" v-else>退货单号: {{info.refund_no}}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="goods-info">
|
||||||
|
<image class="goods-img" v-if="info.goods_sku" :src="info.goods_sku.cover" mode="aspectFill" />
|
||||||
|
<view class="goods" v-if="info.goods_sku">
|
||||||
|
<view class="nowrap name">{{info.goods_sku.goods_name}}</view>
|
||||||
|
<view class="sku">数权个数 <span>x {{info.qty}}</span> </view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="goods-info1">
|
||||||
|
<view class="goods-type">创建退货时间 <span>{{info.created_at}}</span></view>
|
||||||
|
<view class="goods-type">运费 <span>自行承担运费</span></view>
|
||||||
|
<view class="goods-type">退货数量 <span>{{info.qty}}个</span></view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 操作相关 -->
|
||||||
|
<view class="actions">
|
||||||
|
<view class="nowPay" @click="orderRun">返回列表</view>
|
||||||
|
<view v-if="listType != 'deliver'" @click="$Router.push({name: 'storeJournal', params: {id: info.refund_id}})" class="nowPay">查看退货日志</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name:"storeOrderDet",
|
||||||
|
props:{
|
||||||
|
// 数据列表
|
||||||
|
info : {},
|
||||||
|
listType: ''
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 返回上一页
|
||||||
|
orderRun() {
|
||||||
|
uni.navigateBack({
|
||||||
|
delta: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.OrderInfo {
|
||||||
|
width: 100%;
|
||||||
|
min-height: 100vh;
|
||||||
|
box-sizing: border-box;
|
||||||
|
background-color: #F7F7F7;
|
||||||
|
padding-bottom: 80rpx;
|
||||||
|
}
|
||||||
|
.order-status {
|
||||||
|
width: 100%;
|
||||||
|
height: 300rpx;
|
||||||
|
background-image: linear-gradient(to bottom, $main-color, $main-color-light);
|
||||||
|
color: #Fff;
|
||||||
|
font-size: 36rpx;
|
||||||
|
padding: 30rpx 50rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
box-sizing: border-box;
|
||||||
|
.info {
|
||||||
|
font-size: 36rpx;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: space-between;
|
||||||
|
box-sizing: border-box;
|
||||||
|
span {
|
||||||
|
font-size: 28rpx;
|
||||||
|
padding-top: 30rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
image {
|
||||||
|
width: 200rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 订单信息
|
||||||
|
.goods-info1 {
|
||||||
|
padding: 20rpx 40rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
margin-bottom: $margin;
|
||||||
|
.top {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
border-bottom: solid 1rpx #EFF4F2;
|
||||||
|
.company-logo {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
box-sizing: border-box;
|
||||||
|
image {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
.name {
|
||||||
|
width: 600rpx;
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #484848;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.no {
|
||||||
|
margin-top: 16rpx;
|
||||||
|
font-size: $title-size*0.8;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.goods-info {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: flex-start;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-top: 40rpx;
|
||||||
|
.goods-img {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
}
|
||||||
|
.goods {
|
||||||
|
width: calc(100% - 120rpx);
|
||||||
|
padding: 0 20rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
.sku {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.goods-type {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
border-bottom: solid 1rpx #f7f7f7;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 操作按钮
|
||||||
|
.actions {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
border-top: solid 1rpx #f2f2f2;
|
||||||
|
padding-top: 18rpx;
|
||||||
|
padding-right: 30rpx;
|
||||||
|
padding-left: 30rpx;
|
||||||
|
height: 110rpx;
|
||||||
|
background: white;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
flex-direction: row-reverse;
|
||||||
|
.nowPay {
|
||||||
|
margin-left: 20rpx;
|
||||||
|
height: 54rpx;
|
||||||
|
line-height: 50rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border: solid 1rpx #747788;
|
||||||
|
padding: 0 20rpx;
|
||||||
|
font-size: 26rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
margin-top: 10rpx;
|
||||||
|
&.actions-color {
|
||||||
|
color: #e1293f;
|
||||||
|
border-color: #ec96a0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.cancelOrder {
|
||||||
|
padding: 10rpx 30rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
background-color: #DD524D;
|
||||||
|
}
|
||||||
|
.logistics {
|
||||||
|
background-color: $main-color;
|
||||||
|
padding: 10rpx 30rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
.sign {
|
||||||
|
background-color: #DD524D;
|
||||||
|
padding: 10rpx 30rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
.evaluate {
|
||||||
|
background-color: $main-color;
|
||||||
|
padding: 10rpx 30rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
228
components/store-order/store-order.vue
Normal file
@@ -0,0 +1,228 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<view class="returnCont">
|
||||||
|
<view class="returnList" v-for="(item, index) in list" :key="index">
|
||||||
|
<view class="MallRefundsTemplate">
|
||||||
|
<view class="top">
|
||||||
|
<view class="company">
|
||||||
|
<view class="company-logo" v-if="item.shop">
|
||||||
|
<image :src="item.shop.cover" mode="aspectFill" />
|
||||||
|
<view class="company-name nowrap">{{item.shop.name}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="no nowrap" v-if="listType == 'deliver'">退货单号: {{item.shipment_no}}</view>
|
||||||
|
<view class="no nowrap" v-else>退货单号: {{item.refund_no}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="status" style="color:#ff5500;" v-if="listType == 'deliver'">{{item.state_text}}</view>
|
||||||
|
<view class="status" style="color:#ff5500;" v-else>{{item.state.text}}</view>
|
||||||
|
</view>
|
||||||
|
<view class="goods-info" @click="goDetail(item.goods_sku.goods_id)" v-if="item.goods_sku">
|
||||||
|
<image class="goods-img" :src="item.goods_sku.cover" mode="aspectFill" />
|
||||||
|
<view class="goods">
|
||||||
|
<view class="name nowrap">{{item.goods_sku.goods_name}}</view>
|
||||||
|
<view class="sku">数权个数 <span>x {{item.qty}}</span> </view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="actions">
|
||||||
|
<view v-if="item.can">
|
||||||
|
<view v-if="item.can.audit" @click="$Router.push({name: 'Examine', params: {id: item.refund_id}})" class="nowPay actions-color">订单审核</view>
|
||||||
|
<view v-if="item.can.sign" @click="goSign(item.refund_id, index)" class="nowPay actions-color">订单签收</view>
|
||||||
|
<view v-if="item.can.reToken" @click="goReToken(item.refund_id, index)" class="nowPay actions-color">确认退货</view>
|
||||||
|
<view v-if="item.can.logistic" @click="$Router.push({name: 'Logistic', params: {id: item.shipment_no}})" class="nowPay actions-color">查看物流</view>
|
||||||
|
<view v-if="item.can.deliver" @click="$Router.push({name: 'DeliverForm', params: {id: item.shipment_no}})" class="nowPay actions-color">我要发货</view>
|
||||||
|
</view>
|
||||||
|
<view v-if="listType == 'deliver'" class="nowPay" @click="$Router.push({name: 'storeOrderDetails', params: {id: item.shipment_no, type: listType}})">查看详情</view>
|
||||||
|
<view v-else class="nowPay" @click="$Router.push({name: 'storeOrderDetails', params: {id: item.refund_id, type: 'return'}})">查看详情</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name:"goodsList",
|
||||||
|
props:{
|
||||||
|
// 数据列表
|
||||||
|
list: {
|
||||||
|
type : Array,
|
||||||
|
default : () => {
|
||||||
|
return new Array
|
||||||
|
}
|
||||||
|
},
|
||||||
|
listType: ''
|
||||||
|
},
|
||||||
|
created() {}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
// 列表
|
||||||
|
.returnList {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
padding: $padding;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-top: $margin;
|
||||||
|
}
|
||||||
|
|
||||||
|
.MallRefundsTemplate{
|
||||||
|
position: relative;
|
||||||
|
z-index: 0;
|
||||||
|
}
|
||||||
|
// 顶部信息
|
||||||
|
.top {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
box-sizing: border-box;
|
||||||
|
padding-bottom: 20rpx;
|
||||||
|
border-bottom: solid 1rpx #f7f7f7;
|
||||||
|
position: relative;
|
||||||
|
z-index: 0;
|
||||||
|
.company-logo {
|
||||||
|
display: flex;
|
||||||
|
width: 90%;
|
||||||
|
image {
|
||||||
|
width: 40rpx;
|
||||||
|
height: 40rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
margin-right: 20rpx;
|
||||||
|
}
|
||||||
|
.company-name {
|
||||||
|
font-size: 30rpx;
|
||||||
|
color: #484848;
|
||||||
|
font-weight: bold;
|
||||||
|
width: calc(100% - 40rpx);
|
||||||
|
padding: 0 20rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.no {
|
||||||
|
margin-top: 10rpx;
|
||||||
|
font-size: $title-size*0.8;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
.status {
|
||||||
|
color: #999;
|
||||||
|
font-size: $title-size*.9;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 商品信息
|
||||||
|
.goods-info {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: flex-start;
|
||||||
|
justify-content: flex-start;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-top: 36rpx;
|
||||||
|
|
||||||
|
.goods-img {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
}
|
||||||
|
.goods {
|
||||||
|
flex: 1;
|
||||||
|
width: calc(100% - 120rpx);
|
||||||
|
padding: 0 20rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-bottom: 10rpx;
|
||||||
|
.name {
|
||||||
|
width: 100%;
|
||||||
|
font-size: 30rpx;
|
||||||
|
span {
|
||||||
|
font-size: 32rpx;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sku {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-top: 10rpx;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.flexrow {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.copy {
|
||||||
|
color: $main-color;
|
||||||
|
font-size: $title-size*0.8;
|
||||||
|
font-weight: 400;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 操作按钮
|
||||||
|
.actions {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-end;
|
||||||
|
box-sizing: border-box;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
flex: 1;
|
||||||
|
font-size: 28rpx;
|
||||||
|
color: #fff;
|
||||||
|
border-top: solid 1rpx #EFF4F2;
|
||||||
|
margin-top: $margin;
|
||||||
|
.nowPay {
|
||||||
|
padding: 4rpx 20rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
color: #999;
|
||||||
|
border:solid 1rpx #cacaca;
|
||||||
|
&.actions-color {
|
||||||
|
color: #e1293f;
|
||||||
|
border-color: #ec96a0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.cancelOrder {
|
||||||
|
padding: 10rpx 30rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
background-color: #DD524D;
|
||||||
|
}
|
||||||
|
.logistics {
|
||||||
|
background-color: $main-color;
|
||||||
|
padding: 10rpx 30rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
.sign {
|
||||||
|
background-color: #DD524D;
|
||||||
|
padding: 10rpx 30rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
.evaluate {
|
||||||
|
background-color: $main-color;
|
||||||
|
padding: 10rpx 30rpx;
|
||||||
|
border-radius: 40rpx;
|
||||||
|
margin-left: 20rpx;
|
||||||
|
margin-top: 20rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -23,17 +23,17 @@
|
|||||||
<image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
|
<image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- order-shipment -->
|
<!-- order-refund -->
|
||||||
<view class="store-item" @click="$Router.push({name: ''})" v-if="toolList.orderShipment">
|
<view class="store-item" @click="$Router.push({name: 'Return'})" v-if="toolList.orderRefund">
|
||||||
<image class="icon" src="@/static/icons/tool_icon_04.png" mode="aspectFill"></image>
|
<image class="icon" src="@/static/icons/tool_icon_07.png" mode="aspectFill"></image>
|
||||||
<view class="title">发货单管理</view>
|
<view class="title">退换货管理</view>
|
||||||
<image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
|
<image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- order-refund -->
|
<!-- order-shipment -->
|
||||||
<view class="store-item" @click="$Router.push({name: ''})" v-if="toolList.orderRefund">
|
<view class="store-item" @click="$Router.push({name: 'Deliver'})" v-if="toolList.orderShipment">
|
||||||
<image class="icon" src="@/static/icons/tool_icon_07.png" mode="aspectFill"></image>
|
<image class="icon" src="@/static/icons/tool_icon_04.png" mode="aspectFill"></image>
|
||||||
<view class="title">退换货管理</view>
|
<view class="title">发货单管理</view>
|
||||||
<image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
|
<image class="arrow" src="@/static/icons/equity_arrow_right.png" mode="aspectFill"></image>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|||||||
49
pages.json
@@ -342,6 +342,13 @@
|
|||||||
"navigationBarTitleText": "成交客户",
|
"navigationBarTitleText": "成交客户",
|
||||||
"navigationBarBackgroundColor": "#FFFFFF"
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/store/examine",
|
||||||
|
"name": "Examine",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "退货单审核",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
}, {
|
}, {
|
||||||
"path": "pages/store/basics",
|
"path": "pages/store/basics",
|
||||||
"name": "Basics",
|
"name": "Basics",
|
||||||
@@ -366,6 +373,48 @@
|
|||||||
"navigationBarTitleText": "营销推广码",
|
"navigationBarTitleText": "营销推广码",
|
||||||
"navigationBarBackgroundColor": "#FFFFFF"
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/store/return",
|
||||||
|
"name": "Return",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "退货单处理",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/store/orderDetails",
|
||||||
|
"name": "storeOrderDetails",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "订单详情",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/store/deliver",
|
||||||
|
"name": "Deliver",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "提货单处理",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/store/deliverForm",
|
||||||
|
"name": "DeliverForm",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "我要发货",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/store/logistic",
|
||||||
|
"name": "Logistic",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "提货单物流",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"path": "pages/store/journal",
|
||||||
|
"name": "storeJournal",
|
||||||
|
"style": {
|
||||||
|
"navigationBarTitleText": "操作日志",
|
||||||
|
"navigationBarBackgroundColor": "#FFFFFF"
|
||||||
|
}
|
||||||
}, {
|
}, {
|
||||||
"path": "pages/employees/list",
|
"path": "pages/employees/list",
|
||||||
"name": "Employees",
|
"name": "Employees",
|
||||||
|
|||||||
@@ -115,7 +115,6 @@
|
|||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
managesAttestation(this.$Route.query.id).then(res=>{
|
managesAttestation(this.$Route.query.id).then(res=>{
|
||||||
console.log(res)
|
|
||||||
this.info = res
|
this.info = res
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { orderJournal } from '@/apis/interfaces/store'
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -329,6 +329,7 @@
|
|||||||
&.vip{
|
&.vip{
|
||||||
background-image: linear-gradient(to right, #f8e5c0, #d6a46a);
|
background-image: linear-gradient(to right, #f8e5c0, #d6a46a);
|
||||||
color: #8d4928;
|
color: #8d4928;
|
||||||
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,19 +2,28 @@
|
|||||||
<view class="content">
|
<view class="content">
|
||||||
<view class="codeContent">
|
<view class="codeContent">
|
||||||
<image class="codeContent-back" src="../../static/icons/store_codeBack.png" mode="widthFix"></image>
|
<image class="codeContent-back" src="../../static/icons/store_codeBack.png" mode="widthFix"></image>
|
||||||
<view class="company">
|
<image class="codeContent-cont" src="../../static/icons/store_contBack.png" mode="widthFix"></image>
|
||||||
<image class="company-logo" src="../../static/dev/good_cover_00.jpg" mode="aspectFill"></image>
|
<view class="textContent">
|
||||||
<view class="company-cont">
|
<view class="company">
|
||||||
<view class="company-name">如朗科技</view>
|
<image class="company-logo" :src="companyInfo.cover" mode="aspectFill"></image>
|
||||||
<view class="company-name">邀请你加入易货平台</view>
|
<view class="company-cont">
|
||||||
|
<view class="nowrap company-name">{{companyInfo.name}}</view>
|
||||||
|
<view class="company-tips">易货平台</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="code">
|
||||||
|
<image class="code-img" :src="companyInfo.code" mode="aspectFit"></image>
|
||||||
|
<!-- <view class="code-text">简单扫一扫,即可进入平台</view> -->
|
||||||
|
</view>
|
||||||
|
<!-- @click="shareCanvas" -->
|
||||||
|
<view class="codeBnt">
|
||||||
|
扫码推广
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<image class="codeContent-code" src="../../static/dev/good_cover_03.jpg" mode="aspectFit"></image>
|
|
||||||
</view>
|
|
||||||
<view class="codeBnt">
|
|
||||||
<image class="codeBnt-img" src="../../static/icons/store_down.png" mode="aspectFill"></image>
|
|
||||||
保存图片
|
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
|
||||||
|
<canvas class="codeImg" canvas-id="qrcodeCard"></canvas>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -23,62 +32,218 @@
|
|||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
codeImg: ''
|
companyInfo : ''
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
// companiesCode().then(res=>{
|
companiesCode().then(res=>{
|
||||||
// this.codeImg = res
|
this.companyInfo = res
|
||||||
// })
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
// 绘制图片
|
||||||
|
shareCanvas(e){
|
||||||
|
uni.showLoading({
|
||||||
|
title: '加载中',
|
||||||
|
})
|
||||||
|
|
||||||
|
// 下载头像
|
||||||
|
let avatarImg = new Promise(success=>{
|
||||||
|
uni.getImageInfo({
|
||||||
|
src : this.companyInfo.cover,
|
||||||
|
success : res => {
|
||||||
|
success(res.path)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
// 下载二维码
|
||||||
|
let codeImg = new Promise(success => {
|
||||||
|
uni.getImageInfo({
|
||||||
|
src : this.companyInfo.code,
|
||||||
|
success : res => {
|
||||||
|
success(res.path)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Promise.all([avatarImg, codeImg]).then(res => {
|
||||||
|
// 绘制海报
|
||||||
|
const ctx = uni.createCanvasContext('qrcodeCard')
|
||||||
|
ctx.save()
|
||||||
|
|
||||||
|
// 绘制背景图片
|
||||||
|
ctx.drawImage('../../static/icons/store_downBack', 0, 0, 375, 603)
|
||||||
|
|
||||||
|
// 绘制头像
|
||||||
|
ctx.drawImage(res[0], 0, 0, 60, 60)
|
||||||
|
|
||||||
|
// 绘制二维码
|
||||||
|
ctx.drawImage(res[1], 140, 250, 110, 110)
|
||||||
|
|
||||||
|
// 文字
|
||||||
|
ctx.setFontSize(16)
|
||||||
|
ctx.fillText(this.companyInfo.name, 194, 180 , 270)
|
||||||
|
|
||||||
|
ctx.setFontSize(16)
|
||||||
|
ctx.fillText('邀请你加入易货平台', 194, 180 , 270)
|
||||||
|
|
||||||
|
ctx.save();
|
||||||
|
ctx.beginPath(); //开始绘制
|
||||||
|
ctx.arc(50 / 2 + 170, 50 / 2 + 110, 50 / 2, 0, Math.PI * 2, false);
|
||||||
|
ctx.clip();
|
||||||
|
|
||||||
|
// 保存图片
|
||||||
|
ctx.draw(true, () => {
|
||||||
|
uni.hideLoading()
|
||||||
|
uni.canvasToTempFilePath({
|
||||||
|
canvasId: 'qrcodeCard',
|
||||||
|
x: 0,
|
||||||
|
y: 0,
|
||||||
|
success: res => {
|
||||||
|
uni.saveImageToPhotosAlbum({
|
||||||
|
filePath: res.tempFilePath,
|
||||||
|
success : res=>{
|
||||||
|
if (res.errMsg == "saveImageToPhotosAlbum:ok"){
|
||||||
|
uni.showToast({
|
||||||
|
title: '分享海报已保存至相册',
|
||||||
|
icon : 'none'
|
||||||
|
})
|
||||||
|
}else{
|
||||||
|
uni.hideLoading()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail : err=>{
|
||||||
|
if (err.errMsg == "saveImageToPhotosAlbum:fail auth deny"){
|
||||||
|
uni.showModal({
|
||||||
|
title : '提示',
|
||||||
|
content : '暂未授权小程序写入您的相册,无法存储二维码海报',
|
||||||
|
confirmColor: '#d82526',
|
||||||
|
confirmText : '去设置',
|
||||||
|
success : res=>{
|
||||||
|
if (res.confirm){
|
||||||
|
uni.openSetting()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
}).catch(err=>{
|
||||||
|
uni.showToast({
|
||||||
|
title: '海报下载,请检查网络',
|
||||||
|
icon : 'none'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.content {
|
.content {
|
||||||
background-color: #e1293f;
|
background-color: #e93340;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
padding: 80rpx;
|
|
||||||
box-sizing: border-box;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.codeContent {
|
.codeContent {
|
||||||
position: relative;
|
position: relative;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
height: 100vh;
|
||||||
.codeContent-back {
|
.codeContent-back {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
box-shadow: 0 0 20rpx rgba(115,0,4,.3);
|
}
|
||||||
|
.codeContent-cont {
|
||||||
|
left: 5%;
|
||||||
|
width: 90%;
|
||||||
|
top: 100px;
|
||||||
|
z-index: 2;
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
.codeContent-tips {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 20rpx;
|
||||||
|
width: 200rpx;
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
.textContent {
|
||||||
|
position: absolute;
|
||||||
|
padding: 20rpx 20rpx 0 40rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
|
width: 70%;
|
||||||
|
z-index: 3;
|
||||||
|
left: 15%;
|
||||||
|
right: 15%;
|
||||||
|
top: 140px;
|
||||||
}
|
}
|
||||||
.company {
|
.company {
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
.company-logo {
|
||||||
|
width: 120rpx;
|
||||||
|
height: 120rpx;
|
||||||
|
border-radius: 50%;
|
||||||
|
}
|
||||||
|
.company-cont {
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 230rpx;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
padding: 20rpx 20rpx 30rpx 210rpx;
|
||||||
|
font-size: $title-size;
|
||||||
|
.company-name {
|
||||||
|
font-weight: 600;
|
||||||
|
margin: 10rpx 0;
|
||||||
|
}
|
||||||
|
.company-tips {
|
||||||
|
font-size: 26rpx;
|
||||||
|
color: #787878;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.code {
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
margin-bottom: $margin;
|
||||||
|
.code-img {
|
||||||
|
width: 90%;
|
||||||
|
}
|
||||||
|
.code-text {
|
||||||
|
color: #787878;
|
||||||
|
margin-top: $margin - 10;
|
||||||
|
font-size: $title-size;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.codeBnt {
|
.codeBnt {
|
||||||
background-color: #FFFFFF;
|
background-color: #e1293f;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-radius: 10rpx;
|
border-radius: 10rpx;
|
||||||
line-height: 90rpx;
|
line-height: 90rpx;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
font-size: $title-size;
|
font-size: $title-size;
|
||||||
color: #e1293f;
|
color: #FFFFFF;
|
||||||
margin-top: 160rpx;
|
|
||||||
box-shadow: 4rpx 0 10rpx rgba(155,0,19,.5);
|
box-shadow: 4rpx 0 10rpx rgba(155,0,19,.5);
|
||||||
position: relative;
|
position: relative;
|
||||||
.codeBnt-img {
|
}
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
/* canvas */
|
||||||
width: 60rpx;
|
.codeImg {
|
||||||
height: 60rpx;
|
position: absolute;
|
||||||
left: 24%;
|
left: -1000%;
|
||||||
}
|
height: 603px;
|
||||||
|
width: 375px;
|
||||||
|
background: white;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -68,7 +68,6 @@
|
|||||||
methods:{
|
methods:{
|
||||||
// tabs筛选
|
// tabs筛选
|
||||||
onTbas(type){
|
onTbas(type){
|
||||||
console.log(type)
|
|
||||||
getDate(type).then(res => {
|
getDate(type).then(res => {
|
||||||
this.tabsIndex = type
|
this.tabsIndex = type
|
||||||
this.dateValue = res
|
this.dateValue = res
|
||||||
|
|||||||
141
pages/store/deliver.vue
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!-- 订单分类 -->
|
||||||
|
<scroll-view class="nav" scroll-x="true" scroll-with-animation="true">
|
||||||
|
<view :class="['nav-item', selectNavId === item.state ? 'nav-item-selected':'']" v-for="(item,index) in navList" :key="index" @click="selectNav(item.state)">
|
||||||
|
{{item.name}}
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
|
||||||
|
<!-- 订单列表 -->
|
||||||
|
<store-order v-if="returnInfo.length > 0" :list="returnInfo" listType="deliver" />
|
||||||
|
|
||||||
|
<view v-else class="pack-center">
|
||||||
|
<image src="../../static/icons/order-null.png"></image>
|
||||||
|
<view>您还没有相关订单</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { storeDeliver } from '@/apis/interfaces/store'
|
||||||
|
import storeOrder from '@/components/store-order/store-order'
|
||||||
|
export default {
|
||||||
|
comments:{
|
||||||
|
storeOrder
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
returnInfo : '' ,// 列表
|
||||||
|
navList : [{
|
||||||
|
name : '待发货',
|
||||||
|
state : '1'
|
||||||
|
},{
|
||||||
|
name : '已发货',
|
||||||
|
state : '2'
|
||||||
|
},{
|
||||||
|
name : '待提货',
|
||||||
|
state : '3'
|
||||||
|
},{
|
||||||
|
name : '已提货',
|
||||||
|
state : '4'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
selectNavId : '1'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
// 获取退货单列表
|
||||||
|
this.returnData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 退货单列表
|
||||||
|
returnData(){
|
||||||
|
storeDeliver(this.selectNavId).then(res=>{
|
||||||
|
console.log(res)
|
||||||
|
this.returnInfo = res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 选择订单
|
||||||
|
selectNav(id) {
|
||||||
|
if (this.selectNavId !== id) {
|
||||||
|
this.selectNavId = id
|
||||||
|
this.returnData()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 我要发货
|
||||||
|
goSend(orderNo) {
|
||||||
|
console.log(orderNo)
|
||||||
|
return
|
||||||
|
uni.showModal({
|
||||||
|
title: '是否签收此订单?',
|
||||||
|
success: res => {
|
||||||
|
if(res.confirm) {
|
||||||
|
storeSign(orderNo).then(() => {
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title: '签收成功'
|
||||||
|
})
|
||||||
|
setTimeout(()=>{
|
||||||
|
this.returnData()
|
||||||
|
},3000)
|
||||||
|
}).catch(err => {
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title: err.message
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
// 订单nav
|
||||||
|
.nav {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
box-sizing: border-box;
|
||||||
|
white-space: nowrap;
|
||||||
|
font-size: $title-size*0.95;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
color: #666;
|
||||||
|
position: sticky;
|
||||||
|
top: 0rpx;
|
||||||
|
z-index: 1;
|
||||||
|
.nav-item {
|
||||||
|
width: 25%;
|
||||||
|
text-align: center;
|
||||||
|
display: inline-block;
|
||||||
|
border-bottom: solid 4rpx #fff;
|
||||||
|
padding: 30rpx 0;
|
||||||
|
}
|
||||||
|
.nav-item-selected {
|
||||||
|
color: $main-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 暂无订单
|
||||||
|
.pack-center {
|
||||||
|
text-align: center;
|
||||||
|
font-size: $title-size-sm;
|
||||||
|
color: $text-gray;
|
||||||
|
padding-top: 50%;
|
||||||
|
image {
|
||||||
|
width: $uni-img-size-lg * 2;
|
||||||
|
height:$uni-img-size-lg * 2;
|
||||||
|
border-radius: $uni-border-radius-circle;
|
||||||
|
margin-bottom: $margin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
166
pages/store/deliverForm.vue
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<form @submit="sendSubmit">
|
||||||
|
<view class="nickname">
|
||||||
|
<view class="examineTitle">
|
||||||
|
选择发货方式
|
||||||
|
</view>
|
||||||
|
<view class="toExamine" v-if="send.sendWay[send.sendIndex]">
|
||||||
|
<picker mode="selector" :value="send.sendIndex" range-key="name" :range="send.sendWay" @change="wayChange">
|
||||||
|
<view>{{send.sendWay[send.sendIndex].name}}</view>
|
||||||
|
</picker>
|
||||||
|
<image class="toExamine-row" src="../../static/icons/goods_row.png" mode="aspectFill"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="nickname" v-if="send.sendIndex == 0">
|
||||||
|
<view class="examineTitle">
|
||||||
|
选择物流公司
|
||||||
|
</view>
|
||||||
|
<view class="toExamine" v-if="state.array[state.index]">
|
||||||
|
<picker mode="selector" :value="state.index" range-key="name" :range="state.array" @change="sexChange">
|
||||||
|
<view>{{state.array[state.index].name}}</view>
|
||||||
|
</picker>
|
||||||
|
<image class="toExamine-row" src="../../static/icons/goods_row.png" mode="aspectFill"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="nickname" v-if="send.sendIndex == 0">
|
||||||
|
<view class="examineTitle">
|
||||||
|
填写物流单号
|
||||||
|
</view>
|
||||||
|
<input class="remarks" @blur="bindExpressNo" auto-height placeholder="" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<!-- 选择其他方式显示 -->
|
||||||
|
<view class="nickname" v-if="send.sendIndex == 1">
|
||||||
|
<view class="examineTitle">
|
||||||
|
送货人姓名
|
||||||
|
</view>
|
||||||
|
<input class="remarks" name="courier_name" auto-height placeholder="" />
|
||||||
|
</view>
|
||||||
|
<view class="nickname" v-if="send.sendIndex == 1">
|
||||||
|
<view class="examineTitle">
|
||||||
|
送货人联系方式
|
||||||
|
</view>
|
||||||
|
<input class="remarks" name="courier_mobile" auto-height placeholder="" />
|
||||||
|
</view>
|
||||||
|
<button class="submit" form-type="submit" type="default">提交</button>
|
||||||
|
</form>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { deliverFront, deliverForm } from '@/apis/interfaces/store'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
send : {
|
||||||
|
sendWay : [{
|
||||||
|
id : 'post',
|
||||||
|
name : '邮寄'
|
||||||
|
},{
|
||||||
|
id : 'other',
|
||||||
|
name : '其他'
|
||||||
|
}],
|
||||||
|
sendIndex : 0,
|
||||||
|
},
|
||||||
|
state : {
|
||||||
|
// 快递筛选
|
||||||
|
array : [],
|
||||||
|
// 快递筛选默认下标
|
||||||
|
index : 0,
|
||||||
|
},
|
||||||
|
expressNo : '',
|
||||||
|
courierName : '',
|
||||||
|
courierMobile : ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
deliverFront(this.$Route.query.id).then(res=>{
|
||||||
|
this.state.array = res
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 选择发货方式
|
||||||
|
wayChange(e) {
|
||||||
|
this.send.sendIndex = e.detail.value
|
||||||
|
this.expressNo = ''
|
||||||
|
this.courierName = ''
|
||||||
|
this.courierMobile = ''
|
||||||
|
},
|
||||||
|
|
||||||
|
// 筛选
|
||||||
|
sexChange(e) {
|
||||||
|
this.state.index = e.detail.value
|
||||||
|
},
|
||||||
|
|
||||||
|
// 物流单号
|
||||||
|
bindExpressNo(val) {
|
||||||
|
this.expressNo = val.detail.value
|
||||||
|
},
|
||||||
|
|
||||||
|
// 送货人姓名
|
||||||
|
bindCourierName(val) {
|
||||||
|
this.courierName = val.detail.value
|
||||||
|
},
|
||||||
|
|
||||||
|
// 送货人联系方式
|
||||||
|
bindCourierMobile(val) {
|
||||||
|
this.courierMobile = val.detail.value
|
||||||
|
},
|
||||||
|
|
||||||
|
// 提交表单
|
||||||
|
sendSubmit() {
|
||||||
|
deliverForm(this.$Route.query.id,{
|
||||||
|
type : this.send.sendWay[this.send.sendIndex].id || '',
|
||||||
|
express_id : this.state.array[this.state.index].id || '',
|
||||||
|
express_no : this.expressNo || '',
|
||||||
|
courier_name : this.courierName || '',
|
||||||
|
courier_mobile : this.courierMobile || ''
|
||||||
|
}).then(res=>{
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title: '发送成功'
|
||||||
|
})
|
||||||
|
this.$Router.back()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.nickname {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
padding: $padding;
|
||||||
|
margin-bottom: $margin;
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
font-size: $title-size-lg;
|
||||||
|
.examineTitle {
|
||||||
|
width: 210rpx;
|
||||||
|
}
|
||||||
|
.remarks {
|
||||||
|
width: calc(100% - 210rpx);
|
||||||
|
font-size: $title-size-lg;
|
||||||
|
color: $text-color;
|
||||||
|
}
|
||||||
|
.toExamine {
|
||||||
|
position: absolute;
|
||||||
|
top: $padding;
|
||||||
|
right: $padding;
|
||||||
|
display: flex;
|
||||||
|
.toExamine-row {
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
margin-top: 6rpx;
|
||||||
|
filter: grayscale(100%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.submit {
|
||||||
|
background: #e93340;
|
||||||
|
color: white;
|
||||||
|
border-color: #e93340;
|
||||||
|
margin: $margin*4 $margin 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
114
pages/store/examine.vue
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<form @submit="sendSubmit">
|
||||||
|
<view class="nickname">
|
||||||
|
<view class="examineTitle">
|
||||||
|
退换单操作
|
||||||
|
</view>
|
||||||
|
<view class="toExamine">
|
||||||
|
<picker mode="selector" :value="state.index" range-key="name" :range="state.array" @change="sexChange">
|
||||||
|
<view>{{state.array[state.index].name}}</view>
|
||||||
|
</picker>
|
||||||
|
<image class="toExamine-row" src="../../static/icons/goods_row.png" mode="aspectFill"></image>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="nickname">
|
||||||
|
<view class="examineTitle">
|
||||||
|
退换单备注:
|
||||||
|
</view>
|
||||||
|
<textarea class="remarks" @blur="bindTextAreaBlur" auto-height placeholder="请填写备注" />
|
||||||
|
</view>
|
||||||
|
|
||||||
|
<button class="submit" form-type="submit" type="default">提交</button>
|
||||||
|
</form>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { storeAudit } from '@/apis/interfaces/store'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
state : {
|
||||||
|
// 退货单-筛选
|
||||||
|
array : [{
|
||||||
|
id : 'agree',
|
||||||
|
name: '审核通过'
|
||||||
|
},{
|
||||||
|
id : 'refuse',
|
||||||
|
name: '审核驳回'
|
||||||
|
}],
|
||||||
|
|
||||||
|
// 退货单筛选默认下标
|
||||||
|
index : 0,
|
||||||
|
},
|
||||||
|
remarks : ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
bindTextAreaBlur(val) {
|
||||||
|
this.remarks = val.detail.value
|
||||||
|
},
|
||||||
|
|
||||||
|
// 筛选
|
||||||
|
sexChange(e) {
|
||||||
|
this.state.index = e.detail.value
|
||||||
|
},
|
||||||
|
|
||||||
|
sendSubmit(){
|
||||||
|
let newState = this.state.array[this.state.index].id,
|
||||||
|
newRemark = this.remarks
|
||||||
|
storeAudit(this.$Route.query.id, {
|
||||||
|
state : newState,
|
||||||
|
remark: newRemark
|
||||||
|
}).then(res=>{
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title: '审核成功'
|
||||||
|
})
|
||||||
|
this.$Router.back()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.nickname {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
padding: $padding;
|
||||||
|
margin-bottom: $margin;
|
||||||
|
display: flex;
|
||||||
|
position: relative;
|
||||||
|
font-size: $title-size-lg;
|
||||||
|
.examineTitle {
|
||||||
|
width: 210rpx;
|
||||||
|
}
|
||||||
|
.remarks {
|
||||||
|
width: calc(100% - 210rpx);
|
||||||
|
font-size: $title-size-lg;
|
||||||
|
color: $text-color;
|
||||||
|
}
|
||||||
|
.toExamine {
|
||||||
|
position: absolute;
|
||||||
|
top: $padding;
|
||||||
|
right: $padding;
|
||||||
|
display: flex;
|
||||||
|
.toExamine-row {
|
||||||
|
width: 32rpx;
|
||||||
|
height: 32rpx;
|
||||||
|
margin-top: 6rpx;
|
||||||
|
filter: grayscale(100%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.submit {
|
||||||
|
background: #e93340;
|
||||||
|
color: white;
|
||||||
|
border-color: #e93340;
|
||||||
|
margin: $margin*4 $margin 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -82,14 +82,6 @@
|
|||||||
},
|
},
|
||||||
onShow(){
|
onShow(){
|
||||||
this.getIndex()
|
this.getIndex()
|
||||||
// 获取员工管理列表
|
|
||||||
if(this.$store.state.token != ''){
|
|
||||||
if(!this.employee) {
|
|
||||||
employeesTool().then(res=>{
|
|
||||||
this.toolList = res.permission
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 首页数据
|
// 首页数据
|
||||||
@@ -111,14 +103,23 @@
|
|||||||
faith : res.integrity
|
faith : res.integrity
|
||||||
}
|
}
|
||||||
this.workbench = {
|
this.workbench = {
|
||||||
|
identity: res.identity_time,
|
||||||
|
grade : res.identity_sign,
|
||||||
top : res.top,
|
top : res.top,
|
||||||
middle : res.middle,
|
middle : res.middle,
|
||||||
order : res.order
|
order : res.order
|
||||||
}
|
}
|
||||||
this.employee = res.is_employee
|
this.employee = res.is_employee
|
||||||
this.loding = false
|
this.loding = false
|
||||||
|
|
||||||
|
// 若为员工身份-则调取员工管理信息
|
||||||
|
if(res.is_employee) {
|
||||||
|
employeesTool().then(res=>{
|
||||||
|
this.toolList = res.permission
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
}).catch(err =>{
|
}).catch(err =>{
|
||||||
console.log(err)
|
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: err.message,
|
title: err.message,
|
||||||
icon : 'none'
|
icon : 'none'
|
||||||
@@ -128,7 +129,6 @@
|
|||||||
// 查询企业认证状态
|
// 查询企业认证状态
|
||||||
getAppliesQuery(){
|
getAppliesQuery(){
|
||||||
appliesQuery().then(res=>{
|
appliesQuery().then(res=>{
|
||||||
console.log(res)
|
|
||||||
this.appliesState = res
|
this.appliesState = res
|
||||||
this.loding = false
|
this.loding = false
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
@@ -215,7 +215,7 @@
|
|||||||
.statusBar-box{
|
.statusBar-box{
|
||||||
min-height: 90rpx;
|
min-height: 90rpx;
|
||||||
position: relative;
|
position: relative;
|
||||||
padding: $padding ($padding + 200) $padding ($padding + 88);
|
padding: $padding $padding $padding ($padding + 88);
|
||||||
color: white;
|
color: white;
|
||||||
.logo{
|
.logo{
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -228,12 +228,13 @@
|
|||||||
box-shadow: 0 4rpx 15rpx rgba(109,1,0,.8);
|
box-shadow: 0 4rpx 15rpx rgba(109,1,0,.8);
|
||||||
}
|
}
|
||||||
.company{
|
.company{
|
||||||
margin-left: 30rpx;
|
width: calc(100% - 94rpx);
|
||||||
|
padding-left: 30rpx;
|
||||||
|
box-sizing: border-box;
|
||||||
.name{
|
.name{
|
||||||
line-height: 40rpx;
|
line-height: 40rpx;
|
||||||
@extend .nowrap;
|
@extend .nowrap;
|
||||||
font-size: $title-size;
|
font-size: $title-size;
|
||||||
display: flex;
|
|
||||||
.name-img {
|
.name-img {
|
||||||
width: 30rpx;
|
width: 30rpx;
|
||||||
height: 30rpx;
|
height: 30rpx;
|
||||||
|
|||||||
83
pages/store/journal.vue
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<view class="logsBack">
|
||||||
|
<view class="logsList" v-for="(item ,index) in logArr" :key="index">
|
||||||
|
<view class="logsLabel">
|
||||||
|
<view class="logsLabel-name">操作来源:</view>
|
||||||
|
<view class="logsTips" :class="[item.isMy ? 'active' : '']">{{ item.isMy ? '个人' : '商家' }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="logsLabel" v-if="item.title">
|
||||||
|
<view class="logsLabel-name">申请原因:</view>
|
||||||
|
<view class="logsLabel-text">{{ item.title }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="logsLabel" v-if="item.state_text">
|
||||||
|
<view class="logsLabel-name">申请状态:</view>
|
||||||
|
<view class="logsLabel-text">{{ item.state_text }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="logsLabel" v-if="item.remark">
|
||||||
|
<view class="logsLabel-name">补充描述:</view>
|
||||||
|
<view class="logsLabel-text">{{ item.remark }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="logsLabel">
|
||||||
|
<view class="logsLabel-name">退款时间:</view>
|
||||||
|
<view class="logsLabel-text">{{ item.created_at }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { orderJournal } from '@/apis/interfaces/store'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
logArr : '', //订单数组列表
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
orderJournal(this.$Route.query.id).then(res=>{
|
||||||
|
this.logArr = res
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.logsBack {
|
||||||
|
background: #f7f7f7;
|
||||||
|
padding: $padding;
|
||||||
|
box-sizing: border-box;
|
||||||
|
font-size: $title-size-sm;
|
||||||
|
.logsList {
|
||||||
|
background: #fff;
|
||||||
|
padding: $padding;
|
||||||
|
box-sizing: border-box;
|
||||||
|
border-radius: 10rpx;
|
||||||
|
margin-bottom: $margin;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.logsTips {
|
||||||
|
color: #e1293f;
|
||||||
|
&.active {
|
||||||
|
color: #e1293f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.logsLabel {
|
||||||
|
padding: $padding 0;
|
||||||
|
overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
.logsLabel-name {
|
||||||
|
margin-right: $margin;
|
||||||
|
width: 140rpx;
|
||||||
|
}
|
||||||
|
.logsLabel-text {
|
||||||
|
color: $text-gray;
|
||||||
|
width: calc(100% - 140rpx - #{$margin});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
161
pages/store/logistic.vue
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!-- 物流状态 start -->
|
||||||
|
<view class="state" v-if="logistic.length > 0">
|
||||||
|
<view class="take">
|
||||||
|
<view class="take-tips">
|
||||||
|
收
|
||||||
|
</view>
|
||||||
|
<view class="take-text">
|
||||||
|
收货地址:发接口返回绝对是放假客户端上看见发货数据库大黄蜂教科书的浩丰科技
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="list">
|
||||||
|
<!-- v-for="(item, index) in logistic" :key="index" -->
|
||||||
|
<view class="list-label">
|
||||||
|
<view class="list-name">
|
||||||
|
<text>发货中</text> 2020-15-12
|
||||||
|
</view>
|
||||||
|
<view class="list-time">
|
||||||
|
华东师范邯郸市科技发货圣诞节客服
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="pack-center" v-else>
|
||||||
|
<image src="../../static/icons/store_logistic.png" mode="aspectFill"></image>
|
||||||
|
<view>{{message}} </view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { deliverLogistic } from '@/apis/interfaces/store'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
message : '',
|
||||||
|
logistic: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
deliverLogistic(this.$Route.query.id).then(res=>{
|
||||||
|
console.log(res)
|
||||||
|
}).catch(err => {
|
||||||
|
this.message = err.message
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
page {
|
||||||
|
background-color: #f6f6f6;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 物流状态
|
||||||
|
.state {
|
||||||
|
background-color: $uni-bg-color;
|
||||||
|
margin-top: $margin;
|
||||||
|
padding: $padding;
|
||||||
|
font-size: $title-size-m;
|
||||||
|
color: $text-gray;
|
||||||
|
.take {
|
||||||
|
display: flex;
|
||||||
|
padding-bottom: $padding;
|
||||||
|
position: relative;
|
||||||
|
&::before {
|
||||||
|
position: absolute;
|
||||||
|
content: '';
|
||||||
|
left: $uni-img-size-sm / 3 + 2;
|
||||||
|
top: $margin;
|
||||||
|
background-color: $uni-text-color-grey;
|
||||||
|
width: 2rpx;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.take-tips {
|
||||||
|
background-color: #e53d4c;
|
||||||
|
width: $uni-img-size-sm;
|
||||||
|
height: $uni-img-size-sm;
|
||||||
|
border-radius: $uni-border-radius-circle;
|
||||||
|
font-size: $title-size-sm;
|
||||||
|
transform: scale(.9);
|
||||||
|
text-align: center;
|
||||||
|
color: $uni-text-color-inverse;
|
||||||
|
margin-top: 10rpx;
|
||||||
|
margin-left: -4rpx;
|
||||||
|
}
|
||||||
|
.take-text {
|
||||||
|
margin-left: $margin;
|
||||||
|
line-height: 40rpx;
|
||||||
|
margin-top: $margin - 10;
|
||||||
|
width: calc(100% - #{$uni-img-size-sm} + #{$margin});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.list {
|
||||||
|
font-size: $title-size-sm;
|
||||||
|
.list-label {
|
||||||
|
padding-left: $padding * 3;
|
||||||
|
padding-bottom: $padding;
|
||||||
|
padding-top: $padding - 10;
|
||||||
|
position: relative;
|
||||||
|
&::after {
|
||||||
|
position: absolute;
|
||||||
|
content: '';
|
||||||
|
left: $uni-img-size-sm / 3 - 4;
|
||||||
|
top: $margin;
|
||||||
|
background-color: $uni-text-color-grey;
|
||||||
|
width: $uni-img-size-sm / 3;
|
||||||
|
height: $uni-img-size-sm / 3;
|
||||||
|
border-radius: $uni-border-radius-circle;
|
||||||
|
z-index: 9;
|
||||||
|
}
|
||||||
|
&::before {
|
||||||
|
position: absolute;
|
||||||
|
content: '';
|
||||||
|
left: $uni-img-size-sm / 3 + 2;
|
||||||
|
top: $margin;
|
||||||
|
background-color: $uni-text-color-grey;
|
||||||
|
width: 2rpx;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
&:first-child {
|
||||||
|
color: #e53d4c;
|
||||||
|
}
|
||||||
|
&:last-child::before {
|
||||||
|
background-color: $uni-bg-color;
|
||||||
|
}
|
||||||
|
&:first-child::after {
|
||||||
|
background-color: #e53d4c;
|
||||||
|
}
|
||||||
|
.list-name {
|
||||||
|
margin-bottom: $margin - 10;
|
||||||
|
text {
|
||||||
|
font-weight: 600;
|
||||||
|
padding-right: $padding;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.list-time {
|
||||||
|
font-size: $uni-font-size-sm;
|
||||||
|
line-height: 34rpx;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 暂无订单
|
||||||
|
.pack-center {
|
||||||
|
text-align: center;
|
||||||
|
font-size: $title-size-sm;
|
||||||
|
color: $text-gray;
|
||||||
|
padding-top: 50%;
|
||||||
|
image {
|
||||||
|
width: $uni-img-size-lg * 2;
|
||||||
|
height:$uni-img-size-lg * 2;
|
||||||
|
margin: 0 auto $margin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
38
pages/store/orderDetails.vue
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!-- 订单详情 -->
|
||||||
|
<store-order-details :info="info" :listType="newType" />
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { deliverDetails, orderDetails } from '@/apis/interfaces/store'
|
||||||
|
import storeOrderDet from '@/components/store-order-details/store-order-details'
|
||||||
|
export default {
|
||||||
|
comments:{
|
||||||
|
storeOrderDet
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
info : '',
|
||||||
|
newType : ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.newType = this.$Route.query.type
|
||||||
|
if(this.$Route.query.type == 'deliver') {
|
||||||
|
deliverDetails(this.$Route.query.id).then(res=>{
|
||||||
|
this.info = res
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
orderDetails(this.$Route.query.id).then(res=>{
|
||||||
|
this.info = res
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
171
pages/store/return.vue
Normal file
@@ -0,0 +1,171 @@
|
|||||||
|
<template>
|
||||||
|
<view>
|
||||||
|
<!-- 订单分类 -->
|
||||||
|
<scroll-view class="nav" scroll-x="true" scroll-with-animation="true">
|
||||||
|
<view :class="['nav-item', selectNavId === item.id ? 'nav-item-selected':'']" v-for="(item,index) in navList" :key="index" @click="selectNav(item.id)">
|
||||||
|
{{item.name}}
|
||||||
|
</view>
|
||||||
|
</scroll-view>
|
||||||
|
|
||||||
|
<!-- 订单列表 -->
|
||||||
|
<store-order v-if="returnInfo.length > 0" :list="returnInfo" />
|
||||||
|
|
||||||
|
<view v-else class="pack-center">
|
||||||
|
<image src="../../static/icons/order-null.png"></image>
|
||||||
|
<view>您还没有相关订单</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { storeReturn, storeSign, storeToken } from '@/apis/interfaces/store'
|
||||||
|
import storeOrder from '@/components/store-order/store-order'
|
||||||
|
export default {
|
||||||
|
comments:{
|
||||||
|
storeOrder
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
returnInfo : '' ,// 列表
|
||||||
|
navList : [{
|
||||||
|
name : '待审核',
|
||||||
|
id : 'apply'
|
||||||
|
},{
|
||||||
|
name : '待返货',
|
||||||
|
id : 'deliver'
|
||||||
|
},{
|
||||||
|
name : '待签收',
|
||||||
|
id : 'delivered'
|
||||||
|
},{
|
||||||
|
name : '已签收',
|
||||||
|
id : 'signed'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name : '待确认退货',
|
||||||
|
id : 'process'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name : '完成退货',
|
||||||
|
id : 'completed'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
selectNavId : 'apply'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
},
|
||||||
|
onShow() {
|
||||||
|
// 获取退货单列表
|
||||||
|
this.returnData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 退货单列表
|
||||||
|
returnData(){
|
||||||
|
storeReturn(this.selectNavId).then(res=>{
|
||||||
|
this.returnInfo = res.data
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 选择订单
|
||||||
|
selectNav(id) {
|
||||||
|
if (this.selectNavId !== id) {
|
||||||
|
this.selectNavId = id
|
||||||
|
this.returnData()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// 签收订单
|
||||||
|
goSign(orderNo,index) {
|
||||||
|
uni.showModal({
|
||||||
|
title: '是否签收此订单?',
|
||||||
|
success: res => {
|
||||||
|
if(res.confirm) {
|
||||||
|
storeSign(orderNo).then(() => {
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title: '签收成功'
|
||||||
|
})
|
||||||
|
setTimeout(()=>{
|
||||||
|
this.returnData()
|
||||||
|
},3000)
|
||||||
|
}).catch(err => {
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title: err.message
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
// 确认退货
|
||||||
|
goReToken(orderNo,index) {
|
||||||
|
uni.showModal({
|
||||||
|
title: '是否确认退货此订单?',
|
||||||
|
success: res => {
|
||||||
|
if(res.confirm) {
|
||||||
|
storeToken(orderNo).then(() => {
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title: '退货成功'
|
||||||
|
})
|
||||||
|
setTimeout(()=>{
|
||||||
|
this.returnData()
|
||||||
|
},3000)
|
||||||
|
}).catch(err => {
|
||||||
|
uni.showToast({
|
||||||
|
icon: 'none',
|
||||||
|
title: err.message
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
// 订单nav
|
||||||
|
.nav {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: flex-start;
|
||||||
|
box-sizing: border-box;
|
||||||
|
white-space: nowrap;
|
||||||
|
font-size: $title-size*0.95;
|
||||||
|
padding: 0 30rpx;
|
||||||
|
background-color: #fff;
|
||||||
|
color: #666;
|
||||||
|
position: sticky;
|
||||||
|
top: 0rpx;
|
||||||
|
z-index: 1;
|
||||||
|
.nav-item {
|
||||||
|
display: inline-block;
|
||||||
|
border-bottom: solid 4rpx #fff;
|
||||||
|
padding: 30rpx 10rpx;
|
||||||
|
margin-right: 10rpx;
|
||||||
|
}
|
||||||
|
.nav-item-selected {
|
||||||
|
border-bottom: solid 4rpx $main-color;
|
||||||
|
color: $main-color;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 暂无订单
|
||||||
|
.pack-center {
|
||||||
|
text-align: center;
|
||||||
|
font-size: $title-size-sm;
|
||||||
|
color: $text-gray;
|
||||||
|
padding-top: 50%;
|
||||||
|
image {
|
||||||
|
width: $uni-img-size-lg * 2;
|
||||||
|
height:$uni-img-size-lg * 2;
|
||||||
|
border-radius: $uni-border-radius-circle;
|
||||||
|
margin-bottom: $margin;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
BIN
static/icons/fire.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
static/icons/order-null.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 91 KiB |
BIN
static/icons/store_contBack.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
static/icons/store_downBack.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
static/icons/store_logistic.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
25533
unpackage/dist/dev/app-plus/app-service.js
vendored
20506
unpackage/dist/dev/app-plus/app-view.js
vendored
BIN
unpackage/dist/dev/app-plus/static/icons/未标题-4.png
vendored
|
Before Width: | Height: | Size: 5.0 KiB |