From 7e4a538f5e4ab99ce02a4b5694ab768d1ecfd766 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?CN32479-=E8=A9=B9=E7=BA=A2=E6=9F=B1?= <1337608148@qq.com>
Date: Wed, 18 Aug 2021 20:36:58 +0800
Subject: [PATCH] no message
---
src/Api/request.js | 94 ++++++++++++++++++++++
src/Api/user.js | 68 ++++++++++++++++
src/App.vue | 80 +++++++++++++++++--
src/assets/svg/{我的.svg => user.svg} | 0
src/components/Dialog.vue | 25 +-----
src/components/Login.vue | 107 ++++++++++++++++++++++++++
src/main.js | 8 ++
7 files changed, 352 insertions(+), 30 deletions(-)
create mode 100644 src/Api/request.js
create mode 100644 src/Api/user.js
rename src/assets/svg/{我的.svg => user.svg} (100%)
create mode 100644 src/components/Login.vue
diff --git a/src/Api/request.js b/src/Api/request.js
new file mode 100644
index 0000000..0394743
--- /dev/null
+++ b/src/Api/request.js
@@ -0,0 +1,94 @@
+import axios from 'axios'
+import { MessageBox, Message } from 'element-ui'
+import store from '@/store'
+import { getToken } from '@/utils/auth'
+
+// create an axios instance
+const service = axios.create({
+ baseURL: 'https://lean.zhanhongzhu.top' || process.env.NODE_ENV === 'production' ? window.PROD_CONFIG.BASE_URL : process.env.VUE_APP_BASE_API, // url = base url + request url
+ // withCredentials: true, // send cookies when cross-domain requests
+ timeout: 50000 // request timeout
+})
+
+// request interceptor
+service.interceptors.request.use(
+ config => {
+ // do something before request is sent
+
+ if (store.getters.token) {
+ // let each request carry token
+ // ['X-Token'] is a custom headers key
+ // please modify it according to the actual situation
+ config.headers['X-Token'] = getToken()
+ }
+ return config
+ },
+ error => {
+ // do something with request error
+ console.log(error) // for debug
+ return Promise.reject(error)
+ }
+)
+
+// response interceptor
+service.interceptors.response.use(
+ /**
+ * If you want to get http information such as headers or status
+ * Please return response => response
+ */
+
+ /**
+ * Determine the request status by custom code
+ * Here is just an example
+ * You can also judge the status by HTTP Status Code
+ */
+ response => {
+ const res = response.data
+
+ if (res.status === 400) {
+ Message({
+ message: '入参错误',
+ type: 'error',
+ duration: 5 * 1000
+ })
+ return false
+ }
+
+ // if the custom code is not 0, it is judged as an error.
+ if (res.code !== 0 && res.code !== 200) {
+ Message({
+ message: res.message || 'Error',
+ type: 'error',
+ duration: 5 * 1000
+ })
+
+ // 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
+ if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
+ // to re-login
+ MessageBox.confirm('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', {
+ confirmButtonText: 'Re-Login',
+ cancelButtonText: 'Cancel',
+ type: 'warning'
+ }).then(() => {
+ store.dispatch('user/resetToken').then(() => {
+ location.reload()
+ })
+ })
+ }
+ return Promise.reject(new Error(res.message || 'Error'))
+ } else {
+ return res
+ }
+ },
+ error => {
+ console.log('err' + error) // for debug
+ Message({
+ message: error.message,
+ type: 'error',
+ duration: 5 * 1000
+ })
+ return Promise.reject(error)
+ }
+)
+
+export default service
diff --git a/src/Api/user.js b/src/Api/user.js
new file mode 100644
index 0000000..2a4d04b
--- /dev/null
+++ b/src/Api/user.js
@@ -0,0 +1,68 @@
+import AV from 'leancloud-storage'
+// 用户登录
+const login = (username, password) => {
+ console.log(username, password)
+ return new Promise((resolve, reject) => {
+ AV.User.logIn(username, password).then(user => {
+ resolve(user)
+ }).catch(error => {
+ reject(error)
+ })
+ })
+}
+
+// 用户登录
+const loginEmail = (username, password) => {
+ console.log(username, password)
+ return new Promise((resolve, reject) => {
+ AV.User.loginWithEmail(username, password).then(user => {
+ resolve(user)
+ }).catch(error => {
+ reject(error)
+ })
+ })
+}
+// 用户登出
+const logout = (username, password) => {
+ return new Promise((resolve, reject) => {
+ AV.User.logOut(username, password).then(user => {
+ resolve(user)
+ })
+ })
+}
+
+// 用户注册
+const register = (username, password) => {
+ return new Promise((resolve, reject) => {
+ const user = new AV.User()
+ user.setUsername(username)
+ user.setPassword(password)
+ user.signUp().then((user) => {
+ resolve(user)
+ }, (error) => {
+ reject(error)
+ })
+ })
+}
+const getInfo = (params) => {
+ return new Promise((resolve, reject) => {
+ const user = new AV.User()
+ user.loginWithAuthData({
+ openid: params.openid,
+ access_token: params.access_token,
+ expires_in: params.expires_in
+ }, 'weixin').then(function (user) {
+ resolve(user)
+ }).catch(function (error) {
+ reject(error)
+ })
+ })
+}
+
+export default {
+ login,
+ logout,
+ register,
+ loginEmail,
+ getInfo
+}
diff --git a/src/App.vue b/src/App.vue
index e6d59f3..16e80d7 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -14,9 +14,10 @@
-
-
+
{{userInfo.username.slice(0, 5)}}
+
+