Browse Source

Merge branch 'wangyi/feature-20251026183100-deepmate王毅' into milestone-20251031-简版功能开发

zhaowenkang/feature-20251028181547-行情页面
Ethereal 4 weeks ago
parent
commit
8490e9bc79
  1. 24
      components/login-prompt.vue
  2. 2
      pages/deepMate/deepMate.vue
  3. 9
      pages/start/startup/startup.vue
  4. 1
      stores/index.js
  5. 44
      stores/modules/deviceInfo.js
  6. 2
      stores/modules/userInfo.js
  7. 23
      utils/http.js

24
components/login-prompt.vue

@ -17,14 +17,16 @@
<script setup>
import { ref, nextTick, onMounted } from "vue";
import { useUserStore } from "../stores/modules/userInfo";
import { useDeviceStore } from "../stores/modules/deviceInfo";
import { LoginApi } from "../api/start/login";
const deviceId = ref("");
const userStore = useUserStore();
const deviceStore = useDeviceStore();
//
onMounted(() => {
if (!userStore.userInfo) {
show();
}
});
@ -68,10 +70,22 @@ const goRegister = () => {
};
// 访
const continueAsVisitor = () => {
const continueAsVisitor = async () => {
// 访
uni.setStorageSync("visitorMode", true);
hide();
const res = await LoginApi({
loginType: "VISITOR", //EMAIL,PHONE,DCCODE,APPLE,GOOGLE,VISITOR
account: "", // //dccode
verifyCode: "", //
password: "", //
useCode: "", //使 true/false
idToken: "", //idToken
deviceId: deviceStore.deviceInfo.deviceId,
});
if (res.code === 200) {
userStore.setUserInfo(res.data);
hide();
}
};
// 使

2
pages/deepMate/deepMate.vue

@ -640,7 +640,7 @@ const simulateBotResponse = async (userMessage) => {
scrollToBottom();
//
const baseDelay = 165; //
const baseDelay = 5; //
const slowPunct = /[。!?!?;;]/; //
const midPunct = /[,、,::]/; //
const delay = slowPunct.test(ch)

9
pages/start/startup/startup.vue

@ -12,8 +12,17 @@
<script setup>
import { onShow } from "@dcloudio/uni-app";
import { useUserStore } from "../../../stores/modules/userInfo";
import { useDeviceStore } from "../../../stores/modules/deviceInfo";
onShow(() => {
const deviceInfo = useDeviceStore();
// ID
uni.getSystemInfo({
success: (res) => {
deviceInfo.setDeviceInfo(res)
},
});
setTimeout(() => {
const userStore = useUserStore();
if (!userStore.userInfo)

1
stores/index.js

@ -8,5 +8,6 @@ pinia.use(persist)
// 导入所有模块
export * from './modules/userInfo'
export * from './modules/deviceInfo'
// 默认导出,给 main.js 使用
export default pinia

44
stores/modules/deviceInfo.js

@ -0,0 +1,44 @@
import { defineStore } from 'pinia'
import { ref } from 'vue'
// 定义 Store
export const useDeviceStore = defineStore(
'device',
() => {
// 会员信息
const deviceInfo = ref()
// 保存会员信息,登录时使用
const setDeviceInfo = (val) => {
deviceInfo.value = val
}
// 清理会员信息,退出时使用
const clearDeviceInfo = () => {
deviceInfo.value = undefined
}
// 记得 return
return {
deviceInfo,
setDeviceInfo,
clearDeviceInfo,
}
},
// TODO: 持久化
{
// 网页端持久化
// persist: true,
// 小程序端持久化
persist: {
storage: {
getItem(key) {
return uni.getStorageSync(key)
},
setItem(key, value) {
uni.setStorageSync(key, value)
},
},
},
},
)

2
stores/modules/userInfo.js

@ -3,7 +3,7 @@ import { ref } from 'vue'
// 定义 Store
export const useUserStore = defineStore(
'member',
'user',
() => {
// 会员信息
const userInfo = ref()

23
utils/http.js

@ -1,4 +1,5 @@
import { useUserStore } from "../stores/modules/userInfo"
import { useDeviceStore } from "../stores/modules/deviceInfo"
const baseURL = "https://hwjb.homilychart.com/testApi"
@ -26,6 +27,9 @@ const httpInterceptor = {
//3 添加小程序端请求头
const sys = uni.getSystemInfoSync();
// 为对齐后端文档示例,client 固定为 ios(如需按平台设置再改回)
const deviceInfo =useDeviceStore()
const client = 'ios';
options.header = {
...options.header,
@ -34,15 +38,16 @@ const httpInterceptor = {
'content-type': 'application/json',
'contentType': 'application/json',
'version': '1',
'client': client
'client': client,
'deviceId': deviceInfo.deviceId
}
//4 添加token,优先用store,没有则回退到body中的token,保持与Apifox一致
const memberStore = useUserStore()
const token = memberStore.userInfo?.token || options.data?.token
// const token = 'dccec0b65a94f498b8183a17589ab16e'
if (token) {
options.header.token = token
}
// const token = memberStore.userInfo?.token || options.data?.token
const token = 'dccec0b65a94f498b8183a17589ab16e'
if (token) {
options.header.token = token
}
// 避免误用 Authorization 头,后端要求的是 token 头
// if (options.header.Authorization) delete options.header.Authorization
return options
@ -59,6 +64,12 @@ export const http = (options) => {
// 1.请求成功
success: (result) => {
if (result.statusCode >= 200 && result.statusCode < 300) {
if (result.data.code === 401) {
uni.showToast({
title: '请先登录',
icon: 'none'
})
}
resolve(result.data)
} else if (result.statusCode === 401) {
// 清除登录信息

Loading…
Cancel
Save