shuishen
2022-12-26 6ea2efd28a5c2f5b5ca8b4dd0af056b2c6efb0ec
Merge branch 'master' of http://192.168.0.105:10010/r/srs-police-affairs
7 files modified
17 files added
1359 ■■■■ changed files
package-lock.json 22 ●●●●● patch | view | raw | blame | history
package.json 18 ●●●●● patch | view | raw | blame | history
public/img/bg/b-t.png patch | view | raw | blame | history
public/img/bg/echarts-content.png patch | view | raw | blame | history
public/img/bg/echarts-title.png patch | view | raw | blame | history
public/img/bg/editLogin.webp patch | view | raw | blame | history
public/img/bg/group13@2x.png patch | view | raw | blame | history
public/img/bg/group16@2x(1).png patch | view | raw | blame | history
public/img/bg/group16@2x.png patch | view | raw | blame | history
public/img/bg/left-bottom.png patch | view | raw | blame | history
public/img/bg/left-top.png patch | view | raw | blame | history
public/img/bg/login-bg.png patch | view | raw | blame | history
public/img/bg/login-content-bg.png patch | view | raw | blame | history
public/img/bg/login_title@2x.png patch | view | raw | blame | history
public/img/bg/rectangle11@2x.png patch | view | raw | blame | history
public/img/bg/right-bottom.png patch | view | raw | blame | history
public/img/bg/right-top.png patch | view | raw | blame | history
src/router/axios.js 48 ●●●● patch | view | raw | blame | history
src/router/page/index.js 10 ●●●●● patch | view | raw | blame | history
src/styles/media/index.scss 633 ●●●● patch | view | raw | blame | history
src/utils/auth.js 19 ●●●●● patch | view | raw | blame | history
src/views/house/index.vue 168 ●●●●● patch | view | raw | blame | history
src/views/login/index.vue 342 ●●●●● patch | view | raw | blame | history
src/views/lyout/index.vue 99 ●●●●● patch | view | raw | blame | history
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",
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",
public/img/bg/b-t.png
public/img/bg/echarts-content.png
public/img/bg/echarts-title.png
public/img/bg/editLogin.webp
Binary files differ
public/img/bg/group13@2x.png
public/img/bg/group16@2x(1).png
public/img/bg/group16@2x.png
public/img/bg/left-bottom.png
public/img/bg/left-top.png
public/img/bg/login-bg.png
public/img/bg/login-content-bg.png
public/img/bg/login_title@2x.png
public/img/bg/rectangle11@2x.png
public/img/bg/right-bottom.png
public/img/bg/right-top.png
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
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'
    },
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);
                }
            }
        }
    }
}
src/utils/auth.js
New file
@@ -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')
}
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 {
src/views/login/index.vue
New file
@@ -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>
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;
                        }
                    }
                }
            }
        }
    }