Browse Source

酷乐秀是否收费支持多选

yuanliang 1 year ago
parent
commit
d1f667d7ba

+ 25 - 21
src/views/music-library/music-sheet/modal/use-project.tsx

@@ -535,32 +535,36 @@ export default defineComponent({
                               const free = 'FREE'
                               if(forms.useProjectParamConfig.KLX.paymentType[forms.useProjectParamConfig.KLX.paymentType.length - 1] == free) {
                                 forms.useProjectParamConfig.KLX.paymentType = [free]
-                                return
-                              }
-                              if (forms.useProjectParamConfig.KLX.paymentType.length > 1 && forms.useProjectParamConfig.KLX.paymentType.includes(free)) {
+                              } else if (forms.useProjectParamConfig.KLX.paymentType.length > 1 && forms.useProjectParamConfig.KLX.paymentType.includes(free)) {
                                 forms.useProjectParamConfig.KLX.paymentType.splice(forms.useProjectParamConfig.KLX.paymentType.indexOf(free), 1)
                               }
+                              if (!forms.useProjectParamConfig.KLX.paymentType.includes('CHARGE')) {
+                                forms.useProjectParamConfig.KLX.musicPrice = 0
+                              }
                             }}
                           ></NSelect>
                         </NFormItem>
-                        <NFormItem
-                          label="曲目价格"
-                          path="useProjectParamConfig.KLX.musicPrice"
-                          rule={[
-                            {
-                              required: klxFileRequire.value,
-                              message: '请输入曲目价格',
-                              trigger:['input','blur'],
-                              type:'number'
-                            }
-                          ]}
-                        >
-                          <NInputNumber
-                            style={'width:100%'}
-                            placeholder="请输入曲目价格"
-                            v-model:value={forms.useProjectParamConfig.KLX.musicPrice}
-                          />
-                        </NFormItem>
+                        {forms.useProjectParamConfig.KLX.paymentType?.includes('CHARGE') && (
+                            <NFormItem
+                                label="曲目价格"
+                                path="useProjectParamConfig.KLX.musicPrice"
+                                rule={[
+                                  {
+                                    required: klxFileRequire.value,
+                                    message: '请输入曲目价格',
+                                    trigger: ['input', 'blur'],
+                                    type: 'number'
+                                  }
+                                ]}
+                            >
+                              <NInputNumber
+                                  style={'width:100%'}
+                                  placeholder="请输入曲目价格"
+                                  v-model:value={forms.useProjectParamConfig.KLX.musicPrice}
+                              />
+                            </NFormItem>
+                        )
+                        }
                         <NFormItem
                           label="是否置顶"
                           path="useProjectParamConfig.KLX.topFlag"

+ 18 - 6
src/views/music-library/project-music-sheet/module/klx/addMusic.tsx

@@ -375,6 +375,10 @@ export default defineComponent({
                       for (let i = 0; i < state.selectRowData.length; i++) {
                         const item = state.selectRowData[i]
                         item.paymentType = state.globalPaymentType
+                        if (!state.globalPaymentType.includes("CHARGE")) {
+                          item.musicPrice = 0
+                          item.musicPriceDisable = true
+                        }
                       }
                     }
                   })
