From 6ea2efd28a5c2f5b5ca8b4dd0af056b2c6efb0ec Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Mon, 26 Dec 2022 09:18:08 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/srs-police-affairs

---
 public/img/bg/login-bg.png         |    0 
 src/router/page/index.js           |   10 
 src/views/lyout/index.vue          |   99 ++++
 public/img/bg/login-content-bg.png |    0 
 src/styles/media/index.scss        |  633 ++++++++++++++++++++------
 package-lock.json                  |   22 
 src/views/login/index.vue          |  342 ++++++++++++++
 src/router/axios.js                |   48 +-
 public/img/bg/right-bottom.png     |    0 
 src/utils/auth.js                  |   19 
 public/img/bg/editLogin.webp       |    0 
 public/img/bg/group13@2x.png       |    0 
 src/views/house/index.vue          |  168 ++++++
 public/img/bg/group16@2x.png       |    0 
 public/img/bg/group16@2x(1).png    |    0 
 public/img/bg/left-top.png         |    0 
 public/img/bg/b-t.png              |    0 
 public/img/bg/login_title@2x.png   |    0 
 package.json                       |   18 
 public/img/bg/rectangle11@2x.png   |    0 
 public/img/bg/left-bottom.png      |    0 
 public/img/bg/right-top.png        |    0 
 public/img/bg/echarts-content.png  |    0 
 public/img/bg/echarts-title.png    |    0 
 24 files changed, 1,146 insertions(+), 213 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index f0775ba..f2eee74 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -22,8 +22,10 @@
                 "element-ui": "^2.15.6",
                 "flv.js": "^1.6.2",
                 "font-awesome": "^4.7.0",
+                "js-md5": "^0.7.3",
                 "lib-flexible": "^0.3.2",
                 "moment": "^2.29.1",
+                "nprogress": "^0.2.0",
                 "postcss-px-to-viewport": "^1.1.1",
                 "postcss-px2rem": "^0.3.0",
                 "px2rem-loader": "^0.1.9",
@@ -10322,6 +10324,11 @@
             "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
             "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
         },
+        "node_modules/js-md5": {
+            "version": "0.7.3",
+            "resolved": "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz",
+            "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
+        },
         "node_modules/js-message": {
             "version": "1.0.7",
             "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.7.tgz",
@@ -11374,6 +11381,11 @@
             "engines": {
                 "node": ">=4"
             }
+        },
+        "node_modules/nprogress": {
+            "version": "0.2.0",
+            "resolved": "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz",
+            "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA=="
         },
         "node_modules/nth-check": {
             "version": "2.1.1",
@@ -26310,6 +26322,11 @@
             "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
             "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
         },
+        "js-md5": {
+            "version": "0.7.3",
+            "resolved": "https://registry.npmmirror.com/js-md5/-/js-md5-0.7.3.tgz",
+            "integrity": "sha512-ZC41vPSTLKGwIRjqDh8DfXoCrdQIyBgspJVPXHBGu4nZlAEvG3nf+jO9avM9RmLiGakg7vz974ms99nEV0tmTQ=="
+        },
         "js-message": {
             "version": "1.0.7",
             "resolved": "https://registry.npmjs.org/js-message/-/js-message-1.0.7.tgz",
@@ -27203,6 +27220,11 @@
                 "path-key": "^2.0.0"
             }
         },
+        "nprogress": {
+            "version": "0.2.0",
+            "resolved": "https://registry.npmmirror.com/nprogress/-/nprogress-0.2.0.tgz",
+            "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA=="
+        },
         "nth-check": {
             "version": "2.1.1",
             "resolved": "https://registry.npmmirror.com/nth-check/-/nth-check-2.1.1.tgz",
diff --git a/package.json b/package.json
index 3cdc28c..046b7cc 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,11 @@
     },
     "dependencies": {
         "@dvgis/dc-sdk": "^2.16.2",
+        "@fullcalendar/core": "^5.10.1",
+        "@fullcalendar/daygrid": "^5.10.1",
+        "@fullcalendar/interaction": "^5.10.1",
+        "@fullcalendar/timegrid": "^5.10.1",
+        "@fullcalendar/vue": "^5.10.1",
         "@turf/turf": "^6.5.0",
         "axios": "^0.22.0",
         "core-js": "^3.6.5",
@@ -17,23 +22,20 @@
         "element-ui": "^2.15.6",
         "flv.js": "^1.6.2",
         "font-awesome": "^4.7.0",
+        "js-md5": "^0.7.3",
         "lib-flexible": "^0.3.2",
+        "moment": "^2.29.1",
+        "nprogress": "^0.2.0",
         "postcss-px-to-viewport": "^1.1.1",
         "postcss-px2rem": "^0.3.0",
         "px2rem-loader": "^0.1.9",
         "qs.js": "^0.1.12",
+        "tippy.js": "^6.3.7",
         "vue": "^2.6.11",
         "vue-axios": "^3.3.7",
         "vue-router": "^3.2.0",
         "vue-seamless-scroll": "^1.1.23",
-        "vuex": "^3.4.0",
-        "@fullcalendar/core": "^5.10.1",
-        "@fullcalendar/daygrid": "^5.10.1",
-        "@fullcalendar/interaction": "^5.10.1",
-        "@fullcalendar/timegrid": "^5.10.1",
-        "@fullcalendar/vue": "^5.10.1",
-        "moment": "^2.29.1",
-        "tippy.js": "^6.3.7"
+        "vuex": "^3.4.0"
     },
     "devDependencies": {
         "@vue/cli-plugin-babel": "~4.5.15",
diff --git a/public/img/bg/b-t.png b/public/img/bg/b-t.png
new file mode 100644
index 0000000..854450e
--- /dev/null
+++ b/public/img/bg/b-t.png
Binary files differ
diff --git a/public/img/bg/echarts-content.png b/public/img/bg/echarts-content.png
new file mode 100644
index 0000000..489c7ef
--- /dev/null
+++ b/public/img/bg/echarts-content.png
Binary files differ
diff --git a/public/img/bg/echarts-title.png b/public/img/bg/echarts-title.png
new file mode 100644
index 0000000..198e6cb
--- /dev/null
+++ b/public/img/bg/echarts-title.png
Binary files differ
diff --git a/public/img/bg/editLogin.webp b/public/img/bg/editLogin.webp
new file mode 100644
index 0000000..f677b0d
--- /dev/null
+++ b/public/img/bg/editLogin.webp
Binary files differ
diff --git a/public/img/bg/group13@2x.png b/public/img/bg/group13@2x.png
new file mode 100644
index 0000000..46cd0c1
--- /dev/null
+++ b/public/img/bg/group13@2x.png
Binary files differ
diff --git "a/public/img/bg/group16@2x\0501\051.png" "b/public/img/bg/group16@2x\0501\051.png"
new file mode 100644
index 0000000..4daa1b4
--- /dev/null
+++ "b/public/img/bg/group16@2x\0501\051.png"
Binary files differ
diff --git a/public/img/bg/group16@2x.png b/public/img/bg/group16@2x.png
new file mode 100644
index 0000000..b994d86
--- /dev/null
+++ b/public/img/bg/group16@2x.png
Binary files differ
diff --git a/public/img/bg/left-bottom.png b/public/img/bg/left-bottom.png
new file mode 100644
index 0000000..9f08ca1
--- /dev/null
+++ b/public/img/bg/left-bottom.png
Binary files differ
diff --git a/public/img/bg/left-top.png b/public/img/bg/left-top.png
new file mode 100644
index 0000000..3631075
--- /dev/null
+++ b/public/img/bg/left-top.png
Binary files differ
diff --git a/public/img/bg/login-bg.png b/public/img/bg/login-bg.png
new file mode 100644
index 0000000..b6f6bd7
--- /dev/null
+++ b/public/img/bg/login-bg.png
Binary files differ
diff --git a/public/img/bg/login-content-bg.png b/public/img/bg/login-content-bg.png
new file mode 100644
index 0000000..684c716
--- /dev/null
+++ b/public/img/bg/login-content-bg.png
Binary files differ
diff --git a/public/img/bg/login_title@2x.png b/public/img/bg/login_title@2x.png
new file mode 100644
index 0000000..b488434
--- /dev/null
+++ b/public/img/bg/login_title@2x.png
Binary files differ
diff --git a/public/img/bg/rectangle11@2x.png b/public/img/bg/rectangle11@2x.png
new file mode 100644
index 0000000..c46923e
--- /dev/null
+++ b/public/img/bg/rectangle11@2x.png
Binary files differ
diff --git a/public/img/bg/right-bottom.png b/public/img/bg/right-bottom.png
new file mode 100644
index 0000000..8886ab3
--- /dev/null
+++ b/public/img/bg/right-bottom.png
Binary files differ
diff --git a/public/img/bg/right-top.png b/public/img/bg/right-top.png
new file mode 100644
index 0000000..1147690
--- /dev/null
+++ b/public/img/bg/right-top.png
Binary files differ
diff --git a/src/router/axios.js b/src/router/axios.js
index f388211..663b141 100644
--- a/src/router/axios.js
+++ b/src/router/axios.js
@@ -14,6 +14,8 @@
  * isToken是否需要token
  */
 import axios from 'axios'
+import router from '@/router/page/index.js'
+import { Message } from 'element-ui'
 
 // 获取公共配置域名
 
@@ -30,11 +32,11 @@
     // baseURL: 'http://192.168.0.115:82',
     // baseURL: 'http://192.168.0.112:18080',
 
-    // baseURL: 'http://192.168.0.112:9091',
+    baseURL: 'http://192.168.0.112:9091',
     // baseURL: 'http://192.168.0.106:1888/api',
 
     // 内网部署地址
-    baseURL: 'http://10.141.11.11:82',
+    // baseURL: 'http://10.141.11.11:82',
     timeout: 600000 // request timeout
 })
 
