Browse Source

对接登录

master
前端-胡立永 10 months ago
parent
commit
74fe218502
19 changed files with 1211 additions and 1257 deletions
  1. +5
    -0
      api/api.js
  2. +122
    -126
      components/user/productList.vue
  3. +1
    -1
      locale/zh-Hans.json
  4. +0
    -3
      pages.json
  5. +216
    -163
      pages/index/center2.vue
  6. +4
    -1
      pages/index/tradingPlatform.vue
  7. +2
    -2
      pages_order/auth/loginAndRegisterAndForgetPassword.vue
  8. +2
    -2
      pages_order/auth/registerShop.vue
  9. +4
    -3
      pages_order/center/addressListManage.vue
  10. +125
    -124
      pages_order/components/order/myOrderList.vue
  11. +9
    -2
      pages_order/components/order/orderList.vue
  12. +10
    -6
      pages_order/mine/address.vue
  13. +8
    -10
      pages_order/order/myOrderDetail.vue
  14. +169
    -207
      pages_order/order/offerOrBillLading.vue
  15. +435
    -437
      pages_order/order/orderDetail2.vue
  16. +38
    -34
      pages_order/order/pendingOrder.vue
  17. +2
    -2
      pages_order/tradingPlatform/confirmOrder.vue
  18. +58
    -134
      pages_order/tradingPlatform/nowOrder.vue
  19. +1
    -0
      store/store.js

+ 5
- 0
api/api.js View File

@ -175,6 +175,11 @@ const config = {
},
// 规格分页列表查询
specsList: {
url: '/product/specsList',
method: 'GET',
},
}


+ 122
- 126
components/user/productList.vue View File

