|
@@ -1,6 +1,17 @@
|
|
|
import OEmpty from '@/components/o-empty'
|
|
|
import request from '@/helpers/request'
|
|
|
-import { Button, Dialog, Field, Image, List, Popup, showToast } from 'vant'
|
|
|
+import {
|
|
|
+ ActionSheet,
|
|
|
+ Button,
|
|
|
+ Dialog,
|
|
|
+ Field,
|
|
|
+ Image,
|
|
|
+ List,
|
|
|
+ Popover,
|
|
|
+ Popup,
|
|
|
+ showConfirmDialog,
|
|
|
+ showToast
|
|
|
+} from 'vant'
|
|
|
import { defineComponent, onMounted, reactive } from 'vue'
|
|
|
import { useRoute, useRouter } from 'vue-router'
|
|
|
import styles from './photo.module.less'
|
|
@@ -12,6 +23,7 @@ export default defineComponent({
|
|
|
const route = useRoute()
|
|
|
const router = useRouter()
|
|
|
const state = reactive({
|
|
|
+ oPopover: false,
|
|
|
status: false,
|
|
|
isLoading: false,
|
|
|
photoName: null, // 相册名称
|
|
@@ -21,11 +33,12 @@ export default defineComponent({
|
|
|
loading: false,
|
|
|
finished: false
|
|
|
},
|
|
|
-
|
|
|
params: {
|
|
|
page: 1,
|
|
|
rows: 20
|
|
|
- }
|
|
|
+ },
|
|
|
+ selectItem: {} as any,
|
|
|
+ selectType: 'add'
|
|
|
})
|
|
|
|
|
|
const onAddPhoto = async () => {
|
|
@@ -35,30 +48,47 @@ export default defineComponent({
|
|
|
state.status = true
|
|
|
return
|
|
|
}
|
|
|
- await request.post('/api-school/orchestraPhotoAlbum/save', {
|
|
|
- data: {
|
|
|
- orchestraId: route.query.id,
|
|
|
- name: state.photoName
|
|
|
- }
|
|
|
- })
|
|
|
+ if (state.selectType === 'add') {
|
|
|
+ await request.post('/api-school/orchestraPhotoAlbum/save', {
|
|
|
+ data: {
|
|
|
+ orchestraId: route.query.id,
|
|
|
+ name: state.photoName
|
|
|
+ }
|
|
|
+ })
|
|
|
+ setTimeout(() => {
|
|
|
+ showToast('添加成功')
|
|
|
+ }, 100)
|
|
|
+ } else {
|
|
|
+ await request.post('/api-school/orchestraPhotoAlbum/update', {
|
|
|
+ data: {
|
|
|
+ id: state.selectItem.id,
|
|
|
+ orchestraId: route.query.id,
|
|
|
+ name: state.photoName
|
|
|
+ }
|
|
|
+ })
|
|
|
+ setTimeout(() => {
|
|
|
+ showToast('修改成功')
|
|
|
+ }, 100)
|
|
|
+ }
|
|
|
+ state.status = false
|
|
|
setTimeout(() => {
|
|
|
- showToast('添加成功')
|
|
|
- state.status = false
|
|
|
state.photoName = null
|
|
|
- }, 100)
|
|
|
- setTimeout(() => {
|
|
|
- state.params.page = 1
|
|
|
- state.list = []
|
|
|
- state.listState.dataShow = true // 判断是否有数据
|
|
|
- state.listState.loading = false
|
|
|
- state.listState.finished = false
|
|
|
- getList()
|
|
|
+ onSearch()
|
|
|
}, 1100)
|
|
|
} catch {
|
|
|
//
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ const onSearch = () => {
|
|
|
+ state.params.page = 1
|
|
|
+ state.list = []
|
|
|
+ state.listState.dataShow = true // 判断是否有数据
|
|
|
+ state.listState.loading = false
|
|
|
+ state.listState.finished = false
|
|
|
+ getList()
|
|
|
+ }
|
|
|
+
|
|
|
// 班级列表
|
|
|
const getList = async () => {
|
|
|
try {
|
|
@@ -100,12 +130,49 @@ export default defineComponent({
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+ const onRename = async () => {
|
|
|
+ state.photoName = state.selectItem.name
|
|
|
+ state.status = true
|
|
|
+ }
|
|
|
+
|
|
|
+ const onRemove = async () => {
|
|
|
+ showConfirmDialog({
|
|
|
+ message: '您确认删除该相册吗?'
|
|
|
+ }).then(async () => {
|
|
|
+ try {
|
|
|
+ await request.post('/api-school/orchestraPhotoAlbum/remove', {
|
|
|
+ requestType: 'form',
|
|
|
+ data: {
|
|
|
+ id: state.selectItem.id
|
|
|
+ }
|
|
|
+ })
|
|
|
+ setTimeout(() => {
|
|
|
+ showToast('删除成功')
|
|
|
+ }, 100)
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ onSearch()
|
|
|
+ }, 1100)
|
|
|
+ } catch {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
getList()
|
|
|
})
|
|
|
return () => (
|
|
|
<div class={styles.phone}>
|
|
|
- <Button icon="plus" block class={styles.addPhone} onClick={() => (state.status = true)}>
|
|
|
+ <Button
|
|
|
+ icon="plus"
|
|
|
+ block
|
|
|
+ class={styles.addPhone}
|
|
|
+ onClick={() => {
|
|
|
+ state.status = true
|
|
|
+ state.selectType = 'add'
|
|
|
+ }}
|
|
|
+ >
|
|
|
新建相册
|
|
|
</Button>
|
|
|
|
|
@@ -120,6 +187,17 @@ export default defineComponent({
|
|
|
<div class={styles.phoneContainer}>
|
|
|
{state.list.map((item: any) => (
|
|
|
<div class={styles.item} onClick={() => onDetail(item)}>
|
|
|
+ {/* <i class={styles.more}></i> */}
|
|
|
+ <i
|
|
|
+ class={styles.more}
|
|
|
+ onClick={(e: any) => {
|
|
|
+ e.stopPropagation()
|
|
|
+ state.oPopover = true
|
|
|
+ state.selectItem = item
|
|
|
+ state.selectType = 'update'
|
|
|
+ }}
|
|
|
+ ></i>
|
|
|
+
|
|
|
{item.coverUrl ? (
|
|
|
<Image class={styles.img} src={item.coverUrl} />
|
|
|
) : (
|
|
@@ -142,7 +220,7 @@ export default defineComponent({
|
|
|
<div class={styles.container}>
|
|
|
<div class={styles.dialogTitle}>
|
|
|
<i></i>
|
|
|
- 新建相册
|
|
|
+ {state.selectType === 'add' ? '新建相册' : '重命名相册'}
|
|
|
</div>
|
|
|
<Field
|
|
|
class={styles.phoneName}
|
|
@@ -169,6 +247,16 @@ export default defineComponent({
|
|
|
</div>
|
|
|
</div>
|
|
|
</Popup>
|
|
|
+
|
|
|
+ <ActionSheet
|
|
|
+ cancelText="取消"
|
|
|
+ v-model:show={state.oPopover}
|
|
|
+ closeOnClickAction
|
|
|
+ actions={[
|
|
|
+ { name: '重命名', callback: () => onRename() },
|
|
|
+ { name: '删除', color: '#F44541', callback: () => onRemove() }
|
|
|
+ ]}
|
|
|
+ />
|
|
|
</div>
|
|
|
)
|
|
|
}
|