@@ -75,28 +77,26 @@
 )
 
 // http response 拦截
-// service.interceptors.response.use(
-//     (res) => {
-//         const code = res.data.code
+service.interceptors.response.use(
+    (res) => {
+        // console.log(res, 12569)
+        const code = res.data.code
+        if (code == 403 && res.data.data == 'token 验证失败!') {
+            // sessionStorage.removeItem('token')
+            router.push('/login')
+        } else {
+            return res
+        }
+    },
+    (error) => {
+        Message({
+            message: error.message,
+            type: 'error',
+            duration: 5 * 1000
+        })
 
-//         // console.log(code, 555)
-
-//         if (code == 403 && res.data.data == 'token 验证失败!') {
-//             sessionStorage.removeItem('token')
-//             router.push('/login')
-//         } else {
-//             return res
-//         }
-//     },
-//     (error) => {
-//         Message({
-//             message: error.message,
-//             type: 'error',
-//             duration: 5 * 1000
-//         })
-
-//         return Promise.reject(new Error(error))
-//     }
-// )
+        return Promise.reject(new Error(error))
+    }
+)
 
 export default service
diff --git a/src/router/page/index.js b/src/router/page/index.js
index 03a3369..cca9aeb 100644
--- a/src/router/page/index.js
+++ b/src/router/page/index.js
@@ -17,9 +17,19 @@
 const videoList = () => import('../../views/video/list.vue')
 const videoRegion = () => import('../../views/video/region.vue')
 const activity = () => import('../../views/activity/index.vue')
+const login = () => import('../../views/login/index.vue')
 
 const routes = [
     {
+        path: '/login',
+        name: 'login',
+        component: resolve => require(['../../views/login/index.vue'], resolve),
+        meta: {
+            title: '登录页',
+            isAuth: false
+        }
+    },
+    {
         path: '/',
         redirect: '/lyout'
     },
diff --git a/src/styles/media/index.scss b/src/styles/media/index.scss
index 43d068d..5c61877 100644
--- a/src/styles/media/index.scss
+++ b/src/styles/media/index.scss
@@ -40,22 +40,22 @@
                                 border-top: countSizeVh(14) solid transparent;
                                 top: countSizeVh(28);
                                 left: countSizeVw(72, 1920);
-            
+
                                 div {
                                     height: countSizeVh(36);
                                     line-height: countSizeVh(36);
                                     font-size: countSizeVh(16);
                                 }
-            
+
                                 div:first-child {
                                     padding-top: countSizeVh(10);
                                 }
-            
+
                                 div:last-child {
                                     padding-bottom: countSizeVh(10);
                                 }
                             }
-            
+
                         }
                     }
                 }
@@ -91,7 +91,116 @@
                                     height: countSizeVh(58);
                                     line-height: countSizeVh(58);
                                     font-size: countSizeVh(16);
+
+                                    .title-num {
+                                        font-size: countSizeVh(16);
+                                    }
+
+                                    .timer {
+                                        width: countSizeVw(250, 1920);
+                                        height: countSizeVh(30);
+
+                                        .el-range-editor.el-input__inner {
+                                            width: 100% !important;
+                                            height: countSizeVh(32);
+                                        }
+
+                                        .el-range-editor .el-range-input {
+                                            font-size: countSizeVh(14);
+                                            height: countSizeVh(32);
+                                            line-height: countSizeVh(32);
+                                        }
+
+                                        .el-icon-date:before {
+                                            font-size: countSizeVh(14);
+                                        }
+
+                                        .el-date-editor .el-range__icon {
+                                            line-height: countSizeVh(32);
+                                            height: countSizeVh(32);
+                                            margin-left: countSizeVw(4, 1920);
+                                        }
+
+                                        .el-date-editor .el-range-separator {
+                                            height: countSizeVh(32);
+                                            line-height: countSizeVh(32);
+                                            font-size: countSizeVh(14);
+                                        }
+
+                                        .el-select {
+                                            height: countSizeVh(32);
+                                        }
+
+                                        .el-input--suffix .el-input__inner {
+                                            height: countSizeVh(32);
+                                            font-size: countSizeVh(14);
+                                            padding-left: countSizeVw(10, 1920);
+                                        }
+
+                                        .el-select .el-input .el-select__caret {
+                                            font-size: countSizeVh(14);
+                                            line-height: countSizeVh(32);
+                                        }
+                                    }
+
+                                    .legend {
+                                        width: calc(100% - countSizeVw(36, 1920));
+
+                                        ul {
+                                            li {
+                                                margin-right: countSizeVw(10, 1920);
+
+                                                div {
+                                                    width: countSizeVw(20, 1920);
+                                                    border-radius: countSizeVh(4);
+                                                    margin-top: countSizeVh(5);
+                                                    margin-right: countSizeVw(2, 1920);
+                                                }
+                                            }
+                                        }
+                                    }
                                 }
