From 9c38588a8fe9693802feb70bb7a5819e26138324 Mon Sep 17 00:00:00 2001 From: cwchen <1048842385@qq.com> Date: Tue, 21 Oct 2025 10:37:49 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=BA=E5=91=98=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.js | 21 +- .../components/EnterpriseKnowledge.vue | 159 ++--- .../enterpriseLibrary/enterprise/index.vue | 52 -- .../enterpriseLibrary/personnel/index.vue | 617 ++++++++++++++++++ 4 files changed, 717 insertions(+), 132 deletions(-) create mode 100644 src/views/enterpriseLibrary/personnel/index.vue diff --git a/src/router/index.js b/src/router/index.js index 066f3c1..91dde3d 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -237,7 +237,7 @@ export const dynamicRoutes = [ ] }, { - path: '/EnterpriseForm', + path: '/enterpriseForm', component: Layout, hidden: true, permissions: ['enterpriseLibrary:enterprise:add'], @@ -251,7 +251,7 @@ export const dynamicRoutes = [ ] }, { - path: '/EnterpriseDetail', + path: '/enterpriseDetail', component: Layout, hidden: true, permissions: ['enterpriseLibrary:enterprise:detail'], @@ -265,7 +265,7 @@ export const dynamicRoutes = [ ] }, { - path: '/EnterpriseKnowledge', + path: '/enterpriseKnowledge', component: Layout, hidden: true, permissions: ['enterpriseLibrary:enterprise:EnterpriseKnowledge'], @@ -277,9 +277,22 @@ export const dynamicRoutes = [ meta: { title: '企业知识库', activeMenu: '/enterpriseLibrary/enterprise', noCache: true } } ] + }, + { + path: '/personnel', + component: Layout, + hidden: true, + permissions: ['enterpriseLibrary:personnel:list'], + children: [ + { + path: 'index', + component: () => import('@/views/enterpriseLibrary/personnel/index'), + name: 'Personnel', + meta: { title: '人员库', activeMenu: '/enterpriseLibrary/personnel', noCache: true } + } + ] } - ] // 防止连续点击多次路由报错 diff --git a/src/views/enterpriseLibrary/enterprise/components/EnterpriseKnowledge.vue b/src/views/enterpriseLibrary/enterprise/components/EnterpriseKnowledge.vue index 5264290..86cd1df 100644 --- a/src/views/enterpriseLibrary/enterprise/components/EnterpriseKnowledge.vue +++ b/src/views/enterpriseLibrary/enterprise/components/EnterpriseKnowledge.vue @@ -9,69 +9,18 @@
- -
+
- 业绩库 +
-

业绩库

-

业绩库主要管理企业的项目业绩信息, 包括合同、验收报告、中标通知书等

-
-
- - -
-
- 人员库 -
-
-

人员库

-

人员库主要管理企业的人员资质信息, 包括岗位、工作经验、员工证书等

-
-
- - -
-
- 资质库 -
-
-

资质库

-

资质库主要管理企业的资质证书信息, 包括软著、专利、荣誉等

-
-
- - -
-
- 技术方案库 -
-
-

技术方案库

-

解决方案库主要用于管理企业内部技术方案、产品方案、项目方案等

-
-
- - -
-
- 工器具库 -
-
-

工器具库

-

工器具库主要用于登记工器具资料信息, 统一管理工器具清单等

-
-
- - -
-
- 财务库 -
-
-

财务库

-

财务库主要管理企业的财务报告文档, 包括审计报告、年报等

+

{{ card.title }}

+

{{ card.description }}

