Browse Source

登陆接口

master
maochaoying 2 years ago
parent
commit
3e59402885
  1. 2
      .env
  2. 17
      src/api/index.js
  3. 9
      src/api/login.js
  4. 18
      src/pages/Login.vue
  5. 2
      src/service/index.js
  6. 1
      src/service/request.js
  7. 4
      src/store/index.js
  8. 20
      src/store/modules/account.js
  9. 27
      src/store/modules/count.js

2
.env

@ -1 +1 @@
VITE_BASE_URL=http://127.0.0.1:8899/
VITE_BASE_URL=http://127.0.0.1:8899

17
src/api/index.js

@ -1,17 +0,0 @@
import request from '@/service'
export const get15DaysWeatherByArea = data => {
return request({
url: '/api/common/weather/get15DaysWeatherByArea',
method: 'GET',
data,
interceptors: {
requestInterceptors(res) {
return res
},
responseInterceptors(result) {
return result
},
},
})
}

9
src/api/login.js

@ -0,0 +1,9 @@
import request from '@/service'
export const loginApi = data => {
return request({
url: '/account/login',
method: 'POST',
data,
})
}

18
src/pages/Login.vue

@ -97,18 +97,26 @@ import Back from '@/static/img/login/back.png'
import { DesktopIcon, LockOnIcon } from 'tdesign-icons-vue-next'
import { useRouter } from 'vue-router'
import { MessagePlugin } from 'tdesign-vue-next'
import { loginApi } from '@/api/login'
import { useAccountStore } from '@/store'
import { storeToRefs } from 'pinia'
const accountStore = useAccountStore()
const router = useRouter()
const formData = ref({
account: '',
password: '',
})
const onSubmit = ({ validateResult, firstError }) => {
const onSubmit = async ({ validateResult, firstError }) => {
if (validateResult === true) {
if (
formData.value.account == 'admin' &&
formData.value.password == 'admin'
) {
const res = await loginApi({
username: formData.value.account,
password: formData.value.password,
})
if (res && res.code == 200) {
// tokenstore
accountStore.updateToken(res?.data?.token)
accountStore.updateUsername(res?.data?.username)
router.push('/')
} else {
MessagePlugin.error({ content: '请输入正确的用户名和密码!' })

2
src/service/index.js

@ -4,7 +4,7 @@ import Request from './request'
*/
const request = new Request({
baseURL: import.meta.env.BASE_URL,
baseURL: import.meta.env.VITE_BASE_URL,
timeout: 1000 * 60 * 5,
interceptors: {
// 请求拦截器

1
src/service/request.js

@ -95,7 +95,6 @@ class Request {
if (config.interceptors?.responseInterceptors) {
res = config.interceptors.responseInterceptors.res
}
resolve(res)
})
.catch(err => {

4
src/store/index.js

@ -1,6 +1,6 @@
import { createPinia } from 'pinia'
import { useCountStore } from './modules/count'
import { useAccountStore } from './modules/account'
const store = createPinia()
export default store
export { useCountStore }
export { useAccountStore }

20
src/store/modules/account.js

@ -0,0 +1,20 @@
import { defineStore } from 'pinia'
export const useAccountStore = defineStore({
id: 'account', // id必填,且需要唯一
// state
state: () => {
return {
token: null,
username: '',
}
},
// actions
actions: {
updateToken(token) {
this.token = token
},
updateUsername(username) {
this.username = username
},
},
})

27
src/store/modules/count.js

@ -1,27 +0,0 @@
import { defineStore } from 'pinia'
export const useCountStore = defineStore({
id: 'count', // id必填,且需要唯一
// state
state: () => {
return {
count: 0,
}
},
// getters
getters: {
doubleCount: state => {
return state.count * 2
},
},
// actions
actions: {
// actions 同样支持异步写法
countAdd() {
// 可以通过 this 访问 state 中的内容
this.count++
},
countReduce() {
this.count--
},
},
})
Loading…
Cancel
Save