@@ -406,13 +410,14 @@ export default defineComponent({
               onUpdate:value={(value) => {
                 row.paymentType = value
                 const free = 'FREE'
-                if(row.paymentType[row.paymentType.length - 1] == free) {
+                if (row.paymentType[row.paymentType.length - 1] == free) {
                   row.paymentType = [free]
-                  return
-                }
-                if (row.paymentType.length > 1 && row.paymentType.includes(free)) {
+                } else if (row.paymentType.length > 1 && row.paymentType.includes(free)) {
                   row.paymentType.splice(row.paymentType.indexOf(free), 1)
                 }
+                if (!row.paymentType.includes("CHARGE")) {
+                  row.musicPrice = 0
+                }
               }}
             />
           )
@@ -455,7 +460,9 @@ export default defineComponent({
                       if (state.globalMusicPrice) {
                         for (let i = 0; i < state.selectRowData.length; i++) {
                           const item = state.selectRowData[i]
-                          item.musicPrice = state.globalMusicPrice
+                          if (item.paymentType.includes("CHARGE")) { // 只修改包含单曲收费,则价格为0
+                            item.musicPrice = state.globalMusicPrice
+                          }
                         }
                       }
                     }
@@ -481,6 +488,7 @@ export default defineComponent({
             value: row.musicPrice,
             min: 0,
             max: 9999,
+            disabled: !row.paymentType?.includes('CHARGE'),
             onUpdateValue(value: any) {
               row['musicPrice'] = value
             }
@@ -865,7 +873,11 @@ export default defineComponent({
             return row.id === next.id
           })
           if (!find) {
-            state.selectRowData.push(next)
+            state.selectRowData.push({
+              ...next,
+              paymentType: [] as any,
+              musicPriceDisable: false // 默认可以编辑曲目价格
+            })
           }
         }
       })

+ 12 - 1
src/views/music-library/project-music-sheet/module/klx/music-sheet-klx.tsx

@@ -226,6 +226,17 @@ export default defineComponent({
       })
     }
 
+    const getPaymentType = (paymentType: any) => {
+      const paymentTypeName = []
+      if (paymentType && paymentType.length > 0) {
+        for (let i = 0; i < paymentType.length; i++) {
+          const name = getMapValueByKey(paymentType[i], new Map(Object.entries(musicSheetPaymentType)))
+          paymentTypeName.push(name)
+        }
+      }
+      return paymentTypeName.join(',');
+    }
+
     const columns = (): any => {
       return [
         {
@@ -332,7 +343,7 @@ export default defineComponent({
           render: (row: any) => {
             return (
               <div>
-                {getMapValueByKey(row.paymentType, new Map(Object.entries(musicSheetPaymentType)))}
+                {getPaymentType(row.paymentType?.split(','))}
               </div>
             )
           }

+ 25 - 22
src/views/music-library/project-music-sheet/module/klx/updateMusic.tsx

@@ -27,7 +27,7 @@ export default defineComponent({
     const forms = reactive({
       musicTagIds: [] as any,
       sortNo: null as any,
-      paymentType: null as any,
+      paymentType: [] as any,
       musicPrice: null as any,
       availableType: null as any,
       topFlag: null as any,
@@ -127,35 +127,38 @@ export default defineComponent({
                     multiple
                     onUpdate:value={() => {
                       const free = 'FREE'
-                      if(forms.paymentType[forms.paymentType.length - 1] == free) {
+                      if (forms.paymentType[forms.paymentType.length - 1] == free) {
                         forms.paymentType = [free]
-                        return
-                      }
-                      if (forms.paymentType.length > 1 && forms.paymentType.includes(free)) {
+                      } else if (forms.paymentType.length > 1 && forms.paymentType.includes(free)) {
                         forms.paymentType.splice(forms.paymentType.indexOf(free), 1)
                       }
+                      if (!forms.paymentType.includes("CHARGE")) {
+                        forms.musicPrice = 0
+                      }
                     }}
                     clearable
                 />
               </NFormItem>
 
-              <NFormItem
-                  label="曲目价格"
-                  path="musicPrice"
-                  rule={[
-                    {
-                      required: true,
-                      message: '请输入曲目价格'
-                    }
-                  ]}
-              >
-                <NInputNumber
-                    style={'width:100%'}
-                    placeholder="请输入曲目价格"
-                    v-model:value={forms.musicPrice}
-                    clearable
-                />
-              </NFormItem>
+              {forms.paymentType.includes('CHARGE') && (
+                  <NFormItem
+                      label="曲目价格"
+                      path="musicPrice"
+                      rule={[
+                        {
+                          required: true,
+                          message: '请输入曲目价格'
+                        }
+                      ]}
+                  >
+                    <NInputNumber
+                        style={'width:100%'}
+                        placeholder="请输入曲目价格"
+                        v-model:value={forms.musicPrice}
+                        clearable
+                    />
+                  </NFormItem>
+              )}
               <NFormItem
                   label="可用途径"
                   path="availableType"