Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue
Conflicts:
ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java
ruoyi-ui/src/components/Editor/index.vue
ruoyi-ui/src/permission.js
ruoyi-ui/src/store/modules/user.js
ruoyi-ui/src/views/monitor/logininfor/index.vue
ruoyi-ui/src/views/monitor/operlog/index.vue
| | |
| | | import java.text.NumberFormat; |
| | | import java.util.Set; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import org.apache.commons.lang3.ArrayUtils; |
| | | |
| | | /** |
| | | * 类型转换器 |
| | |
| | | { |
| | | return (String) obj; |
| | | } |
| | | else if (obj instanceof byte[] || obj instanceof Byte[]) |
| | | else if (obj instanceof byte[]) |
| | | { |
| | | return str((Byte[]) obj, charset); |
| | | return str((byte[]) obj, charset); |
| | | } |
| | | else if (obj instanceof Byte[]) |
| | | { |
| | | byte[] bytes = ArrayUtils.toPrimitive((Byte[]) obj); |
| | | return str(bytes, charset); |
| | | } |
| | | else if (obj instanceof ByteBuffer) |
| | | { |
| | |
| | | type: Number, |
| | | default: null, |
| | | }, |
| | | /* 只读 */ |
| | | readOnly: { |
| | | type: Boolean, |
| | | default: false, |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | ], |
| | | }, |
| | | placeholder: "请输入内容", |
| | | readOnly: false, |
| | | readOnly: this.readOnly, |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | } else { |
| | | if (store.getters.roles.length === 0) { |
| | | // 判断当前用户是否已拉取完user_info信息 |
| | | store.dispatch('GetInfo').then(res => { |
| | | // 拉取user_info |
| | | const roles = res.roles |
| | | store.dispatch('GenerateRoutes', { roles }).then(accessRoutes => { |
| | | store.dispatch('GetInfo').then(() => { |
| | | store.dispatch('GenerateRoutes').then(accessRoutes => { |
| | | // 根据roles权限生成可访问的路由表 |
| | | router.addRoutes(accessRoutes) // 动态添加可访问路由表 |
| | | next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 |
| | |
| | | // 获取用户信息 |
| | | GetInfo({ commit, state }) { |
| | | return new Promise((resolve, reject) => { |
| | | getInfo(state.token).then(res => { |
| | | getInfo().then(res => { |
| | | const user = res.user |
| | | const avatar = user.avatar == "" ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar; |
| | | if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组 |
| | |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExport" |
| | | v-hasPermi="['system:logininfor:export']" |
| | | v-hasPermi="['monitor:logininfor:export']" |
| | | >导出</el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | |
| | | icon="el-icon-download" |
| | | size="mini" |
| | | @click="handleExport" |
| | | v-hasPermi="['system:config:export']" |
| | | v-hasPermi="['monitor:operlog:export']" |
| | | >导出</el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |