Files
bodyWeight/miniprogram/pages/helpCenter/helpCenter.ts
T

65 lines
1.9 KiB
TypeScript

import { get } from '../../utils/request/index'
/** 展示用问题项 */
interface QuestionItem {
id: string
title: string
}
/** 内容列表项 */
interface ContentRecord {
id: string
title: string
}
Page({
data: {
tabs: [
{ name: '全部', categoryId: '', active: true },
{ name: '操作说明', categoryId: '1', active: false },
{ name: '常见问题', categoryId: '2', active: false },
{ name: '新手指引', categoryId: '3', active: false },
{ name: '系统版本', categoryId: '4', active: false },
{ name: '其他', categoryId: '5', active: false },
],
questions: [] as QuestionItem[],
},
onLoad() {
this.loadQuestions('')
},
/** 拉取内容列表(categoryId 为空查全部) */
async loadQuestions(categoryId: string) {
try {
const res = await get<{ records: ContentRecord[] }>(
'weighingScale/v6/content/list',
categoryId ? { categoryId } : undefined,
)
this.setData({
questions: res.result.records.map(item => ({
id: item.id,
title: item.title,
})),
})
} catch {
// 请求失败已由 request 层统一 toast
}
},
onTapTab(e: WechatMiniprogram.TouchEvent) {
const index = e.currentTarget.dataset.index as number
const tabs = this.data.tabs.map((t, i) => ({ ...t, active: i === index }))
this.setData({ tabs })
this.loadQuestions(tabs[index].categoryId)
},
onTapQuestion(e: WechatMiniprogram.TouchEvent) {
const id = e.currentTarget.dataset.id as string
const title = e.currentTarget.dataset.title as string
wx.navigateTo({
url: '/pages/questionDetails/questionDetails?id=' + id + '&title=' + encodeURIComponent(title)
})
}
})