txw/txw-mhzc-web/src/pages/index/views/gzt/components/EnterpriseCert.vue

264 lines
5.6 KiB
Vue

<template>
<div class="enterprise-cert">
<div class="cert-bg"></div>
<div class="cert-content">
<div class="cert-header">
<div class="cert-title">
<h3>企业认证</h3>
<span class="cert-status" v-show="certData.qymc">{{ statusText }}</span>
</div>
</div>
<div class="cert-body">
<template v-if="certData.qymc">
<div class="cert-info">
<div class="info-row">
<span class="name-icon"></span>
<!-- <span class="info-label">企业名称</span> -->
<span class="info-value">{{ certData.qymc }}</span>
</div>
<div class="info-row">
<span class="eid-icon"></span>
<!-- <span class="info-label">统一社会信用代码</span> -->
<span class="info-value">{{ certData.nsrsbh }}</span>
</div>
<div class="info-row">
<span class="cert-icon"></span>
<span class="info-label">认证时间</span>
<span class="info-value">{{ formatDate(certData.lrrq) }}</span>
</div>
</div>
</template>
<template v-else>
<div class="cert-empty">
<span>暂未认证企业信息</span>
</div>
</template>
<!-- <div class="cert-actions">
<button class="cert-btn" @click="handleClick">
<span>{{ certData.qymc ? '查看详情' : '立即认证' }}</span>
<ArrowRightIcon />
</button>
</div> -->
</div>
</div>
</div>
</template>
<script>
import api from '@/pages/index/api/gxzx/index.js';
import { ArrowRightIcon } from 'tdesign-icons-vue';
export default {
name: 'EnterpriseCert',
components: {
ArrowRightIcon,
},
data() {
return {
certData: {
qymc: '',
},
};
},
mounted() {
this.fetchCertData();
},
methods: {
async fetchCertData() {
try {
const { data } = await api.init();
this.certData = data || {};
} catch (error) {
console.error('获取企业认证信息失败', error);
this.certData = {};
}
},
formatDate(dateStr) {
if (!dateStr) return '-';
const date = new Date(dateStr);
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
},
handleClick() {
this.$router.push('/yhzx/qyrenzheng');
},
},
};
</script>
<style lang="less" scoped>
@green-primary: #00B42A;
@green-dark: #008530;
@green-light: #E8FFEA;
@text-dark: #1D2129;
@text-muted: #4E5969;
@text-light: #86909C;
@bg-card: #FFFFFF;
.enterprise-cert {
position: relative;
width: 280px;
height: 170px;
overflow: hidden;
background: @bg-card;
border-radius: 4px;
box-shadow: 0 4px 8px 0 rgba(0, 185, 107, 0.2);
}
.cert-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('./cert-bg.png');
background-size: cover;
background-position: center;
opacity: 0.6;
pointer-events: none;
}
.cert-content {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
height: 100%;
padding: 20px;
}
.cert-header {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 16px;
.cert-title {
width: 100%;
display: flex;
align-items: center;
gap: 8px;
justify-content: space-between;
h3 {
margin: 0;
font-size: 16px;
font-weight: 600;
color: @text-dark;
}
.cert-status {
width: 70px;
height: 22px;
background-image: url('./cert-label.png');
background-size: 100% 100%;
background-position: center;
}
}
}
.cert-body {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.cert-info {
display: flex;
flex-direction: column;
gap: 12px;
.info-row {
display: flex;
justify-content: flex-start;
align-items: center;
.info-label {
font-size: 14px;
color: #344F3D;
margin: 0 4px;
}
.info-value {
font-size: 14px;
// font-weight: 500;
color: #344F3D;
}
}
.name-icon {
display: flex;
width: 20px;
height: 20px;
background-image: url('./cert-icon.png');
background-size: 100% 100%;
background-position: center;
margin-right: 4px;
}
.eid-icon {
display: flex;
width: 20px;
height: 20px;
background-image: url('./eid-icon.png');
background-size: 100% 100%;
background-position: center;
margin-right: 4px;
}
.cert-icon {
display: flex;
width: 20px;
height: 20px;
background-image: url('./cert-icon.png');
background-size: 100% 100%;
background-position: center;
}
}
.cert-empty {
display: flex;
align-items: center;
justify-content: center;
flex: 1;
font-size: 12px;
color: @text-muted;
}
.cert-actions {
margin-top: auto;
.cert-btn {
display: flex;
width: 100%;
padding: 8px;
font-size: 12px;
font-weight: 600;
color: @green-primary;
cursor: pointer;
background: @green-light;
border: 1px solid rgba(0, 180, 42, 0.2);
border-radius: 4px;
transition: all 0.3s ease;
align-items: center;
justify-content: center;
gap: 4px;
&:hover {
color: #fff;
background: @green-primary;
border-color: @green-primary;
}
.t-icon {
font-size: 12px;
transition: transform 0.3s ease;
}
&:hover .t-icon {
transform: translateX(3px);
}
}
}
</style>