Parcourir la source

历史曲目数据编辑兼容

yuanliang il y a 1 an
Parent
commit
27cdf148f0
1 fichiers modifiés avec 69 ajouts et 52 suppressions
  1. 69 52
      src/views/music-library/music-sheet/modal/music-operation.tsx

+ 69 - 52
src/views/music-library/music-sheet/modal/music-operation.tsx

@@ -549,6 +549,13 @@ export default defineComponent({
         positiveText: '确定',
         negativeText: '取消',
         onPositiveClick: async () => {
+          const sound = forms.musicSheetSoundList[index];
+          const track = sound.track
+          const selectIndex = forms.multiTracksSelection.indexOf(track)
+          if (selectIndex > -1) {
+            forms.multiTracksSelection.splice(selectIndex, 1)
+          }
+
           forms.musicSheetSoundList.splice(index, 1)
         }
       })
@@ -690,7 +697,7 @@ export default defineComponent({
               }
             })
           }
-          forms.musicalInstrumentIdList = data.musicalInstrumentIds.split(',') || []
+          forms.musicalInstrumentIdList = data.musicalInstrumentIds?.split(',') || []
           forms.musicCategoryId = data.musicCategoryId
           data.musicSheetAccompanimentList?.forEach((next: any) => {
             state.musicSheetAccompanimentUrlList.push(next.audioFileUrl)
@@ -1390,58 +1397,68 @@ export default defineComponent({
               <>
                 {forms.musicSheetSoundList.map((item: any, index: number) => (
                   <>
-                    {item.track?.toLocaleUpperCase?.() != 'COMMON' &&
-                      forms.multiTracksSelection.indexOf(item.track) > -1 && (
-                        <NGrid
-                          class={styles.audioSection}
-                          // v-show={forms.multiTracksSelection.indexOf(item.track) > -1}
-                        >
-                          <NFormItemGi
-                            span={12}
-                            label="原音"
-                            path={`musicSheetSoundList[${index}].audioFileUrl`}
-                            rule={[
-                              {
-                                // required: forms.multiTracksSelection.indexOf(forms.musicSheetSoundList[index].audioFileUrl) > -1,
-                                required: true,
-                                message: `请上传${
-                                  item.track ? item.track + '的' : '第' + (index + 1) + '个'
-                                }原音`
-                              }
-                            ]}
-                          >
-                            <UploadFile
-                              desc={'原音文件'}
-                              disabled={state.previewMode}
-                              size={100}
-                              v-model:fileList={item.audioFileUrl}
-                              tips="仅支持上传.mp3格式文件"
-                              listType="image"
-                              accept=".mp3"
-                              bucketName="cloud-coach"
-                            />
-                          </NFormItemGi>
-                          {state.partListNames.length > 1 && (
-                            <NFormItemGi
-                              span={12}
-                              label="所属轨道"
-                              path={`musicSheetSoundList[${index}].track`}
-                              rule={[
-                                {
-                                  required: true,
-                                  message: '请选择所属轨道'
-                                }
-                              ]}
+                    {((!item.track)||(item.track?.toLocaleUpperCase?.() != 'COMMON' && forms.multiTracksSelection.indexOf(item.track) > -1))
+                        && (
+                            <NGrid
+                                class={styles.audioSection}
+                                // v-show={forms.multiTracksSelection.indexOf(item.track) > -1}
                             >
-                              <NSelect
-                                placeholder="请选择所属轨道"
-                                v-model:value={item.track}
-                                options={initPartsListStatus(item.track)}
-                              />
-                            </NFormItemGi>
-                          )}
-                        </NGrid>
-                      )}
+                              <NFormItemGi
+                                  span={12}
+                                  label="原音"
+                                  path={`musicSheetSoundList[${index}].audioFileUrl`}
+                                  rule={[
+                                    {
+                                      // required: forms.multiTracksSelection.indexOf(forms.musicSheetSoundList[index].audioFileUrl) > -1,
+                                      required: true,
+                                      message: `请上传${
+                                          item.track ? item.track + '的' : '第' + (index + 1) + '个'
+                                      }原音`
+                                    }
+                                  ]}
+                              >
+                                <UploadFile
+                                    desc={'原音文件'}
+                                    disabled={state.previewMode}
+                                    size={100}
+                                    v-model:fileList={item.audioFileUrl}
+                                    tips="仅支持上传.mp3格式文件"
+                                    listType="image"
+                                    accept=".mp3"
+                                    bucketName="cloud-coach"
+                                />
+                              </NFormItemGi>
+                              {state.partListNames.length > 1 && (
+                                  <NFormItemGi
+                                      span={12}
+                                      label="所属轨道"
+                                      path={`musicSheetSoundList[${index}].track`}
+                                      rule={[
+                                        {
+                                          required: true,
+                                          message: '请选择所属轨道'
+                                        }
+                                      ]}
+                                  >
+                                    <NSelect
+                                        placeholder="请选择所属轨道"
+                                        v-model:value={item.track}
+                                        options={initPartsListStatus(item.track)}
+                                    />
+                                  </NFormItemGi>
+                              )}
+                              <NGi class={styles.btnRemove}>
+                                <NButton
+                                    type="primary"
+                                    text
+                                    disabled={forms.musicSheetSoundList.length === 1}
+                                    onClick={() => removeSys(index)}
+                                >
+                                  删除
+                                </NButton>
+                              </NGi>
+                            </NGrid>
+                        )}
                   </>
                 ))}
               </>