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
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>
|