This commit is contained in:
aihe 2023-12-21 22:42:09 +08:00
parent bc84385909
commit 1b82cde9e1
15 changed files with 971 additions and 53 deletions

View File

@ -218,6 +218,12 @@
.font-36 {
font-size: 36rpx;
}
.font-38 {
font-size: 38rpx;
}
.font-40 {
font-size: 40rpx;
}
.clr-sub{
color: #999;
}

View File

@ -68,6 +68,18 @@
"style": {
"navigationBarTitleText": "业务统计"
}
},
{
"path": "pages/post/post",
"style": {
"navigationBarTitleText": "寄件信息"
}
},
{
"path": "pages/post/freightCalculate",
"style": {
"navigationBarTitleText": "报价试算"
}
}
],
"subPackages": [{

View File

@ -0,0 +1,264 @@
<template>
<tpx-layout>
<template v-slot:body>
<view class="com-jianju pos-rlt pb-30" style="padding-top: 2rpx;">
<view class="blcok-white">
<view>
<u-row @click="handleAddressChoose(1)" custom-style="position:relative;" align="top"
justify="between">
<view>
<image style="height: 50rpx;width: 42rpx;" :src="getCdnUrl(`post/ji.png`)"></image>
</view>
<view style="flex: 1;padding: 0 30rpx;">
<u-text text="寄件人信息" size="28" :bold="true"></u-text>
<view style="margin: 8rpx 0 0 0;">
<u-text text="请新建您的寄件地址信息" size="26" color="#999"></u-text>
</view>
</view>
<view class="flex-column-center">
<image style="height: 32rpx;width: 28rpx;" :src="getCdnUrl(`post/adress.png`)">
</image>
<u-text align="center" text="地址薄" size="26" :bold="true"
margin="8rpx 0 0 0"></u-text>
</view>
<view style="position: absolute;left: 20rpx;bottom: -20rpx;top: 46rpx;">
<u-line custom-style="height:100%;" direction="col" dashed="true"></u-line>
</view>
</u-row>
<view style="padding-left: 76rpx;">
<u-line margin="20rpx 0"></u-line>
</view>
<u-row @click="handleAddressChoose(2)" custom-style="position:relative;" align="top"
justify="between">
<view style="position: absolute;left: 20rpx;top: -20rpx;bottom: 100%;">
<u-line custom-style="height:100%;" direction="col" dashed="true"></u-line>
</view>
<view>
<image style="height: 50rpx;width: 42rpx;" :src="getCdnUrl(`post/shou.png`)">
</image>
</view>
<view class="pr-30 pl-30" style="flex: 1;">
<u-text text="收件人信息" size="28" :bold="true"></u-text>
<view style="margin: 8rpx 0 0 0;">
<u-text text="请填写收件人国家、姓名,电话" size="26" color="#999"></u-text>
</view>
</view>
<view class="flex-column-center">
<image style="height: 32rpx;width: 28rpx;" :src="getCdnUrl(`post/adress.png`)">
</image>
<u-text align="center" text="地址薄" size="26" :bold="true"
margin="8rpx 0 0 0"></u-text>
</view>
</u-row>
</view>
</view>
<view class="blcok-white" style="padding-top: 0;padding-bottom: 0;">
<view>
<view @click="handleDialogClick(countryModal)" class="pt-30 pb-30" style="border-bottom: 2rpx solid #F6F6F6;" >
<u-row>
<view>
<u-text text="目的国" size="28" :bold="true"></u-text>
</view>
<u-row custom-style="flex: 1;" justify="end" align="center">
<u-text align="right" margin="0 12rpx 0 0" size="26" text="柬埔寨"></u-text>
<u-icon size="26" name="arrow-right" color="#333"></u-icon>
</u-row>
</u-row>
</view>
<view @click="handleDialogClick(wayModal)" class="pt-30 pb-30" style="border-bottom: 2rpx solid #F6F6F6;;">
<u-row>
<view>
<u-text text="选择线路" size="28" :bold="true"></u-text>
</view>
<u-row custom-style="flex: 1;" justify="end" align="center">
<u-text align="right" margin="0 12rpx 0 0" size="26" color="#999"
text="请选择"></u-text>
<u-icon size="26" name="arrow-right" color="#333"></u-icon>
</u-row>
</u-row>
</view>
<view @click="handleDialogClick(goodChooseModal)" class="pt-30 pb-30" style="border-bottom: 2rpx solid #F6F6F6;;"
v-if="submitParam.type != sendTypeEnum.container"
>
<u-row>
<view>
<u-text text="重量/体积" size="28" :bold="true"></u-text>
</view>
<u-row custom-style="flex: 1;" justify="end" align="center">
<u-text align="right" margin="0 12rpx 0 0" size="26" color="#999"
text="填写重量体积"></u-text>
<u-icon size="26" name="arrow-right" color="#333"></u-icon>
</u-row>
</u-row>
</view>
</view>
</view>
<view class="com-section mt-30">产品类型</view>
<view class="blcok-white yunf-list" style="padding-bottom: 2rpx;">
<tpx-checkitems :list="proList" v-model:value="submitParam.prodId" v-slot="curPro" min-checked="1" type="single">
<view slot :class="`yunf-item ${curPro.checked?'active':''}`">
<u-row justify="between">
<u-col span="8">
<u-text :text="`柬埔寨-国际特快`" size="28" :bold="true"></u-text>
<u-text margin="6rpx" text="1-2工作日 ¥80元起" size="26" color="#999"></u-text>
</u-col>
<u-col span="4">
<u-text align="right" text="运费预估" size="26" color="#999"></u-text>
<u-text align="right" margin="6rpx" text="32" size="26" :bold="true" mode="price"
color="#B12D29"></u-text>
</u-col>
</u-row>
</view>
</tpx-checkitems>
</view>
<u-row justify="center">
<view class="mt-40">
<u-button @click="handleCalPost" size="large" shape="circle"
custom-style="width: 400rpx;height:80rpx;font-size: 30rpx;" type="primary">运费试算</u-button>
</view>
</u-row>
</view>
</template>
<template v-if="hasCalcuPost" v-slot:footer>
<view class="pos-rlt blcok-white" style="border-radius: 0;margin-top: 0;">
<u-row justify="between">
<view>
<view >
<u-row>
<view class="mr-10">
<u-text text="预估" :bold="true" size="28"></u-text>
</view>
<u-text :text="80" mode="price" color="#B12D29" :bold="true" size="28"></u-text>
</u-row>
<u-text margin="10rpx 0 0 0" text="温馨提示:具体费用以快递小哥核实为准" color="#999" size="26"></u-text>
</view>
</view>
<u-row>
<u-button @click="handleGoXiaDan" size="large" shape="circle"
custom-style="width: 200rpx;height:80rpx;font-size: 30rpx;" type="primary">下单</u-button>
</u-row>
</u-row>
</view>
</template>
</tpx-layout>
<buns-country-sheet v-model:show="countryModal.show" v-model:value="submitParam.countryId"></buns-country-sheet>
<buns-way-sheet v-model:show="wayModal.show" v-model:value="submitParam.wayId"></buns-way-sheet>
<buns-goodsize-sheet v-model:show="goodChooseModal.show" v-model:value="submitParam.goods"></buns-goodsize-sheet>
</template>
<script>
import getCdnUrl from "@/common/getCdnUrl"
import { sendTypeEnum, sendTypeList } from "@/common/enum"
import { goto } from "@/common/untool"
export default {
props: {
// hasLeftWin: {
// type: Boolean
// }
},
computed: {
},
data() {
return {
...(JSON.parse(JSON.stringify({ sendTypeEnum, sendTypeList }))),
proList: [
{val: 1 },{ val: 2 }
],
tipsList: [
{ title: '请带纸箱', val: '请带纸箱' },
{ title: '需要爬楼', val: '需要爬楼' },
{ title: '来前电话', val: '来前电话' },
],
hasCalcuPost: false,
countryModal: {
show: false
},
wayModal: {
show: false,
},
goodChooseModal:{
show: false
},
submitParam: {
stockRoomId: '',
countryId: '',
wayId: '',
type: sendTypeList[0].val,
paytype: '',
otherDes: '',
prodId: 1,
tips: [],
revtime: ''
}
}
},
onShareAppMessage() {
return {
// title: '',
// path: 'TODO'
}
},
onLoad() {
this.initData();
},
onUnload() {
},
methods: {
getCdnUrl,
initData() {
// uni.showLoading({
// title: '加载中'
// });
},
handleAddressChoose(type) { // 1 寄件地址 2收件地址
goto(`address/list?tab=${type}&type=choose`)
},
handleDialogClick(curModal){
curModal.show = true
},
handleCalPost() {
this.hasCalcuPost = true
},
handleGoXiaDan(){
goto(`post/post?id=${222}`)
},
}
}
</script>
<style lang="scss">
@import '@/common/uni-nvue.scss';
page {
background-color: #F6F6F6;
height: 100% !important;
}
</style>
<style scoped lang="scss">
.yunf-item {
margin-bottom: 20rpx;
padding: 30rpx;
background: #F6F6F6;
border-radius: 20rpx;
border: 2rpx solid transparent;
&.active {
border-color: $uni-color-primary;
}
}
</style>

361
pages/post/post.vue Normal file
View File

@ -0,0 +1,361 @@
<template>
<tpx-layout>
<template v-slot:body>
<view class="com-jianju pos-rlt pb-30" style="padding-top: 2rpx;">
<view class="blcok" style="background-color: #0E0708;">
<u-row>
<image class="mr-20" style="height: 28rpx;width: 34rpx;"
:src="getCdnUrl(`post/gangbo.png`)"></image>
<u-text size="24" color="#fff" text="下单后会有业务员及时联系您,请保持电话畅通!"></u-text>
</u-row>
</view>
<view class="blcok-white">
<view>
<u-row @click="handleAddressChoose(1)" custom-style="position:relative;" align="top"
justify="between">
<view>
<image style="height: 50rpx;width: 42rpx;" :src="getCdnUrl(`post/ji.png`)"></image>
</view>
<view style="flex: 1;padding: 0 30rpx;">
<u-text text="寄件人信息" size="28" :bold="true"></u-text>
<view style="margin: 8rpx 0 0 0;">
<u-text text="请新建您的寄件地址信息" size="26" color="#999"></u-text>
</view>
</view>
<view class="flex-column-center">
<image style="height: 32rpx;width: 28rpx;" :src="getCdnUrl(`post/adress.png`)">
</image>
<u-text align="center" text="地址薄" size="26" :bold="true"
margin="8rpx 0 0 0"></u-text>
</view>
<view style="position: absolute;left: 20rpx;bottom: -20rpx;top: 46rpx;">
<u-line custom-style="height:100%;" direction="col" dashed="true"></u-line>
</view>
</u-row>
<view style="padding-left: 76rpx;">
<u-line margin="20rpx 0"></u-line>
</view>
<u-row @click="handleAddressChoose(2)" custom-style="position:relative;" align="top"
justify="between">
<view style="position: absolute;left: 20rpx;top: -20rpx;bottom: 100%;">
<u-line custom-style="height:100%;" direction="col" dashed="true"></u-line>
</view>
<view>
<image style="height: 50rpx;width: 42rpx;" :src="getCdnUrl(`post/shou.png`)">
</image>
</view>
<view class="pr-30 pl-30" style="flex: 1;">
<u-text text="收件人信息" size="28" :bold="true"></u-text>
<view style="margin: 8rpx 0 0 0;">
<u-text text="请填写收件人国家、姓名,电话" size="26" color="#999"></u-text>
</view>
</view>
<view class="flex-column-center">
<image style="height: 32rpx;width: 28rpx;" :src="getCdnUrl(`post/adress.png`)">
</image>
<u-text align="center" text="地址薄" size="26" :bold="true"
margin="8rpx 0 0 0"></u-text>
</view>
</u-row>
</view>
</view>
<view class="blcok-white">
<view style="width: 80%;">
<tpx-tabs :list="sendTypeList" v-model:value="submitParam.type" @tabchange="(val)=> { }">
</tpx-tabs>
</view>
<view>
<view @click="handleDialogClick(countryModal)" class="pt-30 pb-30" style="border-bottom: 2rpx solid #F6F6F6;" >
<u-row>
<view>
<u-text text="目的国" size="28" :bold="true"></u-text>
</view>
<u-row custom-style="flex: 1;" justify="end" align="center">
<u-text align="right" margin="0 12rpx 0 0" size="26" text="柬埔寨"></u-text>
<u-icon size="26" name="arrow-right" color="#333"></u-icon>
</u-row>
</u-row>
</view>
<view @click="handleDialogClick(wayModal)" class="pt-30 pb-30" style="border-bottom: 2rpx solid #F6F6F6;;">
<u-row>
<view>
<u-text text="选择线路" size="28" :bold="true"></u-text>
</view>
<u-row custom-style="flex: 1;" justify="end" align="center">
<u-text align="right" margin="0 12rpx 0 0" size="26" color="#999"
text="请选择"></u-text>
<u-icon size="26" name="arrow-right" color="#333"></u-icon>
</u-row>
</u-row>
</view>
<view @click="handleChooseGoods" class="pt-30 pb-30" style="border-bottom: 2rpx solid #F6F6F6;;">
<u-row>
<view>
<u-text text="货物信息(必填)" size="28" :bold="true"></u-text>
</view>
<u-row custom-style="flex: 1;" justify="end" align="center">
<u-text align="right" margin="0 12rpx 0 0" size="26" color="#999"
text="填写物品信息"></u-text>
<u-icon size="26" name="arrow-right" color="#333"></u-icon>
</u-row>
</u-row>
</view>
<view @click="handleDialogClick(goodChooseModal)" class="pt-30 pb-30" style="border-bottom: 2rpx solid #F6F6F6;;"
v-if="submitParam.type != sendTypeEnum.container"
>
<u-row>
<view>
<u-text text="重量/体积" size="28" :bold="true"></u-text>
</view>
<u-row custom-style="flex: 1;" justify="end" align="center">
<u-text align="right" margin="0 12rpx 0 0" size="26" color="#999"
text="填写重量体积"></u-text>
<u-icon size="26" name="arrow-right" color="#333"></u-icon>
</u-row>
</u-row>
</view>
<view @click="handleDialogClick(stockRoomModal)" class="pt-30 pb-30" style="border-bottom: 2rpx solid #F6F6F6;;"
v-if="submitParam.type != sendTypeEnum.home"
>
<u-row>
<view>
<u-text text="选择仓库" size="28" :bold="true"></u-text>
</view>
<u-row custom-style="flex: 1;" justify="end" align="center">
<u-text align="right" margin="0 12rpx 0 0" size="26" color="#999"
text="请选择"></u-text>
<u-icon size="26" name="arrow-right" color="#333"></u-icon>
</u-row>
</u-row>
</view>
<view @click="handleDialogClick(revtimeModal)" class="pt-30 pb-30" style="border-bottom: 2rpx solid #F6F6F6;;">
<u-row>
<view>
<u-text text="期望上门时间 " size="28" :bold="true"></u-text>
</view>
<u-row custom-style="flex: 1;" justify="end" align="center">
<u-text align="right" margin="0 12rpx 0 0" size="26" text="1小时内"></u-text>
<u-icon size="26" name="arrow-right" color="#333"></u-icon>
</u-row>
</u-row>
</view>
<view @click="handleDialogClick(paytypeModal)" style="padding: 30rpx 0;border-bottom: 2rpx solid #F6F6F6;;">
<u-row>
<view>
<u-text text="付款方式" size="28" :bold="true"></u-text>
</view>
<u-row custom-style="flex: 1;" justify="end" align="center">
<u-text align="right" margin="0 12rpx 0 0" size="26" text="1现金/月结"></u-text>
<u-icon size="26" name="arrow-right" color="#333"></u-icon>
</u-row>
</u-row>
</view>
</view>
</view>
<view class="com-section mt-30">产品类型</view>
<view class="blcok-white yunf-list" style="padding-bottom: 2rpx;">
<tpx-checkitems :list="proList" v-model:value="submitParam.prodId" v-slot="curPro" min-checked="1" type="single">
<view slot :class="`yunf-item ${curPro.checked?'active':''}`">
<u-row justify="between">
<u-col span="8">
<u-text :text="`柬埔寨-国际特快`" size="28" :bold="true"></u-text>
<u-text margin="6rpx" text="1-2工作日 ¥80元起" size="26" color="#999"></u-text>
</u-col>
<u-col span="4">
<u-text align="right" text="运费预估" size="26" color="#999"></u-text>
<u-text align="right" margin="6rpx" text="32" size="26" :bold="true" mode="price"
color="#B12D29"></u-text>
</u-col>
</u-row>
</view>
</tpx-checkitems>
</view>
<view class="com-section mt-30">给快递员捎话</view>
<view class="blcok-white">
<tpx-tags :list="tipsList" v-model:value="submitParam.tips"></tpx-tags>
<u-textarea v-model="submitParam.otherDes" border="surround" height="160" placeholder="其他说明"
maxlength="50" count></u-textarea>
<u-line margin="20rpx 0 10rpx 0"></u-line>
<u-row justify="between">
<u-text text="您的专属快递员" size="26" color="#999"></u-text>
<u-row>
<u-text text="李晓" size="28" :bold="true" margin="0 30rpx 0 0"></u-text>
<view>
<u-avatar size="50" :src="''"></u-avatar>
</view>
</u-row>
</u-row>
</view>
</view>
</template>
<template v-slot:footer>
<view class="pos-rlt blcok-white" style="border-radius: 0;margin-top: 0;">
<u-row justify="between">
<view>
<u-row align="top">
<u-checkbox-group placement="column" @change="handleAgree()">
<u-checkbox size="26" labelSize="26" :checked="agreePrivateRule" label="我已同意接受"
label-color=":#999" activeColor="#B12D29"
custom-style="margin-bottom: 10rpx;"></u-checkbox>
</u-checkbox-group>
<view @click="handleDialogClick(privacyModal)" class="pl-10" style="padding-top: 6rpx;">
<u-text text="《快件运单契约条款》" size="26"></u-text>
</view>
</u-row>
<view @click="handleAgree()">
<u-row>
<view class="mr-10">
<u-text text="预估" :bold="true" size="28"></u-text>
</view>
<u-text :text="80" mode="price" color="#B12D29" :bold="true" size="28"></u-text>
</u-row>
<u-text margin="10rpx 0 0 0" text="温馨提示:具体费用以快递小哥核实为准" color="#999" size="26"></u-text>
</view>
</view>
<u-row>
<u-button size="large" shape="circle"
custom-style="width: 200rpx;height:80rpx;font-size: 30rpx;" type="primary">下单</u-button>
</u-row>
</u-row>
</view>
</template>
</tpx-layout>
<buns-country-sheet v-model:show="countryModal.show" v-model:value="submitParam.countryId"></buns-country-sheet>
<buns-way-sheet v-model:show="wayModal.show" v-model:value="submitParam.wayId"></buns-way-sheet>
<buns-stockroom-sheet v-model:show="stockRoomModal.show" v-model:value="submitParam.stockRoomId"></buns-stockroom-sheet>
<buns-paytype-sheet v-model:show="paytypeModal.show" v-model:value="submitParam.paytype"></buns-paytype-sheet>
<buns-privacy-dialog v-model:show="privacyModal.show"> </buns-privacy-dialog>
<buns-revtime-sheet v-model:show="revtimeModal.show" v-model:value="submitParam.revtime"></buns-revtime-sheet>
<buns-goodsize-sheet v-model:show="goodChooseModal.show" v-model:value="submitParam.goods"></buns-goodsize-sheet>
</template>
<script>
import getCdnUrl from "@/common/getCdnUrl"
import { sendTypeEnum, sendTypeList } from "@/common/enum"
import { goto } from "@/common/untool"
export default {
props: {
// hasLeftWin: {
// type: Boolean
// }
},
computed: {
},
data() {
return {
...(JSON.parse(JSON.stringify({ sendTypeEnum, sendTypeList }))),
proList: [
{val: 1 },{ val: 2 }
],
tipsList: [
{ title: '请带纸箱', val: '请带纸箱' },
{ title: '需要爬楼', val: '需要爬楼' },
{ title: '来前电话', val: '来前电话' },
],
showCladar: false,
agreePrivateRule: false,
countryModal: {
show: false
},
wayModal: {
show: false,
},
stockRoomModal: {
show: false,
},
paytypeModal: {
show: false,
},
privacyModal: {
show: false,
},
revtimeModal: {
show: false,
},
goodChooseModal: {
show: false,
},
submitParam: {
stockRoomId: '',
countryId: '',
wayId: '',
type: sendTypeList[0].val,
paytype: '',
otherDes: '',
prodId: 1,
tips: [],
revtime: ''
}
}
},
onShareAppMessage() {
return {
// title: '',
// path: 'TODO'
}
},
onLoad() {
this.initData();
},
onUnload() {
},
methods: {
getCdnUrl,
goto,
initData() {
// uni.showLoading({
// title: '加载中'
// });
},
handleAddressChoose(type) { // 1 寄件地址 2收件地址
goto(`address/list?tab=${type}&type=choose`)
},
handleAgree() {
this.agreePrivateRule = !this.agreePrivateRule
},
handleDialogClick(curModal){
curModal.show = true
},
handleChooseGoods(){
goto(`goods/edit?type=choose`)
}
}
}
</script>
<style lang="scss">
@import '@/common/uni-nvue.scss';
page {
background-color: #F6F6F6;
height: 100% !important;
}
</style>
<style scoped lang="scss">
.yunf-item {
margin-bottom: 20rpx;
padding: 30rpx;
background: #F6F6F6;
border-radius: 20rpx;
border: 2rpx solid transparent;
&.active {
border-color: $uni-color-primary;
}
}
</style>

View File

@ -6,9 +6,9 @@
<view class="font-32 font-weight">网点发件</view>
<view class="mt-10">
<u-row justify="start" gutter="18" custom-style="flex-wrap: wrap;">
<u-col v-for="(item, index) in faBtnlist" span="3">
<u-col v-for="(item, index) in faBtnlist" span="3" @click="goto(item.url)">
<view class="dlb-item">
<u-image height="80" width="80" :src="item.icon"></u-image>
<u-image height="60" width="60" :src="item.icon"></u-image>
<view class="pt-10">{{item.title}}</view>
</view>
</u-col>
@ -20,9 +20,9 @@
<view class="font-32 font-weight">网点到件</view>
<view class="mt-10">
<u-row justify="start" gutter="18" custom-style="flex-wrap: wrap;">
<u-col v-for="(item, index) in daoBtnlist" span="3">
<u-col v-for="(item, index) in daoBtnlist" span="3" @click="goto(item.url)">
<view class="dlb-item">
<u-image height="80" width="80" :src="item.icon"></u-image>
<u-image height="60" width="60" :src="item.icon"></u-image>
<view class="pt-10">{{item.title}}</view>
</view>
</u-col>
@ -34,9 +34,9 @@
<view class="font-32 font-weight">其他</view>
<view class="mt-10">
<u-row justify="start" gutter="18" custom-style="flex-wrap: wrap;">
<u-col v-for="(item, index) in otherBtnlist" span="3">
<u-col v-for="(item, index) in otherBtnlist" span="3" @click="goto(item.url)">
<view class="dlb-item">
<u-image height="80" width="80" :src="item.icon"></u-image>
<u-image height="60" width="60" :src="item.icon"></u-image>
<view class="pt-10">{{item.title}}</view>
</view>
</u-col>
@ -58,17 +58,17 @@
return {
faBtnlist: [
{ title: '运单录入', subTitle: "", icon: getCdnUrl(`home/ydluru.png`), url: '' },
{ title: '运单录入', subTitle: "", icon: getCdnUrl(`home/ydluru.png`), url: 'post/post' },
{ title: '揽收扫描', subTitle: "", icon: getCdnUrl(`home/lshsm.png`), url: '' },
{ title: '发件扫描', subTitle: "", icon: getCdnUrl(`home/fajiansm.png`), url: '' },
{ title: '合包扫描', subTitle: "", icon: getCdnUrl(`home/hebaosm.png`), url: '' },
{ title: '运单修改', subTitle: "", icon: getCdnUrl(`home/ydxiugai.png`), url: '' },
{ title: '收货入库', subTitle: "", icon: getCdnUrl(`home/shhruku.png`), url: '' },
{ title: '发件清单', subTitle: "", icon: getCdnUrl(`home/fjqingdan.png`), url: 'fjqingdan.png' },
{ title: '拆包扫描', subTitle: "", icon: getCdnUrl(`home/chaibsm.png`), url: 'chaibsm.png' },
{ title: '报关扫描', subTitle: "", icon: getCdnUrl(`home/baogsm.png`), url: 'baogsm.png' },
{ title: '清关扫描', subTitle: "", icon: getCdnUrl(`home/qinggsm.png`), url: 'qinggsm.png' },
{ title: '装车扫描', subTitle: "", icon: getCdnUrl(`home/zhuangchesm.png`), url: 'zhuangchesm.png' },
{ title: '发件清单', subTitle: "", icon: getCdnUrl(`home/fjqingdan.png`), url: '' },
{ title: '拆包扫描', subTitle: "", icon: getCdnUrl(`home/chaibsm.png`), url: '' },
{ title: '报关扫描', subTitle: "", icon: getCdnUrl(`home/baogsm.png`), url: '' },
{ title: '清关扫描', subTitle: "", icon: getCdnUrl(`home/qinggsm.png`), url: '' },
{ title: '装车扫描', subTitle: "", icon: getCdnUrl(`home/zhuangchesm.png`), url: '' },
{ title: '面单补打', subTitle: "", icon: getCdnUrl(`home/mdbuda.png`), url: '' }
],
daoBtnlist: [
@ -85,8 +85,8 @@
],
otherBtnlist: [
{ title: '运单查询', subTitle: "", icon: getCdnUrl(`home/kdchxun.png`), url: '' },
{ title: '我的二维码', subTitle: "", icon: getCdnUrl(`home/woderwm.png`), url: '' },
{ title: '报价试算', subTitle: "", icon: getCdnUrl(`home/baojshs.png`), url: '' },
{ title: '我的二维码', subTitle: "", icon: getCdnUrl(`home/woderwm.png`), url: 'user/exclusiveQrcode' },
{ title: '报价试算', subTitle: "", icon: getCdnUrl(`home/baojshs.png`), url: 'post/freightCalculate' },
{ title: '问题件', subTitle: "", icon: getCdnUrl(`home/wentijian.png`), url: '' },
{ title: '面单补打', subTitle: "", icon: getCdnUrl(`home/mdbuda.png`), url: '' },
{ title: '税费预估', subTitle: "", icon: getCdnUrl(`home/shfgs.png`), url: '' }
@ -131,6 +131,6 @@
align-items: center;
border: 2rpx solid #F6F6F6;
border-radius: 16rpx;
height: 172rpx;
height: 160rpx;
}
</style>

View File

@ -77,7 +77,7 @@
</view>
<view class="btnlist2 com-jianju">
<u-row justify="start" gutter="18" custom-style="flex-wrap: wrap;">
<u-col span="3" v-for="tlItem in toolBtnlist" align="center">
<u-col span="3" v-for="tlItem in toolBtnlist" align="center" @click="goto(tlItem.url)">
<u-col align="center" justify="center" custom-style="padding: 20rpx;border: 2rpx solid #F6F6F6;border-radius: 16rpx;margin-bottom: 18rpx;display: flex;">
<image :src="tlItem.icon" style="height: 66rpx;width: 66rpx" mode="aspectFit"/>
<view style="font-size: 24rpx;margin-top: 20rpx;">{{tlItem.title}}</view>
@ -112,7 +112,7 @@
{ title: '待回款', subTitle: "12888.80", icon: getCdnUrl(`home/daihuikuan.png`), url: '' }
],
toolBtnlist: [
{ title: '运单录入', subTitle: "", icon: getCdnUrl(`home/ydluru.png`), url: '' },
{ title: '运单录入', subTitle: "", icon: getCdnUrl(`home/ydluru.png`), url: 'post/post' },
{ title: '问题件', subTitle: "", icon: getCdnUrl(`home/wentijian.png`), url: '' },
{ title: '货物图片', subTitle: "", icon: getCdnUrl(`home/hwtup.png`), url: '' },
{ title: '发件扫描', subTitle: "", icon: getCdnUrl(`home/fajiansm.png`), url: '' },

View File

@ -1,68 +1,343 @@
<template>
<view class="lgn-page" :style="`background-image: url(${getCdnUrl('login/bg.png')});`">
<view>
<u-image custom-style="margin: 160rpx auto 0 auto;" width="100" height="100" :src="getCdnUrl('logo.png')"></u-image>
<u-text margin="70rpx 0 0 0" size="60" text="探路物流 速运全球" color="#fff" bold="true" align="center"></u-text>
</view>
<view style="margin-top: 90rpx;" class="pl-30 pr-30">
<u-text text="密码登录" size="30" color="#fff" bold="true"></u-text>
<tpx-layout>
<template v-slot:header>
<view class="mt-40">
<u-input placeholder="请输入账号" color="#fff" font-size="30"
custom-style="padding: 30rpx 60rpx;background: rgba(255,255,255,0.2); border: 2px solid #FFFFFF;border-radius: 16rpx;"
placeholder-style="color: #FFF;"></u-input>
</view>
<view class="mt-40">
<u-input placeholder="请输入密码" color="#fff" font-size="30" type="password"
custom-style="padding: 30rpx 60rpx;background: rgba(255,255,255,0.2); border: 2px solid #FFFFFF;border-radius: 16rpx;"
placeholder-style="color: #FFF;"></u-input>
</view>
<view class="mt-30">
<u-checkbox-group placement="column" v-model="remberPassport">
<u-checkbox size="28" labelSize="28" label="记住密码"
label-color="#fff" activeColor="#fff" iconColor="#B12D29" iconSize="20"></u-checkbox>
</u-checkbox-group>
<view class="pt-30">
<view class="com-jianju" style="padding: 30rpx;background-color:#B12D29;border-radius: 30rpx;">
<u-row justify="between">
<view class="clr-wht font-32 font-weight">计提概况</view>
</u-row>
<u-row justify="between" custom-style="margin-top:20rpx;">
<view style="flex: 1;text-align: center;">
<view class="font-40 clr-wht font-weight">
<text class="font-26 pr-10">¥</text>
<text>5</text>
</view>
<view class="pt-20 clr-wht font-26" style="opacity: 0.8;">
<u-row justify="center">
<u-icon name="order" color="#fff" custom-style="opacity: 0.8;" size="30"></u-icon>
<text class="pl-10">待计提</text>
</u-row>
</view>
</view>
<view>
<u-line direction="col" color="#fff" length="80"></u-line>
</view>
<view style="flex: 1;text-align: center;">
<view class="font-40 clr-wht font-weight">
<text class="font-26 pr-10">¥</text>
<text>118</text>
</view>
<view class="pt-20 clr-wht font-26" style="opacity: 0.8;">
<u-row justify="center">
<u-icon name="order" color="#fff" custom-style="opacity: 0.8;" size="30"></u-icon>
<text class="pl-10">已计提</text>
</u-row>
</view>
</view>
</u-row>
</view>
</view>
<view style="margin-top: 70rpx;">
<u-button custom-style="height:90rpx;font-size:32rpx;color: #B12D29;font-weight: bold;;box-shadow: 0rpx 12rpx 21rpx 0rpx rgba(177,45,41,0.32);border-radius: 16rpx;">登录</u-button>
<view class="com-jianju" style="padding-top: 30rpx;">
<u-row justify="between" align="top">
<u-col span="9">
<!-- 订单状态 -->
<tpx-tabs :list="ordStatusList" v-model:value="searchParam.ordStatus"
@tabchange="(val)=> { handleSearchParamChange() }" v-slot="curOrdTab"
>
<text slot>
(<text>{{curOrdTab.item.val}}</text>)
</text>
</tpx-tabs>
</u-col>
<u-col span="2">
<!-- 更多查询条件 -->
<u-button @click="handleSearchMoreBtn()" :hairline="false" shape="circle" size="mini" custom-style="border-radius: 23rpx;font-size: 26rpx;height: 50rpx;">
<u-row justify="center">
<view :style="'padding-right: 4rpx;white-space: nowrap;' + (hasExtSchParam?'color: #B12D29;':'color: #666;')">
{{hasExtSchParam?'已':''}}筛选
</view>
<u-icon :name="showSearchMore?'arrow-up-fill':'arrow-down-fill'"
:color="(hasExtSchParam?'#B12D29':'#666')" size="18" custom-style="margin-top: 2rpx;"
></u-icon>
</u-row>
</u-button>
</u-col>
</u-row>
<!-- 状态搜索 -->
<view v-if="showSearchMore" class="search-more-panel">
<view class="smp-body slideInDown animated fast">
<view class="smp-content">
<view class="pos-abt-all" style="overflow-y: auto;">
<view style="padding: 0 0 30rpx 0">
<view>
<u-text text="快递状态" size="28" :bold="true" margin="0 0 20rpx 0"></u-text>
<tpx-tags :list="dlvTypeList" v-model:value="tmpSearchParam.postStatus" ></tpx-tags>
</view>
<view>
<u-text text="付款方式" size="28" :bold="true" margin="20rpx 0 20rpx 0"></u-text>
<tpx-tags :list="payTypeList" v-model:value="tmpSearchParam.payType" ></tpx-tags>
</view>
<view>
<u-text text="时间范围" size="28" :bold="true" margin="20rpx 0 20rpx 0"></u-text>
<tpx-tags type="single" :list="dateTypeList" v-model:value="tmpSearchParam.dateType" @onItemClick="handleCheckDate"></tpx-tags>
<tpx-tags v-if="tmpSearchParam.date" type='' :list="[{title: tmpSearchParam.date}]" @onItemClick="handleSwitchCladar()" mode="primary"></tpx-tags>
</view>
</view>
</view>
</view>
<view class="smp-foot">
<u-row gutter="20" justify="between">
<u-button @click="handleResetTempSearch()" shape="circle">重置</u-button>
<view style="width: 40rpx;"></view>
<u-button @click="handleConfirmTempSearch()" shape="circle" type="primary">确认</u-button>
</u-row>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<template v-slot:body>
<scroll-view :scroll-y="true" @scrolltolower="onScrollBottom()" class="pos-abt-all"
>
<view class="pgb-cont">
<!-- 列表数据 -->
<view class="pgbc-list">
<view v-for="(orItem, index) in ordList" class="ord-list-item" :style="`${index+1==ordList.length?'border-bottom: 0;':''};`">
<u-row justify="between">
<view>
<view class="clr-sub pb-20">订单号</view>
<view>T7080123982301</view>
</view>
<view style="text-align: right;">
<view class="clr-sub pb-20">金额</view>
<view>
<text class="clr-prm">+</text>
<text class="pl-10 clr-prm">25</text>
<!-- <text class="clr-sub">-</text>
<text class="pl-10 clr-sub">25</text> -->
</view>
</view>
</u-row>
</view>
</view>
<!-- 加载更多 -->
<u-loadmore icon-size="28" font-size="28" margin-top="30" v-if="showLoadMore || loadedAll"
:status="loadedAll ? 'nomore' : 'loading'" />
<!-- 空数据页 -->
<view v-if="ordList.length == 0" style="padding-top: 100rpx;">
<u-empty text="无数据" :icon="getCdnUrl('kong.png')" textSize="28" width="86" height="97">
</u-empty>
</view>
</view>
</scroll-view>
</template>
</tpx-layout>
<!-- 日历 -->
<!-- @close="handleSwitchCladar()" -->
<u-calendar title="请选择日期范围" color="#B12D29" mode="range" rowHeight="90" closeOnClickOverlay :show="showCladar" :defaultDate="tmpSearchParam.date.split('~')" @confirm="handleClaOk" @close="handleSwitchCladar"
></u-calendar>
</template>
<script>
import getCdnUrl from "@/common/getCdnUrl"
import { ordStaEnum, ordStatusList, payTypeEnum, payTypeList, dlvTypeEnum, dlvTypeList, dateTypeEnum, dateTypeList } from "@/common/enum"
import { goto, setClipboardData, confirmModal, showLoading } from "@/common/untool"
export default {
props: {
// hasLeftWin: {
// type: Boolean
// }
},
computed: {
hasExtSchParam() {
let hasExt = false
const searchParam = this.searchParam
if(
(searchParam.postStatus && searchParam.postStatus.length > 0)
|| (searchParam.payType && searchParam.payType.length > 0)
|| (searchParam.date || (searchParam.dateType && searchParam.dateType != dateTypeEnum.custom) )
) {
hasExt = true
}
return hasExt
},
},
data() {
return {
remberPassport: ''
...JSON.parse(JSON.stringify({ ordStaEnum, ordStatusList, payTypeEnum, payTypeList, dlvTypeEnum, dlvTypeList, dateTypeEnum, dateTypeList })),
searchParam: {
keyword: '',
ordStatus: ordStatusList[0].val // 订单状态, 1:寄件; 2:收件; 3:待付款;
},
showSearchMore: false,
showCladar: false,
tmpSearchParam: {
},
ordList: [
{}
,{},{},{},{},{},{},{}
],
showLoadMore: false,
loadedAll: false
}
},
onShareAppMessage() {
return {
title: '',
// title: '',
// path: 'TODO'
}
},
onLoad() {
this.initTmpSrchParam()
this.initData();
},
onUnload() {
},
methods: {
getCdnUrl,
goto,
initData(){
// showLoading()
setTimeout(() => {
uni.stopPullDownRefresh();
}, 300);
},
initTmpSrchParam(){
this.tmpSearchParam = {
postStatus: [], // 快递状态
payType: [], // 支付类型
dateType: '', // 日期类型
date: '' // 日期
}
},
loadListData() {
// 请求列表数据 TODO
console.log('====this.searchParam===', this.searchParam)
},
onScrollBottom() {
console.log("onScrollBottom");
if (this.loadedAll) {
return;
}
this.showLoadMore = true;
this.handleSearchParamChange();
},
handleSearchMoreBtn(){
if(!this.showLoadMore) {
// 回显更多条件
Object.keys(this.tmpSearchParam).map(t=> {
const val = this.searchParam[t]
typeof val != 'undefined' && (this.tmpSearchParam[t] = val)
})
}
this.showSearchMore = !this.showSearchMore
},
handleSearchParamChange(key, val) {
if(key) {
this.searchParam[key] = val
}
this.loadListData()
},
async handleDealItem(item, deal = { type: '1' }) {
switch (deal.type){
case 1: // 跳转
goto(`post/detail?id=${item.id}`)
break;
case 2: // 复制订单号
setClipboardData('xxxxxxx')
break;
case 3: // 删除
await confirmModal('确认要删除吗?')
break;
case 4: // 取消
await confirmModal('确认要取消吗?')
break;
default:
break;
}
},
handleResetTempSearch(){
this.initTmpSrchParam()
},
handleConfirmTempSearch(){
Object.assign(this.searchParam, this.tmpSearchParam)
this.showSearchMore = false
this.handleSearchParamChange();
},
handleCheckDate(item) {
let newVal = item.val
if(newVal == dateTypeEnum.custom) {
this.handleSwitchCladar()
} else {
this.tmpSearchParam.date = ''
}
},
handleClaOk(res){
const ary = Object.values(res)
const val = [ary[0], ary[ary.length-1]].join("~")
this.handleSwitchCladar()
this.tmpSearchParam.date = val
},
handleSwitchCladar() {
this.showCladar = !this.showCladar
if(!this.showCladar) {
!this.tmpSearchParam.date && (this.tmpSearchParam.dateType = '')
}
}
}
}
</script>
<style lang="scss">
@import '@/common/uni-nvue.scss';
page{
page {
background-color: #F6F6F6;
height: 100% !important;
}
</style>
<style scoped lang="scss">
.lgn-page {
min-height: 100%;
background-size: 100% auto;
background-repeat: no-repeat;
.pgb-cont{
margin: 30rpx;
}
</style>
.pgbc-list{
border-radius: 30rpx;
background-color: #fff;
}
.ord-list-item{
padding: 22rpx 30rpx;
border-bottom: 1rpx solid rgb(214, 215, 217);
}
.search-more-panel{
overflow: hidden;
position: absolute;
left: 0;
right: 0;
height: calc(70vh);
z-index: 200;
}
.smp-body{
padding: 30rpx;
display: flex;
flex-direction: column;
height: 100%;
background-color: #FFF;
border-radius: 0 0 30rpx 30rpx;
box-sizing: border-box;
}
.smp-content{
flex: 1;
position: relative;
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
static/images/post/call.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
static/images/post/ji.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

BIN
static/images/post/run.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
static/images/post/shou.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB