import OHeader from '@/components/o-header' import { Cell, CellGroup, Icon, Image, List, Picker, Popup, Step, Steps, Swipe, SwipeItem } from 'vant' import { defineComponent, onMounted, reactive, ref, watch } from 'vue' import { useRoute, useRouter } from 'vue-router' import styles from './index.module.less' import iconStep from './images/icon-step.png' import iconStepCalendar from './images/icon-step-calendar.png' import request from '@/helpers/request' import OEmpty from '@/components/o-empty' import dayjs from 'dayjs' import OVideo from '@/components/o-video' import { state as globalState } from '@/state' export default defineComponent({ name: 'orchestra-story', props: { orchestraId: { type: String, default: '' } }, setup(props) { const state = reactive({ isClick: false, list: [] as any, listState: { dataShow: true, // 判断是否有数据 loading: false, finished: false, refreshing: false, height: 0 // 页面头部高度,为了处理下拉刷新用的 }, params: { type: null, page: 1, rows: 20 } }) const getList = async () => { try { if (state.isClick) return state.isClick = true const res = await request.post(`${globalState.platformApi}/orchestraStory/page`, { data: { orchestraId: props.orchestraId }, hideLoading: true }) state.listState.loading = false state.listState.refreshing = false const result = res.data || {} // 处理重复请求数据 if (state.list.length > 0 && result.current === 1) { return } state.list = state.list.concat(result.rows || []) state.listState.finished = result.current >= result.pages state.params.page = result.current + 1 state.listState.dataShow = state.list.length > 0 state.isClick = false } catch { state.listState.dataShow = false state.listState.finished = true state.listState.refreshing = false state.isClick = false } } watch( () => props.orchestraId, () => { state.params.page = 1 state.list = [] state.listState.finished = false getList() } ) const videoRef: any = ref([]) const onPlay = (index: any) => { videoRef.value.forEach((item: any, child: any) => { if (child !== index) { item.onStop() } }) } onMounted(() => { getList() }) return () => (
{item.content}