前端如何做设计

259 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第5天,点击查看活动详情

前端设计的目的:

  • 更加深入理解产品需求
  • 任务拆解和工时评估
  • 解决技术复杂度和业务复杂度问题
  • 前后端接口协议约定,确定依赖方的工作内容

一、版本概况

背景

回收商在与卖家聊天时,由于咨询人员较多,所以需要分配给客服处理。所以需要做客服分单机制以及客服转单机制。同时回收商与卖家可在IM内直接交易。

需求地址

项目实际原型地址

涉及项目

www,seller,businesscs(新增)

二、页面操作流程

sdk实名认证失败前端页面跳转流程图


流程图补充

  • 打开微信支付链接的位置:自动登录、账号登录、第三方登录(QQ、微信)、手机号注册、快速注册和手机号注册
  • 涉及前端所有改动均判断微信环境内(仅微信内微信支付),避免影响到其他
  • 实名认证关闭封装函数

三、代码逻辑设计

3.1、eg:nosleep不息屏(新功能调研)****

实现原理

手机浏览器在播放视频的时候,手机是不会进入睡眠状态的。因此如果你的WEB应用能实现此效果,那你就可以阻止手机屏幕进入睡眠状态了。NoSleep.js之所以可以阻止手机屏幕进入睡眠状态,就是因为它模拟持续播放一小段MP4视频。****


可行方案

使用NoSleep.js实现,已用demo实现需求,可用

技术风险及对应解决测略

1、移动端使用效果良好,实现了屏幕不熄灭,暂无其他影响,对性能无明显消耗,

2、在苹果手机使用后,手动关闭屏幕在亮起会看到有名为NoSleep的视频在播放器中,若用户禁止视频播放,或手动关闭视频,用户操作行为不可控;

3、PC端会导致电脑发热,可能对mac性能消耗较大,目前判断环境,在PC端不调用

4、某些环境下不能完全兼容,可以满足正常需求;

兼容问题社区地址:github.com/richtr/NoSl…

备选方案

xxxxxxxx 参考文献地址

3.2、访问权限控制

1、用户登陆后,后端返回该用户角色所拥有的菜单权限,具体数据格式如下:

var data = [
    {
        name: '账号回收管理',
      	path: '/accountBack',
      	icon: 'el-menu',
        child: [
            {
                name: '回收客服设置',
                path: '/accountBack/serverSetting',
                icon: ''
            },
          	{
                name: '店铺设置',
                path: '/accountBack/storeSetting',
              	icon: ''
            },
          	{
                name: '聊天列表',
                path: '/accountBack/chatList',
              	icon: ''
            },
          	{
                name: '开始上班',
                path: '/accountBack/startWorking',
              	icon: ''
            }
        ]
    }
]

2、编写所有功能完整的路由表

3、编写导航钩子,进行路由访问鉴权

在页面跳转时,将路由表和返回数据进行匹配,如果存在于返回数据中则正常跳转,如果不存在则跳转到任意页面。这里我们需要实现这个逻辑。以下为简单实现,只说明原理,不涉及细节。

// router为vue-router路由对象
router.beforeEach((to, from, next) => {
    // ajax获取权限列表函数
    // 这里省略了一些判断条件,比如判断是否已经拥有了权限数据等
    getPermission().then(res => {
        let isPermission = false
        permissionList.forEach((v) => {
            // 判断跳转的页面是否在权限列表中
            if(v.path == to.fullPath){
                isPermission = true
            }
        })
        // 没有权限时跳转到401页面
        if(!isPermission){
            next({path: "/error/401", replace: true})
        } else {
            next()
        }
    })
})

四、前后端接口协议约定

www.yuque.com/cths8s/yewu…

五、风险点(非必须)

  • 影响线上注册功能
  • 影响实名认证功能