This commit is contained in:
aihe 2024-05-07 00:38:24 +08:00
parent fd62d4ca1e
commit c53a2d5e74
9 changed files with 345 additions and 358 deletions

View File

@ -65,5 +65,14 @@ export const warehouseInList = (data = {})=> {
return coreRequest(url.warehouseInList, data, {}, "GET")
}
// 订单列表
export const getOrderList = (data = {})=> {
return coreRequest(url.getOrderList, data, {}, "GET")
}
// 订单详情
export const getOrderDetail = (data = {})=> {
return coreRequest(url.getOrderDetail, data, {}, "GET")
}

View File

@ -28,9 +28,12 @@ export default {
getMonthpayAccountList: `/emis/emisMonthpayAccount/listSimple`, // 月结账号列表
getDestPositionList: `/emis/emisDestination/listSimple`, // 目的地 列表
getCaculteDestSite: `/emis/emisDestination/getDestSite`, // 自动计算目的地
calcWaybillFee: `/emis/emisQuotePrice/calcWaybillFee`, // 计算运费
calcWaybillFee: `/emis/emisWaybill/calcWaybillFee`, // 计算运费
calcSetteldWeight: `/emis/emisWaybill/calcSetteldWeight`, // 计算结算重量、结算体积
warehouseInList: `/emis/emisWarehouseIn/listSimple`, // 下单-进仓单列表
getOrderList: `/emis/emisWaybill/listSimple`, // 订单列表
getOrderDetail: `/emis/emisWaybill/getWaybillDetail`, // 订单详情
}

View File

@ -43,6 +43,18 @@
</u-button>
</u-row>
</tpx-select>
<view class="pt-20">
<u-row custom-style="flex: 1">
<text class="font-26 pr-10">总费用</text>
<tpx-input v-model:value="modelInfo.freight" :isWhite="true" type="number"
custom-style="width: 120rpx;height: 46rpx;" suffix="CNY"></tpx-input>
</u-row>
</view>
<view class="pt-20">
<u-textarea v-model="modelInfo.feeRemaker" border="surround" height="120" placeholder="费用备注"
maxlength="50" count></u-textarea>
</view>
</view>
</template>
@ -105,8 +117,10 @@
this.calcWaybillFee({ calcFeeType: val })
},
async calcWaybillFee(params = {}) {
let res = await apiService.calcWaybillFee({ ...this.searchParam, ...params })
this.modelInfo.feeItems = res.data.feeItems
let res = await apiService.calcWaybillFee({ custNo: this.modelInfo.custNo, ...this.searchParam, ...params })
this.modelInfo.feeItems = res.data.feeList
this.modelInfo.freight = res.data.totalFee
}
}
}

View File

