19 changed files with 2037 additions and 2025 deletions
Split View
Diff Options
-
38apis/trade.js
-
2components/bussiness-components/packingStationItem.vue
-
1469pages/add-paper/index.vue
-
547pages/add-record/index.vue
-
4pages/client-detail/base-paper-deals.vue
-
6pages/client-detail/basic-information.vue
-
18pages/client-detail/equipment-information.vue
-
2pages/client-detail/index.vue
-
6pages/client-detail/lv-select.vue
-
2pages/contract-manage/index.vue
-
6pages/credit-order-list/index.vue
-
2pages/follow-up-records/index.vue
-
2pages/mall/index.vue
-
200pages/message/platform-message.vue
-
444pages/my-offer/index.vue
-
1172pages/quotation-details/index.vue
-
134pages/submit-quotation/index.vue
-
4pages/trade/orderList.vue
-
4pages/trade/quotationList.vue
1469
pages/add-paper/index.vue
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1,290 +1,287 @@ |
|||
<template> |
|||
<view class="warpper"> |
|||
<qnHeader class="header"> |
|||
<view class="header-title">跟进记录</view> |
|||
<view class="right-title" @click="saveClick">保存</view> |
|||
</qnHeader> |
|||
<view class="paper-price"> |
|||
<view class=""> |
|||
<view class="paper-price-image-title"> |
|||
<text class="add-paper-start"><uni-icons custom-prefix="iconfont" type="icon-required" size="14" color="#F5222D"></uni-icons></text> |
|||
<text class="add-paper-title">拜访对象</text> |
|||
</view> |
|||
<view class="paper-price-image"> |
|||
<qn-easyinput |
|||
class="paper-price-textArea bf-height" |
|||
:maxlength="200" |
|||
:styles="{ disableColor: '#F7F8FA' }" |
|||
v-model="form.respondent" |
|||
:inputBorder="false" |
|||
type="textarea" |
|||
placeholder="请输入拜访对象" |
|||
></qn-easyinput> |
|||
</view> |
|||
</view> |
|||
<view class=""> |
|||
<view class="paper-price-image-title"> |
|||
<text class="add-paper-start"><uni-icons custom-prefix="iconfont" type="icon-required" size="14" color="#F5222D"></uni-icons></text> |
|||
<text class="add-paper-title">沟通记录</text> |
|||
</view> |
|||
<view class="paper-price-image"> |
|||
<qn-easyinput |
|||
class="paper-price-textArea gt-height" |
|||
:maxlength="500" |
|||
:styles="{ disableColor: '#F7F8FA' }" |
|||
v-model="form.content" |
|||
:inputBorder="false" |
|||
type="textarea" |
|||
placeholder="请输入与客户的沟通记录" |
|||
></qn-easyinput> |
|||
</view> |
|||
</view> |
|||
<view class=""> |
|||
<view class="paper-price-image-title"> |
|||
<!-- <text class="add-paper-start"><uni-icons custom-prefix="iconfont" type="icon-required" size="14" color="#F5222D"></uni-icons></text> --> |
|||
<text class="add-paper-title">备注信息</text> |
|||
</view> |
|||
<view class="paper-price-image"> |
|||
<qn-easyinput |
|||
class="paper-price-textArea bf-height" |
|||
:maxlength="200" |
|||
:styles="{ disableColor: '#F7F8FA' }" |
|||
v-model="form.remark" |
|||
:inputBorder="false" |
|||
type="textarea" |
|||
placeholder="请输入备注" |
|||
></qn-easyinput> |
|||
<view class="location"> |
|||
<image class="icon" src="/static/imgs/client-detail/address-icon.png"></image> |
|||
<text class="text">{{form.address}}</text> |
|||
<!-- <uni-icons size="16" type="bottom"></uni-icons> --> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="warpper"> |
|||
<qnHeader class="header"> |
|||
<view class="header-title">跟进记录</view> |
|||
<view class="right-title" @click="saveClick">保存</view> |
|||
</qnHeader> |
|||
<view class="paper-price"> |
|||
<view class=""> |
|||
<view class="paper-price-image-title"> |
|||
<text class="add-paper-start"><uni-icons custom-prefix="iconfont" type="icon-required" size="14" color="#F5222D"></uni-icons></text> |
|||
<text class="add-paper-title">拜访对象</text> |
|||
</view> |
|||
<view class="paper-price-image"> |
|||
<qn-easyinput |
|||
class="paper-price-textArea bf-height" |
|||
:maxlength="200" |
|||
:styles="{ disableColor: '#F7F8FA' }" |
|||
v-model="form.respondent" |
|||
:inputBorder="false" |
|||
type="textarea" |
|||
placeholder="请输入拜访对象" |
|||
></qn-easyinput> |
|||
</view> |
|||
</view> |
|||
<view class=""> |
|||
<view class="paper-price-image-title"> |
|||
<text class="add-paper-start"><uni-icons custom-prefix="iconfont" type="icon-required" size="14" color="#F5222D"></uni-icons></text> |
|||
<text class="add-paper-title">沟通记录</text> |
|||
</view> |
|||
<view class="paper-price-image"> |
|||
<qn-easyinput |
|||
class="paper-price-textArea gt-height" |
|||
:maxlength="500" |
|||
:styles="{ disableColor: '#F7F8FA' }" |
|||
v-model="form.content" |
|||
:inputBorder="false" |
|||
type="textarea" |
|||
placeholder="请输入与客户的沟通记录" |
|||
></qn-easyinput> |
|||
</view> |
|||
</view> |
|||
<view class=""> |
|||
<view class="paper-price-image-title"> |
|||
<!-- <text class="add-paper-start"><uni-icons custom-prefix="iconfont" type="icon-required" size="14" color="#F5222D"></uni-icons></text> --> |
|||
<text class="add-paper-title">备注信息</text> |
|||
</view> |
|||
<view class="paper-price-image"> |
|||
<qn-easyinput |
|||
class="paper-price-textArea bf-height" |
|||
:maxlength="200" |
|||
:styles="{ disableColor: '#F7F8FA' }" |
|||
v-model="form.remark" |
|||
:inputBorder="false" |
|||
type="textarea" |
|||
placeholder="请输入备注" |
|||
></qn-easyinput> |
|||
<view class="location"> |
|||
<image class="icon" src="/static/imgs/client-detail/address-icon.png"></image> |
|||
<text class="text">{{ form.address }}</text> |
|||
<!-- <uni-icons size="16" type="bottom"></uni-icons> --> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import wgs84togcj02 from '@/utils/locationTransform.js' |
|||
import { back, uploadImage } from '@/utils/hook.js' |
|||
import wgs84togcj02 from '@/utils/locationTransform.js' |
|||
import { back, uploadImage } from '@/utils/hook.js' |
|||
import qnHeader from '@/components/qn-header/qn-header.vue' |
|||
import { createVisitRecord } from '@/apis/followUpRecords.js' |
|||
const validateFields = [ |
|||
'content', |
|||
'respondent' |
|||
] |
|||
const validateFields = ['content', 'respondent'] |
|||
export default { |
|||
components: { qnHeader }, |
|||
data() { |
|||
return { |
|||
form: { |
|||
address: '', |
|||
content: '', |
|||
customerEnterpriseId: this.$store.state.supplierInfo.id || null, |
|||
remark: '', |
|||
respondent: '' |
|||
} |
|||
} |
|||
}, |
|||
onLoad() { |
|||
this.locatePosition() |
|||
}, |
|||
methods: { |
|||
locatePosition() { |
|||
uni.getLocation({ |
|||
type: 'gcj02', |
|||
geocode: true, |
|||
// type: 'wgs84', |
|||
success: (res) => { |
|||
console.log('location success', res) |
|||
if(res.address) { |
|||
this.form.address = res.address.province + res.address.city + res.address.district + res.address.street |
|||
} |
|||
// const { lat, lon } = wgs84togcj02(res.latitude, res.longitude) |
|||
}, |
|||
fail: (err) => { |
|||
uni.showToast({ |
|||
icon: 'error', |
|||
title: '定位失败:' + err.code |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
// 保存 |
|||
saveClick() { |
|||
for (let i = 0; i < validateFields.length; i++) { |
|||
if (this.form[validateFields[i]] === null || this.form[validateFields[i]] === '') { |
|||
uni.showToast({ |
|||
title: '请完善信息', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
} |
|||
createVisitRecord(this.form).then(res => { |
|||
if(res) { |
|||
uni.showToast({ |
|||
title: '添加成功', |
|||
icon: 'success' |
|||
}) |
|||
setTimeout(() => { |
|||
back() |
|||
}, 1000) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
components: { qnHeader }, |
|||
data() { |
|||
return { |
|||
form: { |
|||
address: '', |
|||
content: '', |
|||
customerEnterpriseId: this.$store.state.supplierInfo.id || null, |
|||
remark: '', |
|||
respondent: '' |
|||
} |
|||
} |
|||
}, |
|||
onLoad() { |
|||
this.locatePosition() |
|||
}, |
|||
methods: { |
|||
locatePosition() { |
|||
uni.getLocation({ |
|||
type: 'gcj02', |
|||
geocode: true, |
|||
// type: 'wgs84', |
|||
success: (res) => { |
|||
console.log('location success', res) |
|||
if (res.address) { |
|||
this.form.address = res.address.province + res.address.city + res.address.district + res.address.street |
|||
} |
|||
// const { lat, lon } = wgs84togcj02(res.latitude, res.longitude) |
|||
}, |
|||
fail: (err) => { |
|||
uni.showToast({ |
|||
icon: 'error', |
|||
title: '定位失败:' + err.code |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
// 保存 |
|||
saveClick() { |
|||
for (let i = 0; i < validateFields.length; i++) { |
|||
if (this.form[validateFields[i]] === null || this.form[validateFields[i]] === '') { |
|||
uni.showToast({ |
|||
title: '请完善信息', |
|||
icon: 'none' |
|||
}) |
|||
return |
|||
} |
|||
} |
|||
createVisitRecord(this.form).then((res) => { |
|||
if (res) { |
|||
uni.showToast({ |
|||
title: '添加成功', |
|||
icon: 'success' |
|||
}) |
|||
setTimeout(() => { |
|||
back() |
|||
}, 1000) |
|||
} |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.warpper { |
|||
background-color: #ffffff; |
|||
height: 100%; |
|||
.header { |
|||
justify-content: space-between; |
|||
} |
|||
.header-title { |
|||
font-size: 36rpx; |
|||
color: #000000; |
|||
letter-spacing: 0; |
|||
text-align: center; |
|||
font-weight: 500; |
|||
} |
|||
background-color: #ffffff; |
|||
height: 100%; |
|||
.header { |
|||
justify-content: space-between; |
|||
} |
|||
.header-title { |
|||
font-size: 36rpx; |
|||
color: #000000; |
|||
letter-spacing: 0; |
|||
text-align: center; |
|||
font-weight: 500; |
|||
} |
|||
|
|||
.right-title { |
|||
font-size: 28rpx; |
|||
color: #007aff; |
|||
text-align: center; |
|||
line-height: 40rpx; |
|||
font-weight: 500; |
|||
} |
|||
.add-paper-start { |
|||
font-size: 28rpx; |
|||
color: #f5222d; |
|||
letter-spacing: 0; |
|||
font-weight: 400; |
|||
} |
|||
.add-paper-title { |
|||
font-size: 28rpx; |
|||
color: #000000; |
|||
letter-spacing: 0; |
|||
font-weight: 500; |
|||
} |
|||
.paper-price { |
|||
background-color: #ffffff; |
|||
padding: 20rpx 0rpx; |
|||
.right-title { |
|||
font-size: 28rpx; |
|||
color: #007aff; |
|||
text-align: center; |
|||
line-height: 40rpx; |
|||
font-weight: 500; |
|||
} |
|||
.add-paper-start { |
|||
font-size: 28rpx; |
|||
color: #f5222d; |
|||
letter-spacing: 0; |
|||
font-weight: 400; |
|||
} |
|||
.add-paper-title { |
|||
font-size: 28rpx; |
|||
color: #000000; |
|||
letter-spacing: 0; |
|||
font-weight: 500; |
|||
} |
|||
.paper-price { |
|||
background-color: #ffffff; |
|||
padding: 20rpx 0rpx; |
|||
|
|||
.paper-price-form { |
|||
background: #f7f8fa; |
|||
border-radius: 8rpx; |
|||
margin: 22rpx 32rpx; |
|||
padding: 22rpx 32rpx; |
|||
line-height: 60rpx; |
|||
margin-bottom: 30rpx; |
|||
} |
|||
.paper-price-item { |
|||
display: flex; |
|||
flex-direction: row; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
.flex { |
|||
display: flex; |
|||
margin-left: 4px; |
|||
align-items: center; |
|||
} |
|||
} |
|||
.delete-text { |
|||
font-size: 28rpx; |
|||
color: #f5222d; |
|||
letter-spacing: 0; |
|||
font-weight: 400; |
|||
} |
|||
.paper-price-main { |
|||
padding: 22rpx 32rpx; |
|||
height: 88rpx; |
|||
align-items: center; |
|||
border-bottom: 2rpx solid #dddddd; |
|||
} |
|||
.paper-price-image-title { |
|||
padding: 0rpx 32rpx; |
|||
align-items: center; |
|||
} |
|||
.paper-price-image { |
|||
padding: 16rpx 32rpx; |
|||
} |
|||
.paper-price-textArea { |
|||
background: #f7f8fa; |
|||
border-radius: 20rpx; |
|||
padding: 10rpx; |
|||
} |
|||
.paper-price-title { |
|||
font-size: 28rpx; |
|||
color: #000000; |
|||
letter-spacing: 0; |
|||
font-weight: 600; |
|||
} |
|||
.paper-price-subtitle { |
|||
font-size: 24rpx; |
|||
color: #888888; |
|||
font-weight: 400; |
|||
} |
|||
.dian { |
|||
background: #adbac9; |
|||
width: 10rpx; |
|||
height: 10rpx; |
|||
border-radius: 50%; |
|||
// margin-top: 28rpx; |
|||
margin-right: 10rpx; |
|||
} |
|||
.label_text { |
|||
font-size: 28rpx; |
|||
color: #888888; |
|||
letter-spacing: 0; |
|||
font-weight: 400; |
|||
} |
|||
.label_value { |
|||
padding-bottom: 5rpx; |
|||
border-bottom: 2rpx solid #d8d8d8; |
|||
width: 65%; |
|||
text-align: right; |
|||
} |
|||
.label-select { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: flex-end; |
|||
} |
|||
.text-left { |
|||
margin-left: 10rpx; |
|||
} |
|||
.text-right { |
|||
margin-right: 10rpx; |
|||
} |
|||
} |
|||
.bf-height { |
|||
height: 155rpx; |
|||
} |
|||
.gt-height { |
|||
height: 210rpx; |
|||
} |
|||
.location { |
|||
display: flex; |
|||
flex-direction: row; |
|||
align-items: center; |
|||
padding-top: 20rpx; |
|||
.icon { |
|||
width: 32rpx; |
|||
height: 32rpx; |
|||
} |
|||
.text { |
|||
font-size: 26rpx; |
|||
color: #888888; |
|||
letter-spacing: 0; |
|||
text-align: left; |
|||
font-weight: 400; |
|||
padding-left: 10rpx; |
|||
} |
|||
} |
|||
.paper-price-form { |
|||
background: #f7f8fa; |
|||
border-radius: 8rpx; |
|||
margin: 22rpx 32rpx; |
|||
padding: 22rpx 32rpx; |
|||
line-height: 60rpx; |
|||
margin-bottom: 30rpx; |
|||
} |
|||
.paper-price-item { |
|||
display: flex; |
|||
flex-direction: row; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
.flex { |
|||
display: flex; |
|||
margin-left: 4px; |
|||
align-items: center; |
|||
} |
|||
} |
|||
.delete-text { |
|||
font-size: 28rpx; |
|||
color: #f5222d; |
|||
letter-spacing: 0; |
|||
font-weight: 400; |
|||
} |
|||
.paper-price-main { |
|||
padding: 22rpx 32rpx; |
|||
height: 88rpx; |
|||
align-items: center; |
|||
border-bottom: 2rpx solid rgba(221, 221, 221, 0.5); |
|||
} |
|||
.paper-price-image-title { |
|||
padding: 0rpx 32rpx; |
|||
align-items: center; |
|||
} |
|||
.paper-price-image { |
|||
padding: 16rpx 32rpx; |
|||
} |
|||
.paper-price-textArea { |
|||
background: #f7f8fa; |
|||
border-radius: 20rpx; |
|||
padding: 10rpx; |
|||
} |
|||
.paper-price-title { |
|||
font-size: 28rpx; |
|||
color: #000000; |
|||
letter-spacing: 0; |
|||
font-weight: 600; |
|||
} |
|||
.paper-price-subtitle { |
|||
font-size: 24rpx; |
|||
color: #888888; |
|||
font-weight: 400; |
|||
} |
|||
.dian { |
|||
background: #adbac9; |
|||
width: 10rpx; |
|||
height: 10rpx; |
|||
border-radius: 50%; |
|||
// margin-top: 28rpx; |
|||
margin-right: 10rpx; |
|||
} |
|||
.label_text { |
|||
font-size: 28rpx; |
|||
color: #888888; |
|||
letter-spacing: 0; |
|||
font-weight: 400; |
|||
} |
|||
.label_value { |
|||
padding-bottom: 5rpx; |
|||
border-bottom: 2rpx solid #d8d8d8; |
|||
width: 65%; |
|||
text-align: right; |
|||
} |
|||
.label-select { |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: flex-end; |
|||
} |
|||
.text-left { |
|||
margin-left: 10rpx; |
|||
} |
|||
.text-right { |
|||
margin-right: 10rpx; |
|||
} |
|||
} |
|||
.bf-height { |
|||
height: 155rpx; |
|||
} |
|||
.gt-height { |
|||
height: 210rpx; |
|||
} |
|||
.location { |
|||
display: flex; |
|||
flex-direction: row; |
|||
align-items: center; |
|||
padding-top: 20rpx; |
|||
.icon { |
|||
width: 32rpx; |
|||
height: 32rpx; |
|||
} |
|||
.text { |
|||
font-size: 26rpx; |
|||
color: #888888; |
|||
letter-spacing: 0; |
|||
text-align: left; |
|||
font-weight: 400; |
|||
padding-left: 10rpx; |
|||
} |
|||
} |
|||
} |
|||
</style> |
|||
</style> |
|||
@ -1,113 +1,111 @@ |
|||
<template> |
|||
<view class="platform-message"> |
|||
<view class="platform-message-main" @click="jumpInfo(item)"> |
|||
<view class="platform-message-main-top"> |
|||
<view class="platform-message-title"> |
|||
<view class="">关于12/29日纸掌柜系统维护公告</view> |
|||
<view class="dian"></view> |
|||
</view> |
|||
</view> |
|||
<view class="platform-message-contant">尊敬的用户,您好!\u2028因服务升级需要,纸掌柜将于2021年12月29日进..</view> |
|||
<view class="xian"></view> |
|||
<view class="platform-message-bottom"> |
|||
<view class="platform-message-bottom-title">2021/12/29 12:30:45</view> |
|||
<view class="platform-message-bottom-text"> |
|||
<view class="platform-message-bottom-subtitle"> |
|||
查看详情 |
|||
</view> |
|||
<view class=""> |
|||
<image class="platform-message-bottom-image" src="../../static/imgs/client-detail/arrow-right-icon.png" mode=""></image> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="platform-message"> |
|||
<view class="platform-message-main" @click="jumpInfo(item)"> |
|||
<view class="platform-message-main-top"> |
|||
<view class="platform-message-title"> |
|||
<view class="">关于12/29日纸掌柜系统维护公告</view> |
|||
<view class="dian"></view> |
|||
</view> |
|||
</view> |
|||
<view class="platform-message-contant">尊敬的用户,您好!\u2028因服务升级需要,纸掌柜将于2021年12月29日进..</view> |
|||
<view class="xian"></view> |
|||
<view class="platform-message-bottom"> |
|||
<view class="platform-message-bottom-title">2021/12/29 12:30:45</view> |
|||
<view class="platform-message-bottom-text"> |
|||
<view class="platform-message-bottom-subtitle">查看详情</view> |
|||
<view class=""> |
|||
<image class="platform-message-bottom-image" src="../../static/imgs/client-detail/arrow-right-icon.png" mode=""></image> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import { back, go2 } from '@/utils/hook.js' |
|||
import { back, go2 } from '@/utils/hook.js' |
|||
export default { |
|||
data() { |
|||
return {} |
|||
}, |
|||
methods: { |
|||
jumpInfo(){ |
|||
go2('platform-message-info') |
|||
}, |
|||
} |
|||
data() { |
|||
return {} |
|||
}, |
|||
methods: { |
|||
jumpInfo() { |
|||
go2('platform-message-info') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
.platform-message { |
|||
.platform-message-main { |
|||
background-color: #ffffff; |
|||
margin: 20rpx 32rpx; |
|||
border-radius: 20rpx; |
|||
} |
|||
.platform-message-main-top { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
padding: 24rpx 32rpx; |
|||
} |
|||
.platform-message-title { |
|||
font-size: 32rpx; |
|||
color: #333333; |
|||
letter-spacing: 0; |
|||
font-weight: 600; |
|||
display: flex; |
|||
} |
|||
.platform-message-subtitle { |
|||
font-size: 24rpx; |
|||
color: #333333; |
|||
font-weight: 400; |
|||
} |
|||
.platform-message-contant { |
|||
font-size: 28rpx; |
|||
color: #888888; |
|||
letter-spacing: 0; |
|||
font-weight: 400; |
|||
padding: 0rpx 32rpx; |
|||
line-height: 40rpx; |
|||
overflow: auto; |
|||
max-height: 100rpx; |
|||
height: 100rpx; |
|||
} |
|||
.dian { |
|||
background: #ff0000; |
|||
height: 14rpx; |
|||
width: 14rpx; |
|||
border-radius: 20rpx; |
|||
margin-left: 10rpx; |
|||
} |
|||
.xian { |
|||
border-bottom: 2rpx solid #dddddd; |
|||
} |
|||
.platform-message-bottom { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
padding: 20rpx 32rpx; |
|||
align-items: center; |
|||
.platform-message-bottom-title { |
|||
font-size: 24rpx; |
|||
color: #333333; |
|||
font-weight: 400; |
|||
} |
|||
.platform-message-bottom-subtitle { |
|||
font-size: 28rpx; |
|||
color: #007aff; |
|||
letter-spacing: 0; |
|||
font-weight: 400; |
|||
} |
|||
.platform-message-bottom-image{ |
|||
height: 40rpx; |
|||
width: 40rpx; |
|||
margin-top: 10rpx; |
|||
} |
|||
.platform-message-bottom-text{ |
|||
display: flex; |
|||
align-items: center; |
|||
} |
|||
} |
|||
.platform-message-main { |
|||
background-color: #ffffff; |
|||
margin: 20rpx 32rpx; |
|||
border-radius: 20rpx; |
|||
} |
|||
.platform-message-main-top { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
padding: 24rpx 32rpx; |
|||
} |
|||
.platform-message-title { |
|||
font-size: 32rpx; |
|||
color: #333333; |
|||
letter-spacing: 0; |
|||
font-weight: 600; |
|||
display: flex; |
|||
} |
|||
.platform-message-subtitle { |
|||
font-size: 24rpx; |
|||
color: #333333; |
|||
font-weight: 400; |
|||
} |
|||
.platform-message-contant { |
|||
font-size: 28rpx; |
|||
color: #888888; |
|||
letter-spacing: 0; |
|||
font-weight: 400; |
|||
padding: 0rpx 32rpx; |
|||
line-height: 40rpx; |
|||
overflow: auto; |
|||
max-height: 100rpx; |
|||
height: 100rpx; |
|||
} |
|||
.dian { |
|||
background: #ff0000; |
|||
height: 14rpx; |
|||
width: 14rpx; |
|||
border-radius: 20rpx; |
|||
margin-left: 10rpx; |
|||
} |
|||
.xian { |
|||
border-bottom: 2rpx solid rgba(221, 221, 221, 0.5); |
|||
} |
|||
.platform-message-bottom { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
padding: 20rpx 32rpx; |
|||
align-items: center; |
|||
.platform-message-bottom-title { |
|||
font-size: 24rpx; |
|||
color: #333333; |
|||
font-weight: 400; |
|||
} |
|||
.platform-message-bottom-subtitle { |
|||
font-size: 28rpx; |
|||
color: #007aff; |
|||
letter-spacing: 0; |
|||
font-weight: 400; |
|||
} |
|||
.platform-message-bottom-image { |
|||
height: 40rpx; |
|||
width: 40rpx; |
|||
margin-top: 10rpx; |
|||
} |
|||
.platform-message-bottom-text { |
|||
display: flex; |
|||
align-items: center; |
|||
} |
|||
} |
|||
} |
|||
</style> |
|||
@ -1,237 +1,239 @@ |
|||
<template> |
|||
<view class="my-offer"> |
|||
<view> |
|||
<uni-nav-bar left-icon="back" @clickLeft="back" statusBar fixed title=""> |
|||
<view class="my-offer-title">我的报价</view> |
|||
<view slot="left"></view> |
|||
<view slot="right"></view> |
|||
</uni-nav-bar> |
|||
</view> |
|||
<scroll-list style="touch-action: none" ref="orderRef" :option="orderOption" @load="orderUp" @refresh="orderDown"> |
|||
<view v-for="(items, index) in orderData" :key="index" @click="myPriceInfo(items)"> |
|||
<view class="list-border list-title-line"> |
|||
<text class="list-title">{{items.belongEnterpriseName}}</text> |
|||
<text class="list-title-Subtitle">{{ controlItems[items.orderStatus - 1] }}</text> |
|||
</view> |
|||
<view class="list-border list-info-line" v-for="(item, index) in items.orderItemList" :key="index"> |
|||
<view class="list-info" :class="index === items.orderItemList.length ? 'list-border' : ''"> |
|||
<view class=""><image class="list-image" src="../../static/logo.png"></image></view> |
|||
<view class="list-info-contant"> |
|||
<view class="list-info-title">{{ item.brandName }}{{ item.categoryName }}</view> |
|||
<view class="list-info-text"> |
|||
<text>{{ item.categoryName }}/{{ item.brandName }}/</text> |
|||
<text>{{ item.gramWeight }}g/{{ item.length }}*{{ item.width }}/{{ item.pieceQuantity }}张</text> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="list-border list-bottom-contant"> |
|||
<view><text class="list-time">{{items.deliveryDay}}</text></view> |
|||
<view class=""> |
|||
<text class="list-title-Subtitle">¥{{ items.totalOfferPrice }}</text> |
|||
</view> |
|||
</view> |
|||
<uGap></uGap> |
|||
</view> |
|||
</scroll-list> |
|||
</view> |
|||
<view class="my-offer"> |
|||
<view> |
|||
<uni-nav-bar left-icon="back" @clickLeft="back" statusBar fixed title=""> |
|||
<view class="my-offer-title">我的报价</view> |
|||
<view slot="left"></view> |
|||
<view slot="right"></view> |
|||
</uni-nav-bar> |
|||
</view> |
|||
<scroll-list style="touch-action: none" ref="orderRef" :option="orderOption" @load="orderUp" @refresh="orderDown"> |
|||
<view v-for="(items, index) in orderData" :key="index" @click="myPriceInfo(items)"> |
|||
<view class="list-border list-title-line"> |
|||
<text class="list-title">{{ items.belongEnterpriseName }}</text> |
|||
<text class="list-title-Subtitle">{{ controlItems[items.orderStatus - 1] }}</text> |
|||
</view> |
|||
<view class="list-border list-info-line" v-for="(item, index) in items.orderItemList" :key="index"> |
|||
<view class="list-info" :class="index === items.orderItemList.length ? 'list-border' : ''"> |
|||
<view class=""><image class="list-image" src="../../static/logo.png"></image></view> |
|||
<view class="list-info-contant"> |
|||
<view class="list-info-title">{{ item.brandName }}{{ item.categoryName }}</view> |
|||
<view class="list-info-text"> |
|||
<text>{{ item.categoryName }}/{{ item.brandName }}/</text> |
|||
<text>{{ item.gramWeight }}g/{{ item.length }}*{{ item.width }}/{{ item.pieceQuantity }}张</text> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="list-border list-bottom-contant"> |
|||
<view> |
|||
<text class="list-time">{{ items.deliveryDay }}</text> |
|||
</view> |
|||
<view class=""> |
|||
<text class="list-title-Subtitle">¥{{ items.totalOfferPrice }}</text> |
|||
</view> |
|||
</view> |
|||
<uGap></uGap> |
|||
</view> |
|||
</scroll-list> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import { back, go2 } from '@/utils/hook.js' |
|||
import uGap from '@/components/u-gap/u-gap.vue' |
|||
import scrollList from '@/components/scroll-list/scroll-list.vue' |
|||
import { getMyreplyList } from '@/apis/trade.js' |
|||
import { getMyReplyList } from '@/apis/trade.js' |
|||
export default { |
|||
// props: { |
|||
// queryOrderData: { |
|||
// type: Object, |
|||
// default: () => {} |
|||
// } |
|||
// }, |
|||
components: { |
|||
uGap |
|||
}, |
|||
// props: { |
|||
// queryOrderData: { |
|||
// type: Object, |
|||
// default: () => {} |
|||
// } |
|||
// }, |
|||
components: { |
|||
uGap |
|||
}, |
|||
|
|||
data() { |
|||
return { |
|||
orderPagination: { |
|||
pageNum: 0, // 初始会执行一次下拉加载 |
|||
pageSize: 10 |
|||
}, |
|||
orderData: [], |
|||
controlCurrent: 0, |
|||
controlItems: ['待付款', '待发货', '待收货', '已完成', '已关闭'], |
|||
orderOption: { |
|||
size: 10, |
|||
auto: true, |
|||
emptyText: '暂无报价信息~', |
|||
background: '#F7F8FA', |
|||
fontSize: '40rpx' |
|||
}, |
|||
orderParams: { |
|||
cooperationState: 0, |
|||
latitude: 23.12616, |
|||
longitude: 113.38466, |
|||
km: 5 |
|||
} |
|||
} |
|||
}, |
|||
filters: {}, |
|||
watch: { |
|||
orderParams: { |
|||
handler(val) { |
|||
this.getMyreplyListQuery() |
|||
}, |
|||
deep: true |
|||
} |
|||
}, |
|||
onLoad(option) { |
|||
if (option) { |
|||
option.latitude && (this.params.latitude = option.latitude) |
|||
option.longitude && (this.params.longitude = option.longitude) |
|||
option.km && (this.params.km = option.km) |
|||
} |
|||
this.getMyreplyListQuery() |
|||
}, |
|||
methods: { |
|||
back, |
|||
// 获取我的报价 |
|||
getMyreplyListQuery() { |
|||
return new Promise((resolve, reject) => { |
|||
getMyreplyList({...this.orderPagination }) |
|||
.then(res => { |
|||
if (res) { |
|||
if (this.orderPagination.pageNum == 1) { |
|||
this.orderData = res.records |
|||
} else { |
|||
this.orderData = this.orderData.concat(res.records) |
|||
} |
|||
resolve({ list: this.orderData, total: res.total }) |
|||
} |
|||
}) |
|||
.catch(err => { |
|||
reject(err) |
|||
}) |
|||
}) |
|||
}, |
|||
//订单分页 |
|||
orderUp(page) { |
|||
this.orderPagination.pageNum++ |
|||
this.getMyreplyListQuery() |
|||
.then(({ list, total }) => { |
|||
this.$refs.orderRef.loadSuccess({ list, total }) |
|||
}) |
|||
.catch(() => { |
|||
this.$refs.orderRef.loadFail() |
|||
}) |
|||
}, |
|||
//订单分页 |
|||
orderDown() { |
|||
this.orderPagination.pageNum = 1 |
|||
this.getMyreplyListQuery() |
|||
.then(({ list, total }) => { |
|||
this.$refs.orderRef.refreshSuccess({ list, total }) |
|||
}) |
|||
.catch(() => { |
|||
this.$refs.orderRef.refreshFail() |
|||
}) |
|||
}, |
|||
data() { |
|||
return { |
|||
orderPagination: { |
|||
pageNum: 0, // 初始会执行一次下拉加载 |
|||
pageSize: 10 |
|||
}, |
|||
orderData: [], |
|||
controlCurrent: 0, |
|||
controlItems: ['待付款', '待发货', '待收货', '已完成', '已关闭'], |
|||
orderOption: { |
|||
size: 10, |
|||
auto: true, |
|||
emptyText: '暂无报价信息~', |
|||
background: '#F7F8FA', |
|||
fontSize: '40rpx' |
|||
}, |
|||
orderParams: { |
|||
cooperationState: 0, |
|||
latitude: 23.12616, |
|||
longitude: 113.38466, |
|||
km: 5 |
|||
} |
|||
} |
|||
}, |
|||
filters: {}, |
|||
watch: { |
|||
orderParams: { |
|||
handler(val) { |
|||
this.getMyReplyListQuery() |
|||
}, |
|||
deep: true |
|||
} |
|||
}, |
|||
onLoad(option) { |
|||
if (option) { |
|||
option.latitude && (this.params.latitude = option.latitude) |
|||
option.longitude && (this.params.longitude = option.longitude) |
|||
option.km && (this.params.km = option.km) |
|||
} |
|||
this.getMyReplyListQuery() |
|||
}, |
|||
methods: { |
|||
back, |
|||
// 获取我的报价 |
|||
getMyReplyListQuery() { |
|||
return new Promise((resolve, reject) => { |
|||
getMyReplyList({ ...this.orderPagination }) |
|||
.then((res) => { |
|||
if (res) { |
|||
if (this.orderPagination.pageNum == 1) { |
|||
this.orderData = res.records |
|||
} else { |
|||
this.orderData = this.orderData.concat(res.records) |
|||
} |
|||
resolve({ list: this.orderData, total: res.total }) |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
reject(err) |
|||
}) |
|||
}) |
|||
}, |
|||
//订单分页 |
|||
orderUp(page) { |
|||
this.orderPagination.pageNum++ |
|||
this.getMyReplyListQuery() |
|||
.then(({ list, total }) => { |
|||
this.$refs.orderRef.loadSuccess({ list, total }) |
|||
}) |
|||
.catch(() => { |
|||
this.$refs.orderRef.loadFail() |
|||
}) |
|||
}, |
|||
//订单分页 |
|||
orderDown() { |
|||
this.orderPagination.pageNum = 1 |
|||
this.getMyReplyListQuery() |
|||
.then(({ list, total }) => { |
|||
this.$refs.orderRef.refreshSuccess({ list, total }) |
|||
}) |
|||
.catch(() => { |
|||
this.$refs.orderRef.refreshFail() |
|||
}) |
|||
}, |
|||
|
|||
//跳转我的报价详情 |
|||
myPriceInfo(item) { |
|||
go2('quotation-details',item) |
|||
} |
|||
} |
|||
//跳转我的报价详情 |
|||
myPriceInfo(item) { |
|||
go2('quotation-details', item) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
.my-offer { |
|||
margin-bottom: 0rpx; |
|||
.list-border { |
|||
// border-top: 1px solid #dddddd; |
|||
border-bottom: 2rpx solid #dddddd; |
|||
} |
|||
.list-title-line { |
|||
line-height: 88rpx; |
|||
padding-left: 48rpx; |
|||
background: #ffffff; |
|||
} |
|||
.my-offer-title { |
|||
width: 100%; |
|||
font-family: PingFangSC-Medium; |
|||
font-size: 36rpx; |
|||
color: #000000; |
|||
letter-spacing: 0; |
|||
text-align: center; |
|||
font-weight: 500; |
|||
} |
|||
.list-title { |
|||
font-family: PingFangSC-Semibold; |
|||
font-size: 30rpx; |
|||
color: #000000; |
|||
letter-spacing: 0; |
|||
font-weight: 600; |
|||
} |
|||
.list-title-Subtitle { |
|||
font-family: PingFangSC-Medium; |
|||
font-size: 30rpx; |
|||
color: #ff5368; |
|||
letter-spacing: 0; |
|||
text-align: right; |
|||
font-weight: 500; |
|||
float: right; |
|||
margin-right: 32rpx; |
|||
} |
|||
.list-info-line { |
|||
padding-left: 48rpx; |
|||
line-height: 70rpx; |
|||
background: #ffffff; |
|||
} |
|||
.list-info-contant { |
|||
margin-left: 48rpx; |
|||
} |
|||
.list-info-title { |
|||
font-family: PingFangSC-Medium; |
|||
font-size: 30rpx; |
|||
color: #333333; |
|||
letter-spacing: 0; |
|||
text-align: left; |
|||
font-weight: 550; |
|||
} |
|||
.list-info-text { |
|||
font-family: PingFangSC-Regular; |
|||
font-size: 26rpx; |
|||
color: #888888; |
|||
letter-spacing: 0; |
|||
text-align: left; |
|||
line-height: 64rpx; |
|||
font-weight: 400; |
|||
} |
|||
.list-image { |
|||
width: 100rpx; |
|||
height: 100rpx; |
|||
margin-top: 20rpx; |
|||
} |
|||
.list-info { |
|||
display: flex; |
|||
} |
|||
.list-bottom-contant { |
|||
align-items: center; |
|||
padding-left: 48rpx; |
|||
height: 80rpx; |
|||
background: #ffffff; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
} |
|||
.list-time { |
|||
font-family: PingFangSC-Regular; |
|||
font-size: 26rpx; |
|||
color: #888888; |
|||
letter-spacing: 0; |
|||
line-height: 64rpx; |
|||
font-weight: 400; |
|||
} |
|||
margin-bottom: 0rpx; |
|||
.list-border { |
|||
// border-top: 1px solid rgba(221,221,221,0.5); |
|||
border-bottom: 2rpx solid rgba(221, 221, 221, 0.5); |
|||
} |
|||
.list-title-line { |
|||
line-height: 88rpx; |
|||
padding-left: 48rpx; |
|||
background: #ffffff; |
|||
} |
|||
.my-offer-title { |
|||
width: 100%; |
|||
font-family: PingFangSC-Medium; |
|||
font-size: 36rpx; |
|||
color: #000000; |
|||
letter-spacing: 0; |
|||
text-align: center; |
|||
font-weight: 500; |
|||
} |
|||
.list-title { |
|||
font-family: PingFangSC-Semibold; |
|||
font-size: 30rpx; |
|||
color: #000000; |
|||
letter-spacing: 0; |
|||
font-weight: 600; |
|||
} |
|||
.list-title-Subtitle { |
|||
font-family: PingFangSC-Medium; |
|||
font-size: 30rpx; |
|||
color: #ff5368; |
|||
letter-spacing: 0; |
|||
text-align: right; |
|||
font-weight: 500; |
|||
float: right; |
|||
margin-right: 32rpx; |
|||
} |
|||
.list-info-line { |
|||
padding-left: 48rpx; |
|||
line-height: 70rpx; |
|||
background: #ffffff; |
|||
} |
|||
.list-info-contant { |
|||
margin-left: 48rpx; |
|||
} |
|||
.list-info-title { |
|||
font-family: PingFangSC-Medium; |
|||
font-size: 30rpx; |
|||
color: #333333; |
|||
letter-spacing: 0; |
|||
text-align: left; |
|||
font-weight: 550; |
|||
} |
|||
.list-info-text { |
|||
font-family: PingFangSC-Regular; |
|||
font-size: 26rpx; |
|||
color: #888888; |
|||
letter-spacing: 0; |
|||
text-align: left; |
|||
line-height: 64rpx; |
|||
font-weight: 400; |
|||
} |
|||
.list-image { |
|||
width: 100rpx; |
|||
height: 100rpx; |
|||
margin-top: 20rpx; |
|||
} |
|||
.list-info { |
|||
display: flex; |
|||
} |
|||
.list-bottom-contant { |
|||
align-items: center; |
|||
padding-left: 48rpx; |
|||
height: 80rpx; |
|||
background: #ffffff; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
} |
|||
.list-time { |
|||
font-family: PingFangSC-Regular; |
|||
font-size: 26rpx; |
|||
color: #888888; |
|||
letter-spacing: 0; |
|||
line-height: 64rpx; |
|||
font-weight: 400; |
|||
} |
|||
} |
|||
</style> |
|||
</style> |
|||
1172
pages/quotation-details/index.vue
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
Write
Preview
Loading…
Cancel
Save