Commit 590074cc74e96f723cd64dcd647af010f8e6af40

Authored by guzijian
1 parent 5768c200

feat: 修改布局

.env.development
1 # 页面标题 1 # 页面标题
2 -VITE_APP_TITLE = 酒精测试一体机管理系统 2 +VITE_APP_TITLE = 青浦巴士岗前检测系统
3 3
4 # 开发环境配置 4 # 开发环境配置
5 VITE_APP_ENV = 'development' 5 VITE_APP_ENV = 'development'
.env.production
1 # 页面标题 1 # 页面标题
2 -VITE_APP_TITLE = "酒精测试一体机管理系统" 2 +VITE_APP_TITLE = "青浦巴士岗前检测系统"
3 3
4 # 生产环境配置 4 # 生产环境配置
5 VITE_APP_ENV = 'production' 5 VITE_APP_ENV = 'production'
.env.staging
1 # 页面标题 1 # 页面标题
2 -VITE_APP_TITLE = 酒精测试一体机管理系统 2 +VITE_APP_TITLE = 青浦巴士岗前检测系统
3 3
4 # 生产环境配置 4 # 生产环境配置
5 VITE_APP_ENV = 'staging' 5 VITE_APP_ENV = 'staging'
index.html
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" 9 content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
10 /> 10 />
11 <link rel="icon" href="public/favicon.ico" /> 11 <link rel="icon" href="public/favicon.ico" />
12 - <title>酒精测试一体机管理系统</title> 12 + <title>青浦巴士岗前检测系统</title>
13 <!--[if lt IE 11 13 <!--[if lt IE 11
14 ]><script> 14 ]><script>
15 window.location.href = "/html/ie.html"; 15 window.location.href = "/html/ie.html";
package.json
1 { 1 {
2 "name": "bsth", 2 "name": "bsth",
3 "version": "3.8.5", 3 "version": "3.8.5",
4 - "description": "酒精测试一体机管理系统", 4 + "description": "青浦巴士岗前检测系统",
5 "author": "bsth", 5 "author": "bsth",
6 "license": "MIT", 6 "license": "MIT",
7 "scripts": { 7 "scripts": {
src/api/big_view/big_view.js
1 import request from '@/utils/request' 1 import request from '@/utils/request'
2 2
3 -export function querySignInfoByType(type) { 3 +export function querySignInfoByType(query) {
4 return request({ 4 return request({
5 - url: `/big/view/queryNumberByType/${type}`,  
6 - method: 'GET' 5 + url: `/big/view/queryNumberByType`,
  6 + method: 'GET',
  7 + params:query
7 }) 8 })
8 } 9 }
9 10
10 -export function queryLineInfo() { 11 +export function queryLineInfo(dateKey) {
11 return request({ 12 return request({
12 - url: `/big/view/queryLineInfo`, 13 + url: `/big/view/queryLineInfo/${dateKey}`,
13 method: 'GET' 14 method: 'GET'
14 }) 15 })
15 } 16 }
  17 +
  18 +export function querySignDetails(query) {
  19 + return request({
  20 + url: "/big/view/querySignDetails",
  21 + method: 'GET',
  22 + params: query
  23 + })
  24 +}
src/components/ConstForm/index.vue
1 <template> 1 <template>
2 - <div v-loading="loading"> 2 + <div v-loading="loading" element-loading-text="加载详情..." element-loading-svg-view-box="-10, -10, 50, 50"
  3 + element-loading-background="#062a5ac5">
3 <div class="person-info"> 4 <div class="person-info">
4 <div class="font-box"> 5 <div class="font-box">
5 <span class="label"> 6 <span class="label">
@@ -11,43 +12,45 @@ @@ -11,43 +12,45 @@
11 </div> 12 </div>
12 <div class="font-box"> 13 <div class="font-box">
13 <span class="label"> 14 <span class="label">
14 - 工号: 15 + 姓名:
15 </span> 16 </span>
16 <div class="content-box"> 17 <div class="content-box">
17 - <span class="content-text"> {{ info.jobCode }}</span> 18 + <span class="content-text"> {{ info.name }}</span>
18 </div> 19 </div>
19 </div> 20 </div>
20 -  
21 <div class="font-box"> 21 <div class="font-box">
22 <span class="label"> 22 <span class="label">
23 - 工号: 23 + 路牌:
24 </span> 24 </span>
25 <div class="content-box"> 25 <div class="content-box">
26 - <span class="content-text"> {{ info.jobCode }}</span> 26 + <span class="content-text"> {{ info.lpName }}</span>
27 </div> 27 </div>
28 </div> 28 </div>
29 -  
30 <div class="font-box"> 29 <div class="font-box">
31 <span class="label"> 30 <span class="label">
32 - 工号: 31 + 车队:
33 </span> 32 </span>
34 <div class="content-box"> 33 <div class="content-box">
35 - <span class="content-text"> {{ info.jobCode }}</span> 34 + <span class="content-text"> {{ info.fleetName }}</span>
36 </div> 35 </div>
37 </div> 36 </div>
38 </div> 37 </div>
39 <div style="display: flex;align-items: center;margin-bottom: 7px; color: #0CFCFC; font-size: 13px; margin-top: 15px;"> 38 <div style="display: flex;align-items: center;margin-bottom: 7px; color: #0CFCFC; font-size: 13px; margin-top: 15px;">
40 打卡详情</div> 39 打卡详情</div>
41 - <el-table :data="tableData" style="width: 100%;background-color: aliceblue;">  
42 - <el-table-column prop="date" label="打卡时间" width="120" />  
43 - <el-table-column prop="address" label="打卡地点" />  
44 - <el-table-column prop="result" label="打卡结果" />  
45 - </el-table> 40 + <div class="mainTable">
  41 + <el-table :data="info.signInfos" style="width: 100%;">
  42 + <el-table-column prop="planDate" label="计划打卡" width="78" max-height="60" />
  43 + <el-table-column prop="signDate" label="实际打卡" width="78" max-height="60" />
  44 + <el-table-column prop="address" label="打卡地点" width="74" max-height="60" />
  45 + <el-table-column prop="result" label="打卡结果" width="65" max-height="60" />
  46 + </el-table>
  47 + </div>
  48 +
46 </div> 49 </div>
47 </template> 50 </template>
48 51
49 <script setup> 52 <script setup>
50 - 53 +import { querySignDetails } from '@/api/big_view/big_view.js';
51 const loading = ref(false); 54 const loading = ref(false);
52 const props = defineProps({ 55 const props = defineProps({
53 // 请求参数 56 // 请求参数
@@ -58,6 +61,10 @@ const props = defineProps({ @@ -58,6 +61,10 @@ const props = defineProps({
58 showFlag: { 61 showFlag: {
59 type: Boolean, 62 type: Boolean,
60 required: true 63 required: true
  64 + },
  65 + currentDateKey: {
  66 + type: String,
  67 + require: true
61 } 68 }
62 }) 69 })
63 /** 签到信息 */ 70 /** 签到信息 */
@@ -69,37 +76,19 @@ info.value = { @@ -69,37 +76,19 @@ info.value = {
69 fleetName: "" 76 fleetName: ""
70 } 77 }
71 78
72 -const tableData = ref(  
73 - [  
74 - {  
75 - date: "今天 10:33:33",  
76 - result: "正常",  
77 - address: "背景"  
78 - },  
79 - {  
80 - date: "今天 10:33:33",  
81 - result: "正常",  
82 - address: "背景"  
83 - },  
84 - {  
85 - date: "今天 10:33:33",  
86 - result: "正常",  
87 - address: "背景"  
88 - }  
89 - ]  
90 -)  
91 /** 处理信息 */ 79 /** 处理信息 */
92 -const handleInfo = (val) => { 80 +const handleInfo = (jobCode, date) => {
93 loading.value = true 81 loading.value = true
94 - setTimeout(() => { 82 + querySignDetails({ jobCode: jobCode, date: date }).then(res => {
95 loading.value = false; 83 loading.value = false;
96 info.value = { 84 info.value = {
97 - name: "张三",  
98 - lpName: "路牌",  
99 - jobCode: val,  
100 - fleetName: "三车队" 85 + name: res.data.name,
  86 + lpName: res.data.lpName,
  87 + jobCode: res.data.jobCode,
  88 + fleetName: res.data.fleetName,
  89 + signInfos: res.data.signInfos
101 } 90 }
102 - }, 1000); 91 + })
103 } 92 }
104 93
105 const reset = () => { 94 const reset = () => {
@@ -115,7 +104,7 @@ watch( @@ -115,7 +104,7 @@ watch(
115 () => props.showFlag, 104 () => props.showFlag,
116 (count, prevCount) => { 105 (count, prevCount) => {
117 if (props.showFlag) { 106 if (props.showFlag) {
118 - handleInfo(props.jobCode); 107 + handleInfo(props.jobCode, props.currentDateKey);
119 } else { 108 } else {
120 reset() 109 reset()
121 } 110 }
@@ -123,8 +112,65 @@ watch( @@ -123,8 +112,65 @@ watch(
123 ) 112 )
124 </script> 113 </script>
125 <style scoped lang="scss"> 114 <style scoped lang="scss">
  115 +:deep(.mainTable .el-table .el-table__header-wrapper th, .el-table .el-table__fixed-header-wrapper th) {
  116 + text-align: center;
  117 + font-weight: bold;
  118 + color: white;
  119 + background-color: #0359A4 !important;
  120 + font-size: 0.5vw;
  121 + height: 20px !important;
  122 +}
  123 +
  124 +:deep(.mainTable .el-table__empty-text) {
  125 + line-height: 30px !important;
  126 + color: white;
  127 + font-weight: bold;
  128 + font-size: 0.5vw;
  129 +}
  130 +
  131 +:deep(.mainTable .el-table__empty-block) {
  132 + min-height: 30px !important;
  133 + background-color: #041e74d5;
  134 +}
  135 +
  136 +:deep(.mainTable .el-table tr) {
  137 + background-color: #03113F;
  138 +}
  139 +
  140 +:deep(.mainTable .el-table .el-table__cell) {
  141 + padding: 1px !important;
  142 + font-weight: bold;
  143 +}
  144 +
  145 +:deep(.mainTable .el-table tbody tr:hover>td) {
  146 + background: rgba(39, 54, 91, 0.571) !important;
  147 +}
  148 +
  149 +// :deep(.mainTable .el-table th) {
  150 +// border: 1px solid black !important;
  151 +// border-right: none !important;
  152 +// border-bottom: none !important;
  153 +// }
  154 +
  155 +:deep(.el-table td) {
  156 + border: 1px solid #033E72;
  157 + border-right: none !important;
  158 +}
  159 +
  160 +// 行单元格
  161 +:deep(.mainTable td .cell) {
  162 + text-align: center;
  163 + font-size: 0.5vw;
  164 + color: white;
  165 +}
  166 +
  167 +// 修改行单元格内边距
  168 +:deep(.mainTable .el-table .cell) {
  169 + padding: 1px !important;
  170 +}
  171 +
126 .person-info { 172 .person-info {
127 - width: 300px; 173 + width: 320px;
128 display: flex; 174 display: flex;
129 flex-wrap: wrap; 175 flex-wrap: wrap;
130 justify-content: space-between; 176 justify-content: space-between;
@@ -146,7 +192,7 @@ watch( @@ -146,7 +192,7 @@ watch(
146 192
147 .content-box { 193 .content-box {
148 color: white; 194 color: white;
149 - width: 80px; 195 + width: 95.5px;
150 box-sizing: border-box; 196 box-sizing: border-box;
151 padding: 2px; 197 padding: 2px;
152 text-align: center; 198 text-align: center;
src/layout/components/Sidebar/Logo.vue
@@ -30,7 +30,7 @@ defineProps({ @@ -30,7 +30,7 @@ defineProps({
30 } 30 }
31 }) 31 })
32 32
33 -const title = ref('酒精测试一体机管理系统'); 33 +const title = ref('青浦巴士岗前检测系统');
34 const settingsStore = useSettingsStore(); 34 const settingsStore = useSettingsStore();
35 const sideTheme = computed(() => settingsStore.sideTheme); 35 const sideTheme = computed(() => settingsStore.sideTheme);
36 </script> 36 </script>
src/views/driver/driver/index.vue
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> 44 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
45 </el-row> 45 </el-row>
46 46
47 - <el-table v-loading="loading" :data="driverList" @selection-change="handleSelectionChange"> 47 + <el-table v-loading="loading" :data="driverList" max-height="600px" @selection-change="handleSelectionChange">
48 <el-table-column type="selection" width="55" align="center" /> 48 <el-table-column type="selection" width="55" align="center" />
49 <el-table-column label="工号" align="center" prop="jobCode" /> 49 <el-table-column label="工号" align="center" prop="jobCode" />
50 <el-table-column label="姓名" align="center" prop="personnelName" /> 50 <el-table-column label="姓名" align="center" prop="personnelName" />
src/views/eexception/eexception/index.vue
@@ -41,7 +41,7 @@ @@ -41,7 +41,7 @@
41 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> 41 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
42 </el-row> 42 </el-row>
43 43
44 - <el-table v-loading="loading" :data="eexceptionList" @selection-change="handleSelectionChange"> 44 + <el-table height="600" v-loading="loading" :data="eexceptionList" @selection-change="handleSelectionChange">
45 <el-table-column type="selection" width="55" align="center" /> 45 <el-table-column type="selection" width="55" align="center" />
46 <el-table-column label="标题" align="center" prop="title" /> 46 <el-table-column label="标题" align="center" prop="title" />
47 <el-table-column label="设备号" align="center" prop="deviceId" /> 47 <el-table-column label="设备号" align="center" prop="deviceId" />
src/views/email/email/index.vue
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 </el-col> 23 </el-col>
24 </el-row> 24 </el-row>
25 25
26 - <el-table v-loading="loading" :data="emailList" @selection-change="handleSelectionChange"> 26 + <el-table height="600" v-loading="loading" :data="emailList" @selection-change="handleSelectionChange">
27 <el-table-column label="姓名" align="center" prop="name" /> 27 <el-table-column label="姓名" align="center" prop="name" />
28 <el-table-column label="邮箱" align="center" prop="email" /> 28 <el-table-column label="邮箱" align="center" prop="email" />
29 <el-table-column label="类型" align="center" prop="type"> 29 <el-table-column label="类型" align="center" prop="type">
src/views/equipment/equipment/index.vue
@@ -30,11 +30,11 @@ @@ -30,11 +30,11 @@
30 v-hasPermi="['equipment:equipment:add']">新增</el-button> 30 v-hasPermi="['equipment:equipment:add']">新增</el-button>
31 </el-col> 31 </el-col>
32 <el-col :span="1.5"> 32 <el-col :span="1.5">
33 - <el-button type="success" v-show="false" plain icon="Edit" :disabled="single" @click="handleUpdate" 33 + <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate"
34 v-hasPermi="['equipment:equipment:edit']">修改</el-button> 34 v-hasPermi="['equipment:equipment:edit']">修改</el-button>
35 </el-col> 35 </el-col>
36 <el-col :span="1.5"> 36 <el-col :span="1.5">
37 - <el-button type="danger" v-show="false" plain icon="Delete" :disabled="multiple" @click="handleDelete" 37 + <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete"
38 v-hasPermi="['equipment:equipment:remove']">删除</el-button> 38 v-hasPermi="['equipment:equipment:remove']">删除</el-button>
39 </el-col> 39 </el-col>
40 <el-col :span="1.5"> 40 <el-col :span="1.5">
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> 44 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
45 </el-row> 45 </el-row>
46 46
47 - <el-table border v-loading="loading" :data="equipmentList" @selection-change="handleSelectionChange"> 47 + <el-table border height="600" v-loading="loading" :data="equipmentList" @selection-change="handleSelectionChange">
48 <el-table-column label="序号" type="index" width="50" align="center"> 48 <el-table-column label="序号" type="index" width="50" align="center">
49 <template #default="scope"> 49 <template #default="scope">
50 {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }} 50 {{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}
src/views/errorScheduling/errorScheduling/index.vue
@@ -38,7 +38,7 @@ @@ -38,7 +38,7 @@
38 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> 38 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
39 </el-row> 39 </el-row>
40 40
41 - <el-table v-loading="loading" :data="errorSchedulingList" @selection-change="handleSelectionChange"> 41 + <el-table max-height="600" v-loading="loading" :data="errorSchedulingList" @selection-change="handleSelectionChange">
42 <el-table-column type="selection" width="55" align="center" /> 42 <el-table-column type="selection" width="55" align="center" />
43 <el-table-column label="工号" align="center" prop="jobCode" /> 43 <el-table-column label="工号" align="center" prop="jobCode" />
44 <el-table-column label="姓名" align="center" prop="name" /> 44 <el-table-column label="姓名" align="center" prop="name" />
src/views/home/index.vue
@@ -25,6 +25,7 @@ @@ -25,6 +25,7 @@
25 <div class="global-info-box-container-right-number"> 25 <div class="global-info-box-container-right-number">
26 <count-to ref="scrollNumber" :start-val="item.startNumber" :end-val="item.endNumber" :duration="8000" 26 <count-to ref="scrollNumber" :start-val="item.startNumber" :end-val="item.endNumber" :duration="8000"
27 :decimals="0" /> 27 :decimals="0" />
  28 + {{ item.allNumber == null ? "" : " / " + item.allNumber }}
28 </div> 29 </div>
29 </div> 30 </div>
30 </div> 31 </div>
@@ -69,9 +70,9 @@ @@ -69,9 +70,9 @@
69 <div v-for="(sunItem, sunIndex) in childItem.lineInfos" :key="sunItem.nbbm" class="fleet-nbbm-info-item"> 70 <div v-for="(sunItem, sunIndex) in childItem.lineInfos" :key="sunItem.nbbm" class="fleet-nbbm-info-item">
70 <div v-if="sunItem.saleInfoVo != null" class="fleet-nbbm-info-have-sale"> 71 <div v-if="sunItem.saleInfoVo != null" class="fleet-nbbm-info-have-sale">
71 <el-popover popper-class="fleet-popover-style" placement="top" :title="childItem.lineName" 72 <el-popover popper-class="fleet-popover-style" placement="top" :title="childItem.lineName"
72 - :width="300" :show-after="300" @after-enter="alterEnterHandler(sunItem.driverInfoVo.jobCode)"> 73 + :width="320" :show-after="200" @after-enter="alterEnterHandler(sunItem.driverInfoVo.jobCode)">
73 <ConstForm :showFlag="personSignInfo.jobCode == sunItem.driverInfoVo.jobCode" 74 <ConstForm :showFlag="personSignInfo.jobCode == sunItem.driverInfoVo.jobCode"
74 - :jobCode="sunItem.driverInfoVo.jobCode" /> 75 + :currentDateKey="currentDateKey" :jobCode="sunItem.driverInfoVo.jobCode" />
75 <template #reference> 76 <template #reference>
76 <div class="fleet-nbbm-have-sale-driver" :style="signStyleColor[sunItem.driverInfoVo.signStatus]"> 77 <div class="fleet-nbbm-have-sale-driver" :style="signStyleColor[sunItem.driverInfoVo.signStatus]">
77 </div> 78 </div>
@@ -81,19 +82,19 @@ @@ -81,19 +82,19 @@
81 <span class="fleet-nbbm-have-sale-txt">{{ sunItem.nbbm }}</span> 82 <span class="fleet-nbbm-have-sale-txt">{{ sunItem.nbbm }}</span>
82 </div> 83 </div>
83 <el-popover popper-class="fleet-popover-style" placement="top" :title="childItem.lineName" 84 <el-popover popper-class="fleet-popover-style" placement="top" :title="childItem.lineName"
84 - :width="300" :show-after="300" @after-enter="alterEnterHandler(sunItem.saleInfoVo.jobCode)"> 85 + :width="320" :show-after="200" @after-enter="alterEnterHandler(sunItem.saleInfoVo.jobCode)">
85 <ConstForm :showFlag="personSignInfo.jobCode == sunItem.saleInfoVo.jobCode" 86 <ConstForm :showFlag="personSignInfo.jobCode == sunItem.saleInfoVo.jobCode"
86 - :jobCode="sunItem.saleInfoVo.jobCode" /> 87 + :currentDateKey="currentDateKey" :jobCode="sunItem.saleInfoVo.jobCode" />
87 <template #reference> 88 <template #reference>
88 <div class="fleet-nbbm-have-sale-sale" :style="signStyleColor[sunItem.saleInfoVo.signStatus]"> 89 <div class="fleet-nbbm-have-sale-sale" :style="signStyleColor[sunItem.saleInfoVo.signStatus]">
89 </div> 90 </div>
90 </template> 91 </template>
91 </el-popover> 92 </el-popover>
92 </div> 93 </div>
93 - <el-popover v-else :show-after="300" @after-enter="alterEnterHandler(sunItem.driverInfoVo.jobCode)"  
94 - placement="top" :title="childItem.lineName" popper-class="fleet-popover-style" :width="300"> 94 + <el-popover v-else :show-after="200" @after-enter="alterEnterHandler(sunItem.driverInfoVo.jobCode)"
  95 + placement="top" :title="childItem.lineName" popper-class="fleet-popover-style" :width="320">
95 <ConstForm :showFlag="personSignInfo.jobCode == sunItem.driverInfoVo.jobCode" 96 <ConstForm :showFlag="personSignInfo.jobCode == sunItem.driverInfoVo.jobCode"
96 - :jobCode="sunItem.driverInfoVo.jobCode" /> 97 + :currentDateKey="currentDateKey" :jobCode="sunItem.driverInfoVo.jobCode" />
97 <template #reference> 98 <template #reference>
98 <div class="fleet-nbbm-info-no-sale" :style="signStyleColor[sunItem.driverInfoVo.signStatus]"> 99 <div class="fleet-nbbm-info-no-sale" :style="signStyleColor[sunItem.driverInfoVo.signStatus]">
99 <span class="fleet-nbbm-info-no-sale-text"> 100 <span class="fleet-nbbm-info-no-sale-text">
@@ -127,6 +128,7 @@ import icon4 from &quot;../../assets/bigview/image-icon-3.png&quot;; @@ -127,6 +128,7 @@ import icon4 from &quot;../../assets/bigview/image-icon-3.png&quot;;
127 import icon5 from "../../assets/bigview/image-icon-4.png"; 128 import icon5 from "../../assets/bigview/image-icon-4.png";
128 import icon6 from "../../assets/bigview/image-icon-5.png"; 129 import icon6 from "../../assets/bigview/image-icon-5.png";
129 import icon1 from "../../assets/bigview/image-icon-6.png"; 130 import icon1 from "../../assets/bigview/image-icon-6.png";
  131 +const currentDateKey = ref();
130 const loading = ref(true); 132 const loading = ref(true);
131 /** 签到信息 */ 133 /** 签到信息 */
132 const personSignInfo = reactive( 134 const personSignInfo = reactive(
@@ -161,37 +163,43 @@ const globalInfoBoxList = reactive( @@ -161,37 +163,43 @@ const globalInfoBoxList = reactive(
161 title: "设备数", 163 title: "设备数",
162 icon: icon1, 164 icon: icon1,
163 startNumber: 0, 165 startNumber: 0,
164 - endNumber: 0 166 + endNumber: 0,
  167 + allNumber: 0
165 }, 168 },
166 { 169 {
167 title: "线路数", 170 title: "线路数",
168 icon: icon2, 171 icon: icon2,
169 startNumber: 0, 172 startNumber: 0,
170 - endNumber: 0 173 + endNumber: 0,
  174 + allNumber: 0
171 }, 175 },
172 { 176 {
173 title: "车辆数", 177 title: "车辆数",
174 icon: icon3, 178 icon: icon3,
175 startNumber: 0, 179 startNumber: 0,
176 - endNumber: 0 180 + endNumber: 0,
  181 + allNumber: 0
177 }, 182 },
178 { 183 {
179 title: "售票员签到", 184 title: "售票员签到",
180 icon: icon4, 185 icon: icon4,
181 startNumber: 0, 186 startNumber: 0,
182 - endNumber: 0 187 + endNumber: 0,
  188 + allNumber: 0
183 }, 189 },
184 { 190 {
185 title: "驾驶员签到", 191 title: "驾驶员签到",
186 icon: icon5, 192 icon: icon5,
187 startNumber: 0, 193 startNumber: 0,
188 - endNumber: 0 194 + endNumber: 0,
  195 + allNumber: 0
189 }, 196 },
190 { 197 {
191 title: "辅助人员签到", 198 title: "辅助人员签到",
192 icon: icon6, 199 icon: icon6,
193 startNumber: 0, 200 startNumber: 0,
194 - endNumber: 0 201 + endNumber: 0,
  202 + allNumber: 0
195 }, 203 },
196 ] 204 ]
197 ) 205 )
@@ -240,9 +248,20 @@ const fleetNbbmInfoContainer = ref(null); @@ -240,9 +248,20 @@ const fleetNbbmInfoContainer = ref(null);
240 const scrollNumber = ref(null); 248 const scrollNumber = ref(null);
241 // 计算宽度初始化数据 249 // 计算宽度初始化数据
242 onMounted(() => { 250 onMounted(() => {
243 - handleUpdateDataRequest(); 251 +
244 timeTask.titleNowDateTimer = startUpdateNowDateTimerTaskScheduler(); 252 timeTask.titleNowDateTimer = startUpdateNowDateTimerTaskScheduler();
245 timeTask.updateDateSchedulerTimer = startUpdateDataTaskScheduler(); 253 timeTask.updateDateSchedulerTimer = startUpdateDataTaskScheduler();
  254 +
  255 + const currentTime = moment().format('HH:mm');
  256 + let dateKey;
  257 + if (currentTime < '03:00') {
  258 + dateKey = moment().subtract(1, 'day').format('YYYY-MM-DD');
  259 + } else {
  260 + dateKey = moment().format("YYYY-MM-DD");
  261 + }
  262 + console.log();
  263 + currentDateKey.value = dateKey;
  264 + handleUpdateDataRequest(currentDateKey.value);
246 }) 265 })
247 266
248 /** 销毁之前触发 */ 267 /** 销毁之前触发 */
@@ -304,43 +323,42 @@ const alterEnterHandler = (val, el) =&gt; { @@ -304,43 +323,42 @@ const alterEnterHandler = (val, el) =&gt; {
304 323
305 /** 监听数据更新日期 */ 324 /** 监听数据更新日期 */
306 watch(timeTaskObject.updateDateObject, (val1, val2) => { 325 watch(timeTaskObject.updateDateObject, (val1, val2) => {
307 - // TODO 发送请求更新数据  
308 - handleUpdateDataRequest();  
309 - console.log("时间到了,需要更新数据---"); 326 + // 发送请求更新数据
  327 + handleUpdateDataRequest(currentDateKey.value);
310 }) 328 })
311 329
312 /** 330 /**
313 * 类型 device 设备数量 line 线路数 car 车辆数 331 * 类型 device 设备数量 line 线路数 car 车辆数
314 * sale 售票员签到数量 driver 驾驶员签到 auxiliary 辅助人员签到数量 332 * sale 售票员签到数量 driver 驾驶员签到 auxiliary 辅助人员签到数量
315 */ 333 */
316 -const handleUpdateDataRequest = () => { 334 +const handleUpdateDataRequest = (dateKey) => {
317 // 获取设备数量 335 // 获取设备数量
318 - querySignInfoByType("device").then(res => { 336 + querySignInfoByType({ type: "device", dateKey: dateKey }).then(res => {
319 handleGlobalInfo(res.data, 0) 337 handleGlobalInfo(res.data, 0)
320 }) 338 })
321 // 获取线路数 339 // 获取线路数
322 - querySignInfoByType("line").then(res => { 340 + querySignInfoByType({ type: "line", dateKey: dateKey }).then(res => {
323 handleGlobalInfo(res.data, 1) 341 handleGlobalInfo(res.data, 1)
324 }) 342 })
325 // 获取车辆数 343 // 获取车辆数
326 - querySignInfoByType("car").then(res => { 344 + querySignInfoByType({ type: "car", dateKey: dateKey }).then(res => {
327 handleGlobalInfo(res.data, 2) 345 handleGlobalInfo(res.data, 2)
328 }) 346 })
329 // 售票员签到 347 // 售票员签到
330 - querySignInfoByType("sale").then(res => { 348 + querySignInfoByType({ type: "sale", dateKey: dateKey }).then(res => {
331 handleGlobalInfo(res.data, 3) 349 handleGlobalInfo(res.data, 3)
332 }) 350 })
333 // 驾驶员签到 351 // 驾驶员签到
334 - querySignInfoByType("driver").then(res => { 352 + querySignInfoByType({ type: "driver", dateKey: dateKey }).then(res => {
335 handleGlobalInfo(res.data, 4) 353 handleGlobalInfo(res.data, 4)
336 }) 354 })
337 // 辅助人员签到 355 // 辅助人员签到
338 - querySignInfoByType("auxiliary").then(res => { 356 + querySignInfoByType({ type: "auxiliary", dateKey: dateKey }).then(res => {
339 handleGlobalInfo(res.data, 5) 357 handleGlobalInfo(res.data, 5)
340 }) 358 })
341 359
342 //获取车队 360 //获取车队
343 - queryLineInfo().then(res => { 361 + queryLineInfo(dateKey).then(res => {
344 fleetInfoList.value = res.data 362 fleetInfoList.value = res.data
345 nextTick(() => { 363 nextTick(() => {
346 const containerElement = fleetNbbmInfoContainer.value; 364 const containerElement = fleetNbbmInfoContainer.value;
@@ -373,7 +391,9 @@ const handleUpdateDataRequest = () =&gt; { @@ -373,7 +391,9 @@ const handleUpdateDataRequest = () =&gt; {
373 391
374 const handleGlobalInfo = (data, num) => { 392 const handleGlobalInfo = (data, num) => {
375 globalInfoBoxList[num].startNumber = globalInfoBoxList[num].endNumber; 393 globalInfoBoxList[num].startNumber = globalInfoBoxList[num].endNumber;
376 - globalInfoBoxList[num].endNumber = data; 394 + globalInfoBoxList[num].endNumber = data.nowNumber;
  395 + globalInfoBoxList[num].allNumber = data.allNumber;
  396 +
377 } 397 }
378 </script> 398 </script>
379 399
@@ -425,7 +445,7 @@ const handleGlobalInfo = (data, num) =&gt; { @@ -425,7 +445,7 @@ const handleGlobalInfo = (data, num) =&gt; {
425 display: flex; 445 display: flex;
426 align-items: center; 446 align-items: center;
427 justify-content: flex-end; 447 justify-content: flex-end;
428 - margin-top: 3%; 448 + margin-top: 2.9%;
429 box-sizing: border-box; 449 box-sizing: border-box;
430 } 450 }
431 } 451 }
@@ -434,9 +454,8 @@ const handleGlobalInfo = (data, num) =&gt; { @@ -434,9 +454,8 @@ const handleGlobalInfo = (data, num) =&gt; {
434 .big-view-container-global-info { 454 .big-view-container-global-info {
435 height: 11%; 455 height: 11%;
436 width: 100%; 456 width: 100%;
437 - font-size: clamp(0.3rem, -2.531rem + 19.69vw, 1.1rem); 457 + font-size: clamp(0.5rem, -2.531rem + 19.69vw, 1.3rem);
438 display: flex; 458 display: flex;
439 -  
440 justify-content: center; 459 justify-content: center;
441 align-items: center; 460 align-items: center;
442 461
@@ -462,8 +481,8 @@ const handleGlobalInfo = (data, num) =&gt; { @@ -462,8 +481,8 @@ const handleGlobalInfo = (data, num) =&gt; {
462 481
463 .global-info-box-container-left { 482 .global-info-box-container-left {
464 // icon 483 // icon
465 - flex-grow: 1;  
466 - width: 100%; 484 + // flex-grow: 1;
  485 + // width: 100%;
467 height: 100%; 486 height: 100%;
468 display: flex; 487 display: flex;
469 align-items: center; 488 align-items: center;
@@ -478,9 +497,8 @@ const handleGlobalInfo = (data, num) =&gt; { @@ -478,9 +497,8 @@ const handleGlobalInfo = (data, num) =&gt; {
478 } 497 }
479 498
480 .global-info-box-container-right { 499 .global-info-box-container-right {
481 - // icon  
482 - flex-grow: 1;  
483 - width: 100%; 500 + // flex-grow: 1;
  501 + // width: 100%;
484 height: clamp(4rem, 3.713rem + 2vw, 4.1rem); 502 height: clamp(4rem, 3.713rem + 2vw, 4.1rem);
485 display: flex; 503 display: flex;
486 flex-direction: column; 504 flex-direction: column;
@@ -567,7 +585,7 @@ const handleGlobalInfo = (data, num) =&gt; { @@ -567,7 +585,7 @@ const handleGlobalInfo = (data, num) =&gt; {
567 width: 100%; 585 width: 100%;
568 height: calc(85% - clamp(0.7rem, 0.489rem + 1.05vw, 1.2rem) * 3); 586 height: calc(85% - clamp(0.7rem, 0.489rem + 1.05vw, 1.2rem) * 3);
569 display: flex; 587 display: flex;
570 - font-size: clamp(0.6rem, -0.907rem + 5.71vw, 1.2rem); 588 + font-size: clamp(0.7rem, -0.907rem + 5.71vw, 1.1rem);
571 589
572 // 通用样式 590 // 通用样式
573 .fleet-common-style { 591 .fleet-common-style {
@@ -599,11 +617,12 @@ const handleGlobalInfo = (data, num) =&gt; { @@ -599,11 +617,12 @@ const handleGlobalInfo = (data, num) =&gt; {
599 display: flex; 617 display: flex;
600 justify-content: center; 618 justify-content: center;
601 align-items: center; 619 align-items: center;
  620 + font-size: clamp(0.8rem, -0.907rem + 5.71vw, 1.3rem);
602 } 621 }
603 } 622 }
604 623
605 .fleet-content-box { 624 .fleet-content-box {
606 - height: calc(100% - clamp(0.6rem, -0.907rem + 5.71vw, 1.2rem)); 625 + height: calc(100% - clamp(0.8rem, -0.907rem + 5.71vw, 1.3rem));
607 width: 100%; 626 width: 100%;
608 overflow-y: scroll; 627 overflow-y: scroll;
609 overflow-x: hidden; 628 overflow-x: hidden;
@@ -614,7 +633,8 @@ const handleGlobalInfo = (data, num) =&gt; { @@ -614,7 +633,8 @@ const handleGlobalInfo = (data, num) =&gt; {
614 height: auto; 633 height: auto;
615 634
616 .fleet-line-title { 635 .fleet-line-title {
617 - margin: clamp(0.8rem, -0.549rem + 4.09vw, 1.2rem) 0 clamp(0.8rem, -0.549rem + 4.09vw, 1.2rem) 0; 636 + margin-top: clamp(0.8rem, -0.549rem + 4.09vw, 1.2rem);
  637 + margin-bottom: calc(clamp(0.8rem, -0.549rem + 4.09vw, 1.2rem) - 0.4vw);
618 box-sizing: border-box; 638 box-sizing: border-box;
619 font-weight: bold; 639 font-weight: bold;
620 } 640 }
@@ -759,10 +779,6 @@ const handleGlobalInfo = (data, num) =&gt; { @@ -759,10 +779,6 @@ const handleGlobalInfo = (data, num) =&gt; {
759 .el-popover.fleet-popover-style { 779 .el-popover.fleet-popover-style {
760 border-color: #146EBD; 780 border-color: #146EBD;
761 background-color: #062a5ac5; 781 background-color: #062a5ac5;
762 - /* background:  
763 - -webkit-linear-gradient(top, transparent 14px, blue 15px),  
764 - -webkit-linear-gradient(left, transparent 14px, blue 15px);  
765 - background-size: 15px 15px; */  
766 } 782 }
767 783
768 .fleet-popover-style .el-popover__title { 784 .fleet-popover-style .el-popover__title {
@@ -771,7 +787,7 @@ const handleGlobalInfo = (data, num) =&gt; { @@ -771,7 +787,7 @@ const handleGlobalInfo = (data, num) =&gt; {
771 } 787 }
772 788
773 .el-popper[data-popper-placement^=top]>.el-popper__arrow::before { 789 .el-popper[data-popper-placement^=top]>.el-popper__arrow::before {
774 - border-top-color: #062B5A !important;  
775 - background-color: #062B5A !important; 790 + border-top-color: #062a5ac5 !important;
  791 + background-color: #062a5ac5 !important;
776 } 792 }
777 </style> 793 </style>
src/views/in/in/index.vue
@@ -43,7 +43,7 @@ @@ -43,7 +43,7 @@
43 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> 43 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
44 </el-row> 44 </el-row>
45 45
46 - <el-table v-loading="loading" :data="inList" row-key="id" @selection-change="handleSelectionChange"> 46 + <el-table height="600" v-loading="loading" :data="inList" row-key="id" @selection-change="handleSelectionChange">
47 <el-table-column type="selection" width="55" align="center" /><el-table-column label="序号" type="index" width="50" 47 <el-table-column type="selection" width="55" align="center" /><el-table-column label="序号" type="index" width="50"
48 align="center"> 48 align="center">
49 <template #default="scope"> 49 <template #default="scope">
src/views/login.vue
1 <template> 1 <template>
2 <div class="login"> 2 <div class="login">
3 <el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form"> 3 <el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form">
4 - <h3 class="title">酒精测试一体机管理系统</h3> 4 + <h3 class="title">青浦巴士岗前检测系统</h3>
5 <el-form-item prop="username"> 5 <el-form-item prop="username">
6 <el-input v-model="loginForm.username" type="text" size="large" auto-complete="off" placeholder="账号"> 6 <el-input v-model="loginForm.username" type="text" size="large" auto-complete="off" placeholder="账号">
7 <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template> 7 <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template>
src/views/register.vue
1 <template> 1 <template>
2 <div class="register"> 2 <div class="register">
3 <el-form ref="registerRef" :model="registerForm" :rules="registerRules" class="register-form"> 3 <el-form ref="registerRef" :model="registerForm" :rules="registerRules" class="register-form">
4 - <h3 class="title">酒精测试一体机管理系统</h3> 4 + <h3 class="title">青浦巴士岗前检测系统</h3>
5 <el-form-item prop="username"> 5 <el-form-item prop="username">
6 <el-input v-model="registerForm.username" type="text" size="large" auto-complete="off" placeholder="账号"> 6 <el-input v-model="registerForm.username" type="text" size="large" auto-complete="off" placeholder="账号">
7 <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template> 7 <template #prefix><svg-icon icon-class="user" class="el-input__icon input-icon" /></template>
src/views/report/error/index.vue
@@ -70,8 +70,8 @@ @@ -70,8 +70,8 @@
70 </el-dropdown-menu> 70 </el-dropdown-menu>
71 </template> 71 </template>
72 </el-dropdown> 72 </el-dropdown>
73 - <el-table v-loading="loading" row-key="id" :data="tableData" @selection-change="handleSelectionChange" border  
74 - default-expand-all> 73 + <el-table max-height="500" v-loading="loading" row-key="id" :data="tableData"
  74 + @selection-change="handleSelectionChange" border default-expand-all>
75 <el-table-column label="序号" fixed="left" type="index" width="60" align="center"> 75 <el-table-column label="序号" fixed="left" type="index" width="60" align="center">
76 <template #default="scope"> 76 <template #default="scope">
77 {{ (currentPage - 1) * size + scope.$index + 1 }} 77 {{ (currentPage - 1) * size + scope.$index + 1 }}
src/views/report/sign/index.vue
@@ -41,7 +41,7 @@ @@ -41,7 +41,7 @@
41 </div> 41 </div>
42 42
43 43
44 - <el-table v-loading="loading" :data="tableData" @selection-change="handleSelectionChange" border 44 + <el-table v-loading="loading" :data="tableData" @selection-change="handleSelectionChange" border max-height="600"
45 :default-expand-all="false" :row-class-name="tableRowClassName"> 45 :default-expand-all="false" :row-class-name="tableRowClassName">
46 <el-table-column label="序号" type="index" width="60" align="center"> 46 <el-table-column label="序号" type="index" width="60" align="center">
47 <template #default="scope"> 47 <template #default="scope">
src/views/scheduling/scheduling/index.vue
@@ -45,7 +45,7 @@ @@ -45,7 +45,7 @@
45 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> 45 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
46 </el-row> 46 </el-row>
47 47
48 - <el-table v-loading="loading" :data="schedulingList" border @selection-change="handleSelectionChange"> 48 + <el-table v-loading="loading" height="600" :data="schedulingList" border @selection-change="handleSelectionChange">
49 <el-table-column type="selection" width="55" align="center" /> 49 <el-table-column type="selection" width="55" align="center" />
50 <el-table-column label="规则名称" align="center" prop="ruleName" /> 50 <el-table-column label="规则名称" align="center" prop="ruleName" />
51 <el-table-column label="时间范围" align="center" prop="rangeTime" /> 51 <el-table-column label="时间范围" align="center" prop="rangeTime" />
src/views/schedulingAssociateNum/Attendance/index.vue
1 <template> 1 <template>
2 <div class="app-container"> 2 <div class="app-container">
3 -  
4 <el-row> 3 <el-row>
5 <el-col :span="7"> 4 <el-col :span="7">
6 <!-- 班次 --> 5 <!-- 班次 -->
src/views/schedulingAssociateNum/schedulingAssociateNum/index.vue
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar> 26 <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
27 </el-row> 27 </el-row>
28 28
29 - <el-table border v-loading="loading" height="650px" stripe :data="schedulingAssociateNumList" 29 + <el-table border v-loading="loading" max-height="650px" stripe :data="schedulingAssociateNumList"
30 @selection-change="handleSelectionChange"> 30 @selection-change="handleSelectionChange">
31 <el-table-column type="selection" width="55" align="center" /> 31 <el-table-column type="selection" width="55" align="center" />
32 <el-table-column label="班次类型" align="center" prop="ruleType"> 32 <el-table-column label="班次类型" align="center" prop="ruleType">