Browse Source

修改样式

lex 8 months ago
parent
commit
7ce837a1cb

BIN
src/teacher/music/upload/images/icon-question.png


+ 20 - 0
src/teacher/music/upload/index.module.less

@@ -108,10 +108,24 @@
       display: flex;
       justify-content: space-between;
 
+      .titleName {
+        display: flex;
+        align-items: center;
+      }
+
       i {
         color: #ee0a24;
       }
 
+      .iconQuestion {
+        display: inline-block;
+        width: 16px;
+        height: 16px;
+        margin-left: 6px;
+        background: url('./images/icon-question.png') no-repeat center;
+        background-size: contain;
+      }
+
       .titleTip {
         font-size: 12px;
         color: #AAAAAA;
@@ -207,6 +221,11 @@
       background: transparent;
       padding: 0;
       border: 0;
+      height: 50px;
+    }
+
+    .van-button:active:before {
+      opacity: 1;
     }
 
     .van-button__text {
@@ -274,6 +293,7 @@
   color: #00B2A7 !important;
   padding-top: 0;
   padding-bottom: 0;
+  border: 1px solid #9FE2DE;
 }
 
 .file {

+ 189 - 354
src/teacher/music/upload/index.tsx

@@ -40,7 +40,6 @@ import styles from './index.module.less'
 import SelectTag from '@/views/music/search/select-tag'
 import { browser } from '@/helpers/utils'
 import { postMessage } from '@/helpers/native-message'
-import { teacherState } from '@/teacher/teacher-cert/teacherState'
 import request from '@/helpers/request'
 import requestOrigin from 'umi-request'
 import UploadIcon from './images/music-icon.png'
@@ -50,20 +49,20 @@ import {
   verifiyNumberInteger,
   verifyNumberIntegerAndFloat
 } from '@/helpers/toolsValidate'
-import { state } from '@/state'
 import ColHeader from '@/components/col-header'
 import ColSticky from '@/components/col-sticky'
 import MessageTip from './message-tip'
 
 export type BackgroundMp3 = {
   url?: string
+  id?: string
   trackName?: string
   track?: string
+  loading?: boolean
 }
 
 // 校验函数返回 true 表示校验通过,false 表示不通过
 export const validator = val => {
-  console.log(val)
   if (Number(val) <= 0) {
     return '收费金额必须大于0'
   } else {
@@ -79,28 +78,25 @@ export default defineComponent({
       playMode: 'MP3',
       xmlFileUrl: '',
       xmlFileLoading: false,
-      midiUrl: '',
+      midiFileUrl: '',
       midiLoading: false,
       mp3Url: '',
       bgmp3Url: '',
       mp3Loading: false,
-      bgmp3Loading: false,
-      musicSheetName: '',
+      name: '',
       composer: '',
       remark: '',
-      repeatedBeats: 0,
+      // repeatedBeats: 0,
       playSpeed: null as any,
-      hasBeat: 0,
-      titleImg: '',
-      accompanimentType: 'HOMEMODE',
-      chargeType: 0,
+      // hasBeat: 0,
+      musicCover: '',
       paymentType: 'CHARGE',
-      showFingering: 1,
-      canEvaluate: 1,
-      notation: 1,
+      // showFingering: 1,
+      // canEvaluate: 1,
+      // notation: 1,
       musicPrice: '',
-      subJectIndex: 0,
-      subjectIds: [] as any, // 可用声部
+      // subJectIndex: 0,
+      // subjectIds: [] as any, // 可用声部
       musicalInstrumentIdList: [] as any, // 可用乐器
       selectTagVisible: false,
       subJectVisible: false,
@@ -109,21 +105,20 @@ export default defineComponent({
       tagsNames: [] as Array<{ [id in string]: string }>,
       formated: {} as FormatXMLInfo,
       tagVisibility: false,
-      subjectListres: [] as any[],
-      subjectListNames: {} as any,
-      selectedSubjectList: null as any,
-      vlewSubjectList: null as any,
+      // subjectListres: [] as any[],
+      // subjectListNames: {} as any,
+      // selectedSubjectList: null as any,
+      // vlewSubjectList: null as any,
       submitLoading: false,
-      showPicker: false,
+      // showPicker: false,
       music_sheet_service_fee: 0,
       music_account_period: 0,
-      exquisiteFlag: 0,
+      // exquisiteFlag: 0,
       backgroundMp3s: [] as BackgroundMp3[],
-      checked: false,
+      // checked: false,
       messageTipStatus: false,
       messageTipTitle: '上传须知',
       messageTipType: 'upload' as 'upload' | 'error' | 'origin',
-      cbsSubjectList: [] as any,
       cbsInstrumentList: [] as any
     }
   },
@@ -131,38 +126,7 @@ export default defineComponent({
     formated() {
       this.mergeXmlData(this.formated)
     }
-    // chargeType() {
-    //   if (this.chargeType === 0) {
-    //     this.musicPrice = ''
-    //     this.paymentType = ''
-    //   }
-    // }
   },
-  // computed: {
-  //   choiceSubject() {
-  //     // 选择的科目
-  //     const tempArr: any[] = []
-  //     this.cbsSubjectList.forEach((parent: any) => {
-  //       if (this.subjectIds.includes(parent.id)) {
-  //         tempArr.push(parent as never)
-  //       }
-  //     })
-  //     console.log(tempArr, 'child', this.subjectIds, this.cbsSubjectList)
-  //     return tempArr
-  //   },
-  //   choiceInstrument() {
-  //     const tempArr: any[] = []
-  //     this.cbsSubjectList.forEach((parent: any) => {
-  //       const instruments = parent.instruments || []
-  //       instruments.forEach(child => {
-  //         if (this.musicalInstrumentIdList.includes(child.id)) {
-  //           tempArr.push(child as never)
-  //         }
-  //       })
-  //     })
-  //     return tempArr
-  //   }
-  // },
   async mounted() {
     // 获取基础数据
     request
@@ -182,102 +146,27 @@ export default defineComponent({
         })
       })
 
-    // request
-    //   .post('/api-teacher/subject/queryPage', {
-    //     data: { page: 1, row: -1, parentSubjectId: 0 }
-    //   })
-    //   .then((response: any) => {
-    //     console.log(response, 'response')
-
-    //     const data = response.data.rows || []
-    //     console.log(data, 'data')
-    //   })
-    // request
-    //   .get('/api-teacher/subject/subjectSelect', {
-    //     params: { parentSubjectId: 0 }
-    //   })
-    //   .then(res => {
-    //     console.log(res, '2112')
-    //   })
-    this.cbsInstrumentList = [
-      {
-        id: 1004,
-        name: '德式竖笛',
-        code: 'Tenor Recorder'
-      },
-      {
-        id: 1005,
-        name: '英式竖笛',
-        code: 'Baroque Recorder'
-      },
-      {
-        id: 1006,
-        name: '长笛',
-        code: 'Flute'
-      },
-      {
-        id: 1007,
-        name: '中音萨克斯',
-        code: 'AltoSaxophone'
-      },
-      {
-        id: 1008,
-        name: '单簧管',
-        code: 'Clarinet'
-      },
-      {
-        id: 1009,
-        name: '黄式竖笛4',
-        code: 'Flute'
-      }
-    ]
+    request
+      .post('/api-teacher/musicalInstrument/list')
+      .then((response: any) => {
+        const data = response.data || []
+        data.forEach((item: any) => {
+          this.cbsInstrumentList.push({
+            id: item.id,
+            name: item.name,
+            code: item.code,
+            loading: false
+          })
+        })
+      })
   },
   methods: {
-    // onChoiceSubject(val: any) {
-    //   this.subJectVisible = false
-    //   this.subjectIds = [...val]
-    // },
-    // onRemoveSubject(val: any) {
-    //   const index = this.subjectIds.findIndex(s => s === val)
-    //   if (index > -1) {
-    //     this.subjectIds.splice(index, 1)
-
-    //     const cbsInstrumentList: any[] = []
-    //     this.cbsSubjectList.forEach(element => {
-    //       const index = this.subjectIds.findIndex(s => s === element.id)
-    //       if (index > -1) {
-    //         if (this.subjectIds.includes(element.id)) {
-    //           const instruments = element.instruments ? element.instruments : []
-    //           cbsInstrumentList.push(...instruments)
-    //         }
-    //       }
-    //     })
-
-    //     const tempInstrumentIds: any = []
-    //     this.musicalInstrumentIdList.forEach((item: any) => {
-    //       const index = cbsInstrumentList.findIndex(
-    //         instrument => instrument.id === item
-    //       )
-    //       if (index > -1) {
-    //         tempInstrumentIds.push(item)
-    //       }
-    //     })
-    //     this.musicalInstrumentIdList = tempInstrumentIds
-    //   }
-    // },
-    // onChoiceInstrument(val: any) {
-    //   this.instrumentVisible = false
-    //   this.musicalInstrumentIdList = [...val]
-    // },
-    // onRemoveInstrument(val: any) {
-    //   const index = this.musicalInstrumentIdList.findIndex(s => s === val)
-    //   console.log(val, 'val', index, this.musicalInstrumentIdList)
-    //   if (index > -1) {
-    //     this.musicalInstrumentIdList.splice(index, 1)
-    //   }
-    // },
-    removeBackground(index: number) {
-      this.backgroundMp3s.splice(index, 1)
+    onComfirm(tags: any, names: any) {
+      this.tagsNames = names
+      this.tagVisibility = false
+      const data = Object.values(tags).flat().filter(Boolean) as string[]
+      console.log(data)
+      this.tags = data
     },
     readerFile(file: File) {
       const reader = new FileReader()
@@ -327,8 +216,8 @@ export default defineComponent({
       // this.backgroundMp3s = data.partNames.map((partName: string) => ({
       //   track: partName
       // }))
-      if (!this.musicSheetName) {
-        this.musicSheetName = data.title
+      if (!this.name) {
+        this.name = data.title
       }
       if (!this.composer) {
         this.composer = data.composer
@@ -380,9 +269,9 @@ export default defineComponent({
         { api: 'chooseFile', content: { type: 'midi', bucket: 'cloud-coach' } },
         evt => {
           // @ts-ignore
-          this.midiUrl = evt?.fileUrl || this.midiUrl || ''
+          this.midiFileUrl = evt?.fileUrl || this.midiFileUrl || ''
           this.midiLoading = false
-          // this.midiUrl = path
+          // this.midiFileUrl = path
         }
       )
     },
@@ -394,19 +283,18 @@ export default defineComponent({
           // @ts-ignore
           this.mp3Url = evt?.fileUrl || this.mp3Url || ''
           this.mp3Loading = false
-          // this.midiUrl = path
+          // this.midiFileUrl = path
         }
       )
     },
-    naiveBGMp3File() {
-      this.bgmp3Loading = true
+    naiveBGMp3File(index) {
+      this.backgroundMp3s[index].loading = true
       postMessage(
         { api: 'chooseFile', content: { type: 'mp3', bucket: 'cloud-coach' } },
         evt => {
           // @ts-ignore
           this.bgmp3Url = evt?.fileUrl || this.bgmp3Url || ''
-          this.bgmp3Loading = false
-          // this.midiUrl = path
+          this.backgroundMp3s[index].loading = false
         }
       )
     },
@@ -415,20 +303,90 @@ export default defineComponent({
     },
     onFormatter2(val: any) {
       const num = verifiyNumberInteger(val)
-      if (num && Number(num) > 300) {
-        return '255'
+      if (num && Number(num) > 270) {
+        return '270'
+      }
+      if (num && Number(num) < 45) {
+        return '45'
       }
       return num
     },
     fileName(name = '') {
       return name?.split('/').pop()
+    },
+    createSubmitData() {
+      return {
+        playMode: this.playMode, // 播放模式
+        xmlFileUrl: this.xmlFileUrl, // XML
+        name: this.name, // 曲目名称
+        composer: this.composer, // 音乐人
+        playSpeed: this.playSpeed, // 曲目速度
+        musicCover: this.musicCover, // 曲目封面
+
+        multiTracksSelection: '1001', // 声轨名
+        midiFileUrl: this.midiFileUrl, // MID文件
+        musicSheetAccompanimentList: [
+          {
+            audioFileUrl: this.mp3Url,
+            sortNumber: 1,
+            audioPlayType: 'PLAY'
+          }
+        ], // 伴奏
+        // audioType: 'HOMEMODE', // HOMEMODE  默认自制
+        musicSheetSoundList: this.backgroundMp3s.map(item => ({
+          // audioFileUrl: this.bgmp3Url,
+          // track: item.track
+          musicalInstrumentId: item.id,
+          musicalInstrumentName: item.trackName,
+          audioFileUrl: item.url,
+          audioPlayType: 'PLAY' // SING
+        })), // 原音
+        musicalInstrumentIds: '1001', // 乐器编号
+        extConfigJson: '{"repeatedBeats":0,"gradualTimes":{},"isEvxml":0}'
+      }
+    },
+    async onSubmit(vals: any) {
+      console.log(vals, this.createSubmitData())
+      this.submitLoading = true
+      try {
+        if (this.$route.params.id) {
+          await request.post('/api-teacher/music/sheet/update', {
+            data: {
+              ...this.createSubmitData(),
+              id: this.$route.params.id
+            }
+          })
+        } else {
+          await request.post('/api-teacher/music/sheet/save', {
+            data: this.createSubmitData()
+          })
+        }
+      } catch (error) {
+        //
+      }
+
+      Toast('上传成功')
+      setTimeout(() => {
+        postMessage({
+          api: 'back'
+        })
+        this.submitLoading = false
+      }, 800)
+      console.log(vals)
+    },
+    failed() {
+      console.log('failed', this.backgroundMp3s)
     }
   },
   render() {
     // console.log(this.formated)
     // const browserInfo = browser()
     return (
-      <Form class={styles.form}>
+      <Form
+        class={styles.form}
+        onSubmit={this.onSubmit}
+        onFailed={this.onFailed}
+      >
         <ColHeader hideHeader={false} background="transparent" border={false} />
 
         <CellGroup class={[styles.area, styles.topArea]}>
@@ -468,7 +426,7 @@ export default defineComponent({
             }}
           </Field>
 
-          {this.playMode === 'MP3' ? (
+          {this.playMode === 'MP3' && (
             <Field
               name="mp3Url"
               class={styles.fieldTypeBottom}
@@ -500,8 +458,7 @@ export default defineComponent({
                     <>
                       <Upload
                         onUpdate:modelValue={val => (this.mp3Url = val)}
-                        accept=".xml,."
-                        formatFile={this.readerFile}
+                        accept=".mp3"
                       />
                       <div style={{ marginLeft: '8px' }}>
                         {this.fileName(this.mp3Url)}
@@ -510,11 +467,13 @@ export default defineComponent({
                   )
               }}
             </Field>
-          ) : (
+          )}
+
+          {this.playMode === 'MIDI' && (
             <Field
-              name="midiUrl"
+              name="midiFileUrl"
               class={styles.fieldTypeBottom}
-              modelValue={this.midiUrl}
+              modelValue={this.midiFileUrl}
               rules={[{ required: true, message: '请选择MIDI文件' }]}
             >
               {{
@@ -526,18 +485,30 @@ export default defineComponent({
                     <span class={styles.titleTip}>仅支持MIDI格式文件</span>
                   </div>
                 ),
-                input: () => (
-                  <Button
-                    icon={UploadIcon}
-                    class={styles.upbtn}
-                    loading={this.mp3Loading}
-                    onClick={this.naiveMp3File}
-                  >
-                    {this.midiUrl
-                      ? this.fileName(this.midiUrl)
-                      : '上传MIDI文件'}
-                  </Button>
-                )
+                input: () =>
+                  browser().isApp ? (
+                    <Button
+                      icon={UploadIcon}
+                      class={styles.upbtn}
+                      loading={this.mp3Loading}
+                      onClick={this.naiveMidFile}
+                    >
+                      {this.midiFileUrl
+                        ? this.fileName(this.midiFileUrl)
+                        : '上传MIDI文件'}
+                    </Button>
+                  ) : (
+                    <>
+                      <Upload
+                        onUpdate:modelValue={val => (this.midiFileUrl = val)}
+                        accept=".mid"
+                        formatFile={this.readerFile}
+                      />
+                      <div style={{ marginLeft: '8px' }}>
+                        {this.fileName(this.midiFileUrl)}
+                      </div>
+                    </>
+                  )
               }}
             </Field>
           )}
@@ -546,7 +517,7 @@ export default defineComponent({
             name="xmlFileUrl"
             class={styles.fieldTypeBottom}
             modelValue={this.xmlFileUrl}
-            rules={[{ required: true, message: '请选择MusicXML文件' }]}
+            rules={[{ required: true, message: '请选择XML/MusicXML文件' }]}
           >
             {{
               label: () => (
@@ -554,7 +525,9 @@ export default defineComponent({
                   <span>
                     <i>*</i>上传XML
                   </span>
-                  <span class={styles.titleTip}>仅支持XML/MXML格式文件</span>
+                  <span class={styles.titleTip}>
+                    仅支持XML/MusicXML格式文件
+                  </span>
                 </div>
               ),
               input: () =>
@@ -589,13 +562,20 @@ export default defineComponent({
               class={[styles.fieldTypeBottom, styles.hideValue]}
               modelValue={this.xmlFileUrl}
               border={false}
-              rules={[{ required: true, message: '请选择MusicXML文件' }]}
             >
               {{
                 label: () => (
                   <div class={styles.fieldTitle}>
-                    <span>
+                    <span class={styles.titleName}>
                       <i>*</i>上传原音
+                      <i
+                        class={styles.iconQuestion}
+                        onClick={() => {
+                          this.messageTipStatus = true
+                          this.messageTipTitle = '原音文件'
+                          this.messageTipType = 'origin'
+                        }}
+                      ></i>
                     </span>
                     <span class={styles.titleTip}>仅支持MP3格式文件</span>
                   </div>
@@ -606,20 +586,15 @@ export default defineComponent({
 
           {this.backgroundMp3s.map((mp3, index) => (
             <Field
-              name="xmlFileUrl"
+              name="url"
               class={[styles.fieldTypeBottom, styles.musicTrack]}
-              modelValue={this.xmlFileUrl}
+              modelValue={mp3.url}
+              rules={[{ required: true, message: '请选择原音文件文件' }]}
             >
               {{
                 label: () => (
                   <div class={styles.fieldTitle}>
                     <span>所属轨道:{mp3.trackName}</span>
-                    <span
-                      class={styles.titleTip}
-                      onClick={() => this.removeBackground(index)}
-                    >
-                      删除
-                    </span>
                   </div>
                 ),
                 input: () =>
@@ -627,8 +602,8 @@ export default defineComponent({
                     <Button
                       icon={UploadIcon}
                       class={styles.upbtn}
-                      loading={this.bgmp3Loading}
-                      onClick={this.naiveBGMp3File}
+                      loading={mp3.loading}
+                      onClick={() => this.naiveBGMp3File(index)}
                     >
                       {mp3.url ? this.fileName(mp3.url) : '上传原声文件'}
                     </Button>
@@ -646,93 +621,6 @@ export default defineComponent({
               }}
             </Field>
           ))}
-
-          {/* <Field
-            label="可用声部"
-            placeholder=""
-            inputAlign="right"
-            isLink
-            required
-            readonly
-            // v-model={this.subjectIds}
-            onClick={() => (this.subJectVisible = true)}
-          ></Field>
-
-          {this.choiceSubject && this.choiceSubject.length > 0 && (
-            <Field name="subjectIds" class={styles.showField}>
-              {{
-                input: () =>
-                  this.choiceSubject.length > 0 ? (
-                    this.choiceSubject.map((item: any) => (
-                      <Tag
-                        type="primary"
-                        size="large"
-                        plain
-                        class={styles.tags}
-                        closeable
-                        onClose={() => this.onRemoveSubject(item.id)}
-                      >
-                        {item.name}
-                      </Tag>
-                    ))
-                  ) : (
-                    <Empty
-                      style={{ width: '100%' }}
-                      description="请选择曲目标签"
-                      imageSize={0}
-                    />
-                  )
-              }}
-            </Field>
-          )} */}
-          {/* <Field
-            label="可用乐器"
-            placeholder=""
-            inputAlign="right"
-            isLink
-            required
-            readonly
-            onClick={() => {
-              // const cbsInstrumentList: any = []
-              // this.cbsSubjectList.forEach(element => {
-              //   if (this.subjectIds.includes(element.id)) {
-              //     const instruments = element.instruments
-              //       ? element.instruments
-              //       : []
-              //     cbsInstrumentList.push(...instruments)
-              //   }
-              // })
-              // this.cbsInstrumentList = cbsInstrumentList
-              // this.instrumentVisible = true
-            }}
-          ></Field>
-          {this.choiceInstrument && this.choiceInstrument.length > 0 && (
-            <Field name="instrumentIds" class={styles.showField}>
-              {{
-                input: () =>
-                  this.choiceInstrument.length > 0 ? (
-                    this.choiceInstrument.map((item: any) => (
-                      <Tag
-                        type="primary"
-                        size="large"
-                        plain
-                        class={styles.tags}
-                        closeable
-                        onClose={() => this.onRemoveInstrument(item.id)}
-                      >
-                        {item.name}
-                      </Tag>
-                    ))
-                  ) : (
-                    <Empty
-                      style={{ width: '100%' }}
-                      description="请选择曲目标签"
-                      imageSize={0}
-                    />
-                  )
-              }}
-            </Field>
-          )} */}
         </CellGroup>
 
         <CellGroup class={[styles.area]}>
@@ -743,12 +631,13 @@ export default defineComponent({
           <Field
             label="曲目名称"
             clearable
-            name="musicSheetName"
-            modelValue={this.musicSheetName}
+            name="name"
+            modelValue={this.name}
             rules={[{ required: true, message: '请输入曲目名称' }]}
+            errorMessageAlign="right"
             placeholder="请输入曲目名称"
             inputAlign="right"
-            onUpdate:modelValue={val => (this.musicSheetName = val)}
+            onUpdate:modelValue={val => (this.name = val)}
           />
 
           <Field
@@ -757,6 +646,7 @@ export default defineComponent({
             name="composer"
             modelValue={this.composer}
             rules={[{ required: true, message: '请输入音乐人' }]}
+            errorMessageAlign="right"
             placeholder="请输入音乐人"
             inputAlign="right"
             onUpdate:modelValue={val => (this.composer = val)}
@@ -790,55 +680,26 @@ export default defineComponent({
                     autoCropWidth: 600,
                     autoCropHeight: 600
                   }}
-                  v-model={this.titleImg}
+                  v-model={this.musicCover}
                   class={styles.imgContainer}
                 />
               )
             }}
           </Field>
 
-          {/* <Field
-            required
-            label="重复节拍时长"
-            name="repeatedBeats"
-            center
-            inputAlign="right"
-          >
-            {{
-              input: () => (
-                <RadioGroup
-                  class={styles['radio-group']}
-                  modelValue={this.repeatedBeats}
-                  onUpdate:modelValue={val => (this.repeatedBeats = val)}
-                >
-                  {Object.keys(teachershowHasBeatType).map((item: string) => {
-                    console.log(item, 'teachershowHasBeatType')
-                    const isActive = item === String(this.repeatedBeats)
-                    const type = isActive ? 'primary' : 'default'
-                    return (
-                      <Radio class={styles.radio} name={item}>
-                        <Tag size="large" plain={isActive} type={type}>
-                          {teachershowHasBeatType[item]}
-                        </Tag>
-                      </Radio>
-                    )
-                  })}
-                </RadioGroup>
-              )
-            }}
-          </Field> */}
           <Field
             required
             label="曲目速度"
             center
             name="playSpeed"
             inputAlign="right"
+            rules={[{ required: true, message: '请输入曲目速度' }]}
+            errorMessageAlign="right"
             v-model={this.playSpeed}
             class={styles.inputControl}
             formatter={this.onFormatter2}
           ></Field>
 
-          {/* tagVisibility */}
           <Field
             label="曲目标签"
             placeholder=""
@@ -853,6 +714,7 @@ export default defineComponent({
           {this.tags.length > 0 && (
             <Field
               name="tags"
+              class={styles.showField}
               modelValue={this.tags.length ? 1 : undefined}
               rules={[{ required: true, message: '请选择曲目标签' }]}
               // @ts-ignore
@@ -860,7 +722,12 @@ export default defineComponent({
                 input: () =>
                   this.tags.length > 0 ? (
                     this.tags.map((item: any) => (
-                      <Tag type="primary" size="large" class={styles.tags}>
+                      <Tag
+                        type="primary"
+                        size="large"
+                        class={styles.tags}
+                        closeable
+                      >
                         {this.tagsNames[item]}
                       </Tag>
                     ))
@@ -937,9 +804,11 @@ export default defineComponent({
                 formatter={this.onFormatter}
                 v-slots={{ button: () => '元' }}
                 modelValue={this.musicPrice}
+                maxlength={8}
                 rules={[
                   { required: true, validator, message: '请输入收费价格' }
                 ]}
+                errorMessageAlign="right"
                 onUpdate:modelValue={val => (this.musicPrice = val)}
               />
 
@@ -979,7 +848,7 @@ export default defineComponent({
             </Button>
           </div>
         </ColSticky>
-        <Popup
+        {/* <Popup
           show={this.showPicker}
           round
           position="bottom"
@@ -1001,42 +870,6 @@ export default defineComponent({
               this.showPicker = false
             }}
           />
-        </Popup>
-
-        {/* <Popup
-          show={this.subJectVisible}
-          round
-          closeable
-          position="bottom"
-          style={{ height: '60%' }}
-          teleport="body"
-          onUpdate:show={val => (this.subJectVisible = val)}
-        >
-          <SubjectModel
-            show={this.subJectVisible}
-            child={this.cbsSubjectList}
-            choiceSubjectIds={this.subjectIds}
-            onConfirm={this.onChoiceSubject}
-            onClose={() => (this.subJectVisible = false)}
-          />
-        </Popup>
-
-        <Popup
-          show={this.instrumentVisible}
-          round
-          closeable
-          position="bottom"
-          style={{ height: '60%' }}
-          teleport="body"
-          onUpdate:show={val => (this.instrumentVisible = val)}
-        >
-          <InstrumentModal
-            show={this.instrumentVisible}
-            child={this.cbsInstrumentList}
-            choiceSubjectIds={this.musicalInstrumentIdList}
-            onConfirm={this.onChoiceInstrument}
-            onClose={() => (this.instrumentVisible = false)}
-          />
         </Popup> */}
 
         <Popup
@@ -1050,7 +883,9 @@ export default defineComponent({
         >
           <SelectTag
             onConfirm={this.onComfirm}
-            onCancel={() => {}}
+            onCancel={() => {
+              this.tagVisibility = false
+            }}
             rowSingle
             defaultValue={this.tags.join(',')}
             needAllButton={false}

+ 1 - 1
src/teacher/music/upload/message-tip/index.module.less

@@ -28,7 +28,7 @@
     padding-top: 57px;
     text-align: center;
     font-size: 18px;
-    font-weight: 500;
+    font-weight: 600;
     color: #000000;
 
     span {