|
|
@ -23,7 +23,7 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<div v-loading="loading" class="card-body">
|
|
|
|
<el-scrollbar v-loading="loading" class="card-body">
|
|
|
|
<el-tree
|
|
|
|
<el-tree
|
|
|
|
:data="list"
|
|
|
|
:data="list"
|
|
|
|
default-expand-all
|
|
|
|
default-expand-all
|
|
|
@ -56,7 +56,7 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-tree>
|
|
|
|
</el-tree>
|
|
|
|
</div>
|
|
|
|
</el-scrollbar>
|
|
|
|
</el-card>
|
|
|
|
</el-card>
|
|
|
|
<el-card class="feature">
|
|
|
|
<el-card class="feature">
|
|
|
|
<template #header>
|
|
|
|
<template #header>
|
|
|
@ -67,7 +67,7 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<div v-loading="loading2" class="card-body">
|
|
|
|
<el-scrollbar v-loading="loading2" class="card-body">
|
|
|
|
<el-tree
|
|
|
|
<el-tree
|
|
|
|
:data="featureList"
|
|
|
|
:data="featureList"
|
|
|
|
default-expand-all
|
|
|
|
default-expand-all
|
|
|
@ -95,7 +95,7 @@
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-tree>
|
|
|
|
</el-tree>
|
|
|
|
</div>
|
|
|
|
</el-scrollbar>
|
|
|
|
</el-card>
|
|
|
|
</el-card>
|
|
|
|
<el-card v-show="menuState.formVisible" class="form">
|
|
|
|
<el-card v-show="menuState.formVisible" class="form">
|
|
|
|
<template #header>
|
|
|
|
<template #header>
|
|
|
@ -104,59 +104,61 @@
|
|
|
|
<div class="action"></div>
|
|
|
|
<div class="action"></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<el-form
|
|
|
|
<el-scrollbar v-loading="loading2" class="card-body">
|
|
|
|
ref="refsMenuForm"
|
|
|
|
<el-form
|
|
|
|
v-loading="menuState.submitting"
|
|
|
|
ref="refsMenuForm"
|
|
|
|
label-width="100px"
|
|
|
|
v-loading="menuState.submitting"
|
|
|
|
:model="menuState.form"
|
|
|
|
label-width="100px"
|
|
|
|
:rules="menuState.rules"
|
|
|
|
:model="menuState.form"
|
|
|
|
>
|
|
|
|
:rules="menuState.rules"
|
|
|
|
<el-form-item label="所属系统" prop="systemId">
|
|
|
|
>
|
|
|
|
<el-select
|
|
|
|
<el-form-item label="所属系统" prop="systemId">
|
|
|
|
v-model="menuState.form.systemId"
|
|
|
|
<el-select
|
|
|
|
:config="{ label: 'systemName', value: 'id' }"
|
|
|
|
v-model="menuState.form.systemId"
|
|
|
|
:opts="opts.system"
|
|
|
|
:config="{ label: 'systemName', value: 'id' }"
|
|
|
|
/>
|
|
|
|
:opts="opts.system"
|
|
|
|
</el-form-item>
|
|
|
|
/>
|
|
|
|
<el-form-item label="上级菜单" prop="parentId">
|
|
|
|
</el-form-item>
|
|
|
|
<el-cascader
|
|
|
|
<el-form-item label="上级菜单" prop="parentId">
|
|
|
|
v-model="menuState.form.parentId"
|
|
|
|
<el-cascader
|
|
|
|
:options="list"
|
|
|
|
v-model="menuState.form.parentId"
|
|
|
|
:props="{
|
|
|
|
:options="list"
|
|
|
|
label: 'title',
|
|
|
|
:props="{
|
|
|
|
value: 'id',
|
|
|
|
label: 'title',
|
|
|
|
children: 'menuChild',
|
|
|
|
value: 'id',
|
|
|
|
checkStrictly: true,
|
|
|
|
children: 'menuChild',
|
|
|
|
expandTrigger: 'hover',
|
|
|
|
checkStrictly: true,
|
|
|
|
emitPath: false,
|
|
|
|
expandTrigger: 'hover',
|
|
|
|
}"
|
|
|
|
emitPath: false,
|
|
|
|
/>
|
|
|
|
}"
|
|
|
|
</el-form-item>
|
|
|
|
/>
|
|
|
|
<el-form-item label="菜单类型" prop="type">
|
|
|
|
</el-form-item>
|
|
|
|
<el-radio-group v-model="menuState.form.type" :opts="opts.type" />
|
|
|
|
<el-form-item label="菜单类型" prop="type">
|
|
|
|
</el-form-item>
|
|
|
|
<el-radio-group v-model="menuState.form.type" :opts="opts.type" />
|
|
|
|
<el-form-item label="菜单名称" prop="title">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="menuState.form.title" />
|
|
|
|
<el-form-item label="菜单名称" prop="title">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="menuState.form.title" />
|
|
|
|
<el-form-item label="权限标识" prop="permission">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="menuState.form.permission" />
|
|
|
|
<el-form-item label="权限标识" prop="permission">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="menuState.form.permission" />
|
|
|
|
<el-form-item label="路由路径" prop="path">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="menuState.form.path" />
|
|
|
|
<el-form-item label="路由路径" prop="path">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="menuState.form.path" />
|
|
|
|
<el-form-item label="前端页面" prop="page">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="menuState.form.page" />
|
|
|
|
<el-form-item label="前端页面" prop="page">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="menuState.form.page" />
|
|
|
|
<el-form-item label="菜单图标" prop="icon">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="menuState.form.icon" />
|
|
|
|
<el-form-item label="菜单图标" prop="icon">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="menuState.form.icon" />
|
|
|
|
<el-form-item label="菜单排序" prop="sort">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input-number v-model="menuState.form.sort" />
|
|
|
|
<el-form-item label="菜单排序" prop="sort">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input-number v-model="menuState.form.sort" />
|
|
|
|
<el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
<el-button type="primary" @click="handleSaveMenu">保存</el-button>
|
|
|
|
<el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
<el-button type="primary" @click="handleSaveMenu">保存</el-button>
|
|
|
|
</el-form>
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
|
|
</el-scrollbar>
|
|
|
|
</el-card>
|
|
|
|
</el-card>
|
|
|
|
<el-card v-show="featureState.formVisible" class="form">
|
|
|
|
<el-card v-show="featureState.formVisible" class="form">
|
|
|
|
<template #header>
|
|
|
|
<template #header>
|
|
|
@ -165,51 +167,53 @@
|
|
|
|
<div class="action"></div>
|
|
|
|
<div class="action"></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
<el-form
|
|
|
|
<el-scrollbar v-loading="loading2" class="card-body">
|
|
|
|
ref="refsFeatureForm"
|
|
|
|
<el-form
|
|
|
|
v-loading="featureState.submitting"
|
|
|
|
ref="refsFeatureForm"
|
|
|
|
label-width="100px"
|
|
|
|
v-loading="featureState.submitting"
|
|
|
|
:model="featureState.form"
|
|
|
|
label-width="100px"
|
|
|
|
:rules="featureState.rules"
|
|
|
|
:model="featureState.form"
|
|
|
|
>
|
|
|
|
:rules="featureState.rules"
|
|
|
|
<el-form-item label="所属系统" prop="systemId">
|
|
|
|
>
|
|
|
|
<el-select
|
|
|
|
<el-form-item label="所属系统" prop="systemId">
|
|
|
|
v-model="featureState.form.systemId"
|
|
|
|
<el-select
|
|
|
|
:config="{ label: 'systemName', value: 'id' }"
|
|
|
|
v-model="featureState.form.systemId"
|
|
|
|
:opts="opts.system"
|
|
|
|
:config="{ label: 'systemName', value: 'id' }"
|
|
|
|
@change="state.condition.systemId = $event"
|
|
|
|
:opts="opts.system"
|
|
|
|
/>
|
|
|
|
@change="state.condition.systemId = $event"
|
|
|
|
</el-form-item>
|
|
|
|
/>
|
|
|
|
<el-form-item label="所属菜单" prop="menuId">
|
|
|
|
</el-form-item>
|
|
|
|
<el-cascader
|
|
|
|
<el-form-item label="所属菜单" prop="menuId">
|
|
|
|
v-model="featureState.form.menuId"
|
|
|
|
<el-cascader
|
|
|
|
:options="list"
|
|
|
|
v-model="featureState.form.menuId"
|
|
|
|
:props="{
|
|
|
|
:options="list"
|
|
|
|
label: 'title',
|
|
|
|
:props="{
|
|
|
|
value: 'id',
|
|
|
|
label: 'title',
|
|
|
|
children: 'menuChild',
|
|
|
|
value: 'id',
|
|
|
|
checkStrictly: true,
|
|
|
|
children: 'menuChild',
|
|
|
|
expandTrigger: 'hover',
|
|
|
|
checkStrictly: true,
|
|
|
|
emitPath: false,
|
|
|
|
expandTrigger: 'hover',
|
|
|
|
}"
|
|
|
|
emitPath: false,
|
|
|
|
/>
|
|
|
|
}"
|
|
|
|
</el-form-item>
|
|
|
|
/>
|
|
|
|
<el-form-item label="功能名称" prop="name">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="featureState.form.name" />
|
|
|
|
<el-form-item label="功能名称" prop="name">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="featureState.form.name" />
|
|
|
|
<el-form-item label="请求方式" prop="method">
|
|
|
|
</el-form-item>
|
|
|
|
<el-select v-model="featureState.form.method" :opts="opts.method" />
|
|
|
|
<el-form-item label="请求方式" prop="method">
|
|
|
|
</el-form-item>
|
|
|
|
<el-select v-model="featureState.form.method" :opts="opts.method" />
|
|
|
|
<el-form-item label="接口路径" prop="uri">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="featureState.form.uri" />
|
|
|
|
<el-form-item label="接口路径" prop="uri">
|
|
|
|
</el-form-item>
|
|
|
|
<el-input v-model="featureState.form.uri" />
|
|
|
|
<el-form-item label="是否启用" prop="isEnable">
|
|
|
|
</el-form-item>
|
|
|
|
<el-switch v-model="featureState.form.isEnable" />
|
|
|
|
<el-form-item label="是否启用" prop="isEnable">
|
|
|
|
</el-form-item>
|
|
|
|
<el-switch v-model="featureState.form.isEnable" />
|
|
|
|
<el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
<el-button type="primary" @click="handleSaveFeature">保存</el-button>
|
|
|
|
<el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
<el-button type="primary" @click="handleSaveFeature">保存</el-button>
|
|
|
|
</el-form>
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
|
|
</el-scrollbar>
|
|
|
|
</el-card>
|
|
|
|
</el-card>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@ -396,6 +400,7 @@
|
|
|
|
flex-direction: column;
|
|
|
|
flex-direction: column;
|
|
|
|
.body {
|
|
|
|
.body {
|
|
|
|
flex: 1;
|
|
|
|
flex: 1;
|
|
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
display: flex;
|
|
|
|
display: flex;
|
|
|
|
flex-direction: row;
|
|
|
|
flex-direction: row;
|
|
|
|
> * {
|
|
|
|
> * {
|
|
|
@ -404,6 +409,17 @@
|
|
|
|
margin-left: @layout-space;
|
|
|
|
margin-left: @layout-space;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
.el-card {
|
|
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
|
|
|
:deep(.el-card__body) {
|
|
|
|
|
|
|
|
flex: 1;
|
|
|
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
|
|
|
.card-body {
|
|
|
|
|
|
|
|
padding-right: @layout-space;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
:deep(.el-tree) {
|
|
|
|
:deep(.el-tree) {
|
|
|
|
.flex {
|
|
|
|
.flex {
|
|
|
|
width: 100%;
|
|
|
|
width: 100%;
|
|
|
|