import { NDropdown, NSpin } from "naive-ui"; import { computed, defineComponent, ref, watch } from "vue"; import styles from "./index.module.less"; import { getImage } from "../../images"; import { DropdownMixedOption } from "naive-ui/es/dropdown/src/interface"; /** 新建 | 保存 | 导入 | 上传 | 导出 | 打印 | 退出*/ export type IFileBtnType = "newMusic" | "save" | "xml" | "upload" | "png" | "wav" | "midi" | "print" | "down-xml" | "exit"; export default defineComponent({ name: "FileBtn", emits: ["select"], props: { saveLoading: { type: Boolean, default: false, }, }, setup(props, { emit }) { const options = computed(() => { return [ { label: () => (
新建曲谱
), key: "newMusic", }, { label: () => (
保存 {props.saveLoading && }
), key: "save", disabled: props.saveLoading, }, { label: () => (
导入
), key: "import", // disabled: true, children: [ { label: "XML", key: "xml", // disabled: true, }, { label: "PDF", key: "import-pdf", // disabled: true, }, { label: "PNG,JPG", key: "import-image", // disabled: true, }, ], }, { label: () => (
上传到我的资源
), key: "upload", // disabled: true, }, { label: () => (
导出
), key: "export", children: [ { label: "XML", key: "down-xml", }, { label: "PNG", key: "png", }, { label: "WAV", key: "wav", }, { label: "MIDI", key: "midi", }, ], }, { label: () => (
打印
), key: "print", disabled: true, }, ]; }); return () => ( { console.log("🚀 ~ val:", val); emit("select", val); }} >
); }, });