|
@@ -17,6 +17,18 @@
|
|
|
:disabled="disabledJoinType(item.joinType)" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="付费类型:" prop="payType">
|
|
|
+ <el-select v-model="form.payType" placeholder="请选择付费类型">
|
|
|
+ <el-option v-for="item in payTypeOptions.slice(0, 2)" :key="item.value" :value="item.value"
|
|
|
+ :label="item.label" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="form.payType === 2" label="原价:" prop="price">
|
|
|
+ <el-input-number v-model="form.price" placeholder="请输入原价" :min="1" :precision="2" :controls="false" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="form.payType === 2" label="折扣价" prop="discount">
|
|
|
+ <el-input-number v-model="form.discount" placeholder="请输入折扣价" :min="0" :precision="2" :controls="false" />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="歌单封面:" prop="coverUrl">
|
|
|
<Upload listType="picture-card" :url="form.coverUrl" @upload="upload($event, 'coverUrl')" :disabled="disabled" />
|
|
|
</el-form-item>
|
|
@@ -26,7 +38,7 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="歌曲列表:" style="width: 100%;">
|
|
|
<el-button type="primary" icon="el-icon-plus" @click="getDialog">添加歌曲</el-button>
|
|
|
- <el-table class="table" :data="form.programList" height="329px" v-loading="form_loading">
|
|
|
+ <el-table class="table" :data="form.programList">
|
|
|
<el-table-column label="ID" prop="id" align="center" />
|
|
|
<el-table-column label="歌曲名称" prop="name" align="center" show-overflow-tooltip />
|
|
|
<el-table-column label="歌手名称" prop="singerName" align="center" show-overflow-tooltip />
|
|
@@ -67,7 +79,7 @@
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<el-table :data="tableData" v-loading="loading">
|
|
|
- <el-table-column label="ID" prop="id" align="center" />
|
|
|
+ <el-table-column label="歌曲Id" prop="id" align="center" show-overflow-tooltip />
|
|
|
<el-table-column label="歌曲名称" prop="name" align="center" show-overflow-tooltip />
|
|
|
<el-table-column label="歌手名称" prop="singerName" align="center" show-overflow-tooltip />
|
|
|
<el-table-column label="播放时长" prop="playTime" align="center" />
|
|
@@ -88,17 +100,35 @@
|
|
|
<script>
|
|
|
import { submit, detail } from '@/api/music/menu'
|
|
|
import { list } from '@/api/music/list'
|
|
|
-import { platformMixin, onOrOffMixin } from '@/mixin/index'
|
|
|
+import { platformMixin, onOrOffMixin, payTypeMixin } from '@/mixin/index'
|
|
|
import Audio from '@/components/Audio/index.vue'
|
|
|
export default {
|
|
|
- mixins: [platformMixin, onOrOffMixin],
|
|
|
+ mixins: [platformMixin, onOrOffMixin, payTypeMixin],
|
|
|
components: {
|
|
|
Audio
|
|
|
},
|
|
|
data() {
|
|
|
+ // 判断原价是否大于折扣价
|
|
|
+ var checkPrice = (rule, value, callback) => {
|
|
|
+ if (!value) {
|
|
|
+ callback(new Error('请输入原价'))
|
|
|
+ } else {
|
|
|
+ if (this.form.discount && value <= this.form.discount) {
|
|
|
+ callback(new Error('原价必须大于折扣价'))
|
|
|
+ }
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 判断折扣价是否小于原价
|
|
|
+ var checkDiscount = (rule, value, callback) => {
|
|
|
+ if (this.form.price && value >= this.form.price) {
|
|
|
+ callback(new Error('折扣价必须小于原价'))
|
|
|
+ } else {
|
|
|
+ callback()
|
|
|
+ }
|
|
|
+ }
|
|
|
return {
|
|
|
// 遮罩层
|
|
|
- form_loading: false,
|
|
|
loading: false,
|
|
|
// 表单
|
|
|
form: {
|
|
@@ -120,6 +150,15 @@ export default {
|
|
|
platformId: [{
|
|
|
required: true, message: '请选择资源平台', trigger: 'change'
|
|
|
}],
|
|
|
+ payType: [{
|
|
|
+ required: true, message: '请选择付费类型', trigger: 'change'
|
|
|
+ }],
|
|
|
+ price: [{
|
|
|
+ required: true, validator: checkPrice, trigger: 'blur'
|
|
|
+ }],
|
|
|
+ discount: [{
|
|
|
+ validator: checkDiscount, trigger: 'blur'
|
|
|
+ }],
|
|
|
coverUrl: [{
|
|
|
required: true, message: '请上传歌单封面', trigger: 'change'
|
|
|
}],
|
|
@@ -160,12 +199,10 @@ export default {
|
|
|
methods: {
|
|
|
// 详情
|
|
|
getDetail() {
|
|
|
- this.form_loading = true
|
|
|
detail(this.form.id).then(res => {
|
|
|
if (res.code === 0) {
|
|
|
this.form = res.data
|
|
|
this.form.programList = res.data.programList === null ? [] : res.data.programList
|
|
|
- this.form_loading = false
|
|
|
}
|
|
|
})
|
|
|
},
|
|
@@ -237,16 +274,10 @@ export default {
|
|
|
arr.push(i.id)
|
|
|
})
|
|
|
this.form.programList = arr
|
|
|
- this.form_loading = true
|
|
|
- let title = this.form.id ? '编辑成功!' : '新增成功!'
|
|
|
submit(this.form).then(res => {
|
|
|
if (res.code === 0) {
|
|
|
- this.$message.success(`${title}`)
|
|
|
- if (this.form.id) {
|
|
|
- this.getDetail()
|
|
|
- } else {
|
|
|
- this.cancel()
|
|
|
- }
|
|
|
+ this.$message.success(`提交成功!`)
|
|
|
+ this.cancel()
|
|
|
}
|
|
|
})
|
|
|
} else {
|