From 10354e63eb3298beb9ebcc029dd9f48d8936a272 Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期五, 19 十二月 2025 23:15:05 +0800
Subject: [PATCH] feat:优化同步
---
ruoyi-ui/src/views/system/mileageStats/index.vue | 69 +++++++++++++++++++++++++++++++++-
1 files changed, 66 insertions(+), 3 deletions(-)
diff --git a/ruoyi-ui/src/views/system/mileageStats/index.vue b/ruoyi-ui/src/views/system/mileageStats/index.vue
index 4468509..0cbe724 100644
--- a/ruoyi-ui/src/views/system/mileageStats/index.vue
+++ b/ruoyi-ui/src/views/system/mileageStats/index.vue
@@ -168,8 +168,30 @@
<!-- 鎵嬪姩缁熻瀵硅瘽妗� -->
<el-dialog title="鎵嬪姩閲岀▼缁熻" :visible.sync="calculateOpen" width="500px" append-to-body>
<el-form ref="calculateForm" :model="calculateForm" :rules="calculateRules" label-width="100px">
- <el-form-item label="杞﹁締ID" prop="vehicleId">
- <el-input v-model="calculateForm.vehicleId" placeholder="璇疯緭鍏ヨ溅杈咺D" type="number" />
+ <el-form-item label="杞︾墝鍙�" prop="vehicleId">
+ <el-select
+ v-model="calculateForm.vehicleId"
+ placeholder="璇疯緭鍏ヨ溅鐗屽彿鎼滅储"
+ filterable
+ remote
+ :remote-method="searchVehicles"
+ :loading="vehicleSearchLoading"
+ clearable
+ style="width: 100%"
+ @change="handleVehicleChange"
+ >
+ <el-option
+ v-for="vehicle in vehicleOptions"
+ :key="vehicle.vehicleId"
+ :label="vehicle.vehicleNo"
+ :value="vehicle.vehicleId"
+ >
+ <span style="float: left">{{ vehicle.vehicleNo }}</span>
+ <span style="float: right; color: #8492a6; font-size: 13px" v-if="vehicle.deptName">
+ {{ vehicle.deptName }}
+ </span>
+ </el-option>
+ </el-select>
</el-form-item>
<el-form-item label="缁熻鏃ユ湡" prop="statDate">
<el-date-picker
@@ -297,6 +319,7 @@
<script>
import { listMileageStats, getMileageStats, delMileageStats, calculateMileageStats, batchCalculateMileageStats, getSegmentsByDateRange } from "@/api/system/mileageStats";
import { listDept } from "@/api/system/dept";
+import { listVehicle } from "@/api/system/vehicle";
export default {
name: "MileageStats",
@@ -338,6 +361,10 @@
calculateLoading: false,
// 鎵归噺缁熻鍔犺浇鐘舵��
batchCalculateLoading: false,
+ // 杞﹁締鎼滅储鍔犺浇鐘舵��
+ vehicleSearchLoading: false,
+ // 杞﹁締閫夐」鍒楄〃
+ vehicleOptions: [],
// 鏌ヨ鍙傛暟
queryParams: {
pageNum: 1,
@@ -359,7 +386,7 @@
// 鎵嬪姩缁熻琛ㄥ崟鏍¢獙
calculateRules: {
vehicleId: [
- { required: true, message: "杞﹁締ID涓嶈兘涓虹┖", trigger: "blur" }
+ { required: true, message: "璇烽�夋嫨杞﹁締", trigger: "change" }
],
statDate: [
{ required: true, message: "缁熻鏃ユ湡涓嶈兘涓虹┖", trigger: "change" }
@@ -413,7 +440,43 @@
/** 鎵嬪姩缁熻鎸夐挳鎿嶄綔 */
handleCalculate() {
this.reset();
+ this.vehicleOptions = [];
this.calculateOpen = true;
+ // 鎵撳紑瀵硅瘽妗嗘椂鍔犺浇涓�浜涜溅杈嗘暟鎹�
+ this.searchVehicles('');
+ },
+ /** 鎼滅储杞﹁締 */
+ searchVehicles(query) {
+ if (query !== '') {
+ this.vehicleSearchLoading = true;
+ listVehicle({
+ vehicleNo: query,
+ pageNum: 1,
+ pageSize: 50
+ }).then(response => {
+ this.vehicleOptions = response.rows || [];
+ this.vehicleSearchLoading = false;
+ }).catch(() => {
+ this.vehicleSearchLoading = false;
+ });
+ } else {
+ // 濡傛灉鏌ヨ涓虹┖锛屽姞杞藉墠50鏉¤溅杈嗘暟鎹�
+ this.vehicleSearchLoading = true;
+ listVehicle({
+ pageNum: 1,
+ pageSize: 50
+ }).then(response => {
+ this.vehicleOptions = response.rows || [];
+ this.vehicleSearchLoading = false;
+ }).catch(() => {
+ this.vehicleSearchLoading = false;
+ });
+ }
+ },
+ /** 杞﹁締閫夋嫨鍙樺寲 */
+ handleVehicleChange(value) {
+ // 鍙互鍦ㄨ繖閲屾坊鍔犻澶栫殑澶勭悊閫昏緫
+ console.log('閫夋嫨鐨勮溅杈咺D:', value);
},
/** 鎵归噺缁熻鎸夐挳鎿嶄綔 */
handleBatchCalculate() {
--
Gitblit v1.9.1