@@ -86,7 +35,57 @@ export default { data() { return { enterpriseId: this.$route.query.id, - enterpriseKnowledgeIcon + enterpriseKnowledgeIcon, + knowledgeCards: [ + { + type: 'performance', + title: '业绩库', + description: '业绩库主要管理企业的项目业绩信息, 包括合同、验收报告、中标通知书等', + icon: enterpriseKnowledgeIcon, + path: '/enterpriseLibrary/enterprise/performance', + name: 'Performance' + }, + { + type: 'personnel', + title: '人员库', + description: '人员库主要管理企业的人员资质信息, 包括岗位、工作经验、员工证书等', + icon: enterpriseKnowledgeIcon, + path: '/enterpriseLibrary/enterprise/personnel', + name: 'Personnel' + }, + { + type: 'qualification', + title: '资质库', + description: '资质库主要管理企业的资质证书信息, 包括软著、专利、荣誉等', + icon: enterpriseKnowledgeIcon, + path: '/enterpriseLibrary/enterprise/qualification', + name: 'Qualification' + }, + { + type: 'technical', + title: '技术方案库', + description: '解决方案库主要用于管理企业内部技术方案、产品方案、项目方案等', + icon: enterpriseKnowledgeIcon, + path: '/enterpriseLibrary/enterprise/technical', + name: 'Technical' + }, + { + type: 'tools', + title: '工器具库', + description: '工器具库主要用于登记工器具资料信息, 统一管理工器具清单等', + icon: enterpriseKnowledgeIcon, + path: '/enterpriseLibrary/enterprise/tools', + name: 'Tools' + }, + { + type: 'financial', + title: '财务库', + description: '财务库主要管理企业的财务报告文档, 包括审计报告、年报等', + icon: enterpriseKnowledgeIcon, + path: '/enterpriseLibrary/enterprise/financial', + name: 'Financial' + } + ] } }, methods: { @@ -96,25 +95,33 @@ export default { }, // 卡片点击事件 - handleCardClick(type) { - console.log('点击了知识库类型:', type) - // 这里可以根据不同类型跳转到不同的页面 - this.$message.info(`点击了${this.getCardTitle(type)}`) + handleCardClick(card) { + console.log('点击了知识库类型:', card.type) + + // 查找对应的卡片数据 + if (card && card.path) { + // 如果有路径,则跳转到对应页面 + this.$router.push({ + // path: card.path, + name: card.name, + query: { + enterpriseId: this.enterpriseId + } + }) + } else { + // 否则显示提示信息 + this.$message.info(`点击了${this.getCardTitle(type)}`) + } }, // 获取卡片标题 getCardTitle(type) { - const titles = { - 'performance': '业绩库', - 'personnel': '人员库', - 'qualification': '资质库', - 'technical': '技术方案库', - 'tools': '工器具库', - 'financial': '财务库' - } - return titles[type] || '未知' - } - } + const card = this.knowledgeCards.find(item => item.type === type) + return card ? card.title : '未知' + }, + + }, + } diff --git a/src/views/enterpriseLibrary/enterprise/index.vue b/src/views/enterpriseLibrary/enterprise/index.vue index 31e2079..b2aee7a 100644 --- a/src/views/enterpriseLibrary/enterprise/index.vue +++ b/src/views/enterpriseLibrary/enterprise/index.vue @@ -681,56 +681,4 @@ export default { } } } - -// 响应式设计 -@media (max-width: 1200px) { - .enterprise-grid { - grid-template-columns: repeat(3, 1fr); - } -} - -@media (max-width: 900px) { - .enterprise-grid { - grid-template-columns: repeat(2, 1fr); - } -} - -@media (max-width: 768px) { - .search-container { - .search-content { - flex-direction: column; - align-items: flex-start; - gap: 15px; - } - - .search-right { - width: 100%; - - .search-input { - width: 100%; - max-width: 300px; - } - } - } - - .enterprise-grid { - grid-template-columns: 1fr; - } - - .enterprise-actions { - flex-direction: column; - - .el-button { - width: 100%; - margin-bottom: 8px; - } - } - - .pagination-container { - .el-pagination { - flex-wrap: wrap; - justify-content: center; - } - } -} diff --git a/src/views/enterpriseLibrary/personnel/index.vue b/src/views/enterpriseLibrary/personnel/index.vue new file mode 100644 index 0000000..6dd371d --- /dev/null +++ b/src/views/enterpriseLibrary/personnel/index.vue @@ -0,0 +1,617 @@ + + + + + \ No newline at end of file