Commit 4c83ec3c authored by 张俊's avatar 张俊
parents 4422adb8 4deaf832
...@@ -663,7 +663,7 @@ a { ...@@ -663,7 +663,7 @@ a {
> .cell { > .cell {
padding: 0 10px !important; padding: 0 10px !important;
color: #404a62; color: #404a62;
line-height: 14px; line-height: 16px;
} }
} }
......
...@@ -126,7 +126,7 @@ export default { ...@@ -126,7 +126,7 @@ export default {
} else { } else {
this.getImg(true); this.getImg(true);
this.$message({ this.$message({
message: data.errMsg, message: data.data,
type: "error", type: "error",
}); });
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<div class="flex_row"> <div class="flex_row">
<div class="flex_left"> <div class="flex_left">
<div class="box"> <div class="box">
<el-input class="type-input" v-model="typeKeyword" @input="searchType" :prefix-icon="Search" placeholder="请输入搜索内容"></el-input> <el-input class="type-input" v-model.trim="typeKeyword" @input="searchType" :prefix-icon="Search" placeholder="请输入搜索内容"></el-input>
<div class="type_station bg-scroll"> <div class="type_station bg-scroll">
<div class="type-box" :class="{'current-type':nodeClassifyId==item.classify_id}" @click="nodeClick(item)" v-for="(item,index) in typeList" :key="'type'+index+200"> <div class="type-box" :class="{'current-type':nodeClassifyId==item.classify_id}" @click="nodeClick(item)" v-for="(item,index) in typeList" :key="'type'+index+200">
...@@ -189,7 +189,7 @@ const state = reactive({ ...@@ -189,7 +189,7 @@ const state = reactive({
width: 220, width: 220,
}, },
{ {
label: "状态", label: "是否启用",
prop: "state", prop: "state",
}, },
{ {
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
<div class="tree_content"> <div class="tree_content">
<div class="search"> <div class="search">
<el-input <el-input
v-model="search" v-model.trim="search"
placeholder="请输入内容" placeholder="请输入内容"
:prefix-icon="Search" :prefix-icon="Search"
/> />
...@@ -90,6 +90,26 @@ ...@@ -90,6 +90,26 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 删除弹窗 -->
<el-dialog
custom-class="dialog_box"
title="提示"
v-model="delDialog"
width="400px"
:before-close="
() => {
delDialog = false;
}
"
>
<div>确定要删除此菜单吗?</div>
<template v-slot:footer>
<div class="apaas_button">
<el-button type="default" @click="delDialog = false">取 消</el-button>
<el-button type="primary" @click="deleteData">确 定</el-button>
</div>
</template>
</el-dialog>
</div> </div>
</template> </template>
...@@ -127,6 +147,7 @@ const state = reactive({ ...@@ -127,6 +147,7 @@ const state = reactive({
addType: 1, // 1-新增本级 2-新增下级 addType: 1, // 1-新增本级 2-新增下级
newMenuId: 0, // 新增菜单时用来指定menu_id,达到选中效果 newMenuId: 0, // 新增菜单时用来指定menu_id,达到选中效果
timer: null, // 定时器 timer: null, // 定时器
delDialog: false,
}) })
const moveIndex = computed({ const moveIndex = computed({
...@@ -150,7 +171,7 @@ watch(() => state.search,(n,o) => { ...@@ -150,7 +171,7 @@ watch(() => state.search,(n,o) => {
}, 500); }, 500);
}) // 树形搜索值 }) // 树形搜索值
const getMenuTree = (type) => { const getMenuTree = (type,id) => {
axios axios
.get(`/apaas/system/v5/menu/tree`) .get(`/apaas/system/v5/menu/tree`)
.then((res) => { .then((res) => {
...@@ -165,7 +186,10 @@ const getMenuTree = (type) => { ...@@ -165,7 +186,10 @@ const getMenuTree = (type) => {
state.menuTree && state.menuTree.setCurrentKey(state.data[0].menu_id); state.menuTree && state.menuTree.setCurrentKey(state.data[0].menu_id);
handleNodeClick(state.data[0]); handleNodeClick(state.data[0]);
} }
}else { // 新建,上下移,初始化时默认选中节点 }else { // 上下移,初始化时默认选中节点 新建选中新增的节点
if (id) {
findData(state.data,id)
}
if (state.selectData) { if (state.selectData) {
state.menuTree && state.menuTree.setCurrentKey(state.selectData.menu_id); state.menuTree && state.menuTree.setCurrentKey(state.selectData.menu_id);
handleNodeClick(state.selectData); handleNodeClick(state.selectData);
...@@ -182,6 +206,18 @@ const getMenuTree = (type) => { ...@@ -182,6 +206,18 @@ const getMenuTree = (type) => {
}) })
} // 获取菜单树 } // 获取菜单树
const findData = (arr,id) => {
arr.forEach(e => {
if (e.menu_id == id) {
state.selectData = e
}else {
if (e.Child && e.Child.length > 0) {
findData(e.Child,id)
}
}
})
} // 处理数据 用于新增菜单后选中新增的菜单
const findIndex= (code,arr) => { const findIndex= (code,arr) => {
arr.forEach((e,i) => { arr.forEach((e,i) => {
if (e.menu_id == code) { if (e.menu_id == code) {
...@@ -298,18 +334,12 @@ const fileAction = (val,data,parent,disabled=false) => { ...@@ -298,18 +334,12 @@ const fileAction = (val,data,parent,disabled=false) => {
state.selectParentData = data state.selectParentData = data
state.newMenuId++ state.newMenuId++
}else if (val == 3) { // 删除菜单 }else if (val == 3) { // 删除菜单
axios if (data.state == 1) {
.delete(`/apaas/system/v5/menu/${data.id}`) ElMessage.error("删除内容中有启用状态的数据,不可删除!")
.then((res) => { return
if (res.data.code == 200) {
ElMessage.success(res.data.msg)
state.selectData = null
let type = parent ? 1 : 2 // 1--有父级 2--无父级
getMenuTree(type)
}else {
ElMessage.error(res.data.data)
} }
}) state.delDialog = true
}else if (val == 4) { // 菜单上移 }else if (val == 4) { // 菜单上移
if (disabled) { if (disabled) {
return return
...@@ -360,6 +390,22 @@ const fileAction = (val,data,parent,disabled=false) => { ...@@ -360,6 +390,22 @@ const fileAction = (val,data,parent,disabled=false) => {
} // 清除表单验证 } // 清除表单验证
} // 各种操作按钮 } // 各种操作按钮
const deleteData = () => {
axios
.delete(`/apaas/system/v5/menu/${state.selectData.id}`)
.then((res) => {
if (res.data.code == 200) {
ElMessage.success(res.data.msg)
state.selectData = null
let type = state.selectParentData ? 1 : 2 // 1--有父级 2--无父级
getMenuTree(type)
state.delDialog = false
}else {
ElMessage.error(res.data.data)
}
})
}
const changeSort = (data,nextObj) => { const changeSort = (data,nextObj) => {
let params = [ let params = [
{ {
...@@ -427,7 +473,7 @@ const saveMenu = (el,type) => { ...@@ -427,7 +473,7 @@ const saveMenu = (el,type) => {
if (res.data.code == 200) { if (res.data.code == 200) {
ElMessage.success(res.data.msg) ElMessage.success(res.data.msg)
state.selectData = null state.selectData = null
getMenuTree() getMenuTree(null,res.data.data)
}else { }else {
ElMessage.error(res.data.data) ElMessage.error(res.data.data)
} }
...@@ -457,6 +503,7 @@ const { ...@@ -457,6 +503,7 @@ const {
selectData, selectData,
menuFormData, menuFormData,
addType, addType,
delDialog,
} = toRefs(state) } = toRefs(state)
</script> </script>
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="菜单路径" :prop="topLevel ? '' : 'menu_url'"> <el-form-item label="菜单路径" :prop="topLevel ? '' : 'menu_url'">
<el-input v-model="menuForm.menu_url" placeholder="请输入菜单路径" /> <el-input v-model="menuForm.menu_url" show-word-limit maxlength="200" placeholder="请输入菜单路径" />
</el-form-item> </el-form-item>
<el-form-item label="菜单图标" prop="menu_logo"> <el-form-item label="菜单图标" prop="menu_logo">
<div class="iconBox" :style="iconFlag ? {'border-color':'#2b4695'} : {} " @click="openIconbox"> <div class="iconBox" :style="iconFlag ? {'border-color':'#2b4695'} : {} " @click="openIconbox">
...@@ -182,7 +182,6 @@ const searchIcon = () => { ...@@ -182,7 +182,6 @@ const searchIcon = () => {
} // 图标筛选 } // 图标筛选
const setForm = (data) => { const setForm = (data) => {
console.log(data)
if (data.level && data.level == 1) { if (data.level && data.level == 1) {
state.topLevel = true state.topLevel = true
}else { }else {
...@@ -194,7 +193,6 @@ const setForm = (data) => { ...@@ -194,7 +193,6 @@ const setForm = (data) => {
} }
} }
state.typeDisFlag = data.p_menu_type state.typeDisFlag = data.p_menu_type
console.log(state.groupFlag)
if (data.id) { // 编辑状态 if (data.id) { // 编辑状态
state.radioDisabled = true state.radioDisabled = true
}else { }else {
......
...@@ -74,7 +74,7 @@ import { useRouter } from 'vue-router'; ...@@ -74,7 +74,7 @@ import { useRouter } from 'vue-router';
const actionFlag = ref(false) const actionFlag = ref(false)
const selectData = ref(null) const selectData = ref(null)
const selectDataParent = ref(null) const selectDataParent = ref(null)
const mvDataParent = ref(null) const mvDataParent = ref([])
const treeRef = ref(null) const treeRef = ref(null)
const orgData = ref([]) const orgData = ref([])
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
class="role_form" class="role_form"
> >
<el-form-item prop="role_name" label="角色名称"> <el-form-item prop="role_name" label="角色名称">
<el-input v-model="formData.role_name" maxlength="50" show-word-limit /> <el-input v-model="formData.role_name" maxlength="50" show-word-limit :disabled="rowType != 0" />
</el-form-item> </el-form-item>
<el-form-item prop="role_desc" label="描述"> <el-form-item prop="role_desc" label="描述">
<el-input <el-input
...@@ -27,11 +27,12 @@ ...@@ -27,11 +27,12 @@
maxlength="300" maxlength="300"
show-word-limit show-word-limit
:autosize="{ minRows: 5 }" :autosize="{ minRows: 5 }"
:disabled="rowType != 0"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="数据权限" prop="data_purview"> <el-form-item label="数据权限" prop="data_purview">
<el-radio-group v-model="formData.data_purview"> <el-radio-group v-model="formData.data_purview" :disabled="rowType != 0" >
<el-radio :label="3">全平台所有</el-radio> <el-radio :label="3">全平台所有</el-radio>
<el-radio :label="2">本组织所有</el-radio> <el-radio :label="2">本组织所有</el-radio>
<el-radio :label="1">仅自己</el-radio> <el-radio :label="1">仅自己</el-radio>
...@@ -54,6 +55,7 @@ ...@@ -54,6 +55,7 @@
inline-prompt inline-prompt
active-text="是" active-text="是"
inactive-text="否" inactive-text="否"
:disabled="rowType != 0"
/> />
</el-form-item> </el-form-item>
...@@ -117,6 +119,7 @@ const roleState = reactive({ ...@@ -117,6 +119,7 @@ const roleState = reactive({
children: 'Child', children: 'Child',
}, // 菜单框默认配置 }, // 菜单框默认配置
permissionData: [], // 菜单数据 permissionData: [], // 菜单数据
rowType: 0,
}) })
const getMenuTree = () => { const getMenuTree = () => {
axios axios
...@@ -140,6 +143,7 @@ const getRoleDetail = () => { ...@@ -140,6 +143,7 @@ const getRoleDetail = () => {
.then((res) => { .then((res) => {
if (res.data.code == 200) { if (res.data.code == 200) {
let { role_name, role_desc, data_purview, state, menus } = res.data.data let { role_name, role_desc, data_purview, state, menus } = res.data.data
roleState.rowType = res.data.data.role_type
let permission_arr = [] let permission_arr = []
if (menus && menus.length > 0) { if (menus && menus.length > 0) {
menus.forEach(e => { menus.forEach(e => {
...@@ -214,6 +218,7 @@ const { ...@@ -214,6 +218,7 @@ const {
rules, rules,
defaultProps, defaultProps,
permissionData, permissionData,
rowType,
} = toRefs(roleState) } = toRefs(roleState)
</script> </script>
......
...@@ -49,14 +49,14 @@ ...@@ -49,14 +49,14 @@
:labels="['否','是']" :labels="['否','是']"
:values="[0,1]" :values="[0,1]"
v-model="row.state" v-model="row.state"
:disabled="row.role_type == 1" :disabled="row.role_type == 1 || row.role_type == 2"
/> />
</template> </template>
<template v-slot:created_time="{ row }"> <template v-slot:created_time="{ row }">
{{ row.created_time.split("+")[0].replace("T", " ").replace("Z", " ") }} {{ row.created_time.split("+")[0].replace("T", " ").replace("Z", " ") }}
</template> </template>
<template v-slot:action="{ row }"> <template v-slot:action="{ row }">
<bg-table-btn class="can_click_text" :click="()=>{edit_row(row)}" :disabled="row.state == 1 || row.role_type == 1"> <bg-table-btn class="can_click_text" :click="()=>{edit_row(row)}">
编辑 编辑
</bg-table-btn> </bg-table-btn>
<bg-table-btn class="can_click_text" :click="()=>{distribute_user(row)}" :disabled="row.cant_allot == 1"> <bg-table-btn class="can_click_text" :click="()=>{distribute_user(row)}" :disabled="row.cant_allot == 1">
...@@ -621,6 +621,17 @@ const { ...@@ -621,6 +621,17 @@ const {
height: calc(100% - 68px); height: calc(100% - 68px);
.user_table { .user_table {
max-height: calc(100% - 48px); max-height: calc(100% - 48px);
:deep().bg-table {
.el-scrollbar {
--el-scrollbar-bg-color: #fff
}
.el-table__empty-block {
.empty_container {
height: calc(100% - 45px);
}
}
}
} }
} }
} }
......
...@@ -40,12 +40,6 @@ var adminMenu = [ ...@@ -40,12 +40,6 @@ var adminMenu = [
dict_group_id: "64c156e0-bfff-4bfc-a63a-56effe130a25", dict_group_id: "64c156e0-bfff-4bfc-a63a-56effe130a25",
menuType: 2, menuType: 2,
}, },
{
menuName: "ui服务测试",
path: "/ui-example",
dict_group_id: "64c156e0-bfff-4bfc-a63a-56effe130a25",
menuType: 2,
},
{ {
menuName: "注册认证", menuName: "注册认证",
path: "/register-valid", path: "/register-valid",
...@@ -99,6 +93,14 @@ var adminMenu = [ ...@@ -99,6 +93,14 @@ var adminMenu = [
path: "/ability-manage/sold-list/service-test", path: "/ability-manage/sold-list/service-test",
dict_group_id: "64c156e0-bfff-4bfc-a63a-56effe130a25", dict_group_id: "64c156e0-bfff-4bfc-a63a-56effe130a25",
menuType: 2, menuType: 2,
children: [
{
menuName: "ui服务测试",
path: "/ui-example",
dict_group_id: "64c156e0-bfff-4bfc-a63a-56effe130a25",
menuType: 2,
},
]
}, },
], ],
dict_group_id: "64c156e0-bfff-4bfc-a63a-56effe130a25", dict_group_id: "64c156e0-bfff-4bfc-a63a-56effe130a25",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment