|
|
@ -0,0 +1,175 @@ |
|
|
|
<template> |
|
|
|
<el-dialog |
|
|
|
title="配置菜单" |
|
|
|
model-value |
|
|
|
width="600px" |
|
|
|
:close-on-click-modal="false" |
|
|
|
> |
|
|
|
<el-form ref="form" :model="formData" :rules="rules" label-width="80px"> |
|
|
|
<el-row> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="上级菜单"> |
|
|
|
<treeselect |
|
|
|
v-model="formData.parent_id" |
|
|
|
:options="treeMenu" |
|
|
|
:normalizer="normalizer" |
|
|
|
:show-count="true" |
|
|
|
placeholder="选择上级菜单" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="菜单标题" prop="title"> |
|
|
|
<el-input v-model="formData.title" placeholder="请输入菜单标题" /> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-form-item label="显示排序"> |
|
|
|
<el-input-number |
|
|
|
v-model="formData.sort" |
|
|
|
controls-position="right" |
|
|
|
:min="0" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="菜单类型" prop="menu_type"> |
|
|
|
<el-radio-group v-model="formData.menu_type"> |
|
|
|
<el-radio label="M">目录</el-radio> |
|
|
|
<el-radio label="C">菜单</el-radio> |
|
|
|
<el-radio label="F">按钮</el-radio> |
|
|
|
<el-radio label="A">接口</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24" v-if="formData.menu_type == 'A'"> |
|
|
|
<el-form-item label="请求方式"> |
|
|
|
<el-radio-group v-model="formData.action"> |
|
|
|
<el-radio label="GET">GET</el-radio> |
|
|
|
<el-radio label="POST">POST</el-radio> |
|
|
|
<el-radio label="PUT">PUT</el-radio> |
|
|
|
<el-radio label="DELETE">DELETE</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col :span="24"> |
|
|
|
<el-form-item label="菜单图标"> |
|
|
|
<el-popover |
|
|
|
placement="bottom-start" |
|
|
|
width="460" |
|
|
|
trigger="click" |
|
|
|
@show="$refs['iconSelect'].reset()" |
|
|
|
> |
|
|
|
<el-input |
|
|
|
suffix-icon="reference" |
|
|
|
v-model="formData.icon" |
|
|
|
placeholder="点击选择图标" |
|
|
|
readonly |
|
|
|
> |
|
|
|
<svg-icon |
|
|
|
v-if="formData.icon" |
|
|
|
suffix-icon="prefix" |
|
|
|
:icon-class="formData.icon" |
|
|
|
class="el-input__icon" |
|
|
|
style="height: 32px; width: 16px" |
|
|
|
/> |
|
|
|
<i |
|
|
|
v-else |
|
|
|
suffix-icon="prefix" |
|
|
|
class="el-icon-search el-input__icon" |
|
|
|
/> |
|
|
|
</el-input> |
|
|
|
</el-popover> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
<el-col |
|
|
|
:span="12" |
|
|
|
v-if="formData.menu_type == 'M' || formData.menu_type == 'C'" |
|
|
|
> |
|
|
|
<el-form-item label="路由名称" prop="menu_name"> |
|
|
|
<el-input |
|
|
|
v-model="formData.menu_name" |
|
|
|
placeholder="请输入路由名称" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col |
|
|
|
v-if="formData.menu_type == 'M' || formData.menu_type == 'C'" |
|
|
|
:span="12" |
|
|
|
> |
|
|
|
<el-form-item label="组件路径" prop="component"> |
|
|
|
<el-input |
|
|
|
v-model="formData.component" |
|
|
|
placeholder="请输入组件路径" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col :span="12" v-if="formData.menu_type != 'F'"> |
|
|
|
<el-form-item label="路由地址" prop="path"> |
|
|
|
<el-input v-model="formData.path" placeholder="请输入路由地址" /> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
|
|
|
|
<el-col |
|
|
|
:span="12" |
|
|
|
v-if="formData.menu_type == 'F' || formData.menu_type == 'C'" |
|
|
|
> |
|
|
|
<el-form-item label="权限标识"> |
|
|
|
<el-input |
|
|
|
v-model="formData.permission" |
|
|
|
placeholder="请权限标识" |
|
|
|
maxlength="50" |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-form> |
|
|
|
<template #footer> |
|
|
|
<span class="dialog-footer"> |
|
|
|
<el-button |
|
|
|
type="primary" |
|
|
|
class="dialog-submit-button" |
|
|
|
@click="submitForm" |
|
|
|
>确 定</el-button |
|
|
|
> |
|
|
|
<el-button class="dialog-cancel-button" @click="cancel" |
|
|
|
>取 消</el-button |
|
|
|
> |
|
|
|
</span> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
</template> |
|
|
|
<script> |
|
|
|
import { getTreeMenu } from "@/server/system/menu"; |
|
|
|
export default { |
|
|
|
data() { |
|
|
|
return { |
|
|
|
formData: {}, |
|
|
|
// 菜单树选项 |
|
|
|
treeMenu: [], |
|
|
|
}; |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 确认 |
|
|
|
submitForm() {}, |
|
|
|
// 取消 |
|
|
|
cancel() {}, |
|
|
|
// 查询菜单下拉树结构 |
|
|
|
getTreeMenu() { |
|
|
|
getTreeMenu().then(({code, data}) => { |
|
|
|
if(code ==200 && data){ |
|
|
|
let treeMenu = [{ menu_id: 0, title: '主类目', children: [] }] |
|
|
|
treeMenu.children = data |
|
|
|
this.treeMenu=treeMenu; |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
}, |
|
|
|
created(){ |
|
|
|
this.getTreeMenu(); |
|
|
|
} |
|
|
|
}; |
|
|
|
</script> |