index.vue 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. <template>
  2. <div>
  3. <el-collapse v-model="activeNames" @change="handleChange">
  4. <div v-if="isList">
  5. <el-collapse-item name="folder">
  6. <template #title>
  7. <span class="collapseItem_title">文件夹</span>
  8. </template>
  9. <!-- 表格 -->
  10. <el-table
  11. :data="tableData"
  12. style="width: 100%"
  13. height="250"
  14. :scrollbar-always-on="true"
  15. >
  16. <el-table-column fixed prop="date" label="名称" width="500">
  17. <template #default="scope">
  18. <div>
  19. <img
  20. class="table_icon"
  21. src="../../../assets/images/folder.png"
  22. alt=""
  23. style=""
  24. />
  25. {{ scope.row.date }}
  26. </div>
  27. </template>
  28. </el-table-column>
  29. <el-table-column prop="name" label="时间" width="200" />
  30. <el-table-column prop="state" label="类型" width="180" />
  31. <el-table-column prop="city" label="大小" width="160" />
  32. </el-table>
  33. </el-collapse-item>
  34. <el-collapse-item name="file">
  35. <template #title>
  36. <span class="collapseItem_title">文件</span>
  37. </template>
  38. <!-- 表格 -->
  39. <el-table
  40. :data="tableData"
  41. style="width: 100%"
  42. height="250"
  43. :scrollbar-always-on="true"
  44. >
  45. <el-table-column fixed prop="date" label="名称" width="500">
  46. <template #default="scope">
  47. <div>
  48. <img
  49. class="table_icon"
  50. src="../../../assets/images/folder.png"
  51. alt=""
  52. style=""
  53. />
  54. {{ scope.row.date }}
  55. </div>
  56. </template>
  57. </el-table-column>
  58. <el-table-column prop="name" label="时间" width="200" />
  59. <el-table-column prop="state" label="类型" width="180" />
  60. <el-table-column prop="city" label="大小" width="160" />
  61. </el-table>
  62. </el-collapse-item>
  63. </div>
  64. <div v-else>
  65. <el-collapse-item name="folder">
  66. <template #title>
  67. <span class="collapseItem_title">文件夹</span>
  68. </template>
  69. <!-- 平铺 -->
  70. <div class="tile_box">
  71. <div class="file_box">
  72. <img class="big_file_img" src="../../../assets/images/folder.png" alt="">
  73. </div>
  74. </div>
  75. </el-collapse-item>
  76. <el-collapse-item name="file">
  77. <template #title>
  78. <span class="collapseItem_title">文件</span>
  79. </template>
  80. </el-collapse-item>
  81. </div>
  82. </el-collapse>
  83. </div>
  84. </template>
  85. <script setup>
  86. import { onMounted, ref } from "vue";
  87. import { listRecent } from "../../../api/biz/recent";
  88. const activeNames = ref(["folder", "file"]);
  89. const isList = ref(false); //控制显示方式
  90. onMounted(() => {
  91. getList();
  92. });
  93. const getList = async () => {
  94. const res = await listRecent();
  95. console.log("res = ", res);
  96. };
  97. const handleChange = (val) => {
  98. // console.log(val);
  99. };
  100. const tableData = [
  101. {
  102. date: "2016-05-03",
  103. name: "Tom",
  104. state: "California",
  105. city: "Los Angeles",
  106. address: "No. 189, Grove St, Los Angeles",
  107. zip: "CA 90036",
  108. },
  109. {
  110. date: "2016-05-02",
  111. name: "Tom",
  112. state: "California",
  113. city: "Los Angeles",
  114. address: "No. 189, Grove St, Los Angeles",
  115. zip: "CA 90036",
  116. },
  117. {
  118. date: "2016-05-04",
  119. name: "Tom",
  120. state: "California",
  121. city: "Los Angeles",
  122. address: "No. 189, Grove St, Los Angeles",
  123. zip: "CA 90036",
  124. },
  125. {
  126. date: "2016-05-01",
  127. name: "Tom",
  128. state: "California",
  129. city: "Los Angeles",
  130. address: "No. 189, Grove St, Los Angeles",
  131. zip: "CA 90036",
  132. },
  133. {
  134. date: "2016-05-08",
  135. name: "Tom",
  136. state: "California",
  137. city: "Los Angeles",
  138. address: "No. 189, Grove St, Los Angeles",
  139. zip: "CA 90036",
  140. },
  141. {
  142. date: "2016-05-06",
  143. name: "Tom",
  144. state: "California",
  145. city: "Los Angeles",
  146. address: "No. 189, Grove St, Los Angeles",
  147. zip: "CA 90036",
  148. },
  149. {
  150. date: "2016-05-07",
  151. name: "Tom",
  152. state: "California",
  153. city: "Los Angeles",
  154. address: "No. 189, Grove St, Los Angeles",
  155. zip: "CA 90036",
  156. },
  157. ];
  158. </script>
  159. <style lang="scss" scoped>
  160. .table_icon {
  161. height: 27px;
  162. width: 27px;
  163. vertical-align: middle;
  164. }
  165. ::v-deep .el-collapse-item__content {
  166. padding-bottom: 0;
  167. }
  168. ::v-deep .el-collapse-item__header {
  169. background-color: #ebeff6 !important;
  170. width: 100% !important;
  171. height: 24px !important;
  172. }
  173. ::v-deep .el-collapse-item__arrow {
  174. position: relative;
  175. color: #2e6bc8;
  176. right: 97%;
  177. }
  178. ::v-deep .el-table td.el-table__cell {
  179. border: none;
  180. font-size: 14px !important;
  181. font-weight: 400 !important;
  182. color: #000 !important;
  183. }
  184. ::v-deep .el-table .el-table__header-wrapper th {
  185. border-bottom: none;
  186. border-right: 1px solid #c1cce3;
  187. background-color: #fff !important;
  188. color: #505870;
  189. font-size: 14px;
  190. }
  191. .collapseItem_title {
  192. position: relative;
  193. left: 40px;
  194. color: #2e6bc8;
  195. font-family: Inter-Medium;
  196. font-size: 12px;
  197. }
  198. // 表格右边3个靠右对齐
  199. ::v-deep .el-table__header thead tr th {
  200. font-family: Inter-Medium;
  201. font-size: 14px;
  202. color: #505870;
  203. text-align: right;
  204. &:nth-child(1) {
  205. text-align: left;
  206. }
  207. }
  208. ::v-deep .el-table__body tbody [class*="column_2"] {
  209. text-align: right;
  210. }
  211. ::v-deep .el-table__body tbody [class*="column_3"] {
  212. text-align: right;
  213. }
  214. ::v-deep .el-table__body tbody [class*="column_4"] {
  215. text-align: right;
  216. }
  217. ::v-deep .el-table__body tbody [class*="column_6"] {
  218. text-align: right;
  219. }
  220. ::v-deep .el-table__body tbody [class*="column_7"] {
  221. text-align: right;
  222. }
  223. ::v-deep .el-table__body tbody [class*="column_8"] {
  224. text-align: right;
  225. }
  226. //平铺
  227. .tile_box{
  228. width: 100%;
  229. height: 400px;
  230. .file_box{
  231. width: 116px;
  232. height: 138px;
  233. border: 1px solid #000;
  234. }
  235. .big_file_img{
  236. width: 100px;
  237. height: 100px;
  238. }
  239. }
  240. </style>