Browse Source

对接登录

master
前端-胡立永 10 months ago
parent
commit
1bff55b08a
16 changed files with 875 additions and 760 deletions
  1. +12
    -1
      api/api.js
  2. +44
    -41
      components/config/customerServicePopup.vue
  3. +143
    -0
      components/user/productList - 副本.vue
  4. +148
    -78
      components/user/productList.vue
  5. +233
    -0
      components/user/visualization.vue
  6. +1
    -3
      pages.json
  7. +9
    -1
      pages/index/center2.vue
  8. +6
    -6
      pages/index/index.vue
  9. +64
    -13
      pages/index/tradingPlatform.vue
  10. +6
    -6
      pages_order/center/systemSet.vue
  11. +1
    -1
      pages_order/components/order/myOrderList.vue
  12. +16
    -14
      pages_order/components/order/orderList.vue
  13. +90
    -4
      pages_order/order/offerOrBillLading.vue
  14. +0
    -567
      pages_order/order/orderDetail.vue
  15. +93
    -23
      pages_order/order/orderDetail2.vue
  16. +9
    -2
      pages_order/tradingPlatform/nowOrder.vue

+ 12
- 1
api/api.js View File

@ -214,7 +214,18 @@ const config = {
url: '/product/specsList', url: '/product/specsList',
method: 'GET', method: 'GET',
}, },
// 新铝价接口
alpriceNew: {
url: '/index/alpriceNew',
method: 'POST',
},
// 查询仓库地址
confAddressList : {
url: '/address/confAddressList',
method: 'GET',
},
} }


+ 44
- 41
components/config/customerServicePopup.vue View File

