物流查询

version/0412
fanfan 1 year ago
parent 4180ec42d8
commit 65072c1147
  1. 12
      api/newFun.js
  2. 9
      pages.json
  3. 21
      pages/invoice/index.vue
  4. 226
      pages/news3/LogisticsDetails.vue
  5. 227
      pages/news3/LogisticsInquiry.vue
  6. 717
      pages/news3/ManualEntry.vue
  7. 18
      pages/news3/seasoningCondimentsRecord.vue
  8. 496
      pages/news3/setOutRecords.vue
  9. 2
      pages/sureOrder/index.vue

@ -163,3 +163,15 @@ export const wuliuList = (param) => {
export const updatePrice = (param) => {
return request.post('storeKeeper/updatePrice', param)
}
//地址智能识别
export const analysis = (param) => {
return request.get('address/analysis', param)
}
//物流查询
export const expressSearch = (param) => {
return request.get('order/expressSearch', param)
}
// 发货记录---店长
export const deliveryList = (param) => {
return request.get('order/deliveryList', param)
}

@ -1124,6 +1124,15 @@
"navigationBarTitleText": "物流查询"
}
},
{
"path": "LogisticsDetails",
"style": {
// "enablePullDownRefresh": true,
"navigationStyle": "custom",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "物流信息"
}
},
{
"path": "vipPrice",
"style": {

@ -29,11 +29,12 @@
<view class="invoice-fd" @click="onAddInvoice">
<text>+</text>添加发票抬头
</view>
<empty v-if="isShow" :isLoading="isLoading" tips="暂无相关信息" />
<view v-if="!invoicList.length">暂无相关信息</view>
</view>
</template>
<script>
import Empty from '@/components/empty'
import * as InvoiceApi from '@/api/invoice'
export default {
data() {
@ -46,23 +47,11 @@
order: ''
};
},
/**
* 生命周期函数--监听页面的卸载
*/
onUnload() {
//
uni.$off('updateDataEvent')
},
onLoad(op) {
this.order = op.order ? JSON.parse(op.order) : '';
this.orderId = op.orderId,
this.orderId = op.orderId
this.getMyInvoicing()
},
onShow() {
uni.$on('updateDataEvent', () => {
this.getMyInvoicing()
})
},
methods: {
//
onDel(Id) {
@ -83,15 +72,13 @@
}
});
},
getMyInvoicing(canReset = false) {
getMyInvoicing() {
let app = this;
InvoiceApi.myInvoicing()
.then(result => {
app.invoicList = result.data.list
})
// :
canReset && uni.$emit('syncRefresh', true, true)
},
selectItem(i, Id) {
this.tabIndex = i

@ -0,0 +1,226 @@
<template>
<view>
<view class="bgImg"
:style="{ background: `url(${$picUrl+'/static/news3/walletBg.png'})`, 'background-size': 'cover' }">
<view style="width:100%;position:sticky;">
<view class="navBarContent">
<u-icon name="arrow-left" @click="onBack"
style="position: absolute;top:50%;left:40upx;transform: translateY(-50%);" color="#000"
size="35"></u-icon>
<text>物流信息</text>
</view>
</view>
<view class="logis-box">
<image src="/static/default-logo.png" alt=""></image>
<view class="logis-pany">
<view class="logis-text">
<text>物流公司</text>{{logisticsItem.express_name}}
</view>
<view class="logis-text">
<text>物流单号</text>{{logisticsItem.express_no}}<text
style="color: #FF6565; font-size:15px;margin-left: 20px;" @click="copy">复制</text>
</view>
</view>
</view>
</view>
<!-- 物流轨迹 -->
<view class="logis-detail" v-if="logisticsItem">
<view class="logis-item" :class="{ first: index === 0 }" v-for="(item, index) in logisticsItem.items" :key="index">
<view class="logis-item-content">
<view class="logis-item-content__describe">
<text class="f-26">{{ item.context }}</text>
</view>
<view class="logis-item-content__time">
<text class="f-22">{{ item.time }}</text>
</view>
</view>
</view>
<view class="all-details" style="padding: 50px 0;font-size: 16px;" v-if="!logisticsItem.items">暂无物流信息</view>
</view>
</view>
</template>
<script>
import * as newFunApi from '@/api/newFun'
export default {
data() {
return {
traces: [],
logisticsItem:''
};
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(o) {
this.onCheck(o.logisticsNum)
},
methods: {
onBack() {
uni.navigateBack({
delta: 1 // 1
});
},
copy(value) {
uni.setClipboardData({
data: this.logisticsItem.express_no, // value
success: function() {
//
uni.showToast({
title: '复制成功',
icon: 'none',
duration: 2000
})
}
})
},
/**
* 查快递
*/
onCheck(logisticsNum) {
newFunApi.expressSearch({
expressNo: logisticsNum
})
.then(res => {
if (res.status) {
this.logisticsItem = res.data
} else {
uni.showToast({
title: '查询失败',
icon: 'none',
duration: 2000
})
}
})
.finally()
}
}
}
</script>
<style scoped lang="scss">
page {
background-color: #F7F8FA;
min-height: 100%;
padding-bottom: 40upx;
}
.all-details {
width: 100%;
font-size: 14px;
text-align: center;
}
.navBarContent {
height: 88upx;
line-height: 88upx;
text-align: center;
position: relative;
text {
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #000;
}
}
.bgImg {
width: 100%;
height: 130px;
position: relative;
}
//
.logis-box {
width: 100%;
height: 80px;
// background-color: #FFF;
display: flex;
align-items: center;
padding: 30px;
image {
width: 60px;
height: 60px;
border-radius: 50%;
}
.logis-text {
margin: 10px 0;
}
.logis-pany {
overflow: hidden;
margin-left: 15px;
color: #000;
font-size: 14px;
text {
color: #999;
}
}
}
.logis-detail {
padding: 30rpx 50rpx;
background: #fff;
.logis-item {
position: relative;
padding: 10px 0 10px 25px;
box-sizing: border-box;
border-left: 2px solid #ccc;
&.first {
border-left: 2px solid #FF5050;
&:after {
background: #FF5050;
color: #FF5050;
}
.logis-item-content {
// background: #ff6e39;
color: #FF5050;
&:after {
border-bottom-color: #FF5050;
}
}
}
&:after {
content: ' ';
display: inline-block;
position: absolute;
left: -6px;
top: 30px;
width: 6px;
height: 6px;
border-radius: 10px;
background: #bdbdbd;
border: 2px solid #fff;
}
.logis-item-content {
position: relative;
// background: #f9f9f9;
padding: 10rpx 20rpx;
box-sizing: border-box;
color: #999;
// &:after {
// content: '';
// display: inline-block;
// position: absolute;
// left: -10px;
// top: 18px;
// border-left: 10px solid #fff;
// border-bottom: 10px solid #f3f3f3;
// }
}
}
}
</style>

@ -1,32 +1,30 @@
<template>
<view>
<view style="width:100%;position: fixed;top:0;z-index:99">
<view class="navBarContent">
<u-icon name="arrow-left" style="position: absolute;top:50%;left:40upx;transform: translateY(-50%);" color="#000" size="24"></u-icon>
<text>物流查询</text>
</view>
<view class="navBarContent">
<u-icon name="arrow-left" @click="onBack"
style="position: absolute;top:50%;left:40upx;transform: translateY(-50%);" color="#000" size="35">
</u-icon>
<text>物流查询</text>
</view>
</view>
<image :src="$picUrl+'/static/news3/walletBg.png'" mode="widthFix" class="bgImg"></image>
<view class="contentDes">
<u-field
v-model="form.logisticsNum"
label="物流单号"
placeholder="请填写物流单号"
>
<u-field v-model="logisticsNum" label="物流单号" placeholder="请填写物流单号">
</u-field>
<view class="btnGroup">
<view class="btnItem">
<view class="btnItem" @click="scanCode">
<image :src="$picUrl+'/static/news3/scan.png'" mode="widthFix"></image>
<text>扫码识别</text>
</view>
<view class="btnItem" style="margin-left:66upx;">
<view class="btnItem" style="margin-left:66upx;" @click="getClipboardData">
<image :src="$picUrl+'/static/news3/copy.png'" mode="widthFix"></image>
<text>粘贴单号</text>
</view>
</view>
</view>
<view class="footerBtn">
<view class="footerBtn" :style="{'opacity': logisticsNum?1:0.6 }" @click="onCheck">
查快递
</view>
</view>
@ -36,18 +34,47 @@
export default {
data() {
return {
form:{
logisticsNum:'',
}
logisticsNum: '',
};
},
methods:{
methods: {
getClipboardData(value) {
uni.getClipboardData({
success: (res) => { //
this.logisticsNum = res.data
}
});
},
scanCode() {
uni.scanCode({
success: (res) => {
this.logisticsNum = res.result
console.log(res);
},
fail: (res) => {
console.log(res)
uni.showToast({
title: '扫描失败',
icon: 'none'
})
}
})
},
onBack() {
uni.navigateBack({
delta: 1 // 1
});
},
/**
* 售后点击
* 查快递
*/
onApplyAftersales(){
onCheck() {
if (!this.logisticsNum) {
return this.$toast('请输入物流单号')
}
uni.navigateTo({
url: '/pages/AfterSaleType/AfterSaleType',
url: "/pages/news3/LogisticsDetails?logisticsNum=" + this.logisticsNum
})
}
}
@ -55,85 +82,93 @@
</script>
<style scoped lang="scss">
page{
background-color: #F7F8FA;
min-height: 100%;
padding-bottom: 140upx;
padding-top:230upx;
}
.bgImg{
width:100%;
height:auto;
position:absolute;
top:0;
left:0;
z-index:1;
}
.contentDes{
position:relative;
z-index:2;
margin:0upx 26upx;
background-color: #fff;
background: #FFFFFF;
border-radius: 6px 6px 6px 6px;
opacity: 1;
padding:0 28upx;
}
.navBarContent{
height:88upx;
line-height: 88upx;
text-align: center;
position: relative;
text{
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #000;
page {
background-color: #F7F8FA;
min-height: 100%;
padding-bottom: 140upx;
padding-top: 230upx;
}
}
::v-deep .u-field{
padding:30upx 10upx;
}
.btnGroup{
display: flex;
justify-content: flex-end;
padding:44upx 40upx;
.btnItem{
display: flex;
align-items: center;
image{
width:40upx;
height:auto;
}
text{
font-size: 28upx;
.bgImg {
width: 100%;
height: auto;
position: absolute;
top: 0;
left: 0;
z-index: 1;
}
.contentDes {
position: relative;
z-index: 2;
margin: 0upx 26upx;
background-color: #fff;
background: #FFFFFF;
border-radius: 6px 6px 6px 6px;
opacity: 1;
padding: 0 28upx;
}
.navBarContent {
height: 88upx;
line-height: 88upx;
text-align: center;
position: relative;
text {
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #3B3B3B;
margin-left:20upx;
color: #000;
}
}
::v-deep .u-field {
padding: 30upx 10upx;
}
.btnGroup {
display: flex;
justify-content: flex-end;
padding: 44upx 40upx;
.btnItem {
display: flex;
align-items: center;
image {
width: 40upx;
height: auto;
}
text {
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #3B3B3B;
margin-left: 20upx;
}
}
}
.footerBtn {
width: 80%;
height: 100upx;
background: #FF5050;
border-radius: 6px 6px 6px 6px;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #FFFFFF;
line-height: 100upx;
text-align: center;
margin: 70upx auto;
}
}
.footerBtn{
width:80%;
height: 100upx;
background: #FFAAA4;
border-radius: 6px 6px 6px 6px;
opacity: 1;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #FFFFFF;
line-height: 100upx;
text-align: center;
margin:70upx auto;
}
</style>

@ -1,357 +1,440 @@
<template>
<view>
<view class="section">
<u-field
v-model="form.config"
label="商品型号"
placeholder="请输入商品型号"
>
</u-field>
<u-field
v-model="form.shopNum"
label="商品数量"
placeholder="请输入商品数量"
>
</u-field>
</view>
<view class="section">
<u-input class="realAddr" placeholder="请粘贴或输入文本,点击“识别”自动识别姓名、电话和地址" v-model="form.auto"></u-input>
<view class="btnContent">
<view class="btn">
识别
</view>
<view>
<view class="section">
<u-field v-model="form.config" label="商品型号" placeholder="请输入商品型号">
</u-field>
<u-field v-model="form.shopNum" label="商品数量" placeholder="请输入商品数量">
</u-field>
</view>
</view>
<view class="section">
<u-field
v-model="form.getPeopleName"
label="收货人"
placeholder="请输入收货人姓名"
>
</u-field>
<u-field
v-model="form.getPeoplePhone"
label="手机号"
placeholder="请输入收货人手机号"
>
</u-field>
<u-field @click="cityShow=true" v-model="form.city"
:disabled="true" label="所属城市" placeholder="请选择"
right-icon="arrow-right"
>
</u-field>
<u-picker mode="region" v-model="cityShow"></u-picker>
<view class="addrDetail">
<view class="addrTitle">
详细地址
<view class="section">
<u-input class="realAddr" type="textarea" placeholder="请粘贴或输入文本,点击“识别”自动识别姓名、电话和地址" v-model="content">
</u-input>
<view class="btnContent">
<view class="btn" @click="onIntelligence" :style="{'opacity': content?1:0.6 }">
识别
</view>
</view>
<u-input type="textarea" v-model="form.address" placeholder="请输入详细地址"></u-input>
</view>
</view>
<view class="section">
<u-field @click="modeShow=true" v-model="form.setGoodsMode"
:disabled="true" label="发货模式" placeholder="待选择"
right-icon="arrow-right"
>
</u-field>
<u-action-sheet :list="modeList" v-model="modeShow"></u-action-sheet>
<u-field
v-model="form.setGoodsCompany"
label="发货公司"
placeholder="请输入上游公司名字"
>
</u-field>
<u-field
v-model="form.setGoodsName"
label="发货人"
placeholder="请输入上游渠道商名字"
>
</u-field>
<u-field
v-model="form.setGoodsPhone"
label="发货人电话"
placeholder="请输入上游渠道商电话"
>
</u-field>
<u-field @click="goodsShow=true" v-model="form.wuliuCompany"
:disabled="true" label="物流公司" placeholder="请选择物流公司"
right-icon="arrow-right"
>
</u-field>
<u-action-sheet :list="kuaidiList" v-model="goodsShow"></u-action-sheet>
<u-field
v-model="form.orderNum"
label="物流单号"
placeholder="请输入物流单号"
>
</u-field>
</view>
<view class="recordList">
<view class="recordItem">
<view class="recordTitle">
转账记录<text class="intro">最多上传5张</text>
<view class="section">
<u-field v-model="form.getPeopleName" label="收货人" placeholder="请输入收货人姓名">
</u-field>
<u-field v-model="form.getPeoplePhone" label="手机号" placeholder="请输入收货人手机号">
</u-field>
<u-field @click="cityShow=true" v-model="form.city" :disabled="true" label="所属城市" placeholder="请选择"
right-icon="arrow-right">
</u-field>
<u-picker mode="region" v-model="cityShow" @confirm="regionChage">{{form.city}}</u-picker>
<view class="addrDetail">
<view class="addrTitle">
详细地址
</view>
<u-input type="textarea" v-model="form.address" placeholder="请输入详细地址"></u-input>
</view>
<u-upload
:fileList="finishImageList"
:previewFullImage="true"
@afterRead="afterRead"
:maxCount="5"
@delete="deletePic"
name="1"
multiple
></u-upload>
</view>
<view class="recordItem">
<view class="recordTitle">
聊天记录<text class="intro">最多上传5张</text>
<view class="section">
<u-field @click="modeShow=true" v-model="form.setGoodsMode" :disabled="true" label="发货模式" placeholder="待选择"
right-icon="arrow-right">
</u-field>
<u-action-sheet :list="modeList" v-model="modeShow"></u-action-sheet>
<u-field v-model="form.setGoodsCompany" label="发货公司" placeholder="请输入上游公司名字">
</u-field>
<u-field v-model="form.setGoodsName" label="发货人" placeholder="请输入上游渠道商名字">
</u-field>
<u-field v-model="form.setGoodsPhone" label="发货人电话" placeholder="请输入上游渠道商电话">
</u-field>
<u-field @click="goodsShow=true" v-model="form.wuliuCompany" :disabled="true" label="物流公司"
placeholder="请选择物流公司" right-icon="arrow-right">
</u-field>
<u-action-sheet :list="kuaidiList" v-model="goodsShow"></u-action-sheet>
<u-field v-model="form.orderNum" label="物流单号" placeholder="请输入物流单号">
</u-field>
</view>
<view class="recordList">
<view class="recordItem c">
<view class="recordTitle">
转账记录<text class="intro">最多上传5张</text>
</view>
<u-upload :action="action" :header="header" @on-uploaded="transferSuccess" width="180" height="180"
:file-list="transferList" :custom-btn="true" max-count="1">
<template v-slot:addBtn>
<view class="slot-btn" hover-class="slot-btn__hover" hover-stay-time="150">
<image src="/static/news/icon-upload.png"></image>
<view class="1">上传图片</view>
</view>
</template>
</u-upload>
</view>
<view class="recordItem c">
<view class="recordTitle">
聊天记录<text class="intro">最多上传5张</text>
</view>
<u-upload :action="action" :header="header" @on-uploaded="chatSuccess" width="180" height="180"
:file-list="chatList" :custom-btn="true" max-count="1">
<template v-slot:addBtn>
<view class="slot-btn" hover-class="slot-btn__hover" hover-stay-time="150">
<image src="/static/news/icon-upload.png"></image>
<view class="1">上传图片</view>
</view>
</template>
</u-upload>
</view>
<u-upload
:fileList="chatList"
:previewFullImage="true"
@afterRead="afterRead"
:maxCount="5"
@delete="deletePic"
name="1"
multiple
></u-upload>
</view>
<view class="footerBtn" @click="onSubmit">
提交
</view>
</view>
<view class="footerBtn">
提交
</view>
</view>
</template>
<script>
export default{
data(){
return{
form:{
config:'',
shopNum:null,
auto:'',
getPeopleName:'',
getPeoplePhone:'',
city:null,
address:'',
setGoodsMode:null,
setGoodsCompany:'',
setGoodsName:'',
setGoodsPhone:'',
wuliuCompany:'',
orderNum:'',
},
modeList:[
{
import * as UploadApi from '@/api/upload'
import * as newFunApi from '@/api/newFun'
import Config from '@/core/config'
export default {
data() {
return {
form: {
config: '',
shopNum: null,
auto: '',
getPeopleName: '',
getPeoplePhone: '',
city: null,
address: '',
setGoodsMode: null,
setGoodsCompany: '',
setGoodsName: '',
setGoodsPhone: '',
wuliuCompany: '',
orderNum: '',
transferImgId:'',
chatImgId:''
},
content: '',
modeList: [{
text: '店内现货',
}
],
kuaidiList:[
{
}],
kuaidiList: [{
text: '顺丰快递',
}
],
cityShow:false,
modeShow:false,
goodsShow:false,
finishImageList:[],
chatList:[]
}
},
methods:{
showAction(){
this.modeShow = true;
},
showgoodsAction(){
this.goodsShow = true;
}],
cityShow: false,
modeShow: false,
goodsShow: false,
transferList: [],
chatList: [],
action: '',
}
},
//
async afterRead(event) {
// multiple true , file
let lists = [].concat(event.file)
let fileListLen = this[`fileList${event.name}`].length
lists.map((item) => {
this[`fileList${event.name}`].push({
...item,
status: 'uploading',
message: '上传中'
})
})
for (let i = 0; i < lists.length; i++) {
const result = await this.uploadFilePromise(lists[i].url)
if(JSON.parse(result).code==1){
let item = this[`fileList${event.name}`][fileListLen]
this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
status: 'success',
message: '',
url: result
}))
fileListLen++
}else{
this[`fileList${event.name}`].splice(fileListLen, 1)
}
onReady() {
this.action = (Config.get('apiUrl') + 'upload/image').replace("index.php?s=/", "")
this.header = {
'Storeid': uni.getStorageSync('Store').storeInfo.store_id,
'Access-Token': uni.getStorageSync('AccessToken'),
'platform': "MP-WEIXIN",
}
},
//
uploadFilePromise(url) {
return new Promise((resolve, reject) => {
let a = uni.uploadFile({
url: this.baseUrl+'/api/common/upload', //
filePath: url,
name: 'file',
formData: {
user: 'test',
token:getToken()
},
success: (res) => {
if(JSON.parse(res.data).code==1){
setTimeout(() => {
this.finishImageList.push({url:JSON.parse(res.data).data.fullurl,path:JSON.parse(res.data).data.url})
resolve(res.data)
}, 1000)
}else{
uni.$u.toast(JSON.parse(res.data).msg)
resolve(res.data)
methods: {
//
onIntelligence() {
if (!this.content) {
return this.$toast('请输入识别内容')
}
newFunApi.analysis({
content: this.content
})
.then(res => {
if (res.status) {
let data = res.data.detail
this.form.city = data.region.province + data.region.city + data.region.region;
this.form.getPeopleName = data.name
this.form.getPeoplePhone = data.phone
this.form.address = data.detail
console.log(data)
uni.showToast({
title: '识别成功',
icon: 'none',
duration: 2000
})
} else {
uni.showToast({
title: '识别失败',
icon: 'none',
duration: 2000
})
}
},
fail: (res) => {
console.log(res,"rrr")
})
.finally()
},
//
onSubmit() {
const that = this;
that.uploadFile()
that.uploadFileRecord()
if (!that.form.name) {
return that.$toast('请输入商品名称')
}
let params = {
...that.imgage_ids,
...that.imgage2_ids
}
},
showAction() {
this.modeShow = true;
},
showgoodsAction() {
this.goodsShow = true;
},
regionChage(e) {
this.form.city = e.province.name + e.city.name + e.area.name;
},
//
transferSuccess(list) {
if (list.length > 0) {
const {
response
} = list[0];
if (response.status == 200) {
uni.showToast({
title: "上传成功"
})
console.log(response.data.fileInfo.file_id)
this.form.transferImgId = response.data.fileInfo.file_id
}
});
})
},
//
deletePic(event) {
console.log(event)
// this[`fileList${event.name}`].splice(event.index, 1)
this.finishImageList.splice(event.index, 1)
},
}
},
//
chatSuccess(list) {
if (list.length > 0) {
const {
response
} = list[0];
if (response.status == 200) {
uni.showToast({
title: "上传成功"
})
console.log(response.data.fileInfo.file_id)
this.form.chatImgId = response.data.fileInfo.file_id
}
}
},
}
}
}
</script>
<style lang="scss" scoped>
page{
min-height: 100%;
background-color: #F7F8FA;
padding-bottom: 96upx;
}
.section{
background-color: #fff;
padding:0 26upx;
margin-top:16upx;
.realAddr{
padding:40upx 0 !important;
::v-deep .uni-input-wrapper{
text-align: left !important;
page {
min-height: 100%;
background-color: #F7F8FA;
padding-bottom: 96upx;
}
.section {
background-color: #fff;
padding: 0 26upx;
margin-top: 16upx;
.realAddr {
padding: 40upx 0 !important;
::v-deep .uni-input-wrapper {
text-align: left !important;
}
::v-deep .uni-input-placeholder {
white-space: pre-wrap;
}
}
::v-deep .uni-input-placeholder{
white-space: pre-wrap;
.btnContent {
display: flex;
justify-content: flex-end;
padding-bottom: 30upx;
}
.btn {
width: 120upx;
height: 50upx;
background: #FE483B;
border-radius: 19px 19px 19px 19px;
opacity: 1;
line-height: 50upx;
text-align: center;
font-size: 24upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #FFFFFF;
}
.addrDetail {
padding: 0 10upx;
.addrTitle {
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #303030;
margin-top: 32upx;
}
}
}
.btnContent{
display: flex;
justify-content: flex-end;
padding-bottom: 30upx;
.selectContent {
border-top: 1px solid transparent;
margin-top: 6upx;
padding-bottom: 100upx;
}
::v-deep .u-field {
padding: 30upx 10upx;
}
::v-deep .uni-input-wrapper {
text-align: right;
}
.recordList {
padding: 30upx;
background-color: #fff;
margin-top: 14upx;
.recordItem {
.recordTitle {
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #353535;
margin-bottom: 20upx;
.intro {
font-size: 24upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #9F9F9F;
margin-left: 28upx;
}
}
.picList {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
margin: 12upx 0;
text-align: center;
image {
width: 200upx;
height: 160upx;
}
}
}
}
.btn{
width: 120upx;
height: 50upx;
background: #FFB8B3;
border-radius: 19px 19px 19px 19px;
.footerBtn {
width: 80%;
height: 88upx;
background: #FFAAA4;
border-radius: 36px 36px 36px 36px;
opacity: 1;
line-height: 50upx;
text-align: center;
font-size: 24upx;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #FFFFFF;
line-height: 88upx;
text-align: center;
margin: 96upx auto 0 auto;
}
.addrDetail{
padding:0 10upx;
.addrTitle{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #303030;
margin-top:32upx;
.c {
padding-top: 20rpx;
overflow: hidden;
.slot-btn {
width: 180rpx;
height: 180rpx;
background: #F6F6F6;
border-radius: 10rpx;
border: 1px solid #C0C0C0;
text-align: center;
font-size: 28rpx;
font-weight: 500;
color: #6D6D6D;
.l {
line-height: 30rpx;
}
image {
width: 50rpx;
height: 50rpx;
display: block;
margin: 0 auto;
margin-top: 30rpx;
}
}
}
}
.selectContent{
border-top:1px solid transparent;
margin-top:6upx;
padding-bottom: 100upx;
}
::v-deep .u-field{
padding:30upx 10upx;
}
::v-deep .uni-input-wrapper{
text-align: right;
}
.recordList{
padding:30upx;
background-color: #fff;
margin-top:14upx;
.recordItem{
.recordTitle{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #353535;
margin-bottom: 20upx;
.intro{
font-size: 24upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #9F9F9F;
margin-left:28upx;
.photo {
display: flex;
justify-content: flex-start;
padding: 20rpx 0;
overflow: hidden;
.slot-btn {
width: 80px;
height: 80px;
background: #FFFFFF;
border-radius: 10rpx;
border: 1px solid #C0C0C0;
text-align: center;
font-size: 24rpx;
font-weight: 500;
color: #D1D1D1;
image {
width: 50rpx;
height: 50rpx;
margin-top: 20rpx;
}
}
.picList{
}
.file_img {
overflow: hidden;
position: relative;
margin-right: 10rpx;
image {
width: 80px;
height: 80px;
}
.image-delete {
position: absolute;
top: -10rpx;
right: -10rpx;
height: 42rpx;
width: 42rpx;
background: rgba(0, 0, 0, 0.64);
border-radius: 50%;
color: #fff;
font-weight: bolder;
font-size: 22rpx;
z-index: 10;
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
justify-content: space-between;
margin:12upx 0;
text-align: center;
image{
width: 200upx;
height: 160upx;
}
}
}
}
.footerBtn{
width: 80%;
height: 88upx;
background: #FFAAA4;
border-radius: 36px 36px 36px 36px;
opacity: 1;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #FFFFFF;
line-height: 88upx;
text-align: center;
margin:96upx auto 0 auto;
}
</style>
</style>

@ -1,16 +1,6 @@
<template>
<view>
<view class="selectContent" style="border:none;background-color: #fff;">
<!-- <view class="left">
物流费用
</view>
<view class="right">
<view class="price">
<text style="font-size: 26upx;">¥</text>
<text>288</text>
</view>
<u-icon name="arrow-right" color="#C3C3C3" size="28"></u-icon>
</view> -->
<u-field @click="showAction" v-model="form.mode"
:disabled="true" label="发货模式" placeholder="请选择"
right-icon="arrow-right"
@ -49,7 +39,7 @@
placeholder="请填写物流单号"
>
</u-field>
<view class="getWuliu">
<view class="getWuliu" @click="onLogistics">
查看物流
</view>
</view>
@ -88,6 +78,7 @@
</template>
<script>
import * as newFunApi from '@/api/newFun'
export default{
data(){
return{
@ -125,6 +116,11 @@ export default{
showgoodsAction(){
this.goodsShow = true;
},
onLogistics(){
uni.navigateTo({
url: "/pages/news3/LogisticsInquiry"
})
},
}
}
</script>

@ -1,242 +1,340 @@
<template>
<view class="updatePrice">
<view class="head-info">
<!-- 搜索 -->
<view class="searchContent">
<u-input v-model="searchText" placeholder="商品名称/编码"/>
<u-icon name="search" class="search"></u-icon>
</view>
</view>
<view class="bg">
<image :src="$picUrl+'/static/news3/bg.png'" mode="widthFix"></image>
<view class="text">
只属于非商城订单
<view class="updatePrice" style="padding-bottom: 120upx;">
<view class="head-info">
<!-- 搜索 -->
<view class="searchContent">
<u-input v-model="searchText" placeholder="商品名称/编码" />
<u-icon name="search" class="search" @click="getOrderList(1)"></u-icon>
</view>
</view>
</view>
<view class="dispatchContent">
<view class="orderNum">
订单号7868867676878676876
<view class="bg">
<image :src="$picUrl+'/static/news3/bg.png'" mode="widthFix"></image>
<view class="text">
只属于非商城订单
</view>
</view>
<view class="dispatchItem">
<image :src="$picUrl+'/static/news3/filter.png'" mode="aspectFill"></image>
<view class="right">
<view class="title">
联想小新笔记本电脑2023年新款
</view>
<view class="subTitle">
16GB128GB
</view>
<view style="display: flex;align-items: center;justify-content: space-between;">
<view class="num">
x1
<view class="dispatchContent" v-for="(item, index) in goodsList" :key="index">
<view class="orderNum">
订单号{{item.express_no}}
</view>
<view class="dispatchItem" v-for="(item1, index) in item.goods">
<image :src="item1.goods.goods_image" mode="aspectFill"></image>
<view class="right">
<view class="title">
{{item1.goods.goods_name}}
</view>
<view class="price">
<text style="font-size: 26upx;">¥</text>
<text>288</text>
<!-- <view class="subTitle">
{{item1.goods.goods_name}}
</view> -->
<view style="display: flex;align-items: center;justify-content: space-between;">
<view class="num">
x{{item1.goods.total_num}}
</view>
<view class="price">
<text style="font-size: 26upx;">¥</text>
<text>{{item1.goods.goods_price}}</text>
</view>
</view>
</view>
</view>
</view>
<view class="totalNum">
<text>含运费¥5</text>
<text>共计</text>
<text>¥2500</text>
</view>
<view class="footerBtn">
<view class="wuliuBtn">
调货记录
<view class="totalNum">
<text>含运费¥5</text>
<text>共计</text>
<text>¥2500</text>
</view>
<view class="footerBtn">
<view class="wuliuBtn" @click="onCondiments">
调货记录
</view>
</view>
</view>
</view>
</view>
<view class="footerBtns" @click="manualEntry">
手动录入
</view>
</template>
<script>
export default{
data(){
return{
searchText:''
import * as newFunApi from '@/api/newFun'
export default {
data() {
return {
searchText: '',
goodsList: [],
total: 1,
pageNum: 1,
}
},
onLoad(o) {
this.getOrderList(1)
},
onShow() {
},
onPullDownRefresh() {
this.pageNum = 1;
this.goodsList = [];
setTimeout(() => {
uni.stopPullDownRefresh();
}, 1000)
},
onReachBottom() {
if (this.goodsList.length <= this.total) {
this.pageNum++;
}
},
methods: {
//
manualEntry() {
uni.navigateTo({
url: "/pages/news3/ManualEntry"
})
},
//
onCondiments() {
uni.navigateTo({
url: "/pages/news3/seasoningCondimentsRecord"
})
},
/**
* 获取商品列表
*/
async getOrderList(type) {
uni.showLoading({
title: "加载中"
})
if (type == 1) {
this.pageNum = 1;
this.goodsList = []
}
let {
status,
message,
data
} = await newFunApi.deliveryList({
page: this.pageNum,
searchText:this.searchText
});
if (status == 200) {
this.goodsList = this.goodsList.concat(data.list.data)
this.total = data.list.total
}
},
onClassify(index) {
this.pageNum = 1;
this.goodsList = []
this.getOrderList();
},
}
},
methods:{
}
}
};
</script>
<style lang="scss" scoped>
page{
min-height: 100%;
background-color: #F7F8FA;
padding:0 20upx;
}
.head-info{
margin:22upx 20upx;
.searchContent{
display: flex;
align-items: center;
justify-content: space-between;
page {
min-height: 100%;
background-color: #F7F8FA;
padding: 0 20upx;
}
.head-info {
margin: 22upx 20upx;
.searchContent {
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
::v-deep .u-input {
background: #FFFFFF;
border-radius: 30px 30px 30px 30px;
opacity: 1;
width: 100%;
padding-left: 90upx !important;
}
.search {
position: absolute;
top: 20upx;
left: 26upx;
z-index: 9;
}
}
}
.bg {
position: relative;
::v-deep .u-input{
background: #FFFFFF;
border-radius: 30px 30px 30px 30px;
opacity: 1;
width:100%;
padding-left:90upx !important;
image {
width: 100%;
height: auto;
}
.search{
.text {
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
font-size: 42upx;
font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
font-weight: 400;
color: #FFFFFF;
position: absolute;
top:20upx;
left:26upx;
z-index:9;
left: 0;
top: 0;
}
}
}
.bg{
position: relative;
image{
width:100%;
height:auto;
}
.text{
height:100%;
width:100%;
display: flex;
align-items: center;
justify-content: center;
font-size: 42upx;
font-family: YouSheBiaoTiHei, YouSheBiaoTiHei;
.orderNum {
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #FFFFFF;
position: absolute;
left: 0;
top:0;
color: #707070;
margin: 10upx 30upx;
}
}
.orderNum{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #707070;
margin:10upx 30upx;
}
.dispatchContent{
margin:20upx 0;
background: #FFFFFF;
// border-radius: 6px 6px 6px 6px;
opacity: 1;
padding:20upx 10upx;
}
.dispatchItem{
display: flex;
align-items: center;
image{
width: 194upx;
height:194upx;
.dispatchContent {
margin: 20upx 0;
background: #FFFFFF;
// border-radius: 6px 6px 6px 6px;
opacity: 1;
padding: 20upx 10upx;
}
.right{
flex:1;
margin-left:40upx;
position: relative;
.dispatchItem {
display: flex;
flex-direction: column;
justify-content: space-around;
.title{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #3B3B3B;
align-items: center;
image {
width: 194upx;
height: 194upx;
}
.subTitle{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #7C7C7C;
margin:14upx 0;
.right {
flex: 1;
margin-left: 40upx;
position: relative;
display: flex;
flex-direction: column;
justify-content: space-around;
.title {
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #3B3B3B;
}
.subTitle {
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #7C7C7C;
margin: 14upx 0;
}
.num {
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #1E1E1E;
}
.price {
display: flex;
align-items: center;
justify-content: flex-end;
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #F21A1C;
}
}
.num{
font-size: 28upx;
}
.totalNum {
text-align: right;
margin-top: 70upx;
text:first-child {
font-size: 24upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #1E1E1E;
color: #B7B7B7;
}
.price{
display: flex;
align-items: center;
justify-content: flex-end;
text:nth-child(2) {
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #3B3B3B;
margin: 0 10upx;
}
text:nth-child(3) {
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 600;
color: #F21A1C;
}
}
}
.totalNum{
text-align: right;
margin-top:70upx;
text:first-child{
font-size: 24upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #B7B7B7;
.footerBtn {
padding: 30upx;
display: flex;
align-items: center;
border-top: 1px solid #F0F0F0;
justify-content: flex-end;
margin-top: 30upx;
}
text:nth-child(2){
font-size: 32upx;
.wuliuBtn {
// padding:8upx 46upx;
text-align: center;
height: 70upx;
line-height: 66upx;
border: 1px solid #F63116;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #3B3B3B;
margin:0 10upx;
color: #F83F11;
border-radius: 20px;
width: 200upx;
}
text:nth-child(3){
font-size: 32upx;
.footerBtns {
width: 94%;
height: 100rpx;
background: #F55349;
border-radius: 6px 6px 6px 6px;
position: fixed;
bottom: 20rpx;
margin: 0 auto;
margin-top: 40upx;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 600;
color: #F21A1C;
font-weight: 500;
color: #FFFFFF;
text-align: center;
line-height: 100upx;
}
}
.footerBtn{
padding:30upx;
display: flex;
align-items: center;
border-top:1px solid #F0F0F0;
justify-content: flex-end;
margin-top:30upx;
}
.wuliuBtn{
// padding:8upx 46upx;
text-align: center;
height:70upx;
line-height: 66upx;
border:1px solid #F63116;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #F83F11;
border-radius:20px;
width:200upx;
}
</style>
</style>

@ -387,7 +387,7 @@
that.payBanlance()
return
}
cashier.orderPay(that.orderID).then(res => {
cashier.orderPay(that.orderId).then(res => {
if (res.status == 200) {
let paymentData = res.data.payment

Loading…
Cancel
Save