PostCard.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <template>
  2. <div>
  3. <el-row>
  4. <el-col :md="4">
  5. <el-menu
  6. default-active="1"
  7. class="el-menu-vertical-demo"
  8. >
  9. <el-menu-item index="1">
  10. <i class="el-icon-upload" />
  11. <span slot="title">投稿</span>
  12. </el-menu-item>
  13. <el-menu-item index="2">
  14. <i class="el-icon-files" />
  15. <span slot="title">稿件</span>
  16. </el-menu-item>
  17. <el-menu-item index="3">
  18. <i class="el-icon-data-analysis" />
  19. <span slot="title">数据</span>
  20. </el-menu-item>
  21. </el-menu>
  22. </el-col>
  23. <el-col :md="20">
  24. <el-tabs v-model="activeName" @tab-click="handleClick">
  25. <el-tab-pane label="视频" name="first">
  26. <publish-video v-if="activeName === 'first'" />
  27. </el-tab-pane>
  28. <el-tab-pane label="音频" name="second">
  29. <publish-audio v-if="activeName === 'second'" />
  30. </el-tab-pane>
  31. <el-tab-pane label="图片" name="third">
  32. <publish-image v-if="activeName === 'third'" />
  33. </el-tab-pane>
  34. <el-tab-pane label="文章" name="fourth">
  35. <publish-article v-if="activeName === 'fourth'" />
  36. </el-tab-pane>
  37. </el-tabs>
  38. </el-col>
  39. </el-row>
  40. </div>
  41. </template>
  42. <script>
  43. import PublishVideo from '@/components/upload/PublishVideo'
  44. import PublishAudio from '@/components/upload/PublishAudio'
  45. import PublishImage from '@/components/upload/PublishImage'
  46. import PublishArticle from '@/components/upload/PublishArticle'
  47. export default {
  48. name: 'Publish',
  49. components: { PublishVideo, PublishAudio, PublishImage, PublishArticle },
  50. data() {
  51. return {
  52. activeName: 'first',
  53. coverUrl: null,
  54. videoUrlId: null,
  55. coverFile: null,
  56. dialogImageUrl: '',
  57. dialogVisible: false,
  58. disabled: false,
  59. imageList: [],
  60. imageUrl: ''
  61. }
  62. },
  63. created() {
  64. },
  65. methods: {
  66. }
  67. }
  68. </script>
  69. <style>
  70. .uploader-example {
  71. width: 500px;
  72. padding: 15px;
  73. margin: 40px auto 0;
  74. font-size: 12px;
  75. box-shadow: 0 0 10px rgba(0, 0, 0, .4);
  76. }
  77. .uploader-example .uploader-btn {
  78. margin-right: 4px;
  79. }
  80. .uploader-example .uploader-list {
  81. max-height: 440px;
  82. overflow: auto;
  83. overflow-x: hidden;
  84. overflow-y: auto;
  85. }
  86. .avatar-uploader .el-upload {
  87. border: 1px dashed #d9d9d9;
  88. border-radius: 6px;
  89. cursor: pointer;
  90. position: relative;
  91. overflow: hidden;
  92. }
  93. .avatar-uploader .el-upload:hover {
  94. border-color: #409EFF;
  95. }
  96. .avatar-uploader-icon {
  97. font-size: 28px;
  98. color: #8c939d;
  99. width: 320px;
  100. height: 240px;
  101. line-height: 178px;
  102. text-align: center;
  103. }
  104. .avatar {
  105. width: 320px;
  106. height: 240px;
  107. display: block;
  108. }
  109. </style>