uploadList.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <!-- -->
  2. <template>
  3. <div class="book-vocab">
  4. <div class="book-vocab-content">
  5. <div class="book-vocab-content-create">
  6. <el-button size="mini" type="primary" @click="createVocab">上传资源</el-button>
  7. </div>
  8. <div class="book-vocab-content-search">
  9. <el-form :inline="true" :model="searchForm" size="mini">
  10. <el-form-item label="名称">
  11. <el-input v-model="searchForm.name" placeholder="请输入关键词"></el-input>
  12. </el-form-item>
  13. <el-form-item label="备注">
  14. <el-input v-model="searchForm.memo" placeholder="请输入关键词"></el-input>
  15. </el-form-item>
  16. <el-form-item>
  17. <el-button type="primary" @click="onSearch">查询</el-button>
  18. </el-form-item>
  19. </el-form>
  20. </div>
  21. <div class="book-vocab-content-table">
  22. <el-table :data="book_List">
  23. <el-table-column label="键值" prop="resource_key" width="200"></el-table-column>
  24. <el-table-column label="名称" prop="name"></el-table-column>
  25. <el-table-column label="备注" prop="memo"></el-table-column>
  26. <el-table-column fixed="right" label="操作" width="100">
  27. <template slot-scope="scope">
  28. <el-button size="small" type="text" @click="handleView(scope.row)">查看</el-button>
  29. <!-- <el-button @click="handleEdit(scope.row)" size="small" type="text">编辑</el-button> -->
  30. </template>
  31. </el-table-column>
  32. </el-table>
  33. </div>
  34. <div class="book-vocab-content-pag">
  35. <el-pagination
  36. background
  37. :current-page="cur_page"
  38. :page-size="page_capacity"
  39. :page-sizes="[20, 30, 40, 50]"
  40. :total="total_count"
  41. layout="prev, pager, next, total, sizes, jumper"
  42. @current-change="handleCurrentChange"
  43. @size-change="handleSizeChange"
  44. ></el-pagination>
  45. </div>
  46. </div>
  47. <el-dialog :before-close="handleClose" :visible.sync="dialogFlag">
  48. <uploadDetail :resource_key="resource_key" @closeDialog="closeDialog"></uploadDetail>
  49. </el-dialog>
  50. </div>
  51. </template>
  52. <script>
  53. import { getContent } from '@/api/ajax';
  54. import uploadDetail from './uploadDetail';
  55. export default {
  56. name: 'UploadList',
  57. components: {
  58. uploadDetail
  59. },
  60. data() {
  61. return {
  62. page_capacity: 20,
  63. cur_page: 1,
  64. total_count: 0,
  65. searchForm: {
  66. memo: '',
  67. name: ''
  68. },
  69. book_List: [],
  70. resource_key: '',
  71. dialogFlag: false
  72. };
  73. },
  74. // 生命周期 - 挂载完成(可以访问DOM元素)
  75. mounted() {
  76. this.getWordList();
  77. },
  78. // 方法集合
  79. methods: {
  80. getWordList() {
  81. let MethodName = 'file_resource_manager-PageQueryFileResourceList';
  82. let data = {
  83. memo: this.searchForm.memo,
  84. name: this.searchForm.name,
  85. page_capacity: this.page_capacity,
  86. cur_page: this.cur_page
  87. };
  88. getContent(MethodName, data).then(res => {
  89. this.total_count = res.total_count;
  90. this.book_List = res.file_list;
  91. });
  92. },
  93. handleSizeChange(val) {
  94. this.page_capacity = val;
  95. this.cur_page = 1;
  96. this.getWordList();
  97. },
  98. handleCurrentChange(val) {
  99. this.cur_page = val;
  100. this.getWordList();
  101. },
  102. onSearch() {
  103. this.getWordList();
  104. },
  105. // 新增资源
  106. createVocab() {
  107. this.resource_key = '';
  108. this.dialogFlag = true;
  109. },
  110. // 查看资源详情
  111. handleView(row) {
  112. this.resource_key = row.resource_key;
  113. this.dialogFlag = true;
  114. },
  115. // 关闭弹窗
  116. handleClose(done) {
  117. this.loading = false;
  118. done();
  119. },
  120. // 子级调用父级关闭弹窗
  121. closeDialog() {
  122. this.dialogFlag = false;
  123. this.cur_page = 1;
  124. this.getWordList();
  125. }
  126. } // 如果页面有keep-alive缓存功能,这个函数会触发
  127. };
  128. </script>
  129. <style lang="scss" scope>
  130. @import '~@/styles/mixin.scss';
  131. .book-vocab {
  132. width: 100%;
  133. height: 100%;
  134. &-content {
  135. width: 1200px;
  136. margin: 0 auto;
  137. padding: 30px 0;
  138. &-create {
  139. width: 100%;
  140. display: flex;
  141. justify-content: flex-start;
  142. align-items: center;
  143. margin-bottom: 20px;
  144. }
  145. &-table {
  146. width: 100%;
  147. min-height: calc(100vh - 130px);
  148. }
  149. &-pag {
  150. @include pagination;
  151. }
  152. }
  153. }
  154. </style>