大屏页面初始化
This commit is contained in:
@@ -11,6 +11,13 @@ export function getHomeMenuList(params) {
|
||||
})
|
||||
}
|
||||
|
||||
export function getHomeMenuPlist(params) {
|
||||
return request({
|
||||
url: '/biz/homeMenu/pList',
|
||||
method: 'get',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指标信息列表
|
||||
@@ -33,3 +40,24 @@ export function getTreeMenuList(params) {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存菜单信息列表
|
||||
*/
|
||||
export function getHomeMenuSave(data) {
|
||||
return request({
|
||||
url: '/biz/homeMenu/save',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除菜单信息
|
||||
*/
|
||||
export function getHomeMenuDelete(params) {
|
||||
return request({
|
||||
url: '/biz/homeMenu/delete',
|
||||
method: 'post',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
@@ -34,3 +34,13 @@ export function getHomeRoleAssign(data) {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 删除角色信息
|
||||
*/
|
||||
export function getHomeRoleDelete(params) {
|
||||
return request({
|
||||
url: '/biz/homeRole/delete',
|
||||
method: 'post',
|
||||
params: params
|
||||
})
|
||||
}
|
||||
@@ -15,6 +15,12 @@
|
||||
clearable
|
||||
>
|
||||
<el-option label="根目录" value="0" />
|
||||
<el-option
|
||||
v-for="item in pData"
|
||||
:key="item.menuId"
|
||||
:label="item.menuName"
|
||||
:value="item.menuId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -61,7 +67,6 @@
|
||||
v-model="formData.sort"
|
||||
placeholder="请输入菜单序号"
|
||||
clearable
|
||||
type="number"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
@@ -122,9 +127,9 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, computed } from 'vue'
|
||||
import { ref, computed , onMounted } from 'vue'
|
||||
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
|
||||
|
||||
import { getHomeMenuList, getHomeMenuSave, getHomeMenuDelete, getHomeMenuPlist } from '@/api/bizMenu'
|
||||
const props = defineProps({
|
||||
formData: {
|
||||
type: Object,
|
||||
@@ -134,7 +139,7 @@ const props = defineProps({
|
||||
menuName: '',
|
||||
menuType: '',
|
||||
path: '',
|
||||
sort: 0,
|
||||
sort: '0',
|
||||
isIframe: '',
|
||||
menuIcon: '',
|
||||
ustatus: '1',
|
||||
@@ -148,6 +153,8 @@ const props = defineProps({
|
||||
|
||||
const formRef = ref(null)
|
||||
|
||||
const pData = ref()
|
||||
|
||||
const iconList = computed(() => {
|
||||
return Object.keys(ElementPlusIconsVue).filter(name =>
|
||||
!name.includes('Internal') && !name.includes('Icon')
|
||||
@@ -187,6 +194,20 @@ const resetForm = () => {
|
||||
}
|
||||
|
||||
defineExpose({ validate, resetForm })
|
||||
|
||||
const getPlistData = async () =>{
|
||||
try {
|
||||
const res = await getHomeMenuPlist();
|
||||
pData.value = res || [];
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
getPlistData();
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
row-key="menuId"
|
||||
>
|
||||
<template #columns>
|
||||
<el-table-column prop="menuName" label="菜单名称" width="225" :tree-node="true" />
|
||||
<el-table-column prop="menuName" label="菜单名称" width="200" :tree-node="true" fixed="left" />
|
||||
<el-table-column label="菜单类型" width="100">
|
||||
<template #default="scope">
|
||||
<el-tag :type="scope.row.menuType === 'M' ? 'info' : scope.row.menuType === 'C' ? 'primary' : 'warning'">
|
||||
@@ -58,8 +58,8 @@
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="path" label="路由地址" width="225" />
|
||||
<el-table-column prop="sort" label="序号" sortable />
|
||||
<el-table-column prop="path" label="路由地址" show-overflow-tooltip="true" />
|
||||
<el-table-column prop="sort" label="序号" sortable width="80" />
|
||||
<el-table-column label="是否外链" width="100">
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.isIframe === '1' ? '是' : '否' }}</span>
|
||||
@@ -101,6 +101,7 @@
|
||||
|
||||
<PDialog
|
||||
v-model="dialogVisible"
|
||||
:loading="saveLoading"
|
||||
:title="isEdit ? '编辑数据' : '新增数据'"
|
||||
@close="handleDialogClose"
|
||||
@reset="handleDialogReset"
|
||||
@@ -118,7 +119,7 @@ import CSearch from '@/components/Search/proSearch.vue'
|
||||
import PDialog from '@/components/Dialog/proDialog.vue'
|
||||
import TreeTable from '@/components/Table/proTreeTable.vue'
|
||||
import { ElMessageBox, ElMessage } from 'element-plus'
|
||||
import { getHomeMenuList } from '@/api/bizMenu'
|
||||
import { getHomeMenuList, getHomeMenuSave, getHomeMenuDelete } from '@/api/bizMenu'
|
||||
import VForm from './form.vue'
|
||||
|
||||
const props = defineProps({
|
||||
@@ -134,9 +135,11 @@ const searchForm = reactive({
|
||||
ustatus: '',
|
||||
})
|
||||
|
||||
const saveLoading = ref(false)
|
||||
const dialogVisible = ref(false)
|
||||
const isEdit = ref(false)
|
||||
const formData = ref({})
|
||||
const currentRow = ref({})
|
||||
const formComponentRef = ref(null)
|
||||
|
||||
const tableData = ref()
|
||||
@@ -175,35 +178,40 @@ const getTreeListData = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
const handleAdd = () => {
|
||||
isEdit.value = false
|
||||
formData.value = {}
|
||||
currentRow.value = {}
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
const handleEdit = (row) => {
|
||||
isEdit.value = true
|
||||
formData.value = { ...row }
|
||||
currentRow.value = { ...row }
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
const handleDelete = async (row) => {
|
||||
try {
|
||||
await ElMessageBox.confirm(
|
||||
"确定要删除此菜单吗?",
|
||||
'删除确认',
|
||||
{
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
ElMessageBox.confirm('确定要删除此菜单吗?', '删除确认', {
|
||||
type: 'warning',
|
||||
closeOnClickModal: false,
|
||||
showClose: false
|
||||
})
|
||||
.then(async () => {
|
||||
const reqParams = {
|
||||
menuId: row.menuId
|
||||
}
|
||||
);
|
||||
ElMessage.success('删除成功!');
|
||||
getTreeListData();
|
||||
} catch (error) {
|
||||
console.error('删除失败', error);
|
||||
}
|
||||
const res = await getHomeMenuDelete(reqParams);
|
||||
ElMessage.success(res.msg);
|
||||
getTreeListData();
|
||||
})
|
||||
.catch(() => {
|
||||
ElMessage.info('已取消删除菜单操作');
|
||||
});
|
||||
}
|
||||
|
||||
const handleAdd = () => {
|
||||
isEdit.value = false
|
||||
formData.value = {}
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
|
||||
const handleExport = () => {
|
||||
console.log('导出菜单数据');
|
||||
@@ -212,6 +220,7 @@ const handleExport = () => {
|
||||
const handleDialogClose = () => {
|
||||
formData.value = {}
|
||||
isEdit.value = false
|
||||
currentRow.value = {}
|
||||
dialogVisible.value = false
|
||||
}
|
||||
|
||||
@@ -230,12 +239,22 @@ const handleSave = async () => {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
ElMessage.success(isEdit.value ? '编辑成功' : '新增成功')
|
||||
dialogVisible.value = false
|
||||
getTreeListData()
|
||||
}, 500)
|
||||
|
||||
try {
|
||||
saveLoading.value = true
|
||||
const reqParams = {
|
||||
...formData.value,
|
||||
isEdit: isEdit.value,
|
||||
menuId: currentRow.value?.menuId
|
||||
}
|
||||
const res = await getHomeMenuSave(reqParams);
|
||||
saveLoading.value = false
|
||||
dialogVisible.value = false;
|
||||
ElMessage.success(res.msg);
|
||||
getTreeListData();
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
}
|
||||
|
||||
watch(
|
||||
|
||||
@@ -39,11 +39,11 @@
|
||||
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { ElMessage, ElMessageBox, ElNotification } from 'element-plus'
|
||||
import ResizablePage from '@/components/Table/proResizable.vue'
|
||||
import FilterSelect from '@/components/Table/proFilterSelect.vue'
|
||||
import PDialog from '@/components/Dialog/proDialog.vue'
|
||||
import { getHomeRoleList, getHomeRoleAssign } from '@/api/bizRole'
|
||||
import { getHomeRoleList, getHomeRoleAssign, getHomeRoleDelete } from '@/api/bizRole'
|
||||
import vUser from './list.vue'
|
||||
import vRole from './role.vue'
|
||||
|
||||
@@ -76,7 +76,22 @@ const handleEdit = (item) => {
|
||||
}
|
||||
|
||||
const handleDelete = (item) => {
|
||||
console.log('删除', item)
|
||||
ElMessageBox.confirm('确定要删除当前角色吗?', '删除确认', {
|
||||
type: 'warning',
|
||||
closeOnClickModal: false,
|
||||
showClose: false
|
||||
})
|
||||
.then(async () => {
|
||||
const reqParams = {
|
||||
roleId: item.roleId
|
||||
}
|
||||
const res = await getHomeRoleDelete(reqParams);
|
||||
ElMessage.success(res.msg);
|
||||
getListData();
|
||||
})
|
||||
.catch(() => {
|
||||
ElMessage.info('已取消删除角色操作');
|
||||
});
|
||||
}
|
||||
|
||||
const handleView = (item) => {
|
||||
|
||||
@@ -52,11 +52,11 @@
|
||||
@current-change="handleCurrentChange"
|
||||
>
|
||||
<template #columns>
|
||||
<el-table-column prop="createTime" label="记录日期" width="180" />
|
||||
<el-table-column prop="createTime" label="记录日期" width="180" fixed="left" />
|
||||
<el-table-column prop="userName" label="登录账户" />
|
||||
<el-table-column prop="uname" label="用户名称" />
|
||||
<el-table-column prop="sex" label="性别" />
|
||||
<el-table-column prop="email" label="电子邮箱" />
|
||||
<el-table-column prop="email" label="电子邮箱" width="225" show-overflow-tooltip="true" />
|
||||
<el-table-column prop="phone" label="联系电话" />
|
||||
<el-table-column prop="ustatus" label="状态" min-width="100" align="center">
|
||||
<template #default="scope">
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
<el-table-column prop="userName" label="登录账户" />
|
||||
<el-table-column prop="uname" label="用户名称" />
|
||||
<el-table-column prop="sex" label="性别" sortable />
|
||||
<el-table-column prop="email" label="电子邮箱" />
|
||||
<el-table-column prop="email" label="电子邮箱" width="225" show-overflow-tooltip="true" />
|
||||
<el-table-column prop="phone" label="联系电话" />
|
||||
<el-table-column prop="ustatus" label="状态" min-width="100" align="center" sortable>
|
||||
<template #default="scope">
|
||||
@@ -90,6 +90,7 @@
|
||||
|
||||
<PDialog
|
||||
v-model="dialogVisible"
|
||||
:loading="saveLoading"
|
||||
:title="isEdit ? '编辑数据' : '新增数据'"
|
||||
@close="handleDialogClose"
|
||||
@reset="handleDialogReset"
|
||||
@@ -113,7 +114,7 @@ import PDialog from '@/components/Dialog/proDialog.vue'
|
||||
import VForm from './form.vue'
|
||||
|
||||
const formComponentRef = ref(null)
|
||||
|
||||
const saveLoading = ref(false)
|
||||
const loading = ref(false)
|
||||
const searchForm = reactive({
|
||||
uname: '',
|
||||
@@ -269,7 +270,7 @@ const handleSave = async () => {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
saveLoading.value = true
|
||||
try {
|
||||
const reqParams = {
|
||||
...formData.value,
|
||||
@@ -277,9 +278,10 @@ const handleSave = async () => {
|
||||
userId: currentRow.value?.userId
|
||||
}
|
||||
const res = await getHomeUserSave(reqParams);
|
||||
saveLoading.value = false;
|
||||
dialogVisible.value = false;
|
||||
ElMessage.success(res.msg);
|
||||
getDataList();
|
||||
ElMessage.success(res.msg)
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.mini.mybigscreen.biz.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.mini.mybigscreen.Model.Menu;
|
||||
import com.mini.mybigscreen.Model.Message;
|
||||
import com.mini.mybigscreen.Model.Result;
|
||||
@@ -10,9 +10,7 @@ import com.mini.mybigscreen.Model.TreeMenu;
|
||||
import com.mini.mybigscreen.biz.domain.HomeMenu;
|
||||
import com.mini.mybigscreen.biz.service.HomeMenuService;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -90,6 +88,22 @@ public class HomeMenuController {
|
||||
return Result.success(menuList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 父级菜单获取
|
||||
*/
|
||||
@GetMapping("pList")
|
||||
public Result<?> getPlist() {
|
||||
LambdaQueryWrapper<HomeMenu> parentQuery = new LambdaQueryWrapper<HomeMenu>()
|
||||
.eq(HomeMenu::getUstatus, "1")
|
||||
.eq(HomeMenu::getParentId, "0")
|
||||
.orderByAsc(HomeMenu::getSort);
|
||||
List<HomeMenu> pMenus = menuService.list(parentQuery);
|
||||
return Result.success(pMenus);
|
||||
}
|
||||
|
||||
/**
|
||||
* 树形菜单
|
||||
*/
|
||||
@GetMapping("treeList")
|
||||
public Result<?> getTreeList() {
|
||||
List<TreeMenu> menuList = new ArrayList<>();
|
||||
@@ -117,6 +131,9 @@ public class HomeMenuController {
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 用户角色菜单
|
||||
*/
|
||||
@GetMapping("userList")
|
||||
public Result<?> getUserList() {
|
||||
List<Menu> menuList = new ArrayList<>();
|
||||
@@ -145,13 +162,25 @@ public class HomeMenuController {
|
||||
return Result.success(menuList);
|
||||
}
|
||||
|
||||
|
||||
public Result<Message> save() {
|
||||
return Result.success(new Message("数据新增成功", 200));
|
||||
/**
|
||||
* 新增/修改
|
||||
*/
|
||||
@PostMapping("save")
|
||||
public Result<Message> save(@RequestBody HomeMenu homeMenu) {
|
||||
boolean success = homeMenu.getIsEdit()
|
||||
? menuService.update(homeMenu,
|
||||
new LambdaUpdateWrapper<HomeMenu>().eq(HomeMenu::getMenuId, homeMenu.getMenuId())
|
||||
) : menuService.save(homeMenu);
|
||||
return Result.success(new Message(homeMenu.getIsEdit() ? "数据修改成功" : "数据新增成功", 200));
|
||||
}
|
||||
|
||||
|
||||
public Result<Message> delete() {
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@PostMapping("delete")
|
||||
public Result<Message> delete(String menuId) {
|
||||
menuService.removeById(menuId);
|
||||
return Result.success(new Message("数据删除成功", 200));
|
||||
}
|
||||
|
||||
|
||||
@@ -83,7 +83,11 @@ public class HomeRoleController {
|
||||
}
|
||||
|
||||
|
||||
public Result<Message> delete() {
|
||||
@PostMapping("delete")
|
||||
public Result<Message> delete(String roleId) {
|
||||
roleService.removeById(roleId);
|
||||
roleMenuService.remove(new LambdaQueryWrapper<HomeRoleMenu>()
|
||||
.eq(HomeRoleMenu::getRoleId, roleId));
|
||||
return Result.success(new Message("数据删除成功", 200));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user