# 综合平台模版
**Repository Path**: mofei-0109/Support_System_Web
## Basic Information
- **Project Name**: 综合平台模版
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-10-21
- **Last Updated**: 2024-10-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
#### 项目
- 林草综合管理平台
- 账号: admin
- 密码: Suntoon@123
#### 项目文件介绍
- `public` 目录:静态资源目录
- `src` 目录:源码目录
- `src/assets` 目录:存放静态资源,一般存放图片、字体等静态文件
- `src/assets/css` 目录:存放公共样式以及 scss 文件
- `src/assets/icon` 目录:存放 svg 图标文件
- `src/assets/images` 目录:存放图片文件
- `src/common` 目录:存放公共方法
- `src/common/common-const.js` 文件:存放变量命名
- `src/common/common-crypto.js` 文件:密码加密方法
- `src/common/common-loading.js` 文件:加载状态方法
```
import { load } from '@/common/common-loading';
打开=load.show();
关闭=load.hide()
```
- `src/components` 目录:存放公共组件
- `src/components/SvgIconIndex` 组件:svg 图标组件
```
```
- `src/components/ReleasePromptMessage` 组件: 提示弹窗组件
- `src/components/PaginationIndex` 组件: 分页组件
- `src/components/BorderBoxBg` 组件: 边框背景组件
- `src/components/MapIndex` 组件: 地图组件
- `src/components/ReImageVerify` 组件: 图形验证码组件
- `src/components/MapAttribute` 目录: 属性查询
- `src/components/MapBaseLayer` 目录: 底图切换
- `src/components/MapBufferAnalysis` 目录: 数据切割
- `src/components/MapCompare` 目录: 卷帘
- `src/components/MapCoverAnalysis` 目录: 占地分析
- `src/components/MapBufferAnalysis` 目录: 缓冲区分析
- `src/components/MapMeasure` 目录: 测量(点/线/面)
- `src/components/MapPoints` 目录: 切换坐标系
- `src/components/MapResultInfo` 目录: 属性查询结果展示
- `src/components/MapTermingQuery` 目录: 条件查询
- `src/components/MapThermalAnalysis` 目录: 热力图分析
- `src/plugins/plugins-set-rem.js` 文件:改变窗口大小时重新设置 rem
- `src/router` 目录:存放路由配置
- [ ] **备注:** _该项目路由是动态路由,根据用户权限动态加载路由,具体实现请参考`src/router/index.js`和`scripts/generateBizConfig.js`文件。_ 同时每个模块的路由都对应写在每个模块的文件夹下面,如`src/pages/module-biology-system/routes.js`文件中定义了`生物多样性系统`模块的路由。
- `src/pages` 目录:存放页面组件
- `src/pages/module-launch` 模块: 首页导航模块
- `src/pages/module-login` 模块: 登录模块
- `src/pages/module-personal-center` 模块: 个人中心模块
- `src/pages/module-base-system` 模块: 基础系统模块
- `src/pages/module-biology-system` 模块: 生物多样性系统模块
- `src/pages/module-fire-system` 模块: 森林防火预警模块
- `src/pages/module-grid-system` 模块: 林长网格系统模块
- `src/pages/module-pest-system` 模块: 有害生物监测预警模块
- `src/pages/module-resource-system` 模块: 林草资源可视化管理模块
- `src/pages/module-sprout-system` 模块: 林木种苗管理系统管理模块
- `src/pages/module-tanhui-system` 模块: 林草湿碳汇计量监测系统管理模块
- `src/pages/module-tuigenghuanli-system` 模块: 退耕还林管理系统管理模块
- `src/pages/module-uav-system` 模块: 无人机管理系统管理模块
- `src/pages/module-ylxm-system` 模块: 营林项目管理系统管理模块
- `src/pages/module-zhongZhi-system` 模块: 种质资源管理系统管理模块
- `src/store` 目录:存放状态管理
- `src/utils` 目录:存放工具类(基本都是地图相关的工具类)
- `src/App.vue` 入口组件
- `src/main.js` 入口文件
- `index.html` 入口 html 文件
- `.env` 环境变量配置文件
- `.gitignore` git 忽略文件
- `vite.config.js` vite 配置文件
- `unocss.config.js` unocss 配置文件
- `README.md` 项目说明文件
- `package.json` 项目依赖配置文件
- `package-lock.json` 项目依赖锁定文件
### 地图 MapIndex 组件
- `mapId`: 地图的唯一标识
- `mapRoles`: 地图的权限 ['初始化位置','当前位置','zoom', '属性查询','条件查询','测量','二三维切换','气象监测','图层','比例尺','底图切换']
- `toolbarPosition`: 工具栏位置
- `toolbarRight`: 工具栏内容位置
- `plugins`: 地图自定义插件
- `mapLoadCallBack`: 地图初始化后加载回调函数 会传递 map 实例
- `compareDataRequest`: 用于获取数据对比数据
- `mapPluginCheckChange`: 地图插件状态改变回调函数 会传递当前插件状态
```
const mapRef = ref(null);
const mapPlugins = ref([
{
role: '热力图',
component: markRaw({
render: () => {
return h(
'div',
{
class: 'tool-item layer-item',
title: '热力图',
onClick: handleQuery,
},
[
h(SvgIconIndex, {
iconClass: '热力图分析',
size: '20',
class: 'cursor-pointer',
title: '热力图分析',
color: '#c9e2fa',
}),
],
);
},
}),
},
]);
const handleQuery = () => {
mapRef.value.changeShowUtil('plugin-show', true);
};
// 插件点击切换状态的事件
const handlePluginCheckChange = (key) => {
if (key != 'plugin-show') {
thermodynamicShow.value = false;
} else {
thermodynamicShow.value = true;
}
};
```
#### 下载依赖
```
npm install
```
#### 启动服务
```
npm run dev
```
#### 项目打包
```
npm run build
```
提交信息应遵守以下规范:
```bash
"[HEAD] 详细信息"
```
其中 **详细信息** 应尽可能详细,要能说明问题,`[HEAD]` 可取:
```
[初始化]
[依赖]
[文档]
[功能]
[修复]
[优化]
```
示例:
```
[初始化] 项目初始化
[依赖] 添加 AntDesign React UI 组件库
[功能] 新添加登陆页面
[功能] 登录页面添加登录信息校验流程
[修复] 主界面白屏修复
```
#### git 提交方案
- 多人协作的情况下,提交 git 的时候就会出现提交分支混乱的情况,为避免这样情况,可以使用如下方案进行提交,可以避免很多意外情况。
```
git add -A
git commit -m "[描述]"
git pull --rebase
```
1. 执行完 git pull --rebase 后如果有 succeed 字样,就表示没有冲突,直接 git push
2. 执行完 git pull --rebase`后如果有冲突,本地如果有冲突,手动解决冲突后:
```
git add -A
git rebase --continue ,// 可以线性的连接本地分支与远程分支,无误之后就退出,回到主分支上。
git push
```
- git 忽略换行符的变化(建议执行)
```
git config --global core.autocrlf input
```
- git 文件名的大小写敏感(建议执行)
```
git config --global core.ignorecase false
```
#### 项目功能简介
- `element-plus` element-plus UI 库,修改其主题样式可以在`src/assets/css/element-plus.scss`中进行自定义主题
- `lint-staged husky`:用于代码提交时进行`eslint prettier`代码校验,校验通过后,才能提交代码
- `package.json` 中 `engines`用来定义`node`版本,可根据自己的需要自行修改
- `.npmrc` 文件是用来约束 npm 的,`package.json` 中 `engines`只能限制`yarn`,所以需要这个文件配置
- `vite-plugin-vue-devtools` 可替代 `vue-devtools` ,还增加点击跳转代码功能
- `postcss-pxtorem` 用来将 css 中的 px 单位转换为 rem,`css in js`和行内样式无效
- `viteCompression` 用来配置开启 gzip 打包
- `rollup-plugin-visualizer` 用来打包时展示包大小细节
- `vue-hooks-plus` 一个多功能 hook 库,包含了非常多非常好的工具
- `lodash` 包含了多功能的 js 工具库
- `vue-router` vue 路由功能库
- `preinstall` 该命令是为了强制包管理器,这里使用的是 npm
#### 项目打包图片优化方案
- `vite-plugin-imagemin`:一个压缩图片资产的 vite 插件 (https://github.com/vbenjs/vite-plugin-imagemin)
- 但项目中并没有引入,因为国内下载极为不便,所以需要在电脑 host 文件加上如下配置:
- 199.232.4.133 raw.githubusercontent.com
- 加上配置后执行`npm i vite-plugin-imagemin -D`
- 在`vite.config`文件中加上插件配置:
```
import viteImagemin from 'vite-plugin-imagemin'
export default () => {
return {
plugins: [
viteImagemin({
gifsicle: {
optimizationLevel: 7,
interlaced: false,
},
optipng: {
optimizationLevel: 7,
},
mozjpeg: {
quality: 20,
},
pngquant: {
quality: [0.8, 0.9],
speed: 4,
},
svgo: {
plugins: [
{
name: 'removeViewBox',
},
{
name: 'removeEmptyAttrs',
active: false,
},
],
},
}),
],
}
}
```
#### 设计图地址
https://app.mockplus.cn/app/uUvu-QtHF/design