|
@@ -4,11 +4,9 @@
|
|
<van-search style="width: 100%;" v-model="params.search" placeholder="请输入批次号" />
|
|
<van-search style="width: 100%;" v-model="params.search" placeholder="请输入批次号" />
|
|
<van-icon @click="onSearch" size="20" style="margin: 19px 8px 0 0px;" name="search" />
|
|
<van-icon @click="onSearch" size="20" style="margin: 19px 8px 0 0px;" name="search" />
|
|
</div>
|
|
</div>
|
|
-
|
|
|
|
- <div class="batch_box" @scroll.passive="getScroll($event)"
|
|
|
|
- style=" height: calc(100vh - 154px);overflow-y: auto;">
|
|
|
|
- <van-pull-refresh v-model="refreshLoading" @refresh="onRefresh">
|
|
|
|
- <div class="onther" v-for="(item, index) in waiteList" :key="index">
|
|
|
|
|
|
+ <ScrollRefresh height="calc(100vh - 99px)" ref="scrollRefresh" :request="request" :defaultLimit="6">
|
|
|
|
+ <template v-slot="slotProps">
|
|
|
|
+ <div class="onther" v-for="(item, index) in slotProps.list" :key="index">
|
|
<div class="onther-top">
|
|
<div class="onther-top">
|
|
<div style="font-size: 16px;">批次号:{{ item.dispatchBatchNo
|
|
<div style="font-size: 16px;">批次号:{{ item.dispatchBatchNo
|
|
}}
|
|
}}
|
|
@@ -17,17 +15,17 @@
|
|
</div>
|
|
</div>
|
|
<div class="onther-middel">
|
|
<div class="onther-middel">
|
|
<div class="onther-middel-text">
|
|
<div class="onther-middel-text">
|
|
- <div class="onther-middel-text-style">批次完成时间:{{ item.year }}-{{ item.month }}-{{
|
|
|
|
- item.day }} {{ item.hour }}:{{ item.minute }}:{{ item.second }}</div>
|
|
|
|
|
|
+ <div class="onther-middel-text-style">批次完成时间:{{ item.time }}</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="onther-bottom">
|
|
<div class="onther-bottom">
|
|
- <van-cell style="color: aqua;" is-link @click="showPopup(item)">展示弹出层</van-cell>
|
|
|
|
|
|
+ <van-cell is-link @click="showPopup(item)"><span
|
|
|
|
+ style="color: #169bd5;">展开查看详情</span></van-cell>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- </van-pull-refresh>
|
|
|
|
- </div>
|
|
|
|
|
|
+ </template>
|
|
|
|
|
|
|
|
+ </ScrollRefresh>
|
|
|
|
|
|
<van-popup v-model="show" style="width: 100%; height: 60%;">
|
|
<van-popup v-model="show" style="width: 100%; height: 60%;">
|
|
<div class="batch-middel" v-for="(item, index) in popupList" :key="index">
|
|
<div class="batch-middel" v-for="(item, index) in popupList" :key="index">
|
|
@@ -44,7 +42,7 @@
|
|
{{ item.signinStatus == 0 ? '待签收' : `${item.signinStatus == 1 ?
|
|
{{ item.signinStatus == 0 ? '待签收' : `${item.signinStatus == 1 ?
|
|
'已签收' : `${item.signinStatus == 2 ? '代收' : `${item.signinStatus == 3 ? '拒收' : '延迟'}`}`}` }}
|
|
'已签收' : `${item.signinStatus == 2 ? '代收' : `${item.signinStatus == 3 ? '拒收' : '延迟'}`}`}` }}
|
|
</span>
|
|
</span>
|
|
- <span style="color: #1989fa;">查看</span>
|
|
|
|
|
|
+ <!-- <span style="color: #1989fa;">查看</span> -->
|
|
</div>
|
|
</div>
|
|
<div class="batch-middel-text-style">签收时间:{{ item.signatureTime == undefined ? '' :
|
|
<div class="batch-middel-text-style">签收时间:{{ item.signatureTime == undefined ? '' :
|
|
item.signatureTime.date.year }}-{{ item.signatureTime == undefined ? '' :
|
|
item.signatureTime.date.year }}-{{ item.signatureTime == undefined ? '' :
|
|
@@ -64,106 +62,49 @@
|
|
|
|
|
|
<script>
|
|
<script>
|
|
import { appOutboundInquiry, appGetTheDetails } from '@/api/index'
|
|
import { appOutboundInquiry, appGetTheDetails } from '@/api/index'
|
|
|
|
+import ScrollRefresh from './ScrollRefresh.vue';
|
|
export default {
|
|
export default {
|
|
name: 'waitsent',
|
|
name: 'waitsent',
|
|
|
|
+ components: {
|
|
|
|
+ ScrollRefresh
|
|
|
|
+ },
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
- refreshLoading: false, // 刷新loading
|
|
|
|
- loading: false, // 加载更多loading
|
|
|
|
- noData: false, // 没有更多数据
|
|
|
|
- waiteList: [],
|
|
|
|
- uploader: [{ url: 'https://img01.yzcdn.cn/vant/leaf.jpg' }],
|
|
|
|
show: false,
|
|
show: false,
|
|
params: {
|
|
params: {
|
|
- search: '', //'SF202303221917',
|
|
|
|
- page: 1,
|
|
|
|
- limit: 6
|
|
|
|
|
|
+ search: ''
|
|
},
|
|
},
|
|
- // timeList: []
|
|
|
|
popupList: [],//点击弹框后的
|
|
popupList: [],//点击弹框后的
|
|
};
|
|
};
|
|
},
|
|
},
|
|
- mounted() {
|
|
|
|
- // 获取数据
|
|
|
|
- this.getData();
|
|
|
|
- },
|
|
|
|
methods: {
|
|
methods: {
|
|
- // 刷新
|
|
|
|
- async onRefresh() {
|
|
|
|
- this.params.page = 1;
|
|
|
|
- this.params.limit = 6;
|
|
|
|
- this.refreshLoading = true;
|
|
|
|
- await this.getData(true)
|
|
|
|
- this.refreshLoading = false
|
|
|
|
- },
|
|
|
|
- // 搜索批次号
|
|
|
|
- async onSearch() {
|
|
|
|
- // 每次查询都查询第一页
|
|
|
|
- this.params.page = 1;
|
|
|
|
- this.getData(true)
|
|
|
|
- },
|
|
|
|
- async getData(isClear) {
|
|
|
|
- this.loading = true
|
|
|
|
|
|
+
|
|
|
|
+ async request(_params) {
|
|
let parmas = {
|
|
let parmas = {
|
|
dispatchBatchNo: this.params.search, // 批次号
|
|
dispatchBatchNo: this.params.search, // 批次号
|
|
deliveryPeopleId: localStorage.getItem('courierId'), //派送员id
|
|
deliveryPeopleId: localStorage.getItem('courierId'), //派送员id
|
|
isFinish: '1',//完成 1已完成 2未完成
|
|
isFinish: '1',//完成 1已完成 2未完成
|
|
- page: this.params.page, // 页数,
|
|
|
|
- limit: this.params.limit, // 条数
|
|
|
|
|
|
+ ..._params
|
|
|
|
|
|
}
|
|
}
|
|
const res = await appOutboundInquiry({ ...parmas }, { emulateJSON: true })
|
|
const res = await appOutboundInquiry({ ...parmas }, { emulateJSON: true })
|
|
- let waiteList = res.data.map((item) => {
|
|
|
|
|
|
+ res.data = res.data.map((item) => {
|
|
|
|
+ const date = item.signatureTime.date
|
|
|
|
+ const time = item.signatureTime.time
|
|
return {
|
|
return {
|
|
...item,
|
|
...item,
|
|
openCard: false,
|
|
openCard: false,
|
|
|
|
+ time: `${date.year}-${date.month}-${date.day} ${time.hour}:${time.minute}:${time.second}`
|
|
}
|
|
}
|
|
})
|
|
})
|
|
- let timeListA = res.data.map((item) => {
|
|
|
|
- return item.signatureTime.date
|
|
|
|
- })
|
|
|
|
- let timeListB = res.data.map((item) => {
|
|
|
|
- return item.signatureTime.time
|
|
|
|
- })
|
|
|
|
- this.timeList = timeListA.map((obj1, index) => ({
|
|
|
|
- ...obj1,
|
|
|
|
- ...timeListB[index] // 注意:这里假设两个数组长度相同且索引匹配
|
|
|
|
- }));
|
|
|
|
-
|
|
|
|
- let waiteListA = waiteList.map((obj1, index) => ({
|
|
|
|
- ...obj1,
|
|
|
|
- ...this.timeList[index] // 注意:这里假设两个数组长度相同且索引匹配
|
|
|
|
- }));
|
|
|
|
-
|
|
|
|
- console.log(waiteListA, 'this.timeList===============')
|
|
|
|
-
|
|
|
|
- if (isClear) {
|
|
|
|
- this.waiteList = waiteListA
|
|
|
|
- } else {
|
|
|
|
- this.waiteList.push(...waiteListA)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- this.loading = false
|
|
|
|
- if (this.params.page * this.params.limit >= res.count) {
|
|
|
|
- this.noData = true;
|
|
|
|
- } else {
|
|
|
|
- this.noData = false;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
+ return res
|
|
},
|
|
},
|
|
- // 滚动事件
|
|
|
|
- getScroll(event) {
|
|
|
|
- let scrollBottom =
|
|
|
|
- event.target.scrollHeight -
|
|
|
|
- event.target.scrollTop -
|
|
|
|
- event.target.clientHeight;
|
|
|
|
- // 距离底部20px以内 && 还有数据 && 没有正在加载中
|
|
|
|
- if (scrollBottom <= 20 && !this.noData && !this.loading) {
|
|
|
|
- this.params.page += 1;
|
|
|
|
- this.getData();
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
+ // 搜索批次号
|
|
|
|
+ async onSearch() {
|
|
|
|
+ this.$refs.scrollRefresh.onRefresh()
|
|
},
|
|
},
|
|
- // 展示弹出层
|
|
|
|
|
|
+ // 展开查看详情
|
|
async showPopup(value) {
|
|
async showPopup(value) {
|
|
this.show = true;
|
|
this.show = true;
|
|
const res = await appGetTheDetails({ dispatchBatchNo: value.dispatchBatchNo })
|
|
const res = await appGetTheDetails({ dispatchBatchNo: value.dispatchBatchNo })
|