# 项目必读 ## 项目运行 ``` npm install // 项目初始化下载,运行过慢时可选择执行yarn,运行前如有package-lock.json请删除 npm start // 运行 npm run build // 打包 ``` ## 注意事项 * 项目的运行环境是node@14.17.4版本下下载的。(版本过高可能会存在问题) * TODO 标签代表可运行但后续变化可修改 * 打包代码需注意api地址访问,需修改utils - utility.js文件的 isDebug 变量,true为正式环境。 * 引入dingtalk-jsapi包是为了钉钉ui组件引入,未使用到钉钉的jsapi接口, 此项目为政务钉钉jsApi调用是用gdt-jsapi * 引入海口地图服务注意: 1. 海口地图引入了public的map,主要在index.html里面中引入了: ``` ``` 2. 修改了map地图内以下地址的源码,添加了自己的服务器资源地址替换原有的地址,将源代码中的[HOSTNAME_AND_PATH_TO_JSAPI] 替换为global中的arcgisUrl。 D:\CodeWeb\hztGrid\mobile\public\map\arcgis_js_v332_api\arcgis_js_api\library\3.32\3.32 地图路径需要修改 ``` static-server\public\arcgis-3.32\init.js // 38行处 static-server\public\arcgis-3.32\dojo\dojo.js // 36行处 ``` 3. 海口地图参考:ArcGIS API for JavaScript3.x版本。 4. 项目运行地图服务(ArcGIS)时调用的是以下地址(global.js)内的请求链接,如项目存放的服务器地址变更注意此(global.js)也需要考虑是否变更。 ``` static-server\public\arcgis-3.32\global.js ``` * gdt-jsapi海口“海政通”接口调用的包。 * 项目中使用了“react-router-cache-route”路由缓存,可以缓存路由页面,不进行二次刷新页面,刷新页面通过status->router.js内的spinPage变量控制。 * building,room,task,mediate/eventList模块页面(index.jsx)和搜索页面(Search.jsx)有共同的操作代码,如要改其中一个,另一个也需要注意是否需要更改,后续这一部分逻辑可优化(当时设计是为了独立性)。 * 项目中曾使用react-virtual虚拟滚动,但因与react-router-cache-route配合使用时产生滚动条复位的问题未能解决,现已屏蔽react-virtual相关代码,后续不需要则可删除。 ## 项目目录 ``` ├── public │ ├── favicon.ico │ ├── index.html │ ├── loader.css 项目初始空白过渡动画 │ ├── map_dot.png 地图服务的打点标记图片icon │ ├── marker.png 地图服务的marker标记图片icon │ ├── dayjs.min.js 时间,日期处理的js,moment的替代 │ ├── regionData2.js 海口市地址js │ ├── regionData.js 省市区地址js │ └── map 海口政务地图服务的js库 ├── src ├── api 项目api接口 ├── assets 项目图片,icon等资源 ├── components 公共组件,页面组件(页面组件多数情况下都是其页面单独使用)库 ├── router 路由 ├── status 数据,状态,工具类 ├── styles 样式 ├── utils 公共方法 ├── views 页面 └── index.js 入口文件 └── craco.config.js craco的配置文件,用于加载less ```