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; private ISysPermissionService sysPermissionService;
@Autowired @Autowired
private SysDictMapper mapper; private SysDictMapper mapper;
private static String CHILDREN ="children";
private static String CHILDREN = "children";
@Override @Override
public JSONArray getMenu(String id) throws Exception { public JSONArray getMenu(String id) throws Exception {
return getJeroMenu(id); return getJeroMenu(id);
@@ -78,7 +77,6 @@ public class NgAlainServiceImpl implements NgAlainService {
* @param parentJson * @param parentJson
*/ */
private void getPermissionJsonArray(JSONArray jsonArray,List<SysPermission> metaList,JSONObject parentJson) { private void getPermissionJsonArray(JSONArray jsonArray,List<SysPermission> metaList,JSONObject parentJson) {
String PERMISSIONLIST = "permissionList";
for (SysPermission permission : metaList) { for (SysPermission permission : metaList) {
if(permission.getMenuType()==null) { if(permission.getMenuType()==null) {
continue; continue;
@@ -91,38 +89,35 @@ public class NgAlainServiceImpl implements NgAlainService {
getPermissionJsonArray(jsonArray, metaList, json); getPermissionJsonArray(jsonArray, metaList, json);
} }
}else if(parentJson!=null && oConvertUtils.isNotEmpty(tempPid) && tempPid.equals(parentJson.getString("id"))){ }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) { private JSONObject getPermissionJsonObject(SysPermission permission) {
JSONObject json = new JSONObject(); JSONObject json = new JSONObject();
//类型(0:一级菜单 1:子菜单 2:按钮) //类型(0:一级菜单 1:子菜单 2:按钮)
@@ -142,36 +137,31 @@ public class NgAlainServiceImpl implements NgAlainService {
json.put("name", urlToRouteName(permission.getUrl())); 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; 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生成路由name(去掉URL前缀斜杠,替换内容中的斜杠‘/’为-)
* 举例: URL = /isystem/role * 举例: URL = /isystem/role
@@ -163,8 +163,8 @@
</template> </template>
<script> <script>
import DetailList from '@/components/tools/DetailList' // import DetailList from '@/components/tools/DetailList'
import SettingItem from '@/components/setting/SettingItem' // import SettingItem from '@/components/setting/SettingItem'
import config from '@/defaultSettings' import config from '@/defaultSettings'
import { updateTheme, updateColorWeak, colorList } from '@/components/tools/setting' import { updateTheme, updateColorWeak, colorList } from '@/components/tools/setting'
import { mixin, mixinDevice } from '@/utils/mixin.js' import { mixin, mixinDevice } from '@/utils/mixin.js'
@@ -172,8 +172,8 @@ import { triggerWindowResizeEvent } from '@/utils/util'
export default { export default {
components: { components: {
DetailList, // DetailList,
SettingItem // SettingItem
}, },
mixins: [mixin, mixinDevice], mixins: [mixin, mixinDevice],
data () { data () {
@@ -286,8 +286,8 @@ export default {
float: left; float: left;
cursor: pointer; cursor: pointer;
margin-right: 8px; margin-right: 8px;
padding-left: 0px; padding-left: 0;
padding-right: 0px; padding-right: 0;
text-align: center; text-align: center;
color: #fff; color: #fff;
font-weight: 700; font-weight: 700;