# G6-editor-learn
**Repository Path**: qm1989/G6-editor-learn
## Basic Information
- **Project Name**: G6-editor-learn
- **Description**: g6-editor学习
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 2
- **Created**: 2019-03-22
- **Last Updated**: 2022-06-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# tudou-manager
> 管理端基础模板工程,项目基本框架基于vuejs + element-ui + vuex + vue-router构成,其余项目中使用模块,参考模块列表
## 构建流程
> 本项目使用的是vue-cli构建,对于环境需要安装node,由于vuejs要求,node版本不得低于6.0.0,建议用8.0.0以上版本(为了方便对node版本切换,可以使用nvm控制node版本,[nvm说明文档](https://github.com/coreybutler/nvm-windows))
1. 在cmd或terminal切换到项目目录下,使用`npm install`项目所依赖的模块,由于项目依赖较多,可能安装较慢(安装一次即可)。
2. 模块安装完成后,`npm run dev`运行即可,默认端口是8080,如果端口被占用,将自动使用其他端口,具体在启动完成后就可看到
3. 打包,`npm run build`在根目录下回多出一个dist文件夹,为打包后的文件
4. `npm run build --report`打包后文件分析表图,优化使用
**注意:由于npm仓库默认为国外的服务器,所以部分模块下载可能受阻导致安装失败,在下载之前可将npm仓库设置为国内仓库,`npm config set registry http://registry.npm.taobao.org/`,完成后,根据需要可将仓库切换回国外仓库,命令:`npm config set registry https://registry.npmjs.org/`,另外如果有模块一直安装失败,建议先将`npm uninstall name`卸载模块后再使用`npm install name`安装,例如'node-sass'模块容易安装失败,第一次安装失败后,先使用卸载命令,彻底卸载模块,后再重新单独安装**
### 一下列出切换源命令
1. 官方仓库
``` bash
npm config set registry https://registry.npmjs.org/
```
2. 淘宝镜像
``` bash
npm config set registry http://registry.npm.taobao.org/
```
3. 公司仓库
``` bash
npm config set registry http://10.1.3.51:8081/repository/npm/
```
**在没有特殊需求前提下,尽量使用公司仓库库,脱离公司局域网时,用淘宝镜像,需要发布模块时,用官方仓库**
### 模块列表
1. [vuejs](https://cn.vuejs.org/) ([vuejs插件库](https://github.com/vuejs/awesome-vue#components--libraries))
2. [element-ui](http://element-cn.eleme.io/#/zh-CN)
3. [vuex](https://vuex.vuejs.org/)
4. [vue-roter](https://router.vuejs.org/)
5. 异步请求模块:[axios](https://www.npmjs.com/package/axios)
6. 表单验证模块:[vee-validate](https://baianat.github.io/vee-validate/guide/),其中自定义规则`src/validate.js`
7. 图片懒加载模块:[vue-loader](https://github.com/vuejs/vue-loader)
8. 图片预览组件:[v-viewer](https://github.com/mirari/v-viewer)
等,对于另外一些不太常用模块,并未添加进来,可以根据自己需求来安装,例如,`jquery`, `富文本编辑器模块`, `地图组件模块`, `html2canvas`, `jspdf`,`头像编辑模块`等等,详情参考[其他模块安装](doc/其他模块安装.md)
### 文件目录说明
#### build目录:
> webpack打包配置文件,一般不用修改,如有特殊需求,根据需要修改
#### config目录:
> webpack打包配置参数,一般不用修改,如有特殊需求,根据需要修改,一般修改index.js
#### dist目录:
> 打包后生成的目录,里面是已经打包好的文件,一般刚下载项目是没有这个目录的
#### src目录:
> 开发的主要目录
#### static目录:
> 存放一些静态文件,打包时路径相对不变
### src目录说明
#### assets目录:
> 程序所需的资源文件,会作为程序的一部分被打包
#### bootstrap-scss:
> bootstrap4的css源文件目录,本项目并未全部使用bootstrap,只是将其中的css源码引入,方便定制修改
#### components:
> 组件库,查看组件库目录
#### libs目录:
> 功能插件,当前包含PagedList.js(查询插件)和省市区code数据
#### plugins目录:
> 通用插件集合,包含errorPage.js(请求错误处理),eventbus.js(事件中央总线),paramsConvert.js(参数处理插件),Util.js(通用小工具插件),说明,本插件库和libs有本质区别1. 本插件库,功能相对单一,全部为函数,不具备对象的使用原则,而libs则完全以对象的使用方式使用2. 本插件库的所有插件将全部挂载到Vue原型链上,可以通过Vue.XXX,或通过vm.$XXX都可访问,但libs不可以3. libs下的插件可以提供相对较多的参数供调用者使用,如:loading,调用者可通过vm.XXX.loading获取请求的状态,但本目录库不提供任何可中间调用参数,只提供返回结果
#### router:
> 路由配置目录,所有的路由配置都在这个目录完成
#### store:
> vuex状态管理配置目录,其中user: 登录用户信息,具体数据,可在Chrome浏览器安装vuetool,启动程序后打开控制台的vue选项,可以看到相关的数据信息,相关操作请自行搜寻
#### App.vue:
> 组件入口
#### element-variables.scss:
> 自定义的样式,为sass格式和改变element-ui样式变量文件
#### main.js:
> 总的配置文件,打包的入口文件
#### validate.js:
> 自定义验证规则的配置文件,需要额外扩充验证规则统一在本文件下配置
### components目录说明
1. common:自定义通用组件的扩充
2. home:暂时存放菜单右侧的首页组件
3. main:管理控制台所需要的一些界面,
4. server:存放一些服务组件,当前存放登录和注册组件
5. ReMain:整个菜单头部组件
6. 关于[针对管理控制台的说明](doc/针对管理控制台的说明.md)
### 通用组件说明
1. 错误页面组件(ErrorPage.vue),包含400,401,403,404,405,500等错误提示
> 路径以以上5中错误状态码结尾即可触发,例如:
```js
router.push({path: '/500'})
```
2. 将页面滚动到顶部组件(BackTop.vue),
> 直接使用即可,不需用传任何参数,自建内部已经进行定位,例如
```html
build.productionGzip
改为`false`,对于`compression-webpack-plugin`模块为了方便再次开启,可以不用卸载
### 额外引入的模块
0. bootstrap.scss源文件
- 直接考本源文件到项目目录中
1. 处理scss样式文件
``` bash
$ npm install sass-loader node-sass --save-dev
```
2. 基础组件库
``` bash
$ npm i element-ui -S
```
3. 验证模块
``` bash
$ npm i vee-validate --save
```
4. 参数转化模块
``` bash
$ npm i qs -S
```
5. 图片懒加载模块
``` bash
$ npm install vue-lazyload -D
```
6. 异步请求模块
``` bash
$ npm install axios
```
7. 阿里云存储
``` bash
$ npm install ali-oss --save
```
8. vue官方状态管理模块
``` bash
$ npm i vuex
```
9. 图片预览模块
``` bash
$ npm install v-viewer
```
10. 开启gizp压缩(注意版本,对于2.x需要webpack4.x的支持,所以要指定到1.x版本)
``` bash
$ npm install --save-dev compression-webpack-plugin@1.1.11
```
g6-editor修改:修改直线的粗细:
1. edgeStyle的lineWidth
2. edgeDelegationStyle 的lineWidth
全部将lineWidth:1为1的改为3,其中getStyle中lineWidth就为3,改回来时别忘记修改
```
getStyle: function() {
return {
fill: "#91D5FF",
radius: 4,
lineWidth: 3
}
},
```