北京国际机场T3行李运维平台开发记录
说明
该项目是一个后台管理型网站项目,供北京国际机场T3航站楼行李调度运维部门使用,开发时间一个半月,我负责所有的前端开发、后端开发、API接口文档设计与编写、服务部署和交付。
整个网站具备的功能有:
- 员工管理
- 员工审批权限管理
- 部门管理
- 部门浏览权限管理
- 五种《申请单》在线申请
- 《申请单》多流程及复杂流程审批
- 设备管理,可详细配置检查时间、频率
- 根据后端发来的设备数据,自动生成六种《设备巡视检查单》,员工可根据巡视结果修改数据
- 交接班记录、行李查询记录、异常行李记录等记录表格
- 排班表,可详细配置每天的值班班组
- 平台公告与文件分享
- 值班员工列表与设备状态可视化
项目技术栈使用nodejs + webpack + react + ice + koa2。
项目截图
项目要点记录
这个项目做的时候,能够记忆尤新的难点有
- 六种《设备巡视检查单》的表格的行和列,都是根据用户后台配置的设备数据自动生成的,有些检查单还需要二级列头,当时花了很多时间去Debug。Bug排除完成后,《设备巡视检查单》可以跟随设备数据的改变而改变,这个功能客户还是很满意的。
- 五种《申请单》的审批流程都不同,有些申请单比如《变更申请单》还需要二次回顾申请。最初做的“申请单页面详情React组件”是通用的,后期发现有很多场景需要特殊处理,情况复杂,就向通用模块里加了很多特殊情况判断与处理代码。组件完成后,无论是用户见到的“申请单详情页面”,还是审批员见到的“申请单详情页面”,用的都是同一个React组件,只不过传入的json配置数据不同,这一点我作为开发者是很满意的,因为这让我后期维护非常方便。
自我感觉做的比较好的地方有:
- 将六种《设备巡视检查单》的表单结构json化,传入json数据不同,页面显示内容不同,React组件不需要改变
- 将《五种申请单》的表单结构和审批流程json化,传入json数据不同,页面显示内容不同,不需要更改React组件代码
- 将《交接班记录》、《行李查询记录》、《异常行李记录》、《破损记录》四种记录表的结构json化,四种记录表共用一套React组件
- 后端的申请单的审批流程设计还是比较靠谱的,能够适应特殊情况,没有出现很多Bug
可以改进之处有:
- 很多页面的结构是相同的,可以使用同一套布局,但是我一开始就太懒,不愿意动脑子,选择了直接将layout组件复制给每一个页面。后期客户要求更换页面UI的时候,发现最初设计的DOM结构需要改变,就每个页面都改了一遍,事倍功半。所以,项目刚开始的时候该提取layout的就提取layout,该做通用组件就做通用组件,开发时偷的懒,到项目后期全都要还回来!
- 整套网站加载js和css是一次性的,而js文件和css文件很大,能达到5MB的大小,这样的网站架构适合内网小网站,对于互联网网站和大型网站来说,显然是不适用的!
北京国际机场T3行李运维平台开发记录的更多相关文章
- OMS自动化运维平台部署
OMS自动化运维平台部署 一.基础环境安装 yum -y install mariadb mariadb-devel mariadb-server wget epel-release python-d ...
- (1)Linux常用的运维平台和工具
运维工程师使用的运维平台和工具包括: Web服务器:apache.tomcat.nginx.lighttpd 监控:nagios.ganglia.cacti.zabbix 自动部署:ansible.s ...
- 实战:阿里巴巴 DevOps 转型后的运维平台建设
导读:阿里巴巴DevOps转型之后,运维平台是如何建设的?阿里巴巴高级技术专家陈喻结合运维自身的理解,业务场景的分析和业界方法论的一些思考,得出来一些最佳实践分享给大家. 前言 “我是这个应用 ...
- 用友iuap云运维平台支持基于K8s的微服务架构
什么是微服务架构? 微服务(MicroServices)架构是当前互联网业界的一个技术热点,业内各公司也都纷纷开展微服务化体系建设.微服务架构的本质,是用一些功能比较明确.业务比较精练的服务去解决更大 ...
- 阿里巴巴 DevOps 转型后的运维平台建设
原文:http://www.sohu.com/a/156724220_262549 本文转载自公众号「DevOps 时代」,高效运维社区致力于陪伴您的职业生涯,与您一起愉快的成长. 作者简介: 陈喻( ...
- devops 运维平台相关知识
1.https://choerodon.io/zh/community/ (代码 https://github.com/choerodon/choerodon) 猪齿鱼 2.https://www.o ...
- 【I·M·U_Ops】------Ⅰ------ IMU自动化运维平台设想
说明本脚本仅作为学习使用,请勿用于任何商业用途.本文为原创,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. #A 搞这个平台的初心 由于之前呆的单位所有IT相关硬件资源都要我们 ...
- (4)Linux常用的运维平台和工具
运维工程师使用的运维平台和工具包括: Web服务器:apache.tomcat.nginx.lighttpd 监控:nagios.ganglia.cacti.zabbix 自动部署:ansible.s ...
- 分享4个运维平台工具OSSIM、Ansible的学习思路
对于当今企业安全来说,真正价值不在于亡羊补牢,也不在于一个或多个高危漏洞.企业在乎的是如何防患于未然,如何快速定位攻击,如何快速解决安全问题.OSSIM作为开源的安全信息管理平台,对于企业的需求来说毋 ...
随机推荐
- Vue 指令总结大全
1.v-text v-text主要用来更新textContent. <p>{{msg}}</p>与<p v-text="msg2"></p ...
- 继上篇-jquery ajax提交 本篇用ajax提交的数据去数据库查询
上篇讲到如何用jquery ajax提交数据至后台,后台接收并返回给ajax.https://www.cnblogs.com/tiezhuxiong/p/11943328.html 今天我们把数据传到 ...
- 【2018寒假集训 Day2】【动态规划】又上锁妖塔
又上锁妖塔 (tower.in/tower.out) [题目描述] 小D在X星买完了想要的东西,在飞往下一个目的地的途中,正无聊的他转头看了看身边的小A,发现小A正在玩<仙剑>,可是小A很 ...
- Stream系列(六)Match方法使用
条件比配 视频讲解 https://www.bilibili.com/video/av77403655/ EmployeeTestCase.java package com.example.demo; ...
- Java语法进阶10-多线程
多线程 并发与并行.进程,线程调度自行百度 线程(thread):是一个进程中的其中一条执行路径,CPU调度的最基本调度的单位.同一个进程中线程可以共享一些内存(堆.方法区),每一个线程又有自己的独立 ...
- Hadoop streaming脚本中约束关系参数详解
1 -D mapred.output.key.comparator.class=org.apache.hadoop.mapred.lib.KeyFieldBasedComparator \ 2 -D ...
- node_export 安装
目录 安装部署 环境准备 下载安装 启动测试 安装部署 环境准备 主机名 角色 IP 系统版本 内核版本 es01.k8s.com node01 10.0.20.11 CentOS 7.5 5.1.4 ...
- STM32 GPIO口的配置和应用
STM32F103ZET6 一共有7组IO口(有FT的标识是可以识别5v的) 每组IO口有16个IO 一共16*7=112个IO 4种输入模式: (1) GPIO_Mode_AIN 模拟输入 (2) ...
- request获取路径
1.request.getRequestURL() 返回的是完整的url,包括Http协议,端口号,servlet名字和映射路径,但它不包含请求参数. 2.request.getRequestURI( ...
- Android 自定义饼状图
github 地址:https://github.com/dkest/PieView 简单分析 其实根据我们上面的知识已经能自己制作一个饼状图了.不过制作东西最重要的不是制作结果,而是制作思路. 相信 ...