From e1aa0ecffbabd618c71e4ad94370fb8dffe6ee1c Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期日, 21 一月 2024 20:54:49 +0800
Subject: [PATCH] 优化
---
src/views/intelligentPatrol/statistics/unlawful/area/index.vue | 536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 530 insertions(+), 6 deletions(-)
diff --git a/src/views/intelligentPatrol/statistics/unlawful/area/index.vue b/src/views/intelligentPatrol/statistics/unlawful/area/index.vue
index 3e73bbc..ce8dfbb 100644
--- a/src/views/intelligentPatrol/statistics/unlawful/area/index.vue
+++ b/src/views/intelligentPatrol/statistics/unlawful/area/index.vue
@@ -1,13 +1,537 @@
<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"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ >
+ </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
+ border
+ stripe
+ ref="multipleTable"
+ :header-cell-style="{
+ background: '#F5F5F5',
+ '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">
+ <template slot-scope="scope">
+
+ <el-button type="text" @click="seachTotalEvents(scope.row.id)">{{scope.row.count}}</el-button>
+ </template>
+ </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>
+ <el-dialog
+ title="浜嬩欢鎬绘暟"
+ :visible.sync="dialogVisibleEvent"
+ width="80%"
+ :before-close="handClose">
+ <el-table
+ border
+ stripe
+ ref="multipleTable"
+ :header-cell-style="{
+ background: '#F5F5F5',
+ 'font-weight': '650',
+ 'line-height': '45px'
+ }"
+ :data="gridData"
+ style="width: 100%"
+ :row-class-name="tableRowClassName"
+
+ >
+
+ <el-table-column
+ prop="code"
+ label="浜嬩欢缂栧彿"
+ min-width="18"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="eventSource"
+ label="闂鏉ユ簮"
+ min-width="8"
+ >
+ <template slot-scope="scope">
+ <span>{{
+ scope.row.eventSource === 2
+ ? '缃戞牸宸℃煡'
+ : '瑙嗛宸℃煡'
+ }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ :prop="mystatus === 1 ? 'category' : 'category'"
+ :label="mystatus === 1 ? '澶х被鍚嶇О' : '杩濆缓绫诲埆'"
+ :min-width="mystatus === 1 ? '10' : '15'"
+ >
+ </el-table-column>
+ <el-table-column
+ :prop="mystatus === 1 ? 'type' : 'site'"
+ :label="mystatus === 1 ? '灏忕被鍚嶇О' : '杩濆缓鍦扮偣'"
+ min-width="10"
+ >
+ </el-table-column>
+ <el-table-column
+ :prop="mystatus === 1 ? 'site' : ''"
+ :label="
+ mystatus === 1 ? '鎶ヨ鐐逛綅' : '杩濇硶寤虹瓚闀裤�佸銆侀珮'
+ "
+ :min-width="mystatus === 1 ? '10' : '20'"
+ show-overflow-tooltip
+ >
+ <template slot-scope="scope">
+ <div v-if="mystatus === 2">
+ <span>{{
+ scope.row.buildingLength +
+ '绫�' +
+ '銆�' +
+ scope.row.buildingWidth +
+ '绫�' +
+ '銆�' +
+ scope.row.buildingHigh +
+ '绫�'
+ }}</span>
+ </div>
+ <div v-else>{{ scope.row.site }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ :prop="mystatus === 1 ? 'street' : 'buildingArea'"
+ :label="mystatus === 1 ? '鎵�灞炲尯鍩�' : '杩濇硶寤虹瓚闈㈢Н'"
+ min-width="12"
+ >
+ </el-table-column>
+ <el-table-column
+ prop="alarmTime"
+ label="鎶ヨ鏃堕棿"
+ min-width="15"
+ v-if="mystatus === 1"
+ >
+ <template slot-scope="scope">
+ <span>{{ filterTime(scope.row.alarmTime) }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ :prop="mystatus === 1 ? 'continueTime' : 'materials'"
+ :label="mystatus === 1 ? '鎸佺画鏃堕棿' : '杩濇硶寤虹瓚鏉愭枡'"
+ min-width="12"
+ >
+ </el-table-column>
+ </el-table>
+
+ <div >
+ <el-pagination
+ background
+ :current-page="currentPages"
+ layout="prev, pager, next"
+ :total="totalNums"
+ :page-size="pageSizes"
+ @current-change="changeCurrentPages"
+ >
+ </el-pagination>
+ </div>
+
+ </el-dialog>
+ </main>
+ </div>
</template>
+ <script>
+import { createNamespacedHelpers } from "vuex";
+import basecase from "@/api/operate/basecase";
+import helper from "@/utils/mydate";
+const { mapActions } = createNamespacedHelpers("statistics");
-<script>
export default {
-
-}
+ data() {
+ return {
+ seachID:'',
+ dialogVisibleEvent:false,
+ mystatus:1,
+ totalNums:1,
+ pageSizes:10,
+ currentPages:1,
+ gridData:[],
+ 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(["searchByArea"]),
+ handClose(){
+ this.dialogVisibleEvent=false
+ },
+// 澶勭悊鏃堕棿
+ filterTime(time) {
+ return helper(time);
+ },
+ seachTotalEvents(id){
+ this.seachID=id
+ this.dialogVisibleEvent = true
+ console.log(this.value2)
+ let params ={
+ type:1,
+ street:id,
+ current: this.currentPages,
+ size: this.pageSizes,
+ }
+ params.startTime = this.value2[0]||''
+ params.endTime = this.value2[1]||''
+ basecase.baseCasePoolList(params).then(res=>{
+ console.log(res)
+ this.gridData =res.records
+ this.pageSizes =res.size
+ this.currentPages =res.current
+ this.totalNums = res.total
+ })
+ },
+ handleExport(e) {
+ this.$axios({
+ method: "post",
+ // url: `sccg/intelligentPatrol/statistics/export/unlawful`,
+ url: `sccg/intelligentPatrol/statistics/export/unlawful/street`,
+ responseType: "arraybuffer",
+ data: {
+ beginTime: this.value2[0],
+ endTime: this.value2[1],
+ }
+ }).then((res) => {
+ let time = new Date();
+ let deathdate = time.toLocaleDateString();
+ const blob = new Blob([res.data], {
+ type: "application/vnd.ms-excel;charset=utf-8",
+ });
+ if (window.navigator.msSaveBlob) {
+ window.navigator.msSaveBlob(blob, deathdate + "鎸夊尯鍩熺粺璁�" + ".xlsx");
+ } else {
+ const url = window.URL.createObjectURL(blob);
+ const link = document.createElement("a");
+ link.style.display = "none";
+ link.href = url;
+ link.download = deathdate + "鎸夊尯鍩熺粺璁�" + ".xlsx";
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ }
+ this.$message.success("鎿嶄綔鎴愬姛");
+ });
+ },
+ setTableDataHandle(e) {
+ this.setTableData()
+ },
+ resetTableData(e) {
+ this.value2= ''
+ this.setTableData()
+ },
+ // 璁剧疆琛ㄦ牸鏂戦┈绾�
+ tableRowClassName({ row, rowIndex }) {
+ if ((rowIndex + 1) % 2 == 0) {
+ return "warning-row";
+ } else {
+ return "success-row";
+ }
+ return "";
+ },
+ // 璁剧疆tableData
+ setTableData() {
+ const { currentPage, pageSize, context } = this;
+ this.searchByArea({
+ currentPage,
+ pageSize,
+ beginTime: this.value2[0],
+ endTime:this.value2[1],
+ }).then((res) => {
+ this.list = res.records;
+ this.totalNum = res.total;
+ });
+ },
+ changeCurrentPages(page){
+ this.currentPages = page;
+ this.seachTotalEvents(this.seachID)
+ },
+ // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
+ 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;
+ padding: 10px 20px;
+ color: #4b9bb7;
+ border: 1px solid #ccc;
+ header {
+ background-color: white;
+ border: 1px solid #fff;
-<style>
+ .header-content {
+ //padding: 0 40px;
+ display: flex;
+ line-height: 100px;
+ justify-content: space-between;
+ align-items: center;
-</style>
\ No newline at end of file
+ .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;
+ }
+ }
+ }
+
+ ::v-deep(.el-range-separator) {
+ padding: 0px !important;
+ }
+ main {
+ // background-color: #09152f;
+ margin-top: 20px;
+ padding-bottom: 50px;
+ border: 1px 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;
+ color: var(--operation-color);;
+ .line {
+ padding: 0 5px;
+ }
+
+ span:hover {
+ cursor: pointer;
+ }
+ }
+ }
+ }
+}
+</style>
--
Gitblit v1.8.0