|
@@ -2,7 +2,18 @@ import OEmpty from '@/components/o-empty'
|
|
import OHeader from '@/components/o-header'
|
|
import OHeader from '@/components/o-header'
|
|
import request from '@/helpers/request'
|
|
import request from '@/helpers/request'
|
|
import { state } from '@/state'
|
|
import { state } from '@/state'
|
|
-import { Grid, GridItem, Image, List, Loading, showImagePreview } from 'vant'
|
|
|
|
|
|
+import {
|
|
|
|
+ Cell,
|
|
|
|
+ CellGroup,
|
|
|
|
+ Grid,
|
|
|
|
+ GridItem,
|
|
|
|
+ Image,
|
|
|
|
+ List,
|
|
|
|
+ Loading,
|
|
|
|
+ Picker,
|
|
|
|
+ Popup,
|
|
|
|
+ showImagePreview
|
|
|
|
+} from 'vant'
|
|
import { defineComponent, onMounted, reactive, watch } from 'vue'
|
|
import { defineComponent, onMounted, reactive, watch } from 'vue'
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
import styles from './index.module.less'
|
|
import styles from './index.module.less'
|
|
@@ -25,7 +36,10 @@ export default defineComponent({
|
|
page: 1,
|
|
page: 1,
|
|
rows: 20
|
|
rows: 20
|
|
},
|
|
},
|
|
- list: [] as any[]
|
|
|
|
|
|
+ list: [] as any[],
|
|
|
|
+ schoolStatus: false,
|
|
|
|
+ schoolList: [],
|
|
|
|
+ school: {} as any
|
|
})
|
|
})
|
|
|
|
|
|
const getList = async () => {
|
|
const getList = async () => {
|
|
@@ -34,7 +48,7 @@ export default defineComponent({
|
|
const res = await request.post(`${state.platformApi}/orchestraPhotoAlbum/page`, {
|
|
const res = await request.post(`${state.platformApi}/orchestraPhotoAlbum/page`, {
|
|
data: {
|
|
data: {
|
|
...data.pages,
|
|
...data.pages,
|
|
- orchestraId: props.orchestraId
|
|
|
|
|
|
+ orchestraId: data.school.id
|
|
},
|
|
},
|
|
hideLoading: true
|
|
hideLoading: true
|
|
})
|
|
})
|
|
@@ -50,15 +64,29 @@ export default defineComponent({
|
|
}
|
|
}
|
|
data.loading = false
|
|
data.loading = false
|
|
}
|
|
}
|
|
- watch(
|
|
|
|
- () => props.orchestraId,
|
|
|
|
- () => {
|
|
|
|
- data.pages.page = 1
|
|
|
|
- data.list = []
|
|
|
|
- data.finished = false
|
|
|
|
- getList()
|
|
|
|
|
|
+
|
|
|
|
+ const getSchoolList = async () => {
|
|
|
|
+ try {
|
|
|
|
+ const res = await request.post('/api-teacher/school/teacherSchoolPage', {
|
|
|
|
+ data: {
|
|
|
|
+ teacherId: state.user.data.id,
|
|
|
|
+ page: 1,
|
|
|
|
+ rows: 999
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ if (Array.isArray(res.data?.rows)) {
|
|
|
|
+ data.schoolList = res.data.rows.map((n: any) => {
|
|
|
|
+ return {
|
|
|
|
+ name: n.schoolName || '',
|
|
|
|
+ id: n.schoolId || ''
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ data.school = data.schoolList[0] || {}
|
|
|
|
+ }
|
|
|
|
+ } catch {
|
|
|
|
+ //
|
|
}
|
|
}
|
|
- )
|
|
|
|
|
|
+ }
|
|
|
|
|
|
// 预览图片
|
|
// 预览图片
|
|
const onShowImage = (index: number) => {
|
|
const onShowImage = (index: number) => {
|
|
@@ -73,16 +101,22 @@ export default defineComponent({
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
- onMounted(() => {
|
|
|
|
- getList()
|
|
|
|
|
|
+ onMounted(async () => {
|
|
|
|
+ await getSchoolList()
|
|
|
|
+ await getList()
|
|
document.title = (route.query.name as any) || ''
|
|
document.title = (route.query.name as any) || ''
|
|
})
|
|
})
|
|
|
|
|
|
return () => (
|
|
return () => (
|
|
- <div
|
|
|
|
- class={[styles.phoneDetail, !data.list.length && 'emptyRootContainer']}
|
|
|
|
- // style={{ height: '100%', minHeight: 'auto' }}
|
|
|
|
- >
|
|
|
|
|
|
+ <div class={[styles.phoneDetail]}>
|
|
|
|
+ <CellGroup inset class={styles.cellGroup}>
|
|
|
|
+ <Cell class={styles.select} center isLink onClick={() => (data.schoolStatus = true)}>
|
|
|
|
+ {{
|
|
|
|
+ // icon: () => <img class={styles.icon} src={iconOrchestra} />,
|
|
|
|
+ title: () => <div class="van-ellipsis">{data.school.name}</div>
|
|
|
|
+ }}
|
|
|
|
+ </Cell>
|
|
|
|
+ </CellGroup>
|
|
{!data.loading && !!data.list.length && (
|
|
{!data.loading && !!data.list.length && (
|
|
<List
|
|
<List
|
|
// v-model:loading={data.loading}
|
|
// v-model:loading={data.loading}
|
|
@@ -120,7 +154,38 @@ export default defineComponent({
|
|
</div>
|
|
</div>
|
|
</List>
|
|
</List>
|
|
)}
|
|
)}
|
|
- {!data.loading && !data.list.length && <OEmpty btnStatus={false} tips="暂无相册" />}
|
|
|
|
|
|
+ {!data.loading && !data.list.length && (
|
|
|
|
+ <div
|
|
|
|
+ class="emptyRootContainer"
|
|
|
|
+ style={{
|
|
|
|
+ minHeight: 'calc(100vh - 1.22667rem)'
|
|
|
|
+ }}
|
|
|
|
+ >
|
|
|
|
+ <OEmpty btnStatus={false} tips="暂无相册" />
|
|
|
|
+ </div>
|
|
|
|
+ )}
|
|
|
|
+
|
|
|
|
+ <Popup v-model:show={data.schoolStatus} position="bottom" round>
|
|
|
|
+ <Picker
|
|
|
|
+ columns={data.schoolList}
|
|
|
|
+ columnsFieldNames={{ text: 'name', value: 'id' }}
|
|
|
|
+ onCancel={() => (data.schoolStatus = false)}
|
|
|
|
+ onConfirm={({ selectedValues }: any) => {
|
|
|
|
+ const val = selectedValues[0] || ''
|
|
|
|
+ data.schoolStatus = false
|
|
|
|
+ if (val == data.school?.id) {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ const active = data.schoolList.find((n: any) => n.id == val) || {}
|
|
|
|
+ data.school = active
|
|
|
|
+
|
|
|
|
+ data.pages.page = 1
|
|
|
|
+ data.list = []
|
|
|
|
+ data.finished = false
|
|
|
|
+ getList()
|
|
|
|
+ }}
|
|
|
|
+ />
|
|
|
|
+ </Popup>
|
|
</div>
|
|
</div>
|
|
)
|
|
)
|
|
}
|
|
}
|