|  | @@ -1,218 +1,223 @@
 | 
	
		
			
				|  |  | -import {
 | 
	
		
			
				|  |  | -  NButton,
 | 
	
		
			
				|  |  | -  NSpace,
 | 
	
		
			
				|  |  | -  useMessage,
 | 
	
		
			
				|  |  | -  NForm,
 | 
	
		
			
				|  |  | -  NFormItem,
 | 
	
		
			
				|  |  | -  NCascader
 | 
	
		
			
				|  |  | -} from 'naive-ui';
 | 
	
		
			
				|  |  | -import { defineComponent, onMounted, reactive, ref, watch } from 'vue';
 | 
	
		
			
				|  |  | -import styles from '../index.module.less';
 | 
	
		
			
				|  |  | -import CSelect from '/src/components/CSelect';
 | 
	
		
			
				|  |  | -import { addClass, getConfiguredSubjects } from '../api';
 | 
	
		
			
				|  |  | -import { api_getCurrentGradeYear } from '../../studentList/api';
 | 
	
		
			
				|  |  | -export default defineComponent({
 | 
	
		
			
				|  |  | -  props: {
 | 
	
		
			
				|  |  | -    activeRow: {
 | 
	
		
			
				|  |  | -      type: Object,
 | 
	
		
			
				|  |  | -      default: () => ({ id: '' })
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    gradeYearList: {
 | 
	
		
			
				|  |  | -      type: Array,
 | 
	
		
			
				|  |  | -      default: () => []
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    gradeNumList: {
 | 
	
		
			
				|  |  | -      type: Array,
 | 
	
		
			
				|  |  | -      default: () => []
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    classArray: {
 | 
	
		
			
				|  |  | -      type: Array,
 | 
	
		
			
				|  |  | -      default: () => []
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  name: 'resetStudent',
 | 
	
		
			
				|  |  | -  emits: ['close', 'getList'],
 | 
	
		
			
				|  |  | -  setup(props, { emit }) {
 | 
	
		
			
				|  |  | -    const data = reactive({
 | 
	
		
			
				|  |  | -      uploading: false
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -    const message = useMessage();
 | 
	
		
			
				|  |  | -    const foemsRef = ref();
 | 
	
		
			
				|  |  | -    const createClassForm = reactive({
 | 
	
		
			
				|  |  | -      gradeYear: null,
 | 
	
		
			
				|  |  | -      currentGradeNum: null,
 | 
	
		
			
				|  |  | -      currentClass: null,
 | 
	
		
			
				|  |  | -      instrumentId: null
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -    const gradeYearList = ref([] as any);
 | 
	
		
			
				|  |  | -    const subjectList = ref([] as any);
 | 
	
		
			
				|  |  | -    const submitForms = () => {
 | 
	
		
			
				|  |  | -      foemsRef.value.validate(async (error: any) => {
 | 
	
		
			
				|  |  | -        if (error) {
 | 
	
		
			
				|  |  | -          return;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        data.uploading = true;
 | 
	
		
			
				|  |  | -        try {
 | 
	
		
			
				|  |  | -          await addClass({ ...createClassForm });
 | 
	
		
			
				|  |  | -          message.success('新增成功');
 | 
	
		
			
				|  |  | -          emit('close');
 | 
	
		
			
				|  |  | -          emit('getList');
 | 
	
		
			
				|  |  | -          data.uploading = false;
 | 
	
		
			
				|  |  | -        } catch (e) {
 | 
	
		
			
				|  |  | -          console.log(e);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        data.uploading = false;
 | 
	
		
			
				|  |  | -      });
 | 
	
		
			
				|  |  | -    };
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    const getYearList = async () => {
 | 
	
		
			
				|  |  | -      try {
 | 
	
		
			
				|  |  | -        const { data } = await api_getCurrentGradeYear({});
 | 
	
		
			
				|  |  | -        const temp = [
 | 
	
		
			
				|  |  | -          {
 | 
	
		
			
				|  |  | -            label: data + 1,
 | 
	
		
			
				|  |  | -            value: data + 1
 | 
	
		
			
				|  |  | -          },
 | 
	
		
			
				|  |  | -          {
 | 
	
		
			
				|  |  | -            label: data,
 | 
	
		
			
				|  |  | -            value: data
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -        ];
 | 
	
		
			
				|  |  | -        gradeYearList.value = temp;
 | 
	
		
			
				|  |  | -      } catch {
 | 
	
		
			
				|  |  | -        //
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    };
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    const getConfigSubject = async () => {
 | 
	
		
			
				|  |  | -      try {
 | 
	
		
			
				|  |  | -        const { data } = await getConfiguredSubjects({
 | 
	
		
			
				|  |  | -          gradeYear: createClassForm.gradeYear,
 | 
	
		
			
				|  |  | -          currentGradeNum: createClassForm.currentGradeNum,
 | 
	
		
			
				|  |  | -          currentClass: createClassForm.currentClass
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -        const temp = data || [];
 | 
	
		
			
				|  |  | -        subjectList.value = temp;
 | 
	
		
			
				|  |  | -      } catch {
 | 
	
		
			
				|  |  | -        //
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    };
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    watch(
 | 
	
		
			
				|  |  | -      () => [
 | 
	
		
			
				|  |  | -        createClassForm.gradeYear,
 | 
	
		
			
				|  |  | -        createClassForm.currentGradeNum,
 | 
	
		
			
				|  |  | -        createClassForm.currentClass
 | 
	
		
			
				|  |  | -      ],
 | 
	
		
			
				|  |  | -      () => {
 | 
	
		
			
				|  |  | -        createClassForm.instrumentId = null;
 | 
	
		
			
				|  |  | -        getConfigSubject();
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    );
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    onMounted(() => {
 | 
	
		
			
				|  |  | -      getYearList();
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    return () => (
 | 
	
		
			
				|  |  | -      <div class={[styles.addClass]}>
 | 
	
		
			
				|  |  | -        <NForm label-placement="left" model={createClassForm} ref={foemsRef}>
 | 
	
		
			
				|  |  | -          <NFormItem
 | 
	
		
			
				|  |  | -            path="gradeYear"
 | 
	
		
			
				|  |  | -            rule={[
 | 
	
		
			
				|  |  | -              {
 | 
	
		
			
				|  |  | -                required: true,
 | 
	
		
			
				|  |  | -                message: '请选择学年'
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -            ]}>
 | 
	
		
			
				|  |  | -            <CSelect
 | 
	
		
			
				|  |  | -              {...({
 | 
	
		
			
				|  |  | -                style: { width: '400px' },
 | 
	
		
			
				|  |  | -                options: gradeYearList.value,
 | 
	
		
			
				|  |  | -                placeholder: '选择学年',
 | 
	
		
			
				|  |  | -                clearable: true
 | 
	
		
			
				|  |  | -              } as any)}
 | 
	
		
			
				|  |  | -              v-model:value={createClassForm.gradeYear}></CSelect>
 | 
	
		
			
				|  |  | -          </NFormItem>
 | 
	
		
			
				|  |  | -          <NFormItem
 | 
	
		
			
				|  |  | -            path="currentGradeNum"
 | 
	
		
			
				|  |  | -            rule={[
 | 
	
		
			
				|  |  | -              {
 | 
	
		
			
				|  |  | -                required: true,
 | 
	
		
			
				|  |  | -                message: '请选择年级'
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -            ]}>
 | 
	
		
			
				|  |  | -            <CSelect
 | 
	
		
			
				|  |  | -              {...({
 | 
	
		
			
				|  |  | -                style: { width: '400px' },
 | 
	
		
			
				|  |  | -                options: props.gradeNumList,
 | 
	
		
			
				|  |  | -                placeholder: '选择年级',
 | 
	
		
			
				|  |  | -                clearable: true
 | 
	
		
			
				|  |  | -              } as any)}
 | 
	
		
			
				|  |  | -              v-model:value={createClassForm.currentGradeNum}></CSelect>
 | 
	
		
			
				|  |  | -          </NFormItem>
 | 
	
		
			
				|  |  | -          <NFormItem
 | 
	
		
			
				|  |  | -            path="currentClass"
 | 
	
		
			
				|  |  | -            rule={[
 | 
	
		
			
				|  |  | -              {
 | 
	
		
			
				|  |  | -                required: true,
 | 
	
		
			
				|  |  | -                message: '请选择班级'
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -            ]}>
 | 
	
		
			
				|  |  | -            <CSelect
 | 
	
		
			
				|  |  | -              {...({
 | 
	
		
			
				|  |  | -                style: { width: '400px' },
 | 
	
		
			
				|  |  | -                options: props.classArray,
 | 
	
		
			
				|  |  | -                placeholder: '选择班级',
 | 
	
		
			
				|  |  | -                clearable: true
 | 
	
		
			
				|  |  | -              } as any)}
 | 
	
		
			
				|  |  | -              v-model:value={createClassForm.currentClass}></CSelect>
 | 
	
		
			
				|  |  | -          </NFormItem>
 | 
	
		
			
				|  |  | -          <NFormItem
 | 
	
		
			
				|  |  | -            path="instrumentId"
 | 
	
		
			
				|  |  | -            rule={[
 | 
	
		
			
				|  |  | -              {
 | 
	
		
			
				|  |  | -                required: true,
 | 
	
		
			
				|  |  | -                message: '请选择乐器'
 | 
	
		
			
				|  |  | -              }
 | 
	
		
			
				|  |  | -            ]}>
 | 
	
		
			
				|  |  | -            {/* <CSelect
 | 
	
		
			
				|  |  | -              {...({
 | 
	
		
			
				|  |  | -                style: { width: '400px' },
 | 
	
		
			
				|  |  | -                options: subjectList.value,
 | 
	
		
			
				|  |  | -                placeholder: '选择乐器',
 | 
	
		
			
				|  |  | -                clearable: true
 | 
	
		
			
				|  |  | -              } as any)}
 | 
	
		
			
				|  |  | -              v-model:value={createClassForm.instrumentId}></CSelect> */}
 | 
	
		
			
				|  |  | -            <NCascader
 | 
	
		
			
				|  |  | -              placeholder="请选择乐器"
 | 
	
		
			
				|  |  | -              v-model:value={createClassForm.instrumentId}
 | 
	
		
			
				|  |  | -              options={subjectList.value}
 | 
	
		
			
				|  |  | -              checkStrategy="child"
 | 
	
		
			
				|  |  | -              showPath={false}
 | 
	
		
			
				|  |  | -              childrenField="instruments"
 | 
	
		
			
				|  |  | -              expandTrigger="hover"
 | 
	
		
			
				|  |  | -              labelField="name"
 | 
	
		
			
				|  |  | -              valueField="id"
 | 
	
		
			
				|  |  | -              clearable
 | 
	
		
			
				|  |  | -              filterable
 | 
	
		
			
				|  |  | -              style={{ width: '400px' }}
 | 
	
		
			
				|  |  | -            />
 | 
	
		
			
				|  |  | -          </NFormItem>
 | 
	
		
			
				|  |  | -        </NForm>
 | 
	
		
			
				|  |  | -        <NSpace class={styles.btnGroup} justify="center">
 | 
	
		
			
				|  |  | -          <NButton round onClick={() => emit('close')}>
 | 
	
		
			
				|  |  | -            取消
 | 
	
		
			
				|  |  | -          </NButton>
 | 
	
		
			
				|  |  | -          <NButton
 | 
	
		
			
				|  |  | -            round
 | 
	
		
			
				|  |  | -            loading={data.uploading}
 | 
	
		
			
				|  |  | -            onClick={() => submitForms()}
 | 
	
		
			
				|  |  | -            type="primary">
 | 
	
		
			
				|  |  | -            保存
 | 
	
		
			
				|  |  | -          </NButton>
 | 
	
		
			
				|  |  | -        </NSpace>
 | 
	
		
			
				|  |  | -      </div>
 | 
	
		
			
				|  |  | -    );
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -});
 | 
	
		
			
				|  |  | +import {
 | 
	
		
			
				|  |  | +  NButton,
 | 
	
		
			
				|  |  | +  NSpace,
 | 
	
		
			
				|  |  | +  useMessage,
 | 
	
		
			
				|  |  | +  NForm,
 | 
	
		
			
				|  |  | +  NFormItem,
 | 
	
		
			
				|  |  | +  NCascader
 | 
	
		
			
				|  |  | +} from 'naive-ui';
 | 
	
		
			
				|  |  | +import { defineComponent, onMounted, reactive, ref, watch } from 'vue';
 | 
	
		
			
				|  |  | +import styles from '../index.module.less';
 | 
	
		
			
				|  |  | +import CSelect from '/src/components/CSelect';
 | 
	
		
			
				|  |  | +import { addClass, getConfiguredSubjects } from '../api';
 | 
	
		
			
				|  |  | +import { api_getCurrentGradeYear } from '../../studentList/api';
 | 
	
		
			
				|  |  | +export default defineComponent({
 | 
	
		
			
				|  |  | +  props: {
 | 
	
		
			
				|  |  | +    activeRow: {
 | 
	
		
			
				|  |  | +      type: Object,
 | 
	
		
			
				|  |  | +      default: () => ({ id: '' })
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    gradeYearList: {
 | 
	
		
			
				|  |  | +      type: Array,
 | 
	
		
			
				|  |  | +      default: () => []
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    gradeNumList: {
 | 
	
		
			
				|  |  | +      type: Array,
 | 
	
		
			
				|  |  | +      default: () => []
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    classArray: {
 | 
	
		
			
				|  |  | +      type: Array,
 | 
	
		
			
				|  |  | +      default: () => []
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  name: 'resetStudent',
 | 
	
		
			
				|  |  | +  emits: ['close', 'getList'],
 | 
	
		
			
				|  |  | +  setup(props, { emit }) {
 | 
	
		
			
				|  |  | +    const data = reactive({
 | 
	
		
			
				|  |  | +      uploading: false
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    const message = useMessage();
 | 
	
		
			
				|  |  | +    const foemsRef = ref();
 | 
	
		
			
				|  |  | +    const createClassForm = reactive({
 | 
	
		
			
				|  |  | +      gradeYear: null,
 | 
	
		
			
				|  |  | +      currentGradeNum: null,
 | 
	
		
			
				|  |  | +      currentClass: null,
 | 
	
		
			
				|  |  | +      instrumentId: null
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +    const gradeYearList = ref([] as any);
 | 
	
		
			
				|  |  | +    const subjectList = ref([] as any);
 | 
	
		
			
				|  |  | +    const submitForms = () => {
 | 
	
		
			
				|  |  | +      foemsRef.value.validate(async (error: any) => {
 | 
	
		
			
				|  |  | +        if (error) {
 | 
	
		
			
				|  |  | +          return;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        data.uploading = true;
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +          await addClass({ ...createClassForm });
 | 
	
		
			
				|  |  | +          message.success('新增成功');
 | 
	
		
			
				|  |  | +          emit('close');
 | 
	
		
			
				|  |  | +          emit('getList');
 | 
	
		
			
				|  |  | +          data.uploading = false;
 | 
	
		
			
				|  |  | +        } catch (e) {
 | 
	
		
			
				|  |  | +          console.log(e);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        data.uploading = false;
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const getYearList = async () => {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        const { data } = await api_getCurrentGradeYear({});
 | 
	
		
			
				|  |  | +        const temp = [
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            label: data + 1,
 | 
	
		
			
				|  |  | +            value: data + 1
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            label: data,
 | 
	
		
			
				|  |  | +            value: data
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        ];
 | 
	
		
			
				|  |  | +        gradeYearList.value = temp;
 | 
	
		
			
				|  |  | +      } catch {
 | 
	
		
			
				|  |  | +        //
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const getConfigSubject = async () => {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        const { data } = await getConfiguredSubjects({
 | 
	
		
			
				|  |  | +          gradeYear: createClassForm.gradeYear,
 | 
	
		
			
				|  |  | +          currentGradeNum: createClassForm.currentGradeNum,
 | 
	
		
			
				|  |  | +          currentClass: createClassForm.currentClass
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +        const temp = data || [];
 | 
	
		
			
				|  |  | +        subjectList.value = temp;
 | 
	
		
			
				|  |  | +      } catch {
 | 
	
		
			
				|  |  | +        //
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    watch(
 | 
	
		
			
				|  |  | +      () => [
 | 
	
		
			
				|  |  | +        createClassForm.gradeYear,
 | 
	
		
			
				|  |  | +        createClassForm.currentGradeNum,
 | 
	
		
			
				|  |  | +        createClassForm.currentClass
 | 
	
		
			
				|  |  | +      ],
 | 
	
		
			
				|  |  | +      () => {
 | 
	
		
			
				|  |  | +        createClassForm.instrumentId = null;
 | 
	
		
			
				|  |  | +        getConfigSubject();
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    const gradeNumList = ref();
 | 
	
		
			
				|  |  | +    const classArray = ref();
 | 
	
		
			
				|  |  | +    onMounted(() => {
 | 
	
		
			
				|  |  | +      gradeNumList.value = props.gradeNumList.filter((item: any) => item.value);
 | 
	
		
			
				|  |  | +      classArray.value = props.classArray.filter((item: any) => item.value);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      getYearList();
 | 
	
		
			
				|  |  | +    });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    return () => (
 | 
	
		
			
				|  |  | +      <div class={[styles.addClass]}>
 | 
	
		
			
				|  |  | +        <NForm label-placement="left" model={createClassForm} ref={foemsRef}>
 | 
	
		
			
				|  |  | +          <NFormItem
 | 
	
		
			
				|  |  | +            path="gradeYear"
 | 
	
		
			
				|  |  | +            rule={[
 | 
	
		
			
				|  |  | +              {
 | 
	
		
			
				|  |  | +                required: true,
 | 
	
		
			
				|  |  | +                message: '请选择学年'
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            ]}>
 | 
	
		
			
				|  |  | +            <CSelect
 | 
	
		
			
				|  |  | +              {...({
 | 
	
		
			
				|  |  | +                style: { width: '400px' },
 | 
	
		
			
				|  |  | +                options: gradeYearList.value,
 | 
	
		
			
				|  |  | +                placeholder: '选择学年',
 | 
	
		
			
				|  |  | +                clearable: true
 | 
	
		
			
				|  |  | +              } as any)}
 | 
	
		
			
				|  |  | +              v-model:value={createClassForm.gradeYear}></CSelect>
 | 
	
		
			
				|  |  | +          </NFormItem>
 | 
	
		
			
				|  |  | +          <NFormItem
 | 
	
		
			
				|  |  | +            path="currentGradeNum"
 | 
	
		
			
				|  |  | +            rule={[
 | 
	
		
			
				|  |  | +              {
 | 
	
		
			
				|  |  | +                required: true,
 | 
	
		
			
				|  |  | +                message: '请选择年级'
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            ]}>
 | 
	
		
			
				|  |  | +            <CSelect
 | 
	
		
			
				|  |  | +              {...({
 | 
	
		
			
				|  |  | +                style: { width: '400px' },
 | 
	
		
			
				|  |  | +                options: gradeNumList.value,
 | 
	
		
			
				|  |  | +                placeholder: '选择年级',
 | 
	
		
			
				|  |  | +                clearable: true
 | 
	
		
			
				|  |  | +              } as any)}
 | 
	
		
			
				|  |  | +              v-model:value={createClassForm.currentGradeNum}></CSelect>
 | 
	
		
			
				|  |  | +          </NFormItem>
 | 
	
		
			
				|  |  | +          <NFormItem
 | 
	
		
			
				|  |  | +            path="currentClass"
 | 
	
		
			
				|  |  | +            rule={[
 | 
	
		
			
				|  |  | +              {
 | 
	
		
			
				|  |  | +                required: true,
 | 
	
		
			
				|  |  | +                message: '请选择班级'
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            ]}>
 | 
	
		
			
				|  |  | +            <CSelect
 | 
	
		
			
				|  |  | +              {...({
 | 
	
		
			
				|  |  | +                style: { width: '400px' },
 | 
	
		
			
				|  |  | +                options: classArray.value,
 | 
	
		
			
				|  |  | +                placeholder: '选择班级',
 | 
	
		
			
				|  |  | +                clearable: true
 | 
	
		
			
				|  |  | +              } as any)}
 | 
	
		
			
				|  |  | +              v-model:value={createClassForm.currentClass}></CSelect>
 | 
	
		
			
				|  |  | +          </NFormItem>
 | 
	
		
			
				|  |  | +          <NFormItem
 | 
	
		
			
				|  |  | +            path="instrumentId"
 | 
	
		
			
				|  |  | +            rule={[
 | 
	
		
			
				|  |  | +              {
 | 
	
		
			
				|  |  | +                required: true,
 | 
	
		
			
				|  |  | +                message: '请选择乐器'
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            ]}>
 | 
	
		
			
				|  |  | +            {/* <CSelect
 | 
	
		
			
				|  |  | +              {...({
 | 
	
		
			
				|  |  | +                style: { width: '400px' },
 | 
	
		
			
				|  |  | +                options: subjectList.value,
 | 
	
		
			
				|  |  | +                placeholder: '选择乐器',
 | 
	
		
			
				|  |  | +                clearable: true
 | 
	
		
			
				|  |  | +              } as any)}
 | 
	
		
			
				|  |  | +              v-model:value={createClassForm.instrumentId}></CSelect> */}
 | 
	
		
			
				|  |  | +            <NCascader
 | 
	
		
			
				|  |  | +              placeholder="请选择乐器"
 | 
	
		
			
				|  |  | +              v-model:value={createClassForm.instrumentId}
 | 
	
		
			
				|  |  | +              options={subjectList.value}
 | 
	
		
			
				|  |  | +              checkStrategy="child"
 | 
	
		
			
				|  |  | +              showPath={false}
 | 
	
		
			
				|  |  | +              childrenField="instruments"
 | 
	
		
			
				|  |  | +              expandTrigger="hover"
 | 
	
		
			
				|  |  | +              labelField="name"
 | 
	
		
			
				|  |  | +              valueField="id"
 | 
	
		
			
				|  |  | +              clearable
 | 
	
		
			
				|  |  | +              filterable
 | 
	
		
			
				|  |  | +              style={{ width: '400px' }}
 | 
	
		
			
				|  |  | +            />
 | 
	
		
			
				|  |  | +          </NFormItem>
 | 
	
		
			
				|  |  | +        </NForm>
 | 
	
		
			
				|  |  | +        <NSpace class={styles.btnGroup} justify="center">
 | 
	
		
			
				|  |  | +          <NButton round onClick={() => emit('close')}>
 | 
	
		
			
				|  |  | +            取消
 | 
	
		
			
				|  |  | +          </NButton>
 | 
	
		
			
				|  |  | +          <NButton
 | 
	
		
			
				|  |  | +            round
 | 
	
		
			
				|  |  | +            loading={data.uploading}
 | 
	
		
			
				|  |  | +            onClick={() => submitForms()}
 | 
	
		
			
				|  |  | +            type="primary">
 | 
	
		
			
				|  |  | +            保存
 | 
	
		
			
				|  |  | +          </NButton>
 | 
	
		
			
				|  |  | +        </NSpace>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +});
 |