Преглед на файлове

运营管理 推荐管理 内容管理列表修改音频对应平台关系

DESKTOP-O04BTUJ\muzen преди 2 години
родител
ревизия
e3f05a05cf
променени са 1 файла, в които са добавени 37 реда и са изтрити 41 реда
  1. 37 41
      src/views/operation/recommend/index.vue

+ 37 - 41
src/views/operation/recommend/index.vue

@@ -119,16 +119,16 @@
     <!-- 弹窗 -->
     <el-dialog :visible.sync="dialogVisible" title="添加内容" width="1000px">
       <el-form inline size="mini">
-        <el-form-item label="平台:">
-          <el-select v-model="form.platformId" placeholder="请选择平台">
-            <el-option v-for="item in dict.type.platform_type" :key="item.value" :label="item.label"
-              :value="Number(item.value)" />
-          </el-select>
-        </el-form-item>
         <el-form-item label="音频类型:">
           <el-select v-model="form.audioType" placeholder="请选择类型" :disabled="disabled">
-            <el-option v-for="item in audioTypeOptions" :key="item.value" :label="item.label"
-              :value="Number(item.value)" />
+            <el-option v-for="item in audioOptions" :key="item.value" :label="item.label"
+              :value="item.value" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="资源平台:">
+          <el-select v-model="form.platformId" placeholder="请选择平台">
+            <el-option v-for="item in platformOptions" :key="item.value" :label="item.label"
+              :value="item.value" />
           </el-select>
         </el-form-item>
         <el-form-item label="内容:">
@@ -152,10 +152,11 @@
         <el-table-column label="音频类型" prop="audioType" align="center" :formatter="audioFormatter" />
         <el-table-column label="音频数量" prop="programCount" align="center" />
         <el-table-column label="付费类型" align="center" :formatter="freeFormatter" width="100px" />
+        <el-table-column label="当前状态" align="center" :formatter="listStatusFormatter" />
         <el-table-column label="操作" align="center">
           <template slot-scope="scope">
             <el-button v-if="tabIndex === 2 && active === 1 ? false : true" type="text"
-              @click="getSelect(scope.row)">
+              @click="getSelect(scope.row)" :disabled="scope.row.status === 2">
               选择
             </el-button>
           </template>
@@ -182,7 +183,7 @@ import {
   upOrDown
 } from '@/api/operation/recommend'
 import Upload from '@/components/Upload/index'
-import { isFreeMixin } from '@/mixin/index'
+import { isFreeMixin, audioMixin, platformMixin, onOrOffMixin } from '@/mixin/index'
 
 export default {
   dicts: [
@@ -190,7 +191,7 @@ export default {
     'is_custom',
     'content_model'
   ],
-  mixins: [isFreeMixin],
+  mixins: [isFreeMixin, audioMixin, platformMixin, onOrOffMixin],
   components: {
     Upload
   },
@@ -292,10 +293,9 @@ export default {
       // 弹窗
       dialogVisible: false,
       form: {
-        audioType: 2,
-        platformId: 1,
         pageNum: 1,
-        pageSize: 10
+        pageSize: 10,
+        audioType: null
       },
       total: 0,
       index: 0,
@@ -329,32 +329,27 @@ export default {
       }, {
         value: 6,
         label: 'H5外链'
-      }],
-      // 音频类型
-      audioTypeOptions: [{
-        value: 2,
-        label: '广播'
-      }, {
-        value: 6,
-        label: '节目'
-      }, {
-        value: 8,
-        label: '专辑'
-      }, {
-        value: 9,
-        label: '歌手'
-      }, {
-        value: 10,
-        label: '歌单'
-      }, {
-        value: 11,
-        label: '歌曲'
-      }, {
-        value: 12,
-        label: '主播'
       }]
     }
   },
+  watch: {
+    'form.audioType': {
+      handler(val) {
+        this.$nextTick(() => {
+          this.getPlatform(val)
+        })
+        this.form.platformId = this.platformOptions[0].value
+        this.getContentList()
+      },
+      deep: true
+    },
+    'form.platformId': {
+      handler() {
+        this.getContentList()
+      },
+      deep: true
+    }
+  },
   mounted() {
     this.getTab()
   },
@@ -458,9 +453,7 @@ export default {
     getDialog(index) {
       this.dialogVisible = true
       this.index = index
-      if (this.list[index].forwardType !== null) {
-        this.form.audioType = this.typeOptions.find(i => i.value === this.list[index].forwardType).type
-      }
+      this.form.audioType = this.list[index].forwardType !== null ? this.typeOptions.find(i => i.value === this.list[index].forwardType).type : 2
       this.disabled = this.tabIndex == 2 && this.active === 1 || this.list[index].forwardType !== null ? true : false
       this.getContentList()
     },
@@ -564,7 +557,7 @@ export default {
 
     // 字典翻译
     audioFormatter(row) {
-      return this.selectDictLabel(this.audioTypeOptions, row.audioType)
+      return this.selectDictLabel(this.audioOptions, row.audioType)
     },
     freeFormatter(row) {
       return this.selectDictLabel(this.freeOptions, row.isFree)
@@ -572,6 +565,9 @@ export default {
     statusFormatter(row) {
       return row.status === 0 ? '上架' : '下架'
     },
+    listStatusFormatter(row) {
+      return row.status ? this.selectDictLabel(this.onOrOffOptions, row.status) : '上架'
+    },
 
     // v-if判断
     // 标题模块