erp前端项目总结

太极ERP前端开发总结

一、项目目录(vue-cli2)

├── build
├── config
├── dist //打包后生成的静态页面文件
├── src  
│   ├── assets //全局静态图片 
│   ├── components //所有组件(项目核心部分)
│   │   ├── element //业务代码
│   │   ├── layout //布局代码(导航,头,和主体部分)
│   │   ├── login //登录代码
│   │   ├── public//公用功能组件 
│   ├── filters //全局过滤器
│   ├── my-theme //全局样式表
│   ├── router //路由
│   ├── sever
│   │   ├── api.js //全局API
│   │   ├── method // API方法
│   │   ├── https.js // axios封装,路由请求响应拦截等
│   ├── store //状态管理
│   ├── utils //公用方法
│   │   ├── public_function //公用api增删改查审核作废等方法
│   │   ├── fetch.js //签名生成方法
│   │   ├── rules.js //封装验证方法
│   ├── App.vue //父组件
│   ├── main.js //入口文件
└── static //静态资源

项目目录是采用 vue-cli 自动生成的,如需添加依赖,"$ npm install 依赖名" 即可(如果仅用于开发阶段,则使用 $ npm install --save-dev )。

注:-save 和 save-dev 可以省掉你手动修改 package.json 文件的步骤。

npm install module-name -save 自动把模块和版本号添加到 dependencies 部分。
npm install module-name -save-dev 自动把模块和版本号添加到 devdependencies 部分。

​现已将 vue-cli2 升级到 vue-cli3 ,大大加快了项目编译及打包速度, 但 src 下的目录结构与业务代码几乎没有变动。

二、开发实践

(一) 权限

  1. 权限需求定位到每个页面的每个按钮(主要是列表页): 添加、修改、查看、审核、作废、反审核、打印等,如无权限直接屏蔽该按钮。
  2. 当路由改变时,我们需要动态的监听该页面是否具有权限,可在 router.afterEach 钩子函数中设置( router/index.js )
  3. 将获取到的权限存放到本地存储里,相应在页面里获取本地存取的权限值然后控制页面上按钮的显示状态。
  • 页面使用方法

    
    /**
    1. 在 created 或者 mounted 钩子函数初始化时获取
    2. 在template模板中给按钮绑定权限
    **/
    data(){
        return {
            authority: {},
        }
    },
    created() {
        this.authority = JSON.parse(localStorage.getItem("authority")); 
    } 
    
    
    <!-- template -->
    <el-button icon="el-icon-circle-plus-outline" @click="salesAddF" v-if="authority.b_add == 1">新增</el-button>
    <el-button icon="el-icon-delete" @click="deleteF" v-if="authority.b_del == 1">删除</el-button> 
    
    
    // router/index.js
    import Vue from "vue";
    import axios from "@/sever/https";
    import Router from "vue-router";  
    Vue.use(Router);
    const router = new Router({ 
        base: '/tomcat/',
        routes: [{
                path: "/login",
                name: "登录页面",
                component: login,
            },
            ...],
        ]
    });
    router.beforeEach((to, from, next) => { 
        var objArr = str.split("/", 3); 
        if (to.matched.some(r => r.meta.requireAuth)) {
            if (store.state.system_app.token) {  
                //登录状态当监测到路由变化,则去请求进入页面的权限接口
                    axios({
                        method: "get",
                        url: "xxxRuleApiUrl",
                        params: { code: objArr[2] }
                    }).then(res => {
                        if (res.data.code == 200) { 
                            if (res.data.data.is_role == 'Y') {
                               //如果该页面设有权限则将权限详情先存于本地
                               window.localStorage.removeItem("authority")
                                let authority = JSON.stringify(res.data.data.role_list); 
                                localStorage.authority = authority;                                next();
                            } else {
                                // 未有页面访问权限
                                next({
                                    path: "/isRole",
                                    query: {
                                        redirect: to.fullPath
                                    }
                                });
                            } 
                            next();
                        }
                    });
    
            } else {
                next({
                    path: "/login",
                    query: {
                        redirect: to.fullPath
                    }
                });
            }
        } else {
            next();
        }
    }); 
    export default router; 
    

(二) 各组件间传递数据

  1. 点击 vuex官网
  2. 项目中引入了vuex,使组件间传值更加方便,避免使用中间件 bus 等
  3. 如果是简单的子父传参,建议使用 $parent / $children / $emit / $attrs / $refs.name 来减少代码量,并更易于读写,避免污染全局(灵活运用)
  4. 项目中大量运用到 vuex 的主要是解决列表页、新增页、修改页、查看页的来回跳转

例,使用vuex存储变量,切换新增修改查看页面

  • 页面调用方法

    
    // 使用方法:调用 ACTION 的salesorderIndexACT方法,改变modulename为Index,
    // 切换组件到首页并更新视图
    // salesorderAdd.vue
    import { mapActions, mapGetters } from "vuex";
    methods:{
        ...mapActions([
          "salesorderAdd",
          "salesorderIndexACT"
        ]),
        goBack() {
        // 回到
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
作为前端开发ERP软件项目的职责描述,主要包括以下几个方面: 1. 分析需求和设计界面:与产品经理、设计师等团队成员合作,分析用户需求和产品设计,设计符合用户需求的界面,并提供良好的用户体验。 2. 开发前端页面和功能:使用HTML、CSS和JavaScript等前端技术,开发并实现ERP软件的前端页面和功能,包括数据展示、数据输入、数据处理和业务逻辑等。 3. 与后端接口对接:与后端开发人员协作,根据接口文档进行接口对接和数据交互,确保前后端数据的准确传输和一致性。 4. 实现数据可视化:使用可视化图表库或框架,将ERP软件中的数据以图表等形式进行可视化展示,方便用户更好地理解和分析数据。 5. 优化性能和用户体验:通过前端优化技术(如代码压缩、资源合并、懒加载等),提升ERP软件的性能和用户体验,确保页面加载速度快、操作流畅。 6. 跨浏览器兼容性测试:测试并确保ERP软件在各种主流浏览器(如Chrome、Firefox、Safari等)下的正常运行,并解决兼容性问题。 7. 代码版本管理和团队协作:使用版本管理工具(如Git)管理代码,与团队成员协作开发,参与代码评审和项目迭代。 8. 系统维护和故障排除:及时响应用户反馈并解决软件中出现的前端问题,修复bug,确保ERP软件的稳定运行。 总的来说,前端开发ERP软件项目的职责是负责开发和维护ERP软件的前端界面和功能,与后端进行数据交互,优化性能和用户体验,并与团队成员协作推动项目的成功交付。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值