import OSticky from '@/components/o-sticky' import request from '@/helpers/request' import dayjs from 'dayjs' import { Button, Cell, CellGroup, DatePicker, Field, Picker, Popup, Radio, RadioGroup, showSuccessToast, showToast } from 'vant' import { defineComponent, onMounted, reactive } from 'vue' import styles from './index.module.less' import iconUpload from '../images/icon-upload.png' import iconUploadVideo from '../images/icon-upload-video.png' import iconUploadVideoCover from '../images/icon-upload-video-cover.png' import OUploadAll from '@/components/o-upload-all' import OHeader from '@/components/o-header' import ODialog from '@/components/o-dialog' import { useRoute, useRouter } from 'vue-router' export default defineComponent({ name: 'story-operation', setup() { const router = useRouter() const route = useRoute() const forms = reactive({ id: route.query.id || null, content: '', orchestraStatus: false, orchestraList: [] as any, selectOrchestra: {} as any, createTime: new Date() as any, createTimeStatus: false, currentDate: [dayjs().format('YYYY'), dayjs().format('MM'), dayjs().format('DD')], storyType: 'IMAGE', attachments: [] as any, //群发消息附件 video: [] as any, videoCover: [] as any, delStatus: false }) // 获取乐团列表 const getOrchestras = async () => { try { const { data } = await request.post('/api-school/orchestra/page', { data: { page: 1, rows: 100 } }) const temps = data.rows || [] const s = [] as any temps.forEach((item: any) => { s.push({ text: item.name, value: item.id }) }) forms.orchestraList = [...s] // 判断是否有乐团 if (s.length > 0) { forms.selectOrchestra = s[0] } } catch { // } } const getDetails = async () => { try { if (!forms.id) { return } const { data } = await request.get('/api-school/orchestraStory/detail/' + forms.id) console.log(data) forms.content = data.content forms.createTime = data.createTime forms.storyType = data.type forms.orchestraList.forEach((item: any) => { if (item.value === item.orchestraId) { forms.selectOrchestra = item } }) if (data.type === 'IMAGE') { data.attachments && data.attachments.forEach((item: any) => { forms.attachments.push(item.url) }) } else { const temp = data.attachments ? data.attachments[0] : [] forms.video.push(temp.url) forms.videoCover.push(temp.coverImage) } } catch { // } } const onSumbit = async () => { try { if (!forms.selectOrchestra.value) { showToast('请选择乐团') return } if (!forms.createTime) { showToast('请选择事迹日期') return } if (!forms.content) { showToast('请输入事迹内容') return } if (forms.storyType === 'IMAGE' && forms.attachments.length <= 0) { showToast('请上传照片') return } if (forms.storyType === 'VIDEO') { if (forms.video.length <= 0) { showToast('请上传视频') return } if (forms.videoCover.length <= 0) { showToast('请上传视频封面') return } } const attachments: any = [] if (forms.storyType === 'IMAGE') { forms.attachments.forEach((item: any) => { const temp = { attachmentType: forms.storyType, url: item } attachments.push(temp) }) } else { attachments.push({ attachmentType: forms.storyType, url: forms.video[0], coverImage: forms.videoCover[0] }) } console.log({ createTime: dayjs(forms.createTime).format('YYYY-MM-DD HH:mm:ss'), orchestraId: forms.selectOrchestra.value, content: forms.content, type: forms.storyType, attachments }) const params = { createTime: dayjs(forms.createTime).format('YYYY-MM-DD HH:mm:ss'), orchestraId: forms.selectOrchestra.value, content: forms.content, type: forms.storyType, attachments } if (forms.id) { await request.post('/api-school/orchestraStory/update', { data: { ...params, id: forms.id } }) setTimeout(() => { showSuccessToast('修改成功') }, 100) } else { await request.post('/api-school/orchestraStory/save', { data: params }) setTimeout(() => { showSuccessToast('添加成功') }, 100) } setTimeout(() => { router.back() }, 1100) } catch { // } } // const onConfirm = async () => { try { await request.post('/api-school/orchestraStory/remove', { requestType: 'form', data: { id: forms.id } }) setTimeout(() => { showSuccessToast('删除成功') }, 100) setTimeout(() => { router.back() }, 1100) } catch { // } } onMounted(async () => { if (forms.id) { document.title = '修改事迹' } await getOrchestras() await getDetails() }) return () => (
{{ right: () => forms.id && ( { forms.delStatus = true }} > 删除 ) }} { forms.orchestraStatus = true }} readonly isLink /> { forms.createTimeStatus = true }} readonly isLink class={styles.inputForm} /> {{ title: () => (
事迹内容
{forms.content.length || 0}/200
), label: () => ( ) }}
{{ value: () => ( 图片 视频 ) }} {forms.storyType === 'IMAGE' && ( {{ title: () => ( ) }} )} {forms.storyType === 'VIDEO' && ( {{ title: () => ( <> ) }} )}
{ const selectedValues = val.selectedValues.join('-') forms.createTime = dayjs(selectedValues).toDate() forms.createTimeStatus = false }} /> (forms.orchestraStatus = false)} onConfirm={(val: any) => { forms.selectOrchestra = val.selectedOptions[0] forms.orchestraStatus = false }} />
) } })