소스 검색

完成操作日志界面

hzj18279462576@163.com 3 년 전
부모
커밋
f32f3a380e

+ 7 - 5
package-lock.json

@@ -239,11 +239,6 @@
       "resolved": "https://registry.npmmirror.com/@liveqing/liveplayer-v3/-/liveplayer-v3-3.7.10.tgz",
       "resolved": "https://registry.npmmirror.com/@liveqing/liveplayer-v3/-/liveplayer-v3-3.7.10.tgz",
       "integrity": "sha512-ZfgEObnH/vZJHotBXY0qY4adXTUnqHtNFsSXB7GBZ/WjOxq13saLG5NgoHjdvHiRyuhNkVzOqHZT4UmQpswoww=="
       "integrity": "sha512-ZfgEObnH/vZJHotBXY0qY4adXTUnqHtNFsSXB7GBZ/WjOxq13saLG5NgoHjdvHiRyuhNkVzOqHZT4UmQpswoww=="
     },
     },
-    "@popperjs/core": {
-      "version": "npm:@sxzz/popperjs-es@2.11.7",
-      "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
-      "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
-    },
     "@types/lodash": {
     "@types/lodash": {
       "version": "4.14.191",
       "version": "4.14.191",
       "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.191.tgz",
       "resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.14.191.tgz",
@@ -516,6 +511,13 @@
         "lodash-unified": "^1.0.2",
         "lodash-unified": "^1.0.2",
         "memoize-one": "^6.0.0",
         "memoize-one": "^6.0.0",
         "normalize-wheel-es": "^1.2.0"
         "normalize-wheel-es": "^1.2.0"
+      },
+      "dependencies": {
+        "@popperjs/core": {
+          "version": "npm:@sxzz/popperjs-es@2.11.7",
+          "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
+          "integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
+        }
       }
       }
     },
     },
     "esbuild": {
     "esbuild": {

+ 6 - 1
src/App.vue

@@ -4,7 +4,12 @@ import { useRouter } from "vue-router";
 import { useStore } from "vuex";
 import { useStore } from "vuex";
 const store = useStore();
 const store = useStore();
 const router = useRouter();
 const router = useRouter();
-onBeforeMount(() => {});
+onBeforeMount(() => {
+  store.dispatch("pathSelect");
+  store.dispatch("busNum");
+  store.dispatch("newsAsync");
+  store.dispatch("sm_time");
+});
 </script>
 </script>
 
 
 <template>
 <template>

BIN
src/assets/log.png


BIN
src/assets/logA.png


+ 2 - 10
src/layout/index.vue

@@ -46,8 +46,7 @@ watch(
       store.commit("indexUp", 5);
       store.commit("indexUp", 5);
       sessionStorage.setItem("sidevarItem", 5);
       sessionStorage.setItem("sidevarItem", 5);
     }
     }
-
-    if (newValue == "/schoolBus/waiting") {
+    if (newValue == "/schoolBus/system") {
       store.commit("indexUp", 8);
       store.commit("indexUp", 8);
       sessionStorage.setItem("sidevarItem", 8);
       sessionStorage.setItem("sidevarItem", 8);
     }
     }
@@ -70,8 +69,7 @@ const tableData = reactive({
 });
 });
 onBeforeMount(async () => {
 onBeforeMount(async () => {
   api.value = store.state.user.api;
   api.value = store.state.user.api;
-  store.dispatch("pathSelect");
-  store.dispatch("busNum");
+
   // {
   // {
   //   let res = await axios({
   //   let res = await axios({
   //     method: "post",
   //     method: "post",
@@ -83,7 +81,6 @@ onBeforeMount(async () => {
   //   console.log(res, "系统配置");
   //   console.log(res, "系统配置");
   //   sessionStorage.setItem("waiting", JSON.stringify(res.data.data));
   //   sessionStorage.setItem("waiting", JSON.stringify(res.data.data));
   // }
   // }
-  store.dispatch("newsAsync");
 });
 });
 </script>
 </script>
 
 
@@ -149,11 +146,6 @@ onBeforeMount(async () => {
     .el-notification__title {
     .el-notification__title {
       color: red;
       color: red;
     }
     }
-    .el-notification__content {
-      p {
-        // color: red;
-      }
-    }
   }
   }
 }
 }
 </style>
 </style>

+ 4 - 4
src/layout/sidebar/Navbar.vue

@@ -408,10 +408,10 @@ onMounted(() => {
     .el-badge {
     .el-badge {
       display: flex;
       display: flex;
       align-items: center;
       align-items: center;
-      :deep(.el-badge__content) {
-        width: 2px;
-        height: 14px;
-      }
+      // :deep(.el-badge__content) {
+      //   width: 2px;
+      //   height: 14px;
+      // }
     }
     }
     .items-center {
     .items-center {
       margin-left: 20px;
       margin-left: 20px;

+ 22 - 2
src/layout/sidebar/SidevarItem.vue

@@ -37,7 +37,7 @@
       <el-menu-item :index="2">
       <el-menu-item :index="2">
         <img v-if="activeIndex == 2" src="@/assets/staffA.png" alt="" />
         <img v-if="activeIndex == 2" src="@/assets/staffA.png" alt="" />
         <img v-else src="@/assets/staff.png" alt="" />
         <img v-else src="@/assets/staff.png" alt="" />
-        <span>员管理</span>
+        <span>驾驶员管理</span>
       </el-menu-item>
       </el-menu-item>
       <el-menu-item :index="3">
       <el-menu-item :index="3">
         <img v-if="activeIndex == 3" src="@/assets/accountA.png" alt="" />
         <img v-if="activeIndex == 3" src="@/assets/accountA.png" alt="" />
@@ -64,6 +64,21 @@
         <img v-else src="@/assets/blacklist.png" alt="" />
         <img v-else src="@/assets/blacklist.png" alt="" />
         <span>黑名单管理</span>
         <span>黑名单管理</span>
       </el-menu-item>
       </el-menu-item>
+      <el-menu-item :index="10">
+        <img
+          v-if="activeIndex == 10"
+          src="@/assets/logA.png"
+          alt=""
+          style="width: 21px; height: 21px; margin: 0 20px"
+        />
+        <img
+          v-else
+          src="@/assets/log.png"
+          alt=""
+          style="width: 21px; height: 21px; margin: 0 20px"
+        />
+        <span>操作日志</span>
+      </el-menu-item>
       <el-menu-item :index="8">
       <el-menu-item :index="8">
         <img
         <img
           v-if="activeIndex == 8"
           v-if="activeIndex == 8"
@@ -148,7 +163,7 @@ const handleSelect = (key) => {
   }
   }
   if (activeIndex.value == 8) {
   if (activeIndex.value == 8) {
     router.push({
     router.push({
-      path: `/schoolBus/waiting`,
+      path: `/schoolBus/system`,
     });
     });
   }
   }
   if (activeIndex.value == 7) {
   if (activeIndex.value == 7) {
@@ -161,6 +176,11 @@ const handleSelect = (key) => {
       path: `/schoolBus/busquery`,
       path: `/schoolBus/busquery`,
     });
     });
   }
   }
