commit
This commit is contained in:
@@ -391,11 +391,11 @@ public class SysMenuController {
|
|||||||
@At
|
@At
|
||||||
@Ok("json")
|
@Ok("json")
|
||||||
@SaCheckPermission("sys.manager.menu.edit")
|
@SaCheckPermission("sys.manager.menu.edit")
|
||||||
public Object sortDo(@Param("ids") String ids, HttpServletRequest req) {
|
public Object sortDo(@Param("ids") String ids, @Param("platform") String platform, HttpServletRequest req) {
|
||||||
try {
|
try {
|
||||||
String[] menuIds = StringUtils.split(ids, ",");
|
String[] menuIds = StringUtils.split(ids, ",");
|
||||||
int i = 0;
|
int i = 0;
|
||||||
sysMenuService.execute(Sqls.create("update sys_menu set location=0"));
|
sysMenuService.execute(Sqls.create("update sys_menu set location=0 where platform = '%s'".formatted(platform)));
|
||||||
for (String s : menuIds) {
|
for (String s : menuIds) {
|
||||||
if (!Strings.isBlank(s)) {
|
if (!Strings.isBlank(s)) {
|
||||||
sysMenuService.update(org.nutz.dao.Chain.make("location", i), Cnd.where("id", "=", s));
|
sysMenuService.update(org.nutz.dao.Chain.make("location", i), Cnd.where("id", "=", s));
|
||||||
@@ -425,11 +425,11 @@ public class SysMenuController {
|
|||||||
@SaCheckPermission("sys.manager.menu")
|
@SaCheckPermission("sys.manager.menu")
|
||||||
@ApiOperation("更新首页推荐应用或服务")
|
@ApiOperation("更新首页推荐应用或服务")
|
||||||
public Result updateRecommendSetting(@Param("menuIds") String[] menuIds, String platform, String type) {
|
public Result updateRecommendSetting(@Param("menuIds") String[] menuIds, String platform, String type) {
|
||||||
String column = "";
|
String column = "";
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case "app" -> column = "isRecommendApp";
|
case "app" -> column = "isRecommendApp";
|
||||||
case "service" -> column = "isRecommendService";
|
case "service" -> column = "isRecommendService";
|
||||||
}
|
}
|
||||||
sysMenuService.update(Chain.make(column, 0), Cnd.where("id", "is not", null).and("platform", "=", platform));
|
sysMenuService.update(Chain.make(column, 0), Cnd.where("id", "is not", null).and("platform", "=", platform));
|
||||||
if (ArrayUtil.isNotEmpty(menuIds)) {
|
if (ArrayUtil.isNotEmpty(menuIds)) {
|
||||||
sysMenuService.update(Chain.make(column, 1), Cnd.where("id", "in", menuIds).and("platform", "=", platform));
|
sysMenuService.update(Chain.make(column, 1), Cnd.where("id", "in", menuIds).and("platform", "=", platform));
|
||||||
|
|||||||
@@ -2,25 +2,25 @@
|
|||||||
layout("/layouts/platform.html"){
|
layout("/layouts/platform.html"){
|
||||||
#-->
|
#-->
|
||||||
<style>
|
<style>
|
||||||
.context-menu {
|
.context-menu {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border: 1px solid #dcdfe6;
|
border: 1px solid #dcdfe6;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
|
box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
|
||||||
z-index: 3000;
|
z-index: 3000;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
padding: 5px 0;
|
padding: 5px 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
.context-menu li {
|
.context-menu li {
|
||||||
padding: 7px 20px;
|
padding: 7px 20px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.context-menu li:hover {
|
.context-menu li:hover {
|
||||||
background: #f2f6fc;
|
background: #f2f6fc;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<div id="app" v-cloak>
|
<div id="app" v-cloak>
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
@@ -52,17 +52,17 @@ layout("/layouts/platform.html"){
|
|||||||
</el-button>
|
</el-button>
|
||||||
</table-tool>
|
</table-tool>
|
||||||
<el-table
|
<el-table
|
||||||
:data="tableData"
|
:data="tableData"
|
||||||
:highlight-current-row="true"
|
:highlight-current-row="true"
|
||||||
:key="tableKey"
|
:key="tableKey"
|
||||||
:load="loadChild"
|
:load="loadChild"
|
||||||
@row-contextmenu="openMenu"
|
@row-contextmenu="openMenu"
|
||||||
:expand-row-keys="expandedRowKeysRenew"
|
:expand-row-keys="expandedRowKeysRenew"
|
||||||
@expand-change="handleExpandChange"
|
@expand-change="handleExpandChange"
|
||||||
ref="tableData"
|
ref="tableData"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
lazy
|
lazy
|
||||||
row-key="id"
|
row-key="id"
|
||||||
>
|
>
|
||||||
<el-table-column align="left" header-align="left" label="菜单名称" prop="name" width="200"></el-table-column>
|
<el-table-column align="left" header-align="left" label="菜单名称" prop="name" width="200"></el-table-column>
|
||||||
<el-table-column align="center" header-align="center" label="菜单图标" prop="icon" width="100">
|
<el-table-column align="center" header-align="center" label="菜单图标" prop="icon" width="100">
|
||||||
@@ -124,13 +124,13 @@ layout("/layouts/platform.html"){
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
<!-- 右键菜单 -->
|
<!-- 右键菜单 -->
|
||||||
<ul v-show="menuVisible" class="context-menu" :style="{left: menuLeft + 'px', top: menuTop + 'px'}">
|
<ul v-show="menuVisible" class="context-menu" :style="{left: menuLeft + 'px', top: menuTop + 'px'}">
|
||||||
<li @click="handleAddMenu(currentRow)">新建菜单</li>
|
<li @click="handleAddMenu(currentRow)">新建菜单</li>
|
||||||
<li v-if="showAddMenu" @click="handleAddChildMenu(currentRow)">添加子菜单</li>
|
<li v-if="showAddMenu" @click="handleAddChildMenu(currentRow)">添加子菜单</li>
|
||||||
<li @click="handleEdit(currentRow)">编辑</li>
|
<li @click="handleEdit(currentRow)">编辑</li>
|
||||||
<li @click="handleDelete(currentRow)">删除</li>
|
<li @click="handleDelete(currentRow)">删除</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
@@ -140,7 +140,7 @@ layout("/layouts/platform.html"){
|
|||||||
<sort ref="sortRef" @refresh="doSearch"></sort>
|
<sort ref="sortRef" @refresh="doSearch"></sort>
|
||||||
<recommend-setting ref="recommendSettingRef" @refresh="doSearch"></recommend-setting>
|
<recommend-setting ref="recommendSettingRef" @refresh="doSearch"></recommend-setting>
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script nonce="${cspNonce!}">
|
||||||
<!--#include("permissionForm.js"){}#-->
|
<!--#include("permissionForm.js"){}#-->
|
||||||
<!--#include("basicForm.js"){}#-->
|
<!--#include("basicForm.js"){}#-->
|
||||||
<!--#include("sort.js"){}#-->
|
<!--#include("sort.js"){}#-->
|
||||||
@@ -165,65 +165,65 @@ layout("/layouts/platform.html"){
|
|||||||
expandedRowKeysRenew: [],
|
expandedRowKeysRenew: [],
|
||||||
tableTreeRefreshTool: [],
|
tableTreeRefreshTool: [],
|
||||||
|
|
||||||
// 右键打开菜单相关
|
// 右键打开菜单相关
|
||||||
currentRow: null,
|
currentRow: null,
|
||||||
menuVisible: false,
|
menuVisible: false,
|
||||||
menuLeft: 0,
|
menuLeft: 0,
|
||||||
menuTop: 0,
|
menuTop: 0,
|
||||||
showAddMenu: false,
|
showAddMenu: false,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/* 右键行 */
|
/* 右键行 */
|
||||||
openMenu(row, column, event) {
|
openMenu(row, column, event) {
|
||||||
this.showAddMenu = row.type === 'menu';
|
this.showAddMenu = row.type === 'menu';
|
||||||
// 阻止浏览器默认菜单
|
// 阻止浏览器默认菜单
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
this.currentRow = row;
|
this.currentRow = row;
|
||||||
|
|
||||||
this.menuVisible = true;
|
this.menuVisible = true;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
const menu = this.$el.querySelector('.context-menu');
|
const menu = this.$el.querySelector('.context-menu');
|
||||||
const h = menu.offsetHeight || 100;
|
const h = menu.offsetHeight || 100;
|
||||||
const sh = document.documentElement.clientHeight;
|
const sh = document.documentElement.clientHeight;
|
||||||
let top = event.clientY;
|
let top = event.clientY;
|
||||||
if (top + h > sh) top -= h;
|
if (top + h > sh) top -= h;
|
||||||
this.menuLeft = event.clientX;
|
this.menuLeft = event.clientX;
|
||||||
this.menuTop = top;
|
this.menuTop = top;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 新建菜单
|
// 新建菜单
|
||||||
handleAddMenu(row) {
|
handleAddMenu(row) {
|
||||||
console.log(row)
|
console.log(row)
|
||||||
this.$refs.basicFormRef.onOpen(null, this.pageForm.platform)
|
this.$refs.basicFormRef.onOpen(null, this.pageForm.platform)
|
||||||
},
|
},
|
||||||
handleAddChildMenu(row) {
|
handleAddChildMenu(row) {
|
||||||
this.$refs.basicFormRef.addChildMenu(row, this.pageForm.platform)
|
this.$refs.basicFormRef.addChildMenu(row, this.pageForm.platform)
|
||||||
},
|
},
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
// 判断子菜单的type是权限还是菜单
|
// 判断子菜单的type是权限还是菜单
|
||||||
if (row.type === 'menu') {
|
if (row.type === 'menu') {
|
||||||
this.$refs.basicFormRef.onOpen(row.id, this.pageForm.platform)
|
this.$refs.basicFormRef.onOpen(row.id, this.pageForm.platform)
|
||||||
} else {
|
} else {
|
||||||
this.$refs.permissionFormRef.onOpen(row.id)
|
this.$refs.permissionFormRef.onOpen(row.id)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
handleDelete(row) {
|
handleDelete(row) {
|
||||||
// 删除逻辑
|
// 删除逻辑
|
||||||
console.log(row)
|
console.log(row)
|
||||||
this.$confirm("此操作将删除 " + row.name, "提示", {
|
this.$confirm("此操作将删除 " + row.name, "提示", {
|
||||||
confirmButtonText: "确定",
|
confirmButtonText: "确定",
|
||||||
cancelButtonText: "取消",
|
cancelButtonText: "取消",
|
||||||
type: "warning"
|
type: "warning"
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.$axios.post("/platform/sys/menu/delete/" + row.id).then((res) => {
|
this.$axios.post("/platform/sys/menu/delete/" + row.id).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$message.success(res.msg)
|
this.$message.success(res.msg)
|
||||||
this.loadChildByExpandedKeys()
|
this.loadChildByExpandedKeys()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
doSearch() {
|
doSearch() {
|
||||||
this.initTreeTable()
|
this.initTreeTable()
|
||||||
},
|
},
|
||||||
@@ -327,13 +327,13 @@ layout("/layouts/platform.html"){
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
// 点击任意处关闭菜单
|
// 点击任意处关闭菜单
|
||||||
document.addEventListener('click', () => (this.menuVisible = false));
|
document.addEventListener('click', () => (this.menuVisible = false));
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
document.removeEventListener('click', () => (this.menuVisible = false));
|
document.removeEventListener('click', () => (this.menuVisible = false));
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (this.dict.type.SYS_MENU_PLATFORM) {
|
if (this.dict.type.SYS_MENU_PLATFORM) {
|
||||||
|
|||||||
@@ -20,11 +20,13 @@ const SYS_MENU_SORT_COMPONENT = {
|
|||||||
defaultProps: {
|
defaultProps: {
|
||||||
children: "children",
|
children: "children",
|
||||||
label: "label"
|
label: "label"
|
||||||
}
|
},
|
||||||
|
platform: 'PC'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onOpen(platform) {
|
onOpen(platform) {
|
||||||
|
this.platform = platform
|
||||||
this.sortDialogVisible = true
|
this.sortDialogVisible = true
|
||||||
this.$axios.post("/platform/sys/menu/menuAll", { platform }).then((res) => {
|
this.$axios.post("/platform/sys/menu/menuAll", { platform }).then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
@@ -48,7 +50,7 @@ const SYS_MENU_SORT_COMPONENT = {
|
|||||||
})
|
})
|
||||||
this.getTreeIds(ids, this.sortMenuData)
|
this.getTreeIds(ids, this.sortMenuData)
|
||||||
this.$axios
|
this.$axios
|
||||||
.post("/platform/sys/menu/sortDo", { ids: ids.toString() })
|
.post("/platform/sys/menu/sortDo", { ids: ids.toString(), platform: this.platform })
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.$message.success(res.msg)
|
this.$message.success(res.msg)
|
||||||
|
|||||||
Reference in New Issue
Block a user