浏览代码

框架建立1

JXDS18FUJT 1 年之前
父节点
当前提交
94afd57450
共有 7 个文件被更改,包括 111 次插入14 次删除
  1. 5 0
      src/api/index.ts
  2. 16 0
      src/api/login/index.ts
  3. 21 0
      src/api/login/type.d.ts
  4. 15 5
      src/api/request.ts
  5. 7 1
      src/pages.json
  6. 39 0
      src/pages/forecast/index.vue
  7. 8 8
      src/pages/index/index.vue

+ 5 - 0
src/api/index.ts

@@ -0,0 +1,5 @@
+import login from "./login";
+
+export default{
+    login
+}

+ 16 - 0
src/api/login/index.ts

@@ -0,0 +1,16 @@
+import { Axios, AxiosPromise } from "axios";
+import request from "../request";
+export default {
+    loginJscode(params:{
+        jscode:string
+    }):AxiosPromise<loginRes.loginJscode>{
+        return request({
+            params,
+            method: 'POST',
+            url: "/login/jscode",
+            headers: {
+                isToken: false
+            }
+        })
+    }
+}

+ 21 - 0
src/api/login/type.d.ts

@@ -0,0 +1,21 @@
+interface commonRes {
+    code: number
+    msg: string
+
+}
+declare namespace loginRes {
+    interface loginJscode extends commonRes {
+        data: {
+            token: string
+            thirdResult: {
+                openid: string,
+                unionid: string,
+                nickName?: string,
+                headimgurl?: string
+            }
+        }
+
+    }
+}
+
+

+ 15 - 5
src/api/request.ts

@@ -1,17 +1,27 @@
-import axios from "axios";
+import axios, { AxiosRequestConfig, AxiosResponse } from "axios";
 import axiosAdapterUniapp from 'axios-adapter-uniapp'
+import { config } from "vue/types/umd";
 const request = axios.create({
     baseURL: process.env.NODE_ENV === "production" ? "https://xpgx.zzxcx.net/prod-api/" : "https://xpgx1.zzxcx.net/xpgx-admin/",
 
 });
 axios.defaults.adapter = axiosAdapterUniapp
 //请求拦截器
-request.interceptors.request.use(config => {
-    console.log(config)
+const token = uni.getStorageSync("token") || ""
+request.interceptors.request.use<AxiosRequestConfig<any>>(config => {
+    if (config.url?.includes('login/')) {
+
+    }
+    else {
+
+        config.headers ? config.headers["Authorization"] = "Bearer " + token : ''
+        return config
+    }
+
     return config
-}, err => { })
+}, err => { console.log(err) })
 //响应拦截器
-request.interceptors.response.use(res => {
+request.interceptors.response.use<AxiosResponse>(res => {
     return res
 
 })

+ 7 - 1
src/pages.json

@@ -3,7 +3,13 @@
 		{
 			"path": "pages/index/index",
 			"style": {
-				"navigationBarTitleText": "uni-app"
+				"navigationBarTitleText": "首页"
+			}
+		},
+		{
+			"path":"pages/forecast/index",
+			"style": {
+				"navigationBarTitleText": "预测结果"
 			}
 		}
 	],

+ 39 - 0
src/pages/forecast/index.vue

@@ -0,0 +1,39 @@
+<template>
+    <view>
+
+    </view>
+</template>
+
+<script lang="ts">
+import Vue from 'vue';
+import request from '@/api/request';
+export default Vue.extend({
+    data() {
+        return {
+            title: '国学'
+        }
+    },
+    onLoad() {
+        uni.login({
+            success: res => {
+                request({
+                    url: 'login/jscode',
+                    method: 'post',
+                    params: {
+                        jscode: res.code
+                    }
+                })
+
+            }
+
+
+        })
+
+    },
+    methods: {
+
+    }
+});
+</script>
+
+<style scoped></style>

+ 8 - 8
src/pages/index/index.vue

@@ -9,22 +9,22 @@
 
 <script lang="ts">
 import Vue from 'vue';
-import request from '@/api/request';
+import api from '@/api/index';
 export default Vue.extend({
 	data() {
 		return {
-			title: 'Hello'
+			title: '国学'
 		}
 	},
 	onLoad() {
 		uni.login({
 			success: res => {
-				request({
-					url: 'login/jscode',
-					method:'post',
-					params: {
-						jscode: res.code
-					}
+				api.login.loginJscode({
+					jscode: res.code
+				}).then(result => {
+					uni.setStorageSync("token", result.data.data.token)
+
+
 				})
 
 			}