@ -7,12 +7,12 @@
<view class="center">{{ $t('components.confirmCallCustomerService') }}?</view> <view class="center">{{ $t('components.confirmCallCustomerService') }}?</view>
<view class="bottom"> <view class="bottom">
<view> <view>
<uv-button type="info" shape="circle" :text="$t('components.cancel')" :custom-style="customStyle1"
@click="close"></uv-button>
<uv-button type="info" shape="circle" :text="$t('components.cancel')"
:custom-style="customStyle1" @click="close"></uv-button>
</view> </view>
<view> <view>
<uv-button type="info" shape="circle" :text="$t('components.confirmD')" :custom-style="customStyle2"
@click="confirm"></uv-button>
<uv-button type="info" shape="circle" :text="$t('components.confirmD')"
:custom-style="customStyle2" @click="confirm"></uv-button>
</view> </view>
</view> </view>
</view> </view>
@ -21,13 +21,15 @@
</template> </template>
<script> <script>
import {mapState} from 'vuex'
import {
mapState
} from 'vuex'
export default {
export default {
data() { data() {
return { return {
show: false, show: false,
phone:'',
phone: '',
} }
}, },
computed: { computed: {
@ -66,7 +68,7 @@ export default {
// this.getCustomPhone() // this.getCustomPhone()
}, },
methods: { methods: {
getCustomPhone(){
getCustomPhone() {
this.$api('getImagePhoneOther', res => { this.$api('getImagePhoneOther', res => {
console.log(res) console.log(res)
this.phone = res.result.phone this.phone = res.result.phone
@ -80,40 +82,41 @@ export default {
}, },
// //
confirm() { confirm() {
var that = this;
var that = this;
this.show = false this.show = false
console.log('拨打电话', that.customerPhone)
const res = uni.getSystemInfoSync();
// ios
if (res.platform == 'ios') {
uni.makePhoneCall({
phoneNumber: that.customerPhone,
success() {
console.log('ios拨打成功');
},
fail() {
console.log('ios拨打失败');
}
})
} else {
//showActionSheet
uni.showActionSheet({
itemList: [phone, '呼叫'],
success: function(res) {
if (res.tapIndex == 1) {
uni.makePhoneCall({
phoneNumber: that.customerPhone,
success() {
console.log('安卓拨打成功');
},
fail() {
console.log('安卓拨打失败');
}
})
}
}
})
}
uni.makePhoneCall({
phoneNumber: that.customerPhone,
})
return
// console.log('', that.customerPhone)
// const res = uni.getSystemInfoSync();
// // ios
// if (res.platform == 'ios') {
// uni.makePhoneCall({
// phoneNumber: that.customerPhone,
// success() {
// console.log('ios');
// },
// fail() {
// console.log('ios');
// }
// })
// } else {
// //showActionSheet
// uni.showActionSheet({
// itemList: [that.customerPhone, ''],
// success: function(res) {
// if (res.tapIndex == 1) {
// uni.makePhoneCall({
// phoneNumber: that.customerPhone,
// })
// }
// }
// })
// }
}, },
} }
} }


+ 143
- 0
components/user/productList - 副本.vue View File

@ -0,0 +1,143 @@
<template>
<view class="list">
<view class="item" v-for="(item, index) in list"
@click="immediatePurchase(item)" :key="index">
<image class="image" :src="item.pic" mode="aspectFill"></image>
<view class="info">
<view class="title">
{{ $t('other.aluminumProducts') }}
</view>
<view class="price">
<text>{{item.price}}</text>
{{ $t('components.unitPrice2') }}
</view>
<view class="num">
<!-- 最多批发*快速下单 -->
库存数量{{ item.num }}
</view>
</view>
<view class="btn">
<view class="change">
{{ $t('components.immediatePurchase') }}
</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: "productList",
props: {
list: {
type: Array,
default: false
},
},
data() {
return {};
},
methods: {
//
immediatePurchase(item) {
console.log("====")
// var itemStr = encodeURIComponent(JSON.stringify(item));
this.$store.state.productDetail = item
uni.navigateTo({
url: `/pages_order/tradingPlatform/nowOrder`,
});
}
},
}
</script>
<style scoped lang="scss">
.list {
display: flex;
justify-content: center;
flex-wrap: wrap;
.item {
position: relative;
width: 300rpx;
padding: 20rpx;
background-color: #fff;
border-radius: 20rpx;
margin-top: 20rpx;
&:nth-child(odd) {
margin-right: 20rpx;
}
.image {
width: 300rpx;
height: 250rpx;
border-radius: 20rpx;
}
.info {
font-size: 26rpx;
.title {
font-size: 30rpx;
color: #000;
}
.price {
color: #D03F25;
margin-top: 6rpx;
text {
font-size: 34rpx;
font-weight: 900;
}
}
.favorable {
display: flex;
background-image: url(/static/image/product/favorable.png);
background-size: 100% 100%;
width: fit-content;
padding: 5rpx 10rpx;
font-size: 18rpx;
margin-top: 6rpx;
.p {
color: #fff;
margin-left: 10rpx;
}
}
.num {
margin-top: 6rpx;
font-size: 22rpx;
color: #888;
}
}
.btn {
position: absolute;
right: 0rpx;
bottom: 0rpx;
padding: 10rpx;
border-radius: 50%;
//background-color: $uni-color;
.change {
display: flex;
align-items: center;
justify-content: center;
border-radius: 40rpx;
color: white;
font-size: 22rpx;
//margin: 20rpx 10rpx 0 0;
padding: 10rpx 10rpx;
background: #2b467a;
border: 1px solid #757986;
//margin-top: 20rpx;
//border-radius: 40rpx;
}
}
}
}
</style>

+ 148
- 78
components/user/productList.vue View File

@ -1,40 +1,88 @@
<template> <template>
<view class="list">
<view class="item" v-for="(item, index) in list" @click="immediatePurchase(item)" :key="index">
<image class="image" :src="item.pic" mode="aspectFill"></image>
<view class="info">
<view class="title">
{{ $t('other.aluminumProducts') }}
<view class="page">
<view v-if="list.length>0" class="item"
v-for="(item, index) in list" :key="index">
<view class="top">
<view class="service">
<text>{{ item.specsName }}</text>
</view> </view>
<view class="price">
<text>{{item.price}}</text>
{{ $t('components.unitPrice2') }}
<view class="status">
<text>库存{{ item.num }}</text>
</view> </view>
<view class="num">
<!-- 最多批发*快速下单 -->
库存数量{{ item.num }}
</view>
<view class="zhuti">
<view class="left">
<image :src="item.pic" style="width: 100%;height: 100%;"
mode="aspectFill"/>
</view>
<view class="right">
<view class="text-hidden-1">
单价 {{ item.price }}
</view>
<view class="text-hidden-1">
{{ $t('other.pickupAddress') }}{{ item.address }}
</view>
<view class="text-hidden-1">
{{ $t('other.pickupDate') }}{{ item.createTime }}
</view>
</view> </view>
<!--审核状态 0审核中 1 审核通过 2审核未通过-->
<!-- <view class="tip" v-if="item.showStatus == 0">
<img v-if="item.auditStatus==0" src="/pages_order/static/order/3.svg" style="width: 100%;height: 100%;" />
<img v-if="item.auditStatus==1" src="/pages_order/static/order/1.svg" style="width: 100%;height: 100%;" />
<img v-if="item.auditStatus==2" src="/pages_order/static/order/2.svg" style="width: 100%;height: 100%;" />
</view> -->
</view> </view>
<view class="btn">
<view class="change">
{{ $t('components.immediatePurchase') }}
<!--撤单按钮-->
<view class="bottom">
<view @click.stop="showVideo(item)" class="btn"
v-if="item.reportVideo"
>
检测视频
</view>
<view @click.stop="showImage(item)" class="btn"
v-if="item.report"
>
检测报告
</view>
<view @click.stop="immediatePurchase(item)" class="btn a"
>
立即下单
</view> </view>
</view> </view>
</view> </view>
<!--无历史记录-->
<view style="padding: 100rpx 0;" v-else>
<uv-empty mode="history" textSize="28rpx" iconSize="100rpx" />
</view>
</view> </view>
</template> </template>
<script> <script>
export default { export default {
name: "productList",
name: "orderList",
props: { props: {
list: { list: {
type: Array, type: Array,
default: false default: false
}, },
showBackOrder: {
type: Boolean,
default: false
}
}, },
data() { data() {
return {};
return {}
}, },
methods: { methods: {
// //
@ -45,98 +93,120 @@
uni.navigateTo({ uni.navigateTo({
url: `/pages_order/tradingPlatform/nowOrder`, url: `/pages_order/tradingPlatform/nowOrder`,
}); });
}
},
},
showImage(item){
uni.previewImage({
urls : item.report.split(','),
current : 0,
})
},
showVideo(item, index = 0){
this.$emit('previewVideo', {
urls : item.reportVideo.split(','), //
index, //
})
},
}
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.list {
.page {
display: flex; display: flex;
justify-content: center;
flex-wrap: wrap;
flex-direction: column;
gap: 20rpx;
// height: calc(90vh - 180rpx);
.item { .item {
position: relative;
width: 300rpx;
margin: 0 20rpx;
padding: 20rpx; padding: 20rpx;
border-radius: 40rpx;
background-color: #fff; background-color: #fff;
border-radius: 20rpx;
margin-top: 20rpx;
//overflow: hidden;
//height:300px;
&:nth-child(odd) {
margin-right: 20rpx;
}
.top {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 30rpx;
.image {
width: 300rpx;
height: 250rpx;
border-radius: 20rpx;
.service {
color: #000;
}
.status {
color: #8d8d8d;
font-size: 26rpx;
font-weight: 600;
}
} }
.info {
font-size: 26rpx;
.zhuti {
display: flex;
margin: 10rpx 0;
position: relative;
.title {
font-size: 30rpx;
color: #000;
}
.price {
color: #D03F25;
margin-top: 6rpx;
.left {
width: 150rpx;
height: 150rpx;
border-radius: 10rpx;
text {
font-size: 34rpx;
font-weight: 900;
image {
width: 150rpx;
height: 150rpx;
border-radius: 10rpx;
} }
} }
.favorable {
display: flex;
background-image: url(/static/image/product/favorable.png);
background-size: 100% 100%;
width: fit-content;
padding: 5rpx 10rpx;
font-size: 18rpx;
margin-top: 6rpx;
.p {
color: #fff;
margin-left: 10rpx;
}
.right {
width: calc(100% - 160rpx);
color: #777;
font-size: 24rpx;
padding-left: 20rpx;
line-height: 40rpx;
background-color: #f8f8f8;
} }
.num {
margin-top: 6rpx;
font-size: 22rpx;
color: #888;
.tip {
width: 80rpx;
height: 80rpx;
position: absolute;
bottom: -20rpx;
right: -20rpx;
} }
} }
.btn {
position: absolute;
right: 0rpx;
bottom: 0rpx;
padding: 10rpx;
border-radius: 50%;
//background-color: $uni-color;
.change {
.bottom {
display: flex;
justify-content: flex-end;
.btn {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
// width: ;
padding: 0 24rpx;
height: 50rpx;
border-radius: 40rpx; border-radius: 40rpx;
color: white;
font-size: 22rpx;
//margin: 20rpx 10rpx 0 0;
padding: 10rpx 10rpx;
background: #2b467a;
border: 1px solid #757986;
color: $uni-color;
font-size: 24rpx;
margin: 20rpx 10rpx 0 0;
background: #ffffff;
border: 1px solid $uni-color;
//margin-top: 20rpx; //margin-top: 20rpx;
//border-radius: 40rpx;
border-radius: 40rpx;
}
.a{
background-color: $uni-color;
color: #fff;
} }
} }
} }
} }
</style> </style>

+ 233
- 0
components/user/visualization.vue View File

@ -0,0 +1,233 @@
<template>
<view class="visualization">
<uv-tabs :list="tabs"
lineColor="#fff"
:inactiveStyle="{color : '#aaa', fontSize : '24rpx'}"
:activeStyle="{color : '#fff', fontSize : '24rpx'}"
@click="clickTabs"></uv-tabs>
<div class="chartContainer"
ref="chartContainer"></div>
</view>
</template>
<script>
import * as echarts from 'echarts';
export default {
data() {
return {
tabs : [
{
name : '长江现货铝均价',
},
{
name : '国内现货铝均价',
},
{
name : '国外现货铝均价',
},
{
name : '伦敦铝均价',
},
],
series : [
{
name: '长江现货铝均价',
type: 'line',
data: [],
smooth: true,
symbol: 'circle',
symbolSize: 8,
itemStyle: {
color: '#4ECDC4'
},
lineStyle: {
color: '#4ECDC4',
width: 2
},
areaStyle: {
color: '#4ECDC422'
},
},
{
name: '国内现货铝均价',
type: 'line',
data: [],
smooth: true,
symbol: 'circle',
symbolSize: 8,
itemStyle: {
color: '#ff0'
},
lineStyle: {
color: '#ff0',
width: 2
},
areaStyle: {
color: '#ffff0022'
},
},
{
name: '国外现货铝均价',
type: 'line',
data: [],
smooth: true,
symbol: 'circle',
symbolSize: 8,
itemStyle: {
color: '#cd0000'
},
lineStyle: {
color: '#cd0000',
width: 2
},
areaStyle: {
color: '#cd000022'
},
},
{
name: '伦敦铝均价',
type: 'line',
data: [],
smooth: true,
symbol: 'circle',
symbolSize: 8,
itemStyle: {
color: '#c800ff'
},
lineStyle: {
color: '#c800ff',
width: 2
},
areaStyle: {
color: '#c800ff22'
},
},
],
dates : [],
index : 0,
myChart : null,
}
},
created() {
this.getData()
},
methods: {
getData(){
this.$api("alpriceNew", res => {
if(res.code == 200){
let data = res.result
this.dates = data[0].map(n => this.$dayjs(n.priceDate)
.format('MM-DD'))
this.series.forEach((s, i) => {
if(data[i]){
s.data = data[i].map(n => n.price)
}
})
const chartContainer = this.$refs.chartContainer;
if (!chartContainer) {
console.error("Chart container not found");
return;
}
this.myChart = echarts.init(chartContainer);
this.initChart()
}
})
},
initChart(data) {
var that = this;
let serie = this.series[this.index]
// ECharts
const option = {
backgroundColor: '#1B263B',
title: {
text: `${serie.name} ${serie.data[serie.data.length - 1].toFixed(4)}`,
right: '10%',
top: '10%',
textStyle: {
color: '#fff',
fontSize: 12
}
},
// legend: {
// data: ['', '', ''],
// textStyle: {
// color: '#fff',
// fontSize : '9px'
// },
// },
tooltip: {
trigger: 'axis',
formatter: '{c0}',
backgroundColor: '#3A506B',
textStyle: {
color: '#fff',
}
},
grid: {
left: '58px',
right: '1%',
bottom: '15%'
},
xAxis: {
type: 'category',
data: this.dates,
axisLine: {
lineStyle: {
color: '#fff'
},
},
axisLabel: {
color: '#fff',
fontSize : '10px',
}
},
yAxis: {
type: 'value',
axisLine: {
lineStyle: {
color: '#fff'
}
},
axisLabel: {
color: '#fff',
formatter: function(value) {
return value;
}
}
},
series: [this.series[this.index]]
};
this.myChart.setOption(option);
},
clickTabs(e){
console.log(e);
this.index = e.index
this.initChart()
},
},
}
</script>
<style scoped lang="scss">
.visualization{
background-color: #1B263B;
padding: 20rpx 0;
.chartContainer{
width: 100%;
height: 300px;
}
}
</style>

+ 1
- 3
pages.json View File

@ -39,9 +39,7 @@
}, },
"subPackages": [{ "subPackages": [{
"root": "pages_order", "root": "pages_order",
"pages": [{
"path": "order/orderDetail"
},
"pages": [
{ {
"path": "auth/selectionIdentity" "path": "auth/selectionIdentity"
}, },


+ 9
- 1
pages/index/center2.vue View File

@ -94,7 +94,15 @@
data() { data() {
return { return {
// //
supplierList: [{
supplierList: [
{
text: `${this.$t('other.Myorder')}`,
englishText: 'Myorder',
value: ">",
imgUrl: '/static/image/center/14.svg',
toPathUrl: '/pages_order/order/myOrders'
},
{
text: `${this.$t('pageTitle.myOrders')}`, text: `${this.$t('pageTitle.myOrders')}`,
englishText: 'myOrders', englishText: 'myOrders',
value: ">", value: ">",


+ 6
- 6
pages/index/index.vue View File

@ -4,7 +4,6 @@
<!--顶部栏--> <!--顶部栏-->
<topbar showRight="1"></topbar> <topbar showRight="1"></topbar>
<!-- 供应商 --> <!-- 供应商 -->
<view class="supplier"> <view class="supplier">
@ -18,6 +17,8 @@
<!-- imgMode="widthFix" --> <!-- imgMode="widthFix" -->
</view> </view>
<visualization/>
<!--报价和挂单--> <!--报价和挂单-->
<view class="btns" v-if="userShop"> <view class="btns" v-if="userShop">
<span @click="goToPage(0)" class="oneBtn"> <span @click="goToPage(0)" class="oneBtn">
@ -39,17 +40,16 @@
import topbar from '@/components/base/topbar.vue' import topbar from '@/components/base/topbar.vue'
import tabber from '@/components/base/tabbar.vue' import tabber from '@/components/base/tabbar.vue'
import productList from '@/components/user/productList.vue' import productList from '@/components/user/productList.vue'
import {
mapGetters
} from 'vuex'
import { mapGetters } from 'vuex'
import changeLanguage from '@/components/base/changeLanguage.vue' import changeLanguage from '@/components/base/changeLanguage.vue'
import visualization from '@/components/user/visualization.vue'
export default { export default {
components: { components: {
tabber, tabber,
topbar, topbar,
productList, productList,
changeLanguage
changeLanguage,
visualization,
}, },
data() { data() {
return { return {


+ 64
- 13
pages/index/tradingPlatform.vue View File

@ -8,37 +8,58 @@
<!--折线图--> <!--折线图-->
<div ref="chartContainer" class="chart" style="width: 100%; height: 300px;">
<!-- <div ref="chartContainer" class="chart" style="width: 100%; height: 300px;">
</div>
</div> -->
<visualization/>
<!-- 供应商 --> <!-- 供应商 -->
<view v-if="userShop" class="supplier">
<!-- <view v-if="userShop" class="supplier">
<view class="purchaser-title" style=""> <view class="purchaser-title" style="">
<span class="active"> {{ $t('other.orderList') }}</span> <span class="active"> {{ $t('other.orderList') }}</span>
<!-- <span v-for="(item, index) in type" :class="actionIndex == index ? 'active' : 'noactive'"
@click="actionIndexChange(index)">{{ item.name }}</span> -->
<span v-for="(item, index) in type" :class="actionIndex == index ? 'active' : 'noactive'"
@click="actionIndexChange(index)">{{ item.name }}</span>
</view> </view>
<view class="supplierList"> <view class="supplierList">
<orderList :list="list" /> <orderList :list="list" />
</view> </view>
</view>
</view> -->
<!-- 采购商 --> <!-- 采购商 -->
<view v-else class="purchaser">
<view class="purchaser">
<!--切换现货/期货--> <!--切换现货/期货-->
<view class="purchaser-title" style=""> <view class="purchaser-title" style="">
<span v-for="(item, index) in type" :class="actionIndex == index ? 'active' : 'noactive'" <span v-for="(item, index) in type" :class="actionIndex == index ? 'active' : 'noactive'"
@click="actionIndexChange(index)">{{ item.name }}</span> @click="actionIndexChange(index)">{{ item.name }}</span>
</view> </view>
<view class="productList"> <view class="productList">
<productList :list="list" />
<productList :list="list" @previewVideo="previewVideo"/>
</view> </view>
</view> </view>
</view> </view>
<uv-popup ref="previewVideoPopup"
:customStyle="{backgroundColor : 'transparent'}">
<view class="content">
<video :src="vedioUrl"
style="width: 100vw;height: 100vh;"
></video>
<view class="closexxxxx"
@click="$refs.previewVideoPopup.close()">
<uv-icon
name="close"
color="#fff"
size="50rpx"
></uv-icon>
</view>
</view>
</uv-popup>
<tabber select="1" /> <tabber select="1" />
</view> </view>
</template> </template>
@ -53,6 +74,7 @@
import OrderList from "@/pages_order/components/order/orderList.vue"; import OrderList from "@/pages_order/components/order/orderList.vue";
import mixinList from '@/mixins/list.js' import mixinList from '@/mixins/list.js'
import * as echarts from 'echarts'; import * as echarts from 'echarts';
import visualization from '@/components/user/visualization.vue'
export default { export default {
mixins: [mixinList], mixins: [mixinList],
@ -61,6 +83,7 @@
ProductList, ProductList,
topbar, topbar,
tabber, tabber,
visualization,
}, },
computed: { computed: {
...mapGetters(['userShop']), ...mapGetters(['userShop']),
@ -71,12 +94,13 @@
mixinsListApi: 'getMyProductlist', mixinsListApi: 'getMyProductlist',
type: [ type: [
{ {
name: this.$t('other.futuresTrading')
name: '国内现货'
}, },
{ {
name: this.$t('other.spotTrading')
name: '国外现货'
}, },
], ],
vedioUrl : '',
chartData: [ chartData: [
// {date: "08/16", value: 10}, // {date: "08/16", value: 10},
// {date: "08/17", value: 15}, // {date: "08/17", value: 15},
@ -97,7 +121,7 @@
onLoad() { onLoad() {
if (this.userShop) { if (this.userShop) {
// //
this.mixinsListApi = 'productlist'
this.mixinsListApi = 'productList' //'productlist'
} else { } else {
// / // /
this.mixinsListApi = 'productList' this.mixinsListApi = 'productList'
@ -111,7 +135,7 @@
// }) // })
}, },
onShow() { onShow() {
this.getAlPrice()
// this.getAlPrice()
}, },
methods: { methods: {
@ -227,6 +251,23 @@
this.queryParams.productType = this.actionIndex this.queryParams.productType = this.actionIndex
this.getData() this.getData()
}, },
previewVideo(data){
if(data.urls.length > 1){
uni.showActionSheet({
itemList: data.urls.map((n, i) => i),
success : e => {
this.vedioUrl = data.urls[e.tapIndex]
this.$refs.previewVideoPopup.open();
}
})
}else{
this.vedioUrl = data.urls[data.index]
this.$refs.previewVideoPopup.open();
}
},
} }
} }
</script> </script>
@ -312,9 +353,19 @@
.productList { .productList {
margin-top: 20rpx; margin-top: 20rpx;
// height: 60vh; // height: 60vh;
overflow: auto;
// overflow: auto;
} }
} }
} }
.closexxxxx{
background-color: #00000055;
padding: 30rpx;
position: fixed;
top: 30rpx;
right: 30rpx;
border-radius: 50%;
z-index: 99999999;
}
} }
</style> </style>

+ 6
- 6
pages_order/center/systemSet.vue View File

@ -101,12 +101,12 @@
rightIcon: ">", rightIcon: ">",
toUrl: '/pages_order/auth/selectionIdentity' toUrl: '/pages_order/auth/selectionIdentity'
}, },
{
leftIcon: "../../static/image/center/4.svg",
text: this.$t('pageTitle.addressList'),
rightIcon: ">",
toUrl: '/pages_order/center/addressListManage'
},
// {
// leftIcon: "../../static/image/center/4.svg",
// text: this.$t('pageTitle.addressList'),
// rightIcon: ">",
// toUrl: '/pages_order/center/addressListManage'
// },
] ]
} }
], ],


+ 1
- 1
pages_order/components/order/myOrderList.vue View File

@ -139,7 +139,7 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 20rpx; gap: 20rpx;
height: calc(90vh - 180rpx);
// height: calc(90vh - 180rpx);
.content { .content {
position: relative; position: relative;


+ 16
- 14
pages_order/components/order/orderList.vue View File

@ -1,9 +1,12 @@
<template> <template>
<view class="page"> <view class="page">
<view v-if="list.length>0" class="item" v-for="(item, index) in list" :key="index">
<view v-if="list.length>0" class="item"
@click="lookDetail(item)"
v-for="(item, index) in list" :key="index">
<view class="top"> <view class="top">
<view class="service"> <view class="service">
<text>{{ $t('other.aluminumProducts') }}</text>
<text>{{ item.specsName }}</text>
<!-- <text>{{ $t('other.aluminumProducts') }}</text> -->
</view> </view>
<view class="status"> <view class="status">
<text v-if="item.showStatus"> {{ item.showStatus_dictText }}</text> <text v-if="item.showStatus"> {{ item.showStatus_dictText }}</text>
@ -18,7 +21,7 @@
mode="aspectFill"/> mode="aspectFill"/>
</view> </view>
<view class="right" @click="lookDetail(item,index)">
<view class="right">
<view class="text-hidden-1" v-if="item.userName"> <view class="text-hidden-1" v-if="item.userName">
{{ $t('components.customerName') }} {{ item.userName }} {{ $t('components.customerName') }} {{ item.userName }}
</view> </view>
@ -28,9 +31,9 @@
<view class="text-hidden-1"> <view class="text-hidden-1">
库存数量{{ item.num }} 库存数量{{ item.num }}
</view> </view>
<view class="text-hidden-1">
<!-- <view class="text-hidden-1">
规格{{ item.specsName }} 规格{{ item.specsName }}
</view>
</view> -->
<view class="text-hidden-1"> <view class="text-hidden-1">
{{ $t('other.pickupAddress') }}{{ item.address }} {{ $t('other.pickupAddress') }}{{ item.address }}
</view> </view>
@ -58,13 +61,13 @@
v-if="showBackOrder"> v-if="showBackOrder">
<!-- 挂单状态 0挂单 1 已撤单 2未挂单 --> <!-- 挂单状态 0挂单 1 已撤单 2未挂单 -->
<view @click="backOrder(item.id)" class="btn"
<!-- <view @click.stop="backOrder(item.id)" class="btn"
v-if="item.showStatus == 0"> v-if="item.showStatus == 0">
{{ $t('other.withdrawOrder') }} {{ $t('other.withdrawOrder') }}
</view>
</view> -->
<!-- 审核不通过 --> <!-- 审核不通过 -->
<view @click="toEdit(item)" class="btn"
<view @click.stop="toEdit(item)" class="btn"
v-if="item.auditStatus == 2"> v-if="item.auditStatus == 2">
重新申请 重新申请
</view> </view>
@ -98,13 +101,12 @@
// //
lookDetail(item, index) { lookDetail(item, index) {
// //
if (this.showBackOrder && item.showStatus == 0) {
if (this.showBackOrder) {
this.$store.state.orderDetail = item this.$store.state.orderDetail = item
// uni.navigateTo({
// url: `/pages_order/order/myOrderDetail`
// });
uni.navigateTo({
url: `/pages_order/order/orderDetail2`
});
} }
}, },
@ -150,7 +152,7 @@
flex-direction: column; flex-direction: column;
gap: 20rpx; gap: 20rpx;
height: calc(90vh - 180rpx);
// height: calc(90vh - 180rpx);
.item { .item {


+ 90
- 4
pages_order/order/offerOrBillLading.vue View File

@ -80,8 +80,38 @@
</view> </view>
</view> </view>
<!--商品类型-->
<view class="item"
@click="$refs.productTypePicker.open()">
<view>商品类型</view>
<view class=""
v-if="form.productType != 0 && !form.productType">
请选择类型
</view>
<view v-else>
{{ form.productType == -1 ? '请选择类型' : productType[form.productType] }}
</view>
<view class="icon">
<uv-icon name="arrow-right" size="30rpx"></uv-icon>
</view>
</view>
<view class="addressA" @click="openAddress">
<!-- <view class="addressA" @click="openAddress">
<view class="title">提货地点</view>
<view class="address" style="width: 70%">
<image mode="" src="/static/image/address/selectIcon.png"></image>
<view class="">
{{ address.name + address.phone + address.address + address.addressDetail }}
</view>
<view class="icon">
<uv-icon name="arrow-right" size="30rpx"></uv-icon>
</view>
</view>
</view> -->
<view class="addressA"
@click="$refs.addressListPicker.open()">
<view class="title">提货地点</view> <view class="title">提货地点</view>
<view class="address" style="width: 70%"> <view class="address" style="width: 70%">
<image mode="" src="/static/image/address/selectIcon.png"></image> <image mode="" src="/static/image/address/selectIcon.png"></image>
@ -218,6 +248,19 @@
:columns="unitList" :columns="unitList"
itemHeight="80" itemHeight="80"
@confirm="unitListConfirm"></uv-picker> @confirm="unitListConfirm"></uv-picker>
<uv-picker ref="addressListPicker"
keyName="addressText"
:columns="[addressList]"
itemHeight="80"
@confirm="addressListConfirm"></uv-picker>
<uv-picker ref="productTypePicker"
:columns="[productType]"
itemHeight="80"
@confirm="productTypeConfirm"></uv-picker>
</view> </view>
</template> </template>
@ -244,7 +287,6 @@
if(options.type = 'edit'){ if(options.type = 'edit'){
this.form = this.$store.state.orderDetail this.form = this.$store.state.orderDetail
// //
@ -291,12 +333,16 @@
"addressId": "", "addressId": "",
"num": 1, "num": 1,
"price": '', "price": '',
"transactionTime": dayjs(new Date()).format("YYYY-MM-DD")
"transactionTime": dayjs(new Date()).format("YYYY-MM-DD"),
productType : 0,
}, },
address: { address: {
name: '请选择地址', name: '请选择地址',
addressDetail: '', addressDetail: '',
phone : '',
address : '',
}, },
addressList : [],
addressTotal: 0, addressTotal: 0,
fileList : [],// fileList : [],//
reportFileList : [],// reportFileList : [],//
@ -308,11 +354,17 @@
specsName : '请选择规格' specsName : '请选择规格'
}, },
type : '', type : '',
productType : [
'国内现货',
'国外现货',
],
} }
}, },
onShow() { onShow() {
this.getUnitList() this.getUnitList()
this.getAddressDefault()
// this.getAddressDefault()
this.confAddressList()
console.log(this.form);
}, },
methods: { methods: {
// //
@ -328,6 +380,25 @@
}) })
}) })
}, },
//
confAddressList() {
return new Promise((success, fail) => {
this.$api('confAddressList', {
pageNo: 1,
pageSize: 9999,
}, res => {
if (res.code == 200) {
res.result.records.forEach(n => {
n.addressText = n.address + n.addressDetail
// n.addressText = n.name + n.phone + n.address + n.addressDetail
})
this.addressList = res.result.records;
}
})
})
},
// //
getUnitList(){ getUnitList(){
@ -397,6 +468,13 @@
return return
} }
if(this.form.productType != 0 && !productType){
uni.showToast({
title: '请选择商品类型'
})
return
}
let api = 'addProduct' let api = 'addProduct'
if(this.type == 'edit'){ if(this.type == 'edit'){
@ -422,6 +500,9 @@
unitListConfirm(e){ unitListConfirm(e){
this.unit = e.value[0] this.unit = e.value[0]
}, },
addressListConfirm(e){
this.address = e.value[0]
},
openAddress() { openAddress() {
this.$refs.addressPopup.open('bottom') this.$refs.addressPopup.open('bottom')
@ -481,6 +562,11 @@
deleteImage(e) { deleteImage(e) {
this[e.name].splice(e.index, 1) this[e.name].splice(e.index, 1)
}, },
productTypeConfirm(e){
console.log(e);
this.form.productType = e.indexs[0]
this.$forceUpdate()
},
}, },
} }
</script> </script>


+ 0
- 567
pages_order/order/orderDetail.vue View File

@ -1,567 +0,0 @@
<template>
<view>
<navbar
title="订单详情"
leftClick
@leftClick="$utils.navigateBack"
/>
<!-- 水洗店 -->
<view class=""
v-if="userShop">
<view class="controls">
<view class="title">
<image src="../static/order/icon.png" mode=""></image>
服务完成
</view>
<view class="tips">
待送回
</view>
<view class="btns">
<view class="btn1">
快递寄回
</view>
<view class="btn2">
线下配送
</view>
</view>
</view>
<view class="steps">
<uv-steps
activeColor="#FD5100"
:current="stepsCurrent" dot>
<uv-steps-item :title="item"
:key="index"
v-for="(item, index) in steps"></uv-steps-item>
</uv-steps>
</view>
</view>
<!-- 酒店和水洗店 -->
<view class="info">
<view class="flex"
style="display: flex;">
<view style="width: 8rpx;height: 30rpx;
background: #FD5100;border-radius: 6rpx;" />
<view class="head-title">服务项目</view>
</view>
<view class="flex">
<view class="server-item">
<view class="img-box">
<image :src="msgShop.image" mode="aspectFill"></image>
</view>
<view class="server-info">
<view class="server-title">
{{msgOrder.projectName}}
<!-- <view class="coupon">领券立减</view> -->
</view>
<view class="current-price">
<text class="unit"></text>{{msgOrder.money}}
</view>
<view class="sales-volume" style="margin-top: 5px;">
<view class="desc">规格{{msgOrder.unit}}</view>
</view>
<view class="time-coupon">
<!-- <view class="flex">
<image src="@/static/home/time-icon.png"></image>
<view class="time">{{msgOrder.useTime}}分钟</view>
</view> -->
<!-- <view class="sales-volume">
<image src="@/static/icons/icon1.png"></image>
<view class="desc">已售出{{msgShop.payNum}}+</view>
</view> -->
</view>
</view>
</view>
</view>
<!-- <view class="line min_tips">
<view class="head-div flex">
<view style="width: 118rpx;height: 118rpx;border-radius: 50%;overflow: hidden;">
<image style="width: 118rpx;" :src="msgTechnician.image" mode="widthFix"></image>
</view>
<view style="padding: 10rpx 34rpx;display: flex;flex-direction: column;justify-content: space-around;">
<view class="nickname">
{{msgTechnician.title}}
<view v-if="msgTechnician.isVip" class="tag">
<image src="@/static/order/s.png" mode="aspectFit"></image>
<view class="auth">官方认证</view>
</view>
</view>
<view class="days">
<van-rate v-model="msgTechnician.score" :size="10" readonly color="#ffb54c" void-icon="star"
void-color="#eee" />
<view class="">
好评{{msgTechnician.pinNum}}
</view>
</view>
</view>
</view>
<view @click="gototechnicianDetail(msgTechnician)" class="btn-x">
服务技师
</view>
</view> -->
<view class="line address">
<view class="address-top">
<!-- <view class="">
服务地址
</view> -->
<view class="copy">
<image @click="copy(msgOrder.name + ' ' + msgOrder.phone + ' ' + msgOrder.address)" src="/static/order/copy.png"></image>
</view>
</view>
<view class="addressDetail">
<view class="">{{msgOrder.name}} {{msgOrder.phone}}</view>
<view class="">{{msgOrder.address}}</view>
</view>
</view>
<view class="line">
<view class="t min_tips">
<view class="">
实付款
</view>
<view class="current-price">
{{ msgOrder.money }}
</view>
</view>
<view class="min_tips">
<view class="">
租赁费用
</view>
<view class="">
{{ msgOrder.price }}
</view>
</view>
<view class="min_tips">
<view class="">
水洗费用
</view>
<view class="">
{{ msgOrder.price}}
</view>
</view>
<view class="min_tips">
<view class="">
押金
</view>
<view class="">
{{ msgOrder.price }}
</view>
</view>
</view>
<!-- 订单信息 -->
<view class="line">
<view class="t min_tips">
<view class="">
订单信息
</view>
</view>
<view class="min_tips">
<view class="">
订单编号
</view>
<view class="">
{{msgOrder.id}}
</view>
</view>
<view class="min_tips">
<view class="">
下单时间
</view>
<view class="">
{{msgOrder.createTime}}
</view>
</view>
</view>
<!-- 下单须知 -->
<view class="line">
<view class="t min_tips">
<view class="">
下单须知
</view>
</view>
<view class="min_tips" style="line-height: 40rpx;">
{{msgShop.projectExplain}}
</view>
<view class="btns">
<view @click="clickService" class="btn">
联系客服
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
computed : {
...mapGetters(['userShop']),
},
data() {
return {
stepsCurrent : 0,
steps : [
'接单',
'检查',
'开始清洗',
'服务完成',
],
msgShop : {
money : 99.99,
image : 'https://img95.699pic.com/photo/50058/1378.jpg_wh860.jpg',
projectExplain : '1.xxxxxxxxxx xxxxxxxxxx。2.xxxxxx xxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxxxxxxx。3.。',
},
msgOrder : {
money : 99.99,
address : '广东省广州市越秀区城南故事C3栋2802',
name : '李**',
phone : '150*****091',
unit : '120*40*75【桌子尺寸】',
state_dictText : '已完成',
price : 199.99,
id : '020644568964457',
createTime : '2024-01-18 15:39',
projectName : '桌布租赁'
},
}
},
methods: {
}
}
</script>
<style scoped lang="scss">
.order {
background: linear-gradient(#4899a6, #6fc6ad, #6fc6ad);
padding-bottom: 10px;
}
.controls{
margin: 20rpx;
background-color: #fff;
height: 400rpx;
display: flex;
flex-direction: column;
width: 710rpx;
border-radius: 20rpx;
justify-content: center;
align-items: center;
.title{
display: flex;
justify-content: center;
align-items: center;
font-size: 40rpx;
image{
width: 100rpx;
height: 100rpx;
margin-right: 20rpx;
}
}
.tips{
font-size: 26rpx;
color: #FD5100;
margin-top: 10rpx;
}
.btns{
margin-top: 50rpx;
display: flex;
view{
margin: 0 20rpx;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
background-color: $uni-color;
padding: 15rpx 40rpx;
border-radius: 40rpx;
}
.btn2{
background-color: #FFFFFF;
border: 1px solid #A7A7A7;
color: #A7A7A7;
}
}
}
.steps{
margin: 20rpx;
background-color: #fff;
display: flex;
flex-direction: column;
width: 710rpx;
border-radius: 20rpx;
padding: 70rpx 0;
/deep/ .uv-text__value{
font-size: 22rpx !important;
}
}
.box {
padding: 20px;
.btns {
display: flex;
justify-content: center;
align-items: center;
margin-top: 10px;
.btn {
color: #fff;
padding: 10rpx 50rpx;
background-color: #ffb300;
border-radius: 30rpx;
font-size: 25rpx;
margin-right: 10rpx;
}
.btc{
background: #ccc;
}
}
}
.info {
margin: 10px;
padding: 20rpx;
background-color: #fff;
width: calc(100% - 40px);
border-radius: 10px;
.head-title {
font-family: PingFang SC, PingFang SC-Bold;
color: #2f2e2e;
line-height: 30rpx;
margin-left: 10rpx;
}
.server-item {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
background: white;
border-radius: 15rpx;
box-sizing: border-box;
margin: 20rpx 0rpx;
width: 100%;
.img-box {
width: 150rpx;
height: 150rpx;
border-radius: 10rpx;
overflow: hidden;
image {
width: 100%;
height: 100%;
}
}
.server-info {
display: flex;
flex-direction: column;
justify-content: space-around;
width: calc(100% - 180rpx);
box-sizing: border-box;
padding: 10rpx 15rpx;
.server-title {
display: flex;
margin-bottom: 10rpx;
}
.coupon {
display: flex;
justify-content: center;
align-items: center;
background: #F29E45;
color: white;
width: 120rpx;
height: 40rpx;
border-radius: 10rpx;
margin-left: 10rpx;
font-size: 22rpx;
}
.time-coupon,
.price {
display: flex;
flex-wrap: wrap;
align-items: center;
}
.time-coupon {
margin: 10rpx 0rpx;
font-size: 26rpx;
justify-content: space-between;
width: 100%;
.flex {
justify-content: center;
align-items: center;
}
image {
width: 25rpx;
height: 25rpx;
}
.time {
color: #B8B8B8;
margin-left: 6rpx;
}
}
.sales-volume {
display: flex;
align-items: center;
color: #B8B8B8;
font-size: 24rpx;
image {
width: 25rpx;
height: 25rpx;
}
}
}
}
.address {
.address-top{
display: flex;
justify-content: space-between;
align-items: center;
image{
width: 30rpx;
height: 30rpx;
}
}
.addressDetail {
color: #777;
font-size: 22rpx;
padding: 5px 0;
}
text {
background-color: #F29E45;
padding: 8rpx 10rpx;
color: #fff;
font-size: 20rpx;
margin-left: 10px;
border-radius: 5px;
}
}
.min_tips {
font-size: 22rpx;
color: #777;
display: flex;
justify-content: space-between;
padding: 5px 0;
align-items: center;
}
.current-price {
font-size: 30rpx;
color: #FD5100;
}
.line {
border-top: 2px dotted #00000011;
padding: 20rpx 0;
.t {
padding: 5px 0;
color: #000;
font-size: 26rpx;
}
}
.head-div {
.nickname {
font-size: 30rpx;
font-weight: 600;
text-align: left;
line-height: 42rpx;
display: flex;
align-items: center;
.tag {
position: relative;
display: flex;
align-items: center;
image {
height: 45rpx;
width: 90rpx;
vertical-align: middle;
}
.auth {
position: absolute;
white-space: nowrap;
color: #FF6200;
left: 23rpx;
font-size: 17rpx;
}
}
}
.days {
font-size: 20rpx;
font-weight: 400;
text-align: left;
line-height: 56rpx;
display: flex;
align-items: center;
view {
padding-left: 5px;
}
}
}
.btn-x {
color: #6fc6ad;
border: 1px solid #6fc6ad;
padding: 10rpx 20rpx;
border-radius: 30rpx;
}
.btns {
display: flex;
justify-content: center;
.btn {
color: #6fc6ad;
border: 1px solid #6fc6ad;
padding: 10rpx 20rpx;
border-radius: 30rpx;
}
}
}
</style>

+ 93
- 23
pages_order/order/orderDetail2.vue View File

@ -15,49 +15,110 @@
<view class="server-info"> <view class="server-info">
<view class="server-title"> <view class="server-title">
{{ $t('other.aluminumProducts') }}
<!-- {{ $t('other.aluminumProducts') }} -->
{{ orderInfo.specsName }}
</view> </view>
<view class="current-price">
<!-- <view class="current-price">
<text class="unit">{{ $t('components.productSpecification') }}</text> <text class="unit">{{ $t('components.productSpecification') }}</text>
<text class="text"> {{ $t('other.specification') }}</text> <text class="text"> {{ $t('other.specification') }}</text>
</view>
</view> -->
<view class="sales-volume" style="margin-top: 5px;"> <view class="sales-volume" style="margin-top: 5px;">
<view class="desc"> {{ $t('other.pickupDate') }}{{ orderInfo.takeTime }}</view>
<view class="desc">交货时间{{ orderInfo.transactionTime }}</view>
</view> </view>
</view> </view>
</view> </view>
<!-- 商品信息 -->
<view class="line">
<view class="t min_tips">
<view class="">
商品信息
</view>
</view>
<view class="min_tips"
v-if="orderInfo.picDetail">
<view class="">
商品图片
</view>
<view class="">
<uv-album :urls="orderInfo.picDetail.split(',')"></uv-album>
</view>
</view>
<view class="min_tips"
v-if="orderInfo.video">
<view class="">
商品视频
</view>
<view class="">
<view class="list-video">
<view class="video"
:key="index"
v-for="(item, index) in orderInfo.video.split(',')">
<video :src="item"></video>
</view>
</view>
</view>
</view>
<view class="min_tips"
v-if="orderInfo.report">
<view class="">
检测报告
</view>
<view class="">
<uv-album :urls="orderInfo.report.split(',')"></uv-album>
</view>
</view>
<view class="min_tips"
v-if="orderInfo.reportVideo">
<view class="">
检测视频
</view>
<view class="">
<view class="list-video">
<view class="video"
:key="index"
v-for="(item, index) in orderInfo.reportVideo.split(',')">
<video :src="item"></video>
</view>
</view>
</view>
</view>
</view>
<!--收货地址--> <!--收货地址-->
<view class="line address"> <view class="line address">
<view class="address-top"> <view class="address-top">
<view class=""> <view class="">
{{ $t('components.shippingAddress') }}
<!-- {{ $t('components.shippingAddress') }} -->
提货地址
</view> </view>
<view class="copy"> <view class="copy">
<img style="width:40rpx;height:40rpx;" @click="$utils.copyText('1')"
src="../static/order/copy.png">
<img style="width:40rpx;height:40rpx;"
@click="$utils.copyText(orderInfo.address)"
src="../static/order/copy.png">
</view> </view>
</view> </view>
<view class="addressDetail"> <view class="addressDetail">
<view class="">{{ orderInfo.userName }}&nbsp;&nbsp;&nbsp; {{ orderInfo.phone }}</view>
<view class=""> <view class="">
{{ orderInfo.address }} {{ orderInfo.address }}
</view> </view>
</view> </view>
</view> </view>
<!-- 订单信息 -->
<!-- 单信息 -->
<view class="line"> <view class="line">
<view class="t min_tips"> <view class="t min_tips">
<view class=""> <view class="">
{{ $t('components.orderInfo') }}
<!-- {{ $t('components.orderInfo') }} -->
挂单信息
</view> </view>
</view> </view>
<view class="min_tips"> <view class="min_tips">
<view class=""> <view class="">
{{ $t('components.orderNumber') }}
<!-- {{ $t('components.orderNumber') }} -->
挂单编号
</view> </view>
<view class=""> <view class="">
{{ orderInfo.id }} {{ orderInfo.id }}
@ -65,7 +126,8 @@
</view> </view>
<view class="min_tips"> <view class="min_tips">
<view class=""> <view class="">
{{ $t('components.orderTime') }}
<!-- {{ $t('components.orderTime') }} -->
挂单时间
</view> </view>
<view class=""> <view class="">
{{ orderInfo.createTime }} {{ orderInfo.createTime }}
@ -74,25 +136,26 @@
</view> </view>
<!-- 下单须知 --> <!-- 下单须知 -->
<view class="line">
<!-- <view class="line">
<view class="t min_tips"> <view class="t min_tips">
<view class=""> <view class="">
{{ $t('components.orderNotice') }} {{ $t('components.orderNotice') }}
</view> </view>
</view> </view>
<view class="xdxz" style="line-height: 40rpx;"> <view class="xdxz" style="line-height: 40rpx;">
<!--<uv-parse :content="content"></uv-parse>-->
<uv-parse :content="content"></uv-parse>
<view>1. 请您在收货时间前15分钟内到货否则将视为放弃挂单</view> <view>1. 请您在收货时间前15分钟内到货否则将视为放弃挂单</view>
<view>2. 请您在收货地址提供的手机号码收到货物</view> <view>2. 请您在收货地址提供的手机号码收到货物</view>
</view> </view>
</view>
</view> -->
</view> </view>
<!--我要撤单和联系客服--> <!--我要撤单和联系客服-->
<view class="btns"> <view class="btns">
<view @click="backOrder" class="oneBtn">
<!-- <view @click="backOrder" class="oneBtn"
v-if="orderInfo.showStatus == 0">
{{ $t('other.withdrawOrder') }} {{ $t('other.withdrawOrder') }}
</view>
</view> -->
<view @click="$refs.customerServicePopup.open()" class="twoBtn"> <view @click="$refs.customerServicePopup.open()" class="twoBtn">
{{ $t('components.contactCustomerService') }} {{ $t('components.contactCustomerService') }}
</view> </view>
@ -112,14 +175,11 @@
customerServicePopup customerServicePopup
}, },
onLoad(options) { onLoad(options) {
if (options.orderInfo) {
this.orderInfo = JSON.parse(decodeURIComponent(options.orderInfo));
console.log(this.orderInfo, "解析后的订单数据"); //
}
this.orderInfo = this.$store.state.orderDetail
}, },
data() { data() {
return { return {
orderInfo: {}
orderInfo: {},
} }
}, },
methods: { methods: {
@ -141,7 +201,7 @@
success(e) { success(e) {
if (e.confirm) { if (e.confirm) {
self.$api('noShow', { self.$api('noShow', {
id
id : self.orderInfo.id
}, res => { }, res => {
if (res.code == 200) { if (res.code == 200) {
uni.showToast({ uni.showToast({
@ -164,6 +224,16 @@
<style scoped lang="scss"> <style scoped lang="scss">
.page { .page {
.list-video{
display: flex;
flex-wrap: wrap;
video{
width: 480rpx;
height: 270rpx;
}
}
.info { .info {
margin: 10px; margin: 10px;


+ 9
- 2
pages_order/tradingPlatform/nowOrder.vue View File

@ -2,6 +2,13 @@
<view class="now-order"> <view class="now-order">
<navbar :title="$t('pageTitle.immediateOrder')" leftClick @leftClick="$utils.navigateBack" /> <navbar :title="$t('pageTitle.immediateOrder')" leftClick @leftClick="$utils.navigateBack" />
<uv-swiper
v-if="fatherData.picDetail"
:list="fatherData.picDetail.split(',')"
height="420rpx"
>
</uv-swiper>
<view class="frame"> <view class="frame">
<view class="title"> <view class="title">
<span <span
@ -19,13 +26,13 @@
</view> </view>
<!--详情图--> <!--详情图-->
<view class="item"
<!-- <view class="item"
v-if="fatherData.picDetail"> v-if="fatherData.picDetail">
<view>详情图</view> <view>详情图</view>
<view> <view>
<uv-album :urls="fatherData.picDetail.split(',')"></uv-album> <uv-album :urls="fatherData.picDetail.split(',')"></uv-album>
</view> </view>
</view>
</view> -->
<!--详情视频--> <!--详情视频-->
<view class="item" <view class="item"
v-if="fatherData.video"> v-if="fatherData.video">


Loading…
Cancel
Save