From 8eb78479b8d998472a293fb991d4d87be4543564 Mon Sep 17 00:00:00 2001
From: Lx <935448346@qq.com>
Date: Tue, 30 Sep 2025 09:39:50 +0800
Subject: [PATCH] 0930
---
components/categoryList/CategoryList.vue | 169 ++
pages.json | 6 +
pages/login/login.vue | 16 +-
pages/my/StatisticsInfo.vue | 1741 ++++++++++++++++--
pages/my/classificationInfo.vue | 235 +++
pages/process/dispatchAgentDriverExecute.vue | 89 +-
6 files changed, 2097 insertions(+), 159 deletions(-)
create mode 100644 components/categoryList/CategoryList.vue
create mode 100644 pages/my/classificationInfo.vue
diff --git a/components/categoryList/CategoryList.vue b/components/categoryList/CategoryList.vue
new file mode 100644
index 0000000..89a7538
--- /dev/null
+++ b/components/categoryList/CategoryList.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+
+
+ {{ item.driverName }}
+
+ {{ item.rescueNum }}
+ {{ item.mileage > 0 ? item.mileage : 0 }}
+ {{ item.money }}
+
+
+
+
+
+
+
+
+
+ {{ item.driverCarNum }}
+
+ {{ item.rescueNum }}
+ {{ item.mileage > 0 ? item.mileage : 0 }}
+ {{ item.money }}
+
+
+
+
+
+
+
+
+
+ {{ item.driverName }}
+
+ {{ item.createRescueNum }}
+ {{ item.toSceneNum }}
+ {{ item.toRepairNum }}
+ {{ item.confirmCompleteNum }}
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages.json b/pages.json
index e03e158..8a11ee4 100644
--- a/pages.json
+++ b/pages.json
@@ -256,6 +256,12 @@
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
+ },
+ {
+ "path": "pages/my/classificationInfo",
+ "style": {
+ "navigationBarTitleText": ""
+ }
}
/* ,
{
diff --git a/pages/login/login.vue b/pages/login/login.vue
index 28473f3..002ad57 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -379,6 +379,18 @@
})
},
goselect() {
+ console.log('执行去救援', this.sfindex);
+ if (this.sfindex == 'police') {
+ uni.reLaunch({
+ url: '/pages/rescue/trafficPolice'
+ })
+ } else {
+ uni.reLaunch({
+ url: '/pages/my/my'
+ })
+ }
+ },
+ /* goselect() {
console.log('执行去救援', this.sfindex);
// pages/rescue/trafficPolice
if (this.sfindex == 'police') {
@@ -395,10 +407,8 @@
url: '/pages/my/my'
})
}
-
}
-
- },
+ }, */
// 验证码方法
sendVerificationCode() {
let reg = /^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9]))\d{8}$/;
diff --git a/pages/my/StatisticsInfo.vue b/pages/my/StatisticsInfo.vue
index 77af881..483d9c2 100644
--- a/pages/my/StatisticsInfo.vue
+++ b/pages/my/StatisticsInfo.vue
@@ -1,206 +1,1647 @@
-
-
+
+
+
+
+
+
+
+ 业务统计
+
+
+ 员工统计
+
+
+
+
-
-
-
-
- {{item.name}}
+
+
+
+
+
+
+ {{ countNum.yjdNum }}
+ 已接单
+
+
+ {{ countNum.jyzNum }}
+ 救援中
+
+
+ {{ countNum.ywcNum }}
+ 已完成
-
-
-
-
- 姓名
- {{item.driverName}}
-
-
- 金额
- {{item.money}}
-
-
- 数量
- {{item.rescueNum}}
+
+
+
+
+
-
-
-
-
+
+
+
+
+ {{ countNum.yingskNum }}
+ 应收款(元)
+
+
+ {{ countNum.yiskNum }}
+ 已收款(元)
+
+
+
+
+ {{ countNum.dskNum }}
+ 待收款(元)
+
+
+ {{ countNum.dqcNum }}
+ 待取车
+
+
+
+
+
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 加载中,请稍候...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 正在加载更多...
+
+
+
+ 没有更多数据了
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ tab.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+ .tab-item.active {
+ font-weight: bold;
+ border-bottom: 3px solid #fff;
+ opacity: 1;
+ }
+
+ .filter-btn {
+ font-size: 14px;
+ }
+
+ /* 统计卡片 */
+ /* .stat-cards {
+ display: flex;
+ justify-content: space-around;
+ margin: 14rpx 0;
+ } */
+
+ .stat-card {
+ background: #fff;
+ border-radius: 12rpx;
+ padding: 4rpx;
+ flex: 1;
+ margin: 0 16rpx;
+ text-align: center;
+ box-shadow: 0 4rpx 10rpx rgba(0, 0, 0, 0.05);
+ }
+
+ .stat-num {
+ font-size: 20px;
+ font-weight: bold;
+ color: #333;
+ }
+
+ .stat-label {
+ display: block;
+ margin-top: 6px;
+ color: #666;
+ font-size: 14px;
+ }
+
+ /* 搜索和时间筛选区域 */
+ .search-filter-area {
+ background: #fff;
+ margin: 0 20rpx;
+ border-radius: 16rpx;
+ /* padding: 6rpx 0 10rpx 0; */
+ box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);
+ display: flex;
+ flex-direction: row;
+ justify-content: space-around;
+ align-items: center;
+ }
+
+ .top-icon {
+ box-sizing: border-box;
+ width: 100%;
+ padding: 5px 0;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ }
+
+ .h-text {
+ width: 124rpx;
+ height: 56rpx;
+ background: rgba(255, 255, 255, 0.2);
+ border-radius: 28rpx;
+ font-size: 28rpx;
+ color: #FFFFFF;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: #327DFB;
+ }
+
+ .s-input {
+ width: 78%;
+ height: 56rpx;
+ background: #f5f5f5;
+ border-radius: 50px;
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ padding: 0px 10px;
+
+ input {
+ margin-left: 5px;
+ flex: 1;
+ width: 0;
+ font-size: 14px;
+ color: #999999;
+ }
+ }
+
+ /* 时间筛选选项卡样式 */
+ .tab-choose-class {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 20rpx 0 16rpx 0;
+ background-color: #fff;
+ /* border-bottom: 1rpx solid #F5F5F5; */
+ width: 100%;
+ /* 新增:让容器占满宽度 */
+ }
+
+ .tab-content {
+ font-size: 28rpx;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ flex: 1;
+ text-align: center;
+ }
+
+ .tab-name-class {
+ display: flex;
+ align-items: center;
+ }
+
+ .icon-tab {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 32rpx;
+ height: 32rpx;
+ }
+
+ .icon-tab image {
+ width: 100%;
+ height: 100%;
+ }
+
+ .example-body {
+ background-color: #fff;
+ padding: 0 20rpx;
+ }
+
+ /* 信息选项卡样式 */
+ .four-box-header_2 {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 20rpx 0;
+ }
+
+ .four-box-header_2_right {
+ width: 60%;
+ display: flex;
+ justify-content: space-around;
+ align-items: center;
+ }
+
+ .four-box-header_2_right .tab-item {
+ font-size: 28rpx;
+ font-weight: normal;
+ color: #a1a6aa;
+ position: relative;
+ padding: 0rpx 20rpx;
+ cursor: pointer;
+ transition: all 0.3s ease;
+ }
+
+ .four-box-header_2_right .tab-item.active {
+ font-weight: bold;
+ color: #000000;
+ }
+
+ .four-box-header_2_right .tab-item.active::after {
+ content: '';
+ position: absolute;
+ bottom: -10rpx;
+ left: 50%;
+ transform: translateX(-50%);
+ width: 33.33%;
+ height: 6rpx;
+ background: linear-gradient(90deg, #054DF3 0%, #55A3FF 100%);
+ border-radius: 3rpx 3rpx 0 0;
+ }
+
+ /* 订单列表区域 */
+ .dil {
+ background-color: #F7F8FC;
+ box-sizing: border-box;
+ padding: 8px 12px 15px 12px;
+ display: flex;
+ flex-direction: column;
+ row-gap: 10px;
+ }
+
+ .loading-container {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ z-index: 9999;
+ }
+
+ .loading-spinner {
+ position: relative;
+ width: 60px;
+ height: 60px;
+ border: 4px solid #f3f3f3;
+ border-top: 4px solid #327DFB;
+ border-radius: 50%;
+ animation: spin 1s linear infinite;
+ margin-bottom: 15px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ .loading-text {
+ font-size: 16px;
+ color: #666;
+ }
+
+ @keyframes spin {
+ 0% {
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ transform: rotate(360deg);
+ }
+ }
+
+ .ques {
+ margin: 0px auto;
+ margin-top: 40px;
+ width: 80%;
+ }
+
+ .ques image {
+ width: 100%;
+ }
+
+ .loading-more {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 20rpx;
+ color: #999;
+ font-size: 26rpx;
+ }
+
+ .loading-more .mini {
+ width: 30px;
+ height: 30px;
+ border-width: 2px;
+ margin-right: 10rpx;
+ }
+
+ .no-more-data {
+ text-align: center;
+ padding: 20rpx;
+ color: #999;
+ font-size: 26rpx;
+ }
+
+ /* 分类统计样式 */
+ .sub-tabs {
+ display: flex;
+ background: #fff;
+ padding: 10px 0;
+ justify-content: space-around;
+ border-bottom: 1px solid #eee;
+ }
+
+ .sub-tab-item {
+ font-size: 15px;
+ color: #666;
+ padding: 4px 10px;
+ }
+
+ .sub-tab-item.active {
+ font-weight: bold;
+ color: #3a8dff;
+ border-bottom: 2px solid #3a8dff;
+ }
+
+ .list-container {
+ margin: 10px;
+ }
+
+ .table-header,
+ .table-row {
+ display: flex;
+ align-items: center;
+ background: #fff;
+ border-radius: 8px;
+ padding: 10px;
+ margin-bottom: 6px;
+ }
+
+ .table-header {
+ font-weight: bold;
+ background: #f0f3f8;
+ }
+
+ .col-rank {
+ width: 40px;
+ text-align: center;
+ }
+
+ .col-driver {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ }
+
+ .avatar {
+ width: 28px;
+ height: 28px;
+ border-radius: 50%;
+ margin-right: 6px;
+ }
+
+ .col-num,
+ .col-distance,
+ .col-money {
+ width: 80px;
+ text-align: center;
+ }
+
+ .scroll_view_style {
+ flex: 1;
+ }
+
+ /* 新增选择字段样式 */
+ .select-field {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 20rpx;
+ background: #fff;
+ border-radius: 8rpx;
+ border: 1rpx solid #e9ecef;
+ min-height: 80rpx;
+ box-sizing: border-box;
+ }
+
+ .select-text {
+ font-size: 28rpx;
+ color: #333;
+ flex: 1;
+ }
+
+ .select-field:active {
+ background: #e9ecef;
+ }
+
+ .stat-cards-container {
+ position: relative;
+ display: flex;
+ align-items: center;
+ margin: 14rpx 0;
+ }
+
+ .stat-cards {
+ display: flex;
+ justify-content: space-around;
+ flex: 1;
+ }
+
+ .expand-btn {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ width: 60rpx;
+ height: 80rpx;
+ margin-right: 20rpx;
+ background: #fff;
+ border-radius: 12rpx;
+ box-shadow: 0 4rpx 10rpx rgba(0, 0, 0, 0.05);
+ }
+
+ .expand-text {
+ font-size: 20rpx;
+ color: #327DFB;
+ margin-top: 4rpx;
+ }
+
+ .expanded-cards {
+ margin-top: 10rpx;
+ margin-bottom: 20rpx;
+ }
+
\ No newline at end of file
diff --git a/pages/my/classificationInfo.vue b/pages/my/classificationInfo.vue
new file mode 100644
index 0000000..d776c3f
--- /dev/null
+++ b/pages/my/classificationInfo.vue
@@ -0,0 +1,235 @@
+
+
+
+
+ ←
+
+
+ 工单统计
+
+
+ 分类统计
+
+
+ 筛选 ⏷
+
+
+
+
+
+
+
+ {{ tab.label }}
+
+
+
+
+
+
+
+ {{ index + 1 }}
+
+
+ {{ item.name }}
+
+ {{ item.count }}
+ {{ item.distance }}
+ {{ item.money }}
+
+
+
+
+ 救援车辆列表(待实现)
+
+
+
+ 调度列表(待实现)
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/process/dispatchAgentDriverExecute.vue b/pages/process/dispatchAgentDriverExecute.vue
index 1c24278..006a1cf 100644
--- a/pages/process/dispatchAgentDriverExecute.vue
+++ b/pages/process/dispatchAgentDriverExecute.vue
@@ -526,6 +526,55 @@
+
+
+
+
+