代码拉取完成,页面将自动刷新
水利大平台前端
项目依托于Vite搭建的Vue + TypeScript + Pinia + Antd框架.
应用node环境为V16版本
Vue官方和TypeScript官方推荐使用VS code开发,提供了更好的TS类型提示和管理
vs code安装必要插件
1、Vite 强化Vite开发,自启动服务
2、Volar 是官方的 VSCode 扩展,提供了 Vue 单文件组件中的 TypeScript 支持,还伴随着一些其他非常棒的特性。
3、TypeScript Vue Plugin 用于支持在 TS 中 import *.vue 文件
【禁止个人随便修改src文件夹之外的其他文件,GIT检查会回滚删除】
注:当前项目的UI框架用的最新版,不再支持Chrome内核低于100版本的浏览器,如有样式问题,请升级或下载最新版Chrome浏览器https://www.google.cn/intl/zh-CN/chrome/
【由于Antd的UI框架中使用了where选择器,仅支持Chrome内核88版以上】
注意:
1、开发环境:需要自主请求后台(如:img标签src请求等)
页面最上方添加添加请求根路径
const baseUrl = import.meta.env.VITE_BASE_URL;
环境变量配置:
直接在.env.development和.env.development添加VITE_开头的名称
并且在env.d.ts中的ImportMetaEnv接口内添加指定对象并添加注释
并在引用处前加上`${baseUrl}/XXX`
2、解决打包跨域问题【打包部署的时候需要在nginx配置针对.env.production配置中的根路径代理,删除请求的prodApi一级路径】
nginx代理配置示例:
#上传大小
client_max_body_size 1024m;
#gzip on;
server {
listen 8710;
server_name localhost;
location / {
root html;
index index.html index.htm;
try_files $uri $uri/ @router;
}
location @router {
rewrite ^.*$ /index.html last;
}
location /prodApi/ {
rewrite ^/b/(.*)$ /$1 break;
proxy_pass http://127.0.0.1:8088/;
}
}
3、HTTP请求
【多参数】请使用post方式提交
【单一参数】为降低后端序列化性能开销,后端采用单参数接收方式,前端请使用postFormData或postQueryString方式提交
4、GIS开发
所有地图和图层都不要使用响应式对象
5、安全配置
打包之后,nginx部署环境配置中需要添加下面的请求头
add_header X-Frame-Options DENY;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header Referrer-Policy "origin";
add_header Content-Security-Policy value;
add_header X-Permitted-Cross-Domain-Policies "none";
add_header X-XSS-Protection "X-XSS-Protection: 1;mode=block";
add_header X-Download-Options noopen;
add_header X-Content-Type-Options "nosniff";
我们的项目包含了一个主题切换功能,让用户可以自由选择不同的配色方案。提供了以下几种主题:
Home页面的样式目前在src/assets/css/theme/dark的文件夹中,有一个暗黑主题样式,主要用于表单、表格、分页组件的样式
注意 !! 在组件内使用@import引入时,style标签中一定要加上scoped属性,这样就不会影响全局样式
Main页面的样式目前在src/assets/css/theme/blue|green的文件夹中,针对绿色和蓝色都有一套自己的浅色和暗黑色,如需换肤,在main页面操作主题样式即可
本框架在基于非一级大版本换代的情况下,保证组件的升级能力和替代性,全框架和控件的可控性作为优先考虑
引入任何资源和封装,需要统一报备,确保全系统自主可控,保障不会影响框架的迭代能力
文档主要强化前端的资源索引能力,降低非核心人员的后续开发运维的难度和成本
!!!注!!!
开发过程使用方法、组件等,请先从公共组件库和系统工具包查找,个人引入的重复功能会定期审查,并要求删除或合并;
- sm-crypto-v2 前端的SM加密库
- vue3-seamless-scroll 基于vue3开发的新版本自动滚动插件
- tinymce-vue V5 基于vue3的富文本 注意:tinymce-vue需要在账号domain下添加IP/域名白名单
- pinia 新一代状态管理,相比vuex,具有更好的ts类型推导
- @supermap/iclient-leaflet 超图的Leaflet版本
- echarts 图表 需注意水球插件 最后更新日期 on Sep 18 2021 支持的最后版本为echarts5.2.1 !!!!!!!!!
- echarts-liquidfill 水球样式
- vue-codemirror 前端在线代码编辑器
- xgplayer 西瓜视频播放器
- snowflake-id 雪花算法生成唯一ID
- Markedjs Markdown文档解析 注意:如需添加第三方组件,需要报备提供相关开源版权信息和打包后增加的大小等信息,否则会定期清理
类型 | 名称 | 版本号 | 日期 | 开源协议 | 备注 |
---|---|---|---|---|---|
基础框架 | Vue | 3.3.4 | 2023-05-18 | MIT License | |
前端开发与构建工具 | Vite | 4.4.9 | 2023-08-07 | MIT License | |
增强编程语言 | TypeScript | 5.2.2 | 2023-08-25 | Apache License 2.0 | |
UI框架 | ant-design-vue | 4.0.1 | 2023-08-22 | MIT License | |
状态管理 | Pinia | 2.1.4 | 2023-06-14 | MIT License | |
加密工具 | jsencrypt | 3.3.2 | 2023-02-27 | MIT License | |
HTTP工具 | axios | 1.4.0 | 2023-04-28 | MIT License | |
CSS预处理 | less | 4.1.3 | 2022-09-09 | Apache License 2.0 | |
图表工具 | echarts | 5.4.2 | 2023-03-23 | Apache License 2.0 | |
前端在线代码编辑器 | vue-codemirror | 6.1.1 | 2022-08-28 | MIT License | |
西瓜视频播放器 | xgplayer | 3.0.8 | 2023-08-15 | MIT License | |
雪花算法生成唯一ID | snowflake-id | 1.1.0 | 2019-02-28 | MIT License | |
Markdown文档解析 | Marked.js | 9.0.3 | 2023-09-18 | MIT License |
F1 输入markdown,选择开启右侧预览
npx vite --port=4000
npm install
npm run dev
npm run build
根目录:src
- api 后台数据接口
- config axios、http封装
- 其它 业务API接口封装
- assets 资源目录
- component 封装组件
- router 路由配置及守卫
- store 状态管理插件Pinia配置
- utils 公共设置
- compositions 公共资源集合(减少各页面资源引入分组数量)
- gis 地图工具
- interface 自定义接口对象(主要应用于TypeScript实现对象提示)
- tools 公共工具
- commonData 公共静态数据
- commonMethod 公共方法和对象
- commonValidator 公共数据校验
- layoutConfig 公共格式配置
- resize 自适应高度封装hooks
- typewriter 打字机效果工具
- views 页面显示资源
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。