Workflow.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. <template>
  2. <div class="workflow">
  3. <div class="gradient workflow-btn flex-center">
  4. <img src="/src/assets/imgs/add.png" alt="">
  5. <div class="">{{ $t('common.publishWorkflow') }}</div>
  6. </div>
  7. <ul class="workflow-list">
  8. <li v-for="(item, index) in 6" :key="index" class="">
  9. <img class="image"
  10. src="https://shadow.elemecdn.com/app/element/hamburger.9cf7b091-55e9-11e9-a976-7f4d0b07eef6.png" alt="">
  11. <div class="kong"></div>
  12. <div class="workflow-list-con flex-column flex-between">
  13. <div class="top">
  14. <div class="workflow-list-time flex-align-center">
  15. <img src="/src/assets/imgs/rili.png" alt="">
  16. <div class="">2023-10-15</div>
  17. </div>
  18. <div class="title">Linux操作集锦系列之十五——如何破解pdf、doc、word、png、MP3、mp4、表格...</div>
  19. <div class="desc">- 本文介绍两款开源的密码破解工具John the Ripp...</div>
  20. </div>
  21. <div class="flex_1">
  22. <div class="info flex-center-between">
  23. <div class="info-left flex-align-center">
  24. <el-avatar :size="30" :src="''" />
  25. <div class="">花花</div>
  26. </div>
  27. <div class="info-right flex-align-center">
  28. <img src="/src/assets/imgs/yun.png" alt="">
  29. <div class="">n8n平台</div>
  30. </div>
  31. </div>
  32. <div class="footer flex-center-between">
  33. <div class="flex-center btn">
  34. <img src="/src/assets/imgs/my/edit@2x.png" alt="">
  35. <div class="">{{ $t('common.edit') }}</div>
  36. </div>
  37. <div class="flex-center btn">
  38. <img src="/src/assets/imgs/my/del@2x.png" alt="">
  39. <div class="">{{ $t('common.delete') }}</div>
  40. </div>
  41. </div>
  42. </div>
  43. </div>
  44. </li>
  45. </ul>
  46. <Pagination :total="20" :page-size="10" :current-page="1" @page-change="handlePageChange" />
  47. </div>
  48. </template>
  49. <script setup lang="ts">
  50. import Pagination from '@/components/Pagination.vue'
  51. </script>
  52. <style scoped lang="scss">
  53. .workflow {
  54. padding: 16px 0 20px;
  55. .workflow-btn {
  56. height: 50px;
  57. color: #FFFFFF;
  58. cursor: pointer;
  59. border-radius: 10px;
  60. font-size: 18px;
  61. &:hover {
  62. opacity: 0.9;
  63. }
  64. img {
  65. width: 30px;
  66. height: 30px;
  67. margin-right: 4px;
  68. }
  69. }
  70. .workflow-list {
  71. gap: 16px;
  72. display: flex;
  73. flex-wrap: wrap;
  74. margin-top: 16px;
  75. li {
  76. width: 380px;
  77. cursor: pointer;
  78. position: relative;
  79. background: #F5F7FA;
  80. border-radius: 16px;
  81. overflow: hidden;
  82. border: 1px solid #FFFFFF;
  83. .image {
  84. width: 100%;
  85. height: 204px;
  86. display: block;
  87. object-fit: cover;
  88. border-radius: 16px 16px 0 0;
  89. }
  90. .kong {
  91. height: 166px;
  92. }
  93. .workflow-list-con {
  94. height: 224px;
  95. padding: 16px;
  96. left: 0;
  97. right: 0;
  98. bottom: 0;
  99. position: absolute;
  100. transform: translateY(58px);
  101. transition: transform 0.3s ease;
  102. background: #F5F7FA;
  103. border-radius: 0px 0px 16px 16px;
  104. .top {
  105. line-height: 1;
  106. height: 120px;
  107. display: flex;
  108. flex-direction: column;
  109. }
  110. .workflow-list-time {
  111. font-size: 14px;
  112. img {
  113. width: 16px;
  114. height: 16px;
  115. margin-right: 8px;
  116. }
  117. }
  118. .title {
  119. margin: 8px 0;
  120. font-size: 18px;
  121. font-weight: bold;
  122. display: -webkit-box;
  123. -webkit-box-orient: vertical;
  124. -webkit-line-clamp: 2;
  125. overflow: hidden;
  126. text-overflow: ellipsis;
  127. line-height: 26px;
  128. }
  129. .desc {
  130. white-space: nowrap;
  131. overflow: hidden;
  132. text-overflow: ellipsis;
  133. }
  134. .info {
  135. font-size: 14px;
  136. .info-left {
  137. div {
  138. margin-left: 8px;
  139. }
  140. }
  141. .info-right {
  142. padding: 0 4px;
  143. height: 22px;
  144. background: #E9F3FF;
  145. border-radius: 4px;
  146. img {
  147. width: 16px;
  148. height: 16px;
  149. margin-right: 8px;
  150. }
  151. }
  152. }
  153. .footer {
  154. margin-top: 8px;
  155. .btn {
  156. width: 166px;
  157. height: 40px;
  158. font-size: 14px;
  159. color: #2D71FF;
  160. background: #FFFFFF;
  161. border-radius: 10px;
  162. img {
  163. width: 16px;
  164. height: 16px;
  165. margin-right: 4px;
  166. }
  167. &:last-child {
  168. color: #E43434;
  169. }
  170. &:hover {
  171. opacity: 0.7;
  172. }
  173. }
  174. }
  175. }
  176. &:hover {
  177. .workflow-list-con {
  178. transform: translateY(0);
  179. }
  180. }
  181. }
  182. }
  183. }
  184. </style>