Files
gjt_mini/pages/standbyVehicle/index.vue
2025-12-30 09:44:46 +08:00

289 lines
7.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<view>
<u-sticky>
<view style="background-color: #fff">
<u-subsection
mode="subsection"
:list="list"
:current="current"
@change="sectionChange"
activeColor="#7ba746"
:fontSize="30"
>
</u-subsection>
</view>
<u-search
placeholder="请输入客户名称"
v-model="keyword"
:showAction="false"
@search="searchList()"
></u-search>
</u-sticky>
<view class="list">
<view class="item" v-for="item in dataList" :key="item.id">
<view class="line">
<view class="text-normal">合同编号: {{ item.contractNo }}</view>
</view>
<view class="line">
<view class="text-normal">客户名称: {{ item.customerName }}</view>
</view>
<view class="line">
<view class="text-small"
>合同约定数量: {{ item.contractVehicleQuantity }}</view
>
</view>
<view class="line">
<view class="text-small"
>待备车数量: {{ item.standbyVehicleQuantity }}</view
>
</view>
<view class="line">
<view class="text-small left"
>合同签订时间: {{ formatDateTime(item.signingDate) }}</view
>
<view class="text-small"
>约定交车时间: {{ formatDateTime(item.appointedDate) }}</view
>
</view>
<view class="buttons">
<!-- 仅待运维备车的数据才显示编辑按钮 -->
<button
v-if="
submitButton &&
item.approvalStatus != 6 &&
item.standbyVehicleQuantity &&
item.standbyVehicleQuantity > 0
"
@tap="goto"
:data-url="`/pages/standbyVehicle/detail?id=${item.id}`"
>
备车办理
</button>
<button
@tap="goto"
:data-url="`/pages/standbyVehicle/detail?isRead=1&id=${item.id}`"
>
查看
</button>
</view>
</view>
<view class="no-more" v-if="noMoreData">没有更多数据了</view>
</view>
<u-loading-page
bg-color="#ffffff"
:loading="loading"
color="#7ba746"
font-size="24"
></u-loading-page>
</view>
</template>
<script>
import stora from "@/utils/storage";
import { checkButtonPermission } from "@/utils/permission.js";
export default {
options: {
styleIsolation: "shared", // 解除样式隔离
},
data() {
return {
current: 0,
list: ["待处理", "全部"],
queryPage: {
pageNo: 1, // 页码
pageSize: 10, //每页查询条数
total: 0, //总页数
pages: -1, //总页数
approvalStatuss: [4], // 审批状态, 4表示待运维备车
filterCompleted: true, //增加参数 filterCompleted=true 过滤备车完成的记录
customerName: "", //客户名称
},
dataList: [],
// testRecord: {
// contractNo: "LNZLHTJX2023051201",
// customerName: "中外运物流华东有限公司",
// contractVehicleQuantity: 10,
// standbyVehicleQuantity: 10,
// signingDate: 1728489600000,
// appointedDate: 1728489600000,
// },
pageNo: 1,
noMoreData: false,
loading: false,
pageCode: "standbyVehicle",
keyword: "",
};
},
computed: {
submitButton: function () {
return checkButtonPermission("standbyVehicleSubmit", this.pageCode);
},
},
methods: {
// 新增的搜索方法
searchList() {
this.queryPage.customerName = this.keyword.trim(); // 设置车牌号条件
this.queryPage.pageNo = 1; // 重置页码为1
this.dataList = []; // 清空数据列表
this.noMoreData = false; // 重置没有更多数据的标志
this.loadmore(); // 重新加载数据
},
sectionChange(index) {
this.keyword = ""; // 清空搜索关键字
this.queryPage.customerName = undefined; // 清空搜索关键字
this.current = index;
if (index == 1) {
// 待业务编辑 1
// 待审批 2
// 审批中 3
// 待运维备车 4
// 备车完成 5
// 已撤销 6
// 部分待业务编辑 7
// 终止 8
// 已全部交车 9
// 全部 (待运维备车 + 备车已完成)
this.queryPage.approvalStatuss = [4, 5, 1];
this.queryPage.filterCompleted = false; //增加参数 filterCompleted=true 过滤备车完成的记录
} else {
// 仅显示待运维备车
this.queryPage.approvalStatuss = [4, 1];
this.queryPage.filterCompleted = true; //增加参数 filterCompleted=true 过滤备车完成的记录
}
this.queryPage.pageNo = 1;
this.dataList = [];
this.loadmore();
},
submitEvent() {
this.current = 1;
//提交后删除缓存
stora.remove("fault_fromData");
},
formatDateTime(obj) {
if (obj == null) {
return "";
}
let date = new Date(obj);
let y = 1900 + date.getYear();
let m = "0" + (date.getMonth() + 1);
let d = "0" + date.getDate();
return (
y +
"-" +
m.substring(m.length - 2, m.length) +
"-" +
d.substring(d.length - 2, d.length)
);
},
loadmore() {
this.loading = true;
this.$api.standbyVehicle
.queryPageList(this.queryPage)
.then((res) => {
this.queryPage.pageNo = res.data.current;
this.queryPage.pages = res.data.pages;
this.queryPage.total = res.data.total;
this.dataList.push(...(res.data.records || []));
this.loading = false;
})
.catch((errors) => {
this.loading = false;
});
},
goto(e) {
uni.navigateTo({ url: e.target.dataset.url });
},
},
onLoad() {
// this.loadmore();
},
onShow() {
this.sectionChange(this.current);
},
onPullDownRefresh() {
this.sectionChange(this.current);
uni.stopPullDownRefresh(); //刷新数据之后停止刷新效果
},
destroyed() {
//页面销毁删除掉数据缓存
stora.remove("fault_fromData");
},
onReachBottom() {
console.log("触底了");
//当前页数小于总页数
if (this.queryPage.pageNo < this.queryPage.pages) {
this.queryPage.pageNo++;
this.loadmore();
} else {
this.noMoreData = true;
console.log("没有更多数据了");
}
},
};
</script>
<style lang="less" scoped>
/deep/ .u-search {
background: #d7d7d7 !important;
padding: 20rpx 10rpx !important;
}
.list {
background: #d7d7d7;
padding: 0 20px 20rpx;
.item {
background: white;
width: calc(100% - 40rpx);
padding: 20rpx;
margin-bottom: 20rpx;
position: relative;
border-radius: 15rpx;
.line {
display: flex;
align-items: center;
margin-bottom: 15rpx;
.left {
margin-right: 50rpx;
width: 300rpx;
}
.text-small {
font-size: x-small;
}
.text-normal {
font-size: small;
}
}
.buttons {
position: absolute;
top: 20rpx;
right: 20rpx;
button {
width: 130rpx;
height: 50rpx;
padding: 12rpx 0;
font-size: 26rpx;
line-height: 26rpx;
margin-bottom: 10rpx;
}
}
}
.no-more {
width: 100%;
text-align: center;
font-size: xx-small;
color: white;
}
}
</style>