import {NButton, NForm, NFormItem, NInput, NSelect, NSpace, useMessage} from 'naive-ui' import {defineComponent, onMounted, PropType, reactive, ref} from 'vue' import {getSelectDataFromObj} from "@/utils/objectUtil"; import {defaultScore} from "@/utils/constant"; import {musicalInstrumentSave, musicalInstrumentUpdate} from "@views/system-manage/subject-manage/api"; export default defineComponent({ name: 'role-operation', props: { type: { type: String, default: 'add' }, data: { type: Object as PropType, default: () => { } } }, emits: ['close', 'getList'], setup(props, {slots, attrs, emit}) { const forms = reactive({ name: null, defaultScore: null, code: null, hz: null, transferFlag: true, }) const btnLoading = ref(false) const formsRef = ref() const message = useMessage() const onSubmit = async () => { formsRef.value.validate(async (error: any) => { if (error) return false try { btnLoading.value = true if (props.type === 'add') { await musicalInstrumentSave({...forms}) message.success('添加成功') } else if (props.type === 'edit') { await musicalInstrumentUpdate({ ...forms, id: props.data.id }) message.success('修改成功') } emit('close') emit('getList') } catch { } btnLoading.value = false }) } onMounted(async () => { if (props.type === 'edit') { const data = props.data forms.name = data.name forms.defaultScore = data.defaultScore forms.code = data.code forms.transferFlag = data.transferFlag } }) return () => (
{(forms.transferFlag && ( ))} emit('close')}> 取消 onSubmit()} loading={btnLoading.value}> 保存
) } })