|
|
@ -9,214 +9,103 @@ import { UserFilled } from '@element-plus/icons-vue' |
|
|
|
import _ from 'lodash' |
|
|
|
import request from '@/util/http' |
|
|
|
|
|
|
|
// 充值明细表格 |
|
|
|
const tableData = ref([]) |
|
|
|
// 搜索=========================================== |
|
|
|
//分页总条目 |
|
|
|
const total = ref(100) |
|
|
|
// 搜索detailY |
|
|
|
const admin = ref({}) |
|
|
|
// 搜索对象 |
|
|
|
const getObj = ref({ |
|
|
|
pageNum: 1, |
|
|
|
pageSize: 10 |
|
|
|
}) |
|
|
|
// 新增用户权限弹窗 |
|
|
|
const permissionAddVisible = ref(false) |
|
|
|
// 编辑用户权限弹窗 |
|
|
|
const permissionEditVisible = ref(false) |
|
|
|
//选地区 |
|
|
|
// 控制新增权限弹窗的 |
|
|
|
const addVisible = ref(false) |
|
|
|
// 控制编辑权限弹窗的 |
|
|
|
const editVisible = ref(false) |
|
|
|
const area = ref([]) |
|
|
|
// 选部门 |
|
|
|
const store = ref([]) |
|
|
|
// 新增用户权限对象 |
|
|
|
const permissionAddObj = ref({}) |
|
|
|
// 新增用户权限对象 |
|
|
|
const addAdmin = ref({}) |
|
|
|
// 编辑用户权限对象 |
|
|
|
const permissionEditObj = ref({}) |
|
|
|
// 删除权限对象 |
|
|
|
const store = ref([])// 好像是部门 |
|
|
|
// 新增权限的对象,做初始化的 |
|
|
|
const addInit = ref({}) |
|
|
|
// 新增权限对象,传给后端的 |
|
|
|
const addObj = ref({}) |
|
|
|
// 编辑权限的对象 |
|
|
|
const editObj = ref({}) |
|
|
|
// 删除权限的对象 |
|
|
|
const delObj = ref({}) |
|
|
|
|
|
|
|
// 搜索接口 |
|
|
|
const get = async function (val) { |
|
|
|
try { |
|
|
|
// 搜索参数页码赋值 |
|
|
|
if (admin.value.jwcode) { |
|
|
|
admin.value.jwcode = admin.value.jwcode.replace(/\s/g, ''); |
|
|
|
} |
|
|
|
if (typeof val === 'number') { |
|
|
|
getObj.value.pageNum = val |
|
|
|
} else { |
|
|
|
getObj.value.pageNum = 1 |
|
|
|
} |
|
|
|
console.log('搜索参数', getObj.value) |
|
|
|
// 发送POST请求 |
|
|
|
const result = await request({ |
|
|
|
url: '/admin/search', |
|
|
|
url: '',// 待补充 |
|
|
|
data: { |
|
|
|
...getObj.value, |
|
|
|
admin: { ...admin.value } |
|
|
|
} |
|
|
|
}) |
|
|
|
tableData.value = result.data.list |
|
|
|
console.log('tableData', tableData.value) |
|
|
|
total.value = result.data.total |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
} |
|
|
|
} |
|
|
|
// 精网号去空格 |
|
|
|
const trimJwCode = () => { |
|
|
|
if (admin.value.jwcode) { |
|
|
|
admin.value.jwcode = admin.value.jwcode.replace(/\s/g, ''); |
|
|
|
} |
|
|
|
} |
|
|
|
// 搜索 |
|
|
|
const search = function () { |
|
|
|
trimJwCode(); |
|
|
|
getObj.value.pageNum = 1 |
|
|
|
get() |
|
|
|
} |
|
|
|
// 重置 |
|
|
|
|
|
|
|
const reset = function () { |
|
|
|
admin.value = {} |
|
|
|
} |
|
|
|
|
|
|
|
// 获取地区 |
|
|
|
const getArea = async function () { |
|
|
|
try { |
|
|
|
const result = await request({ |
|
|
|
url: '/admin/area', |
|
|
|
url: '', |
|
|
|
data: {} |
|
|
|
}) |
|
|
|
area.value = result.data |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
} |
|
|
|
} |
|
|
|
// 获取部门 |
|
|
|
const getStore = async function () { |
|
|
|
try { |
|
|
|
const result = await request({ |
|
|
|
url: '/admin/store', |
|
|
|
url: '', |
|
|
|
data: {} |
|
|
|
}) |
|
|
|
store.value = result.data |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 验证跳转输入框的数字是否合法 |
|
|
|
const checkNumber = function () { |
|
|
|
if (typeof parseInt(getObj.value.pageNum) === 'number') { |
|
|
|
console.log('总共有多少页' + Math.ceil(total.value / getObj.value.pageSize)) |
|
|
|
if ( |
|
|
|
getObj.value.pageNum > 0 && |
|
|
|
getObj.value.pageNum <= Math.ceil(total.value / getObj.value.pageSize) |
|
|
|
) { |
|
|
|
getObj.value.pageNum = parseInt(getObj.value.pageNum) |
|
|
|
console.log('输入的数字合法') |
|
|
|
get() |
|
|
|
} else { |
|
|
|
//提示 |
|
|
|
ElMessage({ |
|
|
|
type: 'error', |
|
|
|
message: '请检查输入内容' |
|
|
|
}) |
|
|
|
} |
|
|
|
} else { |
|
|
|
//提示 |
|
|
|
ElMessage({ |
|
|
|
type: 'error', |
|
|
|
message: '请检查输入内容' |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 打开新增用户权限弹窗 |
|
|
|
const openPermissionAddVisible = function () { |
|
|
|
permissionAddVisible.value = true |
|
|
|
const openaddVisible = function () { |
|
|
|
addVisible.value = true |
|
|
|
} |
|
|
|
// 关闭新增用户权限弹窗 |
|
|
|
const closePermissionAddVisible = function () { |
|
|
|
permissionAddVisible.value = false |
|
|
|
const closeaddVisible = function () { |
|
|
|
addVisible.value = false |
|
|
|
} |
|
|
|
// 新增用户权限初始化 |
|
|
|
const permissionAddInit = function () { |
|
|
|
permissionAddObj.value = {} |
|
|
|
openPermissionAddVisible() |
|
|
|
} |
|
|
|
// 通过精网号查询没有权限的用户 |
|
|
|
const getAdminByJwcodeWithoutPermission = async function () { |
|
|
|
try { |
|
|
|
const result = await request({ |
|
|
|
url: '/admin/selectNo', |
|
|
|
data: permissionAddObj.value |
|
|
|
}) |
|
|
|
if (result.code == 200) { |
|
|
|
permissionAddObj.value = result.data[0] |
|
|
|
ElMessage.success('精网号查询成功') |
|
|
|
} else { |
|
|
|
ElMessage.error(result.msg) |
|
|
|
} |
|
|
|
console.log('精网号查询没有权限的用户', permissionAddObj.value) |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
} |
|
|
|
addInit.value = {} |
|
|
|
openaddVisible() |
|
|
|
} |
|
|
|
// 新增用户权限提交 |
|
|
|
// const permissionAdd = async function () { |
|
|
|
// try { |
|
|
|
// if ( |
|
|
|
// permissionAddObj.value.jwcode == "" || |
|
|
|
// permissionAddObj.value.jwcode == null || |
|
|
|
// permissionAddObj.value.name == "" || |
|
|
|
// permissionAddObj.value.name == null |
|
|
|
// ) { |
|
|
|
// ElMessage.error("请选择要添加权限的用户"); |
|
|
|
// return; |
|
|
|
// } |
|
|
|
// if ( |
|
|
|
// permissionAddObj.value.permisson == "" || |
|
|
|
// permissionAddObj.value.permission == null |
|
|
|
// ) { |
|
|
|
// ElMessage.error("请选择权限"); |
|
|
|
// return; |
|
|
|
// } |
|
|
|
// console.log("新增用户权限提交", permissionAddObj.value); |
|
|
|
|
|
|
|
// const result = await request( |
|
|
|
// { |
|
|
|
// url: "/admin/update", |
|
|
|
// data: permissionAddObj.value} |
|
|
|
// ); |
|
|
|
|
|
|
|
// // 将响应结果存储到响应式数据中 |
|
|
|
// console.log("请求成功", result); |
|
|
|
|
|
|
|
// ElMessage.success("添加成功"); |
|
|
|
|
|
|
|
// get(); |
|
|
|
|
|
|
|
// closePermissionAddVisible(); |
|
|
|
// } catch (error) { |
|
|
|
// console.log("新增用户权限失败", error); |
|
|
|
// // 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
|
|
|
|
// ElMessage.error("新增用户权限失败"); |
|
|
|
// closePermissionAddVisible(); |
|
|
|
// } |
|
|
|
// }; |
|
|
|
const permissionAdd = async function () { |
|
|
|
Ref.value.validate(async (valid) => { |
|
|
|
console.log('valid', valid) |
|
|
|
if (valid) { |
|
|
|
try { |
|
|
|
addAdmin.value.adminFlag = 1 |
|
|
|
addAdmin.value.status1 = 1 |
|
|
|
addObj.value.adminFlag = 1 |
|
|
|
addObj.value.status1 = 1 |
|
|
|
const result = await request({ |
|
|
|
url: '/admin/add', |
|
|
|
data: addAdmin.value |
|
|
|
url: '', |
|
|
|
data: addObj.value |
|
|
|
}) |
|
|
|
|
|
|
|
if (result.code == 200) { |
|
|
@ -224,29 +113,24 @@ const permissionAdd = async function () { |
|
|
|
} else { |
|
|
|
ElMessage.error(result.msg) |
|
|
|
} |
|
|
|
|
|
|
|
addAdmin.value = {} |
|
|
|
addObj.value = {} |
|
|
|
closeaddVisible() |
|
|
|
get() |
|
|
|
|
|
|
|
closePermissionAddVisible() |
|
|
|
} catch (error) { |
|
|
|
console.log('新增用户权限失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
|
|
|
|
ElMessage.error('新增用户权限失败') |
|
|
|
closePermissionAddVisible() |
|
|
|
closeaddVisible() |
|
|
|
} |
|
|
|
} else { |
|
|
|
//提示 |
|
|
|
ElMessage({ |
|
|
|
type: 'error', |
|
|
|
message: '请检查输入内容' |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
// 表格添加的条件 |
|
|
|
const rules = reactive({ |
|
|
|
} // 这个要简化,哪来那么多if-else |
|
|
|
|
|
|
|
const rules = reactive({// 只有一个必填属性的话,能否直接设置在表单中 |
|
|
|
jwcode: [{ required: true, message: '请输入精网号', trigger: 'blur' }], |
|
|
|
name: [{ required: true, message: '请输入用户名', trigger: 'blur' }], |
|
|
|
store: [{ required: true, message: '请输入职称', trigger: 'blur' }], |
|
|
@ -254,95 +138,72 @@ const rules = reactive({ |
|
|
|
area: [{ required: true, message: '请选择所属地区', trigger: 'blur' }], |
|
|
|
permission: [{ required: true, message: '请选择权限', trigger: 'blur' }] |
|
|
|
}) |
|
|
|
// 验证表单 |
|
|
|
// 表单验证ref |
|
|
|
const Ref = ref(null) |
|
|
|
// 使用 _.throttle 并设置 trailing 为 false 实现严格节流,只执行一次 |
|
|
|
// 使用 _.throttle 并设置 trailing 为 false 实现严格节流,只执行一次 节吗呢?什么鬼 |
|
|
|
const throttledPermissionAdd = _.throttle(permissionAdd, 5000, { |
|
|
|
trailing: false |
|
|
|
}) |
|
|
|
// 权限类别 |
|
|
|
const permissionList = [ |
|
|
|
const list = [ |
|
|
|
{ |
|
|
|
label: '总部', |
|
|
|
value: '1' |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '地区经理', |
|
|
|
value: '5' |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '财务', |
|
|
|
value: '3' |
|
|
|
}, |
|
|
|
{ |
|
|
|
label: '客服', |
|
|
|
value: '2' |
|
|
|
label: '', |
|
|
|
value: '' |
|
|
|
} |
|
|
|
] |
|
|
|
// 获取地区 |
|
|
|
// 获取地区 |
|
|
|
// 地区列表 |
|
|
|
const areaList = ref([]) |
|
|
|
const getAreas = async function () { |
|
|
|
try { |
|
|
|
// 发送POST请求 |
|
|
|
const result = await request({ |
|
|
|
url: '/recharge/user/search', |
|
|
|
url: '', |
|
|
|
data: {} |
|
|
|
}) |
|
|
|
|
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log('请求成功', result) |
|
|
|
// 存储地区信息 |
|
|
|
console.log('result', result) |
|
|
|
areaList.value = result.data |
|
|
|
console.log('地区', area.value) |
|
|
|
} catch (error) { |
|
|
|
console.log('请求失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
} |
|
|
|
} |
|
|
|
getAreas() |
|
|
|
|
|
|
|
// 打开编辑用户权限弹窗 |
|
|
|
const openPermissionEditVisible = function () { |
|
|
|
permissionEditVisible.value = true |
|
|
|
const openVisable = function () { |
|
|
|
editVisible.value = true |
|
|
|
} |
|
|
|
// 关闭编辑用户权限弹窗 |
|
|
|
const closePermissionEditVisible = function () { |
|
|
|
permissionEditVisible.value = false |
|
|
|
const closeEdit = function () { |
|
|
|
editVisible.value = false |
|
|
|
} |
|
|
|
// 编辑用户权限初始化 |
|
|
|
const permissionEditInit = function (row) { |
|
|
|
permissionEditObj.value = {} |
|
|
|
permissionEditObj.value.jwcode = row.jwcode |
|
|
|
permissionEditObj.value.name = row.name |
|
|
|
permissionEditObj.value.area = row.area |
|
|
|
permissionEditObj.value.store = row.store |
|
|
|
permissionEditObj.value.permission = row.permission |
|
|
|
console.log('编辑用户权限', permissionEditObj.value) |
|
|
|
openPermissionEditVisible() |
|
|
|
const editInit = function (row) { |
|
|
|
editObj.value = {} |
|
|
|
editObj.value.jwcode = row.jwcode |
|
|
|
editObj.value.name = row.name |
|
|
|
editObj.value.area = row.area |
|
|
|
editObj.value.store = row.store |
|
|
|
editObj.value.permission = row.permission |
|
|
|
console.log('编辑用户权限', editObj.value) |
|
|
|
openVisable() |
|
|
|
} |
|
|
|
// 编辑用户权限提交 |
|
|
|
const permissionEdit = async function () { |
|
|
|
try { |
|
|
|
const result = await request({ |
|
|
|
url: '/admin/update', |
|
|
|
data: permissionEditObj.value |
|
|
|
url: '', |
|
|
|
data: editObj.value |
|
|
|
}) |
|
|
|
|
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log('请求成功', result) |
|
|
|
|
|
|
|
ElMessage.success('编辑用户权限成功') |
|
|
|
|
|
|
|
closeEdit() |
|
|
|
get() |
|
|
|
|
|
|
|
closePermissionEditVisible() |
|
|
|
} catch (error) { |
|
|
|
console.log('编辑用户权限失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
ElMessage.error('编辑用户权限失败') |
|
|
|
|
|
|
|
closePermissionEditVisible() |
|
|
|
closeEdit() |
|
|
|
} |
|
|
|
} |
|
|
|
const throttledPermissionEdit = _.throttle(permissionEdit, 5000, { |
|
|
@ -361,20 +222,18 @@ const delConfirm = async function () { |
|
|
|
console.log(delObj.value) |
|
|
|
|
|
|
|
const result = await request({ |
|
|
|
url: '/admin/update', |
|
|
|
url: '', |
|
|
|
data: delObj.value |
|
|
|
}) |
|
|
|
|
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log('请求成功', result) |
|
|
|
|
|
|
|
ElMessage.success('删除权限成功') |
|
|
|
delObj.value = {} |
|
|
|
get() |
|
|
|
} catch (error) { |
|
|
|
console.log('删除权限失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
ElMessage.error('删除权限失败') |
|
|
|
get() |
|
|
|
} |
|
|
|
} |
|
|
|
// 禁用启用用户权限 |
|
|
@ -382,28 +241,25 @@ const editStatus = async function (row) { |
|
|
|
try { |
|
|
|
console.log(row) |
|
|
|
|
|
|
|
permissionEditObj.value = {} |
|
|
|
permissionEditObj.value.jwcode = row.jwcode |
|
|
|
permissionEditObj.value.status1 = row.status1 |
|
|
|
editObj.value = {} |
|
|
|
editObj.value.jwcode = row.jwcode |
|
|
|
editObj.value.status1 = row.status1 |
|
|
|
|
|
|
|
console.log('修改用户权限状态', permissionEditObj.value) |
|
|
|
console.log('修改用户权限状态', editObj.value) |
|
|
|
|
|
|
|
const result = await request({ |
|
|
|
url: '/admin/update', |
|
|
|
data: permissionEditObj.value |
|
|
|
url: '', |
|
|
|
data: editObj.value |
|
|
|
}) |
|
|
|
|
|
|
|
// 将响应结果存储到响应式数据中 |
|
|
|
console.log('请求成功', result) |
|
|
|
|
|
|
|
ElMessage.success( |
|
|
|
permissionEditObj.value.status1 == 1 ? '启用成功' : '禁用成功' |
|
|
|
editObj.value.status1 == 1 ? '启用成功' : '禁用成功' |
|
|
|
) |
|
|
|
permissionEditObj.value = {} |
|
|
|
editObj.value = {} |
|
|
|
get() |
|
|
|
} catch (error) { |
|
|
|
console.log('修改用户权限失败', error) |
|
|
|
// 在这里可以处理错误逻辑,比如显示错误提示等 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -427,53 +283,26 @@ const handleCurrentChange = function (val) { |
|
|
|
<el-row> |
|
|
|
<el-col> |
|
|
|
<el-card style="margin-bottom: 20px"> |
|
|
|
<div class="head-card"> |
|
|
|
<div class="head-card-element"> |
|
|
|
<el-text class="mx-1" size="large">精网号:</el-text> |
|
|
|
<el-input |
|
|
|
v-model="admin.jwcode" |
|
|
|
style="width: 240px" |
|
|
|
placeholder="请输入精网号" |
|
|
|
clearable |
|
|
|
/> |
|
|
|
<div style="display:flex"> |
|
|
|
<div> |
|
|
|
<el-text size="large">OA号:</el-text> |
|
|
|
<el-input v-model="admin.jwcode" style="width: 240px" placeholder="请输入OA号" clearable /> |
|
|
|
</div> |
|
|
|
<div class="head-card-element" style="margin-left: 50px"> |
|
|
|
<el-text class="mx-1" size="large">所属地区:</el-text> |
|
|
|
<el-select |
|
|
|
v-model="admin.area" |
|
|
|
placeholder="请选择所属地区" |
|
|
|
style="width: 240px" |
|
|
|
clearable |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in area" |
|
|
|
:key="item" |
|
|
|
:label="item" |
|
|
|
:value="item" |
|
|
|
/> |
|
|
|
<div style="margin-left: 50px"> |
|
|
|
<el-text size="large">所属地区:</el-text> |
|
|
|
<el-select v-model="admin.area" placeholder="请选择所属地区" style="width: 240px" clearable> |
|
|
|
<el-option v-for="item in area" :key="item" :label="item" :value="item" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="head-card-element" style="margin-left: 50px"> |
|
|
|
<el-text class="mx-1" size="large">职位名称:</el-text> |
|
|
|
<el-select |
|
|
|
v-model="admin.store" |
|
|
|
placeholder="请选择职位名称" |
|
|
|
style="width: 240px" |
|
|
|
clearable |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in store" |
|
|
|
:key="item" |
|
|
|
:label="item" |
|
|
|
:value="item" |
|
|
|
/> |
|
|
|
<div style="margin-left: 50px"> |
|
|
|
<el-text size="large">职位名称:</el-text> |
|
|
|
<el-select v-model="admin.store" placeholder="请选择职位名称" style="width: 240px" clearable> |
|
|
|
<el-option v-for="item in store" :key="item" :label="item" :value="item" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="head-card-btn"> |
|
|
|
<div style="margin-left:20px"> |
|
|
|
<el-button type="success" @click="reset()">重置</el-button> |
|
|
|
<el-button type="primary" @click="search()">查询</el-button> |
|
|
|
<el-button type="primary" @click="get()">查询</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
@ -482,393 +311,167 @@ const handleCurrentChange = function (val) { |
|
|
|
<el-row> |
|
|
|
<el-col> |
|
|
|
<el-card> |
|
|
|
<!-- 添加 --> |
|
|
|
<div class="add-item"> |
|
|
|
<el-button |
|
|
|
style="color: #048efb; border: 1px solid #048efb" |
|
|
|
@click="permissionAddInit()" |
|
|
|
>新增用户</el-button |
|
|
|
> |
|
|
|
<el-button style="color: #048efb; border: 1px solid #048efb" @click="permissionAddInit()">新增用户</el-button> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div> |
|
|
|
<el-table :data="tableData" style="width: 100%"> |
|
|
|
<el-table-column |
|
|
|
type="index" |
|
|
|
label="序号" |
|
|
|
width="100px" |
|
|
|
fixed="left" |
|
|
|
> |
|
|
|
<el-table-column type="index" label="序号" width="100px" fixed="left"><!-- 序号始终固定在左边 --> |
|
|
|
<template #default="scope"> |
|
|
|
<span>{{ |
|
|
|
scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize |
|
|
|
}}</span> |
|
|
|
<!-- index下标从0开始,计算时要+1;后面算页数,(num页码数-1) * 每页记录数,加起来是总条数 --> |
|
|
|
<span>{{ scope.$index + 1 + (getObj.pageNum - 1) * getObj.pageSize }}</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
|
|
|
|
<el-table-column prop="jwcode" label="精网号" /> |
|
|
|
<el-table-column prop="name" label="姓名" /> |
|
|
|
<el-table-column prop="area" label="所属地区" /> |
|
|
|
<el-table-column prop="store" label="职位" /> |
|
|
|
<el-table-column prop="permission" label="部门权限"> |
|
|
|
<el-table-column prop="jwcode" label="精网号" width="120px" /> |
|
|
|
<el-table-column prop="name" label="姓名" width="120px" /> |
|
|
|
<el-table-column prop="area" label="所属地区" width="120px" /> |
|
|
|
<el-table-column prop="store" label="职位" width="120px" /> |
|
|
|
<el-table-column prop="permission" label="部门权限" width="120px"> |
|
|
|
<template #default="scope"> |
|
|
|
<span v-if="scope.row.permission === '1'"> 总部管理员 </span> |
|
|
|
<span v-if="scope.row.permission === '2'"> 分部财务 </span> |
|
|
|
<span v-if="scope.row.permission === '3'"> 分部客服 </span> |
|
|
|
<span v-if="scope.row.permission === '5'"> 分部经理 </span> |
|
|
|
<span v-if="scope.row.permission === '1'">总部管理员</span> |
|
|
|
待补充.................................................................................................. |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="remark" label="备注" /> |
|
|
|
<el-table-column prop="remark" label="备注" width="200px" show-overflow-tooltip /> |
|
|
|
<el-table-column prop="operation" label="操作" width="200px"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-button |
|
|
|
type="warning" |
|
|
|
text |
|
|
|
@click="permissionEditInit(scope.row)" |
|
|
|
:disabled="scope.row.status1 === 0" |
|
|
|
> |
|
|
|
修改权限 |
|
|
|
</el-button> |
|
|
|
<el-popconfirm |
|
|
|
title="确定将此用户删除吗?" |
|
|
|
@confirm="delConfirm" |
|
|
|
> |
|
|
|
<el-button type="warning" @click="editInit(scope.row)" |
|
|
|
:disabled="scope.row.status1 === 0">修改权限</el-button> |
|
|
|
<el-popconfirm title="确定将此用户删除吗?" @confirm="delConfirm"> |
|
|
|
<template #reference> |
|
|
|
<el-button |
|
|
|
type="danger" |
|
|
|
text |
|
|
|
@click="del(scope.row)" |
|
|
|
:disabled="scope.row.status1 === 0" |
|
|
|
> |
|
|
|
删除 |
|
|
|
</el-button> |
|
|
|
<el-button type="danger" @click="del(scope.row)" :disabled="scope.row.status1 === 0">删除</el-button> |
|
|
|
</template> |
|
|
|
<template #actions="{ confirm, cancel }"> |
|
|
|
<el-button size="small" @click="cancel">取消</el-button> |
|
|
|
<el-button type="primary" size="small" @click="confirm"> |
|
|
|
确定 |
|
|
|
</el-button> |
|
|
|
<el-button type="primary" size="small" @click="confirm">确定</el-button> |
|
|
|
</template> |
|
|
|
</el-popconfirm> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="status1" label="状态"> |
|
|
|
<el-table-column prop="status1" label="状态" width="200px"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-switch |
|
|
|
v-model="scope.row.status1" |
|
|
|
:active-value="1" |
|
|
|
:inactive-value="0" |
|
|
|
size="large" |
|
|
|
@change="editStatus(scope.row)" |
|
|
|
style=" |
|
|
|
<el-switch v-model="scope.row.status1" :active-value="1" :inactive-value="0" size="large" |
|
|
|
@change="editStatus(scope.row)" style=" |
|
|
|
--el-switch-on-color: #13ce66; |
|
|
|
--el-switch-off-color: #ff4949; |
|
|
|
" |
|
|
|
active-text="启用" |
|
|
|
inactive-text="禁用" |
|
|
|
inline-prompt |
|
|
|
/> |
|
|
|
--el-switch-off-color: #ff4949;" active-text="启用" inactive-text="禁用" /> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- 分页 --> |
|
|
|
<div class="pagination" style="margin-top: 20px"> |
|
|
|
<el-pagination |
|
|
|
background |
|
|
|
:page-size="getObj.pageSize" |
|
|
|
:page-sizes="[5, 10, 20, 50, 100]" |
|
|
|
layout="total, sizes, prev, pager, next, jumper" |
|
|
|
:total="total" |
|
|
|
@size-change="handlePageSizeChange" |
|
|
|
@current-change="handleCurrentChange" |
|
|
|
></el-pagination> |
|
|
|
<el-pagination background :page-size="getObj.pageSize" :page-sizes="[5, 10, 20, 50, 100]" |
|
|
|
layout="total, sizes, prev, pager, next, jumper" :total="total" @size-change="handlePageSizeChange" |
|
|
|
@current-change="handleCurrentChange"> |
|
|
|
</el-pagination> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<!-- 新增用户权限 --> |
|
|
|
<el-dialog |
|
|
|
v-model="permissionAddVisible" |
|
|
|
title="新增用户权限" |
|
|
|
width="800px" |
|
|
|
:close-on-click-modal="false" |
|
|
|
> |
|
|
|
<el-dialog v-model="addVisible" title="新增用户权限" :close-on-click-modal="false"> |
|
|
|
<template #footer> |
|
|
|
<!-- 居中显示 --> |
|
|
|
|
|
|
|
<el-form |
|
|
|
ref="Ref" |
|
|
|
:rules="rules" |
|
|
|
:model="addAdmin" |
|
|
|
label-width="auto" |
|
|
|
style="max-width: 600px; align-items: center" |
|
|
|
> |
|
|
|
<el-form ref="Ref" :rules="rules" :model="addObj" label-width="auto" style="align-items: center" > |
|
|
|
<el-form-item prop="jwcode" label="精网号:"> |
|
|
|
<el-input |
|
|
|
v-model="addAdmin.jwcode" |
|
|
|
placeholder="请输入精网号" |
|
|
|
style="width: 220px" |
|
|
|
/> |
|
|
|
<el-input v-model="addObj.jwcode" placeholder="请输入精网号" style="width: 220px" /> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item prop="name" label="用户名:"> |
|
|
|
<el-input |
|
|
|
v-model="addAdmin.name" |
|
|
|
placeholder="请输入用户名" |
|
|
|
style="width: 220px" |
|
|
|
/> |
|
|
|
<el-input v-model="addObj.name" placeholder="请输入用户名" style="width: 220px" /> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item prop="area" label="所属地区:"> |
|
|
|
<el-select |
|
|
|
v-model="addAdmin.area" |
|
|
|
placeholder="请选择所属地区" |
|
|
|
style="width: 220px" |
|
|
|
@change="() => Ref.value.validateField('area')" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in areaList" |
|
|
|
:key="item" |
|
|
|
:label="item" |
|
|
|
:value="item" |
|
|
|
></el-option> |
|
|
|
<el-select v-model="addObj.area" placeholder="请选择所属地区" style="width: 220px" |
|
|
|
@change="() => Ref.value.validateField('area')"> |
|
|
|
<el-option v-for="item in areaList" :key="item" :label="item" :value="item"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="permission" label="权限类别:"> |
|
|
|
<el-select |
|
|
|
v-model="addAdmin.permission" |
|
|
|
placeholder="请选择权限" |
|
|
|
style="width: 220px" |
|
|
|
@change="() => Ref.value.validateField('permission')" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in permissionList" |
|
|
|
:key="item.value" |
|
|
|
:label="item.label" |
|
|
|
:value="item.value" |
|
|
|
></el-option> |
|
|
|
<el-select v-model="addObj.permission" placeholder="请选择权限" style="width: 220px" |
|
|
|
@change="() => Ref.value.validateField('permission')"> |
|
|
|
<el-option v-for="item in list" :key="item.value" :label="item.label" :value="item.value"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="store" label="职位:"> |
|
|
|
<el-input |
|
|
|
v-model="addAdmin.store" |
|
|
|
placeholder="请输入职称" |
|
|
|
style="width: 220px" |
|
|
|
/> |
|
|
|
<el-input v-model="addObj.store" placeholder="请输入职称" style="width: 220px" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="machineId" label="机器码:"> |
|
|
|
<el-input |
|
|
|
v-model="addAdmin.machineId" |
|
|
|
placeholder="请输入机器码" |
|
|
|
style="width: 220px" |
|
|
|
/> |
|
|
|
<el-input v-model="addObj.machineId" placeholder="请输入机器码" style="width: 220px" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item prop="remark" label="备注"> |
|
|
|
<el-input |
|
|
|
v-model="addAdmin.remark" |
|
|
|
style="width: 300px" |
|
|
|
:rows="2" |
|
|
|
maxlength="100" |
|
|
|
show-word-limit |
|
|
|
type="textarea" |
|
|
|
/> |
|
|
|
<el-input v-model="addObj.remark" style="width: 300px" :rows="2" maxlength="100" show-word-limit |
|
|
|
type="textarea" /> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
|
|
|
|
<div> |
|
|
|
<el-button @click="closePermissionAddVisible()">取消</el-button> |
|
|
|
<el-button @click="closeaddVisible()">取消</el-button> |
|
|
|
<el-button type="primary" @click="throttledPermissionAdd()"> |
|
|
|
提交 |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
<!-- 这是新增用户权限弹窗 |
|
|
|
<el-dialog |
|
|
|
v-model="permissionAddVisible" |
|
|
|
title="新增用户权限" |
|
|
|
width="800px" |
|
|
|
:close-on-click-modal="false" |
|
|
|
> |
|
|
|
<div style="display: flex; margin: 20px 0px 20px 0px"> |
|
|
|
<span class="permissionVisible" style="margin-right: 10px">精网号:</span> |
|
|
|
<el-input |
|
|
|
placeholder="请输入精网号" |
|
|
|
v-model="permissionAddObj.jwcode" |
|
|
|
style="width: 240px; margin-right: 10px" |
|
|
|
clearable |
|
|
|
></el-input> |
|
|
|
<el-button type="primary" @click="getAdminByJwcodeWithoutPermission()" |
|
|
|
>查询</el-button |
|
|
|
> |
|
|
|
</div> |
|
|
|
|
|
|
|
<el-descriptions |
|
|
|
class="margin-top" |
|
|
|
:column="2" |
|
|
|
:size="size" |
|
|
|
border |
|
|
|
label-width="200px" |
|
|
|
> |
|
|
|
<el-descriptions-item> |
|
|
|
<template #label> |
|
|
|
<div class="permissionVisible"> |
|
|
|
<el-icon> |
|
|
|
<UserFilled /> |
|
|
|
</el-icon> |
|
|
|
员工精网号 |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
{{ permissionAddObj.jwcode }} |
|
|
|
</el-descriptions-item> |
|
|
|
<el-descriptions-item> |
|
|
|
<template #label> |
|
|
|
<div class="permissionVisible"> |
|
|
|
<el-icon> |
|
|
|
<User /> |
|
|
|
</el-icon> |
|
|
|
员工姓名 |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
{{ permissionAddObj.name }} |
|
|
|
</el-descriptions-item> |
|
|
|
<el-descriptions-item> |
|
|
|
<template #label> |
|
|
|
<div class="permissionVisible"> |
|
|
|
<el-icon :style="iconStyle"> |
|
|
|
<location /> |
|
|
|
</el-icon> |
|
|
|
所属地区 |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
{{ permissionAddObj.area }} |
|
|
|
</el-descriptions-item> |
|
|
|
<el-descriptions-item> |
|
|
|
<template #label> |
|
|
|
<div class="permissionVisible"> |
|
|
|
<el-icon> |
|
|
|
<OfficeBuilding /> |
|
|
|
</el-icon> |
|
|
|
部门 |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
{{ permissionAddObj.store }} |
|
|
|
</el-descriptions-item> |
|
|
|
</el-descriptions> |
|
|
|
|
|
|
|
<el-divider> |
|
|
|
<el-icon><star-filled /></el-icon> |
|
|
|
</el-divider> |
|
|
|
<div> |
|
|
|
<span class="permissionVisible" style="margin-right: 20px" |
|
|
|
>权限设置:</span |
|
|
|
> |
|
|
|
<el-radio-group v-model="permissionAddObj.permission"> |
|
|
|
<el-radio value="1" border>总部管理员</el-radio> |
|
|
|
<el-radio value="5" border>分部经理</el-radio> |
|
|
|
<el-radio value="2" border>分部财务</el-radio> |
|
|
|
<el-radio value="3" border>分部客服</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</div> |
|
|
|
<template #footer> |
|
|
|
<div> |
|
|
|
<el-button @click="closePermissionAddVisible()">取消</el-button> |
|
|
|
<el-button type="primary" @click="throttledPermissionAdd()"> |
|
|
|
提交 |
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-dialog> --> |
|
|
|
|
|
|
|
<!-- 这是编辑用户权限弹窗 --> |
|
|
|
<el-dialog |
|
|
|
v-model="permissionEditVisible" |
|
|
|
title="编辑用户权限" |
|
|
|
width="800px" |
|
|
|
:close-on-click-modal="false" |
|
|
|
> |
|
|
|
<el-descriptions |
|
|
|
class="margin-top" |
|
|
|
:column="2" |
|
|
|
:size="size" |
|
|
|
border |
|
|
|
label-width="200px" |
|
|
|
> |
|
|
|
<el-dialog v-model="editVisible" title="编辑用户权限" width="800px" :close-on-click-modal="false"> |
|
|
|
<el-descriptions :column="2" :size="size" border label-width="200px"> |
|
|
|
<el-descriptions-item> |
|
|
|
<template #label> |
|
|
|
<div class="permissionVisible"> |
|
|
|
<el-icon> |
|
|
|
<UserFilled /> |
|
|
|
</el-icon> |
|
|
|
<el-icon><UserFilled /></el-icon> |
|
|
|
员工精网号 |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
{{ permissionEditObj.jwcode }} |
|
|
|
{{ editObj.jwcode }} |
|
|
|
</el-descriptions-item> |
|
|
|
<el-descriptions-item> |
|
|
|
<template #label> |
|
|
|
<div class="permissionVisible"> |
|
|
|
<el-icon> |
|
|
|
<User /> |
|
|
|
</el-icon> |
|
|
|
<el-icon><User /></el-icon> |
|
|
|
员工姓名 |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
{{ permissionEditObj.name }} |
|
|
|
{{ editObj.name }} |
|
|
|
</el-descriptions-item> |
|
|
|
<el-descriptions-item> |
|
|
|
<template #label> |
|
|
|
<div class="permissionVisible"> |
|
|
|
<el-icon :style="iconStyle"> |
|
|
|
<location /> |
|
|
|
</el-icon> |
|
|
|
<el-icon><location /></el-icon> |
|
|
|
所属地区 |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
{{ permissionEditObj.area }} |
|
|
|
{{ editObj.area }} |
|
|
|
</el-descriptions-item> |
|
|
|
<el-descriptions-item> |
|
|
|
<template #label> |
|
|
|
<div class="permissionVisible"> |
|
|
|
<el-icon> |
|
|
|
<OfficeBuilding /> |
|
|
|
</el-icon> |
|
|
|
<el-icon><OfficeBuilding /></el-icon> |
|
|
|
部门 |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
{{ permissionEditObj.store }} |
|
|
|
{{ editObj.store }} |
|
|
|
</el-descriptions-item> |
|
|
|
</el-descriptions> |
|
|
|
|
|
|
|
<el-divider> |
|
|
|
<el-icon><star-filled /></el-icon> |
|
|
|
</el-divider> |
|
|
|
<div> |
|
|
|
<span class="permissionVisible" style="margin-right: 20px" |
|
|
|
>权限设置:</span |
|
|
|
> |
|
|
|
<el-radio-group v-model="permissionEditObj.permission"> |
|
|
|
<span class="permissionVisible" style="margin-right: 20px">权限设置:</span> |
|
|
|
<el-radio-group v-model="editObj.permission"> |
|
|
|
<el-radio value="1" border>总部管理员</el-radio> |
|
|
|
<el-radio value="5" border>分部经理</el-radio> |
|
|
|
<el-radio value="2" border>分部财务</el-radio> |
|
|
|
<el-radio value="3" border>分部客服</el-radio> |
|
|
|
..............................................................................待补充 |
|
|
|
</el-radio-group> |
|
|
|
</div> |
|
|
|
<template #footer> |
|
|
|
<div> |
|
|
|
<el-button @click="closePermissionEditVisible()">取消</el-button> |
|
|
|
<el-button type="primary" @click="throttledPermissionEdit()"> |
|
|
|
提交 |
|
|
|
</el-button> |
|
|
|
<el-button @click="closeEdit()">取消</el-button> |
|
|
|
<el-button type="primary" @click="throttledPermissionEdit()">提交</el-button> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
</template> |
|
|
|
|
|
|
|
<style scoped> |
|
|
|
|
|
|
|
.permissionVisible { |
|
|
|
font-size: 16px; |
|
|
|
font-weight: bold; |
|
|
@ -878,22 +481,10 @@ const handleCurrentChange = function (val) { |
|
|
|
display: flex; |
|
|
|
} |
|
|
|
|
|
|
|
.status { |
|
|
|
display: flex; |
|
|
|
} |
|
|
|
|
|
|
|
.head-card { |
|
|
|
display: flex; |
|
|
|
} |
|
|
|
|
|
|
|
.head-card-element { |
|
|
|
margin-right: 20px; |
|
|
|
} |
|
|
|
|
|
|
|
.head-card-btn { |
|
|
|
margin-left: auto; |
|
|
|
} |
|
|
|
|
|
|
|
/* 新增样式让弹窗内容居中 */ |
|
|
|
.el-dialog__body { |
|
|
|
display: flex; |
|
|
|