index.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <script setup lang="ts"></script>
  2. <template>
  3. <div class="content-container">
  4. <section class="flow-approve-box">
  5. <!-- 需要抽成组件 -->
  6. <div class="flow-content">
  7. <!-- 搜索框 -->
  8. <div class="search-box">
  9. <div class="search-segment" style="flex: 1 1 0%"></div>
  10. <div class="search-segment"></div>
  11. <div class="search-segment"></div>
  12. </div>
  13. <!-- 列表值 -->
  14. <div class="flow-list-box">
  15. <div class="item-box">
  16. <div class="flow-card-box flow-card-box-hoverable">
  17. <div class="header">
  18. <span class="typography name">请假</span>
  19. <div class="status"><el-button type="success" plain size="small">审核中</el-button></div>
  20. </div>
  21. <div class="summary-list">
  22. <div class="summary-item">
  23. <div class="label">假期类型:</div>
  24. <div class="value">事假</div>
  25. </div>
  26. <div class="summary-item">
  27. <div class="label">假期时间:</div>
  28. <div class="value">2023</div>
  29. </div>
  30. </div>
  31. <div class="footer">
  32. <div class="initiator">
  33. <div class="avatar" style="height: 28px; border-radius: 14px; padding: 4px">
  34. <div class="icon" style="width: 20px; height: 20px; font-size: 10px"></div>
  35. <div class="name" style="font-size: 11px">123</div>
  36. </div>
  37. </div>
  38. <div class="begin-time">提交时间:1233-34-56</div>
  39. </div>
  40. </div>
  41. </div>
  42. </div>
  43. </div>
  44. <div class="flow-detail-content"></div>
  45. </section>
  46. </div>
  47. </template>
  48. <style scoped lang="scss">
  49. .content-container {
  50. height: calc(100% - 45px);
  51. .flow-approve-box {
  52. width: 100%;
  53. height: calc(100vh - 105px);
  54. overflow: hidden;
  55. padding: 0 12px;
  56. display: flex;
  57. gap: 12px;
  58. .flow-content {
  59. width: 330px;
  60. min-width: 330px;
  61. height: 100%;
  62. overflow: hidden;
  63. //background: #fff;
  64. border-radius: 6px;
  65. background: #0d84ff;
  66. .search-box {
  67. display: flex;
  68. align-items: center;
  69. height: 56px;
  70. padding: 0 12px;
  71. .search-segment {
  72. margin-left: 4px;
  73. }
  74. }
  75. }
  76. // 列表
  77. .flow-list-box {
  78. background-color: #fff;
  79. padding: 0 12px;
  80. height: calc(100vh - 161px);
  81. overflow: hidden auto;
  82. scroll-snap-type: y mandatory;
  83. will-change: scroll-position;
  84. .item-box {
  85. margin-bottom: 12px;
  86. }
  87. }
  88. // 列表的卡片样式
  89. .flow-card-box {
  90. -webkit-user-select: none;
  91. user-select: none;
  92. border-radius: 6px;
  93. overflow: hidden;
  94. border: 1px solid #e9ebef;
  95. padding: 10px 12px;
  96. cursor: pointer;
  97. transition: box-shadow 0.2s cubic-bezier(0, 0, 1, 1);
  98. .header {
  99. display: flex;
  100. align-items: center;
  101. justify-content: space-between;
  102. .typography {
  103. //color: var(--color-text-1); todo
  104. line-height: 1.5715;
  105. white-space: normal;
  106. overflow-wrap: anywhere;
  107. }
  108. .name {
  109. font-size: 15px;
  110. }
  111. }
  112. .summary-list {
  113. margin-top: 10px;
  114. .summary-item {
  115. display: flex;
  116. min-height: 20px;
  117. .label {
  118. color: #9ba5b3;
  119. overflow: hidden;
  120. white-space: nowrap;
  121. flex-shrink: 0;
  122. }
  123. .value {
  124. color: #232730;
  125. overflow: hidden;
  126. text-overflow: ellipsis;
  127. white-space: nowrap;
  128. }
  129. }
  130. }
  131. .footer {
  132. margin-top: 10px;
  133. display: flex;
  134. align-items: center;
  135. justify-content: space-between;
  136. font-size: 13px;
  137. .avatar {
  138. background: #f2f4f5;
  139. display: flex;
  140. align-items: center;
  141. width: fit-content;
  142. .icon {
  143. overflow: hidden;
  144. flex-shrink: 0;
  145. border-radius: 50%;
  146. }
  147. .name {
  148. -webkit-user-select: none;
  149. user-select: none;
  150. font-family: PingFangSC-Regular, PingFang SC;
  151. color: #34383e;
  152. margin: 0 4px;
  153. overflow: hidden;
  154. white-space: nowrap;
  155. text-overflow: ellipsis;
  156. max-width: 64px;
  157. }
  158. }
  159. .initiator {
  160. display: flex;
  161. align-items: center;
  162. }
  163. .begin-time {
  164. //color: #9ba5b3; todo
  165. }
  166. }
  167. }
  168. .flow-detail-content {
  169. height: 100%;
  170. overflow: hidden;
  171. //background: #fff;
  172. border-radius: 6px;
  173. flex: auto;
  174. background: #0934ff;
  175. }
  176. }
  177. }
  178. </style>