TodoList.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <template>
  2. <CollapseContainer class="todo-list" title="待办事项" :canExpan="false">
  3. <template #title>
  4. <span> 待办事项 <span class="todo-list__total">30</span> </span>
  5. </template>
  6. <List>
  7. <template v-for="item in todoList" :key="item.id">
  8. <ListItem class="todo-list__item">
  9. <ListItemMeta>
  10. <template #title>
  11. <div>
  12. <span class="todo-list__item-title">{{ item.title }}</span>
  13. <span class="todo-list__item-memo">{{ item.memo }}</span>
  14. </div>
  15. </template>
  16. <template #description>
  17. <div class="todo-list__item-desc">
  18. 提交人:{{ item.sbmter }}
  19. <br />
  20. 提交时间:{{ item.sbmtTime }}
  21. </div>
  22. </template>
  23. </ListItemMeta>
  24. <a-button type="link">
  25. <Tag color="blue"> 待审批 </Tag>
  26. </a-button>
  27. </ListItem>
  28. </template>
  29. </List>
  30. <div class="todo-list__all">
  31. <Tooltip placement="topRight">
  32. <template #title> 查看更多 </template>
  33. <EllipsisOutlined />
  34. </Tooltip>
  35. </div>
  36. </CollapseContainer>
  37. </template>
  38. <script lang="ts">
  39. import { defineComponent } from 'vue';
  40. import { List, Tag, Tooltip } from 'ant-design-vue';
  41. import { CollapseContainer } from '/@/components/Container/index';
  42. import { EllipsisOutlined } from '@ant-design/icons-vue';
  43. import { todoList } from '../data';
  44. export default defineComponent({
  45. name: 'TodoList',
  46. components: {
  47. CollapseContainer,
  48. List,
  49. ListItem: List.Item,
  50. ListItemMeta: List.Item.Meta,
  51. Tag,
  52. Tooltip,
  53. EllipsisOutlined,
  54. },
  55. setup() {
  56. return { todoList };
  57. },
  58. });
  59. </script>
  60. <style lang="less" scoped>
  61. .todo-list {
  62. position: relative;
  63. &__total {
  64. display: inline-block;
  65. width: 20px;
  66. height: 20px;
  67. font-size: 12px;
  68. line-height: 20px;
  69. color: #fff;
  70. text-align: center;
  71. background: rgba(255, 0, 0, 0.7);
  72. border-radius: 50%;
  73. }
  74. &__all {
  75. position: absolute;
  76. top: 0;
  77. right: 10px;
  78. height: 56px;
  79. font-size: 24px;
  80. line-height: 56px;
  81. text-align: center;
  82. cursor: pointer;
  83. }
  84. &__item {
  85. padding: 8px;
  86. &-title {
  87. font-size: 14px;
  88. font-weight: normal;
  89. line-height: 22px;
  90. color: #1c1d21;
  91. }
  92. &-memo {
  93. font-size: 12px;
  94. font-weight: normal;
  95. line-height: 22px;
  96. color: #7c8087;
  97. }
  98. &-desc {
  99. font-size: 12px;
  100. line-height: 22px;
  101. color: #7c8087;
  102. }
  103. }
  104. }
  105. </style>