mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-06-09 19:47:39 +08:00
feat: add admin point grants and history UI
This commit is contained in:
@@ -71,6 +71,16 @@ export default {
|
||||
label: '隐私政策',
|
||||
file: 'https://openisle-1307107697.cos.ap-guangzhou.myqcloud.com/assert/about/privacy.md',
|
||||
},
|
||||
{
|
||||
key: 'points',
|
||||
label: '积分说明',
|
||||
content: `# 积分说明
|
||||
|
||||
- 积分可用于兑换商品、参与抽奖等社区玩法。
|
||||
- 管理员可以通过后台新增的积分模块为用户发放奖励积分。
|
||||
- 每次发放都会记录在积分历史中,方便你查看积分来源。
|
||||
`,
|
||||
},
|
||||
{
|
||||
key: 'api',
|
||||
label: 'API与调试',
|
||||
@@ -88,11 +98,21 @@ export default {
|
||||
return `${token.value.slice(0, 20)}...${token.value.slice(-10)}`
|
||||
})
|
||||
|
||||
const loadContent = async (file) => {
|
||||
if (!file) return
|
||||
const loadContent = async (tab) => {
|
||||
if (!tab || tab.key === 'api') return
|
||||
if (tab.content) {
|
||||
isFetching.value = false
|
||||
content.value = tab.content
|
||||
return
|
||||
}
|
||||
if (!tab.file) {
|
||||
isFetching.value = false
|
||||
content.value = ''
|
||||
return
|
||||
}
|
||||
try {
|
||||
isFetching.value = true
|
||||
const res = await fetch(file)
|
||||
const res = await fetch(tab.file)
|
||||
if (res.ok) {
|
||||
content.value = await res.text()
|
||||
} else {
|
||||
@@ -110,15 +130,15 @@ export default {
|
||||
if (initTab && tabs.find((t) => t.key === initTab)) {
|
||||
selectedTab.value = initTab
|
||||
const tab = tabs.find((t) => t.key === initTab)
|
||||
if (tab && tab.file) loadContent(tab.file)
|
||||
if (tab) loadContent(tab)
|
||||
} else {
|
||||
loadContent(tabs[0].file)
|
||||
loadContent(tabs[0])
|
||||
}
|
||||
})
|
||||
|
||||
watch(selectedTab, (name) => {
|
||||
const tab = tabs.find((t) => t.key === name)
|
||||
if (tab && tab.file) loadContent(tab.file)
|
||||
if (tab) loadContent(tab)
|
||||
router.replace({ query: { ...route.query, tab: name } })
|
||||
})
|
||||
|
||||
@@ -127,6 +147,8 @@ export default {
|
||||
(name) => {
|
||||
if (name && name !== selectedTab.value && tabs.find((t) => t.key === name)) {
|
||||
selectedTab.value = name
|
||||
const tab = tabs.find((t) => t.key === name)
|
||||
if (tab) loadContent(tab)
|
||||
}
|
||||
},
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user