detail.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="form" label-width="110px">
  4. <el-form-item label="Banner位置:">
  5. <el-select v-model="form.type" placeholder="请选择Banner位置">
  6. <el-option v-for="item in locationOptions" :key="item.value" :label="item.label"
  7. :value="Number(item.value)" />
  8. </el-select>
  9. </el-form-item>
  10. <el-form-item label="Banner名称:">
  11. <el-input v-model="form.name" placeholder="请输入Banner名称" />
  12. </el-form-item>
  13. <el-form-item label="展示顺序:">
  14. <el-input-number v-model="form.sort" :min="1" />
  15. </el-form-item>
  16. <el-form-item label="跳转地址:">
  17. <el-radio-group v-model="form.forwardType">
  18. <el-radio :label="0">内部</el-radio>
  19. <el-radio :label="1">外部</el-radio>
  20. </el-radio-group>
  21. <el-select v-model="form.forwardLocation" v-if="form.forwardType === 0" placeholder="请选择跳转位置"
  22. style="margin: 15px 0 20px 0">
  23. <el-option v-for="item in addressOptions" :key="item.value" :label="item.label"
  24. :value="Number(item.value)" />
  25. </el-select>
  26. <el-input v-model="form.forwardUrl" placeholder="请输入跳转链接地址"></el-input>
  27. </el-form-item>
  28. <el-form-item label="时间:">
  29. <el-date-picker v-model="date" type="datetimerange" start-placeholder="开始时间" end-placeholder="结束时间"
  30. value-format="yyyy-MM-dd HH:mm:ss" />
  31. </el-form-item>
  32. <el-form-item label="图片上传:">
  33. <Upload listType="picture-card" :url="form.pic" @upload="getUpload" />
  34. </el-form-item>
  35. </el-form>
  36. <div class="form-btn">
  37. <el-button @click="cancel">取消</el-button>
  38. <el-button type="primary" @click="getSubmit">提交</el-button>
  39. </div>
  40. </div>
  41. </template>
  42. <script>
  43. import Upload from '@/components/Upload/index'
  44. import { submit, detail, edit } from '@/api/content/banner'
  45. export default {
  46. components: {
  47. Upload
  48. },
  49. data() {
  50. return {
  51. date: '',
  52. form: {
  53. sort: 1,
  54. forwardType: 0
  55. },
  56. // 展示位置
  57. locationOptions: [{
  58. value: 1,
  59. label: '首页-推荐'
  60. }, {
  61. value: 2,
  62. label: '电台-首页'
  63. }, {
  64. value: 3,
  65. label: '音乐-首页'
  66. }, {
  67. value: 5,
  68. label: '喵舍-推荐'
  69. }, {
  70. value: 4,
  71. label: '服务中心-音乐'
  72. }, {
  73. value: 6,
  74. label: '服务中心-流量'
  75. }, {
  76. value: 7,
  77. label: '服务中心-底部热门专辑'
  78. }],
  79. // 跳转地址
  80. addressOptions:[{
  81. value: 1,
  82. label: '服务中心'
  83. }, {
  84. value: 2,
  85. label: '喵舍'
  86. }, {
  87. value: 3,
  88. label: '签到'
  89. }]
  90. }
  91. },
  92. watch: {
  93. date(val) {
  94. this.form.startTime = val[0]
  95. this.form.endTime = val[1]
  96. }
  97. },
  98. mounted() {
  99. if (this.$route.query.id) {
  100. this.getList()
  101. }
  102. },
  103. methods: {
  104. // 详情
  105. getList() {
  106. detail({
  107. id: this.$route.query.id
  108. }).then(res => {
  109. if (res.code === 0) {
  110. this.form = res.data
  111. this.date = [res.data.startTime, res.data.endTime]
  112. }
  113. })
  114. },
  115. // 上传
  116. getUpload(e) {
  117. this.form.pic = e.file
  118. },
  119. // 取消
  120. cancel() {
  121. this.$tab.closeOpenPage("/content/banner");
  122. },
  123. // 提交
  124. getSubmit() {
  125. if (this.$route.query.id) {
  126. edit(this.form).then(res => {
  127. if (res.code === 0) {
  128. this.$message.success('修改成功!')
  129. this.cancel()
  130. }
  131. })
  132. } else {
  133. submit(this.form).then(res => {
  134. if (res.code === 0) {
  135. this.$message.success('新增成功!')
  136. this.cancel()
  137. }
  138. })
  139. }
  140. }
  141. }
  142. }
  143. </script>
  144. <style lang="scss" scoped>
  145. .el-form {
  146. width: 500px;
  147. }
  148. .form-btn {
  149. margin-left: 110px;
  150. }
  151. </style>