From bebc625c00b8418895a71cabe1b76ebb16f6ecae Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期二, 01 十一月 2022 22:18:56 +0800
Subject: [PATCH] 违章统计

---
 src/views/intelligentPatrol/statistics/unlawful/time/index.vue |  343 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 339 insertions(+), 4 deletions(-)

diff --git a/src/views/intelligentPatrol/statistics/unlawful/time/index.vue b/src/views/intelligentPatrol/statistics/unlawful/time/index.vue
index 000f533..791de09 100644
--- a/src/views/intelligentPatrol/statistics/unlawful/time/index.vue
+++ b/src/views/intelligentPatrol/statistics/unlawful/time/index.vue
@@ -1,13 +1,348 @@
 <template>
-  <div>鎸夋椂闂寸粺璁�</div>
+  <div class="list">
+    <header>
+      <div class="header-content">
+        <div class="search">
+          <span style="padding-right: 20px">鏃堕棿鑼冨洿:</span>
+          <el-date-picker
+            v-model="value2"
+            type="daterange"
+            align="right"
+            unlink-panels
+            range-separator="鑷�"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+            :picker-options="pickerOptions"
+          >
+          </el-date-picker>
+        </div>
+
+        <div class="find">
+          <el-button
+            type="primary"
+            icon="el-icon-search"
+            @click="setTableDataHandle"
+            >鏌ヨ</el-button
+          >
+          <el-button icon="el-icon-delete-solid" @click="resetTableData"
+            >閲嶇疆</el-button
+          >
+        </div>
+
+        <div class="main-nav-right">
+          <el-button type="primary" icon="el-icon-upload2" @click="handleExport"
+            >瀵煎嚭</el-button
+          >
+        </div>
+      </div>
+    </header>
+    <main>
+      <div class="main-content">
+        <!-- 鏁版嵁灞曠ず -->
+        <el-table
+          ref="multipleTable"
+          :header-cell-style="{
+            background: '#06122c',
+            'font-size': '12px',
+            color: '#4b9bb7',
+            'font-weight': '650',
+            'line-height': '45px',
+          }"
+          :row-class-name="tableRowClassName"
+          :data="list"
+          style="width: 100%"
+        >
+          <el-table-column type="selection" min-width="5"> </el-table-column>
+          <el-table-column prop="name" label="浜嬩欢鏃ユ湡" min-width="10">
+          </el-table-column>
+          <el-table-column prop="count" label="浜嬩欢鎬绘暟" min-width="5">
+          </el-table-column>
+          <el-table-column prop="ratio" label="鍗犳瘮" min-width="5">
+          </el-table-column>
+          <el-table-column prop="checked" label="宸插鏍�" min-width="5">
+          </el-table-column>
+          <el-table-column prop="register" label="绔嬫" min-width="5">
+          </el-table-column>
+          <el-table-column prop="registerRatio" label="绔嬫鐜�" min-width="5">
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <!-- tools -->
+      <div class="tools">
+        <div class="funs"></div>
+        <div class="pagination">
+          <el-pagination
+            background
+            :current-page="currentPage"
+            layout="prev, pager, next"
+            :total="totalNum"
+            :page-size="pageSize"
+            @current-change="changeCurrentPage"
+            @prev-click="handlePrev"
+            @next-click="handleNext"
+          >
+          </el-pagination>
+        </div>
+      </div>
+    </main>
+  </div>
 </template>
+  <script>
+import { createNamespacedHelpers } from "vuex";
+const { mapActions } = createNamespacedHelpers("statistics");
 
