提交 d7dfabbf authored 作者: 王鹏飞's avatar 王鹏飞

update

上级 88ad610c
...@@ -56,7 +56,12 @@ export function createStaff(data) { ...@@ -56,7 +56,12 @@ export function createStaff(data) {
export function updateStaff(data) { export function updateStaff(data) {
return httpRequest.put(`/api/cms/admin/v1/user/${data.sso_id}/update`, data) return httpRequest.put(`/api/cms/admin/v1/user/${data.sso_id}/update`, data)
} }
/**
* 批量删除员工
*/
export function batchDeleteStaff(data) {
return httpRequest.put('/api/cms/admin/v1/user/batch-delete', data)
}
/* ------------------------------------项目管理------------------------------------ */ /* ------------------------------------项目管理------------------------------------ */
/** /**
* 获取项目列表 * 获取项目列表
...@@ -112,3 +117,9 @@ export function updateType(data) { ...@@ -112,3 +117,9 @@ export function updateType(data) {
export function getContentTypesList(params) { export function getContentTypesList(params) {
return httpRequest.get('/api/cms/admin/v1/type/content-types', { params }) return httpRequest.get('/api/cms/admin/v1/type/content-types', { params })
} }
/**
* 批量删除类型
*/
export function batchDeleteType(data) {
return httpRequest.put('/api/cms/admin/v1/type/batch-delete', data)
}
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<div class="table-list-bd"> <div class="table-list-bd">
<el-table :data="dataList" size="mini" v-loading="loading" v-bind="$attrs" v-on="$listeners" style="height: 100%"> <el-table :data="dataList" size="mini" v-loading="loading" v-bind="$attrs" v-on="$listeners" style="height: 100%">
<template v-for="item in columns"> <template v-for="item in columns">
<el-table-column v-bind="item" :key="item.prop"> <el-table-column v-bind="item" :key="item.prop" v-if="visible(item)">
<template v-slot:default="scope" v-if="item.slots"> <template v-slot:default="scope" v-if="item.slots">
<slot :name="item.slots" v-bind="scope"></slot> <slot :name="item.slots" v-bind="scope"></slot>
</template> </template>
...@@ -165,6 +165,9 @@ export default { ...@@ -165,6 +165,9 @@ export default {
this.page.currentPage = 1 this.page.currentPage = 1
this.page.size = value this.page.size = value
this.fetchList() this.fetchList()
},
visible(item) {
return Object.prototype.hasOwnProperty.call(item, 'visible') ? item.visible : true
} }
}, },
beforeMount() { beforeMount() {
......
...@@ -148,7 +148,7 @@ export default { ...@@ -148,7 +148,7 @@ export default {
} }
], ],
columns: [ columns: [
{ type: 'selection' }, { type: 'selection', visible: this.hasDelete },
{ prop: 'image_url', label: '图片', slots: 'image' }, { prop: 'image_url', label: '图片', slots: 'image' },
{ prop: 'id', label: '广告ID', slots: 'table-id' }, { prop: 'id', label: '广告ID', slots: 'table-id' },
{ prop: 'title', label: '标题' }, { prop: 'title', label: '标题' },
......
...@@ -143,7 +143,7 @@ export default { ...@@ -143,7 +143,7 @@ export default {
} }
], ],
columns: [ columns: [
{ type: 'selection' }, { type: 'selection', visible: this.hasDelete },
{ prop: 'image_url', label: '图片', slots: 'image' }, { prop: 'image_url', label: '图片', slots: 'image' },
{ prop: 'id', label: '文章ID', slots: 'table-id' }, { prop: 'id', label: '文章ID', slots: 'table-id' },
{ prop: 'title', label: '标题' }, { prop: 'title', label: '标题' },
......
...@@ -131,7 +131,7 @@ export default { ...@@ -131,7 +131,7 @@ export default {
} }
], ],
columns: [ columns: [
{ type: 'selection' }, { type: 'selection', visible: this.hasDelete },
{ prop: 'image_url', label: '图片', slots: 'image' }, { prop: 'image_url', label: '图片', slots: 'image' },
{ prop: 'id', label: '图文ID', slots: 'table-id' }, { prop: 'id', label: '图文ID', slots: 'table-id' },
{ prop: 'title', label: '标题' }, { prop: 'title', label: '标题' },
......
<template> <template>
<div class="staff page_container"> <div class="staff page_container">
<table-list v-bind="tableOptions" ref="tabList"> <table-list v-bind="tableOptions" ref="tabList" @selection-change="handleSelectionChange">
<template #header-aside> <template #header-aside>
<el-button type="primary" size="mini" @click="handleCreate">新建员工</el-button> <el-button type="primary" size="mini" @click="handleCreate" v-if="hasCreate">新建员工</el-button>
</template> </template>
<!-- 姓名 --> <!-- 姓名 -->
<template v-slot:table-name="{ row }"> <template v-slot:table-name="{ row }">
...@@ -29,6 +29,11 @@ ...@@ -29,6 +29,11 @@
<el-button type="text" @click="changePassword(row)">重置密码</el-button> <el-button type="text" @click="changePassword(row)">重置密码</el-button>
<el-button type="text" @click="changePhone(row)">更换手机号</el-button> <el-button type="text" @click="changePhone(row)">更换手机号</el-button>
</template> </template>
<template #footer>
<el-button size="mini" :disabled="!multipleSelection.length" @click="handleRemove" v-if="hasDelete"
>删除</el-button
>
</template>
</table-list> </table-list>
<el-drawer :title="drawerTitle" :visible.sync="drawerVisible" size="440px" :destroy-on-close="true"> <el-drawer :title="drawerTitle" :visible.sync="drawerVisible" size="440px" :destroy-on-close="true">
<div class="drawer__content"> <div class="drawer__content">
...@@ -120,7 +125,7 @@ ...@@ -120,7 +125,7 @@
</template> </template>
<script> <script>
import TableList from '@/components/TableList' import TableList from '@/components/TableList'
import { getStaffList, getProjectList, getRoleList, createStaff, updateStaff } from '@/api/settings' import { getStaffList, getProjectList, getRoleList, createStaff, updateStaff, batchDeleteStaff } from '@/api/settings'
import { sendCode } from '@/api/account' import { sendCode } from '@/api/account'
import { searchUserList } from '@/api/system' import { searchUserList } from '@/api/system'
const MOBILE_REG = /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{4,8}$/ const MOBILE_REG = /^1(3[0-9]|4[01456879]|5[0-35-9]|6[2567]|7[0-8]|8[0-9]|9[0-35-9])\d{4,8}$/
...@@ -175,6 +180,18 @@ export default { ...@@ -175,6 +180,18 @@ export default {
} }
}, },
computed: { computed: {
// 权限列表
permissions() {
return this.$store.state.user.permissions
},
// 创建权限
hasCreate() {
return this.permissions.includes('setting-function-user-create')
},
// 删除权限
hasDelete() {
return this.permissions.includes('setting-function-user-delete')
},
drawerTitle() { drawerTitle() {
return this.drawerType === 'create' ? '新建员工' : '编辑员工' return this.drawerType === 'create' ? '新建员工' : '编辑员工'
}, },
...@@ -213,7 +230,7 @@ export default { ...@@ -213,7 +230,7 @@ export default {
} }
], ],
columns: [ columns: [
{ prop: 'selection', label: '', type: 'selection', minWidth: '50px', fixed: 'left' }, { type: 'selection', minWidth: '50px', fixed: 'left', visible: this.hasDelete },
{ prop: 'sso_user.real_name', label: '姓名', slots: 'table-name', minWidth: '80px', fixed: 'left' }, { prop: 'sso_user.real_name', label: '姓名', slots: 'table-name', minWidth: '80px', fixed: 'left' },
{ prop: 'roles', label: '角色', slots: 'table-role', minWidth: '100px' }, { prop: 'roles', label: '角色', slots: 'table-role', minWidth: '100px' },
{ prop: 'sso_user.mobile', label: '手机号', minWidth: '110px' }, { prop: 'sso_user.mobile', label: '手机号', minWidth: '110px' },
...@@ -232,6 +249,18 @@ export default { ...@@ -232,6 +249,18 @@ export default {
this.fetchRoleList() this.fetchRoleList()
}, },
methods: { methods: {
// 删除
handleRemove() {
const ids = this.multipleSelection.map(item => item.id)
batchDeleteStaff({ sso_ids: ids }).then(res => {
if (res.code === 0) {
this.$message.success('删除成功')
this.$refs.tableList.refetch(true)
} else {
this.$message.error(res.message)
}
})
},
handleCreate() { handleCreate() {
this.drawerVisible = true this.drawerVisible = true
this.drawerType = 'create' this.drawerType = 'create'
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论