|
@@ -1,4 +1,5 @@
|
|
|
import ColResult from '@/components/col-result'
|
|
|
+import { useList } from '@/helpers/hooks'
|
|
|
import request from '@/helpers/request'
|
|
|
import { state } from '@/state'
|
|
|
import { List } from 'vant'
|
|
@@ -18,10 +19,11 @@ export default defineComponent({
|
|
|
data() {
|
|
|
return {
|
|
|
list: [] as any,
|
|
|
- dataShow: true, // 判断是否有数据
|
|
|
- loading: false,
|
|
|
- finished: false,
|
|
|
- lockLoad: false,
|
|
|
+ listState: {
|
|
|
+ dataShow: true, // 判断是否有数据
|
|
|
+ loading: false,
|
|
|
+ finished: false
|
|
|
+ },
|
|
|
params: {
|
|
|
useState: this.useState,
|
|
|
page: 1,
|
|
@@ -35,38 +37,27 @@ export default defineComponent({
|
|
|
methods: {
|
|
|
async getList() {
|
|
|
try {
|
|
|
- if (this.lockLoad) return
|
|
|
- // 上锁
|
|
|
- this.lockLoad = true
|
|
|
- // 判断是哪个端
|
|
|
- const url =
|
|
|
- state.platformType === 'STUDENT' ? '/api-student' : '/api-teacher'
|
|
|
- const res = await request.post(`${url}/couponInfo/page`, {
|
|
|
- data: {
|
|
|
- ...this.params
|
|
|
- }
|
|
|
+ const result = await useList(`${state.platformApi}/couponInfo/page`, {
|
|
|
+ params: this.params,
|
|
|
+ list: this.list,
|
|
|
+ ...this.listState
|
|
|
})
|
|
|
- this.loading = false
|
|
|
- const result = res.data || {}
|
|
|
- this.list = this.list.concat(result.rows || [])
|
|
|
- this.finished = result.pageNo >= result.totalPage
|
|
|
- this.params.page = result.pageNo + 1
|
|
|
- this.dataShow = this.list.length > 0
|
|
|
- // 解锁
|
|
|
- this.lockLoad = false
|
|
|
+ const { params, list, ...res } = result
|
|
|
+ this.params = params
|
|
|
+ this.list = list
|
|
|
+ this.listState = res
|
|
|
} catch {
|
|
|
- this.dataShow = false
|
|
|
- this.finished = true
|
|
|
+ //
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
render() {
|
|
|
return (
|
|
|
<>
|
|
|
- {this.dataShow ? (
|
|
|
+ {this.listState.dataShow ? (
|
|
|
<List
|
|
|
- v-model:loading={this.loading}
|
|
|
- finished={this.finished}
|
|
|
+ v-model:loading={this.listState.loading}
|
|
|
+ finished={this.listState.finished}
|
|
|
finishedText=" "
|
|
|
// 为了处理体验问题
|
|
|
class={[this.list.length > 0 && styles.list]}
|