Industrial-image-management.../src/views/enterprise-settings/company-info/index.vue

271 lines
8.5 KiB
Vue
Raw Normal View History

2025-07-30 09:13:52 +08:00
<template>
<GiPageLayout>
<div class="enterprise-info-container">
<!-- 企业基本信息卡片 -->
<a-card title="企业基本信息" class="mb-6">
<template #extra>
<a-button type="primary" @click="editCompanyInfo">
<template #icon><icon-edit /></template>
编辑信息
</a-button>
</template>
2025-07-30 09:13:52 +08:00
<a-descriptions :column="2" bordered>
<a-descriptions-item label="企业名称">{{ companyInfo.name }}</a-descriptions-item>
<a-descriptions-item label="统一社会信用代码">{{ companyInfo.creditCode }}</a-descriptions-item>
<a-descriptions-item label="法定代表人">{{ companyInfo.legalPerson }}</a-descriptions-item>
<a-descriptions-item label="注册资本">{{ companyInfo.registeredCapital }}</a-descriptions-item>
<a-descriptions-item label="成立日期">{{ companyInfo.establishDate }}</a-descriptions-item>
<a-descriptions-item label="营业期限">{{ companyInfo.businessTerm }}</a-descriptions-item>
<a-descriptions-item label="注册地址" :span="2">{{ companyInfo.registeredAddress }}</a-descriptions-item>
<a-descriptions-item label="经营范围" :span="2">{{ companyInfo.businessScope }}</a-descriptions-item>
<a-descriptions-item label="联系电话">{{ companyInfo.phone }}</a-descriptions-item>
<a-descriptions-item label="企业邮箱">{{ companyInfo.email }}</a-descriptions-item>
<a-descriptions-item label="官方网站">{{ companyInfo.website }}</a-descriptions-item>
<a-descriptions-item label="员工人数">{{ companyInfo.employeeCount }}</a-descriptions-item>
</a-descriptions>
</a-card>
<!-- 企业资质证书 -->
<a-card title="企业资质证书" class="mb-6">
<template #extra>
<a-button @click="addCertificate">
<template #icon><icon-plus /></template>
新增证书
</a-button>
</template>
2025-07-30 09:13:52 +08:00
<a-row :gutter="16">
<a-col
v-for="cert in certificates"
:key="cert.id"
:span="8"
2025-07-30 09:13:52 +08:00
class="mb-4"
>
<a-card hoverable>
<template #cover>
<img
:src="cert.image"
2025-07-30 09:13:52 +08:00
:alt="cert.name"
style="height: 200px; object-fit: cover;"
/>
</template>
<a-card-meta
:title="cert.name"
2025-07-30 09:13:52 +08:00
:description="cert.description"
/>
<template #actions>
<a-link @click="viewCertificate(cert)">查看</a-link>
<a-link @click="editCertificate(cert)">编辑</a-link>
<a-link @click="deleteCertificate(cert)">删除</a-link>
</template>
</a-card>
</a-col>
</a-row>
</a-card>
<!-- 银行信息 -->
<a-card title="银行账户信息" class="mb-6">
<template #extra>
<a-button @click="addBankAccount">
<template #icon><icon-plus /></template>
新增账户
</a-button>
</template>
2025-07-30 09:13:52 +08:00
<GiTable
row-key="id"
:data="bankAccounts"
:columns="bankColumns"
:pagination="false"
>
<template #accountType="{ record }">
<a-tag :color="getBankTypeColor(record.accountType)">
{{ record.accountType }}
</a-tag>
</template>
2025-07-30 09:13:52 +08:00
<template #isDefault="{ record }">
<a-tag v-if="record.isDefault" color="green">默认账户</a-tag>
<span v-else>-</span>
</template>
2025-07-30 09:13:52 +08:00
<template #action="{ record }">
<a-space>
<a-link @click="editBankAccount(record)">编辑</a-link>
<a-link @click="setDefaultAccount(record)" v-if="!record.isDefault">设为默认</a-link>
2025-07-30 09:13:52 +08:00
<a-link @click="deleteBankAccount(record)">删除</a-link>
</a-space>
</template>
</GiTable>
</a-card>
<!-- 企业统计信息 -->
<a-card title="企业统计信息">
<a-row :gutter="16">
<a-col :span="6">
<a-statistic title="年营业额" :value="statistics.annualRevenue" suffix="万元" />
</a-col>
<a-col :span="6">
<a-statistic title="项目总数" :value="statistics.totalProjects" />
</a-col>
<a-col :span="6">
<a-statistic title="在建项目" :value="statistics.ongoingProjects" />
</a-col>
<a-col :span="6">
<a-statistic title="客户数量" :value="statistics.clientCount" />
</a-col>
</a-row>
</a-card>
</div>
</GiPageLayout>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue'
2025-07-30 09:13:52 +08:00
import { Message } from '@arco-design/web-vue'
import type { TableColumnData } from '@arco-design/web-vue'
// 企业基本信息
const companyInfo = reactive({
name: '风电智能检测技术有限公司',
creditCode: '91110000123456789X',
legalPerson: '张三',
registeredCapital: '5000万元',
establishDate: '2018-03-15',
businessTerm: '2018-03-15至无固定期限',
registeredAddress: '北京市朝阳区科技园区创新大厦8层',
businessScope: '风力发电设备检测技术开发;技术咨询;技术服务;智能检测设备销售;工程技术咨询;专业技术服务',
phone: '010-12345678',
email: 'info@windtech.com',
website: 'https://www.windtech.com',
employeeCount: '158人'
2025-07-30 09:13:52 +08:00
})
// 企业资质证书
const certificates = ref([
{
id: 1,
name: '高新技术企业证书',
description: '有效期2023-12-31',
image: '/api/placeholder/300/200',
issueDate: '2021-01-01',
expiryDate: '2023-12-31'
2025-07-30 09:13:52 +08:00
},
{
id: 2,
name: 'ISO9001质量管理体系认证',
description: '有效期2025-06-30',
image: '/api/placeholder/300/200',
issueDate: '2022-07-01',
expiryDate: '2025-06-30'
2025-07-30 09:13:52 +08:00
},
{
id: 3,
name: '安全生产许可证',
description: '有效期2024-12-31',
image: '/api/placeholder/300/200',
issueDate: '2021-01-01',
expiryDate: '2024-12-31'
}
2025-07-30 09:13:52 +08:00
])
// 银行账户信息
const bankAccounts = ref([
{
id: 1,
bankName: '中国工商银行',
accountNumber: '1234567890123456789',
accountName: '风电智能检测技术有限公司',
accountType: '基本户',
isDefault: true
2025-07-30 09:13:52 +08:00
},
{
id: 2,
bankName: '中国建设银行',
accountNumber: '9876543210987654321',
accountName: '风电智能检测技术有限公司',
accountType: '一般户',
isDefault: false
}
2025-07-30 09:13:52 +08:00
])
// 银行账户表格列配置
const bankColumns: TableColumnData[] = [
{ title: '开户银行', dataIndex: 'bankName', width: 200 },
{ title: '银行账号', dataIndex: 'accountNumber', width: 200 },
{ title: '账户名称', dataIndex: 'accountName', width: 250 },
{ title: '账户类型', dataIndex: 'accountType', slotName: 'accountType', width: 120 },
{ title: '默认账户', dataIndex: 'isDefault', slotName: 'isDefault', width: 100 },
{ title: '操作', slotName: 'action', width: 200 }
2025-07-30 09:13:52 +08:00
]
// 企业统计信息
const statistics = reactive({
annualRevenue: 12580,
totalProjects: 156,
ongoingProjects: 23,
clientCount: 68
2025-07-30 09:13:52 +08:00
})
// 获取银行账户类型颜色
const getBankTypeColor = (type: string) => {
const colorMap: Record<string, string> = {
'基本户': 'blue',
'一般户': 'green',
'专用户': 'orange'
2025-07-30 09:13:52 +08:00
}
return colorMap[type] || 'gray'
}
// 操作方法
const editCompanyInfo = () => {
Message.info('编辑企业信息功能开发中...')
}
const addCertificate = () => {
Message.info('新增资质证书功能开发中...')
}
const viewCertificate = (cert: any) => {
Message.info(`查看证书: ${cert.name}`)
}
const editCertificate = (cert: any) => {
Message.info(`编辑证书: ${cert.name}`)
}
const deleteCertificate = (cert: any) => {
Message.info(`删除证书: ${cert.name}`)
}
const addBankAccount = () => {
Message.info('新增银行账户功能开发中...')
}
const editBankAccount = (account: any) => {
Message.info(`编辑银行账户: ${account.bankName}`)
}
const setDefaultAccount = (account: any) => {
Message.info(`设置默认账户: ${account.bankName}`)
}
const deleteBankAccount = (account: any) => {
Message.info(`删除银行账户: ${account.bankName}`)
}
</script>
<style scoped>
.enterprise-info-container {
padding: 16px;
}
.mb-6 {
margin-bottom: 24px;
}
.mb-4 {
margin-bottom: 16px;
}
</style>