initial docs

This commit is contained in:
zchengo
2023-01-09 20:16:36 +08:00
parent 2090099c37
commit d25fa4f1e7
18 changed files with 11530 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
// node_modules/vitepress/dist/client/theme-default/index.js
import "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/styles/fonts.css";
import "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/styles/vars.css";
import "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/styles/base.css";
import "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/styles/utils.css";
import "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css";
import "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css";
import "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css";
import "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css";
import "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css";
import VPBadge from "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
import Layout from "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/Layout.vue";
import NotFound from "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/NotFound.vue";
import { default as default2 } from "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue";
import { default as default3 } from "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue";
import { default as default4 } from "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue";
import { default as default5 } from "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue";
import { default as default6 } from "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue";
import { default as default7 } from "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue";
import { default as default8 } from "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue";
import { default as default9 } from "/Users/xuzc/crm/docs/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue";
var theme = {
Layout,
NotFound,
enhanceApp: ({ app }) => {
app.component("Badge", VPBadge);
}
};
var theme_default_default = theme;
export {
default5 as VPDocAsideSponsors,
default3 as VPHomeFeatures,
default2 as VPHomeHero,
default4 as VPHomeSponsors,
default9 as VPTeamMembers,
default6 as VPTeamPage,
default8 as VPTeamPageSection,
default7 as VPTeamPageTitle,
theme_default_default as default
};
//# sourceMappingURL=@theme_index.js.map
+7
View File
@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../../../../node_modules/vitepress/dist/client/theme-default/index.js"],
"sourcesContent": ["import './styles/fonts.css';\r\nimport './styles/vars.css';\r\nimport './styles/base.css';\r\nimport './styles/utils.css';\r\nimport './styles/components/custom-block.css';\r\nimport './styles/components/vp-code.css';\r\nimport './styles/components/vp-code-group.css';\r\nimport './styles/components/vp-doc.css';\r\nimport './styles/components/vp-sponsor.css';\r\nimport VPBadge from './components/VPBadge.vue';\r\nimport Layout from './Layout.vue';\r\nimport NotFound from './NotFound.vue';\r\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\r\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\r\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\r\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\r\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\r\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\r\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\r\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\r\nconst theme = {\r\n Layout,\r\n NotFound,\r\n enhanceApp: ({ app }) => {\r\n app.component('Badge', VPBadge);\r\n }\r\n};\r\nexport default theme;\r\n"],
"mappings": ";AAAA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO,aAAa;AACpB,OAAO,YAAY;AACnB,OAAO,cAAc;AACrB,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAiC;AAC1C,SAAoB,WAAXA,gBAAqC;AAC9C,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAAkC;AAC3C,SAAoB,WAAXA,gBAAoC;AAC7C,SAAoB,WAAXA,gBAAgC;AACzC,IAAM,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,EACA,YAAY,CAAC,EAAE,IAAI,MAAM;AACrB,QAAI,UAAU,SAAS,OAAO;AAAA,EAClC;AACJ;AACA,IAAO,wBAAQ;",
"names": ["default"]
}
+19
View File
@@ -0,0 +1,19 @@
{
"hash": "769566c1",
"browserHash": "06c6ce40",
"optimized": {
"vue": {
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "8ba1b9d6",
"needsInterop": false
},
"@theme/index": {
"src": "../../../../node_modules/vitepress/dist/client/theme-default/index.js",
"file": "@theme_index.js",
"fileHash": "5e9b16a0",
"needsInterop": false
}
},
"chunks": {}
}
+1
View File
@@ -0,0 +1 @@
{"type":"module"}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
+40
View File
@@ -0,0 +1,40 @@
export default {
title: 'CRM DOCS',
description: 'CRM Docs',
themeConfig: {
siteTitle: 'CRM DOCS',
nav: [
{ text: '文档', link: '/project/introduction' },
{ text: '更新日志', link: '/logs/update-log' },
{ text: '关于', link: '/about/about' },
{ text: '赞赏', link: '/sponsor/sponsor' }
],
socialLinks: [
{ icon: 'github', link: 'https://github.com/zchengo/crm' }
],
sidebar: {
'/project/': [
{
text: '文档',
collapsible: true,
items: [
{ text: '简介', link: '/project/introduction' },
{ text: '技术栈', link: '/project/technology-stack' },
{ text: '快速运行', link: '/project/getting-started' },
{ text: '部署指南', link: '/project/deploy-guide' },
{ text: '许可证', link: '/project/open-license' }
],
},
]
},
footer: {
copyright: 'Copyright © 2023-present zocrm.cloud'
},
lastUpdated: true,
lastUpdatedText: 'Updated Date',
// carbonAds: {
// code: 'your-carbon-code',
// placement: 'your-carbon-placement'
// }
}
}
+5
View File
@@ -0,0 +1,5 @@
# 公众号
关注公众号「**GoCode**」,本公众号专注Go语言技术分享!
<img src="https://zocrm.cloud/gzh_qrcode.jpg" style="width: 240px; height: 240px;border-radius: 10px;border: 1px solid #e9e9eb;" alt="gzh qrcode"/>
+16
View File
@@ -0,0 +1,16 @@
---
layout: home
hero:
name: CrmSystem
text: Use Golang & Vue
tagline: 一个免费开源的客户关系管理系统。
actions:
- theme: brand
text: 在线预览
link: https://zocrm.cloud
- theme: alt
text: 查看代码库
link: https://github.com/zchengo/crm
---
+5
View File
@@ -0,0 +1,5 @@
# 更新日志
### 2023-01-10
- CRM 开发文档正式发布。
+106
View File
@@ -0,0 +1,106 @@
# 部署指南
本地部署的主要流程:环境安装、运行服务端、运行Web端。
## 环境安装
在你自己的电脑上,安装如下运行环境:
| 环境 | 版本 | 下载地址 |
|---|---|---|
| go | >= 1.19.2 | https://golang.google.cn/dl |
| mysql | >= 8.0.31 | https://www.mysql.com/downloads |
| redis | >= 7.0.5 | https://redis.io/download |
| node | >= 18.12.0 | https://nodejs.org/en/download |
## 运行服务端
::: info
前提条件:Go 环境正常、MySQL 服务正常启动、Redis 服务正常启动。
:::
第一步,导入数据库文件,你需要把 crm/server/db/crm.sql 文件导入到本地的数据库中,你可以在数据库开发工具 Navicat 中直接导入 SQL 文件。
第二步,修改配置文件,你需要修改 crm/server/config.yaml 配置文件,你可以保持默认配置,但是你必须修改邮件服务配置和支付宝支付配置,否则你无法正常使用注册、密码找回、获取验证码、订阅、支付等功能。
邮件服务配置如下:
```yaml
# 邮件服务
mail:
smtp: smtp.qq.com
secret: dhsepilzlvoaceij // 改成自己的QQ邮箱SMTP服务的授权码
sender: 1655064994@qq.com // 改成自己的QQ邮箱
```
**如何开启邮箱的 SMTP 服务并获取授权码?**
请参考官方文档:https://service.mail.qq.com/cgi-bin/help?subtype=1&&id=10000&&no=1001607
支付宝支付服务配置如下:
```yaml
# 支付宝支付服务配置
alipay:
appId: 2022003122606990
privateKey: MIIEpQIBAAKCAQEAkR0YofR...2sDd6uIy9rkpk8azj/rLmetW5r+tqTZgxcPWKeSz4=
appPublicCert: /home/ubuntu/crm/cert/appPublicCert.crt
alipayRootCert: /home/ubuntu/crm/cert/alipayRootCert.crt
alipayPublicCert: /home/ubuntu/crm/cert/alipayPublicCert.crt
returnURL: http://127.0.0.1:8000/api/subscribe/callback
notifyURL: http://127.0.0.1:8000/api/subscribe/notify
paySuccessURL: http://127.0.0.1:8060/#/subscribe
```
**如何获取 appId、privateKey、appPublicCert、alipayRootCert、alipayPublicCert **
你需要登录到支付宝开放平台:https://open.alipay.com
登录到支付宝开放平台后,点击控制台->开发工具推荐->沙箱->沙箱应用,在基本信息中可看到 APPID,然后在开发信息中选择系统默认秘钥->启用证书模式->查看,即可看到复制私钥和下载证书,1个私钥和3个证书。
**如何获取支付账号?**
点击控制台->开发工具推荐->沙箱->沙箱账号,里面有商家信息和买家信息,买家信息中的买家账号就是支付账号。
第三步,初始化并运行,使用电脑自带的终端执行执行如下命令,也可以使用 VS Code 或者 Goland 等开发工具,打开 crm 目录,找到 Terminal 终端。
执行如下命令:
```bash
$ cd server
$ go mod tidy
$ go build -o server main.go (windows编译命令为 go build -o server.exe main.go )
# 运行二进制
$ ./server (windows运行命令为 server.exe)
```
运行二进制文件后,如果控制台没有出现报错信息,就说明服务端启动成功。
## 运行Web端
::: info
前提条件:Node 环境正常。
:::
使用电脑自带的终端执行执行如下命令,也可以使用 VSCode 或者 WebStom 等开发工具,打开 crm 目录,找到 Terminal 终端。
执行如下命令:
```bash
$ cd web
$ npm install
$ npm run dev
```
当你使用 npm install 命令安装依赖时,如果出现下载缓慢、卡住等问题,你需要修改 npm 默认的镜像源。
要修改镜像源,请执行如下命令:
```bash
npm install -g cnpm --registry=https://registry.npmmirror.com
```
想要了解有关 Npm Mirror 中国镜像站的更多信息,请访问 npmmirror.com
当 Web 端启动成功后,打开浏览器访问 http://127.0.0.1:8060
+28
View File
@@ -0,0 +1,28 @@
# 快速运行
系统运行环境:
| 环境 | 版本 | 下载地址 |
|---|---|---|
| go | >= 1.19.2 | https://golang.google.cn/dl |
| mysql | >= 8.0.31 | https://www.mysql.com/downloads |
| redis | >= 7.0.5 | https://redis.io/download |
| node | >= 18.12.0 | https://nodejs.org/en/download |
在终端中,执行如下命令,初始化并运行。
```bash
$ cd server
$ go mod tidy
$ go build -o server main.go (windows编译命令为 go build -o server.exe main.go )
# 运行二进制
$ ./server (windows运行命令为 server.exe)
$ cd web
$ npm install
$ npm run dev
```
项目运行成功后,打开浏览器访问 http://127.0.0.1:8060
+11
View File
@@ -0,0 +1,11 @@
# 简介
客户关系管理系统,基于 Vue + Go 实现,主要功能有仪表盘、客户管理、合同管理、产品管理,订阅等功能。
### 项目演示
https://zocrm.cloud
### 官方文档
https://docs.zocrm.cloud
+26
View File
@@ -0,0 +1,26 @@
# 许可证
```
MIT License
Copyright (c) 2022 zchengo
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```
要了解有关 MIT License 许可证的更多信息,请访问 [MIT License](https://github.com/zchengo/crm/blob/main/LICENSE)。
+25
View File
@@ -0,0 +1,25 @@
# 技术栈
### 前端技术
| 技术 | 说明 | 相关文档 |
|---|---|---|
| Vue.js | 前端框架 | https://v3.cn.vuejs.org |
| Vue Router | 页面路由 | https://router.vuejs.org |
| Axios | 网络请求库 | https://axios-http.com |
| Pinia | 状态管理 | https://pinia.vuejs.org |
| Vite | 构建工具 | https://vitejs.cn |
| Ant Design Vue | 前端UI组件库 | https://www.antdv.com |
| Apache ECharts | 可视化图表库 | https://echarts.apache.org |
| Moment | 日期库 | https://momentjs.com |
### 后端技术
| 技术 | 说明 | 相关文档 |
|---|---|---|
| Gin | Web框架 | https://gin-gonic.com |
| Gorm | ORM框架 | https://gorm.io |
| Jwt | 用户认证 | https://github.com/golang-jwt/jwt |
| Viper | 配置管理 | https://github.com/spf13/viper |
| Redis | 数据缓存 | https://github.com/go-redis/redis |
| Mail | 邮件服务SDK | https://github.com/go-gomail/gomail |
+11
View File
@@ -0,0 +1,11 @@
# 赞赏
打开微信扫一扫,扫描下方赞赏码,请作者喝咖啡!
<img src="https://zocrm.cloud/sponsor.png" style="width: 240px; height: 240px;border-radius: 10px;border: 1px solid #e9e9eb;" alt="sponsor qrcode"/>
### 赞赏记录
| 用户昵称 | 金额 | 备注 |
| ---- | -- | -- |
| 空空如也 | ¥0 | 无备注 |
+1737
View File
File diff suppressed because it is too large Load Diff
+17
View File
@@ -0,0 +1,17 @@
{
"name": "docs",
"version": "1.0.0",
"description": "crm docs",
"main": "index.js",
"scripts": {
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:preview": "vitepress preview docs"
},
"author": "zchengo",
"license": "MIT",
"dependencies": {
"vitepress": "^1.0.0-alpha.35",
"vue": "^3.2.45"
}
}