@ -1,82 +1,84 @@
<template>
<tpx-layout>
<template v-slot:body>
<view class="com-jianju pos-rlt pb-30" style="padding-top: 2rpx;">
<view class="blcok-white radius-20">
<u-textarea v-model="ansValue" border="none" height="110" placeholder="粘贴或输入地址,点击“智能识别”自动拆分姓名、电话和地址" custom-style="border:0;padding: 0;"></u-textarea>
<u-row justify="end">
<view class="mt-10">
<u-button @click="handleAnsText()" type="primary" size="mini" shape="circle" custom-style="width: 130rpx;font-size: 24rpx;padding:0;">智能识别</u-button>
</view>
</u-row>
</view>
<view class="blcok-white radius-20">
<view class="">
<view style="margin-top: 10rpx;">
<u-row>
<u-col span="4">
<tpx-input v-model:value="submitParam.name" placeholder="真实姓名"></tpx-input>
</u-col>
<u-col offset="1" span="7">
<tpx-input v-model:value="submitParam.phone" placeholder="电话"></tpx-input>
</u-col>
</u-row>
</view>
<view class="mt-40 pos-rlt">
<tpx-input :value="getAddressDetail(submitParam, false)" placeholder="所在地区"></tpx-input>
<view @click="handleDialogClick(addressModal)" class="pos-abt-all"></view>
</view>
<view class="mt-30">
<tpx-textarea v-model:value="submitParam.address" placeholder="详细地址(例如**街道**号**)"></tpx-textarea>
</view>
<view class="mt-30">
<tpx-input v-model:value="submitParam.postCode" placeholder="邮编"></tpx-input>
</view>
<view class="mt-30">
<tpx-input v-model:value="submitParam.email" placeholder="邮箱(选填"></tpx-input>
</view>
<view class="mt-30">
<tpx-input v-model:value="submitParam.company" placeholder="公司名称(选填)"></tpx-input>
<tpx-page>
<tpx-layout>
<template v-slot:body>
<view class="com-jianju pos-rlt pb-30" style="padding-top: 2rpx;">
<view class="blcok-white radius-20">
<u-textarea v-model="ansValue" border="none" height="110" placeholder="粘贴或输入地址,点击“智能识别”自动拆分姓名、电话和地址" custom-style="border:0;padding: 0;"></u-textarea>
<u-row justify="end">
<view class="mt-10">
<u-button @click="handleAnsText()" type="primary" size="mini" shape="circle" custom-style="width: 130rpx;font-size: 24rpx;padding:0;">智能识别</u-button>
</view>
</u-row>
</view>
<view class="blcok-white radius-20">
<view class="">
<view style="margin-top: 10rpx;">
<u-row>
<u-col span="4">
<tpx-input v-model:value="submitParam.name" placeholder="真实姓名"></tpx-input>
</u-col>
<u-col offset="1" span="7">
<tpx-input v-model:value="submitParam.phone" placeholder="电话"></tpx-input>
</u-col>
</u-row>
</view>
<view class="mt-40 pos-rlt">
<tpx-input :value="getAddressDetail(submitParam, false)" placeholder="所在地区"></tpx-input>
<view @click="handleDialogClick(addressModal)" class="pos-abt-all"></view>
</view>
<view class="mt-30">
<tpx-textarea v-model:value="submitParam.address" placeholder="详细地址(例如**街道**号**)"></tpx-textarea>
</view>
<view class="mt-30">
<tpx-input v-model:value="submitParam.postCode" placeholder="邮编"></tpx-input>
</view>
<view class="mt-30">
<tpx-input v-model:value="submitParam.email" placeholder="邮箱(选填"></tpx-input>
</view>
<view class="mt-30">
<tpx-input v-model:value="submitParam.company" placeholder="公司名称(选填)"></tpx-input>
</view>
</view>
</view>
<view class="mt-30 pl-30 pr-30">
<u-row justify="between">
<view>
<u-checkbox-group v-model="submitParam.blDefaultFlag" placement="column">
<u-checkbox
:name="true"
shape="circle"
size="30" label="默认地址" active-color="#B12D29"
label-size="28"
>
</u-checkbox>
</u-checkbox-group>
</view>
<view @click="handleReset">
<u-text text="清空" size="28" color="#0E0708"></u-text>
</view>
</u-row>
</view>
</view>
<view class="mt-30 pl-30 pr-30">
<u-row justify="between">
<view>
<u-checkbox-group v-model="submitParam.blDefaultFlag" placement="column">
<u-checkbox
:name="true"
shape="circle"
size="30" label="默认地址" active-color="#B12D29"
label-size="28"
>
</u-checkbox>
</u-checkbox-group>
</view>
<view @click="handleReset">
<u-text text="清空" size="28" color="#0E0708"></u-text>
</view>
</u-row>
</template>
<template v-slot:footer>
<view class="blcok-white-noradius">
<u-button @click="handleSubmit()" type="primary" size="large" shape="circle"
custom-style="height:80rpx;font-size: 30rpx;"
>确定</u-button>
</view>
</view>
</template>
<template v-slot:footer>
<view class="blcok-white-noradius">
<u-button @click="handleSubmit()" type="primary" size="large" shape="circle"
custom-style="height:80rpx;font-size: 30rpx;"
>确定</u-button>
</view>
</template>
</tpx-layout>
<buns-address-sheet v-model:show="addressModal.show" v-model:value="addressModal.values" @onSure="handleAddressChoose"></buns-address-sheet>
</template>
</tpx-layout>
<buns-address-sheet v-model:show="addressModal.show" v-model:value="addressModal.values" @onSure="handleAddressChoose"></buns-address-sheet>
</tpx-page>
</template>
<script>

