basic.vue 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <template>
  2. <el-row class="demo-avatar demo-basic">
  3. <el-col :span="12">
  4. <div class="sub-title">circle</div>
  5. <div class="demo-basic--circle">
  6. <div class="block">
  7. <el-avatar :size="50" :src="circleUrl" />
  8. </div>
  9. <div v-for="size in sizeList" :key="size" class="block">
  10. <el-avatar :size="size" :src="circleUrl" />
  11. </div>
  12. </div>
  13. </el-col>
  14. <el-col :span="12">
  15. <div class="sub-title">square</div>
  16. <div class="demo-basic--circle">
  17. <div class="block">
  18. <el-avatar shape="square" :size="50" :src="squareUrl" />
  19. </div>
  20. <div v-for="size in sizeList" :key="size" class="block">
  21. <el-avatar shape="square" :size="size" :src="squareUrl" />
  22. </div>
  23. </div>
  24. </el-col>
  25. </el-row>
  26. </template>
  27. <script lang="ts" setup>
  28. import { reactive, toRefs } from 'vue'
  29. const state = reactive({
  30. circleUrl: 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png',
  31. squareUrl: 'https://cube.elemecdn.com/9/c2/f0ee8a3c7c9638a54940382568c9dpng.png',
  32. sizeList: ['small', '', 'large'] as const,
  33. })
  34. const { circleUrl, squareUrl, sizeList } = toRefs(state)
  35. </script>
  36. <style scoped>
  37. .demo-basic {
  38. text-align: center;
  39. }
  40. .demo-basic .sub-title {
  41. margin-bottom: 10px;
  42. font-size: 14px;
  43. color: var(--el-text-color-secondary);
  44. }
  45. .demo-basic .demo-basic--circle,
  46. .demo-basic .demo-basic--square {
  47. display: flex;
  48. justify-content: space-between;
  49. align-items: center;
  50. }
  51. .demo-basic .block:not(:last-child) {
  52. border-right: 1px solid var(--el-border-color);
  53. }
  54. .demo-basic .block {
  55. flex: 1;
  56. }
  57. .demo-basic .el-col:not(:last-child) {
  58. border-right: 1px solid var(--el-border-color);
  59. }
  60. </style>