From 89946abb222981e075e52feb8a01e937f322db5b Mon Sep 17 00:00:00 2001
From: 码农齐齐齐 <10948399+menon-qiqi@user.noreply.gitee.com>
Date: 星期五, 09 九月 2022 17:00:39 +0800
Subject: [PATCH] master
---
vue.config.js | 9
package-lock.json | 88 +++++++
src/store/users/index.js | 17 +
src/store/index.js | 3
src/views/login/index.vue | 76 ++----
src/api/users.js | 4
src/views/layout/components/Header/index.vue | 50 ++-
src/utils/auth.js | 22 +-
src/router/index.js | 11 -
src/utils/validate.js | 19 -
src/views/layout/components/NavBar/index.vue | 78 ++++++-
src/utils/request.js | 85 +-----
.env.development | 4
/dev/null | 17 -
src/views/layout/components/SiderBar/index.vue | 156 +++++++------
src/main.js | 3
package.json | 1
src/components/hamburger/index.vue | 2
src/views/layout/components/Main/index.vue | 1
19 files changed, 356 insertions(+), 290 deletions(-)
diff --git a/.env.development b/.env.development
index cd7a7cc..b428861 100644
--- a/.env.development
+++ b/.env.development
@@ -4,8 +4,8 @@
# 寮�鍙戠幆澧冮厤缃�
ENV = 'development'
-# 鑻ヤ緷绠$悊绯荤粺/寮�鍙戠幆澧�
-VUE_APP_BASE_API = '/dev-api'
+# 寮�鍙戠幆澧�
+VUE_APP_BASE_API = '/api'
# 璺敱鎳掑姞杞�
VUE_CLI_BABEL_TRANSPILE_MODULES = true
diff --git a/package-lock.json b/package-lock.json
index bb130be..39dcab1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,6 +8,7 @@
"name": "my-app",
"version": "0.1.0",
"dependencies": {
+ "axios": "^0.27.2",
"core-js": "^3.8.3",
"normalize.css": "^8.0.1",
"sass": "^1.54.8",
@@ -3370,6 +3371,11 @@
"babel-runtime": "6.x"
}
},
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
"node_modules/at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
@@ -3412,6 +3418,15 @@
},
"peerDependencies": {
"postcss": "^8.1.0"
+ }
+ },
+ "node_modules/axios": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz",
+ "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
+ "dependencies": {
+ "follow-redirects": "^1.14.9",
+ "form-data": "^4.0.0"
}
},
"node_modules/babel-helper-vue-jsx-merge-props": {
@@ -4309,6 +4324,17 @@
"resolved": "https://registry.npmmirror.com/colorette/-/colorette-2.0.19.tgz",
"integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
"dev": true
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
},
"node_modules/commander": {
"version": "8.3.0",
@@ -5235,6 +5261,14 @@
},
"engines": {
"node": ">=0.10.0"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "engines": {
+ "node": ">=0.4.0"
}
},
"node_modules/depd": {
@@ -6205,7 +6239,6 @@
"version": "1.15.1",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.1.tgz",
"integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==",
- "dev": true,
"engines": {
"node": ">=4.0"
},
@@ -6222,6 +6255,19 @@
"dev": true,
"engines": {
"node": ">=0.10.0"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
"node_modules/forwarded": {
@@ -17341,6 +17387,11 @@
"babel-runtime": "6.x"
}
},
+ "asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
"at-least-node": {
"version": "1.0.0",
"resolved": "https://registry.npmmirror.com/at-least-node/-/at-least-node-1.0.0.tgz",
@@ -17365,6 +17416,15 @@
"normalize-range": "^0.1.2",
"picocolors": "^1.0.0",
"postcss-value-parser": "^4.2.0"
+ }
+ },
+ "axios": {
+ "version": "0.27.2",
+ "resolved": "https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz",
+ "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
+ "requires": {
+ "follow-redirects": "^1.14.9",
+ "form-data": "^4.0.0"
}
},
"babel-helper-vue-jsx-merge-props": {
@@ -18135,6 +18195,14 @@
"integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
"dev": true
},
+ "combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "requires": {
+ "delayed-stream": "~1.0.0"
+ }
+ },
"commander": {
"version": "8.3.0",
"resolved": "https://registry.npmmirror.com/commander/-/commander-8.3.0.tgz",
@@ -18890,6 +18958,11 @@
"requires": {
"is-descriptor": "^1.0.0"
}
+ },
+ "delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
},
"depd": {
"version": "2.0.0",
@@ -19743,8 +19816,7 @@
"follow-redirects": {
"version": "1.15.1",
"resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.1.tgz",
- "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==",
- "dev": true
+ "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
},
"for-in": {
"version": "1.0.2",
@@ -19752,6 +19824,16 @@
"integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
"dev": true
},
+ "form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ },
"forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmmirror.com/forwarded/-/forwarded-0.2.0.tgz",
diff --git a/package.json b/package.json
index 6e59ae0..a11f8b1 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,7 @@
"build:stage": "vue-cli-service build --mode staging"
},
"dependencies": {
+ "axios": "^0.27.2",
"core-js": "^3.8.3",
"normalize.css": "^8.0.1",
"sass": "^1.54.8",
diff --git a/src/api/users.js b/src/api/users.js
new file mode 100644
index 0000000..681a6bf
--- /dev/null
+++ b/src/api/users.js
@@ -0,0 +1,4 @@
+import axios from "axios";
+export default {
+ login: (data) => axios.post('/sccg/admin/login', data),
+};
\ No newline at end of file
diff --git a/src/components/Login.vue b/src/components/Login.vue
deleted file mode 100644
index 13bfb94..0000000
--- a/src/components/Login.vue
+++ /dev/null
@@ -1,104 +0,0 @@
-<template>
- <div id="background">
- <el-form
- :model="form"
- status-icon
- :rules="rules"
- ref="form"
- class="login-container"
- >
- <h3 class="login_title">鐢ㄦ埛鐧诲綍 / USER LOGIN</h3>
- <el-form-item prop="username" class="username">
- <el-input
- type="input"
- v-model="form.username"
- auto-complete="off"
- placeholder="璇疯緭鍏ョ敤鎴峰悕绉�"
- ></el-input>
- </el-form-item>
- <el-form-item prop="password" class="password">
- <el-input
- type="password"
- v-model="form.password"
- auto-complete="off"
- placeholder="璇疯緭鍏ョ櫥褰曞瘑鐮�"
- prefix-icon="el-icon-s-custom"
- ></el-input>
- </el-form-item>
- <el-form-item class="submit_container">
- <el-button type="primary" class="login_submit">鐧诲綍</el-button>
- </el-form-item>
- </el-form>
- </div>
-</template>
-
-<script>
-export default {
- name: "login",
- data() {
- return {
- form: {},
- rules: {
- username: [
- { required: true, message: "璇峰~鍐欑敤鎴峰悕绉�", trigger: "blur" },
- {
- min: 3,
- message: "鐢ㄦ埛鍚嶉暱搴︿笉鑳藉皬浜庝笁浣�",
- trigger: "blur",
- },
- ],
- password: [{ required: true, message: "璇峰~鍐欑櫥褰曞瘑鐮�", trigger: "blur" }],
- },
- };
- },
- methods: {},
-};
-</script>
-<style lang="less" scoped>
-#background {
- width: 100vw;
- height: 100vh;
- background-color: #015cf2;
- position: relative;
- display: flex;
- align-items: center;
-}
-.login-container {
- border-radius: 15px;
- position: absolute;
- right: 5%;
- width: 500px;
- background-color: white;
- box-shadow: 0 0 25px #cac6c6;
- .login_title {
- text-align: center;
- color: #ccc;
- font-size: 25px;
- font-weight: 400;
- height: 150px;
- line-height: 150px;
- }
- .submit_container {
- display: flex;
- justify-content: center;
- .login_submit {
- width: 400px;
- font-size: 25px;
- line-height: 40px;
- margin-bottom: 120px;
- }
- }
- .el-form-item {
- display: flex;
- justify-content: center;
- .el-input /deep/ .el-input__inner {
- height: 60px;
- width: 400px;
- &::-webkit-input-placeholder {
- font-size: 20px;
- }
- }
- }
-}
-</style>
-
diff --git a/src/components/hamburger/index.vue b/src/components/hamburger/index.vue
index 2b4e3d1..d3aa7b0 100644
--- a/src/components/hamburger/index.vue
+++ b/src/components/hamburger/index.vue
@@ -10,7 +10,7 @@
height="64"
>
<path
- d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z"
+ d="M408 442h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8zm-8 204c0 4.4 3.6 8 8 8h480c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8H408c-4.4 0-8 3.6-8 8v56zm504-486H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 632H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM142.4 642.1L298.7 519a8.84 8.84 0 0 0 0-13.9L142.4 381.9c-5.8-4.6-14.4-.5-14.4 6.9v246.3a8.9 8.9 0 0 0 14.4 7z" fill="#fff"
/>
</svg>
</el-radio-button>
diff --git a/src/main.js b/src/main.js
index 79b408f..44c454e 100644
--- a/src/main.js
+++ b/src/main.js
@@ -12,6 +12,9 @@
import './assets/icons'
// 寮曞叆鍏ㄥ眬鏍峰紡
import '@/styles/index.scss'
+import axios from "axios"
+Vue.prototype.$axios=axios
+console.log(process.env.VUE_APP_BASE_API);
Vue.use(ElementUI)
new Vue({
router,
diff --git a/src/router/index.js b/src/router/index.js
index c7ed783..15486c5 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,18 +1,7 @@
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter)
-
const routes = [
- // {
- // path: '/',
- // component: Layout,
- // redirect: '/home',
- // children: [{
- // path: 'home',
- // name: 'home',
- // component: () => import('@/views/layout'),
- // }]
- // },
{
path:'/home',
name:'home',
diff --git a/src/store/index.js b/src/store/index.js
index ceffa8e..bb05c23 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -1,6 +1,6 @@
import Vue from 'vue'
import Vuex from 'vuex'
-
+import users from "./users"
Vue.use(Vuex)
export default new Vuex.Store({
@@ -13,5 +13,6 @@
actions: {
},
modules: {
+ users
}
})
diff --git a/src/store/users/index.js b/src/store/users/index.js
new file mode 100644
index 0000000..118bc9b
--- /dev/null
+++ b/src/store/users/index.js
@@ -0,0 +1,17 @@
+import usersApi from "@/api/users";
+// import { Message } from "element-ui";
+export default {
+ namespaced: true,
+ state: {
+ userInfo: {},
+ },
+ actions: {
+ async login({ state }, params) {
+ console.log("store login");
+ const res = await usersApi.login(params);
+ console.log(res);
+ const { data } = res;
+ return res;
+ },
+ },
+};
diff --git a/src/utils/auth.js b/src/utils/auth.js
index f6388e4..12a4292 100644
--- a/src/utils/auth.js
+++ b/src/utils/auth.js
@@ -1,15 +1,15 @@
-// import Cookies from 'js-cookie'
+import Cookies from 'js-cookie'
-// const TokenKey = 'loginToken'
+const TokenKey = 'loginToken'
-// export function getToken() {
-// return Cookies.get(TokenKey)
-// }
+export function getToken() {
+ return Cookies.get(TokenKey)
+}
-// export function setToken(token) {
-// return Cookies.set(TokenKey, token)
-// }
+export function setToken(token) {
+ return Cookies.set(TokenKey, token)
+}
-// export function removeToken() {
-// return Cookies.remove(TokenKey)
-// }
+export function removeToken() {
+ return Cookies.remove(TokenKey)
+}
diff --git a/src/utils/request.js b/src/utils/request.js
index e635d42..3f3d342 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -1,66 +1,23 @@
-import axios from 'axios'
-import { Message, MessageBox } from 'element-ui'
-import store from '../store'
-import { getToken } from '@/utils/auth'
-
-// 鍒涘缓axios瀹炰緥
-const service = axios.create({
- baseURL: process.env.BASE_API, // api鐨刡ase_url
- timeout: 15000 // 璇锋眰瓒呮椂鏃堕棿
-})
-
-// request鎷︽埅鍣�
-service.interceptors.request.use(config => {
- if (store.getters.token) {
- config.headers['Authorization'] = getToken() // 璁╂瘡涓姹傛惡甯﹁嚜瀹氫箟token 璇锋牴鎹疄闄呮儏鍐佃嚜琛屼慨鏀�
- }
- return config
-}, error => {
- // Do something with request error
- console.log(error) // for debug
- Promise.reject(error)
-})
-
-// respone鎷︽埅鍣�
-service.interceptors.response.use(
- response => {
- /**
- * code涓洪潪200鏄姏閿� 鍙粨鍚堣嚜宸变笟鍔¤繘琛屼慨鏀�
- */
- const res = response.data
- if (res.code !== 200) {
- Message({
- message: res.message,
- type: 'error',
- duration: 3 * 1000
- })
-
- // 401:鏈櫥褰�;
- if (res.code === 401) {
- MessageBox.confirm('浣犲凡琚櫥鍑猴紝鍙互鍙栨秷缁х画鐣欏湪璇ラ〉闈紝鎴栬�呴噸鏂扮櫥褰�', '纭畾鐧诲嚭', {
- confirmButtonText: '閲嶆柊鐧诲綍',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- }).then(() => {
- store.dispatch('FedLogOut').then(() => {
- location.reload()// 涓轰簡閲嶆柊瀹炰緥鍖杤ue-router瀵硅薄 閬垮厤bug
- })
- })
- }
- return Promise.reject('error')
- } else {
- return response.data
- }
+import axios from 'axios';
+// 鎷︽埅鍣�
+// 璇锋眰
+axios.interceptors.request.use(
+ // 璇锋眰涔嬪墠鐨勫洖璋冨嚱鏁�
+ function (config) {
+ config['baseURL'] = '/api';
+ return config;
},
- error => {
- console.log('err' + error)// for debug
- Message({
- message: error.message,
- type: 'error',
- duration: 3 * 1000
- })
- return Promise.reject(error)
+ function (error) {
+ // Do something with request error
+ return Promise.reject(error);
}
-)
-
-export default service
+);
+// 鍝嶅簲
+axios.interceptors.response.use(
+ function (response) {
+ return response.data;
+ },
+ function (error) {
+ return Promise.reject(error);
+ }
+);
\ No newline at end of file
diff --git a/src/utils/support.js b/src/utils/support.js
deleted file mode 100644
index 4e45cb8..0000000
--- a/src/utils/support.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import Cookies from "js-cookie";
-const SupportKey='supportKey';
-export function getSupport() {
- return Cookies.get(SupportKey)
-}
-
-export function setSupport(isSupport) {
- return Cookies.set(SupportKey, isSupport,{ expires: 3 })
-}
-
-export function setCookie(key,value,expires) {
- return Cookies.set(key, value,{ expires: expires})
-}
-
-export function getCookie(key) {
- return Cookies.get(key)
-}
diff --git a/src/utils/validate.js b/src/utils/validate.js
index f7e7f3a..04c0afe 100644
--- a/src/utils/validate.js
+++ b/src/utils/validate.js
@@ -1,7 +1,7 @@
export function isvalidUsername(str) {
// const valid_map = ['admin', 'test']
// return valid_map.indexOf(str.trim()) >= 0
- return str.trim().length>=3
+ return str.trim().length
}
/* 鍚堟硶uri*/
@@ -10,21 +10,4 @@
return urlregex.test(textval)
}
-/* 灏忓啓瀛楁瘝*/
-export function validateLowerCase(str) {
- const reg = /^[a-z]+$/
- return reg.test(str)
-}
-
-/* 澶у啓瀛楁瘝*/
-export function validateUpperCase(str) {
- const reg = /^[A-Z]+$/
- return reg.test(str)
-}
-
-/* 澶у皬鍐欏瓧姣�*/
-export function validatAlphabets(str) {
- const reg = /^[A-Za-z]+$/
- return reg.test(str)
-}
diff --git a/src/views/layout/components/Header/index.vue b/src/views/layout/components/Header/index.vue
index 02def97..93ed327 100644
--- a/src/views/layout/components/Header/index.vue
+++ b/src/views/layout/components/Header/index.vue
@@ -1,32 +1,40 @@
<template>
- <!-- 澶撮儴 -->
- <el-header>
- <!-- 灞曞紑鎺у埗鎸夐挳 -->
- <!-- <hamburger :is-active="opened" class="hamburger-container" @toggleClick="toggleSideBar" /> -->
- <!-- 鍙充晶鑿滃崟 -->
- <div class="header-title">
- <div class="bell">
- <el-icon class="el-icon-bell" style="color: white"></el-icon>
+ <div>
+ <!-- 澶撮儴 -->
+ <el-header>
+ <!-- 鍙充晶鑿滃崟 -->
+ <div class="header-title">
+ <div class="bell">
+ <el-icon class="el-icon-bell" style="color: white"></el-icon>
+ </div>
+ <div class="userinfo">
+ <div class="avatar"></div>
+ <span class="username">admin</span>
+ </div>
+ <div class="loginout" @click="loginout">閫�鍑虹櫥褰�</div>
</div>
- <div class="userinfo">
- <div class="avatar"></div>
- <span class="username">admin</span>
- </div>
- <div class="loginout">閫�鍑虹櫥褰�</div>
- </div>
- </el-header>
+ </el-header>
+ <NavBar />
+ </div>
</template>
<script>
-import hamburger from "@/components/hamburger"
+import hamburger from "@/components/hamburger";
+import NavBar from "../NavBar";
export default {
- data(){
+ data() {
return {
- opened:false
- }
+ opened: false,
+ };
},
- components:{
- hamburger
+ components: {
+ hamburger,
+ NavBar,
+ },
+ methods:{
+ loginout(){
+ this.$router.push({path:"/login"})
+ }
}
};
</script>
diff --git a/src/views/layout/components/Main/index.vue b/src/views/layout/components/Main/index.vue
index ac1c48f..a3453d7 100644
--- a/src/views/layout/components/Main/index.vue
+++ b/src/views/layout/components/Main/index.vue
@@ -1,6 +1,5 @@
<template>
<el-main>
- <NavBar/>
<router-view></router-view>
</el-main>
</template>
diff --git a/src/views/layout/components/NavBar/index.vue b/src/views/layout/components/NavBar/index.vue
index 1be904b..5b0592c 100644
--- a/src/views/layout/components/NavBar/index.vue
+++ b/src/views/layout/components/NavBar/index.vue
@@ -1,20 +1,76 @@
<template>
- <el-breadcrumb separator-class="el-icon-arrow-right">
- <el-breadcrumb-item :to="{ path: '/' }">棣栭〉</el-breadcrumb-item>
- <el-breadcrumb-item>娲诲姩绠$悊</el-breadcrumb-item>
- <el-breadcrumb-item>娲诲姩鍒楄〃</el-breadcrumb-item>
- <el-breadcrumb-item>娲诲姩璇︽儏</el-breadcrumb-item>
+ <el-breadcrumb class="app-breadcrumb" separator="/">
+ <transition-group name="breadcrumb">
+ <el-breadcrumb-item v-for="(item,index) in levelList" :key="item.path">
+ <span v-if="item.redirect==='noRedirect'||index==levelList.length-1" class="no-redirect">{{ item.meta.title }}</span>
+ <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a>
+ </el-breadcrumb-item>
+ </transition-group>
</el-breadcrumb>
</template>
<script>
-export default {};
+import pathToRegexp from 'path-to-regexp'
+
+export default {
+ data() {
+ return {
+ levelList: null
+ }
+ },
+ watch: {
+ $route() {
+ this.getBreadcrumb()
+ }
+ },
+ created() {
+ this.getBreadcrumb()
+ },
+ methods: {
+ getBreadcrumb() {
+ // only show routes with meta.title
+ let matched = this.$route.matched.filter(item => item.meta && item.meta.title)
+ const first = matched[0]
+
+ if (!this.isDashboard(first)) {
+ matched = [{ path: '/dashboard', meta: { title: 'Dashboard' }}].concat(matched)
+ }
+
+ this.levelList = matched.filter(item => item.meta && item.meta.title && item.meta.breadcrumb !== false)
+ },
+ isDashboard(route) {
+ const name = route && route.name
+ if (!name) {
+ return false
+ }
+ return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase()
+ },
+ pathCompile(path) {
+ const { params } = this.$route
+ var toPath = pathToRegexp.compile(path)
+ return toPath(params)
+ },
+ handleLink(item) {
+ const { redirect, path } = item
+ if (redirect) {
+ this.$router.push(redirect)
+ return
+ }
+ this.$router.push(this.pathCompile(path))
+ }
+ }
+}
</script>
<style lang="scss" scoped>
-.el-breadcrumb{
- background-color: #09152F;
- border: 1px dotted #081F31;
- height: 50px;
+.app-breadcrumb.el-breadcrumb {
+ display: inline-block;
+ font-size: 14px;
+ line-height: 30px;
+ margin-left: 8px;
+ .no-redirect {
+ color: #97a8be;
+ cursor: text;
+ }
}
-</style>
\ No newline at end of file
+</style>
diff --git a/src/views/layout/components/SiderBar/index.vue b/src/views/layout/components/SiderBar/index.vue
index 35eaaea..e11e4da 100644
--- a/src/views/layout/components/SiderBar/index.vue
+++ b/src/views/layout/components/SiderBar/index.vue
@@ -1,89 +1,93 @@
<template>
- <!-- 渚ц竟瀵艰埅鏍� -->
- <el-aside width="200px">
- <h2 class="siderbar-title">閬傛槍鎵ф硶骞冲彴</h2>
- <el-scrollbar>
- <!-- 璺敱 -->
- <el-menu router class="el-menu-vertical" :default-active="$route.path">
- <!-- 瑙嗛宸℃煡 -->
- <el-submenu index="/home/video">
- <template slot="title">
- <span slot="prefix" class="icon-padding">
- <svg-icon icon-class="video"></svg-icon>
- </span>
- <span slot="title">瑙嗛宸℃煡</span>
- </template>
- <el-menu-item index="/home/video">瑙嗛宸℃煡</el-menu-item>
- </el-submenu>
- <!-- 鏅鸿兘宸℃煡 -->
- <el-submenu index="/admin/article1">
- <template slot="title">
- <span slot="prefix" class="icon-padding">
- <svg-icon icon-class="intelligence"></svg-icon>
- </span>
- <span>鏅鸿兘宸℃煡</span>
- </template>
- <el-menu-item index="/admin/article/add">棰勮鐮斿垽</el-menu-item>
- <el-menu-item index="/admin/article">杩濊妫�绱�</el-menu-item>
- <el-menu-item index="/admin/article">瓒嬪娍鍒嗘瀽</el-menu-item>
- <el-menu-item index="/admin/article">鏁版嵁缁熻</el-menu-item>
- <el-menu-item index="/admin/article">杩愯鎶ュ憡</el-menu-item>
- </el-submenu>
- <!-- 杩愯惀绠$悊 -->
- <el-submenu index="/admin/article2">
- <template slot="title">
- <span slot="prefix" class="icon-padding">
- <svg-icon icon-class="operate"></svg-icon>
- </span>
- <span>杩愯惀绠$悊</span>
- </template>
- <el-menu-item index="/admin/article/add">鎵ф硶绠$悊</el-menu-item>
- <el-menu-item index="/admin/article/add">璋冨害绠$悊</el-menu-item>
- <el-menu-item index="/admin/article/add">搴楅摵绠$悊</el-menu-item>
- <el-menu-item index="/admin/article/add">杞﹁締绠$悊</el-menu-item>
- <el-menu-item index="/admin/article/add">鍥剧墖绠$悊</el-menu-item>
- <el-menu-item index="/admin/article/add">瑙嗛绠$悊</el-menu-item>
- <el-menu-item index="/admin/article/add">娑堟伅绠$悊</el-menu-item>
- <el-menu-item index="/admin/article/add">瀹℃牳绠$悊</el-menu-item>
- <el-menu-item index="/admin/article/add">鐭俊绠$悊</el-menu-item>
- <el-menu-item index="/admin/article">绠楁硶妯″瀷绠$悊</el-menu-item>
- <el-menu-item index="/admin/article">鏃ュ織绠$悊</el-menu-item>
- </el-submenu>
- <!-- 绯荤粺璁剧疆 -->
- <el-submenu index="/admin/article3">
- <template slot="title">
- <!-- <i class="el-icon-reading"></i> -->
- <span slot="prefix" class="icon-padding">
- <svg-icon icon-class="system"></svg-icon>
- </span>
- <span>绯荤粺璁剧疆</span>
- </template>
- <!-- 鍩烘湰璁剧疆 -->
- <el-submenu index="/admin/article/add">
+ <div>
+ <!-- 渚ц竟瀵艰埅鏍� -->
+ <el-aside width="200px">
+ <h2 class="siderbar-title">閬傛槍鎵ф硶骞冲彴</h2>
+ <el-scrollbar>
+ <!-- 璺敱 -->
+ <el-menu router class="el-menu-vertical" :default-active="$route.path" >
+ <!-- 瑙嗛宸℃煡 -->
+ <el-submenu index="/home/video">
<template slot="title">
- <span>鍩烘湰璁剧疆</span>
+ <span slot="prefix" class="icon-padding">
+ <svg-icon icon-class="video"></svg-icon>
+ </span>
+ <span slot="title">瑙嗛宸℃煡</span>
</template>
- <el-menu-item index="/admin/article">鐢ㄦ埛绠$悊</el-menu-item>
- <el-menu-item index="/admin/article">瑙掕壊绠$悊</el-menu-item>
- <el-menu-item index="/admin/article">鏉冮檺绠$悊</el-menu-item>
- <el-menu-item index="/admin/article">閮ㄩ棬绠$悊</el-menu-item>
+ <el-menu-item index="/home/video">瑙嗛宸℃煡</el-menu-item>
</el-submenu>
- <!-- 骞冲彴璁剧疆 -->
- <el-submenu index="/admin/article/add">
+ <!-- 鏅鸿兘宸℃煡 -->
+ <el-submenu index="/admin/article1">
<template slot="title">
- <span>骞冲彴璁剧疆</span>
+ <span slot="prefix" class="icon-padding">
+ <svg-icon icon-class="intelligence"></svg-icon>
+ </span>
+ <span>鏅鸿兘宸℃煡</span>
</template>
- <el-menu-item index="/admin/article">闂ㄦ埛璁剧疆</el-menu-item>
- <el-menu-item index="/admin/article">绗笁鏂规帴鍙g鐞�</el-menu-item>
+ <el-menu-item index="/admin/article/add">棰勮鐮斿垽</el-menu-item>
+ <el-menu-item index="/admin/article">杩濊妫�绱�</el-menu-item>
+ <el-menu-item index="/admin/article">瓒嬪娍鍒嗘瀽</el-menu-item>
+ <el-menu-item index="/admin/article">鏁版嵁缁熻</el-menu-item>
+ <el-menu-item index="/admin/article">杩愯鎶ュ憡</el-menu-item>
</el-submenu>
- </el-submenu>
- </el-menu>
- </el-scrollbar>
- </el-aside>
+ <!-- 杩愯惀绠$悊 -->
+ <el-submenu index="/admin/article2">
+ <template slot="title">
+ <span slot="prefix" class="icon-padding">
+ <svg-icon icon-class="operate"></svg-icon>
+ </span>
+ <span>杩愯惀绠$悊</span>
+ </template>
+ <el-menu-item index="/admin/article/add">鎵ф硶绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article/add">璋冨害绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article/add">搴楅摵绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article/add">杞﹁締绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article/add">鍥剧墖绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article/add">瑙嗛绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article/add">娑堟伅绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article/add">瀹℃牳绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article/add">鐭俊绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article">绠楁硶妯″瀷绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article">鏃ュ織绠$悊</el-menu-item>
+ </el-submenu>
+ <!-- 绯荤粺璁剧疆 -->
+ <el-submenu index="/admin/article3">
+ <template slot="title">
+ <!-- <i class="el-icon-reading"></i> -->
+ <span slot="prefix" class="icon-padding">
+ <svg-icon icon-class="system"></svg-icon>
+ </span>
+ <span>绯荤粺璁剧疆</span>
+ </template>
+ <!-- 鍩烘湰璁剧疆 -->
+ <el-submenu index="/admin/article/add">
+ <template slot="title">
+ <span>鍩烘湰璁剧疆</span>
+ </template>
+ <el-menu-item index="/admin/article">鐢ㄦ埛绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article">瑙掕壊绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article">鏉冮檺绠$悊</el-menu-item>
+ <el-menu-item index="/admin/article">閮ㄩ棬绠$悊</el-menu-item>
+ </el-submenu>
+ <!-- 骞冲彴璁剧疆 -->
+ <el-submenu index="/admin/article/add">
+ <template slot="title">
+ <span>骞冲彴璁剧疆</span>
+ </template>
+ <el-menu-item index="/admin/article">闂ㄦ埛璁剧疆</el-menu-item>
+ <el-menu-item index="/admin/article">绗笁鏂规帴鍙g鐞�</el-menu-item>
+ </el-submenu>
+ </el-submenu>
+ </el-menu>
+ </el-scrollbar>
+ </el-aside>
+ </div>
</template>
<script>
-export default {};
+export default {
+
+};
</script>
<style lang="scss" scpoed>
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 6e5f771..97555ea 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -19,7 +19,7 @@
ref="loginForm"
label-position="left"
>
- <!-- title -->
+ <!-- title -->
<h2 class="login-title">鐢ㄦ埛鐧诲綍 / USER LOGIN</h2>
<el-form-item prop="username">
<!-- 鐢ㄦ埛鍚嶈緭鍏ユ -->
@@ -45,9 +45,9 @@
autoComplete="on"
placeholder="璇疯緭鍏ョ櫥褰曞瘑鐮�"
>
- <!-- 杈撳叆妗嗗墠icon -->
+ <!-- 杈撳叆妗嗗墠icon -->
<span slot="prefix">
- <svg-icon icon-class="password" class="color"></svg-icon>
+ <svg-icon icon-class="password" class="color"></svg-icon>
</span>
<!-- 杈撳叆妗嗗悗icon -->
<span slot="suffix" @click="showPwd">
@@ -76,7 +76,8 @@
<script>
import { isvalidUsername } from "@/utils/validate";
-
+import { createNamespacedHelpers } from "vuex";
+const { mapActions } = createNamespacedHelpers("users");
export default {
name: "login",
data() {
@@ -96,8 +97,8 @@
};
return {
loginForm: {
- username: "",
- password: "",
+ username: "admin",
+ password: "macro123",
},
loginRules: {
username: [
@@ -111,23 +112,7 @@
pwdType: false,
};
},
- created() {
- // this.loginForm.username = getCookie("username");
- // this.loginForm.password = getCookie("password");
- // if (
- // this.loginForm.username === undefined ||
- // this.loginForm.username == null ||
- // this.loginForm.username === ""
- // ) {
- // this.loginForm.username = "admin";
- // }
- // if (
- // this.loginForm.password === undefined ||
- // this.loginForm.password == null
- // ) {
- // this.loginForm.password = "";
- // }
- },
+ created() {},
methods: {
showPwd() {
if (!this.pwdType) {
@@ -136,59 +121,50 @@
this.pwdType = false;
}
},
+ ...mapActions(["login"]),
handleLogin() {
- this.$router.push({ path: "/home" });
- // this.$refs.loginForm.validate((valid) => {
- // if (valid) {
- // console.log(valid);
- // this.loading = true;
- // this.$store
- // .dispatch("Login", this.loginForm)
- // .then(() => {
- // this.loading = false;
- // setCookie("username", this.loginForm.username, 15);
- // setCookie("password", this.loginForm.password, 15);
- // this.$router.push({ path: "/" });
- // })
- // .catch(() => {
- // this.loading = false;
- // });
- // } else {
- // console.log("鍙傛暟楠岃瘉涓嶅悎娉曪紒");
- // return false;
- // }
- // });
+ console.log("in login");
+ const { username, password } = this.loginForm;
+ this.$axios
+ .post("http://42.193.1.25:8082/sccg/admin/login", {
+ password,
+ username,
+ })
+ .then(function (response) {
+ console.log(response);
+ })
+ .catch(function (error) {
+ console.log(error);
+ });
},
},
};
</script>
<style lang="scss" scoped>
-.color{
+.color {
color: red;
}
#background {
width: 100vw;
height: 100vh;
background: url("@/assets/imgs/login/login_bg.jpg");
- background-size: cover ;
+ background-size: cover;
position: relative;
display: flex;
min-width: 800px;
}
.login-form-layout {
position: absolute;
+ top: 20%;
right: 5%;
width: 360px;
- align-self: center;
}
.text {
align-self: flex-start;
position: absolute;
- top:20%;
+ top: 20%;
left: 5%;
- // margin-top: 180px;
- // margin-left: 50px;
display: flex;
width: 400px;
justify-content: space-between;
diff --git a/vue.config.js b/vue.config.js
index afd301f..0eb08d4 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -33,13 +33,16 @@
host: 'localhost',
port: port,
open: true,
+ headers: {
+ "Access-Control-Allow-Origin": "*",
+ },
proxy: {
// 璺ㄥ煙閰嶇疆
- [process.env.VUE_APP_BASE_API]: {
- target: `http://localhost:8080`,
+ "/api": {
+ target: `http://42.193.1.25:8082`,
changeOrigin: true,
pathRewrite: {
- ['^' + process.env.VUE_APP_BASE_API]: ''
+ "^/api": ''
}
}
},
--
Gitblit v1.8.0