V3.3.4

date:2025-05-23 (仅授权版更新)下载地址

1、代码生成bug修复

2、完善错误处理,添加带自定义错误码的响应信息

err = g.Try(ctx, func(ctx context.Context) {
        err = XXX()  //可能返回错误时
        //判断错误不为空则返回对应错误状态码和错误信息
        liberr.ErrIsNilCode(ctx, err, 999"xxxxxxxxxxx")
    })

前端响应为:

{
    "code": 999,
    "message": "xxxxxxxxxxx"
}

3、修复权限中隐藏菜单权限分配后用户还是没有权限的问题

4、修复用户选择器回显时用户不存在报错bug

5、升级gf版本,gf版本更新为2.9.0

6、数据权限修改,数据权限方法GetAuthWhere与GetAuthDeptWhere返回值改为g.Map,方便和其它复杂查询条件拼接,注意若之前使用了数据权限,需要修改调用处如下:

//数据权限只需添加此行代码
//注意GetAuthWhere是使用创建人ID,此时若创建人转移了部门,数据会跟随创建人迁移
//如果要保持数据保留在原部门需要使用部门ID则使用GetAuthDeptWhere
m = s.GetAuthDeptWhere(
    ctx,
    m,
    req.UserInfo,
    "sys_user", "dept_id", "id",
)
//此时如果需要将数据权限与另外的条件生成OR+AND条件就非常麻烦,比如条件为 where (数据权限 OR name =xxx) AND age>18 无法做到这种

改为:

where := s.GetAuthDeptWhere(
        ctx,
        req.UserInfo,
        "sys_user", "dept_id", "id",
    )
if len(where) > 0 {
    m = m.Where(where)
}
//此时如果需要将数据权限与另外的条件生成OR+AND条件就非常麻烦,比如条件为 where (数据权限 OR name =xxx) AND age>18 如下即可:
if len(where) > 0 {
    m = m.Where(m.Builder().WhereOr(where).whereOr(name,xxx)).Where("age > ?",18)
}

7、修复完善前端权限判断

完善前端authauthsauthAll方法,用于通过ifv-shhow控制按钮或其它元素的显隐,如:

//单权限判断
<el-button type="primary" v-show="auth('api/v1/useCar/taxTolls/add')">添加</el-button>
//多个权限只需满足其中一个,满足一个则为 true
<el-button type="primary" v-show="auths(['api/v1/useCar/taxTolls/add','api/v1/useCar/taxTolls/add2'])">添加</el-button>
//多个权限必须全部满足,全部满足则为 true
<el-button type="primary" v-show="authAll(['api/v1/useCar/taxTolls/add','api/v1/useCar/taxTolls/add2'])">添加</el-button>

从v3.3.3升级到此版本,覆盖前后端补丁文件即可或直接通过git同步更新,无数据库和依赖更新

作者:管理员  创建时间:2025-05-22 16:08
最后编辑:管理员  更新时间:2025-06-13 09:31