This commit is contained in:
nepiedg
2026-01-25 11:45:16 +08:00
commit c883ae7b17
44 changed files with 5945 additions and 0 deletions
+46
View File
@@ -0,0 +1,46 @@
import { request } from './request'
import { MINI_PROGRAM_ID } from '@/config'
import { storage, SESSION_KEY, USER_KEY } from '@/utils/storage'
export async function login() {
return new Promise((resolve, reject) => {
uni.login({
provider: 'weixin',
success: async (loginRes) => {
try {
const res = await request.post('/auth/login', {
mini_program_id: MINI_PROGRAM_ID,
code: loginRes.code
})
storage.set(SESSION_KEY, res.data.session_key)
storage.set(USER_KEY, res.data.user)
resolve(res.data)
} catch (e) {
reject(e)
}
},
fail: (err) => {
reject(err)
}
})
})
}
export function getUser() {
return storage.get(USER_KEY)
}
export function getSessionKey() {
return storage.get(SESSION_KEY)
}
export function isLoggedIn() {
return !!getSessionKey()
}
export function logout() {
storage.remove(SESSION_KEY)
storage.remove(USER_KEY)
}
+3
View File
@@ -0,0 +1,3 @@
export * from './auth'
export * from './smoke'
export * from './profile'
+9
View File
@@ -0,0 +1,9 @@
import { request } from './request'
export function getProfile() {
return request.get('/smoke/profile')
}
export function updateProfile(data) {
return request.put('/smoke/profile', data)
}
+66
View File
@@ -0,0 +1,66 @@
import { BASE_URL } from '@/config'
import { storage, SESSION_KEY } from '@/utils/storage'
export const request = {
async request(options) {
const sessionKey = storage.get(SESSION_KEY)
return new Promise((resolve, reject) => {
uni.request({
url: BASE_URL + options.url,
method: options.method || 'GET',
data: options.data,
header: {
'Content-Type': 'application/json',
'Authorization': sessionKey ? `Bearer ${sessionKey}` : ''
},
success: async (res) => {
if (res.statusCode === 401) {
const { login } = await import('./auth')
try {
await login()
resolve(this.request(options))
} catch (e) {
reject(e)
}
return
}
if (res.statusCode !== 200) {
uni.showToast({
title: res.data?.message || '请求失败',
icon: 'none'
})
reject(new Error(res.data?.message || '请求失败'))
return
}
resolve(res.data)
},
fail: (err) => {
uni.showToast({
title: '网络错误',
icon: 'none'
})
reject(err)
}
})
})
},
get(url, params) {
return this.request({ url, method: 'GET', data: params })
},
post(url, data) {
return this.request({ url, method: 'POST', data })
},
put(url, data) {
return this.request({ url, method: 'PUT', data })
},
delete(url) {
return this.request({ url, method: 'DELETE' })
}
}
+45
View File
@@ -0,0 +1,45 @@
import { request } from './request'
export function getDashboard(params = {}) {
return request.get('/smoke/dashboard', params)
}
export function getNextSmokeTime(params = {}) {
return request.get('/smoke/next_smoke_time', params)
}
export function getLogs(params = {}) {
return request.get('/smoke/logs', params)
}
export function getLatestLogs(limit = 20) {
return request.get('/smoke/logs/latest', { limit })
}
export function getLog(id) {
return request.get(`/smoke/logs/${id}`)
}
export function createLog(data) {
return request.post('/smoke/logs', data)
}
export function updateLog(id, data) {
return request.put(`/smoke/logs/${id}`, data)
}
export function deleteLog(id) {
return request.delete(`/smoke/logs/${id}`)
}
export function createResistedLog(data) {
return request.post('/smoke/logs/resisted', data)
}
export function getAiAdvice(date) {
return request.get('/smoke/ai/advice', { date })
}
export function unlockAiAdvice(data) {
return request.post('/smoke/ai/advice_unlocks', data)
}