8/16二次更新

hyx_brand
hyx 4 weeks ago
parent 6afa988017
commit d4b3ce78ae

@ -63,19 +63,19 @@ export default createStore({
try {
const userData = savedUser
if (userData && userData.username) {
// 验证服务器端会话是否仍然有效
const serverUserData = await service.get('/user/getinfo', {
silent: true // 避免未登录时显示错误
})
if (serverUserData && serverUserData.username) {
// 服务器会话有效,更新用户信息
const admin = serverUserData.admin === 1;
commit('setUser', {
username: serverUserData.username,
pic: serverUserData.pic || '',
admin
})
// 验证服务器端会话是否仍然有效
const response = await service.get('/user/getinfo', {
silent: true // 避免未登录时显示错误
})
if (response.data && response.data.username) {
// 服务器会话有效,更新用户信息
const admin = response.data.admin === 1;
commit('setUser', {
username: response.data.username,
pic: response.data.pic || '',
admin
})
// 获取关联信息
try {
@ -99,18 +99,18 @@ export default createStore({
commit('clearUser')
}
} else {
// 没有保存的用户信息,尝试静默获取
const userData = await service.get('/user/getinfo', {
silent: true
})
if (userData && userData.username) {
const admin = userData.admin === 1;
commit('setUser', {
username: userData.username,
pic: userData.pic || '',
admin
})
// 没有保存的用户信息,尝试静默获取
const response = await service.get('/user/getinfo', {
silent: true
})
if (response.data && response.data.username) {
const admin = response.data.admin === 1;
commit('setUser', {
username: response.data.username,
pic: response.data.pic || '',
admin
})
// 获取关联信息
try {
@ -161,32 +161,37 @@ export default createStore({
return response.data
},
// 获取当前用户信息 - 符合接口文档
// 获取当前用户信息 - 符合接口文档1.3
async fetchUser({ commit, dispatch }) {
try {
const userData = await service.get('/user/getinfo')
const admin = userData.admin === 1;
// 用户信息接口直接返回用户对象
commit('setUser', {
username: userData.username || '',
pic: userData.pic || '',
admin
})
const response = await service.get('/user/getinfo')
// 获取关联信息
try {
await dispatch('fetchBalanceAndVip')
} catch (balanceError) {
console.error('获取余额信息失败:', balanceError)
}
try {
await dispatch('fetchBorrowedBooks')
} catch (booksError) {
console.error('获取借阅书籍失败:', booksError)
// 根据接口文档1.3,直接返回用户对象
if (response.data && response.data.username) {
const admin = response.data.admin === 1;
commit('setUser', {
username: response.data.username || '',
pic: response.data.pic || '',
admin
})
// 获取关联信息
try {
await dispatch('fetchBalanceAndVip')
} catch (balanceError) {
console.error('获取余额信息失败:', balanceError)
}
try {
await dispatch('fetchBorrowedBooks')
} catch (booksError) {
console.error('获取借阅书籍失败:', booksError)
}
return response.data
} else {
throw new Error('获取用户信息失败')
}
return userData
} catch (error) {
commit('clearUser')
throw error
@ -251,36 +256,44 @@ export default createStore({
// 根据接口文档1.6,管理员返回数组,普通用户返回单个对象
if (response.data && response.data.code === 200) {
return response.data
} else if (response.data && response.data.code === 1) {
throw new Error(response.data.message || '获取借阅记录失败')
} else {
throw new Error(response.data?.message || '获取借阅记录失败')
throw new Error('获取借阅记录失败')
}
},
// 获取当前用户已借书籍
// 获取当前用户已借书籍 - 符合接口文档2.5
async fetchBorrowedBooks({ commit }) {
const response = await service.get('/user/borrow/books')
// 按照接口文档处理响应
if (response.data.code === 200) {
commit('setBorrowedBooks', response.data.data || [])
} else {
throw new Error(response.data.message || '获取已借书籍失败')
}
return response.data
},
const response = await service.get('/user/borrow/books')
// 按照接口文档2.5,返回书籍数组
if (response.data && Array.isArray(response.data)) {
commit('setBorrowedBooks', response.data)
return { data: response.data }
} else {
throw new Error('获取已借书籍失败')
}
},
// 租借书籍
async borrowBook({ dispatch }, { title }) {
const response = await service.post('/borrow/borrowbook',
`title=${encodeURIComponent(title)}`,
{ headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
)
// 借书后刷新用户信息
await dispatch('fetchUser')
return response.data
},
// 租借书籍 - 符合接口文档3.1
async borrowBook({ dispatch }, { title }) {
const response = await service.post('/borrow/borrowbook',
`title=${encodeURIComponent(title)}`,
{ headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
)
// 根据接口文档3.1,检查响应
if (response.data && response.data.code === 200) {
// 借书后刷新用户信息
await dispatch('fetchUser')
return response.data
} else if (response.data && response.data.code === 1) {
throw new Error(response.data.message || '借书失败')
} else {
throw new Error('借书失败')
}
},
// 归还书籍 - 符合接口文档3.2
async returnBook({ dispatch }, { title }) {
@ -290,10 +303,16 @@ async returnBook({ dispatch }, { title }) {
{ headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }
)
// 还书成功后刷新借阅书籍列表
await dispatch('fetchBorrowedBooks')
return response.data
// 根据接口文档3.2,检查响应
if (response.data && response.data.code === 200) {
// 还书成功后刷新借阅书籍列表
await dispatch('fetchBorrowedBooks')
return response.data
} else if (response.data && response.data.code === 1) {
throw new Error(response.data.message || '还书失败')
} else {
throw new Error('还书失败')
}
} catch (error) {
console.error('还书失败:', error)
throw error
@ -316,12 +335,13 @@ async returnBook({ dispatch }, { title }) {
let list = []
let total = 0
if (Array.isArray(response.data)) {
// 检查响应格式
if (response.data && Array.isArray(response.data)) {
list = response.data
total = response.data.length
} else if (Array.isArray(response.data)) {
list = response.data
total = response.data.length
} else if (Array.isArray(response)) {
list = response
total = response.length
} else {
console.warn('API返回格式不符合预期:', response)
list = []
@ -345,11 +365,11 @@ async returnBook({ dispatch }, { title }) {
params: { title }
})
// 根据接口文档处理响应
if (response.data && response.data.code === 200) {
return { data: response.data.data }
// 根据接口文档2.3,返回单条对象
if (response.data && response.data.title) {
return { data: response.data }
} else {
throw new Error(response.data?.message || '获取书籍信息失败')
throw new Error('获取书籍信息失败')
}
} catch (error) {
console.error('API请求失败:', error)
@ -357,16 +377,23 @@ async returnBook({ dispatch }, { title }) {
}
},
// 新增书籍
// 新增书籍 - 符合接口文档2.1
async addBook(_, bookData) {
const response = await service.post('/api/add', bookData, {
headers: { 'Content-Type': 'application/json' }
})
return response.data
// 根据接口文档2.1,成功返回整本书信息
if (response.data && response.data.code === 200) {
return response.data
} else if (response.data && response.data.code === 1) {
throw new Error(response.data.message || '添加书籍失败')
} else {
throw new Error('添加书籍失败')
}
},
// 管理员删除书籍 - 符合接口文档
// 管理员删除书籍 - 符合接口文档2.4
async deleteBook(_, { title }) {
const response = await service.post('/user/delete',
`title=${encodeURIComponent(title)}`,
@ -375,21 +402,35 @@ async returnBook({ dispatch }, { title }) {
if (response.data && response.data.code === 200) {
return response.data
} else if (response.data && response.data.code === 1) {
throw new Error(response.data.message || '删除书籍失败')
} else {
throw new Error(response.data?.message || '删除书籍失败')
throw new Error('删除书籍失败')
}
},
// 本周热租榜 - 符合接口文档
// 本周热租榜 - 符合接口文档4.1
async fetchWeeklyRank() {
const response = await service.get('/api/rank/weekly')
return { data: Array.isArray(response) ? response : response.data || [] }
// 根据接口文档4.1,直接返回数组
if (response.data && Array.isArray(response.data)) {
return { data: response.data }
} else {
return { data: [] }
}
},
// 本月热租榜 - 符合接口文档
// 本月热租榜 - 符合接口文档4.2
async fetchMonthlyRank() {
const response = await service.get('/api/rank/monthly')
return { data: Array.isArray(response) ? response : response.data || [] }
// 根据接口文档4.2结构与4.1相同
if (response.data && Array.isArray(response.data)) {
return { data: response.data }
} else {
return { data: [] }
}
}
}
})

@ -106,24 +106,28 @@
try {
loading.value = true
// 1.6/user/findone
const response = await store.dispatch('fetchBorrowRecords')
if (response.code === 200) {
//
if (Array.isArray(response.data)) {
records.value = response.data
total.value = response.data.length
} else {
// 使
records.value = presetRecords
total.value = presetRecords.length
}
} else {
// 使
records.value = presetRecords
total.value = presetRecords.length
}
// 1.6/user/findone
const response = await store.dispatch('fetchBorrowRecords')
if (response.code === 200) {
//
if (Array.isArray(response.data)) {
records.value = response.data
total.value = response.data.length
} else {
// 使
records.value = presetRecords
total.value = presetRecords.length
}
} else if (response.code === 1) {
// 使
records.value = presetRecords
total.value = presetRecords.length
} else {
// 使
records.value = presetRecords
total.value = presetRecords.length
}
} catch (error) {
console.error('获取借阅记录失败:', error)
ElMessage.error('获取借阅记录失败,使用预设数据')

@ -75,7 +75,8 @@ import { ElMessage } from 'element-plus'
const store = useStore()
const router = useRouter()
const isAdmin = computed(() => store.state.user?.admin || false)
const user = computed(() => store.state.user)
const isAdmin = computed(() => user.value?.admin || false)
const books = ref([])
const searchKeyword = ref('')
const currentPage = ref(1)

Loading…
Cancel
Save