| | |
| | | <el-row :gutter="35"> |
| | | <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> |
| | | <el-form-item label="上级菜单"> |
| | | <el-cascader |
| | | :options="menuData" |
| | | :props="{ checkStrictly: true, value: 'id', label: 'title' }" |
| | | placeholder="请选择上级菜单" |
| | | clearable |
| | | class="w100" |
| | | v-model="ruleForm.menuSuperior" |
| | | > |
| | | </el-cascader> |
| | | <el-cascader :options="menuData" :props="{ checkStrictly: true, value: 'id', label: 'title' }" placeholder="请选择上级菜单" clearable class="w100" v-model="ruleForm.menuSuperior"> </el-cascader> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="菜单名称"> |
| | | <el-input v-model="ruleForm.meta.title" placeholder="格式:message.router.xxx" clearable></el-input> |
| | | <el-input v-model.trim="ruleForm.meta.title" placeholder="格式:message.router.xxx" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="路由名称"> |
| | | <el-input v-model="ruleForm.name" placeholder="路由中的 name 值" clearable></el-input> |
| | | <el-input v-model.trim="ruleForm.name" placeholder="路由中的 name 值" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="路由路径"> |
| | | <el-input v-model="ruleForm.path" placeholder="路由中的 path 值" clearable></el-input> |
| | | <el-input v-model.trim="ruleForm.path" placeholder="路由中的 path 值" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="重定向"> |
| | | <el-input v-model="ruleForm.redirect" placeholder="请输入路由重定向" clearable></el-input> |
| | | <el-input v-model.trim="ruleForm.redirect" placeholder="请输入路由重定向" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="菜单图标"> |
| | | <input placeholder="请输入菜单图标" v-model="ruleForm.meta.icon" type="all" /> |
| | | <!-- <IconSelector placeholder="请输入菜单图标" v-model="ruleForm.meta.icon" type="all" />--> |
| | | <!-- <el-input placeholder="请输入菜单图标" v-model.trim="ruleForm.meta.icon" type="all" />--> |
| | | <IconSelector placeholder="请输入菜单图标" v-model="ruleForm.meta.icon" type="all" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="组件路径"> |
| | | <el-input v-model="ruleForm.component" placeholder="组件路径" clearable></el-input> |
| | | <el-input v-model.trim="ruleForm.component" placeholder="组件路径" clearable></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="权限标识"> |
| | | <el-select v-model="ruleForm.meta.roles" multiple placeholder="取角色管理" clearable class="w100"> |
| | | <el-option label="admin" value="admin"></el-option> |
| | | <el-option label="common" value="common"></el-option> |
| | | <el-option v-for="item in roleList" :key="item.roleId" :value="item.roleCode" :label="item.roleName"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="项目名"> |
| | | <el-select |
| | | @change="handelMenu" |
| | | v-model="ruleForm.projectId" |
| | | controls-position="right" |
| | | placeholder="请输入排序" |
| | | class="w100" |
| | | > |
| | | <el-select @change="handelMenu" v-model="ruleForm.projectId" controls-position="right" placeholder="请输入排序" class="w100"> |
| | | <el-option v-for="item in projectList" :key="item.key" :value="item.id" :label="item.name"> </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | <template #footer> |
| | | <span class="dialog-footer"> |
| | | <el-button @click="onCancel" size="default">取 消</el-button> |
| | | <el-button type="primary" @click="onSubmit" size="default">{{ buttonName }}</el-button> |
| | | <el-button type="primary" v-throttle @click="onSubmit" size="default">{{ buttonName }}</el-button> |
| | | </span> |
| | | </template> |
| | | </el-dialog> |
| | |
| | | import { useRoutesList } from '/@/stores/routesList'; |
| | | import { i18n } from '/@/i18n/index'; |
| | | import IconSelector from '/@/components/iconSelector/index.vue'; |
| | | import { useMenuApi } from '/@/api/menu/index'; |
| | | import { useMenuApi } from '/@/api/systemManage/menu/index'; |
| | | import { ElMessageBox, ElMessage } from 'element-plus'; |
| | | import { Session } from '/@/utils/storage'; |
| | | // import { setBackEndControlRefreshRoutes } from "/@/router/backEnd"; |
| | |
| | | }, |
| | | btnPower: '' // 菜单类型为按钮时,权限标识 |
| | | }, |
| | | roleList: [], |
| | | menuData: [], // 上级菜单数据 |
| | | projectList: [] |
| | | }); |
| | |
| | | return arr; |
| | | }; |
| | | // 打开弹窗 |
| | | const openDialog = (type: string, value: any, projectList: any, projectId: string) => { |
| | | const openDialog = (type: string, value: any, projectList: any, projectId: string, roleList: []) => { |
| | | state.projectList = JSON.parse(JSON.stringify(projectList)); |
| | | state.roleList = roleList; |
| | | state.isShowDialog = true; |
| | | if (type === '新增') { |
| | | state.buttonName = '新增'; |