Index.vue 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. <template>
  2. <div class="hello">
  3. <Header></Header>
  4. <el-container>
  5. <el-card class="hor-center-card">
  6. <el-button type="text" @click="goback" class="goback-btn">
  7. <i class="el-icon-back"></i>
  8. </el-button>
  9. <el-form :inline="true" class="demo-form-inline">
  10. <el-form-item label>
  11. <el-input v-model="display_name" :placeholder="$t('display_name')"></el-input>
  12. </el-form-item>
  13. <el-form-item label>
  14. <el-select v-model="attachment_type" placeholder>
  15. <el-option :label="$t('all_attachment_type')" value="-1"></el-option>
  16. <el-option :label="$t('image')" value="1"></el-option>
  17. <el-option :label="$t('general_attachment')" value="2"></el-option>
  18. </el-select>
  19. </el-form-item>
  20. <el-form-item>
  21. <el-button @click="onSubmit">{{$t('search')}}</el-button>
  22. </el-form-item>
  23. <el-form-item>
  24. <el-upload
  25. class="upload-file"
  26. :action="uploadUrl"
  27. :on-success="uploadCallback"
  28. :on-error="uploadCallback"
  29. ref="uploadFile"
  30. >
  31. <el-button>{{$t('upload')}}</el-button>
  32. </el-upload>
  33. </el-form-item>
  34. </el-form>
  35. <P>{{$t('accumulated_used_sapce')}} {{used}}M , {{$t('month_flow')}} {{used_flow}}M</P>
  36. <el-table :data="dataList" style="width: 100%">
  37. <el-table-column prop="file_id" :label="$t('file_id')"></el-table-column>
  38. <el-table-column prop="display_name" :label="$t('display_name')"></el-table-column>
  39. <el-table-column prop="file_type" :label="$t('file_type')" width="160"></el-table-column>
  40. <el-table-column prop="file_size_m" :label="$t('file_size_m')" width="160"></el-table-column>
  41. <el-table-column prop="visit_times" :label="$t('visit_times')"></el-table-column>
  42. <el-table-column prop="addtime" :label="$t('add_time')" width="160"></el-table-column>
  43. <el-table-column prop :label="operation">
  44. <template slot-scope="scope">
  45. <el-button @click="visit(scope.row)" type="text" size="small">{{$t('visit')}}</el-button>
  46. <el-button @click="delete_row(scope.row)" type="text" size="small">{{$t('delete')}}</el-button>
  47. </template>
  48. </el-table-column>
  49. </el-table>
  50. <div class="block">
  51. <span class="demonstration"></span>
  52. <el-pagination
  53. @current-change="handleCurrentChange"
  54. :page-size="count"
  55. layout="total, prev, pager, next"
  56. :total="total"
  57. ></el-pagination>
  58. </div>
  59. </el-card>
  60. </el-container>
  61. <Footer></Footer>
  62. </div>
  63. </template>
  64. <script>
  65. export default {
  66. name: '',
  67. components: {},
  68. data() {
  69. return {
  70. page: 1,
  71. count: 6,
  72. display_name: '',
  73. username: '',
  74. dataList: [],
  75. total: 0,
  76. positive_type: '1',
  77. attachment_type: '-1',
  78. used: 0,
  79. used_flow: 0,
  80. uploadUrl: DocConfig.server + '/api/page/upload'
  81. }
  82. },
  83. methods: {
  84. getList() {
  85. this.request('/api/attachment/getMyList', {
  86. page: this.page,
  87. count: this.count,
  88. attachment_type: this.attachment_type,
  89. display_name: this.display_name,
  90. username: this.username
  91. }).then(data => {
  92. var json = data.data
  93. this.dataList = json.list
  94. this.total = parseInt(json.total)
  95. this.used = json.used_m
  96. this.used_flow = json.used_flow_m
  97. })
  98. },
  99. // 跳转到项目
  100. jump_to_item(row) {
  101. let url = '/' + row.item_id
  102. window.open(url)
  103. },
  104. handleCurrentChange(currentPage) {
  105. this.page = currentPage
  106. this.getList()
  107. },
  108. onSubmit() {
  109. this.page = 1
  110. this.getList()
  111. },
  112. visit(row) {
  113. window.open(row.url)
  114. },
  115. delete_row(row) {
  116. this.$confirm(this.$t('confirm_delete'), ' ', {
  117. confirmButtonText: this.$t('confirm'),
  118. cancelButtonText: this.$t('cancel'),
  119. type: 'warning'
  120. }).then(() => {
  121. this.request('/api/attachment/deleteMyAttachment', {
  122. file_id: row.file_id
  123. }).then(data => {
  124. this.$message.success(this.$t('op_success'))
  125. this.getList()
  126. })
  127. })
  128. },
  129. goback() {
  130. this.$router.push({ path: '/item/index' })
  131. },
  132. uploadCallback(data) {
  133. if (data.error_message) {
  134. this.$alert(data.error_message)
  135. }
  136. let childRef = this.$refs.uploadFile // 获取子组件
  137. childRef.clearFiles()
  138. this.getList()
  139. }
  140. },
  141. mounted() {
  142. this.getList()
  143. },
  144. beforeDestroy() {}
  145. }
  146. </script>
  147. <!-- Add "scoped" attribute to limit CSS to this component only -->
  148. <style scoped>
  149. .hor-center-card a {
  150. font-size: 12px;
  151. }
  152. .hor-center-card {
  153. width: 1000px;
  154. }
  155. .goback-btn {
  156. font-size: 18px;
  157. margin-right: 800px;
  158. margin-bottom: 5px;
  159. }
  160. </style>