@ -1,146 +1,142 @@
<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=""></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">
最多批发*快速下单
</view>
</view>
<view class="btn">
<view class="change">
{{ $t('components.immediatePurchase') }}
</view>
</view>
</view>
</view>
<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`,
});
}
},
}
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;
.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;
.item {
position: relative;
width: 300rpx;
padding: 20rpx;
background-color: #fff;
border-radius: 20rpx;
margin-top: 20rpx;
&:nth-child(odd) {
margin-right: 20rpx;
}
&:nth-child(odd) {
margin-right: 20rpx;
}
.image {
width: 300rpx;
height: 250rpx;
border-radius: 20rpx;
}
.image {
width: 300rpx;
height: 250rpx;
border-radius: 20rpx;
}
.info {
font-size: 26rpx;
.info {
font-size: 26rpx;
.title {
font-size: 30rpx;
color: #000;
}
.title {
font-size: 30rpx;
color: #000;
}
.price {
color: #D03F25;
margin-top: 6rpx;
.price {
color: #D03F25;
margin-top: 6rpx;
text {
font-size: 34rpx;
font-weight: 900;
}
}
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;
.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;
}
}
.p {
color: #fff;
margin-left: 10rpx;
}
}
.num {
margin-top: 6rpx;
font-size: 22rpx;
color: #888;
}
}
.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;
.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;
}
}
}
}
.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>

+ 1
- 1
locale/zh-Hans.json View File

@ -155,7 +155,7 @@
"enterOpeningBank": "请输入开开户行",
"bankAccount": "银行账号",
"enterBankAccount": "请输入银行账号",
"paymentNotice": "提示:请于下单成功后30分钟内支付。(自动倒计时)",
"paymentNotice": "提示:请于下单成功后30分钟内支付。",
"confirmOrder": "确认下单",
"cancelOrder": "取消订单",
"systemSettings": "系统设置",


+ 0
- 3
pages.json View File

@ -93,9 +93,6 @@
{
"path": "mine/runningWater"
},
{
"path": "mine/address"
},
{
"path": "product/productDetail"
},


+ 216
- 163
pages/index/center2.vue View File

@ -1,180 +1,233 @@
<template>
<view class="page">
<navbar :title="$t('pageTitle.personalCenter')"/>
<view class="frame">
<!-- 头部 -->
<view class="head">
<view class="headImage">
<image src="1" mode=""></image>
</view>
<view class="info">
<view class="name">
{{userInfo.nickName}}
</view>
<view class="tips">
{{ $t('components.phoneNumber') }} {{userInfo.phone}}
</view>
</view>
<!-- <view class="headBtn" @click="headBtn">
<view class="page">
<navbar :title="$t('pageTitle.personalCenter')" />
<view class="frame">
<!-- 头部 -->
<view class="head">
<view class="headImage">
<image src="1" mode=""></image>
</view>
<view class="info">
<view class="name">
{{userInfo.nickName}}
</view>
<view class="tips">
{{ $t('components.phoneNumber') }} {{userInfo.phone}}
</view>
</view>
<!-- <view class="headBtn" @click="headBtn">
{{ $t('components.roleSwitching') }}
</view> -->
<!-- <view class="setting">
<!-- <view class="setting">
<uv-icon name="setting" size="40rpx"></uv-icon>
</view> -->
</view>
</view>
<!-- 供应商 -->
<view class="supplier" v-if="userShop">
<centerList :list="supplierList"
@open="openCustomerServicePopup"
@about="$refs.popup.open('gywm')"></centerList>
</view>
<!-- 供应商 -->
<view class="supplier" v-if="userShop">
<centerList :list="supplierList" @open="openCustomerServicePopup" @about="$refs.popup.open('gywm')">
</centerList>
</view>
<!-- 采购商 -->
<view class="purchaser" v-else>
<centerList :list="purchaserList" @open="openCustomerServicePopup"
@about="$refs.popup.open('gywm')"></centerList>
</view>
</view>
<!-- 采购商 -->
<view class="purchaser" v-else>
<centerList :list="purchaserList" @open="openCustomerServicePopup" @about="$refs.popup.open('gywm')">
</centerList>
</view>
</view>
<!-- 联系客服弹框 -->
<customerServicePopup ref="customerServicePopup" />
<!-- 联系客服弹框 -->
<customerServicePopup ref="customerServicePopup" />
<configPopup ref="popup"></configPopup>
<tabber select="3"/>
</view>
<configPopup ref="popup"></configPopup>
<tabber select="3" />
</view>
</template>
<script>
import topbar from "@/components/base/topbar.vue";
import tabber from "@/components/base/tabbar.vue";
import centerList from "@/components/base/centerList.vue";
import customerServicePopup from "@/components/config/customerServicePopup.vue";
import {mapGetters} from 'vuex'
export default {
name: "center2",
components: {customerServicePopup, tabber, topbar,centerList},
computed: {
...mapGetters(['userShop',"userInfo"]),
},
data() {
return {
//
supplierList: [
{text: `${this.$t('pageTitle.myOrders')}`,englishText:'myOrders', value: ">", imgUrl: '/static/image/center/14.svg', toPathUrl: '/pages_order/order/pendingOrder'},
{text: `${this.$t('components.contactCustomerService')}`, englishText:'contactCustomerService',value: ">", imgUrl: '/static/image/center/13.svg'},
{text: `${this.$t('components.systemSettings')}`,englishText:'systemSettings', value: ">", imgUrl: '/static/image/center/12.svg', toPathUrl: '/pages_order/center/systemSet'},
{text: `${this.$t('components.helpFeedback')}`,englishText:'systemSettings', value: ">", imgUrl: '/static/image/center/12.svg', toPathUrl: '/pages_order/center/helpFeedback'},
{text: `${this.$t('components.aboutUs')}`, englishText:'aboutUs',value: ">", imgUrl: '/static/image/center/13.svg'},
],
//
purchaserList: [
// this.$t('pages.index.index.companyProfile')
{
text: `${this.$t('other.Myorder')}`,
englishText: 'Myorder',
value: ">",
imgUrl: '/static/image/center/14.svg',
toPathUrl: '/pages_order/order/myOrders'
},
{text: `${this.$t('components.contactCustomerService')}`, englishText:'contactCustomerService',value: ">", imgUrl: '/static/image/center/13.svg'},
{text: `${this.$t('components.systemSettings')}`,englishText:'systemSettings', value: ">", imgUrl: '/static/image/center/12.svg', toPathUrl: '/pages_order/center/systemSet'},
{text: `${this.$t('components.helpFeedback')}`,englishText:'systemSettings', value: ">", imgUrl: '/static/image/center/12.svg', toPathUrl: '/pages_order/center/helpFeedback'},
{text: `${this.$t('components.aboutUs')}`, englishText:'aboutUs',value: ">", imgUrl: '/static/image/center/13.svg'},
]
}
},
methods: {
openCustomerServicePopup() {
console.log("打开客服弹框")
this.$refs.customerServicePopup.open();
}
},
}
import topbar from "@/components/base/topbar.vue";
import tabber from "@/components/base/tabbar.vue";
import centerList from "@/components/base/centerList.vue";
import customerServicePopup from "@/components/config/customerServicePopup.vue";
import {
mapGetters
} from 'vuex'
export default {
name: "center2",
components: {
customerServicePopup,
tabber,
topbar,
centerList
},
computed: {
...mapGetters(['userShop', "userInfo"]),
},
data() {
return {
//
supplierList: [{
text: `${this.$t('pageTitle.myOrders')}`,
englishText: 'myOrders',
value: ">",
imgUrl: '/static/image/center/14.svg',
toPathUrl: '/pages_order/order/pendingOrder'
},
{
text: `${this.$t('components.contactCustomerService')}`,
englishText: 'contactCustomerService',
value: ">",
imgUrl: '/static/image/center/13.svg'
},
{
text: `${this.$t('components.systemSettings')}`,
englishText: 'systemSettings',
value: ">",
imgUrl: '/static/image/center/12.svg',
toPathUrl: '/pages_order/center/systemSet'
},
{
text: `${this.$t('components.helpFeedback')}`,
englishText: 'systemSettings',
value: ">",
imgUrl: '/static/image/center/12.svg',
toPathUrl: '/pages_order/center/helpFeedback'
},
{
text: `${this.$t('components.aboutUs')}`,
englishText: 'aboutUs',
value: ">",
imgUrl: '/static/image/center/13.svg'
},
],
//
purchaserList: [
// this.$t('pages.index.index.companyProfile')
{
text: `${this.$t('other.Myorder')}`,
englishText: 'Myorder',
value: ">",
imgUrl: '/static/image/center/14.svg',
toPathUrl: '/pages_order/order/myOrders'
},
{
text: `${this.$t('components.contactCustomerService')}`,
englishText: 'contactCustomerService',
value: ">",
imgUrl: '/static/image/center/13.svg'
},
{
text: `${this.$t('components.systemSettings')}`,
englishText: 'systemSettings',
value: ">",
imgUrl: '/static/image/center/12.svg',
toPathUrl: '/pages_order/center/systemSet'
},
{
text: `${this.$t('components.helpFeedback')}`,
englishText: 'systemSettings',
value: ">",
imgUrl: '/static/image/center/12.svg',
toPathUrl: '/pages_order/center/helpFeedback'
},
{
text: `${this.$t('components.aboutUs')}`,
englishText: 'aboutUs',
value: ">",
imgUrl: '/static/image/center/13.svg'
},
]
}
},
methods: {
openCustomerServicePopup() {
console.log("打开客服弹框")
this.$refs.customerServicePopup.open();
}
},
}
</script>
<style scoped lang="scss">
.page {
background-color: #2e2e2e;
height: calc(100vh - 120rpx);
.frame {
background-color: #2e2e2e;
.head {
display: flex;
background-color: $uni-color;
padding: 40rpx 20rpx;
align-items: center;
position: relative;
color: #fff;
box-shadow: 0 10rpx 20rpx rgba(89, 80, 80, 0.1);
.headImage {
width: 120rpx;
height: 120rpx;
background-image: url(/static/image/center/3.png);
background-size: 100% 100%;
overflow: hidden;
border-radius: 50%;
margin-right: 40rpx;
}
.info {
font-size: 28rpx;
.vip {
background-color: #FCCC92;
color: #FA6239;
width: 100rpx;
display: flex;
justify-content: center;
align-items: center;
height: 40rpx;
border-radius: 20rpx;
margin-top: 20rpx;
}
.name {
font-size: 32rpx;
}
.tips {
font-size: 26rpx;
color: #ABABAB;
}
}
.headBtn {
margin-left: auto;
padding: 15rpx 20rpx;
background-color: $uni-color;
color: #fff;
border-radius: 20rpx;
margin-top: 50rpx;
}
.setting {
position: absolute;
right: 50rpx;
top: 50rpx;
}
}
.supplier {
}
.purchaser {
}
}
}
.page {
background-color: #2e2e2e;
height: calc(100vh - 120rpx);
.frame {
background-color: #2e2e2e;
.head {
display: flex;
background-color: $uni-color;
padding: 40rpx 20rpx;
align-items: center;
position: relative;
color: #fff;
box-shadow: 0 10rpx 20rpx rgba(89, 80, 80, 0.1);
.headImage {
width: 120rpx;
height: 120rpx;
background-image: url(/static/image/center/3.png);
background-size: 100% 100%;
overflow: hidden;
border-radius: 50%;
margin-right: 40rpx;
}
.info {
font-size: 28rpx;
.vip {
background-color: #FCCC92;
color: #FA6239;
width: 100rpx;
display: flex;
justify-content: center;
align-items: center;
height: 40rpx;
border-radius: 20rpx;
margin-top: 20rpx;
}
.name {
font-size: 32rpx;
}
.tips {
font-size: 26rpx;
color: #ABABAB;
}
}
.headBtn {
margin-left: auto;
padding: 15rpx 20rpx;
background-color: $uni-color;
color: #fff;
border-radius: 20rpx;
margin-top: 50rpx;
}
.setting {
position: absolute;
right: 50rpx;
top: 50rpx;
}
}
.supplier {}
.purchaser {}
}
}
</style>

+ 4
- 1
pages/index/tradingPlatform.vue View File

@ -16,7 +16,10 @@
<view v-if="userShop" class="supplier">
<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>
</view>
<view class="supplierList">


+ 2
- 2
pages_order/auth/loginAndRegisterAndForgetPassword.vue View File

@ -174,8 +174,8 @@
titleList: ['注册', '登录', '重置密码'],
checkboxValue: [],
form: {
username: '19330214982',
password: '1234567',
username: '',//19330214982
password: '',//1234567
loginModel: 0,
captcha: '',
},


+ 2
- 2
pages_order/auth/registerShop.vue View File

@ -212,7 +212,7 @@
}
if (!this.$utils.verificationPhone(this.form.userName)) {
if (!this.$utils.verificationPhone(data.userName)) {
return uni.showToast({
title: '请输入合法的手机号',
icon: 'none'
@ -222,7 +222,7 @@
this.$api(this.titleIndex == 2 ?
'addCustoms'
: 'roleOption', this.form, res => {
: 'roleOption', data, res => {
if (res.code == 200) {
// uni.removeStorageSync('token')
// this.$store.state.userInfo = {}


+ 4
- 3
pages_order/center/addressListManage.vue View File

@ -40,7 +40,9 @@
this.type = args.type
if (this.type == 'back') {
this.addBtn()
this.$nextTick(() => {
this.addBtn()
})
}
},
mounted() {
@ -179,7 +181,6 @@
left: 0;
bottom: 0;
width: 750rpx;
height: 100rpx;
background: white;
.btn {
@ -187,11 +188,11 @@
align-items: center;
justify-content: center;
width: 85%;
height: 80rpx;
border-radius: 40rpx;
color: white;
text-align: center;
font-size: 28rpx;
padding: 30rpx;
background: $uni-color;
}
}


+ 125
- 124
pages_order/components/order/myOrderList.vue View File

@ -1,133 +1,134 @@
<template>
<view class="page">
<view v-for="(item, index) in list" v-if="list.length>0" :key="index" class="content"
@click="lookDetail(item, index)">
<view class="left">
<image :src="item.pic" mode="aspectFill"></image>
</view>
<view class="right">
<view class="text-hidden-1">
订单状态{{ orderStatusText(item.orderFlag) }}
</view>
<view class="text-hidden-1">
公司名称{{ item.companyName }}
</view>
<view class="text-hidden-1">
单价{{ item.price }}
</view>
<!--<view class="text-hidden-1">-->
<!-- 数量{{ item.num }}-->
<!--</view>-->
<view class="text-hidden-1">
提货地址{{ item.address }}
</view>
<!--<view class="text-hidden-1">-->
<!-- 定金{{ item.deposit }}-->
<!--</view>-->
<view class="text-hidden-1">
提货时间{{ item.takeTime }}
</view>
<!--审核状态 0审核中 1 审核通过 2审核未通过-->
<!--<view class="text-hidden-1">-->
<!-- 审核状态{{ item.auditStatus == 0? '审核中' : (item.auditStatus == 1? '审核通过' : '审核未通过') }}-->
<!--</view>-->
</view>
</view>
<!--无历史记录-->
<view
v-else
style="padding: 100rpx 0;">
<uv-empty
iconSize="100rpx"
mode="history"
textSize="28rpx"/>
</view>
</view>
<view class="page">
<view v-for="(item, index) in list" v-if="list.length>0" :key="index" class="content"
@click="lookDetail(item, index)">
<view class="left">
<image :src="item.pic" mode="aspectFill"></image>
</view>
<view class="right">
<view class="text-hidden-1">
订单状态{{ orderStatusText(item.orderFlag) }}
</view>
<view class="text-hidden-1">
公司名称{{ item.companyName }}
</view>
<view class="text-hidden-1">
单价{{ item.price }}
</view>
<view class="text-hidden-1">
购买数量{{ item.num }}
</view>
<view class="text-hidden-1">
规格{{ item.specsName }}
</view>
<view class="text-hidden-1">
提货地址{{ item.address }}
</view>
<!--<view class="text-hidden-1">-->
<!-- 定金{{ item.deposit }}-->
<!--</view>-->
<view class="text-hidden-1">
提货时间{{ item.takeTime }}
</view>
<!--审核状态 0审核中 1 审核通过 2审核未通过-->
<!--<view class="text-hidden-1">-->
<!-- 审核状态{{ item.auditStatus == 0? '审核中' : (item.auditStatus == 1? '审核通过' : '审核未通过') }}-->
<!--</view>-->
</view>
</view>
<!--无历史记录-->
<view v-else style="padding: 100rpx 0;">
<uv-empty iconSize="100rpx" mode="history" textSize="28rpx" />
</view>
</view>
</template>
<script>
export default {
name: "myOrderList",
props: {
list: {
type: Array,
default: false
},
},
data() {
return {}
},
methods: {
// 0 1 2 3 4 退 5
orderStatusText(flag) {
const statusMap = {
0: '未确认',
1: '已确认',
2: '已取消',
3: '已付保证金',
4: '已退款',
5: '已提货'
};
return statusMap[flag] || '未知状态';
},
//
lookDetail(item, index) {
uni.navigateTo({
url: `/pages_order/order/myOrderDetail?orderInfo=${encodeURIComponent(JSON.stringify(item))}`
});
},
}
}
export default {
name: "myOrderList",
props: {
list: {
type: Array,
default: false
},
},
data() {
return {}
},
methods: {
// 0 1 2 3 4 退 5
orderStatusText(flag) {
const statusMap = {
0: '未确认',
1: '已确认',
2: '已取消',
3: '已付保证金',
4: '已退款',
5: '已提货'
};
return statusMap[flag] || '未知状态';
},
//
lookDetail(item, index) {
this.$store.state.orderDetail = item
uni.navigateTo({
url: `/pages_order/order/myOrderDetail`
});
},
}
}
</script>
<style lang="scss" scoped>
.page {
display: flex;
flex-direction: column;
gap: 20rpx;
height: calc(90vh - 180rpx);
.content {
display: flex;
margin: 10rpx 0;
.left {
width: 200rpx;
height: 100%;
//height: 130rpx;
border-radius: 10rpx;
image {
//width: 130rpx;
//height: 130rpx;
width: 100%;
height: 100%;
border-radius: 10rpx;
}
}
.right {
width: calc(100% - 160rpx);
color: #777;
font-size: 24rpx;
padding-left: 20rpx;
line-height: 40rpx;
background-color: #F8F8F8;
}
}
}
.page {
display: flex;
flex-direction: column;
gap: 20rpx;
height: calc(90vh - 180rpx);
.content {
display: flex;
margin: 10rpx 0;
.left {
width: 200rpx;
height: 100%;
//height: 130rpx;
border-radius: 10rpx;
image {
//width: 130rpx;
//height: 130rpx;
width: 100%;
height: 100%;
border-radius: 10rpx;
}
}
.right {
width: calc(100% - 160rpx);
color: #777;
font-size: 24rpx;
padding-left: 20rpx;
line-height: 40rpx;
background-color: #F8F8F8;
}
}
}
</style>

+ 9
- 2
pages_order/components/order/orderList.vue View File

@ -14,7 +14,8 @@
<view class="zhuti">
<view class="left">
<img :src="item.pic" style="width: 100%;height: 100%;" />
<image :src="item.pic" style="width: 100%;height: 100%;"
mode="aspectFill"/>
</view>
<view class="right" @click="lookDetail(item,index)">
@ -22,7 +23,13 @@
{{ $t('components.customerName') }} {{ item.userName }}
</view>
<view class="text-hidden-1" v-if="item.phone">
客户电话{{ item.phone }}
客户电话{{ item.phone }}
</view>
<view class="text-hidden-1">
库存数量{{ item.num }}
</view>
<view class="text-hidden-1">
规格{{ item.specsName }}
</view>
<view class="text-hidden-1">
{{ $t('other.pickupAddress') }}{{ item.address }}


+ 10
- 6
pages_order/mine/address.vue View File

@ -15,7 +15,6 @@
<redactAddress
ref="addressPopup"
:addressDetail="addressDetail"
@saveOrUpdate="saveOrUpdate"
:title="title"></redactAddress>
@ -47,11 +46,15 @@
this.type = args.type
if(this.type == 'back'){
this.addBtn()
this.$nextTick(() => {
this.addBtn()
})
}
},
onShow() {
this.getAddressList()
this.$nextTick(() => {
this.getAddressList()
})
},
methods: {
@ -87,7 +90,7 @@
data.id = addressDetail.id
}
this.$api(data.id ? 'addressEdit' : 'addressAdd', data, res => {
this.$api(data.id ? 'editAddress' : 'addAddress', data, res => {
if (res.code == 200) {
this.$refs.addressPopup.close()
this.getAddressList()
@ -128,8 +131,9 @@
content: '确认删除此地址?删除后数据不可恢复',
success(e) {
if(e.confirm){
self.$api('addressDelete', {
id
self.$api('deleteAddress', {
id,
isDisable : 1,
}, res => {
if (res.code == 200) {
uni.showToast({


+ 8
- 10
pages_order/order/myOrderDetail.vue View File

@ -10,17 +10,18 @@
<view class="server-item">
<view class="img-box">
<img :src="orderInfo.pic" style="width: 100%;height: 100%;" />
<image :src="orderInfo.pic" style="width: 100%;height: 100%;"
mode="aspectFill"/>
</view>
<view class="server-info">
<view class="server-title">
{{ $t('other.aluminumProducts') }}
<!-- {{ $t('other.aluminumProducts') }} -->
</view>
<view class="current-price">
<text class="unit">{{ $t('components.productSpecification') }}</text>
<text class="text"> {{ $t('other.specification') }}</text>
<text class="text">{{ orderInfo.specsName }}</text>
</view>
<view class="sales-volume" style="margin-top: 5px;">
@ -37,8 +38,9 @@
提货地址
</view>
<view class="copy">
<img src="../static/order/copy.png" style="width:40rpx;height:40rpx;"
@click="$utils.copyText(orderInfo.address)">
<img src="../static/order/copy.png"
style="width:40rpx;height:40rpx;"
@click="$utils.copyText(orderInfo.address)">
</view>
</view>
<view class="addressDetail">
@ -187,14 +189,10 @@
customerServicePopup
},
onLoad(options) {
if (options.orderInfo) {
this.orderInfo = JSON.parse(decodeURIComponent(options.orderInfo));
console.log(this.orderInfo, "解析后的订单数据"); //
}
this.orderInfo = this.$store.state.orderDetail
},
data() {
return {
orderInfo: {},
}
},


+ 169
- 207
pages_order/order/offerOrBillLading.vue View File

@ -18,10 +18,50 @@
<view>华南铝业有限公司</view>
</view> -->
<!--商品规格-->
<!--商品主图-->
<view class="item">
<view>商品主图</view>
<view class="">
<uv-upload
:fileList="fileList"
:maxCount="1"
multiple
width="150rpx"
height="150rpx"
name="fileList"
@delete="deleteImage"
@afterRead="afterRead"
:previewFullImage="true"></uv-upload>
</view>
</view>
<!--商品详情-->
<view class="item">
<view>商品内容</view>
<view class="">
<uv-upload
:fileList="contentFileList"
:maxCount="3"
multiple
width="150rpx"
height="150rpx"
name="contentFileList"
@delete="deleteImage"
@afterRead="afterRead"
:previewFullImage="true"></uv-upload>
</view>
</view>
<!--商品规格-->
<view class="item"
@click="$refs.unitListPicker.open()">
<view>{{ $t('components.productSpe') }}</view>
<view>铝制品(Al>96%)</view>
<view>
{{ unit.specsName }}
</view>
<view class="icon">
<uv-icon name="arrow-right" size="30rpx"></uv-icon>
</view>
</view>
@ -53,40 +93,37 @@
<!-- </view>-->
<!--</view>-->
<!--详细地址-->
<view v-if="address.addressDetail" class="item">
<view>{{ $t('components.detailedAddress') }}</view>
<view>
<view class="">
{{ address.address + ' ' + address.addressDetail }}
<!--</view>-->
<!--<view class="">-->
<!-- {{ address.addressDetail }}-->
</view>
</view>
</view>
<!--交货日期-->
<view class="delivery-date" @click="startDateOpen">
<view>{{ $t('components.deliveryDate') }}</view>
<view class="value">
<view class="dateTimeCls">
<view class="date">
{{ form.transactionTime }}
<uv-datetime-picker ref="startDateRef" v-model="form.transactionTime" mode="date"
@confirm="startDateChange"></uv-datetime-picker>
</view>
<view class="img">
>
</view>
<!--详细地址-->
<view v-if="address.addressDetail" class="item">
<view>{{ $t('components.detailedAddress') }}</view>
<view>
<view class="">
{{ address.address + ' ' + address.addressDetail }}
<!--</view>-->
<!--<view class="">-->
<!-- {{ address.addressDetail }}-->
</view>
</view>
</view>
<view class="item">
<view>{{ $t('components.deliveryDate') }}</view>
<view>
{{ form.transactionTime }}
<uv-datetime-picker
ref="startDateRef"
v-model="form.transactionTime" mode="date"
@confirm="startDateChange"></uv-datetime-picker>
</view>
<view class="icon">
<uv-icon name="arrow-right" size="30rpx"></uv-icon>
</view>
</view>
<!--暂定数量-->
<view class="tentativeQuantity">
<view class="key">{{ $t('other.tentativeQuantity') }}</view>
<view class="value">
<view class="item">
<view>{{ $t('other.tentativeQuantity') }}</view>
<view>
<uv-number-box v-model="form.num"></uv-number-box>
</view>
</view>
@ -98,6 +135,23 @@
<input v-model="form.price" clearable></input>
</view>
</view>
<!-- 检测报告 -->
<view class="item">
<view>检测报告</view>
<view class="">
<uv-upload
:fileList="reportFileList"
:maxCount="3"
multiple
width="150rpx"
height="150rpx"
name="reportFileList"
@delete="deleteImage"
@afterRead="afterRead"
:previewFullImage="true"></uv-upload>
</view>
</view>
<!--提交报价和提交审核-->
<view class="btns">
@ -107,7 +161,7 @@
<span class="lxwm" @click="contactUs">
{{ $t('components.contactUs') }}
</span>
<span class="tip">如有疑问请联系我们</span>
<span class="tip">如有疑问请联系我们</span>
</view>
</view>
@ -121,19 +175,25 @@
<uv-popup ref="addressPopup" :round="30">
<addressList ref="addressList" height="60vh" @select="selectAddress" />
</uv-popup>
<uv-picker ref="unitListPicker"
keyName="specsName"
:columns="unitList"
itemHeight="80"
@confirm="unitListConfirm"></uv-picker>
</view>
</template>
<script>
import topbar from "@/components/base/topbar.vue";
import tabber from "@/components/base/tabbar.vue";
import customerServicePopup from "@/components/config/customerServicePopup.vue";
import Position from "@/utils/position";
import dayjs from "dayjs";
import AddressList from "@/pages_order/components/address/addressList.vue";
export default {
import topbar from "@/components/base/topbar.vue";
import tabber from "@/components/base/tabbar.vue";
import customerServicePopup from "@/components/config/customerServicePopup.vue";
import Position from "@/utils/position";
import dayjs from "dayjs";
import AddressList from "@/pages_order/components/address/addressList.vue";
export default {
name: "offer",
components: {
AddressList,
@ -154,42 +214,70 @@ export default {
],
form: {
"addressId": "",
"num": 0,
"num": 1,
"price": 0,
"transactionTime": dayjs(new Date()).format("YYYY-MM-DD")
"transactionTime": dayjs(new Date()).format("YYYY-MM-DD")
},
address: {
name: '请选择地址',
addressDetail: '',
},
addressTotal: 0,
fileList : [],//
reportFileList : [],//
contentFileList : [],//
unitList : [],//
unit : {//
specsName : '请选择规格'
},
}
},
onShow() {},
onShow() {
this.getUnitList()
},
methods: {
//
getUnitList(){
this.$api('specsList', {
pageNo : 1,
pageSize : 9999999,
}, res => {
if(res.code == 200){
this.unitList.push(res.result.records)
}
})
},
//
getAddressListA() {
this.$refs.addressList
.getAddressList()
.then(res => {
if (res == 0) {
this.$refs.popup.close()
return uni.navigateTo({
url: '/pages_order/mine/address?type=back'
})
}
})
.getAddressList()
.then(res => {
if (res.total == 0) {
this.$refs.addressPopup.close()
return uni.navigateTo({
url: '/pages_order/center/addressListManage?type=back'
})
}
})
},
// /
confirmBtn() {
//TODO
this.form.addressId = this.address.id
this.form.specsId = this.unit.id
this.form.pic = this.fileList.map(n => n.url).join(',')
this.form.report = this.reportFileList.map(n => n.url).join(',')
this.form.picDetail = this.contentFileList.map(n => n.url).join(',')
if (this.$utils.verificationAll(this.form, {
"pic": '请上传主图',
"picDetail": '请上传内容图片',
specsId : "请选择规格",
"addressId": '请选择提货地点',
"num": '请选择吨数',
"price": '请输入单价',
@ -205,13 +293,18 @@ export default {
icon: 'none'
})
setTimeout(() => {
uni.navigateTo({
uni.reLaunch({
url: '/pages/index/index'
})
}, 1500)
}, 1000)
}
})
},
//
unitListConfirm(e){
this.unit = e.value[0]
},
openAddress() {
this.$refs.addressPopup.open('bottom')
@ -254,6 +347,23 @@ export default {
this.form.address = res
})
},
//
afterRead(e) {
let self = this
e.file.forEach(file => {
self.$Oss.ossUpload(file.url).then(url => {
self[e.name].push({
url
})
})
})
},
//
deleteImage(e) {
this[e.name].splice(e.index, 1)
},
},
}
</script>
@ -291,14 +401,11 @@ export default {
//margin-top: 20rpx;
padding: 20rpx 20rpx 20rpx 20rpx;
.addressA {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
//padding: 10rpx 0 0 20rpx;
.title {
display: flex;
@ -338,81 +445,6 @@ export default {
}
.delivery-date {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
padding: 10rpx 0 0 20rpx;
>view:nth-of-type(1) {
width: 30%;
// font-weight: 700;
}
.value {
width: 70%;
border-radius: 10rpx;
overflow: hidden;
.dateTimeCls {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
height: 80%;
//border: 1px solid #b0b2b3;
padding: 5rpx;
border-radius: 20rpx;
.date {
font-size: 30rpx;
display: flex;
align-items: center;
width: 80%;
height: 100%;
color: #000;
}
.img {
display: flex;
justify-content: center;
align-items: center;
//margin-left: 50rpx;
width: 20%;
//height: 100%;
}
}
}
}
.tentativeQuantity {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
padding: 10rpx 0 0 20rpx;
.key {
width: 30%;
}
.value {
width: 70%;
border-radius: 10rpx;
overflow: hidden;
}
}
.Tip {
display: flex;
align-items: center;
@ -476,9 +508,8 @@ export default {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
padding: 10rpx 0 0 20rpx;
margin: 10rpx 0 0 0;
padding: 10rpx 20rpx;
>view:nth-of-type(1) {
width: 30%;
@ -486,11 +517,9 @@ export default {
}
>view:nth-of-type(2) {
width: 70%;
flex: 1;
border-radius: 10rpx;
overflow: hidden;
input {
background-color: #FFF;
font-size: 28rpx;
@ -499,73 +528,6 @@ export default {
}
}
.performanceBond {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
padding: 10rpx 0 0 20rpx;
.key {
width: 30%;
// font-weight: 700;
}
.value {
width: 70%;
border-radius: 10rpx;
overflow: hidden;
input {
background-color: #FFF;
font-size: 28rpx;
padding: 16rpx 8rpx 16rpx 15rpx;
}
}
}
.currentRegion {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
padding: 10rpx 0 0 20rpx;
>view:nth-of-type(1) {
width: 30%;
// font-weight: 700;
}
>view:nth-of-type(2) {
width: 70%;
padding: 0 20rpx 0 0;
display: flex;
.input {
background-color: #f5f5f5;
// color: #a4a4a4;
font-size: 28rpx;
padding: 8rpx 8rpx 8rpx 15rpx;
width: 350rpx;
}
.orientation {
display: flex;
padding: 10rpx 10rpx 10rpx 20rpx;
font-size: 30rpx;
color: #FBAB32;
flex-direction: column;
justify-content: center;
align-items: center;
}
}
}
}
}
}

+ 435
- 437
pages_order/order/orderDetail2.vue View File

@ -1,445 +1,443 @@
<template>
<view class="page">
<navbar :title="$t('pageTitle.orderDetails')" leftClick @leftClick="$utils.navigateBack"/>
<view class="info">
<view class="flex">
<!--订单基本信息-->
<view class="server-item">
<view class="img-box">
<img :src="orderInfo.pic" style="width: 100%;height: 100%;"/>
</view>
<view class="server-info">
<view class="server-title">
{{ $t('other.aluminumProducts') }}
</view>
<view class="current-price">
<text class="unit">{{ $t('components.productSpecification') }}</text>
<text class="text"> {{ $t('other.specification') }}</text>
</view>
<view class="sales-volume" style="margin-top: 5px;">
<view class="desc"> {{ $t('other.pickupDate') }}{{ orderInfo.takeTime }}</view>
</view>
</view>
</view>
<!--收货地址-->
<view class="line address">
<view class="address-top">
<view class="">
{{ $t('components.shippingAddress') }}
</view>
<view class="copy">
<img style="width:40rpx;height:40rpx;"
@click="$utils.copyText('1')"
src="../static/order/copy.png">
</view>
</view>
<view class="addressDetail">
<view class="">{{ orderInfo.userName }}&nbsp;&nbsp;&nbsp; {{ orderInfo.phone }}</view>
<view class="">
{{ orderInfo.address }}
</view>
</view>
</view>
<!-- 订单信息 -->
<view class="line">
<view class="t min_tips">
<view class="">
{{ $t('components.orderInfo') }}
</view>
</view>
<view class="min_tips">
<view class="">
{{ $t('components.orderNumber') }}
</view>
<view class="">
{{ orderInfo.id }}
</view>
</view>
<view class="min_tips">
<view class="">
{{ $t('components.orderTime') }}
</view>
<view class="">
{{ orderInfo.createTime }}
</view>
</view>
</view>
<!-- 下单须知 -->
<view class="line">
<view class="t min_tips">
<view class="">
{{ $t('components.orderNotice') }}
</view>
</view>
<view class="xdxz" style="line-height: 40rpx;">
<!--<uv-parse :content="content"></uv-parse>-->
<view>1. 请您在收货时间前15分钟内到货否则将视为放弃挂单</view>
<view>2. 请您在收货地址提供的手机号码收到货物</view>
</view>
</view>
</view>
<!--我要撤单和联系客服-->
<view class="btns">
<view @click="backOrder" class="oneBtn">
{{ $t('other.withdrawOrder') }}
</view>
<view @click="$refs.customerServicePopup.open()" class="twoBtn">
{{ $t('components.contactCustomerService') }}
</view>
</view>
</view>
<!-- 联系客服弹框 -->
<customerServicePopup ref="customerServicePopup"/>
</view>
<view class="page">
<navbar :title="$t('pageTitle.orderDetails')" leftClick @leftClick="$utils.navigateBack" />
<view class="info">
<view class="flex">
<!--订单基本信息-->
<view class="server-item">
<view class="img-box">
<img :src="orderInfo.pic" style="width: 100%;height: 100%;" />
</view>
<view class="server-info">
<view class="server-title">
{{ $t('other.aluminumProducts') }}
</view>
<view class="current-price">
<text class="unit">{{ $t('components.productSpecification') }}</text>
<text class="text"> {{ $t('other.specification') }}</text>
</view>
<view class="sales-volume" style="margin-top: 5px;">
<view class="desc"> {{ $t('other.pickupDate') }}{{ orderInfo.takeTime }}</view>
</view>
</view>
</view>
<!--收货地址-->
<view class="line address">
<view class="address-top">
<view class="">
{{ $t('components.shippingAddress') }}
</view>
<view class="copy">
<img style="width:40rpx;height:40rpx;" @click="$utils.copyText('1')"
src="../static/order/copy.png">
</view>
</view>
<view class="addressDetail">
<view class="">{{ orderInfo.userName }}&nbsp;&nbsp;&nbsp; {{ orderInfo.phone }}</view>
<view class="">
{{ orderInfo.address }}
</view>
</view>
</view>
<!-- 订单信息 -->
<view class="line">
<view class="t min_tips">
<view class="">
{{ $t('components.orderInfo') }}
</view>
</view>
<view class="min_tips">
<view class="">
{{ $t('components.orderNumber') }}
</view>
<view class="">
{{ orderInfo.id }}
</view>
</view>
<view class="min_tips">
<view class="">
{{ $t('components.orderTime') }}
</view>
<view class="">
{{ orderInfo.createTime }}
</view>
</view>
</view>
<!-- 下单须知 -->
<view class="line">
<view class="t min_tips">
<view class="">
{{ $t('components.orderNotice') }}
</view>
</view>
<view class="xdxz" style="line-height: 40rpx;">
<!--<uv-parse :content="content"></uv-parse>-->
<view>1. 请您在收货时间前15分钟内到货否则将视为放弃挂单</view>
<view>2. 请您在收货地址提供的手机号码收到货物</view>
</view>
</view>
</view>
<!--我要撤单和联系客服-->
<view class="btns">
<view @click="backOrder" class="oneBtn">
{{ $t('other.withdrawOrder') }}
</view>
<view @click="$refs.customerServicePopup.open()" class="twoBtn">
{{ $t('components.contactCustomerService') }}
</view>
</view>
</view>
<!-- 联系客服弹框 -->
<customerServicePopup ref="customerServicePopup" />
</view>
</template>
<script>
import customerServicePopup from "@/components/config/customerServicePopup.vue";
export default {
name: "orderDetail2",
components: {customerServicePopup},
onLoad(options) {
if (options.orderInfo) {
this.orderInfo = JSON.parse(decodeURIComponent(options.orderInfo));
console.log(this.orderInfo, "解析后的订单数据"); //
}
},
data() {
return {
orderInfo: {}
}
},
methods: {
// id
queryOrderInfo() {
this.$api('getProductInfo', this.orderId, res => {
console.log(res, "挂单详情信息")
this.orderInfo = res.result
})
},
//
backOrder() {
let self = this
uni.showModal({
title: self.$t('other.backOrderTitle'),
content: self.$t('other.backOrderTitleConfirm'),
success(e) {
if (e.confirm) {
self.$api('noShow', {id}, res => {
if (res.code == 200) {
uni.showToast({
title: self.$t('other.backOrderSuccess'),
icon: 'none'
})
uni.navigateBack();
}
})
}
}
})
},
},
}
import customerServicePopup from "@/components/config/customerServicePopup.vue";
export default {
name: "orderDetail2",
components: {
customerServicePopup
},
onLoad(options) {
if (options.orderInfo) {
this.orderInfo = JSON.parse(decodeURIComponent(options.orderInfo));
console.log(this.orderInfo, "解析后的订单数据"); //
}
},
data() {
return {
orderInfo: {}
}
},
methods: {
// id
queryOrderInfo() {
this.$api('getProductInfo', this.orderId, res => {
console.log(res, "挂单详情信息")
this.orderInfo = res.result
})
},
//
backOrder() {
let self = this
uni.showModal({
title: self.$t('other.backOrderTitle'),
content: self.$t('other.backOrderTitleConfirm'),
success(e) {
if (e.confirm) {
self.$api('noShow', {
id
}, res => {
if (res.code == 200) {
uni.showToast({
title: self.$t('other.backOrderSuccess'),
icon: 'none'
})
uni.navigateBack();
}
})
}
}
})
},
},
}
</script>
<style scoped lang="scss">
.page {
.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: 26rpx;
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;
}
.btns {
display: flex;
justify-content: center;
align-items: center;
gap: 40rpx;
.oneBtn {
display: flex;
align-items: center;
justify-content: center;
width: 40%;
height: 70rpx;
padding: 10rpx;
border-radius: 40rpx;
color: white;
font-size: 28rpx;
margin: 20rpx 10rpx 0 0;
background: #293143;
//margin-top: 20rpx;
border-radius: 40rpx;
}
.twoBtn {
display: flex;
align-items: center;
justify-content: center;
width: 40%;
height: 70rpx;
padding: 10rpx;
border-radius: 40rpx;
color: #000000;
font-size: 28rpx;
margin: 20rpx 10rpx 0 0;
background: #f2f2f2;
//margin-top: 20rpx;
border-radius: 40rpx;
}
}
.xdxz {
font-size: 24rpx;
color: #777;
line-height: 30rpx;
}
.current-price {
font-size: 24rpx;
color: #8c8888;
.unit {
}
.text {
}
}
.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: $uni-color;
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: $uni-color;
border: 1px solid $uni-color;
padding: 10rpx 20rpx;
border-radius: 30rpx;
}
.btns {
display: flex;
justify-content: center;
.btn {
color: $uni-color;
border: 1px solid $uni-color;
padding: 10rpx 20rpx;
border-radius: 30rpx;
}
}
}
}
.page {
.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: 26rpx;
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;
}
.btns {
display: flex;
justify-content: center;
align-items: center;
gap: 40rpx;
.oneBtn {
display: flex;
align-items: center;
justify-content: center;
width: 40%;
height: 70rpx;
padding: 10rpx;
border-radius: 40rpx;
color: white;
font-size: 28rpx;
margin: 20rpx 10rpx 0 0;
background: #293143;
//margin-top: 20rpx;
border-radius: 40rpx;
}
.twoBtn {
display: flex;
align-items: center;
justify-content: center;
width: 40%;
height: 70rpx;
padding: 10rpx;
border-radius: 40rpx;
color: #000000;
font-size: 28rpx;
margin: 20rpx 10rpx 0 0;
background: #f2f2f2;
//margin-top: 20rpx;
border-radius: 40rpx;
}
}
.xdxz {
font-size: 24rpx;
color: #777;
line-height: 30rpx;
}
.current-price {
font-size: 24rpx;
color: #8c8888;
.unit {}
.text {}
}
.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: $uni-color;
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: $uni-color;
border: 1px solid $uni-color;
padding: 10rpx 20rpx;
border-radius: 30rpx;
}
.btns {
display: flex;
justify-content: center;
.btn {
color: $uni-color;
border: 1px solid $uni-color;
padding: 10rpx 20rpx;
border-radius: 30rpx;
}
}
}
}
</style>

+ 38
- 34
pages_order/order/pendingOrder.vue View File

@ -1,49 +1,53 @@
<template>
<!--我的挂单-->
<view class="page">
<!--我的挂单-->
<view class="page">
<navbar :title="$t('pageTitle.myOrders')" leftClick @leftClick="$utils.navigateBack"/>
<navbar :title="$t('pageTitle.myOrders')" leftClick @leftClick="$utils.navigateBack" />
<view class="frame">
<view class="content">
<orderList :list="list" :show-back-order="true" @getList="getData"></orderList>
</view>
</view>
<view class="frame">
<view class="content">
<orderList :list="list" :show-back-order="true" @getList="getData"></orderList>
</view>
</view>
</view>
</view>
</template>
<script>
import orderList from "../components/order/orderList.vue";
import topbar from "@/components/base/topbar.vue";
import tabber from "@/components/base/tabbar.vue";
import mixinsList from '@/mixins/list.js'
export default {
name: "pendingOrder",
components: {tabber, topbar, orderList},
mixins: [mixinsList],
data() {
return {
mixinsListApi: 'getMyProductlist',
}
},
methods: {},
}
import orderList from "../components/order/orderList.vue";
import topbar from "@/components/base/topbar.vue";
import tabber from "@/components/base/tabbar.vue";
import mixinsList from '@/mixins/list.js'
export default {
name: "pendingOrder",
components: {
tabber,
topbar,
orderList
},
mixins: [mixinsList],
data() {
return {
mixinsListApi: 'getMyProductlist',
}
},
methods: {},
}
</script>
<style scoped lang="scss">
.page {
.page {
.frame {
padding: 30rpx;
background-color: #f5f5f5;
.frame {
padding: 30rpx;
background-color: #f5f5f5;
.content {
//height: calc(100vh - 120rpx);
.content {
//height: calc(100vh - 120rpx);
}
}
}
}
}
}
</style>

+ 2
- 2
pages_order/tradingPlatform/confirmOrder.vue View File

@ -41,9 +41,9 @@
</view>
<!-- <view class="tip">
<view class="tip">
{{ $t('components.paymentNotice') }}
</view> -->
</view>
</view>


+ 58
- 134
pages_order/tradingPlatform/nowOrder.vue View File

@ -14,7 +14,27 @@
<view class="item">
<view>{{ $t('components.productSpe') }}</view>
<view>
{{$t('other.aluminumProducts') }}
{{ fatherData.specsName }}
</view>
</view>
<!--详情图-->
<view class="item"
v-if="fatherData.picDetail">
<view>详情图</view>
<view>
<uv-album :urls="fatherData.picDetail &&
fatherData.picDetail.split(',')"></uv-album>
</view>
</view>
<!--检测报告-->
<view class="item"
v-if="fatherData.report">
<view>检测报告</view>
<view>
<uv-album :urls="fatherData.report &&
fatherData.report.split(',')"></uv-album>
</view>
</view>
@ -59,9 +79,9 @@
</view>
</view> -->
<view class="addressA">
<view class="title">提货地点</view>
<view class="address" style="width: 70%">
<view class="item">
<view>提货地点</view>
<view>
{{ fatherData.address }}
</view>
</view>
@ -78,7 +98,7 @@
<!--交货日期-->
<view class="delivery-date">
<!-- <view class="item">
<view>{{ $t('components.deliveryDate') }}</view>
<view class="value">
<view class="dateTimeCls" @click="startDateOpen">
@ -90,18 +110,39 @@
</view>
<view class="img">
>
<!--<img src="../static/address/1.svg" style="width: 40rpx;-->
<!--height: 40rpx;">-->
</view>
</view>
</view>
</view> -->
<view class="item"
@click="startDateOpen">
<view>{{ $t('components.deliveryDate') }}</view>
<view class="date">
{{ form.takeTime }}
<uv-datetime-picker ref="startDateRef" v-model="form.takeTime" mode="date"
:minDate="$dayjs(fatherData.transactionTime).valueOf()"
@confirm="startDateChange"></uv-datetime-picker>
</view>
<view class="icon">
<uv-icon name="arrow-right" size="30rpx"></uv-icon>
</view>
</view>
<!--暂定数量-->
<view class="tentativeQuantity">
<view class="key">{{ $t('other.tentativeQuantity') }}</view>
<view class="value">
<uv-number-box inputWidth="200rpx" v-model="form.num" :max="fatherData.num"></uv-number-box>
<view class="item">
<view>{{ $t('other.tentativeQuantity') }}</view>
<view>
<uv-number-box inputWidth="200rpx" v-model="form.num"
:max="fatherData.num"></uv-number-box>
</view>
</view>
<!-- 库存 -->
<view class="item">
<view>库存</view>
<view>
{{ fatherData.num }}
</view>
</view>
@ -114,9 +155,9 @@
</view>
<!--履约保证金-->
<view class="performanceBond">
<view class="key">{{ $t('other.performanceDeposit') }}</view>
<view class="value">
<view class="item">
<view>{{ $t('other.performanceDeposit') }}</view>
<view>
<!-- <input v-model="form.deposit" clearable></input> -->
{{ deposit }}
</view>
@ -137,7 +178,6 @@
<span class="tip">{{ $t('components.contactUsIfAnyProblems') }}</span>
</view>
</view>
</view>
@ -347,80 +387,6 @@
//margin-top: 20rpx;
padding: 20rpx 20rpx 20rpx 20rpx;
.delivery-date {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
padding: 10rpx 0 0 20rpx;
>view:nth-of-type(1) {
width: 30%;
// font-weight: 700;
}
.value {
width: 70%;
border-radius: 10rpx;
overflow: hidden;
.dateTimeCls {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
height: 80%;
//border: 1px solid #b0b2b3;
padding: 5rpx;
border-radius: 20rpx;
.date {
font-size: 30rpx;
display: flex;
align-items: center;
width: 80%;
height: 100%;
color: #000;
}
.img {
display: flex;
justify-content: center;
align-items: center;
//margin-left: 50rpx;
width: 20%;
//height: 100%;
}
}
}
}
.tentativeQuantity {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
padding: 10rpx 0 0 20rpx;
.key {
width: 30%;
}
.value {
width: 70%;
border-radius: 10rpx;
overflow: hidden;
}
}
.Tip {
display: flex;
@ -485,9 +451,8 @@
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
padding: 10rpx 0 0 20rpx;
margin: 10rpx 0;
padding: 10rpx 20rpx;
>view:nth-of-type(1) {
width: 30%;
@ -495,7 +460,7 @@
}
>view:nth-of-type(2) {
width: 70%;
flex: 1;
border-radius: 10rpx;
overflow: hidden;
@ -564,7 +529,6 @@
}
view {
//margin: 20rpx;
overflow: hidden; //
text-overflow: ellipsis; //
@ -580,46 +544,6 @@
}
}
.currentRegion {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
// margin: 10rpx 0 0 0;
padding: 10rpx 0 0 20rpx;
>view:nth-of-type(1) {
width: 30%;
// font-weight: 700;
}
>view:nth-of-type(2) {
width: 70%;
padding: 0 20rpx 0 0;
display: flex;
.input {
background-color: #f5f5f5;
// color: #a4a4a4;
font-size: 28rpx;
padding: 8rpx 8rpx 8rpx 15rpx;
width: 350rpx;
}
.orientation {
display: flex;
padding: 10rpx 10rpx 10rpx 20rpx;
font-size: 30rpx;
color: #FBAB32;
flex-direction: column;
justify-content: center;
align-items: center;
}
}
}
}
}
}

+ 1
- 0
store/store.js View File

@ -16,6 +16,7 @@ const store = new Vuex.Store({
buy : {},
customerPhone : '',//客服电话
productDetail : {},//商品详情用于中转
orderDetail : {},//订单详情用于中转
cartInfo : {},//采购商下单的时候供应商开户行信息
pic : '',//清关服务图片
},


Loading…
Cancel
Save