Files
template-10556/README.md

366 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 红色文化宣传小程序
> 基于 Taro 4.0 + React + TypeScript 构建的多端应用主要面向微信小程序平台集成红色文化宣传和AI问答功能
[![Taro](https://img.shields.io/badge/Taro-4.0.8-blue?style=flat-square&logo=taro)](https://taro.aotu.io/)
[![React](https://img.shields.io/badge/React-18.3.1-61DAFB?style=flat-square&logo=react)](https://reactjs.org/)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.7.2-blue?style=flat-square&logo=typescript)](https://www.typescriptlang.org/)
[![NutUI](https://img.shields.io/badge/NutUI-2.7.4-orange?style=flat-square)](https://nutui.jd.com/)
[![Tailwind CSS](https://img.shields.io/badge/Tailwind%20CSS-3.4.17-38B2AC?style=flat-square&logo=tailwind-css)](https://tailwindcss.com/)
## 🌟 项目特色
- **🚀 多端开发** - 基于Taro框架一套代码多端运行微信小程序、H5、支付宝小程序等
- **📱 小程序优化** - 专为微信小程序优化,用户体验流畅
- **🎨 现代UI组件** - 集成NutUI组件库界面美观统一
- **🔴 红色文化主题** - 专注红色文化宣传,内容丰富
- **🤖 AI问答功能** - 集成智能问答系统,提供互动体验
- **🔧 CMS集成** - 与WebSoft CMS系统深度集成内容动态管理
- **📊 数据可视化** - 集成ECharts图表组件数据展示直观
- **🔐 用户系统** - 完整的用户注册、登录、个人中心功能
## 🏗️ 技术架构
### 前端技术栈
- **框架**: Taro 4.0.8 (多端统一开发框架)
- **语言**: TypeScript 5.7.2
- **UI库**: React 18.3.1
- **组件库**: NutUI React Taro 2.7.4
- **样式**: Tailwind CSS 3.4.17 + Sass
- **图表**: ECharts Taro3 React
- **构建工具**: Webpack 5.78.0
- **代码规范**: ESLint + TypeScript ESLint
### 后端集成
- **API服务**: https://cms-api.websoft.top/api
- **租户ID**: 10556
- **内容管理**: WebSoft CMS系统
- **用户认证**: JWT Token认证
- **多租户**: 支持多租户架构
## 📁 项目结构
```
template-10556/
├── src/
│ ├── pages/ # 页面目录
│ │ ├── index/ # 首页
│ │ │ ├── index.tsx # 首页主组件
│ │ │ ├── Banner.tsx # 轮播图组件
│ │ │ ├── Menu.tsx # 菜单组件
│ │ │ └── Login.tsx # 登录组件
│ │ ├── study/ # AI问答页面
│ │ ├── user/ # 用户中心页面
│ │ ├── article/ # 文章页面
│ │ └── kefu/ # 客服页面
│ ├── passport/ # 用户认证模块
│ │ ├── login.tsx # 登录页面
│ │ ├── register.tsx # 注册页面
│ │ ├── forget.tsx # 忘记密码
│ │ └── setting.tsx # 设置页面
│ ├── user/ # 用户相关页面
│ │ ├── profile/ # 个人资料
│ │ ├── company/ # 企业信息
│ │ ├── setting/ # 用户设置
│ │ └── userVerify/ # 用户认证
│ ├── components/ # 公共组件
│ │ ├── Header.tsx # 头部组件
│ │ ├── TabBar.tsx # 底部导航
│ │ └── Gap.tsx # 间距组件
│ ├── api/ # API 接口封装
│ │ ├── cms/ # CMS相关API
│ │ ├── system/ # 系统管理API
│ │ ├── layout/ # 布局相关API
│ │ └── passport/ # 用户认证API
│ ├── utils/ # 工具函数
│ │ ├── request.ts # HTTP请求封装
│ │ ├── config.ts # 配置文件
│ │ ├── common.ts # 通用工具
│ │ └── server.ts # 服务端工具
│ ├── assets/ # 静态资源
│ │ └── tabbar/ # 底部导航图标
│ ├── app.config.ts # 应用配置
│ ├── app.scss # 全局样式
│ └── app.ts # 应用入口
├── config/ # 环境配置
│ ├── dev.ts # 开发环境配置
│ ├── prod.ts # 生产环境配置
│ └── index.ts # 配置入口
├── dist/ # 构建输出目录
├── types/ # TypeScript类型定义
├── project.config.json # 微信小程序配置
├── package.json # 项目依赖
├── tailwind.config.js # Tailwind配置
├── tsconfig.json # TypeScript配置
└── README.md # 项目说明
```
## 🚀 快速开始
### 环境要求
- Node.js 18.0 或更高版本
- npm 或 pnpm 包管理器
- 微信开发者工具(用于小程序开发调试)
### 安装依赖
```bash
# 克隆项目
git clone <repository-url>
cd template-10556
# 安装依赖推荐使用pnpm
pnpm install
# 或使用npm
npm install
```
### 项目配置
项目配置文件位于 `src/utils/config.ts`
```typescript
// 租户ID
export const TenantId = 10556;
// 接口地址
export const BaseUrl = 'https://cms-api.websoft.top/api';
// 当前版本
export const Version = 'v3.0.8';
// 版权信息
export const Copyright = 'WebSoft Inc.';
```
### 开发调试
```bash
# 微信小程序开发
npm run dev:weapp
# H5开发
npm run dev:h5
# 支付宝小程序开发
npm run dev:alipay
# 其他平台
npm run dev:swan # 百度小程序
npm run dev:tt # 字节跳动小程序
npm run dev:qq # QQ小程序
npm run dev:jd # 京东小程序
```
### 构建生产版本
```bash
# 构建微信小程序
npm run build:weapp
# 构建H5
npm run build:h5
# 构建其他平台
npm run build:alipay
npm run build:swan
npm run build:tt
```
## 🎨 功能模块
### 主要页面
1. **首页** - 红色文化宣传主页,包含轮播图、菜单导航等
2. **AI问答** - 智能问答系统,提供红色文化相关知识问答
3. **用户中心** - 个人信息管理、设置等功能
4. **文章页面** - 红色文化文章展示和阅读
5. **客服页面** - 在线客服功能
### 用户认证模块
- **登录注册** - 支持手机号登录、短信验证码登录
- **忘记密码** - 密码重置功能
- **用户设置** - 个人信息修改、密码修改
- **协议页面** - 用户协议和隐私政策
### 底部导航
- **首页** - 主要内容展示
- **AI问答** - 智能问答功能
- **我的** - 用户个人中心
## 🔧 核心功能
### 多端适配
- **微信小程序**: 主要目标平台,完整功能支持
- **H5页面**: 支持在浏览器中运行
- **其他小程序**: 支持支付宝、百度、字节跳动等小程序平台
- **响应式设计**: 自适应不同屏幕尺寸
### CMS内容管理
- **动态内容**: 从WebSoft CMS系统动态获取内容
- **文章管理**: 支持文章发布、分类、评论等功能
- **用户管理**: 完整的用户注册、认证、权限管理
- **多租户**: 支持多租户架构租户ID: 10556
### API集成
- **统一封装**: 完整的API请求封装支持TypeScript类型安全
- **错误处理**: 统一的错误处理和用户提示机制
- **认证管理**: JWT Token自动管理和刷新
- **请求拦截**: 自动添加租户ID和认证信息
## 🛠️ 开发指南
### 添加新页面
1.`src/pages` 目录下创建新页面文件夹
2. 创建页面组件和配置文件
```typescript
// src/pages/new-page/new-page.tsx
import { useEffect } from 'react';
import Taro from '@tarojs/taro';
const NewPage = () => {
useEffect(() => {
Taro.setNavigationBarTitle({
title: '新页面'
});
}, []);
return (
<div className="p-4">
<h1>新页面</h1>
</div>
);
};
export default NewPage;
```
```typescript
// src/pages/new-page/new-page.config.ts
export default definePageConfig({
navigationBarTitleText: '新页面'
});
```
3.`src/app.config.ts` 中注册页面路由
### 创建新组件
```typescript
// src/components/NewComponent.tsx
import React from 'react';
interface NewComponentProps {
title: string;
content: string;
}
const NewComponent: React.FC<NewComponentProps> = ({ title, content }) => {
return (
<div className="p-4">
<h2 className="text-xl font-bold">{title}</h2>
<p>{content}</p>
</div>
);
};
export default NewComponent;
```
### API调用示例
```typescript
// 获取网站信息
import { getSiteInfo } from '@/api/layout';
const siteInfo = await getSiteInfo();
console.log(siteInfo.websiteName);
// 使用封装的请求方法
import { request } from '@/utils/request';
const result = await request({
url: '/cms/article/list',
method: 'GET',
data: {
page: 1,
limit: 10
}
});
```
## 📱 部署指南
### 微信小程序部署
1. 使用微信开发者工具打开项目
2. 构建小程序版本:`npm run build:weapp`
3. 在微信开发者工具中预览和上传代码
4. 在微信公众平台提交审核
### H5部署
1. 构建H5版本`npm run build:h5`
2.`dist` 目录部署到Web服务器
3. 配置域名和HTTPS证书
### 其他小程序平台
```bash
# 支付宝小程序
npm run build:alipay
# 百度小程序
npm run build:swan
# 字节跳动小程序
npm run build:tt
```
## 🔍 性能优化
- **代码分割**: Taro自动按页面分割代码
- **图片优化**: 使用Taro Image组件优化图片加载
- **缓存策略**: 合理的API请求缓存
- **包体积优化**: 按需引入组件和工具库
- **懒加载**: 页面和组件懒加载
## 🤝 贡献指南
1. Fork 项目
2. 创建功能分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
## 📄 许可证
本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
## 📞 联系我们
- **官网**: https://websoft.top
- **邮箱**: contact@websoft.top
- **电话**: 0771-5386339
- **地址**: 广西南宁市
## 🙏 致谢
感谢以下开源项目:
- [Taro](https://taro.aotu.io/) - 多端统一开发框架
- [React](https://reactjs.org/) - 用户界面库
- [NutUI](https://nutui.jd.com/) - 移动端组件库
- [TypeScript](https://www.typescriptlang.org/) - JavaScript的超集
- [Tailwind CSS](https://tailwindcss.com/) - 实用优先的CSS框架
- [ECharts](https://echarts.apache.org/) - 数据可视化图表库
---
**WebSoft Inc.** - 红色文化宣传小程序 🚀