# yuncang-webapp
**Repository Path**: hclabxing/yuncang-webapp
## Basic Information
- **Project Name**: yuncang-webapp
- **Description**: 隆玛云仓管理系统前端
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 3
- **Created**: 2022-10-30
- **Last Updated**: 2022-10-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 一、参考文章
#### 1.ProComponents组件
ProComponents 基于 antd 之上来开发的高级组件:https://procomponents.ant.design/docs/intro
该组件更新比较频繁,文档中一些新的特性可能是最新组件添加的,因此在coding中需要特别留意
antd组件库:https://ant.design/components/overview-cn/
#### 2.ant degign pro v5版本
Ant Design Pro 基于 umi 来构架脚手架,我们可以通过简单的操作来初始化和启动脚手架。
https://beta-pro.ant.design/index-cn
### 3.umi插件库使用
https://umijs.org/zh-CN/plugins/plugin-initial-state
### 4.开发目标
https://www.hightopo.com/demo/alarm-manage/
### 5、栅格式响应布局
xs 超小屏幕如手机 sm 小屏幕如平板 md中等屏幕 lg大屏幕 xl超大屏
### 6、request
https://github.com/umijs/umi-request
### 二、git使用
### 1、 如果后面提交的有问题,想恢复到之前某个版本可以使用:git resst xxxx版本 设置当前指针为xxxx版本
### 2、然后创建new branch。将xxx版本checkout到new branch上
### 3、切换到master分支,合并new branch分支 git merge new branch
### 恢复某一版本方法二:
查看更新日志,点击右上角时钟图标选中某一历史版本 查看Log,Reset Current Branch to Here 选选择Hard 然后提交
### 三、包安装
### 1、npm install xxx@latest 最新包
### 2、运行之后如果发现主题色很少,需要安装umi-plugin-antd-theme插件进行配置
cnpm install umi-plugin-setting-drawer --save-dev
cnpm install umi-plugin-antd-theme --save-dev
"umi-plugin-antd-theme": "^2.1.2",
"umi-plugin-setting-drawer": "^1.0.3"
同时需要配置主题相关信息config/theme.config.json,umi-plugin-antd-theme会根据遍历挣个配置动态的在node_modules\.plugin-theme\theme下生成的对应的样式文件
最终在点击SettingDrawer组件进行样式调整的时候,实际就是给动态body加入样式文件的过程
我们可以将样式文件复制到/public/theme/下
如果不想进行样式配置,需要把package.json devDependencies中的这两个包排除
ThemeColor 用于展示当前可选的主色,这个色彩列表由 umi-plugin-antd-theme 插件提供,该插件会将一个色彩列表放到
window.umi_plugin_ant_themeVar 变量上,SettingDrawer 会读取这个变量并给到 ThemeColor。
```javascript
changeSetting('primaryColor', color, hideLoading)
}
/>
```
源码地址 https://github.com/ant-design/pro-components/packages/layout/src/components/SettingDrawer/index.tsx
参考链接:https://pro.ant.design/docs/dynamic-theme-cn
使用React+Umi+Ant Design Pro实现生产环境动态切换主题,支持暗黑主题 https://www.cnblogs.com/dygood/p/12072096.html
官方錯誤解決方案:https://github.com/ant-design/ant-design-pro/issues
antd-pro 主题色实现原理 https://juejin.cn/post/6926442970388365319
### 3、动态加载主题色原理
#### 3.1、umi-plugin-antd-theme 插件流程分析
更改 cssLoader 配置,修改 src 目录下 less 文件 CSS Modules 选择器名称
加载工程固定路径下主题配置文件 config/theme.config.json覆盖默认配置(配置配置为空,也就是使用组件原始配置样式)
设置dev环境临时主题色文件路径为 node_modules/.plugin-theme/theme
设置serve-static中间件,允许访问临时主题色文件
将主题色配置信息挂载在 window.umi_plugin_ant_themeVar
dev环境 onDevCompileDone
如果存在临时文件,则删除
创建 .plugin-theme/theme
遍历config/theme.config.json下每个主题色,使用 antd-pro-merge-less包 buildCss 至 .plugin-theme/theme 每一个主题色,生成一个 css 文件
prod 环境与 dev 环境的差异体现在生产的文件生成在 dist/theme 目录下
#### 3.2、antd-pro-merge-less 流程分析
设置临时文件目录
使用 glob 找到 antd-pro-merge-less 项目下所有的 less 文件路径
将所有less文件内容写入antd-pro-merge-less/.temp/temp.less以及antd-pro-merge-less/.temp/pro.less
如果config/theme.config.json配置"ignoreAntd": false 则还会导入antd模块下的所有less文件(如果没有配置dark:true,
不会加载themes/dark.less,themes/compack.less),到 ./antd.less
将@import './antd'导入./components.less文件,同时还会根据extraLibraries配置导入antd design pro组件的样式文件
提取import文件的变量,删除 import ,写入antd-pro-merge-less/.temp/pro.less 并引用 @import './components'
将依赖的 antd 相关组件的 less 文件写入./components.less
开始遍历不同的颜色配置
根据不同配置生成 antd less 文件
使用 less 将 pro.less 文件转化为 css 文件,并替换变量
#### 3.3、配置信息config/theme.config.json
extraLibraries:@antd-design/pro-xxx 在生成样式文件时,会加载该指包中样式文件
ignoreAntd:在生成样式文件时,是否加载antd样式文件
cache:是否开启缓存 通过比较样式和antd-pro-merge-less/.temp/temp.less文件的hash,判断文件是否需要重新生成,这样就不会在每次启动的时候重新生成样式文件
#### 3.4、错误处理
##### 如果运行出现错误 检查node_modules\_antd-pro-merge-less@xxx@antd-pro-merge-less\loopAllLess.js文件,修改文件最后为
return Promise.resolve(
// prettier.format(content, {
// parser: 'less',
// }),
content
);
因为prettier.format在格式化less文件时会将
@pro-global-footer-prefix-cls: ~'@{ant-prefix}-pro-global-footer' -> @pro-global-footer-prefix-cls ~'@{ant-prefix}-pro-global-footer'
##### pro-card组件存在Bug _@ant-design_pro-card@1.11.7@@ant-design\pro-card\es\components\Statistic\index.less
.@{ant-prefix}-statistic-title {
color: @text-color; # 将之前的固定色rgba(00,00,00,0.45)修改成变量
}
#### 3.5、如果config/theme.config.json配置中开启了缓存cache
如果想强制重新生成样式文件删除antd-pro-merge-less\.temp\temp.less文件 重新运行即可
或者关闭缓存
### 四、数据表名命名规范
1. 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔
2. 全部小写命名,禁止出现大写
3. 禁止使用数据库关键字,如:name,time ,datetime,password等
4. 表名称不应该取得太长(一般不超过三个英文单词)
5. 表的名称一般使用名词或者动宾短语
6. 用单数形式表示名称,例如,使用 employee,而不是 employees
7. 表必须填写描述信息(使用SQL语句建表时)
### 五、React命名规范
1、组件名称全部大写字母开头
2、其他
文件夹以 xxx-xxx 命名
内部文件以驼峰命名,如
eslint-utils:
applyDefault.ts
### 六、java命名规范
1、方法命名 返回列表的 +s
public List getParameterMappings()
2、成员属性命名 collection +s
private List resultMappings;
3、map成员
Map methodCache = new ConcurrentHashMap<>()
4、方法名称 做到望文生义
getUserById
getUserByLoginName
...