+
+                                .table-box {
+                                    .el-checkbox__inner {
+                                        width: countSizeVh(20);
+                                        height: countSizeVh(20);
+                                    }
+
+                                    .el-checkbox__label {
+                                        font-size: countSizeVh(16) !important;
+                                    }
+
+                                    .el-table__header-wrapper {
+                                        height: countSizeVh(48);
+
+                                        .el-table__header {
+                                            height: 100%;
+                                        }
+                                    }
+
+                                    .el-table .el-table__cell {
+                                        padding: 0;
+                                    }
+
+                                    .el-table th.el-table__cell {
+                                        height: 100%;
+                                    }
+
+                                    .el-table .cell {
+                                        line-height: countSizeVh(48);
+                                        font-size: countSizeVh(16);
+                                    }
+
+                                    .el-table th.el-table__cell>.cell {
+                                        height: 100%;
+                                    }
+
+                                    .el-table__empty-text {
+                                        font-size: countSizeVh(16);
+                                    }
+                                }
+
 
                                 .sub-title {
                                     line-height: countSizeVh(36);
@@ -100,7 +209,8 @@
                                 .sub-tab {
                                     padding: countSizeVh(10);
 
-                                    .tab {
+                                    .tab,
+                                    .tab3 {
 
                                         &>div {
                                             height: countSizeVh(22);
@@ -130,10 +240,71 @@
                             left: countSizeVw(400, 1920);
                             width: calc(100% - countSizeVw(400, 1920) * 2);
                             height: countSizeVh(320);
+
+                            .header {
+                                height: countSizeVh(56);
+
+                                .bottom-title {
+                                    left: countSizeVw(18, 1920);
+                                    height: countSizeVh(56);
+                                    line-height: countSizeVh(56);
+                                    font-size: countSizeVh(16);
+                                    letter-spacing: countSizeVw(2, 1920);
+                                }
+
+                                .timeTab {
+                                    top: countSizeVh(22);
+                                    right: countSizeVw(12, 1920);
+                                    border-radius: countSizeVh(6);
+
+                                    span {
+                                        padding: 0 countSizeVw(10, 1920);
+                                        height: countSizeVh(26);
+                                        line-height: countSizeVh(26);
+                                    }
+                                }
+
+                                .history-tab {
+                                    top: countSizeVh(22);
+                                    right: countSizeVw(96, 1920);
+                                    border-radius: countSizeVh(6);
+
+                                    span {
+                                        padding: 0 countSizeVw(10, 1920);
+                                        height: countSizeVh(26);
+                                        line-height: countSizeVh(26);
+                                    }
+                                }
+                            }
+
+                            .body {
+                                margin: countSizeVh(12);
+                                margin-top: countSizeVh(10);
+                                margin-bottom: countSizeVh(14);
+                                width: calc(100% - countSizeVw(24, 1920));
+                                height: calc(100% - countSizeVh(80));
+
+                                .warp {
+                                    height: calc(100% - countSizeVh(44));
+                                }
+
+                                ul {
+                                    li {
+                                        height: countSizeVh(44);
+                                        line-height: countSizeVh(44);
+                                    }
+                                }
+                            }
                         }
 
                         .region-select {
                             top: countSizeVh(20);
+                            width: countSizeVw(640, 1920);
+                            height: countSizeVh(36);
+
+                            .selects-container .selects-box .text {
+                                font-size: countSizeVh(15);
+                            }
                         }
 
                         .center-container {
@@ -142,18 +313,27 @@
                             .layers-control-btn {
                                 width: countSizeVw(96, 1920);
                                 height: countSizeVh(40);
-                                border-radius: countSizeVh(20)
+                                border-radius: countSizeVh(20);
+
+                                .el-checkbox .el-checkbox__label {
+                                    font-size: countSizeVh(16);
+                                }
+
+                                .el-checkbox .el-checkbox__inner {
+                                    width: countSizeVh(20);
+                                    height: countSizeVh(20);
+
+                                }
+
+                                .el-checkbox .el-checkbox__inner::after {
+                                    height: countSizeVh(12);
+                                    left: countSizeVw(7, 1920);
+                                }
                             }
                         }
 
-                        .el-checkbox__inner {
-                            width: countSizeVh(20);
-                            height: countSizeVh(20);
-                        }
 
-                        .el-checkbox__label {
-                            font-size: countSizeVh(16) !important;
-                        }
+
                     }
 
                     .house-page {
@@ -171,6 +351,13 @@
                                     font-size: countSizeVh(24);
                                     border: countSizeVh(1) solid rgb(0, 92, 169);
                                     border-radius: 0 countSizeVh(20) countSizeVh(20) 0;
+                                }
+
+                                .el-input__inner {
+                                    height: countSizeVh(40);
+                                    line-height: countSizeVh(40);
+                                    padding: 0 countSizeVw(15, 1920);
+                                    border-radius: countSizeVh(4);
                                 }
                             }
 
@@ -218,6 +405,7 @@
 
                                         &>div {
                                             padding: 0 countSizeVw(10, 1920);
+                                            font-size: countSizeVh(16);
 
                                             .l {
                                                 width: countSizeVw(80, 1920);
@@ -267,7 +455,7 @@
                                                 width: countSizeVw(20, 1920);
                                                 height: countSizeVh(60);
                                                 padding-top: countSizeVh(12);
-    
+
                                                 i {
                                                     font-size: countSizeVh(30);
                                                     margin-left: countSizeVw(-5, 1920);
@@ -302,35 +490,35 @@
 
                                         .ridgepole-info {
                                             .content {
-                                                & > div {
+                                                &>div {
                                                     height: countSizeVh(26);
                                                     line-height: countSizeVh(26);
                                                     border-right: countSizeVh(1) solid #50555f;
-                    
-                                                    & > div:last-child {
-                                                        margin-left: countSizeVw(14,1920);
+
+                                                    &>div:last-child {
+                                                        margin-left: countSizeVw(14, 1920);
                                                         font-size: countSizeVh(18);
                                                     }
                                                 }
                                             }
                                         }
-                    
+
                                         .people-info {
                                             .content {
                                                 .two {
                                                     margin-top: countSizeVh(16);
                                                 }
-                    
+
                                                 .one,
                                                 .two {
-                                                    & > div {
-                                                        & > div:first-child {
+                                                    &>div {
+                                                        &>div:first-child {
                                                             height: countSizeVh(30);
                                                             line-height: countSizeVh(30);
                                                             font-size: countSizeVh(18);
                                                         }
-                    
-                                                        & > div:last-child {
+
+                                                        &>div:last-child {
                                                             height: countSizeVh(26);
                                                             line-height: countSizeVh(26);
                                                         }
@@ -338,20 +526,21 @@
                                                 }
                                             }
                                         }
-                    
+
                                         .house-info {
                                             .content {
-                                                & > div {
-                                                    & > div:first-child {
+                                                &>div {
+                                                    &>div:first-child {
                                                         height: countSizeVh(30);
                                                         line-height: countSizeVh(30);
                                                         font-size: countSizeVh(18);
                                                     }
                                                 }
                                             }
+
                                             border-bottom: countSizeVh(1) dashed #ccc;
                                         }
-                    
+
                                         .ridgepole-info,
                                         .people-info,
                                         .house-info {
@@ -359,41 +548,47 @@
                                                 height: countSizeVh(40);
                                                 line-height: countSizeVh(40);
                                             }
-                    
+
                                             .content {
                                                 padding: countSizeVh(10) 0;
                                             }
                                         }
-                    
+
                                         .house-element-info {
+
                                             .condo,
                                             .legend {
                                                 height: countSizeVh(36);
-                    
+
                                                 .type {
-                                                    width: countSizeVw(80,1920);
+                                                    width: countSizeVw(80, 1920);
                                                 }
-                    
+
                                                 .type-select {
-                                                    margin-left: countSizeVw(20,1920);
-                    
+                                                    margin-left: countSizeVw(20, 1920);
+
                                                     :deep(.el-input--suffix .el-input__inner) {
-                                                        padding-right: countSizeVw(54,1920);
+                                                        padding-right: countSizeVw(54, 1920);
                                                     }
-                                                    .el-input--small{
+
+                                                    .el-input--small {
                                                         font-size: countSizeVh(18);
                                                     }
-                                                    .el-select:hover .el-input__inner{
+
+                                                    .el-select:hover .el-input__inner {
                                                         height: countSizeVh(36);
                                                     }
+
                                                     .el-input--small .el-input__inner {
                                                         height: countSizeVh(36);
 
                                                     }
-                                                    .el-input__suffix{
+
+                                                    .el-input__suffix {
                                                         height: countSizeVh(36);
-                                                        margin-right: countSizeVw(6,1920);
-                                                        .el-icon-arrow-up:before{
+                                                        margin-right: countSizeVw(6, 1920);
+
+                                                        .el-icon-arrow-up:before {
                                                             font-size: countSizeVh(18);
                                                             height: countSizeVh(36);
                                                             line-height: countSizeVh(36);
@@ -401,191 +596,192 @@
                                                         }
                                                     }
                                                 }
-                    
+
                                                 .type-val {
-                                                    & > div {
-                                                        & > span {
-                                                            margin: 0 countSizeVw(10,1920);
-                                                            width: countSizeVw(14,1920);
+                                                    &>div {
+                                                        &>span {
+                                                            margin: 0 countSizeVw(10, 1920);
+                                                            width: countSizeVw(14, 1920);
                                                             height: countSizeVh(8);
                                                         }
+
                                                         .chuzu {
                                                             border: countSizeVh(1) solid #348b3a;
                                                         }
+
                                                         .zizhu {
                                                             border: countSizeVh(1) solid #2c77bb;
                                                         }
+
                                                         .kongzhi {
                                                             border: countSizeVh(1) solid #5c6169;
                                                         }
+
                                                         .shangye {
                                                             border: countSizeVh(1) solid #cc9456;
                                                         }
                                                     }
                                                 }
                                             }
-                    
+
                                             .floor-outBox {
                                                 height: countSizeVh(26);
                                                 margin-top: countSizeVh(9);
-                    
+
                                                 .floorBtn {
-                                                    left: countSizeVw(30,1920);
+                                                    left: countSizeVw(30, 1920);
                                                     top: -countSizeVh(2);
-                                                    width: countSizeVw(20,1920);
+                                                    width: countSizeVw(20, 1920);
                                                     height: countSizeVh(26);
-                    
+
                                                     i {
                                                         font-size: countSizeVh(30);
-                                                        margin-left: -countSizeVw(5,1920);
+                                                        margin-left: -countSizeVw(5, 1920);
                                                     }
                                                 }
-                    
+
                                                 .rightFloorBtn {
-                                                    left: countSizeVw(350,1920);
+                                                    left: countSizeVw(350, 1920);
                                                 }
-                    
+
                                                 .floor-box {
-                                                    width: countSizeVw(252,1920);
+                                                    width: countSizeVw(252, 1920);
                                                     height: countSizeVh(26);
-                                                    left: countSizeVw(67,1920);
-                    
+                                                    left: countSizeVw(67, 1920);
+
                                                     .floor-num {
-                                                        width: countSizeVw(504,1920);
+                                                        width: countSizeVw(504, 1920);
                                                         left: 0;
 
-                                                        & > div {
-                                                            margin: 0 countSizeVw(4,1920);
-                                                            width: countSizeVw(84,1920);
+                                                        &>div {
+                                                            margin: 0 countSizeVw(4, 1920);
+                                                            width: countSizeVw(84, 1920);
                                                             height: countSizeVh(26);
                                                             border-radius: countSizeVh(13);
                                                         }
-                    
-                                                        & > .on {
+
+                                                        &>.on {
                                                             border: countSizeVh(1) solid orange;
                                                         }
                                                     }
                                                 }
                                             }
-                    
+
                                             .floor-detail {
                                                 margin-top: countSizeVh(14);
                                                 height: countSizeVh(220);
-                    
-                                                & > div {
+
+                                                &>div {
                                                     margin: countSizeVh(8);
                                                     height: countSizeVh(36);
                                                     line-height: countSizeVh(36);
-                    
+
                                                     .title {
-                                                        width: countSizeVw(50,1920);
+                                                        width: countSizeVw(50, 1920);
                                                     }
-                    
+
                                                     .detail {
-                                                        & > div {
-                                                            margin: 0 countSizeVw(4,1920);
-                                                            width: countSizeVw(68,1920);
+                                                        &>div {
+                                                            margin: 0 countSizeVw(4, 1920);
+                                                            width: countSizeVw(68, 1920);
                                                             height: countSizeVh(36);
                                                             border: countSizeVh(1) solid #ccc;
-                    
+
                                                             .flow,
                                                             .focus,
                                                             .warning {
-                                                                right: countSizeVw(4,1920);
-                                                                width: countSizeVw(6,1920);
+                                                                right: countSizeVw(4, 1920);
+                                                                width: countSizeVw(6, 1920);
                                                                 height: countSizeVh(6);
                                                             }
-                    
+
                                                             .flow {
                                                                 top: calc((100% - countSizeVh(18)) / 4);
                                                             }
-                    
+
                                                             .focus {
-                                                                top: calc(
-                                                                    (100% - countSizeVh(18)) / 4 * 2 + countSizeVh(6)
-                                                                );
+                                                                top: calc((100% - countSizeVh(18)) / 4 * 2 + countSizeVh(6));
                                                             }
-                    
+
                                                             .warning {
-                                                                top: calc(
-                                                                    (100% - countSizeVh(18)) / 4 * 3 + countSizeVh(12)
-                                                                );
+                                                                top: calc((100% - countSizeVh(18)) / 4 * 3 + countSizeVh(12));
                                                             }
                                                         }
-                    
-                                                        & > .chuzu {
+
+                                                        &>.chuzu {
                                                             border: countSizeVh(1) solid #3a8b3a;
                                                         }
-                    
-                                                        & > .zizhu {
+
+                                                        &>.zizhu {
                                                             border: countSizeVh(1) solid #2c77bb;
                                                         }
-                    
-                                                        & > .kongzhi {
+
+                                                        &>.kongzhi {
                                                             border: countSizeVh(1) solid #5c6169;
                                                         }
-                    
-                                                        & > .shangye {
+
+                                                        &>.shangye {
                                                             border: countSizeVh(1) solid #cc9456;
                                                         }
                                                     }
                                                 }
                                             }
                                         }
-                                       
+
                                     }
                                 }
 
                                 .police-info {
                                     .tableClass {
-                                        width: countSizeVw(600,1920);
+                                        width: countSizeVw(600, 1920);
                                         height: countSizeVh(400);
                                     }
-                    
+
                                     .tableClass th,
                                     .tableClass td {
-                                        width: countSizeVw(200,1920);
+                                        width: countSizeVw(200, 1920);
                                     }
                                 }
                             }
                         }
+
                         .search-content {
-                            left:  countSizeVw(760, 1920);
+                            left: countSizeVw(760, 1920);
                             top: countSizeVh(40);
-                            width: countSizeVh(460);
+                            width: countSizeVw(460, 1920);
                             height: countSizeVh(36);
-                    
+
                             input {
-                                width: calc(100% - countSizeVw(80, 1920));
+                                width: countSizeVw(380, 1920);
                                 font-size: countSizeVh(18);
                                 border: countSizeVh(1) solid rgb(0, 92, 169);
                                 border-radius: countSizeVh(20) 0 0 countSizeVh(20);
                                 // vertical-align: top;
                             }
-                    
+
                             button {
                                 font-size: countSizeVh(24);
-                                width:  countSizeVw(80, 1920);
+                                width: countSizeVw(80, 1920);
                                 border: countSizeVh(1) solid rgb(0, 92, 169);
                                 border-radius: 0 countSizeVh(20) countSizeVh(20) 0;
                             }
-                    
+
                             button:active {
                                 border: countSizeVh(1) solid rgb(0, 92, 169);
                             }
                         }
 
                         .searchExtensively-val-box {
-                            top:  countSizeVh(80);
-                            left:  countSizeVw(760,1920);
-                            width:  countSizeVw(314,1920);
-                            max-height:  countSizeVh(200);
-                            border-radius:  countSizeVh(10);
-                    
-                            & > div {
+                            top: countSizeVh(80);
+                            left: countSizeVw(760, 1920);
+                            width: countSizeVw(380, 1920);
+                            max-height: countSizeVh(400);
+                            border-radius: countSizeVh(10);
+
+                            &>div {
                                 div {
-                                    padding: 0  countSizeVw(10,1920);
-                                    line-height:  countSizeVh(36);
+                                    padding: 0 countSizeVw(10, 1920);
+                                    line-height: countSizeVh(36);
                                 }
                             }
                         }
@@ -702,9 +898,9 @@
 
                                     .el-table__header {
                                         height: 100%;
-
                                     }
                                 }
+
                                 .el-table .el-table__cell {
                                     padding: 0;
                                 }
@@ -804,7 +1000,8 @@
                             .draw-btn {
                                 margin: countSizeVh(8) countSizeVw(8, 1920);
                                 height: countSizeVh(26);
-                                .el-button--mini{
+
+                                .el-button--mini {
                                     font-size: countSizeVh(16);
                                     padding: countSizeVh(8) 0;
                                     border-radius: countSizeVh(4);
@@ -961,12 +1158,12 @@
 
                                     .el-table__header-wrapper {
                                         height: countSizeVh(48);
-    
+
                                         .el-table__header {
                                             height: 100%;
                                         }
                                     }
-    
+
                                     .el-table .el-table__cell {
                                         padding: 0;
                                     }
@@ -974,16 +1171,16 @@
                                     .el-table th.el-table__cell {
                                         height: 100%;
                                     }
-    
+
                                     .el-table .cell {
                                         line-height: countSizeVh(48);
                                         font-size: countSizeVh(16);
                                     }
-    
+
                                     .el-table th.el-table__cell>.cell {
                                         height: 100%;
                                     }
-    
+
                                     .el-table__empty-text {
                                         font-size: countSizeVh(16);
                                     }
@@ -994,20 +1191,20 @@
                                         &>div {
                                             display: flex;
                                             align-items: center;
-    
+
                                             &>button {
                                                 width: countSizeVh(32);
                                                 height: countSizeVh(32);
-    
+
                                                 &>i {
                                                     font-size: countSizeVh(16);
                                                 }
                                             }
-    
+
                                             &>ul {
                                                 display: flex;
                                                 align-items: center;
-    
+
                                                 li {
                                                     width: countSizeVh(32);
                                                     height: countSizeVh(32);
@@ -1017,7 +1214,7 @@
                                             }
                                         }
 
-                                        
+
                                     }
                                 }
                             }
@@ -1045,7 +1242,8 @@
                                         width: countSizeVw(88, 1920);
                                         font-size: countSizeVh(16);
                                     }
-                                    .category-value{
+
+                                    .category-value {
                                         .category-input {
                                             width: 80%;
                                             height: countSizeVh(32);
@@ -1053,7 +1251,7 @@
                                             border: countSizeVh(1) solid rgb(0, 92, 169);
                                             border-radius: countSizeVh(5) 0 0 countSizeVw(5, 1920);
                                         }
-    
+
                                         .category-button {
                                             font-size: countSizeVh(20);
                                             // width: countSizeVw(60, 1920);
@@ -1062,54 +1260,56 @@
                                             border: countSizeVh(1) solid rgb(0, 92, 169);
                                             border-radius: 0 countSizeVw(5, 1920) countSizeVh(5) 0;
                                         }
-    
+
                                         .category-button:active {
                                             border: countSizeVh(1) solid rgb(0, 92, 169);
                                         }
 
-                                        .el-range-editor.el-input__inner{
-                                            width: 100%!important;
+                                        .el-range-editor.el-input__inner {
+                                            width: 100% !important;
                                             height: countSizeVh(32);
                                         }
 
-                                        .el-range-editor .el-range-input{
+                                        .el-range-editor .el-range-input {
                                             font-size: countSizeVh(14);
                                             height: countSizeVh(32);
                                             line-height: countSizeVh(32);
                                         }
 
-                                        .el-icon-date:before{
+                                        .el-icon-date:before {
                                             font-size: countSizeVh(14);
                                         }
 
-                                        .el-date-editor .el-range__icon{
-                                           line-height: countSizeVh(32);
-                                           height: countSizeVh(32);
-                                           margin-left: countSizeVw(4, 1920);
+                                        .el-date-editor .el-range__icon {
+                                            line-height: countSizeVh(32);
+                                            height: countSizeVh(32);
+                                            margin-left: countSizeVw(4, 1920);
                                         }
 
-                                        .el-date-editor .el-range-separator{
-                                           height: countSizeVh(32);
-                                           line-height: countSizeVh(32);
-                                           font-size: countSizeVh(14);
+                                        .el-date-editor .el-range-separator {
+                                            height: countSizeVh(32);
+                                            line-height: countSizeVh(32);
+                                            font-size: countSizeVh(14);
                                         }
 
                                         .el-select {
                                             width: 100%;
                                             height: countSizeVh(32);
                                         }
-                                        .el-input--suffix .el-input__inner{
+
+                                        .el-input--suffix .el-input__inner {
                                             height: countSizeVh(32);
                                             font-size: countSizeVh(14);
                                             padding-left: countSizeVw(10, 1920);
                                         }
-                                        .el-select .el-input .el-select__caret{
+
+                                        .el-select .el-input .el-select__caret {
                                             font-size: countSizeVh(14);
                                             line-height: countSizeVh(32);
                                         }
                                     }
 
-                                  
+
                                 }
                             }
 
@@ -1196,26 +1396,30 @@
                         .second-container {
                             top: countSizeVh(10);
                             width: countSizeVw(240, 1920);
-                          
-                            .el-tree-node__content{
+
+                            .el-tree-node__content {
                                 height: countSizeVh(30);
                                 font-size: countSizeVh(16);
                             }
-                            .el-tree-node__label{
+
+                            .el-tree-node__label {
                                 font-size: countSizeVh(16);
                             }
-                            .el-checkbox .el-checkbox__inner{
+
+                            .el-checkbox .el-checkbox__inner {
                                 height: countSizeVh(20);
                                 width: countSizeVh(20);
                                 border-radius: countSizeVh(2);
                             }
-                            .el-tree-node__expand-icon{
+
+                            .el-tree-node__expand-icon {
                                 font-size: countSizeVh(16);
 
                             }
-                            .el-checkbox .el-checkbox__inner::after{
+
+                            .el-checkbox .el-checkbox__inner::after {
                                 height: countSizeVh(16);
-                                left:countSizeVw(7, 1920);
+                                left: countSizeVw(7, 1920);
                             }
 
                         }
@@ -1271,7 +1475,7 @@
 
                 }
 
-                .flexible-btn{
+                .flexible-btn {
                     font-size: countSizeVh(24);
                 }
 
@@ -1386,40 +1590,151 @@
                     bottom: countSizeVh(154);
                 }
             }
+
+            .auth-page {
+                .loginTitle {
+                    font-size: countSizeVh(46);
+                    letter-spacing: countSizeVh(6);
+                }
+
+                .login_content {
+                    width: countSizeVw(300, 1920);
+                    padding: countSizeVh(30);
+                    background-size: 100% 100%, countSizeVh(25), countSizeVh(25), countSizeVh(25), countSizeVh(25);
+
+                    p {
+                        font-size: countSizeVh(26);
+                        margin-bottom: countSizeVh(15);
+                        letter-spacing: countSizeVh(4);
+                    }
+
+                    .el-button--primary {
+                        height: countSizeVh(34);
+                        border-radius: countSizeVh(2);
+                    }
+
+                    .el-button {
+                        height: countSizeVh(34);
+                        line-height: countSizeVh(24);
+                        font-size: countSizeVh(14);
+                    }
+
+                    .el-input__inner,
+                    .el-input__icon {
+                        font-size: countSizeVh(14);
+                        line-height: countSizeVh(34);
+                    }
+
+                    .el-input__inner {
+                        height: countSizeVh(34);
+                    }
+
+                    .el-input__prefix {
+                        left: countSizeVw(5, 1920);
+                    }
+
+                    .el-input--prefix .el-input__inner {
+                        padding-left: countSizeVw(30, 1920);
+                    }
+                }
+            }
         }
-        .option-css,.activity-option,.unit-option{
+
+        .option-css,
+        .activity-option,
+        .unit-option {
             height: countSizeVh(40);
             line-height: countSizeVh(40);
             font-size: countSizeVh(16);
         }
-        .option-css:hover,.option-css.selected {
+
+        .option-css:hover,
+        .option-css.selected {
             color: #409EFF;
         }
+
         .option-css:hover {
-            background-color:rgba(0, 92, 169, 0.3) !important;
+            background-color: rgba(0, 92, 169, 0.3) !important;
         }
+
         .el-select-dropdown__wrap {
             max-height: countSizeVh(200);
         }
-        .el-picker-panel{
-            width: countSizeVw(536, 1920)!important;
+
+        .el-picker-panel {
+            width: countSizeVw(536, 1920) !important;
         }
-        .el-date-range-picker__header div{
+
+        .el-date-range-picker__header div {
             font-size: countSizeVh(16);
             height: countSizeVh(36);
             line-height: countSizeVh(36);
         }
+
         .el-picker-panel .el-date-range-picker__header button {
             font-size: countSizeVh(16);
             height: countSizeVh(36);
             line-height: countSizeVh(36);
         }
-        .el-date-table td span,.el-date-table th{
+
+        .el-date-table td span,
+        .el-date-table th {
             font-size: countSizeVh(16);
         }
-        .el-date-table tr{
+
+        .el-date-table tr {
             height: countSizeVh(22);
         }
+
+        .el-picker-panel__sidebar {
+            width: countSizeVw(110, 1920);
+        }
+
+        .el-picker-panel__shortcut {
+            font-size: countSizeVh(14);
+            height: countSizeVh(32);
+        }
+
+        .el-picker-panel [slot=sidebar]+.el-picker-panel__body,
+        .el-picker-panel__sidebar+.el-picker-panel__body {
+            margin-left: countSizeVw(110, 1920);
+        }
+
+        .tree-search-popup {
+            top: countSizeVh(135) !important;
+            left: countSizeVw(0, 1920) !important;
+
+        }
+
+        .el-popover {
+            min-width: countSizeVw(150, 1920);
+            padding: countSizeVh(12);
+            border-radius: countSizeVh(4);
+            font-size: countSizeVh(14);
+
+            .el-input {
+                font-size: countSizeVh(14);
+            }
+
+            .el-tree {
+                height: countSizeVh(360) !important;
+                width: countSizeVw(400, 1920) !important;
+
+                .el-tree-node__content {
+                    height: countSizeVh(26);
+                }
+
+                .el-tree-node__expand-icon {
+                    font-size: countSizeVh(12);
+                }
+
+                .el-tree-node__label {
+                    font-size: countSizeVh(14);
+
+                }
+
+            }
+        }
     }
 
 }
diff --git a/src/utils/auth.js b/src/utils/auth.js
new file mode 100644
index 0000000..4191e45
--- /dev/null
+++ b/src/utils/auth.js
@@ -0,0 +1,19 @@
+/*
+ * @Author: shuishen 1109946754@qq.com
+ * @Date: 2022-07-28 17:50:14
+ * @LastEditors: shuishen 1109946754@qq.com
+ * @LastEditTime: 2022-08-05 11:45:20
+ * @FilePath: \zhny-dsj\src\utils\auth.js
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+ */
+export const getToken = () => {
+    return window.sessionStorage.getItem('token')
+}
+
+export const setToken = token => {
+    return window.sessionStorage.setItem('token', token)
+}
+
+export const removeToken = () => {
+    return window.sessionStorage.removeItem('token')
+}
diff --git a/src/views/house/index.vue b/src/views/house/index.vue
index 2c022e5..a02aaf5 100644
--- a/src/views/house/index.vue
+++ b/src/views/house/index.vue
@@ -2,7 +2,7 @@
  * @Author: shuishen 1109946754@qq.com
  * @Date: 2022-08-18 16:18:17
  * @LastEditors: shuishen 1109946754@qq.com
- * @LastEditTime: 2022-12-19 16:51:19
+ * @LastEditTime: 2022-12-26 09:17:46
  * @FilePath: \srs-police-affairs\src\views\house\index.vue
  * @Description: 小区-栋-层-房屋
  * 
@@ -35,8 +35,8 @@
                 <div>
                     <div @click="searchVlaClick(item)" v-for="(item, index) in searchArray" :key="index">
                         {{
-                                item.name
-                        }}
+        item.name
+}}
                     </div>
                 </div>
             </div>
@@ -97,8 +97,8 @@
                                         <div v-for="(item, index) in buildingList.slice((index - 1) * 10, index * 10)"
                                             :key="index" @click="buildingClick(item)"
                                             :class="{ on: buildingChoosed.name == item.name }" :title="item.name">{{
-                                                    item.name
-                                            }}</div>
+        item.name
+}}</div>
                                     </div>
                                 </div>
                             </div>
@@ -186,7 +186,7 @@
                                 <div class="type-select">
                                     <el-select size="small" v-model="unitValue" placeholder="请选择" @change="chooseUnit">
                                         <el-option v-for="item in unitOptions" :key="item.value" :label="item.label"
-                                            :value="item.value"></el-option>
+                                            :value="item.value" class="unit-option"></el-option>
                                     </el-select>
                                 </div>
                             </div>
@@ -214,19 +214,19 @@
                                 <div class="type">房屋图例</div>
                                 <div class="type-val">
                                     <div>
-                                        <span style="width: 14px; height: 8px; border: 1px solid #3A8B3A;"></span>
+                                        <span class="chuzu"></span>
                                         出租
                                     </div>
                                     <div>
-                                        <span style="width: 14px; height: 8px; border: 1px solid #2C77BB;"></span>
+                                        <span class="zizhu"></span>
                                         自住
                                     </div>
                                     <div>
-                                        <span style="width: 14px; height: 8px; border: 1px solid #5C6169;"></span>
+                                        <span class="kongzhi"></span>
                                         空置
                                     </div>
                                     <div>
-                                        <span style="width: 14px; height: 8px; border: 1px solid #CC9456;"></span>
+                                        <span class="shangye"></span>
                                         商业
                                     </div>
                                 </div>
@@ -240,10 +240,10 @@
                                         <div :class="{ on: floorsType == index }" @click="floorsType = index"
                                             v-for="index in Math.ceil(unitHouseChoosed.length / 5)" :key="index">
                                             {{ unitHouseChoosed[index * 5 - 5].floor_num }}-{{ unitHouseChoosed[index *
-                                                    5
-                                                    - 1] ? unitHouseChoosed[index * 5
-                                                        - 1].floor_num : unitHouseChoosed[unitHouseChoosed.length - 1].floor_num
-                                            }}层</div>
+        5
+        - 1] ? unitHouseChoosed[index * 5
+            - 1].floor_num : unitHouseChoosed[unitHouseChoosed.length - 1].floor_num
+}}层</div>
                                     </div>
                                 </div>
                                 <div @click="nextFloorBtn" class="floorBtn rightFloorBtn" v-show="nextFloorShow">
@@ -325,7 +325,17 @@
             </div>
         </div>
         <!-- <transition name="special-animal"></transition>-->
-
+        <div class="search-content">
+            <input v-model="searchExtensivelyValue" @input="searchExtensivelyChange" @focus="searchExtensivelyFocus"
+                type="text" placeholder="请输入搜索条件" />
+            <button @click="searchExtensivelyClick" class="el-icon-search"></button>
+        </div>
+        <div v-show="searchExtensivelyValBoxShow" class="searchExtensively-val-box">
+            <div>
+                <div @click="searchExtensivelyVlaClick(item)" v-for="(item, index) in searchExtensivelyArray"
+                    :key="index">{{ item.name }}</div>
+            </div>
+        </div>
         <el-dialog title="信息详情" :modal="true" :visible.sync="dialogVisible" :before-close="handleClose"
             :close-on-click-modal="true" class="police-affairs-details-box">
             <div class="item">
@@ -568,6 +578,9 @@
             buildingList: [],
             buildingChoosed: {},
             unitHouseChoosed: [],
+            searchExtensivelyValBoxShow: false,
+            searchExtensivelyArray: [],
+            searchExtensivelyValue: '',
         }
     },
     watch: {
@@ -635,7 +648,7 @@
         // 大搜
         getSearchExtensively (ak, region, query) {
             getSearchExtensively(ak, region, query).then(res => {
-                console.log(res, 333)
+                this.searchExtensivelyArray = res.data.result
             })
         },
 
@@ -815,6 +828,38 @@
             console.log(current, currentNode)
             this.$refs[`popover`].doClose()
         },
+
+        searchExtensivelyClick () {
+            this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', this.searchExtensivelyValue)
+            this.searchExtensivelyValBoxShow = false
+        },
+
+        searchExtensivelyChange () {
+            if (this.searchExtensivelyValue == '') {
+                this.searchExtensivelyValBoxShow = false
+                this.searchExtensivelyArray = []
+            } else {
+                this.searchExtensivelyValBoxShow = true
+                this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', this.searchExtensivelyValue)
+            }
+        },
+
+        searchExtensivelyVlaClick (item) {
+            this.searchExtensivelyValBoxShow = false
+            this.searchExtensivelyValue = item.name
+            this.$EventBus.$emit('toPosition', {
+                siteJd: `${item.location.lng}`,
+                siteWd: `${item.location.lat}`,
+                siteGd: 200,
+                siteHeading: -3,
+                sitePitch: -45
+            })
+        },
+
+        searchExtensivelyFocus () {
+            this.searchExtensivelyValBoxShow = true
+            this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', this.searchExtensivelyValue)
+        }
     },
 
     destroyed () {
@@ -1210,6 +1255,24 @@
 
                                     &>span {
                                         margin: 0 10px;
+                                        width: 14px;
+                                        height: 8px;
+                                    }
+
+                                    .chuzu {
+                                        border: 1px solid #348b3a;
+                                    }
+
+                                    .zizhu {
+                                        border: 1px solid #2c77bb;
+                                    }
+
+                                    .kongzhi {
+                                        border: 1px solid #5c6169;
+                                    }
+
+                                    .shangye {
+                                        border: 1px solid #cc9456;
                                     }
                                 }
                             }
@@ -1366,6 +1429,79 @@
             }
         }
     }
+
+    .search-content {
+        position: absolute;
+        left: 760px;
+        top: 40px;
+        width: 460px;
+        height: 36px;
+
+        input {
+            flex: 1;
+            width: 380px;
+            height: 100%;
+            font-size: 18px;
+            text-indent: 1em;
+            color: #ffffff;
+            background-color: $table-body-tr-2n-color;
+            border: 1px solid rgb(0, 92, 169);
+            border-radius: 20px 0 0 20px;
+            vertical-align: top;
+        }
+
+        input:focus {
+            outline: none;
+        }
+
+        input::-webkit-input-placeholder {
+            color: rgba(238, 238, 238, 0.7);
+        }
+
+        button {
+            font-size: 24px;
+            font-weight: 700;
+            width: 80px;
+            height: 100%;
+            background-color: $table-body-tr-n-color;
+            color: #fff;
+            border: 1px solid rgb(0, 92, 169);
+            cursor: pointer;
+            border-radius: 0 20px 20px 0;
+        }
+
+        button:active {
+            background-color: $table-body-tr-2n-color;
+            border: 1px solid rgb(0, 92, 169);
+        }
+    }
+
+    .searchExtensively-val-box {
+        display: flex;
+        flex-direction: column;
+        position: absolute;
+        top: 80px;
+        left: 760px;
+        width: 380px;
+        max-height: 160px;
+        text-align: left;
+        color: #fff;
+        background: $el-dialog-bg-color;
+        z-index: 1111;
+        border-radius: 10px;
+        overflow: hidden;
+
+        &>div {
+            height: 100%;
+            overflow-y: auto;
+
+            div {
+                padding: 0 10px;
+                line-height: 36px;
+                cursor: pointer;
+            }
+        }
+    }
 }
 
 .progress {
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
new file mode 100644
index 0000000..3fa593e
--- /dev/null
+++ b/src/views/login/index.vue
@@ -0,0 +1,342 @@
+<template>
+    <div class="auth-page">
+        <!-- <div class="title">社区警务平台</div> -->
+        <!-- <div class="container"> -->
+        <!-- <h1 class="text-xs-center">用户登录</h1> -->
+        <!-- <div class="loginbody">
+                <el-form :model="user" ref="formName" status-icon :rules="rules">
+                    <span class="input">用户名:</span>
+                    <el-form-item prop="username">
+                        <el-input
+                            v-model="user.username"
+                            prefix-icon="el-icon-user"
+                            placeholder="请输入您的用户名"
+                            autocomplete="off"
+                        ></el-input>
+                    </el-form-item>
+                    <span class="input">密码:</span>
+                    <el-form-item prop="password">
+                        <el-input
+                            type="password"
+                            v-model="user.password"
+                            prefix-icon="el-icon-lock"
+                            placeholder="请输入您密码"
+                            autocomplete="off"
+                        ></el-input>
+                    </el-form-item>
+                    <el-form-item>
+                        <el-button type="primary" @click.enter="onLogin(user)">登&nbsp;录</el-button>
+                    </el-form-item>
+                </el-form>
+        </div>-->
+        <!-- </div> -->
+        <div class="loginTitle">社区警务平台</div>
+        <div class="layui-form login_content">
+            <p>用户登录</p>
+            <el-form :model="user" ref="formName" status-icon :rules="rules">
+                <el-form-item prop="username">
+                    <el-input
+                        v-model="user.username"
+                        prefix-icon="el-icon-user"
+                        placeholder="请输入您的用户名"
+                        autocomplete="off"
+                    ></el-input>
+                </el-form-item>
+                <el-form-item prop="password">
+                    <el-input
+                        type="password"
+                        v-model="user.password"
+                        prefix-icon="el-icon-lock"
+                        placeholder="请输入您密码"
+                        autocomplete="off"
+                    ></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="primary" @click.enter="onLogin(user)">登&nbsp;录</el-button>
+                </el-form-item>
+            </el-form>
+        </div>
+    </div>
+</template>
+
+<script>
+import nprogress from 'nprogress'
+import md5 from 'js-md5'
+import axios from 'axios'
+import * as auth from '@/utils/auth'
+
+export default {
+    name: 'AppRegister',
+    data () {
+        return {
+            user: {
+                username: '',
+                password: ''
+            },
+            rules: {
+                username: [
+                    { required: true, message: '用户名不能为空', trigger: 'blur' },
+                    {
+                        min: 3,
+                        max: 10,
+                        message: '用户账号长度在3~10个字符之间',
+                        trigger: 'blur'
+                    }
+                ],
+                password: [
+                    { required: true, message: '密码不能为空', trigger: 'blur' },
+                    {
+                        min: 3,
+                        max: 10,
+                        message: '用户密码长度在3~10个字符之间',
+                        trigger: 'blur'
+                    }
+                ]
+            },
+            errors: null,
+            newAxios: null
+        }
+    },
+    created () {
+        var that = this
+
+        this.newAxios = axios.create({
+            baseURL: 'http://dev.jxpskj.com:8020/api',
+            timeout: 600000,
+            headers: {
+                Authorization: 'Basic c2FiZXI6c2FiZXJfc2VjcmV0',
+                'Tenant-Id': '000000'
+            }
+        })
+
+        document.onkeydown = (e) => {
+            const _key = window.event.keyCode
+            if (_key === 13) {
+                that.onLogin(that.user)
+            }
+        }
+    },
+    methods: {
+        onLogin ({ username, password }) {
+            this.$refs.formName.validate((valid) => {
+                if (valid) {
+                    nprogress.start()
+
+                    this.newAxios({
+                        method: 'POST',
+                        url: '/blade-auth/oauth/token',
+                        params: {
+                            username: username,
+                            password: md5(password),
+                            tenantId: '000000'
+                        }
+                    }).then((res) => {
+                        if (res.data.access_token) {
+                            this.$store.commit('setUser', res.data)
+                            auth.setToken(res.data.access_token)
+                            console.log('23232323', res.data)
+                            window.localStorage.setItem('userName', res.data.nick_name)//赋值
+                            this.$router.push({ path: '/' })
+                        } else {
+                            this.$message({
+                                type: 'warning',
+                                message: '用户名或密码不正确,请重新输入'
+                            })
+                        }
+                        nprogress.done()
+                    })
+                }
+            })
+        }
+    }
+}
+</script>
+
+<style scoped lang="scss">
+.auth-page {
+    position: fixed;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+    background-image: url(../../../public/img/bg/login-bg.png);
+    background-size: 100% 100%;
+    margin: 0;
+    padding: 0;
+
+    .loginTitle {
+        color: #00cbdd;
+        font-size: 46px;
+        letter-spacing: 6px;
+        font-weight: 700;
+        position: absolute;
+        top: 20%;
+        right: 25%;
+        transform: translateX(50%);
+    }
+    .login_content {
+        width: 300px;
+        position: absolute;
+        text-align: center;
+        top: 50%;
+        right: 25%;
+        transform: translateY(-40%) translateX(50%);
+        color: #ffffff;
+        padding: 30px;
+        background: url(../../../public/img/bg/login-content-bg.png),
+            url(../../../public/img/bg/left-top.png) no-repeat left top,
+            url(../../../public/img/bg/left-bottom.png) no-repeat left bottom,
+            url(../../../public/img/bg/right-top.png) no-repeat right top,
+            url(../../../public/img/bg/right-bottom.png) no-repeat right bottom;
+        background-repeat: no-repeat;
+        background-size: 100% 100%, 25px, 25px, 25px, 25px;
+
+        p {
+            font-size: 26px;
+            margin-bottom: 15px;
+            letter-spacing: 4px;
+        }
+        :deep(.el-button--primary) {
+            width: 100%;
+            height: 34px;
+            border-radius: 2px;
+        }
+        :deep(.el-button) {
+            line-height: 14px;
+        }
+    }
+
+    // .title {
+    //     width: 1389px;
+    //     height: 115px;
+    //     // background-image: url(../../../public/img/bg/login_title@2x.png);
+    //     background-size: 100% 100%;
+    //     margin: 99px 264px 0px 266px;
+    //     font-size: 74px;
+    //     color: #fff;
+    // }
+    // .container {
+    //     position: absolute;
+    //     top: 0;
+    //     left: 0;
+    //     right: 0;
+    //     bottom: 0;
+    //     margin: 317px auto;
+    //     width: 653px;
+    //     height: 552px;
+    //     background-image: url(../../../public/img/bg/rectangle11@2x.png);
+    //     background-size: 100% 100%;
+    //     border-radius: 10px;
+    //     letter-spacing: 100;
+
+    //     // h1 {
+    //     //     margin: 54px 244px 0px 243px;
+    //     //     width: 166px;
+    //     //     text-align: left;
+    //     //     width: 176px;
+    //     //     height: 30px;
+    //     //     font-size: 42px;
+    //     //     font-family: PangMenZhengDao;
+    //     //     font-weight: 400;
+    //     //     color: #ffffff;
+    //     //     line-height: 30px;
+    //     //     letter-spacing: 2px;
+    //     // }
+
+    //     // .loginbody {
+    //     //     position: absolute;
+    //     //     top: 120px;
+    //     //     left: 0;
+    //     //     right: 0;
+    //     //     bottom: 0;
+    //     //     width: 72%;
+    //     //     // margin: auto;
+    //     //     margin-left: 51px;
+
+    //     //     .el-form-item {
+    //     //         text-align: center;
+
+    //     //         :deep(.el-input__inner) {
+    //     //             width: 548px;
+    //     //             height: 59px;
+    //     //             background: #0c2d49;
+    //     //             opacity: 0.5;
+    //     //             margin-bottom: 15px;
+    //     //             font-size: 21px;
+    //     //         }
+    //     //         :deep(.el-input--prefix .el-input__inner) {
+    //     //             padding-left: 40px;
+    //     //         }
+    //     //         :deep(.el-input__inner:focus) {
+    //     //             border: 2px solid #22b4cb;
+    //     //             opacity: 0.8;
+    //     //             color: #fff;
+    //     //         }
+    //     //         :deep(.el-form-item__error) {
+    //     //             color: #f00;
+    //     //             line-height: 0;
+    //     //             font-size: 15px;
+    //     //             opacity: 0.8;
+    //     //             letter-spacing: 2px;
+    //     //             font-weight: 700;
+    //     //         }
+    //     //         :deep(.el-input__icon) {
+    //     //             height: 91%;
+    //     //             width: 34px;
+    //     //         }
+    //     //         :deep(.el-icon-user::before),
+    //     //         :deep(.el-icon-lock::before) {
+    //     //             font-size: 22px;
+    //     //         }
+    //     //         :deep(.el-form-item.is-error)v,
+    //     //         :deep(.el-input__validateIcon) {
+    //     //             font-size: 22px;
+    //     //         }
+    //     //         :deep(.el-input__suffix) {
+    //     //             right: -48px;
+    //     //         }
+    //     //         :deep(.el-input input::-webkit-input-placeholder) {
+    //     //             color: #ffffff;
+    //     //             font-size: 21px;
+    //     //             opacity: 0.5;
+    //     //             line-height: 27px;
+    //     //         }
+    //     //         :deep(.el-input input::-moz-input-placeholder) {
+    //     //             color: #ffffff;
+    //     //             font-size: 21px;
+    //     //             opacity: 0.5;
+    //     //         }
+    //     //         :deep(.el-input input::-ms-input-placeholder) {
+    //     //             color: #ffffff;
+    //     //             font-size: 21px;
+    //     //             opacity: 0.5;
+    //     //             line-height: 27px;
+    //     //         }
+
+    //     //         :deep(.el-button) {
+    //     //             width: 548px;
+    //     //             height: 59px;
+    //     //             background: linear-gradient(
+    //     //                 90deg,
+    //     //                 rgba(0, 249, 247, 0.54),
+    //     //                 rgba(0, 182, 249, 0.54)
+    //     //             );
+    //     //             box-shadow: 0px 2px 20px 1px rgba(1, 25, 70, 0.46);
+    //     //             font-size: 29px;
+    //     //             margin-top: 25px;
+    //     //         }
+    //     //     }
+
+    //     //     .input {
+    //     //         display: inline-block;
+    //     //         width: 100px;
+    //     //         height: 23px;
+    //     //         font-size: 24px;
+    //     //         font-family: PingFang SC;
+    //     //         color: #ffffff;
+    //     //         margin-bottom: 21px;
+    //     //     }
+    //     // }
+    // }
+}
+</style>
diff --git a/src/views/lyout/index.vue b/src/views/lyout/index.vue
index 74ce54c..8622c77 100644
--- a/src/views/lyout/index.vue
+++ b/src/views/lyout/index.vue
@@ -11,7 +11,6 @@
 <template>
     <div class="wrapper">
         <div class="main-header">
-            <!-- <div class="title"></div> -->
             <div class="menu-list left">
                 <div @mouseenter="item.childrenFlag = true" @mouseleave="item.childrenFlag = false" class="nav-list"
                     @click="goToPath(item)" v-for="(item, index) in menuLeftList" :key="index">
@@ -27,7 +26,6 @@
             </div>
 
             <div class="title">
-                <!-- <img src="../../../public/img/icon.png" /> -->
                 <h3>社区警务平台</h3>
             </div>
 
@@ -47,11 +45,33 @@
             </div>
 
             <!-- 用户登录展示的 -->
-            <div class="user-infor">
-                <div>
+            <div class="user-infor" @click="openUser">
+                <div class="userIcon" :class="{on: userOn == true}">
                     <i class="el-icon-user-solid"></i>
                 </div>
+                <div class="userDetail" v-if="isShowUserDetail">
+                    <div class="triangle"></div>
+                    <div class="userName">用户名:{{userName}}</div>
+                    <div class="userBtn">
+                        <div class="edit" @click="goTOLogin">
+                            <img src="../../../public/img/bg/editLogin.webp" alt />
+                        </div>
+                    </div>
+                </div>
             </div>
+            <!-- <div class="userIcon" :class="{on: userOn == true}" @click="openUser">
+                <div class="userDetail" v-if="isShowUserDetail">
+                    <div class="triangle"></div>
+                    <div class="userName">用户名:{{userName}}</div>
+                    <div class="userBtn">
+                        <div class="edit" @click="goTOLogin">
+                            >
+                            <img src="../../../public/img/editLogin.webp" alt />
+                        </div>
+                        <div class="return" @click="goTOFllow">返回引导页</div>
+                    </div>
+                </div>
+            </div>-->
         </div>
 
         <div class="main-container">
@@ -124,7 +144,9 @@
 
             boxWidth: 0,
 
-            currentUrl: '/lyout/home'
+            currentUrl: '/lyout/home',
+            userOn: false,
+            isShowUserDetail: false,
         }
     },
 
@@ -224,6 +246,11 @@
                     document.querySelector('.image-switch-img-btn').classList.remove('shrink-btn')
                 }
             })
+        },
+
+        openUser () {
+            this.userOn = !this.userOn
+            this.isShowUserDetail = !this.isShowUserDetail
         },
     }
 }
@@ -389,7 +416,7 @@
             font-size: 24px;
             cursor: pointer;
 
-            div {
+            .userIcon {
                 position: absolute;
                 top: 0;
                 right: 0;
@@ -404,6 +431,66 @@
                 box-shadow: inset 0 0 10px $menu-tab-shadow;
                 border-radius: 50%;
             }
+
+            .userIcon.on {
+                color: rgba(252, 189, 86, 1);
+            }
+            .userDetail {
+                width: 180px;
+                height: 92px;
+                position: absolute;
+                top: 64px;
+                right: 4px;
+                background: $menu-tab-bg-color;
+                border-radius: 8px;
+                cursor: default;
+
+                .triangle {
+                    position: absolute;
+                    top: -16px;
+                    right: 20px;
+                    width: 0px;
+                    height: 0px;
+                    border: 8px solid #000;
+                    border-top-color: transparent;
+                    border-bottom-color: rgba(3, 82, 102, 0.8);
+                    border-left-color: transparent;
+                    border-right-color: transparent;
+                }
+                .userName {
+                    width: 100%;
+                    height: 40px;
+                    font-size: 14px;
+                    font-weight: 500;
+                    color: #fff;
+                    line-height: 40px;
+                    border-bottom: 1px solid rgba(255, 255, 255, 0.5);
+                    position: absolute;
+                    top: 0px;
+                }
+                .userBtn {
+                    width: 100%;
+                    height: 50px;
+                    position: absolute;
+                    bottom: 0px;
+                    display: flex;
+                    justify-content: space-around;
+                    padding-top: 4px;
+
+                    & > div {
+                        width: 100px;
+                        height: 40px;
+                        background-color: rgba(168, 222, 255, 0.6);
+                        border-radius: 4px;
+                        cursor: pointer;
+                        line-height: 44px;
+                        img {
+                            width: 76px;
+                            height: 20px;
+                        }
+                    }
+                }
+            }
         }
     }
 

--
Gitblit v1.9.3