basic.vue 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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:
  31. 'https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png',
  32. squareUrl:
  33. 'https://cube.elemecdn.com/9/c2/f0ee8a3c7c9638a54940382568c9dpng.png',
  34. sizeList: ['small', '', 'large'] as const,
  35. })
  36. const { circleUrl, squareUrl, sizeList } = toRefs(state)
  37. </script>
  38. <style scoped>
  39. .demo-basic {
  40. text-align: center;
  41. }
  42. .demo-basic .sub-title {
  43. margin-bottom: 10px;
  44. font-size: 14px;
  45. color: var(--el-text-color-secondary);
  46. }
  47. .demo-basic .demo-basic--circle,
  48. .demo-basic .demo-basic--square {
  49. display: flex;
  50. justify-content: space-between;
  51. align-items: center;
  52. }
  53. .demo-basic .block:not(:last-child) {
  54. border-right: 1px solid var(--el-border-color);
  55. }
  56. .demo-basic .block {
  57. flex: 1;
  58. }
  59. .demo-basic .el-col:not(:last-child) {
  60. border-right: 1px solid var(--el-border-color);
  61. }
  62. </style>