7 files modified
17 files added
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | }, |
| | | "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", |
| | |
| | | "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", |
| | |
| | | * isToken是否需要token |
| | | */ |
| | | import axios from 'axios' |
| | | import router from '@/router/page/index.js' |
| | | import { Message } from 'element-ui' |
| | | |
| | | // 获取公共配置域名 |
| | | |
| | |
| | | // baseURL: 'http://192.168.0.102:1888/api', |
| | | // baseURL: 'http://192.168.0.105:18080/api', |
| | | // baseURL: 'http://192.168.0.115:82', |
| | | baseURL: 'http://192.168.0.112:18080', |
| | | // 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', |
| | | |
| | | // 内网部署地址 |
| | |
| | | ) |
| | | |
| | | // 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 |
| | |
| | | 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' |
| | | }, |
| | |
| | | |
| | | &>div { |
| | | padding: 0 countSizeVw(10, 1920); |
| | | font-size: countSizeVh(16); |
| | | |
| | | .l { |
| | | width: countSizeVw(80, 1920); |
| | |
| | | .search-content { |
| | | 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); |
| | |
| | | .searchExtensively-val-box { |
| | | top: countSizeVh(80); |
| | | left: countSizeVw(760,1920); |
| | | width: countSizeVw(314,1920); |
| | | max-height: countSizeVh(200); |
| | | width: countSizeVw(380,1920); |
| | | max-height: countSizeVh(400); |
| | | border-radius: countSizeVh(10); |
| | | |
| | | & > div { |
| | |
| | | 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{ |
| | | height: countSizeVh(40); |
| | | line-height: countSizeVh(40); |
| New file |
| | |
| | | /* |
| | | * @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') |
| | | } |
| | |
| | | @click="searchExtensivelyVlaClick(item)" |
| | | v-for="(item, index) in searchExtensivelyArray" |
| | | :key="index" |
| | | > |
| | | {{ |
| | | item.name |
| | | }} |
| | | </div> |
| | | >{{item.name}}</div> |
| | | </div> |
| | | </div> |
| | | <el-dialog |
| | |
| | | searchExtensivelyValBoxShow: false, |
| | | searchExtensivelyArray: [], |
| | | searchExtensivelyValue: '', |
| | | houseTestData: [ |
| | | { |
| | | name: '123', |
| | | position: [116.026877, 28.685077] |
| | | }, |
| | | { |
| | | name: '234', |
| | | position: [116.024711, 28.712695] |
| | | }, |
| | | { |
| | | name: '345', |
| | | position: [116.008426, 28.671838] |
| | | }, |
| | | { |
| | | name: '456', |
| | | position: [116.017700, 28.675880] |
| | | }, |
| | | { |
| | | name: '567', |
| | | position: [116.035374, 28.681405] |
| | | }, |
| | | { |
| | | name: '678', |
| | | position: [116.010374, 28.691405] |
| | | }, |
| | | { |
| | | name: '789', |
| | | position: [116.038374, 28.701405] |
| | | } |
| | | ], |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | // 大搜 |
| | | getSearchExtensively (ak, region, query) { |
| | | getSearchExtensively(ak, region, query).then(res => { |
| | | console.log(res, 333) |
| | | this.searchExtensivelyArray = res.data.result |
| | | }) |
| | | }, |
| | | |
| | |
| | | }, |
| | | |
| | | searchExtensivelyClick () { |
| | | this.searchExtensivelyArray = listQuery(this.houseTestData, this.searchExtensivelyValue, 'name') |
| | | console.log(this.searchExtensivelyValue, this.searchExtensivelyArray, 111) |
| | | this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', this.searchExtensivelyValue) |
| | | this.searchExtensivelyValBoxShow = false |
| | | }, |
| | | |
| | | searchExtensivelyChange () { |
| | |
| | | this.searchExtensivelyArray = [] |
| | | } else { |
| | | this.searchExtensivelyValBoxShow = true |
| | | this.searchExtensivelyArray = listQuery(this.houseTestData, this.searchExtensivelyValue, 'name') |
| | | this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', this.searchExtensivelyValue) |
| | | } |
| | | }, |
| | | |
| | |
| | | this.searchExtensivelyValBoxShow = false |
| | | this.searchExtensivelyValue = item.name |
| | | this.$EventBus.$emit('toPosition', { |
| | | siteJd: `${item.position[0]}`, |
| | | siteWd: `${item.position[1]}`, |
| | | siteJd: `${item.location.lng}`, |
| | | siteWd: `${item.location.lat}`, |
| | | siteGd: 200, |
| | | siteHeading: -3, |
| | | sitePitch: -45 |
| | |
| | | |
| | | searchExtensivelyFocus () { |
| | | this.searchExtensivelyValBoxShow = true |
| | | this.searchExtensivelyArray = listQuery(this.houseTestData, this.searchExtensivelyValue, 'name') |
| | | this.getSearchExtensively('ebf48ecaa1fd436fa3d40c4600aa051f', '361100', this.searchExtensivelyValue) |
| | | } |
| | | }, |
| | | |
| | |
| | | |
| | | input { |
| | | flex: 1; |
| | | width: calc(100% - 80px); |
| | | width: 380px; |
| | | height: 100%; |
| | | font-size: 18px; |
| | | text-indent: 1em; |
| | | color: #ffffff; |
| | | background-color: transparent; |
| | | background-color: $table-body-tr-2n-color; |
| | | border: 1px solid rgb(0, 92, 169); |
| | | border-radius: 20px 0 0 20px; |
| | | vertical-align: top; |
| | |
| | | position: absolute; |
| | | top: 80px; |
| | | left: 760px; |
| | | width: 314px; |
| | | width: 380px; |
| | | max-height: 160px; |
| | | height: 160px; |
| | | text-align: left; |
| | | color: #fff; |
| | | background: $el-dialog-bg-color; |
| New file |
| | |
| | | <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)">登 录</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)">登 录</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> |
| | |
| | | <template> |
| | | <div class="wrapper"> |
| | | <div class="main-header"> |
| | | <!-- <div class="title"></div> --> |
| | | <div class="menu-list left"> |
| | | <div |
| | | @mouseenter="item.childrenFlag = true" |
| | |
| | | </div> |
| | | |
| | | <div class="title"> |
| | | <!-- <img src="../../../public/img/icon.png" /> --> |
| | | <h3>社区警务平台</h3> |
| | | </div> |
| | | |
| | |
| | | </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"> |
| | |
| | | |
| | | boxWidth: 0, |
| | | |
| | | currentUrl: '/lyout/home' |
| | | currentUrl: '/lyout/home', |
| | | userOn: false, |
| | | isShowUserDetail: false, |
| | | } |
| | | }, |
| | | |
| | |
| | | document.querySelector('.image-switch-img-btn').classList.remove('shrink-btn') |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | openUser () { |
| | | this.userOn = !this.userOn |
| | | this.isShowUserDetail = !this.isShowUserDetail |
| | | }, |
| | | } |
| | | } |
| | |
| | | font-size: 24px; |
| | | cursor: pointer; |
| | | |
| | | div { |
| | | .userIcon { |
| | | position: absolute; |
| | | top: 0; |
| | | right: 0; |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |