mirror of
https://gitee.com/element-plus/element-plus.git
synced 2024-12-05 04:37:47 +08:00
10e231168a
* style: update descriptions style * style: update * style: update demo * style: update * style: update * style: update * style: update * style: update * feat: update
140 lines
3.2 KiB
Vue
140 lines
3.2 KiB
Vue
<template>
|
|
<el-radio-group v-model="size">
|
|
<el-radio label="large">Large</el-radio>
|
|
<el-radio>Default</el-radio>
|
|
<el-radio label="small">Small</el-radio>
|
|
</el-radio-group>
|
|
|
|
<el-descriptions
|
|
class="margin-top"
|
|
title="With border"
|
|
:column="3"
|
|
:size="size"
|
|
border
|
|
>
|
|
<template #extra>
|
|
<el-button type="primary">Operation</el-button>
|
|
</template>
|
|
<el-descriptions-item>
|
|
<template #label>
|
|
<div class="cell-item">
|
|
<el-icon :style="iconStyle">
|
|
<user />
|
|
</el-icon>
|
|
Username
|
|
</div>
|
|
</template>
|
|
kooriookami
|
|
</el-descriptions-item>
|
|
<el-descriptions-item>
|
|
<template #label>
|
|
<div class="cell-item">
|
|
<el-icon :style="iconStyle">
|
|
<iphone />
|
|
</el-icon>
|
|
Telephone
|
|
</div>
|
|
</template>
|
|
18100000000
|
|
</el-descriptions-item>
|
|
<el-descriptions-item>
|
|
<template #label>
|
|
<div class="cell-item">
|
|
<el-icon :style="iconStyle">
|
|
<location />
|
|
</el-icon>
|
|
Place
|
|
</div>
|
|
</template>
|
|
Suzhou
|
|
</el-descriptions-item>
|
|
<el-descriptions-item>
|
|
<template #label>
|
|
<div class="cell-item">
|
|
<el-icon :style="iconStyle">
|
|
<tickets />
|
|
</el-icon>
|
|
Remarks
|
|
</div>
|
|
</template>
|
|
<el-tag size="small">School</el-tag>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item>
|
|
<template #label>
|
|
<div class="cell-item">
|
|
<el-icon :style="iconStyle">
|
|
<office-building />
|
|
</el-icon>
|
|
Address
|
|
</div>
|
|
</template>
|
|
No.1188, Wuzhong Avenue, Wuzhong District, Suzhou, Jiangsu Province
|
|
</el-descriptions-item>
|
|
</el-descriptions>
|
|
|
|
<el-descriptions
|
|
class="margin-top"
|
|
title="Without border"
|
|
:column="3"
|
|
:size="size"
|
|
:style="blockMargin"
|
|
>
|
|
<template #extra>
|
|
<el-button type="primary">Operation</el-button>
|
|
</template>
|
|
<el-descriptions-item label="Username">kooriookami</el-descriptions-item>
|
|
<el-descriptions-item label="Telephone">18100000000</el-descriptions-item>
|
|
<el-descriptions-item label="Place">Suzhou</el-descriptions-item>
|
|
<el-descriptions-item label="Remarks">
|
|
<el-tag size="small">School</el-tag>
|
|
</el-descriptions-item>
|
|
<el-descriptions-item label="Address"
|
|
>No.1188, Wuzhong Avenue, Wuzhong District, Suzhou, Jiangsu Province
|
|
</el-descriptions-item>
|
|
</el-descriptions>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import { computed, ref } from 'vue'
|
|
import {
|
|
User,
|
|
Iphone,
|
|
Location,
|
|
Tickets,
|
|
OfficeBuilding,
|
|
} from '@element-plus/icons-vue'
|
|
|
|
const size = ref('')
|
|
const iconStyle = computed(() => {
|
|
const marginMap = {
|
|
large: '8px',
|
|
default: '6px',
|
|
small: '4px',
|
|
}
|
|
return {
|
|
marginRight: marginMap[size.value] || marginMap.default,
|
|
}
|
|
})
|
|
const blockMargin = computed(() => {
|
|
const marginMap = {
|
|
large: '32px',
|
|
default: '28px',
|
|
small: '24px',
|
|
}
|
|
return {
|
|
marginTop: marginMap[size.value] || marginMap.default,
|
|
}
|
|
})
|
|
</script>
|
|
|
|
<style scoped>
|
|
.el-descriptions {
|
|
margin-top: 20px;
|
|
}
|
|
|
|
.cell-item {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
</style>
|