真食物配套的电商小程序.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

167 lines
4.0 KiB

<!-- 提交物流 -->
<template>
<view class="submitExpress">
<!-- 填写物流 -->
<view class="form">
<picker class="picker" :value="express" :range="expressPicker" @change="changeExpress">
<view class="item acea-row row-between-wrapper">
<view class="title">
<view class="point">
*
</view>
物流公司
</view>
<view class="num">{{ express }}</view>
<text class="iconfont icon-jiantou"></text>
</view>
</picker>
<view class="item">
<view class="title">
<view class="point">
*
</view>
物流单号:
</view>
<input class="input" v-model="expressQuery.postalCode" placeholder="请输入物流单号" />
</view>
</view>
<!-- 提交按钮 -->
<view class="btnContainer">
<view class="addBtn" @click="addExpress">
提交
</view>
</view>
</view>
</template>
<script>
import { getExpressData, addExpressData } from '@/api/aftersales.js'
export default {
data() {
return {
expressQuery: {
code: '', // 快递公司编码
name: '', // 快递公司名称
postalCode: 'SF1213132132', // 快递编号
orderCode: '', // 订单编号
},
expressList: [],
expressPicker: [],
express: '',
}
},
mounted() {
this.expressQuery.orderCode = this.$yroute.query.orderCode
this.getExpress()
},
methods: {
async getExpress() {
const res = await getExpressData()
console.log(res)
this.expressList = res.data.map(item => {
return {
id: item.id,
name: item.name,
code: item.code,
}
})
this.expressPicker = res.data.map(item => {
return item.name
})
},
changeExpress(e) {
this.express = this.expressPicker[e.mp.detail.value]
this.expressQuery.code = this.expressList[e.mp.detail.value].code
this.expressQuery.name = this.expressList[e.mp.detail.value].name
},
async addExpress() {
let errMsg = '请选择'
if (!this.expressQuery.code || !this.expressQuery.code) {
errMsg += ' 快递公司 '
}
if (!this.expressQuery.postalCode) {
errMsg += ' 快递单号 '
}
if (errMsg.length > 3) {
uni.showToast({
title: errMsg,
icon: 'none',
duration: 2000,
})
}
addExpressData(this.expressQuery)
.then(res => {
uni.showToast({
title: '物流填写成功!',
icon: 'none',
duration: 2000,
})
this.$yrouter.push({
path: '/pages/order/ReturnList/index',
})
})
.catch(err => {
uni.showToast({
title: '提交物流信息失败!',
icon: 'none',
duration: 2000,
})
})
},
},
}
</script>
<style lang="scss" scoped>
.submitExpress {
.form {
margin-bottom: 170rpx;
.picker {
margin: 0;
padding: 0;
font-size: 28rpx;
color: #999999;
}
.item {
width: 100%;
height: 80rpx;
padding: 0 32rpx;
line-height: 80rpx;
background-color: #fff;
display: flex;
.title {
font-size: 28rpx;
color: #333333;
display: flex;
.point {
color: #ea3729;
}
}
.input {
height: 80rpx;
line-height: 80rpx;
font-size: 28rpx;
color: #999999;
}
}
}
.btnContainer {
width: 100%;
height: 170rpx;
background-color: #fff;
box-shadow: 0px 0px 0px rgba(197, 202, 207, 0.5);
position: fixed;
bottom: 0;
.addBtn {
height: 90rpx;
margin: 40rpx 30rpx;
line-height: 90rpx;
text-align: center;
border-radius: 50rpx;
font-size: 28rpx;
color: #fff;
background: linear-gradient(90deg, #e93526 0%, #ff8e3c 100%);
}
}
}
</style>