From 9a15e9f21304300b18a82eaad52a372fae110b35 Mon Sep 17 00:00:00 2001 From: huliyong <2783385703@qq.com> Date: Thu, 15 May 2025 22:31:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E9=85=8D=E7=BD=AE=E5=92=8CAPI=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增`.env.production`文件,配置生产环境API基础URL - 优化`vite.config.js`,支持环境变量和API代理配置 - 重构`request.js`,简化请求拦截器和响应处理逻辑 - 新增`cases.js`和`config.js`存储模块,管理案例和配置数据 - 更新`index.html`,修改页面标题为公司名称 - 优化`CaseDetail.vue`和`Team.vue`,使用新的存储模块和组件 - 新增`CaseItem.vue`和`TeamMemberCard.vue`组件,提升代码复用性 - 删除旧的`casesStore.js`和`caseList.vue`,统一使用新的存储和组件 - 更新`App.vue`,使用配置存储动态渲染导航栏和页脚内容 --- .env.development | 8 +- .env.production | 3 + create_database.sql | 158 +++++ index.html | 15 +- src/App.vue | 31 +- src/api/index.js | 16 + src/assets/scss/main.scss | 1 + src/components/CallToAction.vue | 251 +++++++ src/components/TeamMemberCard.vue | 207 ++++++ src/components/case/caseList.vue | 167 ----- src/components/cases/CaseItem.vue | 219 ++++++ src/components/home/CaseSection.vue | 74 +++ src/components/home/ServiceSection.vue | 235 ++++--- src/main.js | 1 + src/stores/cases.js | 19 + src/stores/casesStore.js | 150 ----- src/stores/config.js | 26 + src/utils/README.md | 84 --- src/utils/api.js | 46 -- src/utils/request.js | 144 ++-- src/views/company/About.vue | 707 +++++++++++++++++--- src/views/company/JobDetail.vue | 3 + src/views/company/Team.vue | 163 +---- src/views/pages/CaseDetail.vue | 129 +++- src/views/pages/Cases.vue | 810 ++++++++-------------- src/views/pages/Contact.vue | 1142 +++++++++++++++++++++++++------- src/views/pages/Home.vue | 635 ++++++++---------- src/views/pages/Services.vue | 660 ++++++------------ vite.config.js | 28 +- 29 files changed, 3595 insertions(+), 2537 deletions(-) create mode 100644 .env.production create mode 100644 create_database.sql create mode 100644 src/api/index.js create mode 100644 src/components/CallToAction.vue create mode 100644 src/components/TeamMemberCard.vue delete mode 100644 src/components/case/caseList.vue create mode 100644 src/components/cases/CaseItem.vue create mode 100644 src/components/home/CaseSection.vue create mode 100644 src/stores/cases.js delete mode 100644 src/stores/casesStore.js create mode 100644 src/stores/config.js delete mode 100644 src/utils/README.md delete mode 100644 src/utils/api.js diff --git a/.env.development b/.env.development index 65aa3ee..d30cbe6 100644 --- a/.env.development +++ b/.env.development @@ -1,5 +1,5 @@ -# 开发环境API基础URL -VITE_API_BASE_URL=http://localhost:3000 -# 其他开发环境变量 -# VITE_APP_MODE=development \ No newline at end of file + + +# 开发环境 +VITE_APP_BASE_API = '/dev-api' \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..b0ca002 --- /dev/null +++ b/.env.production @@ -0,0 +1,3 @@ + +# 生产环境 +VITE_APP_BASE_API = '/prod-api' \ No newline at end of file diff --git a/create_database.sql b/create_database.sql new file mode 100644 index 0000000..bed2a3b --- /dev/null +++ b/create_database.sql @@ -0,0 +1,158 @@ +-- 创建数据库 +CREATE DATABASE IF NOT EXISTS hanhai_website COMMENT='瀚海黎明官方网站数据库'; +USE hanhai_website; + +-- 创建服务表:存储网站提供的服务信息 +CREATE TABLE services ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT '服务ID,自增主键', + icon VARCHAR(255) NOT NULL COMMENT '服务图标URL', + title VARCHAR(100) NOT NULL COMMENT '服务标题', + description TEXT NOT NULL COMMENT '服务详细描述', + category VARCHAR(50) NULL COMMENT '服务分类', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) COMMENT='服务信息表'; + +-- 创建案例表:存储公司完成的项目案例 +CREATE TABLE cases ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT '案例ID,自增主键', + title VARCHAR(100) NOT NULL COMMENT '案例标题', + description TEXT NOT NULL COMMENT '案例简介', + image VARCHAR(255) NOT NULL COMMENT '案例主图URL', + category VARCHAR(50) NOT NULL COMMENT '案例分类', + client VARCHAR(100) NOT NULL COMMENT '客户名称', + completion_date VARCHAR(50) NOT NULL COMMENT '完成日期', + challenge TEXT NOT NULL COMMENT '客户面临的挑战', + solution TEXT NOT NULL COMMENT '提供的解决方案', + results TEXT NOT NULL COMMENT '项目成果', + testimonial TEXT NULL COMMENT '客户评价', + testimonial_author VARCHAR(100) NULL COMMENT '评价人及职位', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) COMMENT='项目案例表'; + +-- 创建案例服务关联表:存储案例使用的服务列表 +CREATE TABLE case_services ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT '关联ID,自增主键', + case_id INT NOT NULL COMMENT '关联的案例ID', + service_name VARCHAR(100) NOT NULL COMMENT '服务名称', + FOREIGN KEY (case_id) REFERENCES cases(id) ON DELETE CASCADE COMMENT '外键关联案例表,案例删除时级联删除' +) COMMENT='案例服务关联表'; + +-- 创建案例图库表:存储案例的多张展示图片 +CREATE TABLE case_gallery ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT '图片ID,自增主键', + case_id INT NOT NULL COMMENT '关联的案例ID', + image_url VARCHAR(255) NOT NULL COMMENT '图片URL', + display_order INT NOT NULL DEFAULT 0 COMMENT '显示顺序', + FOREIGN KEY (case_id) REFERENCES cases(id) ON DELETE CASCADE COMMENT '外键关联案例表,案例删除时级联删除' +) COMMENT='案例图库表'; + +-- 创建团队成员表:存储公司团队成员信息 +CREATE TABLE team_members ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT '成员ID,自增主键', + name VARCHAR(50) NOT NULL COMMENT '成员姓名', + position VARCHAR(100) NOT NULL COMMENT '职位', + bio TEXT NOT NULL COMMENT '个人简介', + photo VARCHAR(255) NOT NULL COMMENT '照片URL', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) COMMENT='团队成员表'; + +-- 创建社交媒体表:存储团队成员的社交媒体链接 +CREATE TABLE social_media ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT '社交媒体ID,自增主键', + member_id INT NOT NULL COMMENT '关联的成员ID', + type VARCHAR(50) NOT NULL COMMENT '社交媒体类型(如wechat, linkedin)', + url VARCHAR(255) NOT NULL COMMENT '社交媒体链接', + qrcode VARCHAR(255) NULL COMMENT '二维码图片URL(微信等)', + FOREIGN KEY (member_id) REFERENCES team_members(id) ON DELETE CASCADE COMMENT '外键关联成员表,成员删除时级联删除' +) COMMENT='社交媒体表'; + +-- 创建职位表:存储招聘职位信息 +CREATE TABLE job_openings ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT '职位ID,自增主键', + title VARCHAR(100) NOT NULL COMMENT '职位名称', + description TEXT NOT NULL COMMENT '职位描述', + requirements TEXT NULL COMMENT '职位要求', + link VARCHAR(255) NOT NULL COMMENT '职位详情链接', + is_active BOOLEAN DEFAULT TRUE COMMENT '是否激活', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) COMMENT='招聘职位表'; + +-- 创建组件表:存储网站可复用组件的配置 +CREATE TABLE components ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT '组件ID,自增主键', + name VARCHAR(100) NOT NULL COMMENT '组件名称', + type VARCHAR(50) NOT NULL COMMENT '组件类型', + content JSON NOT NULL COMMENT '组件内容(JSON格式)', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) COMMENT='网站组件表'; + +-- 创建用户表:存储后台管理用户 +CREATE TABLE users ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID,自增主键', + username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名', + password VARCHAR(255) NOT NULL COMMENT '密码(加密存储)', + email VARCHAR(100) NOT NULL UNIQUE COMMENT '电子邮箱', + role VARCHAR(20) NOT NULL DEFAULT 'editor' COMMENT '用户角色(admin/editor)', + last_login TIMESTAMP NULL COMMENT '最后登录时间', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间' +) COMMENT='后台用户表'; + +-- 创建联系表单表:存储网站访客提交的联系信息 +CREATE TABLE contact_messages ( + id INT PRIMARY KEY AUTO_INCREMENT COMMENT '消息ID,自增主键', + name VARCHAR(100) NOT NULL COMMENT '联系人姓名', + email VARCHAR(100) NOT NULL COMMENT '联系人邮箱', + phone VARCHAR(20) NULL COMMENT '联系电话', + subject VARCHAR(200) NOT NULL COMMENT '主题', + message TEXT NOT NULL COMMENT '消息内容', + status VARCHAR(20) DEFAULT 'unread' COMMENT '消息状态(unread/read/replied)', + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间' +) COMMENT='联系表单消息表'; + +-- 向服务表插入初始数据 +INSERT INTO services (icon, title, description) VALUES +('https://cdn-icons-png.flaticon.com/512/2920/2920277.png', '定制软件开发', '根据您的业务需求,量身定制专属软件解决方案'), +('https://cdn-icons-png.flaticon.com/512/2586/2586488.png', '移动应用开发', '打造高性能、用户友好的iOS和Android应用'), +('https://cdn-icons-png.flaticon.com/512/1055/1055687.png', 'Web应用开发', '开发响应式、现代化的Web应用和网站'), +('https://cdn-icons-png.flaticon.com/512/1935/1935765.png', '企业软件解决方案', '提供ERP、CRM等企业级软件解决方案'), +('https://cdn-icons-png.flaticon.com/512/4727/4727266.png', '云服务与DevOps', '云架构设计、部署和DevOps自动化服务'), +('https://cdn-icons-png.flaticon.com/512/1055/1055666.png', 'UI/UX设计', '创造直观、美观且用户友好的界面设计'); + +-- 向案例表插入初始数据 +INSERT INTO cases (title, description, image, category, client, completion_date, challenge, solution, results, testimonial, testimonial_author) VALUES +('智慧校园系统', '为教育机构打造的一体化校园管理系统,涵盖教学、行政、学生服务等多个模块', 'https://images.unsplash.com/photo-1523240795612-9a054b0db644?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80', '企业系统', '某知名高校', '2023年8月', '客户面临的挑战是多个独立系统并行运行,数据不一致,管理效率低下。学生和教职工需要在多个系统间切换,用户体验不佳。', '我们为客户设计并实现了一套集成化的智慧校园系统,整合了教务管理、学生服务、行政办公、资源管理等多个模块。系统采用了统一的用户界面和数据标准,实现了单点登录和数据共享。我们还开发了移动端应用,方便师生随时随地访问系统功能。', '系统上线后,管理效率提升了50%,数据处理错误减少了80%,用户满意度提高了60%。系统的自助服务功能减轻了行政人员的工作负担,让他们能够专注于更有价值的任务。', '微隐软件工作室的团队展现了卓越的项目管理和技术能力。他们深入理解了我们复杂的业务需求,并提供了一套既全面又易用的解决方案。新系统极大地改善了我们的管理效率和服务质量。', '陈校长 - 客户负责人'); + +-- 向案例服务关联表插入数据 +INSERT INTO case_services (case_id, service_name) VALUES +(1, '系统规划'), +(1, '软件开发'), +(1, '数据迁移'), +(1, '用户培训'), +(1, '持续支持'); + +-- 向案例图库表插入数据 +INSERT INTO case_gallery (case_id, image_url, display_order) VALUES +(1, 'https://images.unsplash.com/photo-1523050854058-8df90110c9f1?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80', 1), +(1, 'https://images.unsplash.com/photo-1562774053-701939374585?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80', 2), +(1, 'https://images.unsplash.com/photo-1577896851231-70ef18881754?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80', 3); + +-- 向团队成员表插入初始数据 +INSERT INTO team_members (name, position, bio, photo) VALUES +('张明', '创始人 & CEO', '拥有15年软件开发和团队管理经验,曾在多家知名科技公司担任技术负责人', 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-1.2.1&auto=format&fit=crop&w=634&q=80'), +('李婷', '技术总监', '计算机科学博士,专注于人工智能和大数据领域,拥有多项技术专利', 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&auto=format&fit=crop&w=634&q=80'); + +-- 向社交媒体表插入数据 +INSERT INTO social_media (member_id, type, url, qrcode) VALUES +(1, 'linkedin', 'https://linkedin.com/', NULL), +(1, 'github', 'https://github.com/', NULL), +(1, 'wechat', 'javascript:void(0);', '/images/qrcode-wechat.jpg'), +(1, 'wecom', 'javascript:void(0);', '/images/qrcode-wecom.jpg'), +(2, 'linkedin', 'https://linkedin.com/', NULL), +(2, 'github', 'https://github.com/', NULL), +(2, 'xiaohongshu', 'https://xiaohongshu.com/', NULL); \ No newline at end of file diff --git a/index.html b/index.html index 8388c4b..6371bcb 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,16 @@ -
+ + -