Compare commits

...

3 Commits

Author SHA1 Message Date
xyiege 6ec8879127 删除stores 4 months ago
xyiege 46453c6082 代码修改 4 months ago
xyiege ba1311ae59 增加登录 4 months ago
  1. 3
      vue/afvue/package.json
  2. 12
      vue/afvue/src/components/nprogress.css
  3. 6
      vue/afvue/src/main.js
  4. 33
      vue/afvue/src/permission.js
  5. 2
      vue/afvue/src/router/index.js
  6. 16
      vue/afvue/src/stores/counter.js
  7. 10
      vue/afvue/src/views/Login.vue
  8. 5
      vue/afvue/yarn.lock

3
vue/afvue/package.json

@ -14,7 +14,8 @@
"lodash": "^4.17.21",
"pinia": "^2.0.16",
"vue": "^2.7.7",
"vue-router": "^3.5.4"
"vue-router": "^3.5.4",
"vuex": "^3.1.1"
},
"devDependencies": {
"@vitejs/plugin-legacy": "^2.0.0",

12
vue/afvue/src/components/NProgress/nprogress.less → vue/afvue/src/components/nprogress.css

@ -1,4 +1,3 @@
@import url('../index.less');
/* Make clicks pass-through */
#nprogress {
@ -6,8 +5,8 @@
}
#nprogress .bar {
background: @primary-color;
/* background: @primary-color; */
background-color: rgb(224, 89, 82);
position: fixed;
z-index: 1031;
top: 0;
@ -24,7 +23,8 @@
right: 0px;
width: 100px;
height: 100%;
box-shadow: 0 0 10px @primary-color, 0 0 5px @primary-color;
/* box-shadow: 0 0 10px @primary-color, 0 0 5px @primary-color; */
box-shadow: 0 0 10px rgb(224, 89, 82), 0 0 5px rgb(220, 215, 215);
opacity: 1.0;
-webkit-transform: rotate(3deg) translate(0px, -4px);
@ -47,8 +47,8 @@
box-sizing: border-box;
border: solid 2px transparent;
border-top-color: @primary-color;
border-left-color: @primary-color;
border-top-color: rgb(224, 89, 82);
border-left-color: rgb(224, 89, 82);
border-radius: 50%;
-webkit-animation: nprogress-spinner 400ms linear infinite;

6
vue/afvue/src/main.js

@ -3,14 +3,18 @@ import { createPinia, PiniaVuePlugin } from 'pinia'
import { VueAxios } from './utils/request'
import App from './App.vue'
import router from './router'
// 导入权限控制模块
import './permission'
import './assets/main.css'
Vue.use(PiniaVuePlugin)
const pinia = createPinia()
Vue.use(VueAxios)
new Vue({
router,
pinia: createPinia(),
store: pinia,
render: (h) => h(App)
}).$mount('#app')

33
vue/afvue/src/permission.js

@ -0,0 +1,33 @@
import router from './router'
import { userStStore } from './stores/user'
import { useCounterStore } from './stores/counter'
import NProgress from 'nprogress' // progress bar
import '@/components/nprogress.css' // progress bar style
NProgress.configure({ showSpinner: false }) // NProgress Configuration
// 登录页面
const loginRoutePath = '/login'
// 白名单
const whiteList = [loginRoutePath]
// 路由守卫
router.beforeEach((to, from, next) => {
NProgress.start() // start progress bar
// // 获取用户store实例
const userStore = useCounterStore()
// console.log(userStore.token,"user token")
// // 检查token
// console.log("check token")
})
// 路由守卫
router.afterEach((to, from) => {
NProgress.done() // finish progress bar
})

2
vue/afvue/src/router/index.js

@ -68,4 +68,4 @@ const router = new VueRouter({
// }
// })
export default router
export default router

16
vue/afvue/src/stores/counter.js

@ -1,16 +0,0 @@
import { defineStore } from 'pinia'
export const useCounterStore = defineStore({
id: 'counter',
state: () => ({
counter: 0
}),
getters: {
doubleCount: (state) => state.counter * 2
},
actions: {
increment() {
this.counter++
}
}
})

10
vue/afvue/src/views/Login.vue

@ -22,6 +22,7 @@
import { login } from '@/api/scinfo'
import storage from 'store'
import router from '@/router'
import { useUserStore } from '@/stores/user'
export default {
name: 'Login',
@ -53,6 +54,15 @@ export default {
if (res && res.data && res.data.token) {
// tokenlocalStorage
storage.set('token', res.data.token)
// 使Pinia store
const userStore = useUserStore()
userStore.setUser({
username: this.username,
token: res.data.token,
...(res.data.userInfo || {})
})
//
router.push('/')
} else {

5
vue/afvue/yarn.lock

@ -669,3 +669,8 @@ vue@^2.7.7:
dependencies:
"@vue/compiler-sfc" "2.7.16"
csstype "^3.1.0"
vuex@^3.1.1:
version "3.6.2"
resolved "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71"
integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==

Loading…
Cancel
Save