import {defineComponent, onMounted, reactive, ref} from "vue"; import {NButton, NCascader, NForm, NFormItem, NInputNumber, NSelect, NSpace, useMessage} from "naive-ui"; import {musicSheetApplicationExtendCategoryApplicationExtendInfo, musicSheetApplicationExtendTagList, musicSheetApplicationExtendUpdate} from "@views/music-library/api"; import {getSelectDataFromObj} from "@/utils/objectUtil"; import {scoreType} from "@/utils/constant"; import {formatTree} from "@views/music-library/musicUtil"; export default defineComponent({ name: 'project-music-cooleshow-edu-updateMusic', props: { appId: { type: String, required: true }, rowData: { type: Object, required: true }, musicSheetCategories: { type: Array, default: () => [] } }, emits: ['close', 'getList'], setup(props, {slots, attrs, emit}) { const message = useMessage() const btnLoading = ref(false) const forms = reactive({ musicSheetCategoryId: null as any, sortNo: null as any, paymentType: null as any, isConvertibleScore: null as any,//是否支持转简谱 status: null as any, // 是否启用 scoreType: null as any,//默认谱面 musicTagIds: [] as any, //标签 recommendFlag: false, // 是否推荐 }) const formsRef = ref() const state = reactive({ rowData: null as any, musicSheetTagListKt: [] as any, musicSheetCategories: [] as any, }) const getTagList = async () => { try { const { data } = await musicSheetApplicationExtendTagList({ applicationId: props.appId, }) if (data && data.length > 0) { data.forEach((item: any) => { state.musicSheetTagListKt.push({ ...item, label: item.name, value: item.id }) }) } } catch {} } onMounted(async () => { state.rowData = props.rowData formatTree(props.musicSheetCategories) state.musicSheetCategories = props.musicSheetCategories await getTagList() const {data} = await musicSheetApplicationExtendCategoryApplicationExtendInfo({musicSheetId: state.rowData.id, applicationId: props.appId}) as any if (!data) { message.error("加载应用失败") return } forms.musicTagIds = data[0].musicTagIds ? data[0].musicTagIds.split(',') : [] forms.recommendFlag = data[0].recommendFlag forms.musicSheetCategoryId = data[0].musicSheetCategoryId forms.sortNo = data[0].sortNo forms.paymentType = data[0].paymentType forms.isConvertibleScore = data[0].isConvertibleScore forms.scoreType = data[0].scoreType forms.status = data[0].status }) const onSubmit = async () => { formsRef.value.validate(async (error: any) => { if (error) return false btnLoading.value = true try { const res = await musicSheetApplicationExtendUpdate( { ...forms, musicTagIds: forms.musicTagIds ? forms.musicTagIds.join(',') : '', musicSheetId: state.rowData.id, applicationId: props.appId } ) as any; if (res && res.code === 200) { emit('close') emit('getList') } } catch (error) { } btnLoading.value = false }) } return () => { return (