Browse Source

配置信息调整

test
liwei 3 years ago
parent
commit
5932bbf1b0
4 changed files with 192 additions and 16 deletions
  1. +4
    -2
      src/server/request.js
  2. +2
    -0
      src/server/system/menu.js
  3. +175
    -0
      src/views/system/menu/addOrEdit.vue
  4. +11
    -14
      src/views/system/menu/index.vue

+ 4
- 2
src/server/request.js View File

@ -15,14 +15,16 @@ service.interceptors.request.use(
service.interceptors.response.use(
(response) => {
console.log(code);
const code = response.data.code;
if (code === 200) {
return response.data;
} else if (code === 401) {
location.href = `${location.origin}/${location.hash}`
}
},
(error) => {
if (error.response && error.response.data && error.response.data.code == 401) {
location.href = `${location.origin}/#/login`;
}
return Promise.reject(error.response.data);
}
);


+ 2
- 0
src/server/system/menu.js View File

@ -1,4 +1,6 @@
import { post, put, get } from "../api";
// 获取菜单树形数据
export const getTreeMenu = (params) =>get('/admin/menu/menulist', params);
// 新增菜单
export const addMenu = (params) =>post('/admin/menu/addmenu', params);
// 修改菜单


+ 175
- 0
src/views/system/menu/addOrEdit.vue View File

@ -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>

+ 11
- 14
src/views/system/menu/index.vue View File

@ -89,36 +89,33 @@
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
v-show="pagination.total > 0"
v-model:pagination="pagination"
@change="getList"
/>
</ContentContainer>
<AddOrEdit />
</div>
</template>
<script>
import SearchTemplate from "@/components/SearchTemplate.vue";
import ContentContainer from "@/components/ContentContainer.vue";
import { ListMixin } from "@/mixins/ListMixin";
import { getMenuDetails } from '@/server/system/menu'
import { getMenuDetails } from "@/server/system/menu";
import AddOrEdit from "./addOrEdit.vue";
export default {
components: {
SearchTemplate,
ContentContainer,
AddOrEdit
},
mixins: [ListMixin],
data() {
return {
queryTableDataUrl:'/admin/menu/menulist',
queryTableDataUrl: "/admin/menu/menulist",
loading: false,
};
},
methods: {
//
handleQuery() {
this.pagination.pageNumber=1;
this.pagination.pageNumber = 1;
this.getList();
},
//
@ -128,11 +125,11 @@ export default {
//
handleDelete(item) {},
},
mounted(){
getMenuDetails({id:261}).then(res=>{
debugger
})
}
mounted() {
getMenuDetails({ id: 261 }).then((res) => {
console.log(res);
});
},
};
</script>
<style lang="less" scoped>


Loading…
Cancel
Save