DESKTOP-SVI9JE1\muzen 1 год назад
Родитель
Сommit
9ede95f281

+ 2 - 2
package.json

@@ -1,8 +1,8 @@
 {
   "name": "ruoyi",
   "version": "3.8.1",
-  "description": "若依管理系统",
-  "author": "若依",
+  "description": "ohPlay管理系统",
+  "author": "猫王",
   "license": "MIT",
   "scripts": {
     "dev": "vue-cli-service serve --host 0.0.0.0",

+ 24 - 16
src/components/Dialog/index.vue

@@ -27,30 +27,35 @@
       </el-form-item>
     </el-form>
     <el-table :data="tableData" ref="tableData" :row-key="getRowKey" @selection-change="getChange" v-loading="loading">
-      <el-table-column type="selection" align="center" :reserve-selection="true" />
-      <el-table-column label="音频ID" prop="audioId" align="center" show-overflow-tooltip />
-      <el-table-column label="音频名称" prop="audioName" align="center" show-overflow-tooltip />
-      <el-table-column label="音频封面" align="center" width="100px">
+      <el-table-column v-if="!isOnly" type="selection" align="center" key="selection" :reserve-selection="true" />
+      <el-table-column label="音频ID" prop="audioId" align="center" key="audioId" show-overflow-tooltip />
+      <el-table-column label="音频名称" prop="audioName" align="center" key="audioName" show-overflow-tooltip />
+      <el-table-column label="音频封面" align="center" key="audioPic" width="100px">
         <template slot-scope="scope">
           <el-image v-if="scope.row.audioPic" :src="scope.row.audioPic" />
         </template>
       </el-table-column>
-      <el-table-column label="音频作者" align="center" show-overflow-tooltip>
+      <el-table-column label="音频作者" align="center" key="singerName" show-overflow-tooltip>
         <template slot-scope="scope">
           <span>
             {{ scope.row.singerName ? scope.row.singerName : '-' }}
           </span>
         </template>
       </el-table-column>
-      <el-table-column label="专辑名称" prop="songName" align="center" show-overflow-tooltip>
+      <el-table-column label="专辑名称" prop="songName" align="center" key="songName" show-overflow-tooltip>
         <template slot-scope="scope">
           <span>
             {{ scope.row.songName ? scope.row.songName : '-' }}
           </span>
         </template>
       </el-table-column>
-      <el-table-column label="付费类型" prop="isFree" align="center" :formatter="freeFormatter" />
-      <el-table-column label="资源平台" align="center" :formatter="platfromFormatter" />
+      <el-table-column label="付费类型" prop="isFree" align="center" key="isFree" :formatter="freeFormatter" />
+      <el-table-column label="资源平台" align="center" key="platformId" :formatter="platfromFormatter" />
+      <el-table-column v-if="isOnly" label="操作" width="50px">
+        <template slot-scope="scope">
+          <el-button type="text" @click="handleChoice(scope.row)">选择</el-button>
+        </template>
+      </el-table-column>
     </el-table>
     <div slot="footer">
       <pagination v-show="total > 0" :total="total" :page.sync="dialogForm.pageNum" :limit.sync="dialogForm.pageSize"
@@ -76,6 +81,11 @@ export default {
     data: {
       type: Array,
       default: () => []
+    },
+    // 是否单选
+    isOnly: {
+      type: Boolean,
+      default: false
     }
   },
   data() {
@@ -183,6 +193,11 @@ export default {
       }
     },
 
+    // 单选
+    handleChoice(row) {
+      this.$emit('handleChoice', row)
+    },
+
     // 字典翻译
     freeFormatter(row) {
       return this.selectDictLabel(this.freeOptions, row.isFree)
@@ -192,11 +207,4 @@ export default {
     },
   }
 }
-</script>
-
-<style lang="scss" scoped>
-::v-deep .el-dialog__body {
-  height: 610px;
-  overflow-y: scroll;
-}
-</style>
+</script>

+ 33 - 2
src/views/music/program/detail.vue

@@ -14,6 +14,9 @@
             :disabled="disabledJoinType(item.joinType)" />
         </el-select>
       </el-form-item>
+      <el-form-item label="是否广播:">
+        <el-switch v-model="form.isBroadcast" :active-value="0" :inactive-value="1" />
+      </el-form-item>
       <el-form-item label="付费类型:" prop="isFree">
         <el-select v-model="form.isFree" placeholder="请选择付费类型">
           <el-option v-for="item in freeOptions" :key="item.value" :value="item.value" :label="item.label" />
@@ -23,12 +26,13 @@
         <el-input-number v-model="form.price" placeholder="请输入原价" :min="1" :precision="2" :controls="false" />
       </el-form-item>
       <el-form-item v-if="form.isFree === 0" label="折扣价:" prop="discountedPrice">
-        <el-input-number v-model="form.discountedPrice" placeholder="请输入折扣价" :min="0" :precision="2" :controls="false" />
+        <el-input-number v-model="form.discountedPrice" placeholder="请输入折扣价" :min="0" :precision="2"
+          :controls="false" />
       </el-form-item>
       <el-form-item label="节目封面:" prop="cover">
         <Upload listType="picture-card" :url="form.cover" @upload="upload($event, 'cover')" :disabled="disabled" />
       </el-form-item>
-      <el-form-item label="音频文件:" prop="realName">
+      <el-form-item v-if="form.isBroadcast === 1" label="音频文件:" prop="realName">
         <el-input v-model="form.realName" readonly>
           <template slot="suffix">
             <Upload listType="audio" :size="100" @upload="upload($event, 'fullUrl')" />
@@ -36,19 +40,27 @@
         </el-input>
         <div style="color:#909399">单个上传音频文件不超过100MB</div>
       </el-form-item>
+      <el-form-item v-else label="内容:">
+        <el-input v-model="form.broadcastName" placeholder="请选择内容" @focus="getDialog" />
+      </el-form-item>
     </el-form>
     <div class="form-btn">
       <el-button @click="cancel">取消</el-button>
       <el-button v-if="!disabled" type="primary" @click="getSubmit">提交</el-button>
     </div>
+
+    <!-- 弹窗 -->
+    <Dialog :visible="dialogVisible" :channelType="2" @handleChoice="handleChoice" @close="close" isOnly />
   </div>
 </template>
 
 <script>
 import { submit, detail } from '@/api/music/program'
 import { platformMixin, isFreeMixin } from '@/mixin/index'
+import Dialog from '@/components/Dialog';
 export default {
   mixins: [platformMixin, isFreeMixin],
+  components: { Dialog },
   data() {
     // 判断原价是否大于折扣价
     var checkPrice = (rule, value, callback) => {
@@ -99,6 +111,8 @@ export default {
           required: true, message: '请上传音频文件', trigger: 'blur, change'
         }]
       },
+      // 弹窗
+      dialogVisible: false,
       // 只读
       disabled: false
     };
@@ -135,6 +149,23 @@ export default {
       }
     },
 
+    // 弹窗
+    getDialog() {
+      this.dialogVisible = true
+    },
+
+    // 选择
+    handleChoice(e) {
+      this.form.broadcastId = e.audioId
+      this.form.broadcastName = e.audioName
+      this.dialogVisible = false
+      this.$message.success('选择成功!')
+    },
+
+    close() {
+      this.dialogVisible = false
+    },
+
     // 确定
     getSubmit() {
       this.$refs.form.validate((valid) => {

+ 1 - 1
src/views/register.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="register">
     <el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form">
-      <h3 class="title">若依后台管理系统</h3>
+      <h3 class="title">Ohplay管理系统</h3>
       <el-form-item prop="username">
         <el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号">
           <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" />

+ 1 - 2
src/views/service/platform/index.vue

@@ -63,8 +63,7 @@
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-table :data="dialogData" ref="dialogData" :row-key="rowKey" @selection-change="selectionChange"
-            height="497">
+          <el-table :data="dialogData" ref="dialogData" :row-key="rowKey" @selection-change="selectionChange">
             <el-table-column type="selection" align="center" />
             <el-table-column label="购买套餐" prop="name" align="center" />
             <el-table-column label="收货地址" prop="receiveAddress" align="center" />