已认证页面
This commit is contained in:
parent
9e1d8dfa37
commit
8551a4cf09
BIN
src/assets/renzheng.png
Normal file
BIN
src/assets/renzheng.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 272 KiB |
456
src/views/admin/account/realnameAuthTrue/index.vue
Normal file
456
src/views/admin/account/realnameAuthTrue/index.vue
Normal file
@ -0,0 +1,456 @@
|
||||
<template>
|
||||
<div class="real-name-auth">
|
||||
<!-- 页面标题 -->
|
||||
<div class="page-title-area">
|
||||
<h2 class="page-title">实名认证</h2>
|
||||
<p class="page-description">
|
||||
Fast亼算云严格遵守国家相关个人信息隐私保护规定,并不存储使用您的个人信息,
|
||||
<a href="#" class="protocol-link">查看实名认证协议</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- 认证信息卡片 -->
|
||||
<div class="auth-card">
|
||||
<div class="card-content">
|
||||
<!-- 左侧信息区 -->
|
||||
<div class="info-left">
|
||||
<!-- 卡片标题 -->
|
||||
<div class="card-title">
|
||||
<div class="auth-status">
|
||||
<span class="status-dot"></span>
|
||||
<span class="status-text">已认证</span>
|
||||
</div>
|
||||
<h3 class="auth-type">个人认证</h3>
|
||||
</div>
|
||||
|
||||
<!-- 信息网格 -->
|
||||
<div class="info-grid">
|
||||
<div class="info-item">
|
||||
<div class="info-label">认证类型</div>
|
||||
<div class="info-value">个人认证</div>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<div class="info-label">认证时间</div>
|
||||
<div class="info-value">2025-11-18</div>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<div class="info-label">证件类型</div>
|
||||
<div class="info-value">身份证</div>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<div class="info-label">身份证号</div>
|
||||
<div class="info-value">
|
||||
<span>150************859</span>
|
||||
<a-button type="link" size="small" @click="handleCopy">复制</a-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<div class="info-label">认证人</div>
|
||||
<div class="info-value">*如</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 右侧图片区 -->
|
||||
<div class="image-right">
|
||||
<img src="../../../../assets/renzheng.png" alt="认证" class="auth-image" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 操作区域 -->
|
||||
<div class="card-actions">
|
||||
<a-button type="primary" size="large" @click="handleChangeAuth">
|
||||
变更为企业认证
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 分割线 -->
|
||||
<div class="divider"></div>
|
||||
|
||||
<!-- 变更记录 -->
|
||||
<div class="record-section">
|
||||
<div class="section-header">
|
||||
<h3 class="section-title">变更记录</h3>
|
||||
<!-- <div class="section-actions">
|
||||
<a-button type="link" size="small" @click="handleExport">导出记录</a-button>
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<a-table :columns="columns" :data-source="dataSource" :pagination="false" :bordered="true"
|
||||
class="change-record-table">
|
||||
<template #empty>
|
||||
<div class="empty-state">
|
||||
<div class="empty-icon">📄</div>
|
||||
<p class="empty-text">暂无变更记录</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template #status="{ text }">
|
||||
<span :class="['status-tag', getStatusClass(text)]">
|
||||
{{ text }}
|
||||
</span>
|
||||
</template>
|
||||
</a-table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
import { Button as AButton, Table as ATable, message } from 'ant-design-vue';
|
||||
|
||||
// 表格列定义
|
||||
const columns = [
|
||||
{
|
||||
title: '变更类型',
|
||||
dataIndex: 'type',
|
||||
key: 'type',
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
title: '变更时间',
|
||||
dataIndex: 'time',
|
||||
key: 'time',
|
||||
width: 160,
|
||||
},
|
||||
{
|
||||
title: '变更状态',
|
||||
dataIndex: 'status',
|
||||
key: 'status',
|
||||
width: 100,
|
||||
slots: { customRender: 'status' },
|
||||
},
|
||||
{
|
||||
title: '操作人',
|
||||
dataIndex: 'operator',
|
||||
key: 'operator',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
title: '备注',
|
||||
dataIndex: 'remark',
|
||||
key: 'remark',
|
||||
ellipsis: true,
|
||||
},
|
||||
];
|
||||
|
||||
// 表格数据
|
||||
const dataSource = ref([
|
||||
{
|
||||
key: '1',
|
||||
type: '个人认证',
|
||||
time: '2025-11-18 14:30:25',
|
||||
status: '成功',
|
||||
operator: '系统',
|
||||
remark: '首次实名认证',
|
||||
},
|
||||
]);
|
||||
|
||||
const getStatusClass = (status) => {
|
||||
const statusMap = {
|
||||
'成功': 'status-success',
|
||||
'失败': 'status-failed',
|
||||
'处理中': 'status-processing',
|
||||
};
|
||||
return statusMap[status] || '';
|
||||
};
|
||||
|
||||
const handleCopy = () => {
|
||||
message.success('身份证号已复制');
|
||||
};
|
||||
|
||||
const handleChangeAuth = () => {
|
||||
message.info('跳转至企业认证页面');
|
||||
};
|
||||
|
||||
const handleExport = () => {
|
||||
message.info('导出变更记录');
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.real-name-auth {
|
||||
padding: 24px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
||||
background-color: #fafafa;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
/* 页面标题区域 */
|
||||
.page-title-area {
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
.page-title {
|
||||
margin: 0 0 12px;
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
color: #262626;
|
||||
}
|
||||
|
||||
.page-description {
|
||||
margin: 0;
|
||||
color: #8c8c8c;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.protocol-link {
|
||||
color: #1890ff;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.protocol-link:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* 认证卡片 */
|
||||
.auth-card {
|
||||
background: white;
|
||||
border-radius: 8px;
|
||||
padding: 24px;
|
||||
margin-bottom: 24px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
|
||||
border: 1px solid #f0f0f0;
|
||||
}
|
||||
|
||||
/* 卡片内容区域 - 左右布局 */
|
||||
.card-content {
|
||||
display: flex;
|
||||
gap: 40px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
/* 左侧信息区 */
|
||||
.info-left {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.card-title {
|
||||
margin-bottom: 24px;
|
||||
padding-bottom: 16px;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
}
|
||||
|
||||
.auth-status {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
padding: 4px 8px;
|
||||
background: #f6ffed;
|
||||
border-radius: 4px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.status-dot {
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
background: #52c41a;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.status-text {
|
||||
color: #52c41a;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.auth-type {
|
||||
margin: 0;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #262626;
|
||||
}
|
||||
|
||||
/* 信息网格 */
|
||||
.info-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.info-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.info-label {
|
||||
color: #595959cf;
|
||||
font-size: 14px;
|
||||
margin-bottom: 6px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.info-value {
|
||||
color: #262626;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
/* 右侧图片区 */
|
||||
.image-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 150px;
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
.auth-image {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
object-fit: contain;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
/* 操作按钮 */
|
||||
.card-actions {
|
||||
padding-top: 16px;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.card-actions .ant-btn {
|
||||
width: 100%;
|
||||
height: 40px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* 分割线 */
|
||||
.divider {
|
||||
height: 1px;
|
||||
background: #f0f0f0;
|
||||
margin: 32px 0;
|
||||
}
|
||||
|
||||
/* 变更记录区域 */
|
||||
.record-section {
|
||||
background: white;
|
||||
border-radius: 8px;
|
||||
padding: 24px;
|
||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
|
||||
border: 1px solid #f0f0f0;
|
||||
}
|
||||
|
||||
.section-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
margin: 0;
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #262626;
|
||||
}
|
||||
|
||||
.section-actions .ant-btn-link {
|
||||
color: #1890ff;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
/* 表格样式 */
|
||||
.change-record-table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.change-record-table :deep(.ant-table-thead > tr > th) {
|
||||
background: #fafafa;
|
||||
color: #595959;
|
||||
font-weight: 500;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
padding: 12px 16px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.change-record-table :deep(.ant-table-tbody > tr > td) {
|
||||
padding: 12px 16px;
|
||||
font-size: 13px;
|
||||
color: #262626;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
}
|
||||
|
||||
.change-record-table :deep(.ant-table-tbody > tr:hover > td) {
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
/* 状态标签 */
|
||||
.status-tag {
|
||||
display: inline-block;
|
||||
padding: 2px 8px;
|
||||
border-radius: 2px;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.status-success {
|
||||
background: #f6ffed;
|
||||
color: #52c41a;
|
||||
}
|
||||
|
||||
.status-failed {
|
||||
background: #fff2f0;
|
||||
color: #ff4d4f;
|
||||
}
|
||||
|
||||
.status-processing {
|
||||
background: #e6f7ff;
|
||||
color: #1890ff;
|
||||
}
|
||||
|
||||
/* 空状态 */
|
||||
.empty-state {
|
||||
padding: 48px 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.empty-icon {
|
||||
font-size: 24px;
|
||||
margin-bottom: 12px;
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
.empty-text {
|
||||
color: #bfbfbf;
|
||||
font-size: 14px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* 响应式 */
|
||||
@media (max-width: 768px) {
|
||||
.real-name-auth {
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.card-content {
|
||||
flex-direction: column;
|
||||
gap: 24px;
|
||||
}
|
||||
|
||||
.info-grid {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 16px;
|
||||
}
|
||||
|
||||
.image-right {
|
||||
width: 100%;
|
||||
order: -1;
|
||||
}
|
||||
|
||||
.auth-image {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.auth-card,
|
||||
.record-section {
|
||||
padding: 16px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Loading…
x
Reference in New Issue
Block a user