Merge remote-tracking branch 'origin/fix-bug-202303' into fix-bug-202303

This commit is contained in:
zhaoxiao
2023-03-03 16:34:49 +08:00
2 changed files with 53 additions and 63 deletions
@@ -21,8 +21,7 @@ public class NgAlainServiceImpl implements NgAlainService {
private ISysPermissionService sysPermissionService;
@Autowired
private SysDictMapper mapper;
private static String CHILDREN = "children";
private static String CHILDREN ="children";
@Override
public JSONArray getMenu(String id) throws Exception {
return getJeroMenu(id);
@@ -78,7 +77,6 @@ public class NgAlainServiceImpl implements NgAlainService {
* @param parentJson
*/
private void getPermissionJsonArray(JSONArray jsonArray,List<SysPermission> metaList,JSONObject parentJson) {
String PERMISSIONLIST = "permissionList";
for (SysPermission permission : metaList) {
if(permission.getMenuType()==null) {
continue;
@@ -91,38 +89,35 @@ public class NgAlainServiceImpl implements NgAlainService {
getPermissionJsonArray(jsonArray, metaList, json);
}
}else if(parentJson!=null && oConvertUtils.isNotEmpty(tempPid) && tempPid.equals(parentJson.getString("id"))){
permissionType(jsonArray, metaList, parentJson, PERMISSIONLIST, permission, json);
String PERMISSIONLIST = "permissionList";
if(permission.getMenuType()==0) {
JSONObject metaJson = parentJson.getJSONObject("meta");
if(metaJson.containsKey(PERMISSIONLIST)) {
metaJson.getJSONArray(PERMISSIONLIST).add(json);
}else {
JSONArray permissionList = new JSONArray();
permissionList.add(json);
metaJson.put(PERMISSIONLIST, permissionList);
}
}else if(permission.getMenuType()==1) {
if(parentJson.containsKey(CHILDREN)) {
parentJson.getJSONArray(CHILDREN).add(json);
}else {
JSONArray children = new JSONArray();
children.add(json);
parentJson.put(CHILDREN, children);
}
if(!permission.isLeaf()) {
getPermissionJsonArray(jsonArray, metaList, json);
}
}
}
}
}
private void permissionType(JSONArray jsonArray, List<SysPermission> metaList, JSONObject parentJson, String PERMISSIONLIST, SysPermission permission, JSONObject json) {
if(permission.getMenuType()==0) {
JSONObject metaJson = parentJson.getJSONObject("meta");
if(metaJson.containsKey(PERMISSIONLIST)) {
metaJson.getJSONArray(PERMISSIONLIST).add(json);
}else {
JSONArray permissionList = new JSONArray();
permissionList.add(json);
metaJson.put(PERMISSIONLIST, permissionList);
}
}else if(permission.getMenuType()==1) {
if(parentJson.containsKey(CHILDREN)) {
parentJson.getJSONArray(CHILDREN).add(json);
}else {
JSONArray children = new JSONArray();
children.add(json);
parentJson.put(CHILDREN, children);
}
if(!permission.isLeaf()) {
getPermissionJsonArray(jsonArray, metaList, json);
}
}
}
private JSONObject getPermissionJsonObject(SysPermission permission) {
JSONObject json = new JSONObject();
//类型(0:一级菜单 1:子菜单 2:按钮)
@@ -142,36 +137,31 @@ public class NgAlainServiceImpl implements NgAlainService {
json.put("name", urlToRouteName(permission.getUrl()));
//是否隐藏路由,默认都是显示的
setRouter(permission, json);
if(permission.isHidden()) {
json.put("hidden",true);
}
//聚合路由
if(permission.isAlwaysShow()) {
json.put("alwaysShow",true);
}
json.put("component", permission.getComponent());
JSONObject meta = new JSONObject();
meta.put("title", permission.getName());
if(oConvertUtils.isEmpty(permission.getParentId())) {
//一级菜单跳转地址
json.put("redirect",permission.getRedirect());
meta.put("icon", oConvertUtils.getString(permission.getIcon(), ""));
}else {
meta.put("icon", oConvertUtils.getString(permission.getIcon(), ""));
}
if(permission.getUrl()!=null&&(permission.getUrl().startsWith("http://")||permission.getUrl().startsWith("https://"))) {
meta.put("url", permission.getUrl());
}
json.put("meta", meta);
}
return json;
}
private void setRouter(SysPermission permission, JSONObject json) {
if(permission.isHidden()) {
json.put("hidden",true);
}
//聚合路由
if(permission.isAlwaysShow()) {
json.put("alwaysShow",true);
}
json.put("component", permission.getComponent());
JSONObject meta = new JSONObject();
meta.put("title", permission.getName());
if(oConvertUtils.isEmpty(permission.getParentId())) {
//一级菜单跳转地址
json.put("redirect", permission.getRedirect());
meta.put("icon", oConvertUtils.getString(permission.getIcon(), ""));
}else {
meta.put("icon", oConvertUtils.getString(permission.getIcon(), ""));
}
if(permission.getUrl()!=null&&(permission.getUrl().startsWith("http://")|| permission.getUrl().startsWith("https://"))) {
meta.put("url", permission.getUrl());
}
json.put("meta", meta);
}
/**
* 通过URL生成路由name(去掉URL前缀斜杠,替换内容中的斜杠‘/’为-)
* 举例: URL = /isystem/role
@@ -163,8 +163,8 @@
</template>
<script>
import DetailList from '@/components/tools/DetailList'
import SettingItem from '@/components/setting/SettingItem'
// import DetailList from '@/components/tools/DetailList'
// import SettingItem from '@/components/setting/SettingItem'
import config from '@/defaultSettings'
import { updateTheme, updateColorWeak, colorList } from '@/components/tools/setting'
import { mixin, mixinDevice } from '@/utils/mixin.js'
@@ -172,8 +172,8 @@ import { triggerWindowResizeEvent } from '@/utils/util'
export default {
components: {
DetailList,
SettingItem
// DetailList,
// SettingItem
},
mixins: [mixin, mixinDevice],
data () {
@@ -286,8 +286,8 @@ export default {
float: left;
cursor: pointer;
margin-right: 8px;
padding-left: 0px;
padding-right: 0px;
padding-left: 0;
padding-right: 0;
text-align: center;
color: #fff;
font-weight: 700;