# 与星网项目相关
* apiFetch用法
首先要在```@/services/api```中配置api,具体形式参考以下
``` ts
getStudentRecords: {
remark: '获取学生录音列表',
url: '/teacher/student-records',
method: 'get',
baseURL: ApiServices.User,
apiServiceOption: {
// 这里对后端接口发来的数据进行预处理。
afterResponse
}
},
setStudentRecordStatus: {
remark: '设置学生录音状态(是否隐藏)',
url: '/teacher/student-records/{id}/setStatus',
method: 'post',
baseURL: ApiServices.User
},
```
然后在代码中使用可参考如下
```ts
import useFetchApi from '@/hooks/useFetchApi'
import api from '@/services/api'
const { fetchApi } = useFetchApi()
const _api = api.Replay.setTeacherRecordStatus
const _id = props.cardData.originData.id
// 用法类似axios
const result: any = await fetchApi(
_api,
{
// body
data: {
status: 0
}
},
{ matchUrl: { id: _id } }
)
if (result?.message !== 'success') {
throw result?.message
}
// result结果会自动json解析,如{message:'success'...}
```
---
* apiFetch之结果预处理:
代码可参考以下:
```ts
const afterResponse = (res: any) => {
let _res = { ...res }
res.data = {
data: {
items: _res.data.data,
meta: _res.data.meta
}
}
_res = null
return res
}
const Replay: { [key: string]: ApiConfOption } = {
getStudentRecords: {
remark: '获取学生录音列表',
url: '/teacher/student-records',
method: 'get',
baseURL: ApiServices.User,
apiServiceOption: {
// 这里对后端接口发来的数据进行预处理。
afterResponse
}
},
}
```
---
* TabList用法
```html
```
导入
```ts
import TabList from '@/components/tabList.vue'
```
其中tabs的格式如下
```ts
const tabs = ref([
{
label: '教师作品',
value: 'teacherWorks'
}
])
```
作用为生成一个标签页
---
* ScrollLoad用法
```html
```
其中scrollLoadProps的参数为如下
```ts
const scrollLoadProps = computed(() => {
return {
apiConf: api.something,
matchData: '@data.items@',
params: {}
}
})
```
具体为到底时使用传入的api请求一组数据,然后传回的data可以通过fetchEnd或是default插槽进行处理,有时候需要对传回的数据进行预处理才不会报错(因为后端的数据格式可能不会对上scroolList的格式)
---
# 接口使用相关