import { computed, defineComponent, ref } from 'vue'; import { NImage, NDivider, NButton, NModal, useMessage, ImageRenderToolbarProps } from 'naive-ui'; import TheNoticeBar from '/src/components/TheNoticeBar'; import styles from './index.module.less'; import { PageEnum } from '/src/enums/pageEnum'; import nodata from '../images/nomore.png'; import CardPreview from '/src/components/card-preview'; import { checkUrlType, iframeDislableKeyboard } from '/src/utils'; import { useUserStore } from '/src/store/modules/users'; import { vaildMusicScoreUrl } from '/src/utils/urlUtils'; import { saveAs } from 'file-saver'; export default defineComponent({ name: 'work-item', props: { item: { type: Object, default: () => ({}) } }, setup(props) { const userStore = useUserStore(); const message = useMessage(); const previewShow = ref(false); const preivewItem = ref({ type: 'MUSIC', content: props.item.musicId, title: props.item.musicName, studentName: props.item.studentName }); const reportSrc = ref(''); const detailVisiable = ref(false); // 下载资源 const onDownload = (src: any) => { if (!src) { message.error('下载失败'); return; } const fileUrl = src; // props.item.studentName const title = props.item.musicName + (props.item.studentName ? '-' + props.item.studentName : ''); const suffix = src.substring(src.lastIndexOf('.')); // 发起Fetch请求 fetch(fileUrl) .then(response => response.blob()) .then(blob => { saveAs(blob, (title || new Date().getTime() + '') + suffix); }) .catch(() => { message.error('下载失败'); }); }; return () => (