View File

@ -1,82 +1,83 @@
<template>
<tpx-layout>
<template v-slot:header> </template>
<template v-slot:body>
<view class="pos-abt-all">
<tpx-scroll-view v-model:resObject="resData" :searchParam="searchParam" :getListFun="getListFun"
ref="listRef"
>
<view class="pgb-header">
<view class="com-jianju">
<!-- 关键字搜索框 -->
<tpx-search placeholder="请输入姓名/电话/地址关键字" v-model:value="searchParam.searchValue"></tpx-search>
</view>
<view class="com-jianju" style="padding-top: 40rpx;">
<u-row justify="between" align="top">
<u-col span="12">
<tpx-tabs :list="tabList" v-model:value="searchParam.addressType"
v-slot="curTab"
>
<text slot>
(<text>{{curTab.item.val}}</text>)
</text>
</tpx-tabs>
</u-col>
</u-row>
</view>
</view>
<view class="pgb-cont">
<!-- 列表数据 -->
<view v-for="(item) in resData.list" class="data-list-item">
<view @click="handleItemClick(item)">
<u-row>
<view class="pr-20">
<u-text :text="item.name" size="30" :bold="true"></u-text>
</view>
<view>
<u-text :text="item.phone" size="28" mode="phone" color="#999"></u-text>
</view>
</u-row>
<u-text :text="getAddressDetail(item)"
size="24" margin="20rpx 0 0 0" color="#999"
></u-text>
<tpx-page>
<tpx-layout>
<template v-slot:header> </template>
<template v-slot:body>
<view class="pos-abt-all">
<tpx-scroll-view v-model:resObject="resData" :searchParam="searchParam" :getListFun="getListFun"
ref="listRef"
>
<view class="pgb-header">
<view class="com-jianju">
<!-- 关键字搜索框 -->
<tpx-search placeholder="请输入姓名/电话/地址关键字" v-model:value="searchParam.searchValue"></tpx-search>
</view>
<u-line color="#DEDEDE" margin="30rpx 0 0 0"></u-line>
<u-row custom-style="margin-top:20rpx;" justify="between">
<u-row>
<text class="pr-20 clr-sub">默认地址</text>
<u-switch v-model="item.blDefaultFlag" @change="handleDefaultSwitch(item)" activeValue="1" active-color="#B12D29" size="34"></u-switch>
<view class="com-jianju" style="padding-top: 40rpx;">
<u-row justify="between" align="top">
<u-col span="12">
<tpx-tabs :list="tabList" v-model:value="searchParam.addressType"
v-slot="curTab"
>
<text slot>
(<text>{{curTab.item.val}}</text>)
</text>
</tpx-tabs>
</u-col>
</u-row>
<u-row>
<u-text @click="handleEditItem(item)" text="编辑" prefixIcon="edit-pen" size="26"></u-text>
<u-text @click="handleDelItem(item)" text="删除" prefixIcon="trash" size="26" margin="0 0 0 20rpx"></u-text>
</u-row>
</u-row>
</view>
</view>
</view>
</tpx-scroll-view>
</view>
</template>
<template v-slot:footer>
<view class="blcok-white-noradius">
<u-button @click="handleEditItem()" type="primary" size="large" shape="circle"
custom-style="height:80rpx;font-size: 30rpx;"
>
<u-row>
<u-icon size="34" color="#fff" name="plus"></u-icon>
<text class="pl-10">新增地址</text>
<view class="pgb-cont">
<!-- 列表数据 -->
<view v-for="(item) in resData.list" class="data-list-item">
<view @click="handleItemClick(item)">
<u-row>
<view class="pr-20">
<u-text :text="item.name" size="30" :bold="true"></u-text>
</view>
<view>
<u-text :text="item.phone" size="28" mode="phone" color="#999"></u-text>
</view>
</u-row>
<u-text :text="getAddressDetail(item)"
size="24" margin="20rpx 0 0 0" color="#999"
></u-text>
</view>
<u-line color="#DEDEDE" margin="30rpx 0 0 0"></u-line>
<u-icon size="34" color="#fff" ></u-icon>
</u-row>
</u-button>
</view>
</template>
</tpx-layout>
<u-row custom-style="margin-top:20rpx;" justify="between">
<u-row>
<text class="pr-20 clr-sub">默认地址</text>
<u-switch v-model="item.blDefaultFlag" @change="handleDefaultSwitch(item)" activeValue="1" active-color="#B12D29" size="34"></u-switch>
</u-row>
<u-row>
<u-text @click="handleEditItem(item)" text="编辑" prefixIcon="edit-pen" size="26"></u-text>
<u-text @click="handleDelItem(item)" text="删除" prefixIcon="trash" size="26" margin="0 0 0 20rpx"></u-text>
</u-row>
</u-row>
</view>
</view>
</tpx-scroll-view>
</view>
</template>
<template v-slot:footer>
<view class="blcok-white-noradius">
<u-button @click="handleEditItem()" type="primary" size="large" shape="circle"
custom-style="height:80rpx;font-size: 30rpx;"
>
<u-row>
<u-icon size="34" color="#fff" name="plus"></u-icon>
<text class="pl-10">新增地址</text>
<u-icon size="34" color="#fff" ></u-icon>
</u-row>
</u-button>
</view>
</template>
</tpx-layout>
</tpx-page>
</template>
<script>
@ -113,9 +114,7 @@
},
resData: {
list: []
},
showLoadMore: false,
loadedAll: false
}
}
},
onShareAppMessage() {

View File

@ -61,7 +61,6 @@ export const getOrderModels = () => {
"currency": undefined,
"settlementWeight": undefined, // 结算重量
"feeWeight": undefined,
"freight": undefined,
"blOverLong": undefined,
"blOverWeight": undefined,
"overWeightNumber": undefined,
@ -132,7 +131,6 @@ export const getOrderModels = () => {
"prepareInRemark": undefined, // 预入仓自定义标识
"prepareInSupplier": undefined, // 预入仓供应商
"warehouseInNo": [], // 进仓单号
"meterRate": undefined, // 泡重比
"goodsPics": [], // 货物图片
}
}

View File

@ -1,6 +1,6 @@
<template>
<tpx-page>
<tpx-layout>
<tpx-layout v-if="!pageLoading">
<template v-slot:body>
<view class="com-jianju pos-rlt pb-30" style="padding-top: 2rpx;">
<view class="blcok-white">
@ -23,12 +23,13 @@
</u-row>
</view>
<view class="com-section mt-30" @click="goto('post/detail')">
<view v-if="queryOption.orderSn" class="com-section mt-30" @click="goto('post/detail')">
<u-row justify="space-between">
<text>订单号:TWO291929</text>
<u-icon name="bag" size="42"></u-icon>
</u-row>
</view>
<view class="blcok-white">
<!-- 地址选择 -->
<bpe-addressinfo-tmp v-model:value="submitParam"></bpe-addressinfo-tmp>
@ -99,11 +100,6 @@
>
<tpx-text-item label="付款方式" :value="submitParam.paymentType" :list="dicData.emis_payment_type"></tpx-text-item>
</tpx-select>
<view v-if="submitParam.paymentType == 6" class="pt-10">
<u-textarea v-model="submitParam.feeRemaker" border="surround" height="120" placeholder="备注"
maxlength="50" count></u-textarea>
</view>
</view>
<view v-if="submitParam.paymentType == 2 || submitParam.paymentType == 4 || submitParam.paymentType == 5" class="yunf-input-item">
@ -278,7 +274,6 @@
let param = {
productType: info.productType,
customerCode: info.customerCode,
custNo: info.custNo,
calcFeeType: info.calcFeeType,
settlementWeight: info.settlementWeight,
totalVolume: info.totalVolume,
@ -294,8 +289,11 @@
},
data() {
return {
pageLoading: true,
isEdit: false,
queryOption: {
id: '', // 运单id
billCode: '', // 运单id
orderSn: '', // 订单id
},
kehuRes: { list: [] },
wayRes: { list: [] },
@ -321,7 +319,7 @@
}
},
onLoad(option) {
this.queryOption = queryOption
this.queryOption = option
this.initData();
this.initEvent()
},
@ -337,8 +335,15 @@
getMonthpayAccountList: apiService.getMonthpayAccountList,
getDestPositionList: apiService.getDestPositionList,
getWarehouseInList: apiService.warehouseInList,
async initData() {
this.isEdit = Boolean(this.queryOption.billCode || this.queryOption.orderSn)
if(this.isEdit) {
let res = await apiService.getOrderDetail({...this.queryOption, _loading: true})
let data = res.data || {}
data.warehouseInNo = (data.warehouseInNo && data.warehouseInNo.split) || []
this.submitParam = res.data
}
this.pageLoading = false
},
initEvent() {
@ -357,7 +362,6 @@
},
handleWayChange(val) {
const item = this.wayRes.list.filter(t=> t.val == val)[0]
this.submitParam.meterRate = item.meterRate
this.updateDltDestSite({ lineCode: val })
},
handleDestPostChange(val) {
@ -372,8 +376,10 @@
const { country, province, city, county, address } = this.submitParam.reciever
let res = await apiService.getCaculteDestSite({ lineCode, country, province, city, county, address })
// 更新路线推荐的默认目的地
this.submitParam.destinationCode = res.data.destCode
this.handleDestPostChange(this.submitParam.destinationCode)
let data = res.data || {}
this.submitParam.destinationCode = data.destCode
this.submitParam.dispatchUnderlingSiteCode = data.siteCode;
this.submitParam.dispatchUnderlingSite = data.siteName;
},
async handleGoodInfoSure() {
// 校验各个组件的参数
@ -381,7 +387,7 @@
},
async handleSave(type) {
let saveServerHand = apiService.submitOrder
if(this.queryOption.id) {
if(this.isEdit) {
// 编辑订单 TODO
}
let params = JSON.parse(JSON.stringify(this.submitParam));

View File

@ -15,7 +15,7 @@
<u-avatar size="120" :src="userInfo.avatar"></u-avatar>
<view class="pl-30">
<u-row>
<u-text :text="userInfo.nickName" color="#fff" size="32" bold="true"></u-text>
<u-text :text="userInfo.empName" color="#fff" size="32" bold="true"></u-text>
<view class="ml-20 clr-wht font-24 pos-rlt" style="padding: 8rpx 12rpx;">南京网点
<view class="pos-abt-all" style="z-index: 0;background: #FFFFFF;opacity: 0.2;border-radius: 20rpx;"></view>
</view>

View File

@ -1,143 +1,138 @@
<template>
<tpx-layout>
<template v-slot:header>
<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>
<tpx-select mode="drop" v-model:value="searchParam.keyword" :list="dateRangeList" >
<view style="width: 200rpx;;">
<u-button @click="handleSearchMoreBtn()" :hairline="false" shape="circle" size="mini" custom-style="border-radius: 23rpx;font-size: 26rpx;height: 50rpx;width: 130rpx;">
<u-row justify="between" custom-style="width: 100%;">
<view :style="'padding-right: 4rpx;white-space: nowrap;' + (hasExtSchParam?'color: #B12D29;':'color: #666;')">
统计
</view>
<u-icon :name="showSearchMore?'arrow-up-fill':'arrow-down-fill'"
color="#666" size="18" custom-style="margin-top: 2rpx;"
></u-icon>
</u-row>
</u-button>
</view>
</tpx-select>
</u-row>
<u-row justify="between" custom-style="margin-top:30rpx;">
<view style="flex: 1;text-align: center;">
<u-text :text="5" color="#fff" bold="true" size="40" align="center"></u-text>
<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;">
<u-text :text="118" color="#fff" bold="true" size="40" align="center"></u-text>
<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 class="com-jianju" style="padding-top: 30rpx;">
<u-row justify="between" align="top">
<u-col span="12">
<!-- 订单状态 -->
<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-row>
</view>
</template>
<template v-slot:body>
<scroll-view :scroll-y="true" @scrolltolower="onScrollBottom()" class="pos-abt-all"
>
<view class="pgb-cont">
<!-- 列表数据 -->
<view v-for="(orItem) in ordList" class="ord-list-item">
<tpx-page>
<tpx-layout>
<template v-slot:header>
<view class="pt-30">
<view class="com-jianju" style="padding: 30rpx;background-color:#B12D29;border-radius: 30rpx;">
<u-row justify="between">
<u-col span="11">
<u-row @click="handleDealItem(orItem, { type: 2 })">
<view>
<u-text :text="'运单号:'+ 'T7080304038'" size="26"></u-text>
</view>
<view class="pl-10">
<u-icon name="file-text" size="32" custom-style=""></u-icon>
</view>
</u-row>
</u-col>
<view class="clr-wht font-32 font-weight">订单概况</view>
<tpx-select mode="drop" v-model:value="searchParam.keyword" :list="dateRangeList" >
<view style="width: 200rpx;;">
<u-button :hairline="false" shape="circle" size="mini" custom-style="border-radius: 23rpx;font-size: 26rpx;height: 50rpx;width: 130rpx;">
<u-row justify="between" custom-style="width: 100%;">
<view :style="'padding-right: 4rpx;white-space: nowrap;' + 'color: #666;'">
统计
</view>
<u-icon :name="showSearchMore?'arrow-up-fill':'arrow-down-fill'"
color="#666" size="18" custom-style="margin-top: 2rpx;"
></u-icon>
</u-row>
</u-button>
</view>
</tpx-select>
</u-row>
<u-row @click="handleDealItem(orItem, { type: 1 })" custom-style="margin-top: 30rpx;" justify="center">
<u-col span="4">
<u-text :text="'中国上海'" size="30" :bold="true" align="center"></u-text>
<u-text :text="'张三'" size="26" color="#999" margin="20rpx 0 0 0"
align="center"></u-text>
</u-col>
<u-col span="4" justify="center" align="center" custom-style="text-align: center;">
<image style="width: 70rpx;height: 14rpx;" :src="getCdnUrl('search/toline.png')">
</image>
<!-- getCdnUrl('search/toline-grey.png') -->
<u-text :text="'待付款'" align="center" size="22" margin="10rpx 0 0 0"></u-text>
</u-col>
<u-col span="4">
<u-text :text="'越南'" size="30" :bold="true" align="center"></u-text>
<u-text :text="'李四'" size="26" color="#999" margin="20rpx 0 0 0"
align="center"></u-text>
</u-col>
</u-row>
<u-text :text="'签收时间:' + '2022-04-30 15:25'" color="#999" size="24"
margin="30rpx 0 0 0"></u-text>
<u-line color="#DEDEDE" margin="30rpx 0 0 0"></u-line>
<u-row justify="end" custom-style="margin-top:20rpx;">
<view style="display: inline-block;white-space: nowrap;">
<u-row>
<u-button @click="handleDealItem(orItem, { type: 4 })" shape="circle" type="primary"
:plain="true" custom-style="height: 54rpx;margin-left: 12rpx;">取消</u-button>
<u-button shape="circle" type="primary" :plain="true"
custom-style="height: 54rpx;margin-left: 12rpx;">立即开单</u-button>
</u-row>
<u-row justify="between" custom-style="margin-top:30rpx;">
<view style="flex: 1;text-align: center;">
<u-text :text="5" color="#fff" bold="true" size="40" align="center"></u-text>
<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;">
<u-text :text="118" color="#fff" bold="true" size="40" align="center"></u-text>
<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>
<!-- 加载更多 -->
<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>
<view class="com-jianju" style="padding-top: 30rpx;">
<u-row justify="between" align="top">
<u-col span="12">
<!-- 订单状态 -->
<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-row>
</view>
</template>
<template v-slot:body>
<view class="pos-abt-all">
<tpx-scroll-view v-model:resObject="resData" :searchParam="searchParam" :getListFun="getListFun"
ref="listRef"
>
<view class="pgb-cont">
<!-- 列表数据 -->
<view v-for="(orItem) in resData.list" class="ord-list-item">
<u-row justify="between">
<u-col span="11">
<u-row @click="handleDealItem(orItem, { type: 2 })">
<view>
<u-text v-if="orItem.billCode" :text="'运单号:' + orItem.billCode" size="26"></u-text>
<u-text v-else :text="'订单号:'+ orItem.orderSn" size="26"></u-text>
</view>
<view class="pl-10">
<u-icon name="file-text" size="32" custom-style=""></u-icon>
</view>
</u-row>
</u-col>
</u-row>
<u-row @click="handleDealItem(orItem, { type: 1 })" custom-style="margin-top: 30rpx;" justify="center">
<u-col span="4">
<u-text :text="'中国上海'" size="30" :bold="true" align="center"></u-text>
<u-text :text="'张三'" size="26" color="#999" margin="20rpx 0 0 0"
align="center"></u-text>
</u-col>
<u-col span="4" justify="center" align="center" custom-style="text-align: center;">
<image style="width: 70rpx;height: 14rpx;" :src="getCdnUrl('search/toline.png')">
</image>
<!-- getCdnUrl('search/toline-grey.png') -->
<u-text :text="'待付款'" align="center" size="22" margin="10rpx 0 0 0"></u-text>
</u-col>
<u-col span="4">
<u-text :text="'越南'" size="30" :bold="true" align="center"></u-text>
<u-text :text="'李四'" size="26" color="#999" margin="20rpx 0 0 0"
align="center"></u-text>
</u-col>
</u-row>
<u-text :text="'签收时间:' + '2022-04-30 15:25'" color="#999" size="24"
margin="30rpx 0 0 0"></u-text>
<u-line color="#DEDEDE" margin="30rpx 0 0 0"></u-line>
<u-row justify="end" custom-style="margin-top:20rpx;">
<view style="display: inline-block;white-space: nowrap;">
<u-row>
<u-button @click="handleDealItem(orItem, { type: 4 })" shape="circle" type="primary"
:plain="true" custom-style="height: 54rpx;margin-left: 12rpx;">取消</u-button>
<u-button @click="handleDealItem(orItem, { type: 5 })" shape="circle" type="primary" :plain="true"
custom-style="height: 54rpx;margin-left: 12rpx;">立即开单</u-button>
</u-row>
</view>
</u-row>
</view>
</view>
</tpx-scroll-view>
</view>
</template>
</tpx-layout>
</tpx-page>
</template>
<script>
import { ordStaEnum, dateRangeList, ordStatusList, payTypeEnum, payTypeList, dlvTypeEnum, dlvTypeList, dateTypeEnum, dateTypeList } from "@/common/enum"
import { dateRangeList, ordStatusList } from "@/common/enum"
import * as apiService from "@/common/api"
export default {
props: {
@ -146,32 +141,20 @@
// }
},
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 {
...JSON.parse(JSON.stringify({ ordStaEnum, dateRangeList, ordStatusList, payTypeEnum, payTypeList, dlvTypeEnum, dlvTypeList, dateTypeEnum, dateTypeList })),
...JSON.parse(JSON.stringify({ dateRangeList, ordStatusList })),
searchParam: {
keyword: '',
ordStatus: ordStatusList[0].val // 订单状态, 1:寄件; 2:收件; 3:待付款;
searchValue: ''
},
ordList: [
{}
// ,{},{},{},{},{},{},{}
],
showLoadMore: false,
loadedAll: false
queryOption: {
},
resData: {
list: []
}
}
},
onShareAppMessage() {
@ -181,45 +164,15 @@
}
},
onLoad() {
this.queryOption = queryOption
this.initData();
},
onUnload() {
},
methods: {
getListFun: apiService.getOrderList,
initData(){
// this.showLoading()
setTimeout(() => {
uni.stopPullDownRefresh();
}, 300);
},
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){
@ -227,7 +180,7 @@
this.goto(`post/detail?id=${item.id || ''}`)
break;
case 2: // 复制订单号
this.setClipboardData('xxxxxxx')
this.setClipboardData(item.billCode || item.orderSn)
break;
case 3: // 删除
await this.confirmModal('确认要删除吗?')
@ -235,6 +188,9 @@
case 4: // 取消
await this.confirmModal('确认要取消吗?')
break;
case 5: // 理解开单
this.goto(`post/openorder?billCode=${item.billCode || ''}&orderSn=${item.orderSn || ''}`)
break;
default:
break;
}