一、前言
随着开发人员的不断增加,在没有规范的情况下,就会导致开发的页面不统一,不像是一个系统。为了解决这个问题,就有了此规范的出现,当然为了不影响各个功能的灵活性,此规范要求不高, 请耐心阅读,并应用到日常开发中。
当然,如果你有更好的建议,可以通过邮件联系 yangyj13@lenovo.com,进行沟通来完善此篇规范。
二、编程规范
2.1 命名规范
2.1.1 文件命名
全部采用小写方式,以横杠分割。
正例: resource.vue
、user-info.vue
反例: basic_data.vue
、EventLog.vue
2.1.2 目录命名
全部采用小写方式,以横杠分割。
正例: system
、ship-support
反例: errorPage
、Components
2.1.3 JS、CSS、SCSS、HTML、PNG文件命名
全部采用小写方式,以横杠分割。
正例: btn.scss
、element-ui.scss
、lenovo-logo.png
反例: leftSearch.scss
、LeGrid.js
2.1.4 命名规范性
代码中命名严禁使用拼音和英文混合的方式,更不允许直接使用中文的方式。说明: 正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音的命名方式也要避免采用。
正例: loading
、searchForm
、tableHeight
、dmsLoading
、rmb
专有名词缩写,视同英文
反例: getLiaoPanName
、DMSLoading
2.2 插件使用
2.2.1 eslint 代码规范
注意:前端的代码格式化已经在 eslint
中声明了,所以确保自己已经启用了 eslint
,并使 eslint
进行代码格式化。
2.2.2 i18n 国际化
所有展示的内容都要支持国际化。国际化内容写到 /src/lang/
下的对应模块,通过 this.$t('xx.xx.xx')
来使用。
英文国际化的列或标签,请使用开头字母大写的方式,如: UserId
、Status
、UserName
。
2.3 组件使用
2.3.1 table 表格
表格组件推荐使用 vxe-table,功能更加全面,之后也会主力优化此表格。比如可编辑表格的样式经过优化:可编辑表格
2.3.2 dialog 弹窗
弹窗组件推荐使用 vxe-modal,代码设计更加合理,功能也更加全面。
2.3.2 element-ui
除 table
和 modal
外,其他组件比如 form
、button
、DateTimePicker
优先使用 element-ui 。
2.3.2.1 icon 图标
图标优先使用 element-ui 的图标。如果没有合适的,可以在 iconfont 上寻找到合适的图标后,找 yangyj13@lenovo.com 进行添加。
2.3.2.2 button 按钮
按钮大小:除了在表格中的按钮要使用 size="mini"
外,其他情况使用默认大小即可。
按钮颜色:普通的 查询/修改/操作 等按钮使用蓝色 type="primary"
,新增使用绿色 type="success"
,删除等“危险”操作使用红色 type="danger"
。推荐给按钮添加图标,可在 element-ui-icon 寻找合适的图标。
2.3.3 其他组件
如果上述组件并不能满足业务需求,可以优先在网上找到合适的组件后,与 yangyj13@lenoov.com 联系后添加。
2.4 页面布局
2.4.1 新增/修改表单
普通的表单,采用中间对其的方案,也就是整个表单的 label-width
设置为一样的。
注意:一般的,新增修改使用弹窗的方式,展示表单。新增/修改可以共用代码,具体可以参考 common/system/va-config.vue
<el-form
ref="dialogForm"
v-loading="edit.loading"
:model="edit.form"
:rules="edit.formRules"
label-width="150px"
style="padding-right: 30px;"
>
...
</el-form>
2.4.2 查询表单+表格
这种应该是最长间的需求方案了,可以参考 /common/system/user.vue
,在写的时候注意以下几点:
label-width
不要设置,保证标签文字开头和表格对齐。el-form
使用:inline="true"
设置表单内容行内显示。- 设置
vxe-table
的height
属性,保证表格底部贴住网页底部,又不会有滚动条(表格内允许有滚动条) - 按钮也放到表单中,不要单独一行。
最终效果如下:
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 [email protected]