+  if (activeIndex.value == 10) {
+    router.push({
+      path: `/schoolBus/log`,
+    });
+  }
   if (activeIndex.value == 0) {
   if (activeIndex.value == 0) {
     router.push({
     router.push({
       path: `/schoolBus/news`,
       path: `/schoolBus/news`,

+ 80 - 71
src/router/index.js

@@ -1,85 +1,94 @@
-import { createRouter, createWebHistory, createWebHashHistory } from "vue-router";
+import {
+  createRouter,
+  createWebHistory,
+  createWebHashHistory,
+} from "vue-router";
 import Layout from "@/layout/index.vue";
 import Layout from "@/layout/index.vue";
 const router = createRouter({
 const router = createRouter({
-    history: createWebHashHistory("/carstop/dist6"),
-    routes: [
+  history: createWebHashHistory("/carstop/dist6"), // 线上地址
+  //   history: createWebHashHistory("/testingServertomcat/dist6"), // 测试环境发布地址
+  routes: [
+    {
+      path: "/login",
+      component: () => import("@/views/login/index.vue"),
+    },
+    {
+      path: "/",
+      redirect: "/login",
+    },
+    {
+      path: "/schoolBus",
+      component: Layout,
+      children: [
         {
         {
-            path: "/login",
-            component: () => import("@/views/login/index.vue"),
+          path: "news",
+          component: () => import("@/views/news/news.vue"),
+          meta: { title: "Dashboard", icon: "dashboard" },
         },
         },
         {
         {
-            path: "/",
-            redirect: "/login",
+          path: "statement",
+          component: () => import("@/views/statement/statement.vue"),
+          meta: { title: "Dashboard", icon: "dashboard" },
         },
         },
         {
         {
-            path: "/schoolBus",
-            component: Layout,
-            children: [
-                {
-                    path: "news",
-                    component: () => import("@/views/news/news.vue"),
-                    meta: { title: "Dashboard", icon: "dashboard" },
-                },
-                {
-                    path: "statement",
-                    component: () => import("@/views/statement/statement.vue"),
-                    meta: { title: "Dashboard", icon: "dashboard" },
-                },
-                {
-                    path: "staff",
-                    component: () => import("@/views/staff/staff.vue"),
-                    meta: { title: "Dashboard", icon: "dashboard" },
-                },
-                {
-                    path: "account",
-                    component: () => import("@/views/account/account.vue"),
-                    meta: { title: "Dashboard", icon: "dashboard" },
-                },
-                {
-                    path: "bus",
-                    component: () => import("@/views/bus/bus.vue"),
-                    meta: { title: "Dashboard", icon: "dashboard" },
-                },
-                {
-                    path: "classes",
-                    component: () => import("@/views/classes/classes.vue"),
-                    meta: { title: "Dashboard", icon: "dashboard" },
-                },
-                {
-                    path: "buspath",
-                    component: () => import("@/views/buspath/buspath.vue"),
-                    meta: { title: "Dashboard", icon: "dashboard" },
-                },
-                {
-                    path: "blacklist",
-                    component: () => import("@/views/blacklist/blacklist.vue"),
-                    meta: { title: "Dashboard", icon: "dashboard" },
-                },
-                {
-                    path: "waiting",
-                    component: () => import("@/views/waiting/waiting.vue"),
-                    meta: { title: "Dashboard", icon: "dashboard" },
-                },
-                {
-                    path: "busquery",
-                    component: () => import("@/views/busquery/busquery.vue"),
-                    meta: { title: "Dashboard", icon: "dashboard" },
-                },
-            ],
+          path: "staff",
+          component: () => import("@/views/staff/staff.vue"),
+          meta: { title: "Dashboard", icon: "dashboard" },
         },
         },
-        
-    ],
+        {
+          path: "account",
+          component: () => import("@/views/account/account.vue"),
+          meta: { title: "Dashboard", icon: "dashboard" },
+        },
+        {
+          path: "bus",
+          component: () => import("@/views/bus/bus.vue"),
+          meta: { title: "Dashboard", icon: "dashboard" },
+        },
+        {
+          path: "classes",
+          component: () => import("@/views/classes/classes.vue"),
+          meta: { title: "Dashboard", icon: "dashboard" },
+        },
+        {
+          path: "buspath",
+          component: () => import("@/views/buspath/buspath.vue"),
+          meta: { title: "Dashboard", icon: "dashboard" },
+        },
+        {
+          path: "blacklist",
+          component: () => import("@/views/blacklist/blacklist.vue"),
+          meta: { title: "Dashboard", icon: "dashboard" },
+        },
+        {
+          path: "system",
+          component: () => import("@/views/waiting/waiting.vue"),
+          meta: { title: "Dashboard", icon: "dashboard" },
+        },
+        {
+          path: "busquery",
+          component: () => import("@/views/busquery/busquery.vue"),
+          meta: { title: "Dashboard", icon: "dashboard" },
+        },
+        {
+          path: "log",
+          component: () => import("@/views/log/log.vue"),
+          meta: { title: "Dashboard", icon: "dashboard" },
+        },
+      ],
+    },
+  ],
 });
 });
 export default router;
 export default router;
 router.beforeEach((to, from, next) => {
 router.beforeEach((to, from, next) => {
-    // 判断 如果cook是否存在,可以进去
-    if (sessionStorage.getItem("token")) {
-        next(); //放行
+  // 判断 如果cook是否存在,可以进去
+  if (sessionStorage.getItem("token")) {
+    next(); //放行
+  } else {
+    if (to.path == "/login") {
+      next();
     } else {
     } else {
-        if (to.path == "/login") {
-            next();
-        } else {
-            next(`/login`);
-        }
+      next(`/login`);
     }
     }
+  }
 });
 });

+ 27 - 8
src/store/modules/user.js

@@ -8,7 +8,8 @@ const state = {
   activeIndex: 9,
   activeIndex: 9,
   username: "",
   username: "",
   password: "",
   password: "",
-  api: "/carstop/carbook",
+  api: "/carstop/carbook", // 线上
+  // api: "/testingServertomcat/carbook",  // 测试
   newsNum: "",
   newsNum: "",
 };
 };
 
 
@@ -39,21 +40,21 @@ const actions = {
   },
   },
   newsAsync: async ({ commit, state }) => {
   newsAsync: async ({ commit, state }) => {
     let data = new FormData();
     let data = new FormData();
-    data.set("state", 0);
-    data.set("page", 1);
-    data.set("rows", 1000000); //前面的key记得对应!
     let res = await axios({
     let res = await axios({
       method: "post",
       method: "post",
-      url: state.api + "/carBook/userqueryMes.action",
+      url: state.api + "/carBook/usermesUnRead.action",
       headers: {
       headers: {
         token: sessionStorage.getItem("token"),
         token: sessionStorage.getItem("token"),
       },
       },
       data: data,
       data: data,
     });
     });
-    commit("newsUp", res.data.total);
-    sessionStorage.setItem("newsNum", res.data.total);
-    console.log("vuex", res.data.total);
+    console.log(res, "系统消息");
+
+    commit("newsUp", res.data.u_count);
+    sessionStorage.setItem("newsNum", res.data.u_count);
+    console.log("vuex", res.data.u_count);
   },
   },
+  // 车辆管理
   busNum: async ({ commit, state }) => {
   busNum: async ({ commit, state }) => {
     let data = new FormData();
     let data = new FormData();
     // let res = await adminApi.adminLogin(data);
     // let res = await adminApi.adminLogin(data);
@@ -82,6 +83,7 @@ const actions = {
       // }
       // }
     }
     }
   },
   },
+  // 路线管理
   pathSelect: async ({ commit, state }) => {
   pathSelect: async ({ commit, state }) => {
     let data = new FormData();
     let data = new FormData();
     let res = await axios({
     let res = await axios({
@@ -121,6 +123,23 @@ const actions = {
       });
       });
     }
     }
   },
   },
+  // 系统扫码时间
+  sm_time: async ({ commit, state }) => {
+    let res = await axios({
+      method: "post",
+      url: state.api + "/carBook/cnqueryHb.action",
+      headers: {
+        token: sessionStorage.getItem("token"),
+      },
+    });
+    console.log(res.data, "系统扫码时间");
+
+    if (res.data.code == 200) {
+      sessionStorage.setItem("sm_start", res.data.data.sm_start);
+      sessionStorage.setItem("sm_end", res.data.data.sm_end);
+      sessionStorage.setItem("yy_end", res.data.data.yy_end);
+    }
+  },
 };
 };
 
 
 export default {
 export default {

+ 14 - 2
src/views/account/account.vue

@@ -93,8 +93,8 @@
             <el-button link type="primary" @click="edit(scope.row)"
             <el-button link type="primary" @click="edit(scope.row)"
               ><div class="look">编辑</div></el-button
               ><div class="look">编辑</div></el-button
             >
             >
-            <el-button link type="primary" @click="del(scope.row)"
-              ><div class="look">删除</div></el-button
+            <el-button link type="danger" @click="del(scope.row)"
+              ><div class="looks">删除</div></el-button
             >
             >
           </template>
           </template>
         </el-table-column>
         </el-table-column>
@@ -596,6 +596,9 @@ onUnmounted(() => {
         display: flex;
         display: flex;
         align-items: center;
         align-items: center;
         margin: 10px 30px 10px 0;
         margin: 10px 30px 10px 0;
+        :deep(.el-input .el-input__inner) {
+          font-size: 16px;
+        }
         span {
         span {
           margin: 0 10px 0 0;
           margin: 0 10px 0 0;
         }
         }
@@ -640,9 +643,13 @@ onUnmounted(() => {
       height: 100%;
       height: 100%;
       :deep(.el-table__header-wrapper) {
       :deep(.el-table__header-wrapper) {
         background-color: #000;
         background-color: #000;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row) {
       :deep(.el-table__row) {
         height: 50px;
         height: 50px;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row td) {
       :deep(.el-table__row td) {
         padding: 0;
         padding: 0;
@@ -663,6 +670,11 @@ onUnmounted(() => {
         border-radius: 45px;
         border-radius: 45px;
         border: 0.74px solid rgba(30, 125, 251, 1);
         border: 0.74px solid rgba(30, 125, 251, 1);
       }
       }
+      :deep(.looks) {
+        padding: 5px 10px;
+        border-radius: 45px;
+        border: 0.74px solid #f56c6c;
+      }
     }
     }
 
 
     // 添加员工弹窗样式
     // 添加员工弹窗样式

+ 7 - 0
src/views/blacklist/blacklist.vue

@@ -575,6 +575,9 @@ onUnmounted(() => {
         display: flex;
         display: flex;
         align-items: center;
         align-items: center;
         margin: 10px 30px 10px 0;
         margin: 10px 30px 10px 0;
+        :deep(.el-input .el-input__inner) {
+          font-size: 16px;
+        }
         span {
         span {
           margin: 0 10px 0 0;
           margin: 0 10px 0 0;
         }
         }
@@ -619,9 +622,13 @@ onUnmounted(() => {
       height: 100%;
       height: 100%;
       :deep(.el-table__header-wrapper) {
       :deep(.el-table__header-wrapper) {
         background-color: #000;
         background-color: #000;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row) {
       :deep(.el-table__row) {
         height: 50px;
         height: 50px;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row td) {
       :deep(.el-table__row td) {
         padding: 0;
         padding: 0;

+ 14 - 2
src/views/bus/bus.vue

@@ -98,8 +98,8 @@
             <el-button link type="primary" @click="edit(scope.row)"
             <el-button link type="primary" @click="edit(scope.row)"
               ><div class="look">编辑</div></el-button
               ><div class="look">编辑</div></el-button
             >
             >
-            <el-button link type="primary" @click="del(scope.row)"
-              ><div class="look">删除</div></el-button
+            <el-button link type="danger" @click="del(scope.row)"
+              ><div class="looks">删除</div></el-button
             >
             >
           </template>
           </template>
         </el-table-column>
         </el-table-column>
@@ -587,6 +587,9 @@ onUnmounted(() => {
         display: flex;
         display: flex;
         align-items: center;
         align-items: center;
         margin: 10px 30px 10px 0;
         margin: 10px 30px 10px 0;
+        :deep(.el-input .el-input__inner) {
+          font-size: 16px;
+        }
         span {
         span {
           margin: 0 10px 0 0;
           margin: 0 10px 0 0;
         }
         }
@@ -631,9 +634,13 @@ onUnmounted(() => {
       height: 100%;
       height: 100%;
       :deep(.el-table__header-wrapper) {
       :deep(.el-table__header-wrapper) {
         background-color: #000;
         background-color: #000;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row) {
       :deep(.el-table__row) {
         height: 50px;
         height: 50px;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row td) {
       :deep(.el-table__row td) {
         padding: 0;
         padding: 0;
@@ -654,6 +661,11 @@ onUnmounted(() => {
         border-radius: 45px;
         border-radius: 45px;
         border: 0.74px solid rgba(30, 125, 251, 1);
         border: 0.74px solid rgba(30, 125, 251, 1);
       }
       }
+      :deep(.looks) {
+        padding: 5px 10px;
+        border-radius: 45px;
+        border: 0.74px solid #f56c6c;
+      }
     }
     }
 
 
     // 添加员工弹窗样式
     // 添加员工弹窗样式

+ 28 - 9
src/views/buspath/buspath.vue

@@ -19,11 +19,18 @@
           <el-table
           <el-table
             :data="pathNum.list"
             :data="pathNum.list"
             @selection-change="handleSelectionChange"
             @selection-change="handleSelectionChange"
-            style="width: 100%; --el-table-border-color: none"
+            style="
+              width: 100%;
+              --el-table-border-color: none;
+              font-size: 16px;
+              color: #000;
+            "
             height="138"
             height="138"
             :header-cell-style="{
             :header-cell-style="{
               height: '40px',
               height: '40px',
               border: 0,
               border: 0,
+              fontSize: '16px',
+              color: '#000',
             }"
             }"
           >
           >
             <el-table-column
             <el-table-column
@@ -120,7 +127,7 @@
     </div>
     </div>
     <div class="gongneng">
     <div class="gongneng">
       <el-button type="primary" color="rgba(61, 81, 232, 1)" @click="addlist"
       <el-button type="primary" color="rgba(61, 81, 232, 1)" @click="addlist"
-        ><el-icon><CirclePlus /></el-icon><span>新增点</span></el-button
+        ><el-icon><CirclePlus /></el-icon><span>新增点</span></el-button
       >
       >
     </div>
     </div>
     <!-- 站点管理 -->
     <!-- 站点管理 -->
@@ -139,7 +146,7 @@
       >
       >
         <!-- <el-table-column align="center" type="selection" width="80" /> -->
         <!-- <el-table-column align="center" type="selection" width="80" /> -->
         <el-table-column align="center" prop="route" label="路线名称" />
         <el-table-column align="center" prop="route" label="路线名称" />
-        <el-table-column align="center" prop="route_end" label="路线终点" />
+        <el-table-column align="center" prop="route_end" label="点" />
         <el-table-column align="center" prop="create_time" label="创建时间" />
         <el-table-column align="center" prop="create_time" label="创建时间" />
 
 
         <el-table-column align="center" label="操作" width="220">
         <el-table-column align="center" label="操作" width="220">
@@ -147,8 +154,8 @@
             <el-button link type="primary" @click="edit(scope.row)"
             <el-button link type="primary" @click="edit(scope.row)"
               ><div class="look">编辑</div></el-button
               ><div class="look">编辑</div></el-button
             >
             >
-            <el-button link type="primary" @click="del(scope.row)"
-              ><div class="look">删除</div></el-button
+            <el-button link type="danger" @click="del(scope.row)"
+              ><div class="looks">删除</div></el-button
             >
             >
           </template>
           </template>
         </el-table-column>
         </el-table-column>
@@ -251,7 +258,7 @@ const tableData = reactive({
   list: [],
   list: [],
 });
 });
 const activeIndex = ref(); // 默认跳转路由
 const activeIndex = ref(); // 默认跳转路由
-const dialongTitle = ref("新增路线"); // 弹窗标题
+const dialongTitle = ref("新增站点"); // 弹窗标题
 
 
 const searchInput = reactive({
 const searchInput = reactive({
   carnumber: "",
   carnumber: "",
@@ -461,19 +468,20 @@ const searchBtn = lodash.debounce(async () => {
 
 
 // 添加车次
 // 添加车次
 const addlist = () => {
 const addlist = () => {
-  dialongTitle.value = "新增路线";
+  dialongTitle.value = "新增站点";
   addDialogVisible.value = true;
   addDialogVisible.value = true;
   ruleForm.route = [];
   ruleForm.route = [];
   ruleForm.route_end = "";
   ruleForm.route_end = "";
 };
 };
 //编辑按钮
 //编辑按钮
 const edit = (row) => {
 const edit = (row) => {
-  dialongTitle.value = "编辑路线";
+  dialongTitle.value = "编辑站点";
   addDialogVisible.value = true;
   addDialogVisible.value = true;
   ruleForm.route = row.route;
   ruleForm.route = row.route;
   ruleForm.route_end = row.route_end;
   ruleForm.route_end = row.route_end;
   ruleForm.id = row.id;
   ruleForm.id = row.id;
   ruleForm.is_repair = row.is_repair;
   ruleForm.is_repair = row.is_repair;
+  ruleForm.repair_end = row.repair_end;
 };
 };
 // 取消添加车次
 // 取消添加车次
 const cancelAdd = () => {
 const cancelAdd = () => {
@@ -491,10 +499,11 @@ const submitAdd = async (formEl) => {
   if (!formEl) return;
   if (!formEl) return;
   await formEl.validate(async (valid, fields) => {
   await formEl.validate(async (valid, fields) => {
     if (valid) {
     if (valid) {
-      if (dialongTitle.value == "新增路线") {
+      if (dialongTitle.value == "新增站点") {
         let data = {
         let data = {
           route: ruleForm.route,
           route: ruleForm.route,
           route_end: ruleForm.route_end,
           route_end: ruleForm.route_end,
+          // repair_end: ruleForm.repair_end,
         };
         };
         // let res = await admin.adminAdd(data);
         // let res = await admin.adminAdd(data);
         let res = await axios({
         let res = await axios({
@@ -532,6 +541,7 @@ const submitAdd = async (formEl) => {
           route_end: ruleForm.route_end,
           route_end: ruleForm.route_end,
           id: ruleForm.id,
           id: ruleForm.id,
           is_repair: ruleForm.is_repair,
           is_repair: ruleForm.is_repair,
+          repair_end: ruleForm.repair_end,
         };
         };
         // let res = await admin.adminAdd(data);
         // let res = await admin.adminAdd(data);
         let res = await axios({
         let res = await axios({
@@ -783,9 +793,13 @@ onUnmounted(() => {
       height: 100%;
       height: 100%;
       :deep(.el-table__header-wrapper) {
       :deep(.el-table__header-wrapper) {
         background-color: #000;
         background-color: #000;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row) {
       :deep(.el-table__row) {
         height: 45px;
         height: 45px;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row td) {
       :deep(.el-table__row td) {
         padding: 0;
         padding: 0;
@@ -806,6 +820,11 @@ onUnmounted(() => {
         border-radius: 45px;
         border-radius: 45px;
         border: 0.74px solid rgba(30, 125, 251, 1);
         border: 0.74px solid rgba(30, 125, 251, 1);
       }
       }
+      :deep(.looks) {
+        padding: 5px 10px;
+        border-radius: 45px;
+        border: 0.74px solid #f56c6c;
+      }
     }
     }
 
 
     // 添加员工弹窗样式
     // 添加员工弹窗样式

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 709 - 103
src/views/busquery/busquery.vue


+ 16 - 4
src/views/classes/classes.vue

@@ -104,8 +104,8 @@
             <el-button link type="primary" @click="edit(scope.row)"
             <el-button link type="primary" @click="edit(scope.row)"
               ><div class="look">编辑</div></el-button
               ><div class="look">编辑</div></el-button
             >
             >
-            <el-button link type="primary" @click="del(scope.row)"
-              ><div class="look">删除</div></el-button
+            <el-button link type="danger" @click="del(scope.row)"
+              ><div class="looks">删除</div></el-button
             >
             >
           </template>
           </template>
         </el-table-column>
         </el-table-column>
@@ -418,8 +418,8 @@
             <el-button link type="primary" @click="busedit(scope.row)"
             <el-button link type="primary" @click="busedit(scope.row)"
               ><div class="look">编辑</div></el-button
               ><div class="look">编辑</div></el-button
             >
             >
-            <el-button link type="primary" @click="busdel(scope.row)"
-              ><div class="look">删除</div></el-button
+            <el-button link type="danger" @click="busdel(scope.row)"
+              ><div class="looks">删除</div></el-button
             >
             >
           </template>
           </template>
         </el-table-column>
         </el-table-column>
@@ -1610,6 +1610,9 @@ onUnmounted(() => {});
         display: flex;
         display: flex;
         align-items: center;
         align-items: center;
         margin: 10px 30px 10px 0;
         margin: 10px 30px 10px 0;
+        :deep(.el-input .el-input__inner) {
+          font-size: 16px;
+        }
         span {
         span {
           margin: 0 10px 0 0;
           margin: 0 10px 0 0;
         }
         }
@@ -1654,9 +1657,13 @@ onUnmounted(() => {});
       height: 100%;
       height: 100%;
       :deep(.el-table__header-wrapper) {
       :deep(.el-table__header-wrapper) {
         background-color: #000;
         background-color: #000;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row) {
       :deep(.el-table__row) {
         height: 50px;
         height: 50px;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row td) {
       :deep(.el-table__row td) {
         padding: 0;
         padding: 0;
@@ -1677,6 +1684,11 @@ onUnmounted(() => {});
         border-radius: 45px;
         border-radius: 45px;
         border: 0.74px solid rgba(30, 125, 251, 1);
         border: 0.74px solid rgba(30, 125, 251, 1);
       }
       }
+      :deep(.looks) {
+        padding: 5px 10px;
+        border-radius: 45px;
+        border: 0.74px solid #f56c6c;
+      }
     }
     }
     // 车次编辑弹窗样式
     // 车次编辑弹窗样式
     :deep(.busAdd) {
     :deep(.busAdd) {

+ 619 - 0
src/views/log/log.vue

@@ -0,0 +1,619 @@
+<template>
+  <div class="content-box">
+    <div class="left">
+      <!-- <el-icon :size="23" class="camera"><UserFilled /></el-icon> -->
+      <span class="cameratxt">操作日志</span>
+    </div>
+
+    <div class="MingXi" style="height: 652px; margin: 10px 0 20px 0">
+      <div class="filter">
+        <div class="condition">
+          <span>操作日期 : </span>
+          <el-date-picker
+            type="date"
+            placeholder="请选择日期"
+            format="YYYY-MM-DD"
+            value-format="YYYY-MM-DD"
+            v-model="searchInput.create_time"
+          />
+        </div>
+
+        <div class="condition">
+          <span>车牌号 : </span>
+          <el-select
+            v-model="searchInput.car_number"
+            class="m-2"
+            placeholder="请选择车牌号"
+            :clearable="true"
+          >
+            <el-option
+              v-for="item in busNum.list"
+              :label="item.car_number"
+              :value="item.car_number"
+            />
+          </el-select>
+        </div>
+        <!-- <div class="condition">
+            <span>发车日期 : </span>
+          
+            <el-date-picker
+              type="date"
+              placeholder="请选择日期"
+              format="YYYY-MM-DD"
+              value-format="YYYY-MM-DD"
+              v-model="searchInput.s_date"
+            />
+          </div> -->
+        <el-button
+          style="margin-left: 20px"
+          color="rgba(61, 81, 232, 1)"
+          type="primary"
+          class="search"
+          @click="search"
+          ><el-icon><Search /></el-icon><span>搜索</span></el-button
+        >
+        <el-button
+          style="margin-left: 20px"
+          color="rgba(61, 81, 232, 1)"
+          type="primary"
+          class="search"
+          @click="resetSearch"
+          ><el-icon><Search /></el-icon><span>重置</span></el-button
+        >
+      </div>
+      <div class="footer">
+        <el-table
+          :row-class-name="tableRowClassName"
+          :data="tableData.list"
+          style="width: 100%; height: 580px"
+          :header-cell-style="{
+            background: 'rgba(240, 243, 247, 1)',
+            border: 0,
+          }"
+        >
+          <el-table-column
+            width="280"
+            align="center"
+            prop="create_time"
+            label="操作日期"
+          />
+          <el-table-column
+            align="center"
+            width="100"
+            prop="admin_name"
+            label="操作账号"
+          />
+          <el-table-column
+            align="center"
+            width="150"
+            prop="car_number"
+            label="车牌"
+          />
+          <el-table-column align="center" prop="record1" label="操作详情" />
+        </el-table>
+      </div>
+    </div>
+
+    <!-- 分页数据 -->
+    <el-pagination
+      background
+      :current-page="currentPage"
+      :page-size="pageSize"
+      layout="total, prev, pager, next, jumper, slot"
+      :total="total"
+      @update:current-page="handleCurrentChange"
+    />
+  </div>
+</template>
+
+<script setup>
+import { ref, reactive, watch, onBeforeMount, onMounted } from "vue";
+import { useRouter } from "vue-router";
+import { Select, Pointer, Upload } from "@element-plus/icons-vue";
+import { JSEncrypt } from "jsencrypt"; // 加密密码
+import { ElMessage, ElMessageBox } from "element-plus";
+import { dayjs } from "element-plus";
+import axios from "axios";
+import lodash from "lodash";
+import adminApi from "@/api/admin.js";
+import { useStore } from "vuex";
+const store = useStore();
+const router = useRouter();
+const api = ref("");
+// 搜索框数据
+const searchInput = reactive({
+  startTime: "",
+  car_number: "",
+});
+
+const busNum = reactive({ list: [] }); // 车牌号
+
+// 表格数据
+const tableData = reactive({
+  list: [], //汇总数据
+});
+
+const pageSize = ref(10);
+const currentPage = ref(1); // 当前页
+const total = ref(10); // 当前总数
+
+// 获取数据列表
+const getList = async () => {
+  {
+    let data = new FormData();
+    let time = dayjs().format("YYYY-MM-DD");
+    console.log(searchInput.car_number);
+    console.log(searchInput.create_time == null);
+
+    if (searchInput.car_number) {
+      data.set("car_number", searchInput.car_number);
+    }
+    if (
+      typeof searchInput.create_time == "undefined" ||
+      searchInput.create_time == null
+    ) {
+      data.set("create_time", "");
+    } else {
+      data.set("create_time", searchInput.create_time);
+    }
+    data.set("page", currentPage.value);
+    data.set("rows", pageSize.value);
+    let res = await axios({
+      method: "post",
+      url: api.value + "/carBook/logslist.action",
+      headers: {
+        token: sessionStorage.getItem("token"),
+      },
+      data: data,
+    });
+    console.log(res, "操作日志");
+    if (res.status == 200) {
+      tableData.list = res.data.rows;
+      // currentPage.value = res.data.currentPage;
+      total.value = res.data.total;
+    } else {
+      tableData.list = res.data.rows;
+      currentPage.value = 1;
+      total.value = res.data.total;
+      ElMessage({
+        type: "error",
+        showClose: true,
+        message: res.data.message,
+        center: true,
+      });
+      if (res.data.message == "token错误") {
+        router.push({
+          path: `/login`,
+        });
+      }
+    }
+  }
+};
+
+// 搜索按钮
+const search = lodash.debounce(() => {
+  getList();
+}, 300);
+// 重置搜索框
+const resetSearch = lodash.debounce(() => {
+  searchInput.create_time = "";
+  searchInput.car_number = "";
+  getList();
+}, 300);
+
+// 表格斑马纹颜色修改
+const tableRowClassName = ({ row, rowIndex }) => {
+  if (rowIndex % 2 === 0) {
+    return "even";
+  } else if (rowIndex % 2 !== 0) {
+    return "odd";
+  }
+  return "";
+};
+// 分页
+const handleCurrentChange = (value) => {
+  currentPage.value = value;
+  getList();
+};
+
+onMounted(() => {
+  api.value = store.state.user.api;
+  busNum.list = JSON.parse(sessionStorage.getItem("busSelect"));
+
+  getList();
+});
+</script>
+
+<style scoped lang="scss">
+.content-box {
+  width: 97.5%;
+  height: 89%;
+  margin: 20px auto;
+  background-color: #fff;
+  color: #fff;
+  display: flex;
+  flex-direction: column;
+
+  .left {
+    width: calc(100wh - 40px);
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    height: 60px;
+    margin: 0 30px;
+    // padding: 10px 0;
+    border-bottom: 1px solid #ccc;
+    color: #000;
+    font-size: 18px;
+    font-weight: 600;
+    .camera {
+      margin-right: 15px;
+      color: #4392f7;
+    }
+  }
+  .MingXi {
+    .filter {
+      display: flex;
+      flex-wrap: wrap;
+      align-items: center;
+
+      //   width: 100%;
+      .condition {
+        display: flex;
+        align-items: center;
+        margin: 15px 30px 10px 30px;
+        color: #000;
+        :deep(.el-input .el-input__inner) {
+          font-size: 16px;
+        }
+        span {
+          margin: 0 10px 0 0;
+        }
+      }
+    }
+  }
+  :deep(.sendBus) {
+    //   height: 420px;
+    border-radius: 11px;
+    .el-dialog__header {
+      border-radius: 11px 11px 0 0;
+      background: rgba(237, 241, 245, 1);
+      font-weight: 600;
+      margin: 0;
+      .el-dialog__headerbtn {
+        outline: none;
+      }
+    }
+    .el-dialog__body {
+      padding: 30px 20px 10px 20px;
+      .el-form-item--feedback {
+        .el-input__validateIcon {
+          color: rgba(61, 81, 232, 1);
+        }
+      }
+      .el-form-item.is-error .el-input__validateIcon {
+        color: red;
+      }
+      .el-input {
+        width: 200px;
+      }
+
+      .options {
+        margin-left: 200px;
+      }
+    }
+  }
+
+  :deep(.mergeBus) {
+    //   height: 420px;
+    border-radius: 11px;
+    /* 去掉全选按钮 */
+
+    .el-dialog__header {
+      border-radius: 11px 11px 0 0;
+      background: rgba(237, 241, 245, 1);
+      font-weight: 600;
+      margin: 0;
+
+      .el-dialog__headerbtn {
+        outline: none;
+      }
+    }
+    .el-dialog__body {
+      padding: 30px 20px 10px 20px;
+      .el-table__header {
+        font-size: 17px;
+      }
+      .el-table__body-wrapper {
+        .el-table__row {
+          height: 48px;
+          font-size: 17px;
+          color: #000;
+          td {
+            padding: 0;
+          }
+        }
+      }
+
+      .el-table__inner-wrapper::before {
+        height: 0;
+      }
+      .el-table__inner-wrapper {
+        .el-table__header-wrapper {
+          .el-table__header {
+            .disabledsele .cell .el-checkbox__inner {
+              display: none !important;
+            }
+            .disabledsele .cell::before {
+              content: "操作";
+              text-align: center;
+              line-height: 37px;
+            }
+          }
+        }
+      }
+
+      .el-form-item--feedback {
+        .el-input__validateIcon {
+          color: rgba(61, 81, 232, 1);
+        }
+      }
+      .el-form-item.is-error .el-input__validateIcon {
+        color: red;
+      }
+      .el-input {
+        width: 200px;
+      }
+
+      .options {
+        margin-left: 200px;
+      }
+    }
+
+    .btn {
+      width: 100%;
+      height: 40px;
+      margin-bottom: 20px;
+      display: flex;
+      flex-direction: row-reverse;
+      align-items: center;
+      justify-content: space-between;
+      .txt {
+        font-size: 18px;
+        color: #000;
+      }
+    }
+  }
+
+  .middle {
+    width: 96%;
+    margin: 0 auto;
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+    justify-content: space-between;
+    color: #000;
+    border-bottom: 1px solid rgb(231, 231, 231);
+    padding: 10px 0;
+    // 添加员工弹窗样式
+
+    .filter {
+      display: flex;
+      flex-wrap: wrap;
+      align-items: center;
+      //   width: 100%;
+      .condition {
+        display: flex;
+        align-items: center;
+        margin: 10px 30px 10px 0;
+        span {
+          margin: 0 10px 0 0;
+        }
+      }
+    }
+    .import {
+      margin: 10px 0;
+    }
+    .gongneng {
+      margin: 10px 0;
+    }
+    :deep(.cont) {
+      width: 60%;
+      margin: 20px auto;
+    }
+    :deep(.download) {
+      display: flex;
+      align-items: center;
+      margin: 10px;
+    }
+    :deep(.download span) {
+      font-size: 16px;
+      margin-left: 20px;
+    }
+    :deep(.cont .el-button) {
+      margin-left: 60px;
+      margin-bottom: 30px;
+    }
+
+    :deep(.cont .accomplish) {
+      width: 100%;
+      display: flex;
+      justify-content: center;
+    }
+    :deep(.cont .accomplish .el-button) {
+      width: 50%;
+      margin: 0;
+    }
+  }
+  .footerMenu {
+    width: 96%;
+    margin: 10px auto 0;
+    display: flex;
+    align-items: center;
+    // height: 40px;
+    .menuList {
+      padding: 5px 12px;
+      border-bottom: 2px solid transparent;
+      //   color: rgba(61, 81, 232, 1);
+      color: rgba(128, 128, 128, 1);
+      cursor: pointer;
+      //   font-size: 16px;
+      font-weight: 600;
+    }
+    .menuListActive {
+      border-bottom: 2px solid rgba(61, 81, 232, 1);
+      color: rgba(61, 81, 232, 1);
+      font-size: 17px;
+    }
+  }
+  .footer.mingxi {
+    :deep(.el-table__header-wrapper) {
+      height: 50px;
+      .el-table__header {
+        height: 50px;
+      }
+    }
+    .el-table--fit {
+      height: 100%;
+
+      :deep(.el-table__row) {
+        height: 55px;
+      }
+    }
+  }
+  .footer {
+    width: 96%;
+    height: 562px;
+    margin: 20px auto 20px;
+    :deep(.el-table__header-wrapper) {
+      height: 48px;
+
+      .el-table__header {
+        height: 48px;
+        font-size: 16px;
+      }
+    }
+    .el-table--fit {
+      height: 100%;
+
+      :deep(.el-table__row) {
+        height: 48px;
+        font-size: 16px;
+        color: #000;
+      }
+      :deep(.el-table__row td) {
+        padding: 0;
+        border: 0;
+      }
+
+      :deep(.el-button) {
+        width: 50px;
+        height: 26px;
+        border-radius: 40px;
+        font-size: 15px;
+      }
+      :deep(.look) {
+        padding: 3px 10px;
+        border-radius: 40px;
+        // border: 0.74px solid rgba(30, 125, 251, 1);
+      }
+      :deep(.lookcar) {
+        padding: 3px 10px;
+        border-radius: 40px;
+        // border: 0.74px solid #e6a23c;
+      }
+      :deep(.lookdel) {
+        padding: 3px 5px;
+        border-radius: 40px;
+        // border: 0.74px solid #fa7070;
+      }
+      // 输出链接弹窗样式
+      :deep(.link .el-dialog__header) {
+        text-align: left;
+        font-size: 20px;
+        font-weight: 600;
+      }
+      :deep(.link .el-dialog__body) {
+        padding: 10px 20px;
+        height: 100px;
+        margin-bottom: 10px;
+      }
+      .link {
+        .linkcontent {
+          text-align: left;
+          height: 100px;
+          border: 1px solid #ccc;
+          p {
+            margin: 5px 10px;
+          }
+        }
+      }
+
+      :deep(.playVideo .el-dialog__header) {
+        text-align: left;
+        font-size: 20px;
+        font-weight: 600;
+        background-color: #ccc;
+        margin-right: 0;
+      }
+      :deep(.playVideo .el-dialog__body) {
+        height: 600px;
+      }
+
+      .el-button--primary {
+        margin-left: 5px;
+      }
+      :deep(.el-table__body .even) {
+        background-color: #fff;
+      }
+      :deep(.el-table__body .odd) {
+        background-color: rgba(240, 243, 247, 1);
+      }
+    }
+  }
+  .el-pagination {
+    // width: 1600px;
+    width: 96%;
+    margin: 0 auto 18px;
+    justify-content: flex-end;
+    :deep(.el-pagination__total) {
+      color: #000;
+    }
+    :deep(.el-pagination__goto) {
+      color: #000;
+    }
+    :deep(.el-pagination__classifier) {
+      color: #000;
+    }
+    :deep(.el-input__wrapper) {
+      border: 1px solid rgba(0, 0, 0, 1);
+      border-radius: 5px;
+      box-shadow: none;
+    }
+    :deep(.el-pager li) {
+      margin: 0 5px;
+      border: 1px solid rgba(0, 0, 0, 1);
+      border-radius: 5px;
+      background-color: transparent;
+    }
+    :deep(.el-pager li.is-active) {
+      background-color: rgba(30, 125, 251, 1);
+    }
+    :deep(.btn-prev) {
+      margin-right: 5px;
+      border: 1px solid rgba(0, 0, 0, 1);
+      border-radius: 5px;
+      background-color: transparent;
+    }
+    :deep(.btn-next) {
+      margin-left: 5px;
+      border: 1px solid rgba(0, 0, 0, 1);
+      border-radius: 5px;
+      background-color: transparent;
+    }
+  }
+}
+.el-input {
+  width: 192px;
+}
+</style>

+ 32 - 17
src/views/staff/staff.vue

@@ -2,7 +2,7 @@
   <div class="content-box">
   <div class="content-box">
     <div class="left">
     <div class="left">
       <!-- <el-icon :size="23" class="camera"><VideoCameraFilled /></el-icon> -->
       <!-- <el-icon :size="23" class="camera"><VideoCameraFilled /></el-icon> -->
-      <span class="cameratxt">员管理</span>
+      <span class="cameratxt">驾驶员管理</span>
     </div>
     </div>
     <div class="middle">
     <div class="middle">
       <div class="filter">
       <div class="filter">
@@ -58,7 +58,7 @@
       <!-- 按钮列表 -->
       <!-- 按钮列表 -->
       <div class="gongneng">
       <div class="gongneng">
         <el-button type="primary" color="rgba(61, 81, 232, 1)" @click="addlist"
         <el-button type="primary" color="rgba(61, 81, 232, 1)" @click="addlist"
-          ><el-icon><CirclePlus /></el-icon><span>新增员</span></el-button
+          ><el-icon><CirclePlus /></el-icon><span>新增驾驶员</span></el-button
         >
         >
         <el-button
         <el-button
           color="rgba(61, 81, 232, 1)"
           color="rgba(61, 81, 232, 1)"
@@ -109,8 +109,8 @@
             <el-button link type="primary" @click="edit(scope.row)"
             <el-button link type="primary" @click="edit(scope.row)"
               ><div class="look">编辑</div></el-button
               ><div class="look">编辑</div></el-button
             >
             >
-            <el-button link type="primary" @click="del(scope.row)"
-              ><div class="look">删除</div></el-button
+            <el-button link type="danger" @click="del(scope.row)"
+              ><div class="looks">删除</div></el-button
             >
             >
           </template>
           </template>
         </el-table-column>
         </el-table-column>
@@ -147,7 +147,7 @@
           <el-form-item
           <el-form-item
             label="卡号 :"
             label="卡号 :"
             prop="cardnumber"
             prop="cardnumber"
-            v-if="dialongTitle == '新增员'"
+            v-if="dialongTitle == '新增驾驶员'"
           >
           >
             <el-input
             <el-input
               v-model="ruleForm.cardnumber"
               v-model="ruleForm.cardnumber"
@@ -155,7 +155,9 @@
               clearable
               clearable
             />
             />
           </el-form-item>
           </el-form-item>
-          <el-form-item label="手机号码 :" prop="phone">
+
+          <el-form-item label="手机号码 :">
+            <!-- prop="phone" -->
             <el-input
             <el-input
               v-model="ruleForm.phone"
               v-model="ruleForm.phone"
               placeholder="请输入手机号码"
               placeholder="请输入手机号码"
@@ -176,6 +178,7 @@
               placeholder="请选择职位"
               placeholder="请选择职位"
             >
             >
               <el-option label="车队长" value="车队长" />
               <el-option label="车队长" value="车队长" />
+              <el-option label="司机" value="司机" />
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
 
 
@@ -223,7 +226,7 @@ const router = useRouter();
 // 表格数据
 // 表格数据
 const tableData = reactive({ list: [] });
 const tableData = reactive({ list: [] });
 const activeIndex = ref(); // 默认跳转路由
 const activeIndex = ref(); // 默认跳转路由
-const dialongTitle = ref("新增员"); // 弹窗标题
+const dialongTitle = ref("新增驾驶员"); // 弹窗标题
 const api = ref("");
 const api = ref("");
 const searchInput = reactive({
 const searchInput = reactive({
   name: "",
   name: "",
@@ -261,12 +264,12 @@ const rules = reactive({
   // /^[\u4E00-\u9FA5]$/
   // /^[\u4E00-\u9FA5]$/
   cardnumber: [
   cardnumber: [
     { required: true, message: "卡号不能为空", trigger: "blur" },
     { required: true, message: "卡号不能为空", trigger: "blur" },
-    {
-      // pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/,
-      pattern: /^[0-9]*$/,
-      message: "请输入正确卡号(数字类型)",
-      trigger: "blur",
-    },
+    // {
+    //   // pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/,
+    //   // pattern: /^[0-9]*$/,
+    //   message: "请输入正确卡号(数字类型)",
+    //   trigger: "blur",
+    // },
   ],
   ],
   phone: [
   phone: [
     { required: true, message: "请输入手机号", trigger: "blur" },
     { required: true, message: "请输入手机号", trigger: "blur" },
@@ -359,7 +362,7 @@ const searchRefresh = lodash.debounce(async () => {
 }, 300);
 }, 300);
 // 添加员工
 // 添加员工
 const addlist = () => {
 const addlist = () => {
-  dialongTitle.value = "新增员";
+  dialongTitle.value = "新增驾驶员";
   addDialogVisible.value = true;
   addDialogVisible.value = true;
   ruleForm.name = "";
   ruleForm.name = "";
   ruleForm.phone = "";
   ruleForm.phone = "";
@@ -368,7 +371,7 @@ const addlist = () => {
 };
 };
 //编辑按钮
 //编辑按钮
 const edit = (row) => {
 const edit = (row) => {
-  dialongTitle.value = "编辑员";
+  dialongTitle.value = "编辑驾驶员";
   addDialogVisible.value = true;
   addDialogVisible.value = true;
   console.log(row);
   console.log(row);
   ruleForm.name = row.user_name;
   ruleForm.name = row.user_name;
@@ -386,7 +389,7 @@ const submitAdd = async (formEl) => {
   if (!formEl) return;
   if (!formEl) return;
   await formEl.validate(async (valid, fields) => {
   await formEl.validate(async (valid, fields) => {
     if (valid) {
     if (valid) {
-      if (dialongTitle.value == "新增员") {
+      if (dialongTitle.value == "新增驾驶员") {
         let data = {
         let data = {
           user_name: ruleForm.name,
           user_name: ruleForm.name,
           user_phone: ruleForm.phone,
           user_phone: ruleForm.phone,
@@ -468,7 +471,7 @@ const submitAdd = async (formEl) => {
 
 
 //删除按钮
 //删除按钮
 const del = (row) => {
 const del = (row) => {
-  ElMessageBox.confirm(`是否删除 ${row.user_name} 员?`, "提示", {
+  ElMessageBox.confirm(`是否删除 ${row.user_name} 驾驶员?`, "提示", {
     confirmButtonText: "确认",
     confirmButtonText: "确认",
     cancelButtonText: "取消",
     cancelButtonText: "取消",
     type: "warning",
     type: "warning",
@@ -639,6 +642,9 @@ onUnmounted(() => {
         display: flex;
         display: flex;
         align-items: center;
         align-items: center;
         margin: 10px 30px 10px 0;
         margin: 10px 30px 10px 0;
+        :deep(.el-input .el-input__inner) {
+          font-size: 16px;
+        }
         span {
         span {
           margin: 0 10px 0 0;
           margin: 0 10px 0 0;
         }
         }
@@ -683,9 +689,13 @@ onUnmounted(() => {
       height: 100%;
       height: 100%;
       :deep(.el-table__header-wrapper) {
       :deep(.el-table__header-wrapper) {
         background-color: #000;
         background-color: #000;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row) {
       :deep(.el-table__row) {
         height: 50px;
         height: 50px;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row td) {
       :deep(.el-table__row td) {
         padding: 0;
         padding: 0;
@@ -706,6 +716,11 @@ onUnmounted(() => {
         border-radius: 45px;
         border-radius: 45px;
         border: 0.74px solid rgba(30, 125, 251, 1);
         border: 0.74px solid rgba(30, 125, 251, 1);
       }
       }
+      :deep(.looks) {
+        padding: 5px 10px;
+        border-radius: 45px;
+        border: 0.74px solid #f56c6c;
+      }
     }
     }
 
 
     // 添加员工弹窗样式
     // 添加员工弹窗样式

+ 267 - 53
src/views/statement/statement.vue

@@ -2,20 +2,31 @@
   <div class="content-box">
   <div class="content-box">
     <div class="left">
     <div class="left">
       <!-- <el-icon :size="23" class="camera"><UserFilled /></el-icon> -->
       <!-- <el-icon :size="23" class="camera"><UserFilled /></el-icon> -->
-      <span class="cameratxt">报表统计</span>
+      <div class="cameratxt">报表统计</div>
     </div>
     </div>
     <!-- 汇总搜索框 -->
     <!-- 汇总搜索框 -->
     <div class="middle" v-if="footerMenuIndex == 0">
     <div class="middle" v-if="footerMenuIndex == 0">
       <div class="filter">
       <div class="filter">
         <div class="condition">
         <div class="condition">
           <span>车牌号 : </span>
           <span>车牌号 : </span>
-          <el-input
+          <!-- <el-input
             clearable
             clearable
             v-model="searchInputHZ.car_number"
             v-model="searchInputHZ.car_number"
             class="w-50 m-2"
             class="w-50 m-2"
             placeholder="请输入车牌号"
             placeholder="请输入车牌号"
             style="width: 150px"
             style="width: 150px"
-          />
+          /> -->
+          <el-select
+            v-model="searchInputHZ.car_number"
+            class="m-2"
+            placeholder="请选择车牌号"
+          >
+            <el-option
+              v-for="item in busNum.list"
+              :label="item.car_number"
+              :value="item.car_number"
+            />
+          </el-select>
         </div>
         </div>
         <div class="condition">
         <div class="condition">
           <span>汇总日期 : </span>
           <span>汇总日期 : </span>
@@ -33,6 +44,7 @@
             placeholder="请选择日期"
             placeholder="请选择日期"
             format="YYYY-MM-DD"
             format="YYYY-MM-DD"
             value-format="YYYY-MM-DD"
             value-format="YYYY-MM-DD"
+            :clearable="false"
           />
           />
         </div>
         </div>
         <div class="condition">
         <div class="condition">
@@ -84,16 +96,27 @@
       <div class="filter">
       <div class="filter">
         <div class="condition">
         <div class="condition">
           <span>车牌号 : </span>
           <span>车牌号 : </span>
-          <el-input
+          <!-- <el-input
             clearable
             clearable
             v-model="searchInput.car_number"
             v-model="searchInput.car_number"
             class="w-50 m-2"
             class="w-50 m-2"
             placeholder="请输入车牌号"
             placeholder="请输入车牌号"
             style="width: 150px"
             style="width: 150px"
-          />
+          /> -->
+          <el-select
+            v-model="searchInput.car_number"
+            class="m-2"
+            placeholder="请选择车牌号"
+          >
+            <el-option
+              v-for="item in busNum.list"
+              :label="item.car_number"
+              :value="item.car_number"
+            />
+          </el-select>
         </div>
         </div>
         <div class="condition">
         <div class="condition">
-          <span>汇总日期 : </span>
+          <span>发车日期 : </span>
           <!-- <el-date-picker
           <!-- <el-date-picker
             v-model="searchData.input5"
             v-model="searchData.input5"
             type="datetimerange"
             type="datetimerange"
@@ -111,6 +134,19 @@
           />
           />
         </div>
         </div>
         <div class="condition">
         <div class="condition">
+          <span>发车时间 : </span>
+          <el-time-picker
+            v-model="searchInput.ci_time"
+            placeholder="请选择发车时间"
+            format="HH:mm"
+            value-format="HH:mm"
+            :disabled-hours="disabledQueryHours"
+            :disabled-minutes="disabledQueryMinutes"
+            :disabled-seconds="disabledQuerySeconds"
+            @change="addQueryTime"
+          />
+        </div>
+        <div class="condition">
           <span>状态 : </span>
           <span>状态 : </span>
           <el-select
           <el-select
             v-model="searchInput.state"
             v-model="searchInput.state"
@@ -259,7 +295,7 @@
         <el-table
         <el-table
           :row-class-name="tableRowClassName"
           :row-class-name="tableRowClassName"
           :data="tableData.list"
           :data="tableData.list"
-          style="width: 100%; height: 550px"
+          style="width: 100%; height: 500px"
           :header-cell-style="{
           :header-cell-style="{
             background: 'rgba(240, 243, 247, 1)',
             background: 'rgba(240, 243, 247, 1)',
             border: 0,
             border: 0,
@@ -274,10 +310,26 @@
             label="创建时间"
             label="创建时间"
           />
           />
           <el-table-column align="center" prop="ci_time" label="发车时间" />
           <el-table-column align="center" prop="ci_time" label="发车时间" />
-          <el-table-column align="center" prop="yy_num" label="预约人数" />
+          <el-table-column align="center" label="预约人数">
+            <template #default="scope">
+              <div
+                v-if="scope.row.yy_num == scope.row.contain"
+                style="color: red"
+              >
+                {{ scope.row.yy_num }}
+              </div>
+              <div v-else>{{ scope.row.yy_num }}</div>
+            </template>
+          </el-table-column>
           <el-table-column align="center" prop="by_num" label="乘车人数" />
           <el-table-column align="center" prop="by_num" label="乘车人数" />
           <el-table-column align="center" prop="contain" label="容量" />
           <el-table-column align="center" prop="contain" label="容量" />
           <el-table-column align="center" prop="car_number" label="车牌号" />
           <el-table-column align="center" prop="car_number" label="车牌号" />
+          <el-table-column
+            align="center"
+            prop="route"
+            width="250"
+            label="路线"
+          />
           <el-table-column align="center" label="状态">
           <el-table-column align="center" label="状态">
             <template #default="scope">
             <template #default="scope">
               <div
               <div
@@ -320,32 +372,47 @@
               > -->
               > -->
             </template>
             </template>
           </el-table-column>
           </el-table-column>
-          <!-- <template #empty>
-            <div
-              style="width: 100%; height:520px;display: flex; flex-direction: column;     justify-        
-        content: center;align-items: center"
-            >
-              <img
-                style="width: 100%; height: 400px"
-                src="@/assets/nodata.png"
-                alt=""
-              />
-              <div>暂无数据</div>
-            </div>
-          </template> -->
         </el-table>
         </el-table>
       </div>
       </div>
-      <el-pagination
-        background
-        v-model:page-size="pageSize"
-        v-model:current-page="currentPage"
-        layout="total, prev, pager, next, jumper"
-        :total="total"
-        @current-change="handleCurrentChange"
-      />
+      <div style="width: 100%; height: 34px">
+        <el-pagination
+          background
+          v-model:page-size="pageSize"
+          v-model:current-page="currentPage"
+          layout="total, prev, pager, next, jumper"
+          :total="total"
+          @current-change="handleCurrentChange"
+        />
+        <!-- 往返校区预约和乘车人数 -->
+        <div
+          class="nowday"
+          style="position: relative; width: 1200px; color: #000; top: -47px"
+        >
+          <div style="display: inline-block; margin-left: 30px">
+            {{ gobacknum.list1.s_date }}
+            <span style="font-size: 18px; font-weight: 800">{{
+              gobacknum.list2.route
+            }}</span>
+            预约人数:<span style="color: red">{{ gobacknum.list2.yy_num }}</span
+            >,乘车人数:<span style="color: red">{{
+              gobacknum.list2.by_num
+            }}</span>
+          </div>
+          <div style="display: inline-block">
+            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+            <span style="font-size: 18px; font-weight: 800">{{
+              gobacknum.list1.route
+            }}</span>
+            预约人数:<span style="color: red">{{ gobacknum.list1.yy_num }}</span
+            >,乘车人数:<span style="color: red">{{
+              gobacknum.list1.by_num
+            }}</span>
+          </div>
+        </div>
+      </div>
     </div>
     </div>
     <div class="MingXi" v-else-if="footerMenuIndex == 1">
     <div class="MingXi" v-else-if="footerMenuIndex == 1">
-      <div class="footer">
+      <div class="footers footer">
         <el-table
         <el-table
           :row-class-name="tableRowClassName"
           :row-class-name="tableRowClassName"
           :data="tableData.list2"
           :data="tableData.list2"
@@ -362,7 +429,12 @@
             prop="yy_time"
             prop="yy_time"
             label="下单时间"
             label="下单时间"
           />
           />
-          <el-table-column align="center" prop="yy_date" label="发车日期" />
+          <el-table-column
+            align="center"
+            width="120"
+            prop="yy_date"
+            label="发车日期"
+          />
           <el-table-column align="center" prop="ci_time" label="发车时间" />
           <el-table-column align="center" prop="ci_time" label="发车时间" />
           <el-table-column align="center" prop="user_name" label="预约人" />
           <el-table-column align="center" prop="user_name" label="预约人" />
           <el-table-column align="center" prop="user_zz" label="身份" />
           <el-table-column align="center" prop="user_zz" label="身份" />
@@ -374,12 +446,17 @@
           />
           />
 
 
           <el-table-column
           <el-table-column
-            width="150"
+            width="130"
             align="center"
             align="center"
             prop="car_number"
             prop="car_number"
             label="车牌号"
             label="车牌号"
           />
           />
-          <el-table-column align="center" prop="contain" label="容量" />
+          <el-table-column
+            align="center"
+            width="40"
+            prop="contain"
+            label="容量"
+          />
           <el-table-column
           <el-table-column
             align="center"
             align="center"
             prop="route"
             prop="route"
@@ -388,7 +465,7 @@
           /><el-table-column
           /><el-table-column
             align="center"
             align="center"
             prop="route_end"
             prop="route_end"
-            width="220"
+            width="300"
             label="终点站"
             label="终点站"
           />
           />
           <!-- <el-table-column
           <!-- <el-table-column
@@ -457,12 +534,15 @@ const router = useRouter();
 // 汇总搜索框数据
 // 汇总搜索框数据
 const searchInputHZ = reactive({
 const searchInputHZ = reactive({
   state: "",
   state: "",
-  date: "",
+  date: dayjs().format("YYYY-MM-DD"),
   car_number: "",
   car_number: "",
 });
 });
+const gobacknum = reactive({ list1: {}, list2: {} }); // 当日黄家湖-墨轩湖人数
+
 const api = ref("");
 const api = ref("");
 // 明细列表搜索框数据
 // 明细列表搜索框数据
 const searchInput = reactive({
 const searchInput = reactive({
+  ci_time: "",
   state: "",
   state: "",
   yy_date: "",
   yy_date: "",
   car_number: "",
   car_number: "",
@@ -500,7 +580,7 @@ const pageSize2 = ref(10);
 const currentPage2 = ref(1); // 当前页
 const currentPage2 = ref(1); // 当前页
 const total2 = ref(10); // 当前总数
 const total2 = ref(10); // 当前总数
 
 
-const footerMenuIndex = ref(1); // 控制汇总和明细列表
+const footerMenuIndex = ref(0); // 控制汇总和明细列表
 // 表单数据
 // 表单数据
 const formSize = ref("default");
 const formSize = ref("default");
 const ruleFormRef = ref();
 const ruleFormRef = ref();
@@ -552,13 +632,10 @@ const rules = reactive({
 const getList = async () => {
 const getList = async () => {
   if (footerMenuIndex.value == 0) {
   if (footerMenuIndex.value == 0) {
     let data = new FormData();
     let data = new FormData();
-    if (searchInputHZ.state == "") {
-    } else {
+    if (searchInputHZ.state) {
       data.set("state", searchInputHZ.state);
       data.set("state", searchInputHZ.state);
     }
     }
-    if (searchInputHZ.date == "") {
-      data.set("date", "");
-    } else {
+    if (searchInputHZ.date) {
       data.set("date", searchInputHZ.date);
       data.set("date", searchInputHZ.date);
     }
     }
     data.set("car_number", searchInputHZ.car_number); //前面的key记得对应!
     data.set("car_number", searchInputHZ.car_number); //前面的key记得对应!
@@ -599,6 +676,37 @@ const getList = async () => {
         });
         });
       }
       }
     }
     }
+    // 单独获取今日预约人数和乘车人数
+    // {
+    //   let datas = new FormData();
+    //   datas.set("page", 1);
+    //   datas.set("rows", 100); //前面的key记得对应!
+    //   // if (searchInputHZ.date) {
+    //   //   datas.set("date", searchInputHZ.date);
+    //   // }
+    //   let resdata = await axios({
+    //     method: "post",
+    //     url: api.value + "/carBook/schelist.action",
+    //     headers: {
+    //       token: sessionStorage.getItem("token"),
+    //     },
+    //     data: datas,
+    //   });
+    //   console.log(resdata.data.rows, "单独数据");
+    //   nowDayH_M.H_Mby = 0;
+    //   nowDayH_M.H_Myy = 0;
+    //   nowDayM_H.M_Hyy = 0;
+    //   nowDayM_H.M_Hby = 0;
+    //   resdata.data.rows.forEach((item) => {
+    //     if (item.route == "黄家湖校区-墨轩湖校区") {
+    //       nowDayH_M.H_Myy = nowDayH_M.H_Myy + Number(item.yy_num);
+    //       nowDayH_M.H_Mby = nowDayH_M.H_Mby + Number(item.by_num);
+    //     } else if (item.route == "墨轩湖校区-黄家湖校区") {
+    //       nowDayM_H.M_Hyy = nowDayM_H.M_Hyy + Number(item.yy_num);
+    //       nowDayM_H.M_Hby = nowDayM_H.M_Hby + Number(item.by_num);
+    //     }
+    //   });
+    // }
   } else if (footerMenuIndex.value == 1) {
   } else if (footerMenuIndex.value == 1) {
     let data = new FormData();
     let data = new FormData();
     // if (searchInput.createTime == null) {
     // if (searchInput.createTime == null) {
@@ -608,7 +716,12 @@ const getList = async () => {
       data.set("car_number", searchInput.car_number);
       data.set("car_number", searchInput.car_number);
     }
     }
     data.set("state", searchInput.state);
     data.set("state", searchInput.state);
-    data.set("yy_date", searchInput.yy_date);
+    if (searchInput.ci_time) {
+      data.set("ci_time", searchInput.ci_time);
+    }
+    if (searchInput.yy_date) {
+      data.set("yy_date", searchInput.yy_date);
+    }
     data.set("page", currentPage2.value);
     data.set("page", currentPage2.value);
     data.set("rows", pageSize2.value); //前面的key记得对应!
     data.set("rows", pageSize2.value); //前面的key记得对应!
     let res = await axios({
     let res = await axios({
@@ -653,17 +766,34 @@ const getList = async () => {
     }
     }
   }
   }
 };
 };
-
+// 获取往返黄家湖-墨轩湖的预约人数乘车人数
+const goBackNum = async () => {
+  let data = new FormData();
+  data.set("date", searchInputHZ.date); //前面的key记得对应!
+  let res = await axios({
+    method: "post",
+    url: api.value + "/carBook/scheroutetj.action",
+    headers: {
+      token: sessionStorage.getItem("token"),
+    },
+    data: data,
+  });
+  gobacknum.list1 = res.data.data[0];
+  gobacknum.list2 = res.data.data[1];
+  console.log(res);
+};
 // 汇总搜索按钮
 // 汇总搜索按钮
 const searchHZ = lodash.debounce(() => {
 const searchHZ = lodash.debounce(() => {
   getList();
   getList();
+  goBackNum();
 }, 300);
 }, 300);
 // 汇总重置搜索框
 // 汇总重置搜索框
 const resetInputHZ = lodash.debounce(() => {
 const resetInputHZ = lodash.debounce(() => {
   searchInputHZ.state = "";
   searchInputHZ.state = "";
-  searchInputHZ.date = "";
+  searchInputHZ.date = dayjs().format("YYYY-MM-DD");
   searchInputHZ.car_number = "";
   searchInputHZ.car_number = "";
   getList();
   getList();
+  goBackNum();
 }, 300);
 }, 300);
 
 
 // 搜索按钮
 // 搜索按钮
@@ -675,6 +805,7 @@ const resetInput = lodash.debounce(() => {
   searchInput.state = "";
   searchInput.state = "";
   searchInput.yy_date = "";
   searchInput.yy_date = "";
   searchInput.car_number = "";
   searchInput.car_number = "";
+  searchInput.ci_time = "";
   getList();
   getList();
 }, 300);
 }, 300);
 // 多选框功能
 // 多选框功能
@@ -701,8 +832,10 @@ const detailMenu = () => {
 const info = (row) => {
 const info = (row) => {
   console.log(row);
   console.log(row);
   searchInput.yy_date = row.s_date;
   searchInput.yy_date = row.s_date;
+  searchInput.ci_time = row.ci_time;
   searchInput.car_number = row.car_number;
   searchInput.car_number = row.car_number;
   footerMenuIndex.value = 1;
   footerMenuIndex.value = 1;
+  currentPage2.value = 1;
   getList();
   getList();
 };
 };
 // 派车按钮
 // 派车按钮
@@ -869,6 +1002,7 @@ onBeforeMount(() => {
     })
     })
   );
   );
   getList();
   getList();
+  goBackNum();
 });
 });
 </script>
 </script>
 
 
@@ -886,16 +1020,18 @@ onBeforeMount(() => {
     width: calc(100wh - 40px);
     width: calc(100wh - 40px);
     display: flex;
     display: flex;
     align-items: center;
     align-items: center;
-    height: 60px;
+    height: 60px !important;
     margin: 0 30px;
     margin: 0 30px;
     // padding: 10px 0;
     // padding: 10px 0;
     border-bottom: 1px solid #ccc;
     border-bottom: 1px solid #ccc;
     color: #000;
     color: #000;
     font-size: 18px;
     font-size: 18px;
     font-weight: 600;
     font-weight: 600;
-    .camera {
+    .cameratxt {
       margin-right: 15px;
       margin-right: 15px;
-      color: #4392f7;
+      display: flex;
+      align-items: center;
+      height: 60px !important;
     }
     }
   }
   }
 
 
@@ -927,8 +1063,6 @@ onBeforeMount(() => {
 
 
       .options {
       .options {
         margin-left: 200px;
         margin-left: 200px;
-        .el-form-item__content {
-        }
       }
       }
     }
     }
   }
   }
@@ -952,9 +1086,12 @@ onBeforeMount(() => {
       .condition {
       .condition {
         display: flex;
         display: flex;
         align-items: center;
         align-items: center;
-        margin: 10px 30px 10px 0;
+        margin: 10px 20px 10px 0;
+        :deep(.el-input .el-input__inner) {
+          font-size: 16px;
+        }
         span {
         span {
-          margin: 0 10px 0 0;
+          margin: 0 5px 0 0;
         }
         }
       }
       }
     }
     }
@@ -1024,18 +1161,93 @@ onBeforeMount(() => {
       height: 100%;
       height: 100%;
 
 
       :deep(.el-table__row) {
       :deep(.el-table__row) {
-        height: 55px;
+        height: 50px;
       }
       }
     }
     }
   }
   }
   .footer {
   .footer {
     width: 96%;
     width: 96%;
-    height: 562px;
+    height: 510px;
+    margin: 20px auto 20px;
+    :deep(.el-table__header-wrapper) {
+      height: 48px;
+      .el-table__header {
+        height: 48px;
+        font-size: 16px;
+        color: #000;
+      }
+    }
+    .el-table--fit {
+      height: 100%;
+
+      :deep(.el-table__row) {
+        height: 48px;
+        font-size: 16px;
+        color: #000;
+      }
+      :deep(.el-table__row td) {
+        padding: 0;
+        border: 0;
+      }
+      :deep(.look) {
+        padding: 3px 10px;
+        border-radius: 40px;
+        border: 0.74px solid rgba(30, 125, 251, 1);
+      }
+      // 输出链接弹窗样式
+      :deep(.link .el-dialog__header) {
+        text-align: left;
+        font-size: 20px;
+        font-weight: 600;
+      }
+      :deep(.link .el-dialog__body) {
+        padding: 10px 20px;
+        height: 100px;
+        margin-bottom: 10px;
+      }
+      .link {
+        .linkcontent {
+          text-align: left;
+          height: 100px;
+          border: 1px solid #ccc;
+          p {
+            margin: 5px 10px;
+          }
+        }
+      }
+
+      :deep(.playVideo .el-dialog__header) {
+        text-align: left;
+        font-size: 20px;
+        font-weight: 600;
+        background-color: #ccc;
+        margin-right: 0;
+      }
+      :deep(.playVideo .el-dialog__body) {
+        height: 600px;
+      }
+
+      .el-button--primary {
+        margin-left: 5px;
+      }
+      :deep(.el-table__body .even) {
+        background-color: #fff;
+      }
+      :deep(.el-table__body .odd) {
+        background-color: rgba(240, 243, 247, 1);
+      }
+    }
+  }
+  .footers {
+    width: 96%;
+    height: 550px;
     margin: 20px auto 20px;
     margin: 20px auto 20px;
     :deep(.el-table__header-wrapper) {
     :deep(.el-table__header-wrapper) {
       height: 48px;
       height: 48px;
       .el-table__header {
       .el-table__header {
         height: 48px;
         height: 48px;
+        font-size: 16px;
+        color: #000;
       }
       }
     }
     }
     .el-table--fit {
     .el-table--fit {
@@ -1043,6 +1255,8 @@ onBeforeMount(() => {
 
 
       :deep(.el-table__row) {
       :deep(.el-table__row) {
         height: 48px;
         height: 48px;
+        font-size: 16px;
+        color: #000;
       }
       }
       :deep(.el-table__row td) {
       :deep(.el-table__row td) {
         padding: 0;
         padding: 0;

+ 7 - 1
src/views/waiting/waiting.vue

@@ -140,6 +140,7 @@ const ruleForm = reactive({
   endTime: "", // 扫码后时间
   endTime: "", // 扫码后时间
   id: "",
   id: "",
 });
 });
+// 获取系统设置数据
 const getlist = async (message) => {
 const getlist = async (message) => {
   let res = await axios({
   let res = await axios({
     method: "post",
     method: "post",
@@ -151,7 +152,6 @@ const getlist = async (message) => {
   console.log(res);
   console.log(res);
   if (res.data.code == 200) {
   if (res.data.code == 200) {
     console.log(res.data.data.yy_duration.split("~"));
     console.log(res.data.data.yy_duration.split("~"));
-
     ruleForm.yy_duration = res.data.data.yy_duration.split("~");
     ruleForm.yy_duration = res.data.data.yy_duration.split("~");
     ruleForm.yy_end = res.data.data.yy_end; //
     ruleForm.yy_end = res.data.data.yy_end; //
     ruleForm.hh_end = res.data.data.hh_end; //
     ruleForm.hh_end = res.data.data.hh_end; //
@@ -160,6 +160,8 @@ const getlist = async (message) => {
     ruleForm.startTime = res.data.data.sm_start;
     ruleForm.startTime = res.data.data.sm_start;
     ruleForm.endTime = res.data.data.sm_end;
     ruleForm.endTime = res.data.data.sm_end;
     ruleForm.id = res.data.data.id;
     ruleForm.id = res.data.data.id;
+    sessionStorage.setItem("sm_start", res.data.data.sm_start);
+    sessionStorage.setItem("sm_end", res.data.data.sm_end);
     if (message) {
     if (message) {
       ElMessage({
       ElMessage({
         type: "success",
         type: "success",
@@ -183,6 +185,7 @@ const getlist = async (message) => {
   }
   }
 };
 };
 
 
+// 页面数据一修改就调用函数
 const timeUpdata = async () => {
 const timeUpdata = async () => {
   if (ruleForm.black_count <= 0) {
   if (ruleForm.black_count <= 0) {
     ruleForm.black_count = 1;
     ruleForm.black_count = 1;
@@ -210,6 +213,7 @@ const timeUpdata = async () => {
   console.log(res, "修改候补");
   console.log(res, "修改候补");
   if (res.data.code == 200) {
   if (res.data.code == 200) {
     // getlist();
     // getlist();
+    store.dispatch("sm_time");
     ElMessage({
     ElMessage({
       type: "success",
       type: "success",
       showClose: true,
       showClose: true,
@@ -277,6 +281,8 @@ onUnmounted(() => {});
         margin: 10px 30px 10px 0;
         margin: 10px 30px 10px 0;
         span {
         span {
           margin: 0 10px 0 0;
           margin: 0 10px 0 0;
+          font-size: 18px;
+          color: #000;
         }
         }
       }
       }
     }
     }

+ 11 - 8
vite.config.js

@@ -1,7 +1,7 @@
 import { defineConfig } from "vite";
 import { defineConfig } from "vite";
 import vue from "@vitejs/plugin-vue";
 import vue from "@vitejs/plugin-vue";
 import path from "path";
 import path from "path";
-import { resolve, join } from 'path'
+import { resolve, join } from "path";
 // https://vitejs.dev/config/
 // https://vitejs.dev/config/
 export default defineConfig({
 export default defineConfig({
   plugins: [vue()],
   plugins: [vue()],
@@ -23,9 +23,12 @@ export default defineConfig({
     // 是否开启 https
     // 是否开启 https
     // https: false,
     // https: false,
     // 线上
     // 线上
+    // /carstop/carbook  线上打包地址
+    // /testingServertomcat/carbook // 测试
     proxy: {
     proxy: {
       "/carstop/carbook": {
       "/carstop/carbook": {
         target: "https://chtech.ncjti.edu.cn/carstop/carbook",
         target: "https://chtech.ncjti.edu.cn/carstop/carbook",
+        // target: "https://chtech.ncjti.edu.cn/testingServertomcat/carbook", // 测试环境
         changeOrigin: true,
         changeOrigin: true,
         rewrite: (path) => path.replace(/^\/carstop\/carbook/, ""),
         rewrite: (path) => path.replace(/^\/carstop\/carbook/, ""),
       },
       },
@@ -35,9 +38,9 @@ export default defineConfig({
   base: "./",
   base: "./",
   // 打包配置
   // 打包配置
   build: {
   build: {
-    target: 'modules', //设置最终构建的浏览器兼容目标  //es2015(编译成es5) | modules
-    outDir: 'dist', // 构建得包名  默认:dist
-    assetsDir: 'static', // 静态资源得存放路径文件名  assets
+    target: "modules", //设置最终构建的浏览器兼容目标  //es2015(编译成es5) | modules
+    outDir: "dist", // 构建得包名  默认:dist
+    assetsDir: "static", // 静态资源得存放路径文件名  assets
     // sourcemap: false, //构建后是否生成 source map 文件
     // sourcemap: false, //构建后是否生成 source map 文件
     // brotliSize: false, // 启用/禁用 brotli 压缩大小报告。 禁用该功能可能会提高大型项目的构建性能
     // brotliSize: false, // 启用/禁用 brotli 压缩大小报告。 禁用该功能可能会提高大型项目的构建性能
     chunkSizeWarningLimit: 1000, //chunk 大小警告的限制(以 kbs 为单位)默认:500
     chunkSizeWarningLimit: 1000, //chunk 大小警告的限制(以 kbs 为单位)默认:500
@@ -56,12 +59,12 @@ export default defineConfig({
               .toString();
               .toString();
           }
           }
         },
         },
-        chunkFileNames: 'static/js/[name]-[hash].js',
+        chunkFileNames: "static/js/[name]-[hash].js",
         entryFileNames: "static/js/[name]-[hash].js",
         entryFileNames: "static/js/[name]-[hash].js",
-        assetFileNames: "static/[ext]/name-[hash].[ext]"
-      }
+        assetFileNames: "static/[ext]/name-[hash].[ext]",
+      },
     },
     },
-    minify: 'terser', // 项目压缩 :boolean | 'terser' | 'esbuild'
+    minify: "terser", // 项目压缩 :boolean | 'terser' | 'esbuild'
     terserOptions: {
     terserOptions: {
       // 生产环境移除console
       // 生产环境移除console
       compress: {
       compress: {