-<script>
 export default {
+  data() {
+    return {
+      pickerOptions: {
+        shortcuts: [
+          {
+            text: "鏈�杩戜竴鍛�",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "鏈�杩戜竴涓湀",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+          {
+            text: "鏈�杩戜笁涓湀",
+            onClick(picker) {
+              const end = new Date();
+              const start = new Date();
+              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+              picker.$emit("pick", [start, end]);
+            },
+          },
+        ],
+      },
+      value1: "",
+      value2: "",
+      list: [],
+      totalNum: 0,
+      pageSize: 10,
+      currentPage: 1,
+    };
+  },
+  created() {
+    this.setTableData();
+  },
+  methods: {
+    ...mapActions(["searchByTime"]),
 
-}
+    handleExport(e) {},
+    setTableDataHandle(e) {},
+    resetTableData(e) {},
+    // 璁剧疆琛ㄦ牸鏂戦┈绾�
+    tableRowClassName({ row, rowIndex }) {
+      if ((rowIndex + 1) % 2 == 0) {
+        return "warning-row";
+      } else {
+        return "success-row";
+      }
+      return "";
+    },
+    // 璁剧疆tableData
+    setTableData() {
+      const { currentPage, pageSize, context } = this;
+      this.searchByTime({
+        currentPage,
+        pageSize,
+        beginTime:'2022-05-01 00:00:00',
+        endTime:'2022-09-01 00:00:00'
+      }).then((res) => {
+        if (res.data.code == 200) {
+          this.list = res.data.data.records;
+          this.totalNum = res.data.data.total;
+        }
+      });
+    },
+    // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+    changeCurrentPage(page) {
+      this.currentPage = page;
+      this.setTableData();
+    },
+    // 涓婁竴椤电偣鍑讳簨浠�
+    handlePrev(page) {
+      this.currentPage = page;
+      this.setTableData();
+    },
+    // 涓嬩竴椤电偣鍑讳簨浠�
+    handleNext(page) {
+      this.currentPage = page;
+      this.setTableData();
+    },
+  },
+};
 </script>
+  <style lang="scss" scoped>
+.list {
+  text-align: left;
+  margin: 10px 20px;
+  color: #4b9bb7;
 
-<style>
+  header {
+    background-color: #09152f;
+    border: 1pox solid #fff;
 
+    .header-content {
+      padding: 0 40px;
+      display: flex;
+      line-height: 100px;
+      justify-content: space-between;
+      align-items: center;
+
+      .search {
+        // display: flex;
+        justify-content: flex-start;
+
+        span {
+          flex: 1;
+        }
+
+        .el-input {
+          flex: 2;
+          color: #1d3f57;
+
+          &::v-deep .el-input__inner {
+            background-color: #09152f;
+            border: 1px solid #17324c;
+          }
+        }
+        .el-select {
+          flex: 1;
+        }
+        .el-date-editor {
+          flex: 1;
+        }
+        :deep(.el-range-input) {
+          background-color: #09152f;
+        }
+      }
+      .find {
+        margin-right: auto;
+        margin-left: 30px;
+      }
+    }
+  }
+
+  :deep(.el-range-separator) {
+    padding: 0px !important;
+  }
+  main {
+    background-color: #09152f;
+    margin-top: 20px;
+    padding-bottom: 50px;
+    border: 1pox solid #fff;
+
+    .main-title {
+      line-height: 60px;
+      padding: 10px 20px;
+    }
+
+    .tools {
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      padding: 0 20px;
+
+      .funs {
+        display: flex;
+
+        .funsItem {
+          line-height: 28px;
+          display: flex;
+          align-items: center;
+          border: 1px solid #17324c;
+          border-radius: 4px;
+          font-size: 12px;
+          margin-left: 10px;
+
+          .el-checkbox {
+            width: 80px;
+            padding: 0 10px;
+          }
+
+          .el-select {
+            width: 120px;
+          }
+
+          &::v-deep .el-input__inner {
+            border: none;
+            background-color: #09152f;
+          }
+
+          &:hover {
+            border: 1px solid #4b9bb7;
+          }
+
+          &:hover .el-checkbox {
+            color: #4b9bb7;
+          }
+        }
+      }
+
+      .pagination {
+        margin-top: 50px;
+        display: flex;
+        line-height: 50px;
+        justify-content: center;
+
+        .el-pagination {
+          &::v-deep li,
+          &::v-deep .btn-prev,
+          &::v-deep .btn-next {
+            background-color: #071f39;
+            color: #4b9bb7;
+          }
+
+          &::v-deep .active {
+            background-color: #409eff;
+            color: #fff;
+          }
+        }
+      }
+    }
+    &::v-deep .warning-row {
+      background-color: #06122c;
+    }
+
+    &::v-deep .success-row {
+      background-color: #071f39;
+    }
+
+    .operationBox {
+      display: flex;
+    }
+
+    .el-divider {
+      background-color: #4b9bb7;
+    }
+    .el-table {
+      color: #4b9bb7;
+      font-size: 10px;
+      .operation {
+        display: flex;
+
+        .line {
+          padding: 0 5px;
+        }
+
+        span:hover {
+          cursor: pointer;
+        }
+      }
+    }
+  }
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0