# eiip **Repository Path**: ay8yt/eiip ## Basic Information - **Project Name**: eiip - **Description**: 10个字10个字10个字10个字 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-11-10 - **Last Updated**: 2022-11-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EIIP ## 项目初始化 ``` npm install ``` ### 启动项目 ``` npm run serve ``` ### 打包项目 ``` npm run build ``` ### 导出webpack文件 ``` #导出开发配置 vue inspect > output.js #导出生产配置 vue inspect --mode production > output.prod.js ``` ### 在本地测试时的注意事项 1. 恢复App.vue中有关临时登录的代码 2. 注释掉router/index.js中的路由守卫 ### 任务分配 ## 宋佳盟 1. 注册 ## 李亚波 1. 开发者认证, 2. 开发者认证模板管理 3. 资源申请 4. 工单管理 ## 尹涛 1. 单点登录 2. 权限判断 3. 我的消息 4. 个人中心 5. 账号审批 6. 系统认证 7. 日志管理 8. 我的资源 9. IaaS平台资源管理 10. 文档管理 11. 多租户管理 12. 组织用户管理 13. 角色权限管理, 14. 系统管理-组织用户管理 15. 系统管理-角色权限管理 16. 社区论坛(集成) 17. 首页(集成) 18. 帮助中心(集成) 19. 应用商店(集成) ### 项目结构及其它说明 ```bash project ├---public | ├---js | | ├--lodash.js #loadash通用库 | ├---index.html #最终html页面 ├---src | ├---assets #动态资源目录 | | ├--css #通用CSS文件 | | ├--font #本地图标库(通常采用远程加载) | | ├--img #通用图片资源 | ├---components #通用组件目录 | | ├--common #业务无关通用组件 | | ├--project #当前项目通用组件 | | | ├--Crumbs.vue #面包屑组件 | | | ├--NavBar.vue #顶部导航组件 | | | ├--Result.vue #审核提交结果组件 | ├---router #路由目录 | | ├--index.js #路由配置 | ├---store #vuex仓库目录 | | ├--index.js #仓库实例 | | ├--xxx.js #仓库模块 | | ├--yyy.js #仓库模块 | | ├--zzz.js #仓库模块 | ├---util #工具函数目录 | | ├---request.js #axios请求封装 | ├---views #页面目录 | | | ├--development #开发者社区 | | | | ├--CertApply.vue #开发者认证申请 | | | | ├--CertInfoManagement.vue #开发者认证模板管理 | | | | ├--Community.vue #开发者社区(集成) | | | | ├--WorkOrderDetail.vue #开发者认证工单详情 | | | | ├--WorkOrderManagement.vue #开发者认证工单管理 | | | ├--docManagemrnt #文档管理模块 | | | | ├--List.vue #列表页 | | | ├--helpCenter #帮助中心 | | | | ├--helpCenter.vue #帮助中心首页 | | | ├--helpCenterManagement #帮助中心管理 | | | | ├--List.vue #帮助中心管理配置中心 | | | ├--homePageManagement #首页管理 | | | | ├--List.vue #首页管理配置中心 | | | ├--login #登录注册 | | | | ├--Login.vue #登录页面 | | | | ├--Register.vue #注册页面 | | | ├--myResources #我的资源 | | | | ├--List.vue #列表页 | | | ├--resourceApply #资源申请模块 | | | | ├--List.vue #资源申请工单列表 | | | | ├--WorkOrderDetail.vue #资源申请工单详情 | | | | ├--PaaSApply.vue #PaaS资源申请页 | | | | ├--IaaSApply.vue #IaaS资源申请页 | | | ├--resourcesManagement #IaaS资源管理 | | | | ├--List.vue #列表页 | | | ├--roleManagement #租户角色授权管理 | | | | ├--List.vue #列表页 | | | | ├--adduser.vue #用户列表(组件)) | | | | ├--accredit.vue #权限列表(组件) | | | ├--systemManagement #系统管理模块 | | | | ├--accountApproval #账户审批 | | | | | ├--List.vue #列表页 | | | | ├--logManagement #日志管理模块 | | | | | ├--List.vue #列表页 | | | | ├--roleManagement #系统角色授权管理 | | | | | ├--List.vue #列表页 | | | | | ├--adduser.vue #用户列表(组件) | | | | | ├--accredit.vue #权限列表(组件) | | | | ├--systemCertification #系统认证 | | | | | ├--List.vue #列表页 | | | | ├--userManagement #组织机构(用户)管理 | | | | | ├--List.vue #列表页 | | | ├--tenantManagement #多租户管理 | | | | ├--List.vue #列表页 | | | ├--tenantManagement #租户组织机构(用户)管理 | | | | ├--List.vue #列表页 | | | ├--workorderManagement #工单管理 | | | | ├--List.vue #列表页 | | | ├--AppSotre.vue #应用商店(集成) | | | ├--Home.vue #首页 | ├---App.vue #根组件 | ├---main.js #入口文件 ├---.browserslistrc #浏览器兼容配置文件(供babel等工具使用) ├---.gitignore #git提交忽略文件 ├---bable.config.js #bable配置文件 ├---package.json #项目配置文件 ├---vue.config.js #vue配置文件 ``` > ## 一些基本原则 【1】 一般原则下,如有设计图,尽量不使用第三方UI组件库,但可以引入CSS自定义样式库,例如 bootstracp自定义主题 【2】 如使用第三方组件库,需要再main.js进行[【按需引入】【全局引入】,禁止因个人需要,在页面内局部导入第三方组件库 **Ex: 正确写法** ```bash ### main.js import {Toast,Button} from 'vant' ``` **Ex: 不规范写法** ```bash ### detail.vue import {Toast,Button} from 'vant' 或者 import vant from 'vant' ``` 【3】 局部引入组件时,可以使用**驼峰命名**方式直接编写组件,或使用**中横线命名**编写,总之要保持一致 **Ex: 正确写法第一种** ```html ### detail.vue ``` **Ex: 正确写法第二种** ```html ### detail.vue ``` **Ex: 不规范写法** ```html ### detail.vue ``` 【4】统一采用ES最新语法,包括但不限于 解构赋值、箭头函数、Map集合、扩展运算等,禁止出现新老语法混用。 **Ex: 正确写法** ```javascript let {map, info} = obj let res = map.res; ### test.vue { data(){ return { ... } }, methods: { publish() { this.$http({ method: 'poost', url: 'xxxxxx', data: { ... } }) .then( res => { }) .catch( err => { }) }, prefill() { } } } ``` **Ex: 不规范写法** ```javascript let {map, info} = obj var res = map.res; //不规范 ### test.vue { data(){ return { ... } }, methods: { publish: function() { //不规范 this.$http({ method: 'poost', url: 'xxxxxx', data: { ... } }) .then( res => { }) .catch( function(err){ //不规范 var _this = this; //不规范 ... }) }, prefill() { } } } ``` > ## VUE页面的写法规范 【1】组件各个部分声明顺序要统一标准 ``` export deafult { name : 'xxxx', components: { //优先声明使用的组件 xxxx xxxx }, data() { return { ... } }, created() { //页面初始数据请求统一在这里进行 }, mounted() { //涉及页面初始DOM操作的,统一在这里执行 }, .... methods: { aaaa(){ //方法说明注释写在这里,方便代码折叠时查看 ... }, bbbb(){ //方法说明注释写在这里,方便代码折叠时查看 } }, watch: { }, computed: { //计算属性不影响代码阅读,放在最后 xxxxx(){ } } } ``` 【2】 原则上组件的属性过多时尽量不折行,当需要折行时,将静态属性与动态属性分开 ```html ## 原则上不允许写行内样式!!! 除非在后期BUG修复阶段,更改成本过高时考虑 ``` > ## **基本封装** 1 使用**axios**进行网络请求,已进行封装,并支持jsonp,详情参见 **util/request.js**文件 2 全局引入**lodash**工具,详情参见**main.js**文件。文档地址: https://www.lodashjs.com/ 3 路由 **index.js** 文件添加了全局钩子函数,可根据需要进行验证。详情参见 **router/index.js** > ## **关于样式** 1 使用sass作为CSS预处理方案, 对于sass不熟悉者,可编写原生CSS, 但必须严格遵循sass树形结构语法 2 所有页面必须启动css module, 避免样式的冲突,全局样式写在App.vue中, 不要重复劳动 ```html ``` 3 如果第三方组件样式需要在个别页面修改,必须使用css module方式,禁止直接link或import CSS文件 **Ex: 正确写法** ```html ### App.vue ### detail.vue ``` **Ex: 不规范写法** ```html ### App.vue ### detail.vue ``` > ## **关于路由router/index.js** 【1】 子路由必须保持restful风格,禁止所有子路由采用根路径访问 **Ex: 正确写法** ```bash ### router/index.js path: '/aaa' component: a children: [ { path: 'bbb' component: b } ] ### 跳转方式 this.$router.push({ path:'/aaa/bbb' }) ``` **Ex: 不规范写法** ```bash ### router/index.js path: '/aaa' component: a children: [ { path: '/bbb' component: b } ] ### 跳转方式 this.$router.push({ path:'/bbb' }) ``` 【2】路由组件使用异步加载 **Ex: 正确写法** ```javascript component: () => import( /* webpackChunkName: "home" */ '../views/Home.vue') ``` **Ex: 不规范写法** ```javascript import Home from '../views/Home.vue' ... component: Home ``` > ## 关于vuex 1 使用action与mutiation,以防止出现异步操作,如有异步操作,需写在action层 3 不使用getters,不做map映射,提高组件代码的可读性 4 非全局数据禁止使用vuex存储 > ## vue.config.js 【1】启用了externals选项,包含Vue、jQuery、lodash,打包时排除在外,改由在index.html直接引入,详情参见文件内容。 【2】配置proxy代理请求前缀 /api , 所有需要代理的请求前缀必须带上 /api > iframe通信规范及示例代码