| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <script setup>
- import {fieldMap, tableMap} from './map';
- import {getCompanyDetail} from '@/api/companyDetail';
- import {onUnmounted, ref} from 'vue'
- import {useRoute} from "vue-router";
- import {ElMessage} from "element-plus";
- const activeNames = ref([])
- const showList = ref([])
- const route = useRoute();
- const detailContainer = ref(null);
- const loading = ref(true);
- const handleChange = (val) => {
- console.log(val)
- }
- const getTableLength = (tableObj) => {
- if (!tableObj) return null;
- let excludeList = ['id', 'update_time', 'create_time'];
- let newObj = {};
- for (let key in tableObj) {
- if (!excludeList.includes(key)) {
- newObj[key] = tableObj[key];
- }
- }
- return Object.keys(newObj);
- }
- getCompanyDetail(route.query.unifiedSocialCreditCode).then(res => {
- if (res.code == 200) {
- for (let i = 0; i < res.data.length; i++) {
- activeNames.value.push(i)
- }
- showList.value = res.data;
- }else {
- ElMessage.error(res.msg);
- }
- })
- const specialHanle = (rowProp, index, label) => {
- if (!rowProp) return;
- if (typeof rowProp == 'string') {
- if (rowProp.includes('script') || rowProp.includes("img")) {
- return "违禁词"
- }
- }
- if (index == 5 && label == '录入时间') {
- return rowProp.split('T')[0];
- }
- return rowProp;
- }
- // 定义定时器
- let timer;
- let timeoutTimer;
- timer = setInterval(() => {
- if (detailContainer.value.offsetHeight > 50) {
- loading.value = false;
- clearInterval(timer);
- timer = null;
- }
- }, 10);
- timeoutTimer = setTimeout(() => {
- if (timer) {
- clearInterval(timer);
- timer = null;
- }
- }, 5000);
- onUnmounted(() => {
- if (timer) {
- clearInterval(timer);
- }
- clearTimeout(timeoutTimer);
- timeoutTimer = null;
- });
- </script>
- <template>
- <div ref="detailContainer">
- <div style="font-size: 18px;font-weight: bold;">企业名称:{{ route.query.enterpriseName }}</div>
- <div style="font-size: 18px;font-weight: bold;">当前查询的统一信用代码是:{{ route.query.unifiedSocialCreditCode }}
- </div>
- <div class="demo-collapse" v-loading.fullscreen.lock="loading" element-loading-text="加载数据中...">
- <el-collapse v-model="activeNames" @change="handleChange">
- <el-collapse-item v-for="(item,index) in showList" :title="tableMap[item.tableName]" :name="index">
- <el-table :data="item.data" max-height="250">
- <template v-for="(t,i) in getTableLength(item.data[0])" :key="i">
- <el-table-column :prop="t" :label="fieldMap[t]" width="300">
- <template #default="scope">
- <div v-html="specialHanle(scope.row[t],i,fieldMap[t])"/>
- </template>
- </el-table-column>
- </template>
- </el-table>
- </el-collapse-item>
- </el-collapse>
- </div>
- </div>
- </template>
- <style lang="scss">
- .demo-collapse .el-collapse-item__header {
- font-size: 18px;
- font-weight: bold;
- }
- </style>
|