部门管理、岗位管理 切图

This commit is contained in:
Mrtangl 2022-06-20 18:50:03 +08:00
parent 280e6d34c5
commit 373f77aa31
7 changed files with 337 additions and 25 deletions

32
admin/src/api/organize.ts Normal file
View File

@ -0,0 +1,32 @@
import request from '@/utils/request'
/** 岗位 S **/
// 岗位列表
export function apiPostLists(params: any) {
return request.get('/system/post/list', { params })
}
// 添加岗位
export function apiPostAdd(params: any) {
return request.post('/system/post/add', params)
}
// 编辑岗位
export function apiPostEdit(params: any) {
return request.post('/system/post/edit', params)
}
// 删除岗位
export function apiPostDelete(params: any) {
return request.post('/system/post/del', params)
}
// 岗位详情
export function apiPostDetail(params: any) {
return request.get('/system/post/detail', { params })
}
// 所有岗位
export function apiPostAll(params: any) {
return request.get('/system/post/all', { params })
}
/** 岗位 E **/

View File

@ -1,4 +1,3 @@
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
import Layout from '@/layout/index.vue'
/**
@ -24,7 +23,7 @@ export const constantRoutes: Array<RouteRecordRaw> = [
name: 'index',
component: Layout
},
{
path: '/permission',
component: Layout,
@ -46,6 +45,22 @@ export const constantRoutes: Array<RouteRecordRaw> = [
}
]
},
{
path: '/organize',
component: Layout,
children: [
{
path: 'department/edit',
component: () => import('@/views/organize/department/edit.vue'),
meta: { title: '编辑部门', activeMenu: '/organize/department' }
},
{
path: 'post/edit',
component: () => import('@/views/organize/post/edit.vue'),
meta: { title: '编辑岗位', activeMenu: '/organize/post' }
}
]
},
{
path: '/login',
component: () => import('@/views/account/login.vue')
@ -60,7 +75,6 @@ export const constantRoutes: Array<RouteRecordRaw> = [
}
]
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: constantRoutes,
@ -70,7 +84,7 @@ const router = createRouter({
} else {
return { top: 0 }
}
},
}
})
export default router

View File

@ -1,9 +1,70 @@
<template>
<div>部门管理edit</div>
<div class="department-edit">
<el-card shadow="never">
<el-page-header :content="id ? '编辑部门' : '新增部门'" @back="$router.back()" />
</el-card>
<el-card shadow="never" class="m-t-15">
<el-form
ref="formRefs"
:rules="rules"
class="ls-form"
:model="formData"
label-width="150px"
size="small"
>
<!-- 上级部门 -->
<el-form-item label="上级部门" prop="pid">
<!-- <el-select v-model="formData.pid" placeholder="请选择上级部门" :disabled="formData.pid === 0 && id">
<el-option v-for="(item, index) in leaderList" :key="index" :label="item.name" :value="item.id">
</el-option>
</el-select> -->
<el-cascader
:options="leaderList"
:props="{
value: 'id',
label: 'name',
checkStrictly: true
}"
clearable
/>
</el-form-item>
<!-- 部门名称 -->
<el-form-item label="部门名称" prop="name">
<el-input placeholder="请输入部门名称"></el-input>
</el-form-item>
<!-- 负责人 -->
<el-form-item label="负责人" prop="leader">
<el-input placeholder="请输入负责人姓名"></el-input>
</el-form-item>
<!-- 联系电话 -->
<el-form-item label="联系电话" prop="mobile">
<el-input placeholder="请输入联系电话" type="tel"></el-input>
</el-form-item>
<!-- 岗位排序 -->
<el-form-item label="排序" prop="sort">
<el-input placeholder="请输入排序" type="number"></el-input>
<div class="muted">默认为0 数值越大越排前</div>
</el-form-item>
<!-- 管理员状态 -->
<el-form-item label="部门状态">
<el-switch :active-value="1" :inactive-value="0" />
</el-form-item>
</el-form>
</el-card>
<footer-btns>
<el-button type="primary" size="small" @click="onSubmit">保存</el-button>
</footer-btns>
</div>
</template>
<script>
export default {}
<script lang="ts" setup>
import FooterBtns from '@/components/footer-btns/index.vue'
</script>
<style></style>
<style lang="scss" scoped></style>

View File

@ -1,9 +1,89 @@
<template>
<div>部门管理</div>
<div class="department">
<el-card shadow="never">
<el-form class="ls-form" :model="formData" label-width="80px" size="small" inline>
<el-form-item label="部门名称">
<el-input class="ls-input" />
</el-form-item>
<el-form-item label="部门状态:">
<el-select placeholder="全部">
<el-option
v-for="item in statusList"
:key="item.val"
:label="item.name"
:value="item.val"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<div class="m-l-20">
<el-button type="primary" @click="getLists">查询</el-button>
<el-button @click="reGetLists">重置</el-button>
</div>
</el-form-item>
</el-form>
</el-card>
<el-card class="m-t-15" shadow="never">
<router-link to="/organize/department/edit">
<el-button type="primary" size="small">新增部门</el-button>
</router-link>
<el-button type="" size="small" style="margin-left: 16px" @click="openOrFold()">
全部展开/折叠
</el-button>
<el-table class="m-t-15" size="small" row-key="id" :expand-row-keys="openIdArr">
<el-table-column label="部门名称" prop="name" min-width="100"></el-table-column>
<el-table-column label="部门状态" prop="status_desc" min-width="100">
<template #default="{ row }">
<el-tag class="ml-2" :type="row.status ? '' : 'danger'"
>{{ row.status_desc }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="排序" prop="sort" min-width="100"></el-table-column>
<el-table-column
label="添加时间"
prop="create_time"
min-width="100"
></el-table-column>
<el-table-column label="操作" width="100" fixed="right">
<template #default="{ row }">
<router-link
class="m-r-10"
:to="{
path: '/organize/department/edit',
query: {
id: row.id
}
}"
>
<el-button type="text">编辑</el-button>
</router-link>
<popup
class="m-r-10 inline"
@confirm="handleDelete(row.id)"
v-show="row.pid"
>
<template #trigger>
<el-button type="text">删除</el-button>
</template>
</popup>
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
export default {}
</script>
<script lang="ts" setup></script>
<style></style>
<style lang="scss" scoped></style>

View File

@ -1,9 +1,59 @@
<template>
<div>岗位管理edit</div>
<div class="post-edit">
<el-card shadow="never">
<el-page-header :content="id ? '编辑岗位' : '新增岗位'" @back="$router.back()" />
</el-card>
<el-card v-loading="loading" shadow="never" class="m-t-15">
<el-form
ref="formRefs"
:rules="rules"
class="ls-form"
:model="formData"
label-width="150px"
size="small"
>
<el-form-item label="岗位名称" prop="name">
<el-input placeholder="请输入岗位名称"></el-input>
</el-form-item>
<el-form-item label="岗位编码" prop="code">
<el-input placeholder="请输入岗位编码"></el-input>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input placeholder="请输入排序" type="number"></el-input>
<div class="muted">默认为0 数值越大越排前</div>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
placeholder="请输入备注"
type="textarea"
:autosize="{ minRows: 4, maxRows: 6 }"
></el-input>
</el-form-item>
<el-form-item label="岗位状态">
<el-switch :active-value="1" :inactive-value="0" />
</el-form-item>
</el-form>
</el-card>
<footer-btns>
<el-button type="primary" size="small" @click="onSubmit">保存</el-button>
</footer-btns>
</div>
</template>
<script>
export default {}
<script lang="ts" setup>
import FooterBtns from '@/components/footer-btns/index.vue'
</script>
<style></style>
<style lang="scss" scoped>
.post-edit {
:deep(.el-textarea) {
width: 280px;
}
}
</style>

View File

@ -1,9 +1,84 @@
<template>
<div>岗位管理</div>
<div class="post">
<el-card shadow="never">
<el-form class="ls-form" :model="formData" label-width="80px" size="small" inline>
<el-form-item label="岗位编码">
<el-input class="ls-input" />
</el-form-item>
<el-form-item label="岗位名称">
<el-input class="ls-input" />
</el-form-item>
<el-form-item label="岗位状态:">
<el-select placeholder="全部">
<el-option
v-for="item in statusList"
:key="item.val"
:label="item.name"
:value="item.val"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<div class="m-l-20">
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
</div>
</el-form-item>
</el-form>
</el-card>
<el-card shadow="never" class="m-t-15">
<router-link to="/organize/post/edit">
<el-button v-perm="['system:post:add']" type="primary" size="small">
新增岗位
</el-button>
</router-link>
<el-table size="small" row-key="id" class="m-t-15">
<el-table-column label="岗位编码" prop="code" min-width="100"></el-table-column>
<el-table-column label="岗位名称" prop="name" min-width="100"></el-table-column>
<el-table-column label="岗位状态" prop="status_desc" min-width="100">
<template #default="{ row }">
<el-tag class="ml-2" :type="row.status ? '' : 'danger'">
{{ row.status_desc }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="排序" prop="sort" min-width="100"></el-table-column>
<el-table-column
label="添加时间"
prop="create_time"
min-width="100"
></el-table-column>
<el-table-column label="操作" min-width="100" fixed="right">
<template #default="{ row }">
<router-link
class="m-r-10"
:to="{
path: '/organize/post/edit',
query: {
id: row.id
}
}"
>
<el-button type="text">编辑</el-button>
</router-link>
<popup class="m-r-10 inline" @confirm="handleDelete(row.id)">
<template #trigger>
<el-button type="text">删除</el-button>
</template>
</popup>
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
export default {}
</script>
<script lang="ts" setup></script>
<style></style>
<style lang="scss" scoped></style>

View File

@ -28,9 +28,9 @@
</el-card>
<el-card v-loading="pager.loading" class="m-t-15" shadow="never">
<router-link to="/permission/admin/edit">
<el-button v-perm="['system:admin:add']" type="primary" size="small"
>新增管理员</el-button
>
<el-button v-perm="['system:admin:add']" type="primary" size="small">
新增管理员
</el-button>
</router-link>
<div class="m-t-15">
<el-table :data="pager.lists">