基于vue3.0和element-plus的组件库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.4 KiB

2 years ago
<template>
<el-descriptions class="noob-descriptions" :title="title" :column="colnums[state.size.size]" :size="state.size.size"
:border="border">
<el-descriptions-item v-if="isObi()" v-for="(val, key, i) in data" :label="key">
{{ val }}
</el-descriptions-item>
<el-descriptions-item v-else-if="isArr()" v-for="item in data" :label="item.key">
{{ item.value }}
</el-descriptions-item>
<el-descriptions-item v-else :label="t('base.value')">{{ data }}</el-descriptions-item>
</el-descriptions>
</template>
<script lang="ts" setup>
import { useStore } from "vuex";
import { onMounted } from "vue";
import { useI18n } from "vue3-i18n";
const { t } = useI18n();
const { state, commit, dispatch } = useStore();
const prop = defineProps({
data: {
type: Object,
default: 0,
},
title: {
type: String,
default: null,
},
border: {
type: Boolean,
default: true
}
});
const colnums = {
'normal': 4,
'small': 5,
'large': 3
}
const isObi = () => {
return typeof prop.data === 'object';
}
const isArr = () => {
return Array.isArray(prop.data);
}
onMounted(() => { });
</script>
<style lang="scss" scoped>
//@import url(); 引入公共css类
.noob-descriptions {
--el-descriptions-item-bordered-label-background: v-bind('state.style.tableBg') !important;
}
</style>