<template> <view class=""> <com-empty-view v-if="jobList.length==0"></com-empty-view> <job-filter ref="filter" otherTitle="ASN" @switchChangeToday="switchChangeToday" @switchChangeWait="switchChangeWait" @onScanNumber="getScanNumber" :checkedToday="checkedToday" :checkedWaitTask="checkedWaitTask"> </job-filter> <view v-if="jobList.length>0"> <uni-swipe-action ref="swipeAction"> <view v-for="(item, index) in jobList" :key="index"> <uni-swipe-action-item :right-options="item.status=='2'?detailGiveupOptions:detailOptions" @click="swipeClick($event,item)"> <com-return-job-card :dataContent="item" @click='openJobDetail(item)'></com-return-job-card> </uni-swipe-action-item> </view> </uni-swipe-action> <job-list-popup ref="jobListPopup" @selectedItem="selectedItem"></job-list-popup> <job-info-popup ref='jobInfoPopup'></job-info-popup> <uni-load-more :status="loadingType" v-if="jobList.length>0" /> </view> <com-message ref="comMessage"></com-message> </view> </template> <script> import { cancleTakeCustomerReturnJob, getCustomerReturnJobList, } from '@/api/request2.js'; import { goHome, updateTitle } from '@/common/basic.js'; import { getDetailOption, getDetailGiveupOption } from '@/common/array.js'; import comEmptyView from '@/mycomponents/common/comEmptyView.vue' import jobFilter from '@/mycomponents/job/jobFilter.vue' import comMessage from '@/mycomponents/common/comMessage.vue' import comReturnJobCard from '@/pages/customerReturn/coms/comReturnJobCard.vue' import jobListPopup from '@/pages/customerReturn/coms/jobListPopup.vue' import jobInfoPopup from '@/pages/customerReturn/coms/jobInfoPopup.vue' export default { name: 'customerReturn', components: { comEmptyView, jobFilter, comMessage, comReturnJobCard, jobListPopup, jobInfoPopup }, data() { return { jobList: [], pageNo: 1, pageSize: 10, totalCount: 0, loadingType: "nomore", checkedToday: false, checkedWaitTask: false, todayTime: "", status: '1,2', //待处理 、进行中 detailOptions: [], detailGiveupOptions: [], }; }, onShow() { this.getList('refresh'); }, onReady() { const rightButtonEle2 = document.getElementsByClassName('uni-page-head-btn')[2] this.detailOptions = getDetailOption(); this.detailGiveupOptions = getDetailGiveupOption(); }, onReachBottom() { //避免多次触发 if (this.loadingType == 'loading' || this.loadingType == 'nomore') { return; } this.getList("more"); }, onPullDownRefresh() { this.getList('refresh'); }, //后退按钮 onBackPress(options) { if (options.from === 'navigateBack') { uni.navigateBack({ delta: 1 }) return false; } }, //返回首页 onNavigationBarButtonTap(e) { if (e.index === 0) { goHome(); } else if (e.index == 1) { this.$refs.filter.openFilter(); } }, methods: { getList(type) { let that = this; uni.showLoading({ title: "加载中....", mask: true }); this.loadingType = "loading"; if (type === "refresh") { this.pageNo = 1; this.jobList = []; } var filters = [] if (this.checkedToday) { filters.push({ column: "request_time", action: "betweeen", value: this.todayTime }) } filters.push({ column: "status", action: "in", value: this.status }) var params = { filters: filters, pageNo: this.pageNo, pageSize: this.pageSize, } getCustomerReturnJobList(params).then(res => { uni.hideLoading(); if (type === "refresh") { uni.stopPullDownRefresh(); } var list = res.data.list; this.totalCount = res.data.total this.loadingType = "loadmore"; if (list == null || list.length == 0) { this.loadingType = "nomore"; return; } this.jobList = type === "refresh" ? list : this.jobList.concat(list); this.pageNo++; updateTitle("客户退货(" + this.totalCount + ")"); }).catch(error => { if (type === "refresh") { uni.stopPullDownRefresh(); } updateTitle("客户退货任务"); this.loadingType = ""; uni.hideLoading(); that.showMessage(error) }) }, openJobDetail(item) { uni.navigateTo({ url: './returnDetail?id=' + item.id + '&status=' + item.status }); }, showItemList(itemList) { this.$refs.jobListPopup.openPopup(itemList); }, selectedItem(item) { this.openJobDetail(item); }, swipeClick(e, dataContent) { if (e.content.text == "详情") { this.openjobInfoPopup(dataContent); } else if (e.content.text == "放弃") { this.$refs.comMessage.showQuestionMessage("确定要放弃当前任务?", res => { if (res) { this.cancleJob(dataContent.id); } }); } }, openjobInfoPopup(item) { this.$refs.jobInfoPopup.openPopup(item) }, cancleJob(id) { cancleTakeCustomerReturnJob(id).then(res => { if(res.data){ this.getList("refresh") uni.showToast({ title:"放弃任务成功" }) }else { this.showMessage("放弃任务失败") } }).catch(error => { this.showMessage(error) }) }, switchChangeToday(state, creationTime) { this.checkedToday = state; this.todayTime = creationTime; this.getList("refresh"); }, switchChangeWait(state, jobStatus) { this.checkedWaitTask = state; this.status = jobStatus; this.getList("refresh"); }, getScanNumber(code) { this.getDataListByType(code) }, getDataListByType(code) { let that = this; uni.showLoading({ title: "加载中....", mask: true }); var filters = [] filters.push({ column: "status", action: "in", value: '1,2' }) filters.push({ column: "number", action: "==", value: code }) var params = { filters: filters, pageNo: 1, pageSize: 100, } getCustomerReturnJobList(params).then(res => { uni.hideLoading(); if (res.data.list.length == 0) { that.showMessage('未查找到' + '【' + code + '】的收货任务'); } else if (res.data.list.length == 1) { that.openJobDetail(res.data.list[0]); } }).catch(error => { uni.hideLoading(); that.showMessage(error); }) }, showMessage(message) { this.$refs.comMessage.showErrorMessage(message, res => { if (res) { } }); }, } } </script> <style scoped lang="scss"> </style>