Browse Source

使用项目动态渲染

yuanliang 1 year ago
parent
commit
3f6f15e543

+ 0 - 2
src/views/music-library/music-sheet/modal/music-operation.tsx

@@ -338,9 +338,7 @@ export default defineComponent({
     // 提交记录
     const onSubmit = async () => {
       formsRef.value.validate(async (error: any) => {
-        console.log(error, 'error')
         if (error) {
-          message.error(error[0]?.[0]?.message)
           return
         }
         try {

+ 210 - 212
src/views/music-library/music-sheet/modal/use-project.tsx

@@ -54,6 +54,8 @@ export default defineComponent({
       loading: false,
       tabName: null as any,
       selectAppKey: [] as any, //选择的APP
+      selectAppName: [] as any, //app key name映射
+      appKeyNameMap: null as any,//
       userProjectList: [] as any, // 适用项目列表
       musicSheetCategoryOptions: {} as any,//项目曲目分类选择
 
@@ -80,10 +82,12 @@ export default defineComponent({
         const indexOf = keys.indexOf(next.appKey);
         return indexOf > -1;
       })
+      state.appKeyNameMap = new Map<string, string>
       state.userProjectList.forEach((next: any) => {
         if (forms.useApplicationIds.includes(next.id)) {
           state.selectAppKey.push(next.appKey)
         }
+        state.appKeyNameMap.set(next.appKey, next.appName)
       })
       if (state.selectAppKey.length > 0) {
         state.tabName = state.selectAppKey[0]
@@ -122,7 +126,6 @@ export default defineComponent({
 
     const onSubmit = async () => {
       formsRef.value.validate(async (error: any) => {
-        console.log(error, 'error')
         if (error) {
           return
         }
@@ -219,226 +222,221 @@ export default defineComponent({
                       state.tabName = val
                     }}
                 >
-                  {state.selectAppKey.includes('GYM') &&
-                      <NTabPane
-                          tab={appKey.GYM}
-                          name='GYM'
-                      >
-                          <NFormItem
-                              label="曲目分类"
-                              path="forms.useProjectParamConfig.GYM.musicSheetCategoryId"
-                          >
-                              <NCascader
-                                  valueField="id"
-                                  labelField="name"
-                                  children-field="children"
-                                  placeholder="请选择分类"
-                                  v-model:value={forms.useProjectParamConfig.GYM.musicSheetCategoryId}
-                                  options={state.musicSheetCategoryOptions.GYM}
-                                  clearable
-                              />
-                          </NFormItem>
-                          <NFormItem
-                              label="是否收费"
-                              path="forms.useProjectParamConfig.GYM.paymentType"
-                          >
-                              <NSelect
-                                  clearable
-                                  options={getSelectDataFromObj(musicSheetPaymentType)}
+                  {state.selectAppKey.map((item: any, index: number) => {
+                    return <NTabPane
+                        tab={state.appKeyNameMap.get(item)}
+                        name={item}
+                    >
+                      {item === 'GYM' &&
+                          <div>
+                              <NFormItem
+                                  label="曲目分类"
+                                  path="forms.useProjectParamConfig.GYM.musicSheetCategoryId"
                               >
-                              </NSelect>
-                          </NFormItem>
-                          <NFormItem
-                              label="排序值"
-                              path="useProjectParamConfig.GYM.sortNo"
-                          >
-                              <NInputNumber
-                                  v-model:value={forms.useProjectParamConfig.GYM.sortNo}
-                                  placeholder="请输入排序值"
-                                  clearable
-                                  min={0}
-                                  max={9999}
-                                  style={{width: '100%'}}
-                              />
-                          </NFormItem>
-                      </NTabPane>
-                  }
-                  {state.selectAppKey.includes('GYT') &&
-                      <NTabPane
-                          tab={appKey.GYT}
-                          name='GYT'
-                      >
-                          <NFormItem
-                              label="分类"
-                              path="useProjectParamConfig.GYT.musicSheetCategoryId"
-                          >
-                              <NCascader
-                                  valueField="id"
-                                  labelField="name"
-                                  children-field="children"
-                                  placeholder="请选择分类"
-                                  v-model:value={forms.useProjectParamConfig.GYT.musicSheetCategoryId}
-                                  options={state.musicSheetCategoryOptions.GYT}
-                                  clearable
-                              />
-                          </NFormItem>
-                          <NFormItem
-                              label="排序值"
-                              path="useProjectParamConfig.GYT.sortNo"
-                          >
-                              <NInputNumber
-                                  v-model:value={forms.useProjectParamConfig.GYT.sortNo}
-                                  placeholder="请输入排序值"
-                                  clearable
-                                  min={0}
-                                  max={9999}
-                                  style={{width: '100%'}}
-                              />
-                          </NFormItem>
-                      </NTabPane>
-                  }
-                  {state.selectAppKey.includes('KLX') &&
-                      <NTabPane
-                          tab={appKey.KLX}
-                          name='KLX'
-                      >
-                          <NFormItem
-                              label="可用途径"
-                              path="musicSheetType"
-                          >
-                              <NSelect
-                                  clearable
-                                  options={getSelectDataFromObj(musicSheetAvailableType)}
+                                  <NCascader
+                                      valueField="id"
+                                      labelField="name"
+                                      children-field="children"
+                                      placeholder="请选择分类"
+                                      v-model:value={forms.useProjectParamConfig.GYM.musicSheetCategoryId}
+                                      options={state.musicSheetCategoryOptions.GYM}
+                                      clearable
+                                  />
+                              </NFormItem>
+                              <NFormItem
+                                  label="是否收费"
+                                  path="forms.useProjectParamConfig.GYM.paymentType"
                               >
-                              </NSelect>
-                          </NFormItem>
-                          <NFormItem
-                              label="曲目标签"
-                              path="musicSheetType"
-                          >
-                              <NSelect>
-                              </NSelect>
-                          </NFormItem>
-                          <NFormItem
-                              label="是否收费"
-                              path="useProjectParamConfig.KLX.paymentType"
-                          >
-                              <NSelect
-                                  clearable
-                                  options={[
-                                    {
-                                      label: '是',
-                                      value: 1
-                                    },
-                                    {
-                                      label: '否',
-                                      value: 0
-                                    }
-                                  ]}
+                                  <NSelect
+                                      clearable
+                                      options={getSelectDataFromObj(musicSheetPaymentType)}
+                                  >
+                                  </NSelect>
+                              </NFormItem>
+                              <NFormItem
+                                  label="排序值"
+                                  path="useProjectParamConfig.GYM.sortNo"
+                              >
+                                  <NInputNumber
+                                      v-model:value={forms.useProjectParamConfig.GYM.sortNo}
+                                      placeholder="请输入排序值"
+                                      clearable
+                                      min={0}
+                                      max={9999}
+                                      style={{width: '100%'}}
+                                  />
+                              </NFormItem>
+                          </div>
+                      }
+                      {item === 'GYT' &&
+                          <div>
+                              <NFormItem
+                                  label="分类"
+                                  path="useProjectParamConfig.GYT.musicSheetCategoryId"
+                              >
+                                  <NCascader
+                                      valueField="id"
+                                      labelField="name"
+                                      children-field="children"
+                                      placeholder="请选择分类"
+                                      v-model:value={forms.useProjectParamConfig.GYT.musicSheetCategoryId}
+                                      options={state.musicSheetCategoryOptions.GYT}
+                                      clearable
+                                  />
+                              </NFormItem>
+                              <NFormItem
+                                  label="排序值"
+                                  path="useProjectParamConfig.GYT.sortNo"
+                              >
+                                  <NInputNumber
+                                      v-model:value={forms.useProjectParamConfig.GYT.sortNo}
+                                      placeholder="请输入排序值"
+                                      clearable
+                                      min={0}
+                                      max={9999}
+                                      style={{width: '100%'}}
+                                  />
+                              </NFormItem>
+                          </div>
+                      }
+                      {item === 'KLX' &&
+                          <div>
+                              <NFormItem
+                                  label="可用途径"
+                                  path="musicSheetType"
+                              >
+                                  <NSelect
+                                      clearable
+                                      options={getSelectDataFromObj(musicSheetAvailableType)}
+                                  >
+                                  </NSelect>
+                              </NFormItem>
+                              <NFormItem
+                                  label="曲目标签"
+                                  path="musicSheetType"
+                              >
+                                  <NSelect>
+                                  </NSelect>
+                              </NFormItem>
+                              <NFormItem
+                                  label="是否收费"
+                                  path="useProjectParamConfig.KLX.paymentType"
                               >
-                              </NSelect>
-                          </NFormItem>
-                          <NFormItem
-                              label="曲目价格"
-                              path="useProjectParamConfig.KLX.musicPrice"
-                          >
-                              <NInputNumber style={"width:100%"}>
+                                  <NSelect
+                                      clearable
+                                      options={[
+                                        {
+                                          label: '是',
+                                          value: 1
+                                        },
+                                        {
+                                          label: '否',
+                                          value: 0
+                                        }
+                                      ]}
+                                  >
+                                  </NSelect>
+                              </NFormItem>
+                              <NFormItem
+                                  label="曲目价格"
+                                  path="useProjectParamConfig.KLX.musicPrice"
+                              >
+                                  <NInputNumber style={"width:100%"}>
 
-                              </NInputNumber>
-                          </NFormItem>
-                          <NFormItem
-                              label="是否置顶"
-                              path="musicSheetType"
-                          >
-                              <NSelect
-                                  clearable
-                                  options={[
-                                    {
-                                      label: '是',
-                                      value: 1
-                                    },
-                                    {
-                                      label: '否',
-                                      value: 0
-                                    }
-                                  ]}
+                                  </NInputNumber>
+                              </NFormItem>
+                              <NFormItem
+                                  label="是否置顶"
+                                  path="musicSheetType"
                               >
-                              </NSelect>
-                          </NFormItem>
-                          <NFormItem
-                              label="精品乐谱"
-                              path="useProjectParamConfig.KLX.exquisiteFlag"
-                          >
-                              <NSelect
-                                  clearable
-                                  options={[
-                                    {
-                                      label: '是',
-                                      value: 1
-                                    },
+                                  <NSelect
+                                      clearable
+                                      options={[
+                                        {
+                                          label: '是',
+                                          value: 1
+                                        },
+                                        {
+                                          label: '否',
+                                          value: 0
+                                        }
+                                      ]}
+                                  >
+                                  </NSelect>
+                              </NFormItem>
+                              <NFormItem
+                                  label="精品乐谱"
+                                  path="useProjectParamConfig.KLX.exquisiteFlag"
+                              >
+                                  <NSelect
+                                      clearable
+                                      options={[
+                                        {
+                                          label: '是',
+                                          value: 1
+                                        },
+                                        {
+                                          label: '否',
+                                          value: 0
+                                        }
+                                      ]}
+                                  >
+                                  </NSelect>
+                              </NFormItem>
+                              <NFormItem
+                                  label="排序值"
+                                  path="useProjectParamConfig.KLX.sortNo"
+                              >
+                                  <NInputNumber
+                                      v-model:value={forms.useProjectParamConfig.KLX.sortNo}
+                                      placeholder="请输入排序值"
+                                      clearable
+                                      min={0}
+                                      max={9999}
+                                      style={{width: '100%'}}
+                                  />
+                              </NFormItem>
+                          </div>
+                      }
+                      {item === 'KT' &&
+                          <div>
+                              <NFormItem
+                                  label="曲目分类"
+                                  path="useProjectParamConfig.KT.musicSheetCategoryId"
+                                  rule={[
                                     {
-                                      label: '否',
-                                      value: 0
+                                      required: state.ktFieldRequired,
+                                      message: '请选择曲目分类'
                                     }
                                   ]}
                               >
-                              </NSelect>
-                          </NFormItem>
-                          <NFormItem
-                              label="排序值"
-                              path="useProjectParamConfig.KLX.sortNo"
-                          >
-                              <NInputNumber
-                                  v-model:value={forms.useProjectParamConfig.KLX.sortNo}
-                                  placeholder="请输入排序值"
-                                  clearable
-                                  min={0}
-                                  max={9999}
-                                  style={{width: '100%'}}
-                              />
-                          </NFormItem>
-                      </NTabPane>
-                  }
-                  {state.selectAppKey.includes('KT') &&
-                      <NTabPane
-                          tab={appKey.KT}
-                          name='KT'
-                      >
-                          <NFormItem
-                              label="曲目分类"
-                              path="useProjectParamConfig.KT.musicSheetCategoryId"
-                              rule={[
-                                {
-                                  required: state.ktFieldRequired,
-                                  message: '请选择曲目分类'
-                                }
-                              ]}
-                          >
-                              <NCascader
-                                  valueField="id"
-                                  labelField="name"
-                                  children-field="children"
-                                  placeholder="请选择分类"
-                                  v-model:value={forms.useProjectParamConfig.KT.musicSheetCategoryId}
-                                  options={state.musicSheetCategoryOptions.KT}
-                                  clearable
-                              />
-                          </NFormItem>
-                          <NFormItem
-                              label="排序值"
-                              path="useProjectParamConfig.KT.sortNo"
-                          >
-                              <NInputNumber
-                                  v-model:value={forms.useProjectParamConfig.KT.sortNo}
-                                  placeholder="请输入排序值"
-                                  clearable
-                                  min={0}
-                                  max={9999}
-                                  style={{width: '100%'}}
-                              />
-                          </NFormItem>
-                      </NTabPane>
-                  }
+                                  <NCascader
+                                      valueField="id"
+                                      labelField="name"
+                                      children-field="children"
+                                      placeholder="请选择分类"
+                                      v-model:value={forms.useProjectParamConfig.KT.musicSheetCategoryId}
+                                      options={state.musicSheetCategoryOptions.KT}
+                                      clearable
+                                  />
+                              </NFormItem>
+                              <NFormItem
+                                  label="排序值"
+                                  path="useProjectParamConfig.KT.sortNo"
+                              >
+                                  <NInputNumber
+                                      v-model:value={forms.useProjectParamConfig.KT.sortNo}
+                                      placeholder="请输入排序值"
+                                      clearable
+                                      min={0}
+                                      max={9999}
+                                      style={{width: '100%'}}
+                                  />
+                              </NFormItem>
+                          </div>
+                      }
+                    </NTabPane>
+                  })}
                 </NTabs>
             )}
           </NForm>