- <div class="container-wrap layout-padding">
- <el-card shadow="hover" class="top-card">
- <div class="system-user-search">
- <el-form :inline="true" :model="state.filters" ref="searchConditions">
- <el-form-item label="机构名称" class="row-padding-bottom">
- <el-input v-model="state.filters.org_name" size="default" placeholder="请输入机构名称" clearable style="width: 220px"> el-input>
- el-form-item>
- <el-form-item label="" class="row-padding-bottom">
- <el-button size="default" type="primary" class="ml10" @click="getTableData"> 查询 el-button>
- <el-button size="default" class="ml10" @click="resetTableData"> 重置 el-button>
- el-form-item>
- el-form>
- div>
- el-card>
- <el-card shadow="hover">
- <div class="header">
- <div class="title">权限组管理div>
- <div>
- <el-button v-hasBtn="'Button:roleManage:add'" size="default" type="primary" @click="openDialog('add')"> 新增 el-button>
- div>
- div>
- <el-table
- :data="state.tableData.data"
- v-loading="state.tableData.loading"
- style="width: 100%"
- :row-style="{ height: '44px' }"
- :header-cell-style="{ background: '#FAFAFA', height: '44px', color: '#333333' }"
- >
- <el-table-column prop="name" label="权限组名称">el-table-column>
- <el-table-column prop="org_name" label="机构名称">el-table-column>
- <el-table-column label="操作" fixed="right">
- <template #default="scope">
- <el-link type="primary" @click="openDialog('detail', scope.row)" style="margin-right: 10px">浏览el-link>
- <el-link type="primary" v-hasBtn="'Button:roleManage:update'" @click="openDialog('edit', scope.row)" style="margin-right: 10px"
- >编辑
- >
- <el-link type="primary" v-hasBtn="'Button:roleManage:del'" @click="toDel(scope.row)">删除el-link>
- template>
- el-table-column>
- el-table>
- <el-pagination
- @size-change="onHandleSizeChange"
- @current-change="onHandleCurrentChange"
- class="mt15"
- :pager-count="5"
- :page-sizes="[10, 20, 30]"
- :current-page="state.filters.page_index"
- background
- :page-size="state.filters.page_size"
- layout="total, sizes, prev, pager, next, jumper"
- :total="state.tableData.total"
- >
- el-pagination>
- <div v-if="state.dialog.isShowDialog" class="system-user-dialog-container">
- <el-dialog :title="state.dialog.title" v-model="state.dialog.isShowDialog" width="900px" @close="onCancel">
- <el-form
- ref="ruleFormRef"
- :model="state.ruleForm"
- :rules="state.rules"
- :disabled="state.dialog.title == '浏览'"
- size="default"
- label-width="100px"
- >
- <el-row :gutter="35">
- <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="mb20">
- <el-form-item label="权限组名称" prop="name">
- <el-input v-model="state.ruleForm.name" placeholder="请输入" maxlength="20" clearable>el-input>
- el-form-item>
- el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" class="mb20">
- <el-form-item label="机构名称" prop="org_id" class="row-padding-bottom">
- <el-select v-model="state.ruleForm.org_id" placeholder="请选择" clearable>
- <el-option v-for="(item, index) in state.orgsOption" :key="index" :label="item.name" :value="item.id">el-option>
- el-select>
- el-form-item>
- el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <div class="small-title">功能权限div>
- <div class="small-title" style="padding-left: 52px">数据权限div>
- el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item v-for="(item, i) in state.listPers" :key="i" :label="item.name" class="row-padding-bottom">
- <div class="half-transfer">
- <div class="el-transfer-panel">
- <div class="all">
- <el-checkbox v-model="state.selectTreeAll[i]" @change="handleSelectTreeAll($event, i)">全部el-checkbox>
- div>
- <div class="input-wrap">
- <el-input v-model="state.searchTreeInput[i]" placeholder="请输入搜索内容" clearable @clear="clearTreeSearch(i)">el-input>
- div>
- <div class="el-transfer__list">
- <el-tree
- :ref="getTreeRef(i)"
- :data="item.perm_tree"
- :props="state.defaultProps"
- node-key="id"
- :default-expand-all="true"
- show-checkbox
- :default-checked-keys="item.perm_ids"
- :filter-node-method="filterNode"
- @check="handleCheckChange(i)"
- >el-tree>
- div>
- div>
- div>
-
- <div class="half-transfer" v-if="item.org_flag === 1" style="margin-right: 0">
- <div class="el-transfer-panel">
- <div class="all">
- <el-checkbox v-model="state.selectOrgAll[i]" @change="handleSelectOrgAll($event, i)">全部el-checkbox>
- div>
- <div class="input-wrap">
- <el-input v-model="state.searchOrgInput[i]" placeholder="请输入搜索内容" clearable @clear="clearOrgSearch(i)">el-input>
- div>
- <div class="el-transfer__list">
- <el-checkbox-group v-model="item.org_ids" @change="handleCheckbox($event, i)" class="el-transfer__list">
- <el-checkbox v-for="(item, index) in filteredOptions[i]" :key="index" :label="item.id">{{ item.name }}el-checkbox>
- el-checkbox-group>
- div>
- div>
- div>
- el-form-item>
- el-col>
- el-row>
- el-form>
- <template #footer>
- <span v-if="state.dialog.title != '浏览'" class="dialog-footer">
- <el-button @click="onCancel" size="default">取消el-button>
- <el-button v-throttle type="primary" @click="onSubmit" size="default">确定el-button>
- span>
- template>
- el-dialog>
- div>
- el-card>
- div>
- template>
-
- <script setup name="perGroupManage">
- import { ElMessageBox, ElMessage } from 'element-plus';
- import { getRolelList, getListperm, getOrgslList, addRole, updateRole, delRole } from '/@/api/system.js';
- const ruleFormRef = ref(null);
-
- // 定义变量内容
- const state = reactive({
- // 列表查询条件
- filters: {
- page_index: 1,
- page_size: 10,
- },
- tableData: {
- data: [],
- total: 0,
- loading: false,
- },
- listPers: [], // 功能权限
- ruleForm: {},
- currentStatus: true,
- orgsOption: [], // 所属机构
- rules: {
- name: [
- {
- required: true,
- message: '请输入权限组名称',
- trigger: 'blur',
- },
- ],
- org_id: [
- {
- required: true,
- message: '请选择机构名称',
- trigger: 'change',
- },
- ],
- },
- dialog: {
- isShowDialog: false,
- type: '',
- title: '新增',
- },
- defaultProps: {
- children: 'children',
- label: 'name',
- value: 'id',
- },
- selectTreeAll: [false],
- selectOrgAll: [false],
- searchTreeInput: [''], // 功能权限树搜索
- searchOrgInput: [''], // 数据权限多选搜索
- role_id: '',
- });
-
- const resetTableData = () => {
- state.filters = {
- page_index: 1,
- page_size: 10,
- };
- getTableData();
- };
-
- // 数据权限查询
- const filteredOptions = computed(() => {
- return state.listPers.map((item, index) => {
- const searchText = state.searchOrgInput[index];
- if (!searchText) {
- return item.orgsOption;
- }
- const filtered = item.orgsOption.filter((option) => option.name.toLowerCase().includes(searchText.toLowerCase()));
- return filtered;
- });
- });
- const treeRefs = ref([]);
- const getTreeRef = (index) => {
- return (el) => {
- treeRefs.value[index] = el;
- };
- };
-
- // tree 搜索查询
- watch(
- state.searchTreeInput,
- (newVal) => {
- try {
- for (let i in newVal) {
- treeRefs.value[i].filter(newVal[i]);
- }
- } catch (error) {
- console.log('error', error);
- }
- },
- { deep: true }
- );
-
- const filterNode = (value, data) => {
- if (!value) return true;
- return data.name.includes(value);
- };
-
- // 用户中心树全选
- const handleSelectTreeAll = (checked, i) => {
- console.log(11111, checked, i, getAllNodeKeys(state.listPers[i].perm_tree));
- if (checked) {
- state.listPers[i].perm_ids = getAllNodeKeys(state.listPers[i].perm_tree);
- } else {
- state.listPers[i].perm_ids = [];
- treeRefs.value[i].setCheckedKeys([]);
- }
- };
-
- // 数据权限全选/取消全选
- const handleSelectOrgAll = (checked, i) => {
- console.log(2222, checked, i);
- if (checked) {
- state.listPers[i].org_ids = state.orgsOption.map((option) => option.id);
- } else {
- state.listPers[i].org_ids = [];
- }
- };
-
- const getAllNodeKeys = (treeData) => {
- const keys = [];
- const traverse = (nodes) => {
- for (const node of nodes) {
- keys.push(node.id);
- if (node.children && node.children.length > 0) {
- traverse(node.children);
- }
- }
- };
- traverse(treeData);
- return keys;
- };
-
- const handleCheckChange = (i) => {
- const checkedKeys = treeRefs.value[i].getCheckedKeys();
- console.log(checkedKeys);
- state.listPers[i].perm_ids = checkedKeys;
- nextTick(() => {
- if (treeRefs.value[i]) {
- const nodes = treeRefs.value[i].root.childNodes;
- console.log(12345, nodes);
- const allChecked = nodes.every((node) => node.checked);
- state.selectTreeAll[i] = allChecked;
- }
- });
- };
-
- // 数据权限选择问题
- const handleCheckbox = (data, i) => {
- console.log(1111111, data, i, state.listPers);
- if (state.listPers[i].org_ids.length === state.orgsOption.length) {
- state.selectOrgAll[i] = true;
- } else {
- state.selectOrgAll[i] = false;
- }
- };
-
- const clearTreeSearch = (i) => {
- state.searchTreeInput[i] = '';
- };
-
- // 数据权限搜索清空
- const clearOrgSearch = (i) => {
- state.searchOrgInput[i] = '';
- };
-
- // 初始化表格数据
- const getTableData = () => {
- getRolelList(state.filters)
- .then((res) => {
- if (res.data.code === 1) {
- let data = res.data.data;
- state.tableData.data = data.rows;
- state.tableData.total = data.total;
- }
- })
- .catch((error) => {});
- };
-
- // 机构
- const getOption = () => {
- let params = {
- page_index: 1,
- page_size: 0,
- };
- getOrgslList(params)
- .then((res) => {
- if (res.data.code === 1) {
- let data = res.data.data;
- state.orgsOption = data.rows;
- }
- })
- .catch((error) => {
- console.log(error);
- });
- };
-
- // 分页改变
- const onHandleCurrentChange = (val) => {
- state.filters.page_index = val;
- getTableData();
- };
-
- // 每页数量
- const onHandleSizeChange = (val) => {
- state.filters.page_size = val;
- getTableData();
- };
-
- // 编辑
- const openDialog = async (type, row) => {
- state.dialog.isShowDialog = true;
- if (type === 'add') {
- state.dialog.title = '新增';
- state.ruleForm = {};
- state.role_id = '';
- } else {
- state.role_id = row.id;
- const { name, org_id } = row;
- state.ruleForm.name = name;
- state.ruleForm.org_id = org_id;
- }
- if (type == 'edit') state.dialog.title = '编辑';
- if (type == 'detail') state.dialog.title = '浏览';
- state.listPers = [];
- await getOption();
- await getDiaListperm(type);
- };
-
- // 查询权限组
- const getDiaListperm = (type) => {
- getListperm({ role_id: state.role_id })
- .then((res) => {
- if (res.data.code === 1) {
- state.listPers = res.data.data;
- for (let i = 0; i < state.listPers.length; i++) {
- if (!state.listPers[i].hasOwnProperty('orgsOption')) {
- state.listPers[i].orgsOption = []; // 添加一个空数组作为初始值
- }
- if (type === 'edit') {
- if (state.listPers[i].perm_tree.length > 0) {
- let arr1 = getAllLeaf(state.listPers[i].perm_tree);
- let arr2 = state.listPers[i].perm_ids;
- let arr3 = arr1.filter((item) => {
- return arr2.includes(item);
- });
- state.listPers[i].perm_ids = arr3;
- }
- }
- state.listPers[i].orgsOption.push(...state.orgsOption);
- }
- console.log(12345678, state.listPers)
- }
- })
- .catch((error) => {
- console.log(error);
- });
- };
-
- // 提交 添加/修改
- const onSubmit = () => {
- if (!ruleFormRef) return;
- ruleFormRef.value.validate((valid) => {
- if (valid) {
- // 必须选择数据和功能权限
- const hasAnyValues = state.listPers.some((item) => item.perm_ids?.length || item.org_ids?.length);
- if (!hasAnyValues) {
- ElMessage.error('请选择至少一个数据和功能权限');
- return;
- }
- if (state.dialog.title === '新增') {
- saveAdd();
- } else {
- saveUpdate();
- }
- } else {
- return false;
- }
- });
- };
-
- // 添加
- const saveAdd = () => {
- state.ruleForm.modules = state.listPers;
- addRole(state.ruleForm)
- .then((res) => {
- if (res.data.code === 1) {
- ElMessage.success('新增成功');
- // 刷新列表
- getTableData();
- state.dialog.isShowDialog = false;
- }
- })
- .catch((error) => {});
- };
-
- // 修改
- const saveUpdate = () => {
- state.ruleForm.id = state.role_id;
- state.ruleForm.modules = state.listPers;
- updateRole(state.ruleForm)
- .then((res) => {
- if (res.data.code === 1) {
- ElMessage.success('编辑成功');
- // 刷新列表
- getTableData();
- state.dialog.isShowDialog = false;
- }
- })
- .catch((error) => {});
- };
-
- // 删除
- const toDel = (row) => {
- ElMessageBox.confirm(`是否确认删除权限组?`, '提示', {
- confirmButtonText: '确认',
- cancelButtonText: '取消',
- type: 'warning',
- })
- .then(() => {
- delRole(`role_id=${row.id}`)
- .then((res) => {
- if (res.data.code === 1) {
- ElMessage.success('删除成功');
- // 刷新列表
- getTableData();
- }
- })
- .catch((error) => {
- return;
- });
- })
- .catch(() => {});
- };
- // 取消
- const onCancel = () => {
- // 清除验证
- ruleFormRef.value.clearValidate();
- state.dialog.isShowDialog = false;
- };
-
- // 最后一级叶子节点
-
- const getAllLeaf = function (data) {
- let result = [];
-
- function getParentIds(data) {
- data.forEach((item) => {
- if (item.children.length < 1) {
- result.push(item.id); // 添加父节点ID
- } else {
- getParentIds(item.children);
- }
- });
- }
-
- getParentIds(data);
- return result;
- };
-
- // 页面加载时
- onMounted(() => {
- getTableData();
- });
- script>
- <style scoped lang="scss">
- .container-wrap {
- position: relative;
- :deep(.el-card__body) {
- display: flex;
- flex-direction: column;
- flex: 1;
- overflow-y: auto;
- }
- }
- .el-select {
- width: 100%;
- }
-
- .small-title {
- padding: 8px 30px;
- width: 50%;
- float: left;
- height: 36px;
- background: #f4f4f4;
- font-weight: 600;
- color: #333333;
- }
- .half-transfer {
- margin-right: 46px;
- margin-bottom: 10px;
- width: 333px;
- height: 260px;
- border-radius: 4px;
- border: 1px solid #dddddd;
- }
-
- .el-transfer-panel {
- display: flex;
- flex-direction: column;
- // height: 100%;
- .all {
- padding: 4px 20px;
- border-bottom: 1px solid #f4f4f4;
- }
- .input-wrap {
- padding: 10px 20px;
- }
- }
-
- .el-transfer__list {
- overflow-y: auto;
- border-radius: 4px;
- margin-top: 4px;
- }
-
- .el-transfer__list .el-checkbox-group {
- padding: 0 10px 20px 20px;
- }
-
- .el-transfer__list .el-checkbox {
- display: flex;
- line-height: 24px;
- }
-
- .el-transfer__list .el-checkbox:last-child {
- margin-bottom: 0;
- }
-
- .el-transfer__list .el-scrollbar {
- background-color: #f5f7fa;
- }
- style>
-
- [
- {
- module: 'user',
- perm_ids: [9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 2, 3, 4],
- org_ids: [1, 2],
- name: '用户中心',
- perm_tree: [
- {
- res_id: 'EnterMenu:user',
- name: '用户中心',
- res_type: 'EnterMenu',
- res_url: '',
- res_order: 1,
- icon: 'user',
- p_id: null,
- id: 1,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [
- {
- res_id: 'ConsoleMenu:org',
- name: '机构管理',
- res_type: 'ConsoleMenu',
- res_url: '/system/hospitalConfig',
- res_order: 1,
- icon: 'icon-jigouguanli',
- p_id: 'EnterMenu:user',
- id: 6,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [
- {
- res_id: 'Button:orgManage:view',
- name: '查看',
- res_type: 'Button',
- res_url: null,
- res_order: 1,
- icon: null,
- p_id: 'ConsoleMenu:org',
- id: 9,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:orgManage:update',
- name: '编辑',
- res_type: 'Button',
- res_url: null,
- res_order: 2,
- icon: null,
- p_id: 'ConsoleMenu:org',
- id: 10,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:orgManage:add',
- name: '新增',
- res_type: 'Button',
- res_url: null,
- res_order: 3,
- icon: null,
- p_id: 'ConsoleMenu:org',
- id: 11,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:orgManage:del',
- name: '删除',
- res_type: 'Button',
- res_url: null,
- res_order: 4,
- icon: null,
- p_id: 'ConsoleMenu:org',
- id: 12,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- ],
- },
- {
- res_id: 'ConsoleMenu:role',
- name: '权限组管理',
- res_type: 'ConsoleMenu',
- res_url: '/system/perGroupManage',
- res_order: 2,
- icon: 'icon-quanxianzuguanli ',
- p_id: 'EnterMenu:user',
- id: 7,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [
- {
- res_id: 'Button:roleManage:view',
- name: '查看',
- res_type: 'Button',
- res_url: null,
- res_order: 1,
- icon: null,
- p_id: 'ConsoleMenu:role',
- id: 13,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:roleManage:update',
- name: '编辑',
- res_type: 'Button',
- res_url: null,
- res_order: 2,
- icon: null,
- p_id: 'ConsoleMenu:role',
- id: 14,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:roleManage:add',
- name: '新增',
- res_type: 'Button',
- res_url: null,
- res_order: 3,
- icon: null,
- p_id: 'ConsoleMenu:role',
- id: 15,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:roleManage:del',
- name: '删除',
- res_type: 'Button',
- res_url: null,
- res_order: 4,
- icon: null,
- p_id: 'ConsoleMenu:role',
- id: 16,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- ],
- },
- {
- res_id: 'ConsoleMenu:user',
- name: '用户管理',
- res_type: 'ConsoleMenu',
- res_url: '/system/userManage',
- res_order: 3,
- icon: 'icon-yonghuguanli',
- p_id: 'EnterMenu:user',
- id: 8,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [
- {
- res_id: 'Button:userManage:view',
- name: '查看',
- res_type: 'Button',
- res_url: null,
- res_order: 1,
- icon: null,
- p_id: 'ConsoleMenu:user',
- id: 17,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:userManage:update',
- name: '编辑',
- res_type: 'Button',
- res_url: null,
- res_order: 2,
- icon: null,
- p_id: 'ConsoleMenu:user',
- id: 18,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:userManage:add',
- name: '新增',
- res_type: 'Button',
- res_url: null,
- res_order: 3,
- icon: null,
- p_id: 'ConsoleMenu:user',
- id: 19,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:userManage:del',
- name: '删除',
- res_type: 'Button',
- res_url: null,
- res_order: 4,
- icon: null,
- p_id: 'ConsoleMenu:user',
- id: 20,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:userManage:pwd',
- name: '重置密码',
- res_type: 'Button',
- res_url: null,
- res_order: 5,
- icon: null,
- p_id: 'ConsoleMenu:user',
- id: 21,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- ],
- },
- ],
- },
- {
- res_id: 'EnterMenu:image',
- name: '影像中心',
- res_type: 'EnterMenu',
- res_url: '',
- res_order: 2,
- icon: 'image',
- p_id: null,
- id: 2,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'EnterMenu:sci',
- name: '科研平台',
- res_type: 'EnterMenu',
- res_url: '/html/demo-3d/',
- res_order: 3,
- icon: 'scientific',
- p_id: null,
- id: 3,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'EnterMenu:teach',
- name: '教学平台',
- res_type: 'EnterMenu',
- res_url: '/html/teach',
- res_order: 4,
- icon: 'teach',
- p_id: null,
- id: 4,
- module: 'user',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- ],
- org_flag: 1,
- orgsOption: [
- {
- id: 1,
- name: '默认机构',
- module: null,
- role_id: null,
- create_time: '2023-08-21 16:35:49',
- },
- {
- id: 2,
- name: '协和医院',
- module: null,
- role_id: null,
- create_time: '2023-08-21 16:39:54',
- },
- ],
- },
- {
- module: 'teach',
- perm_ids: [43, 44, 45, 49, 50, 51, 52, 53, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 57, 58, 59, 60],
- org_ids: [],
- name: '教学平台',
- perm_tree: [
- {
- res_id: 'MainMenu:1',
- name: '基础课程',
- res_type: 'MainMenu',
- res_url: '/base',
- res_order: 1,
- icon: null,
- p_id: null,
- id: 43,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'MainMenu:2',
- name: '案例教学',
- res_type: 'MainMenu',
- res_url: '/case',
- res_order: 2,
- icon: null,
- p_id: null,
- id: 44,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'MainMenu:3',
- name: '拟实操作',
- res_type: 'MainMenu',
- res_url: '/operate',
- res_order: 3,
- icon: null,
- p_id: null,
- id: 45,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'MainMenu:4',
- name: '考试中心',
- res_type: 'MainMenu',
- res_url: '/testCenter',
- res_order: 4,
- icon: null,
- p_id: null,
- id: 46,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [
- {
- res_id: 'ExamMenu:1',
- name: '我的考试',
- res_type: 'ExamMenu',
- res_url: '/testCenter/myTest',
- res_order: 1,
- icon: 'icon-wodekaoshi',
- p_id: 'MainMenu:4',
- id: 49,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'ExamMenu:2',
- name: '我的成绩',
- res_type: 'ExamMenu',
- res_url: '/testCenter/myScore',
- res_order: 2,
- icon: 'icon-chengjichaxun',
- p_id: 'MainMenu:4',
- id: 50,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- ],
- },
- {
- res_id: 'MainMenu:5',
- name: '个人中心',
- res_type: 'MainMenu',
- res_url: '/me',
- res_order: 5,
- icon: null,
- p_id: null,
- id: 47,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [
- {
- res_id: 'UserCenterMenu:1',
- name: '消息通知',
- res_type: 'UserCenterMenu',
- res_url: '/me/message',
- res_order: 1,
- icon: 'icon-xiaoxizhongxin',
- p_id: 'MainMenu:5',
- id: 51,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'UserCenterMenu:2',
- name: '我的收藏',
- res_type: 'UserCenterMenu',
- res_url: '/me/favorites',
- res_order: 2,
- icon: 'icon-wodeshoucang',
- p_id: 'MainMenu:5',
- id: 52,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'UserCenterMenu:3',
- name: '能力评价',
- res_type: 'UserCenterMenu',
- res_url: '/me/analysis',
- res_order: 3,
- icon: 'icon-nenglipingjia',
- p_id: 'MainMenu:5',
- id: 53,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- ],
- },
- {
- res_id: 'MainMenu:6',
- name: '后台管理',
- res_type: 'MainMenu',
- res_url: '/systemSet',
- res_order: 6,
- icon: null,
- p_id: null,
- id: 48,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [
- {
- res_id: 'ConsoleMenu:3',
- name: '课程管理',
- res_type: 'ConsoleMenu',
- res_url: '/systemSet/courseManage',
- res_order: 3,
- icon: 'icon-a-kechengguanlixin',
- p_id: 'MainMenu:6',
- id: 54,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [
- {
- res_id: 'Button:courseManage:view',
- name: '查看',
- res_type: 'Button',
- res_url: null,
- res_order: 1,
- icon: null,
- p_id: 'ConsoleMenu:3',
- id: 61,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:courseManage:update',
- name: '编辑',
- res_type: 'Button',
- res_url: null,
- res_order: 2,
- icon: null,
- p_id: 'ConsoleMenu:3',
- id: 62,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:courseManage:add',
- name: '新增',
- res_type: 'Button',
- res_url: null,
- res_order: 3,
- icon: null,
- p_id: 'ConsoleMenu:3',
- id: 63,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:courseManage:del',
- name: '删除',
- res_type: 'Button',
- res_url: null,
- res_order: 4,
- icon: null,
- p_id: 'ConsoleMenu:3',
- id: 64,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:courseManage:audit',
- name: '审核',
- res_type: 'Button',
- res_url: null,
- res_order: 5,
- icon: null,
- p_id: 'ConsoleMenu:3',
- id: 65,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:courseManage:offline',
- name: '上下线',
- res_type: 'Button',
- res_url: null,
- res_order: 6,
- icon: null,
- p_id: 'ConsoleMenu:3',
- id: 66,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- ],
- },
- {
- res_id: 'ConsoleMenu:4',
- name: '案例管理',
- res_type: 'ConsoleMenu',
- res_url: '/systemSet/caseManage',
- res_order: 4,
- icon: 'icon-anliguanli',
- p_id: 'MainMenu:6',
- id: 55,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [
- {
- res_id: 'Button:caseManage:view',
- name: '查看',
- res_type: 'Button',
- res_url: null,
- res_order: 1,
- icon: null,
- p_id: 'ConsoleMenu:4',
- id: 67,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:caseManage:update',
- name: '编辑',
- res_type: 'Button',
- res_url: null,
- res_order: 2,
- icon: null,
- p_id: 'ConsoleMenu:4',
- id: 68,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:caseManage:add',
- name: '新增',
- res_type: 'Button',
- res_url: null,
- res_order: 3,
- icon: null,
- p_id: 'ConsoleMenu:4',
- id: 69,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'Button:caseManage:del',
- name: '删除',
- res_type: 'Button',
- res_url: null,
- res_order: 4,
- icon: null,
- p_id: 'ConsoleMenu:4',
- id: 70,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- ],
- },
- {
- res_id: 'ConsoleMenu:5',
- name: '考试管理',
- res_type: 'ConsoleMenu',
- res_url: '/examManage',
- res_order: 5,
- icon: 'icon-kaoshiguanli',
- p_id: 'MainMenu:6',
- id: 56,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [
- {
- res_id: 'ExamCtrMenu:1',
- name: '题库管理',
- res_type: 'ExamCtrMenu',
- res_url: '/systemSet/examManage/examQuestionManage',
- res_order: 1,
- icon: null,
- p_id: 'ConsoleMenu:5',
- id: 57,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'ExamCtrMenu:2',
- name: '试卷管理',
- res_type: 'ExamCtrMenu',
- res_url: '/systemSet/examManage/testPaperManage',
- res_order: 2,
- icon: null,
- p_id: 'ConsoleMenu:5',
- id: 58,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'ExamCtrMenu:3',
- name: '考试安排',
- res_type: 'ExamCtrMenu',
- res_url: '/systemSet/examManage/examSchedule',
- res_order: 3,
- icon: null,
- p_id: 'ConsoleMenu:5',
- id: 59,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- {
- res_id: 'ExamCtrMenu:4',
- name: '成绩统计',
- res_type: 'ExamCtrMenu',
- res_url: '/systemSet/examManage/examStatistics',
- res_order: 4,
- icon: null,
- p_id: 'ConsoleMenu:5',
- id: 60,
- module: 'teach',
- belong: null,
- org_flag: null,
- hide: null,
- selected: true,
- children: [],
- },
- ],
- },
- ],
- },
- ],
- org_flag: 0,
- orgsOption: [
- {
- id: 1,
- name: '默认机构',
- module: null,
- role_id: null,
- create_time: '2023-08-21 16:35:49',
- },
- {
- id: 2,
- name: '协和医院',
- module: null,
- role_id: null,
- create_time: '2023-08-21 16:39:54',
- },
- ],
- },
- {
- module: 'image',
- perm_ids: [],
- org_ids: [],
- name: '影像中心',
- perm_tree: [],
- org_flag: 1,
- orgsOption: [
- {
- id: 1,
- name: '默认机构',
- module: null,
- role_id: null,
- create_time: '2023-08-21 16:35:49',
- },
- {
- id: 2,
- name: '协和医院',
- module: null,
- role_id: null,
- create_time: '2023-08-21 16:39:54',
- },
- ],
- },
- {
- module: 'sci',
- perm_ids: [],
- org_ids: [],
- name: '科研平台',
- perm_tree: [],
- org_flag: 0,
- orgsOption: [
- {
- id: 1,
- name: '默认机构',
- module: null,
- role_id: null,
- create_time: '2023-08-21 16:35:49',
- },
- {
- id: 2,
- name: '协和医院',
- module: null,
- role_id: null,
- create_time: '2023-08-21 16:39:54',
- },
- ],
- },
- ];