index.vue 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <template>
  2. <div class="app-container">
  3. <el-button type="primary" icon="el-icon-plus" size="mini" @click="dialogVisible = true">新增</el-button>
  4. <!-- 列表 -->
  5. <el-table :data="tableData" row-key="id" :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
  6. <el-table-column width="80px" />
  7. <el-table-column label="排序" align="center" prop="sort"></el-table-column>
  8. <el-table-column label="导航名称" align="center" prop="tabName"></el-table-column>
  9. <el-table-column label="模板名称" align="center" prop="mouldName"></el-table-column>
  10. <el-table-column label="模板数量" align="center" prop="number"></el-table-column>
  11. <el-table-column label="创建时间" align="center" prop="createTime" show-overflow-tooltip />
  12. <el-table-column label="当前状态" align="center" prop="status"></el-table-column>
  13. <el-table-column label="生效时间" align="center" prop="time" show-overflow-tooltip />
  14. <el-table-column label="操作" align="center">
  15. <template slot-scope="scope">
  16. <el-button v-if="scope.row.type === 2" type="text" @click="getDetail">新增</el-button>
  17. <el-button v-if="scope.row.type === 1" type="text" @click="getDialog()">历史记录</el-button>
  18. <span v-else style="margin-left: 10px">
  19. <el-button type="text">查看</el-button>
  20. <el-button type="text" @click="getDetail">编辑</el-button>
  21. <el-button type="delete">删除</el-button>
  22. </span>
  23. </template>
  24. </el-table-column>
  25. </el-table>
  26. <!-- 弹窗 -->
  27. <el-dialog :visible.sync="dialogVisible" title="新增" width="500px">
  28. <el-form label-width="100px">
  29. <el-form-item label="导航名称:">
  30. <el-select v-model="dialogForm.tabName" placeholder="请选择导航">
  31. <el-option v-for="item in tabOptions" :key="item.value" :value="item.value" :label="item.label" />
  32. </el-select>
  33. </el-form-item>
  34. <el-form-item label="模板名称:">
  35. <el-input v-model="dialogForm.mouldName" placeholder="请输入模板名称" />
  36. </el-form-item>
  37. <el-form-item label="模板类型:">
  38. <el-select placeholder="请选择模板类型">
  39. <el-option v-for="item in typeOptions" :key="item.value" :value="item.value" :label="item.label" />
  40. </el-select>
  41. </el-form-item>
  42. <el-form-item label="排序:">
  43. <el-input-number v-model="dialogForm.id" />
  44. </el-form-item>
  45. </el-form>
  46. <div slot="footer">
  47. <el-button>取消</el-button>
  48. <el-button type="primary">确定</el-button>
  49. </div>
  50. </el-dialog>
  51. <!-- 历史记录 -->
  52. <el-dialog :visible.sync="dialogVisible_list" title="历史记录" width="1000px">
  53. <el-form inline size="mini">
  54. <el-form-item label="">
  55. <el-date-picker type="datetimerange" start-placeholder="开始日期" end-placeholder="结束日期"
  56. value-format="yyyy-MM-dd HH:mm:ss" />
  57. </el-form-item>
  58. <el-form-item label="模块名称:">
  59. <el-input placeholder="请输入模块名称" />
  60. </el-form-item>
  61. <el-form-item>
  62. <el-button type="primary" icon="el-icon-search">搜索</el-button>
  63. <el-button icon="el-icon-refresh">重置</el-button>
  64. </el-form-item>
  65. </el-form>
  66. <el-table>
  67. <el-table-column label="模块名称" align="center" />
  68. <el-table-column label="模块类型" align="center" />
  69. <el-table-column label="模块数量" align="center" />
  70. <el-table-column label="有效时间" align="center" />
  71. <el-table-column label="当前状态" align="center" />
  72. <el-table-column label="创建时间" align="center" />
  73. <el-table-column label="操作" align="center">
  74. <template>
  75. <el-button type="text">查看</el-button>
  76. </template>
  77. </el-table-column>
  78. </el-table>
  79. </el-dialog>
  80. </div>
  81. </template>
  82. <script>
  83. export default {
  84. data() {
  85. return {
  86. tableData: [{
  87. id: 1,
  88. tabName: '推荐',
  89. type: 1,
  90. children: [{
  91. id: 1.1,
  92. tabName: '推荐',
  93. mouldName: '场景电台',
  94. number: 1,
  95. type: 2,
  96. sort: 1,
  97. children: [{
  98. id: '1.1.1',
  99. tabName: '推荐',
  100. mouldName: '场景电台',
  101. createTime: '2023-04-09 00:00:00',
  102. time: '2023-04-10 00:00:00 至 2023-04-20 00:00:00',
  103. number: 4,
  104. type: 3,
  105. status: '生效中'
  106. }, {
  107. id: '1.1.2',
  108. tabName: '推荐',
  109. mouldName: '场景电台',
  110. createTime: '2023-04-09 00:00:00',
  111. time: '2023-04-21 00:00:00 至 2023-04-29 00:00:00',
  112. number: 4,
  113. type: 3,
  114. status: '未生效'
  115. }]
  116. }]
  117. }, {
  118. id: 2,
  119. tabName: '电台',
  120. type: 1,
  121. children: [{
  122. id: 2.1,
  123. tabName: '电台',
  124. mouldName: '四宫格',
  125. number: 1,
  126. type: 2,
  127. sort: 1,
  128. children: [{
  129. id: '2.1.1',
  130. tabName: '电台',
  131. mouldName: '四宫格',
  132. createTime: '2023-04-09 00:00:00',
  133. time: '2023-04-10 00:00:00 至 2023-04-20 00:00:00',
  134. number: 4,
  135. type: 3,
  136. status: '生效中'
  137. }, {
  138. id: '2.1.2',
  139. tabName: '电台',
  140. mouldName: '四宫格',
  141. createTime: '2023-04-09 00:00:00',
  142. time: '2023-04-21 00:00:00 至 2023-04-29 00:00:00',
  143. number: 4,
  144. type: 3,
  145. status: '未生效'
  146. }]
  147. }]
  148. }],
  149. // 弹窗
  150. dialogVisible: false,
  151. dialogVisible_list: false,
  152. // 弹窗表单
  153. dialogForm: {},
  154. dialogForm_list: {},
  155. // 导航栏
  156. tabOptions: [{
  157. value: 1,
  158. label: '推荐'
  159. }, {
  160. value: 2,
  161. label: '电台'
  162. }, {
  163. value: 3,
  164. label: 'QQ音乐'
  165. }, {
  166. value: 4,
  167. label: '酷狗音乐'
  168. }],
  169. // 模板类型
  170. typeOptions: [{
  171. value: 1,
  172. label: '轮播图'
  173. }, {
  174. value: 2,
  175. label: '轮播图(排序)'
  176. }, {
  177. value: 3,
  178. label: '场景模式'
  179. }, {
  180. value: 4,
  181. label: '个性推荐'
  182. }, {
  183. value: 5,
  184. label: '个性推荐(排序)'
  185. }, {
  186. value: 6,
  187. label: '歌单'
  188. }, {
  189. value: 7,
  190. label: '歌单(标题)'
  191. }, {
  192. value: 8,
  193. label: '歌单(排序)'
  194. }, {
  195. value: 9,
  196. label: '音乐随心听'
  197. }, {
  198. value: 10,
  199. label: '精选音乐电台'
  200. }]
  201. }
  202. },
  203. mounted() {
  204. },
  205. methods: {
  206. // 新增模板
  207. getDetail() {
  208. this.$router.push({
  209. path: `/operation/recommend/detail`
  210. })
  211. },
  212. // 历史记录
  213. getDialog() {
  214. this.dialogVisible_list = true
  215. }
  216. }
  217. }
  218. </script>
  219. <style lang="scss" scoped></style>