diff --git a/src/components.d.ts b/src/components.d.ts index b39b99c..90f2dde 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -63,6 +63,5 @@ SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] - UploadMultiFiles: typeof import('./components/uploadMultiFiles/uploadMultiFiles.vue')['default'] } } diff --git a/src/components.d.ts b/src/components.d.ts index b39b99c..90f2dde 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -63,6 +63,5 @@ SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] - UploadMultiFiles: typeof import('./components/uploadMultiFiles/uploadMultiFiles.vue')['default'] } } diff --git a/src/views/measure/person/components/addPerson.vue b/src/views/measure/person/components/addPerson.vue index 088cb52..733efc3 100644 --- a/src/views/measure/person/components/addPerson.vue +++ b/src/views/measure/person/components/addPerson.vue @@ -6,7 +6,7 @@ import lodash from 'lodash' import type { technologyJobType } from '../person-interface' import userListDialog from './userListDialog.vue' -import { getUserList } from '@/api/system/user' +import { getUserList, roleAssign } from '@/api/system/user' import { getDeptTreeList } from '@/api/system/dept' import { UploadFile } from '@/api/measure/file' import { toTreeList } from '@/utils/structure' @@ -14,6 +14,7 @@ import { getDictByCode } from '@/api/system/dict' import { getStaffAdd, getStaffDetail, getStaffupdate } from '@/api/measure/person' import { getPhotoUrl } from '@/api/system/tool' +import { getRoleTreeListByUser } from '@/api/system/role' // import showPhoto from '@/views/system/tool/showPhoto.vue' const $route = useRoute() const $router = useRouter() @@ -161,8 +162,11 @@ const selectPerson = () => { userListRef.value.initDialog() } +const userInfoData = ref() // 保存选择人员信息 const confirmPerson = (row: userType) => { + userInfoData.value = row + console.log(row, '选择的人员信息') ruleForm.value.name = row.name ruleForm.value.account = row.account ruleForm.value.deptId = row.deptId @@ -506,10 +510,41 @@ ? getStaffAdd({ ...ruleForm.value, certificateList: changeList.value[0].data, birthday: `${ruleForm.value.idCard.substring(6, 10)}-${ruleForm.value.idCard.substring(10, 12)}-${ruleForm.value.idCard.substring(12, 14)}` }) : getStaffupdate({ ...ruleForm.value, certificateList: changeList.value[0].data, birthday: `${ruleForm.value.idCard.substring(6, 10)}-${ruleForm.value.idCard.substring(10, 12)}-${ruleForm.value.idCard.substring(12, 14)}` })).then((res) => { if (res.code == 200) { - formEl?.resetFields() - ElMessage.success('提交成功') - resetFormData() - $router.go(-1) + // formEl?.resetFields() + // ElMessage.success('提交成功') + // resetFormData() + // $router.go(-1) + // 获取当前用户角色 + getRoleTreeListByUser(userInfoData.value.id).then((res) => { + console.log(res.data, '角色列表') + // 当前用户 角色 id + const roleIds: string[] = [] + // 挑选 计量人员 角色id + let metering = '' + const data = res.data + data.forEach((item: any) => { + // 当前用户角色 + if (item.checked) { + roleIds.push(item.id) + } + // 计量人员角色 + if (item.name === '计量人员') { + metering = item.id + } + }) + // 判断当前用户是否 计量人员角色 + if (roleIds.every(item => item !== metering)) { + roleIds.push(metering) + } + // 设置当前用户角色 + roleAssign(userInfoData.value.id, roleIds).then((res) => { + console.log('分配计量人员角色成功') + formEl?.resetFields() + ElMessage.success('提交成功') + resetFormData() + $router.go(-1) + }) + }) } }) } diff --git a/src/components.d.ts b/src/components.d.ts index b39b99c..90f2dde 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -63,6 +63,5 @@ SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] - UploadMultiFiles: typeof import('./components/uploadMultiFiles/uploadMultiFiles.vue')['default'] } } diff --git a/src/views/measure/person/components/addPerson.vue b/src/views/measure/person/components/addPerson.vue index 088cb52..733efc3 100644 --- a/src/views/measure/person/components/addPerson.vue +++ b/src/views/measure/person/components/addPerson.vue @@ -6,7 +6,7 @@ import lodash from 'lodash' import type { technologyJobType } from '../person-interface' import userListDialog from './userListDialog.vue' -import { getUserList } from '@/api/system/user' +import { getUserList, roleAssign } from '@/api/system/user' import { getDeptTreeList } from '@/api/system/dept' import { UploadFile } from '@/api/measure/file' import { toTreeList } from '@/utils/structure' @@ -14,6 +14,7 @@ import { getDictByCode } from '@/api/system/dict' import { getStaffAdd, getStaffDetail, getStaffupdate } from '@/api/measure/person' import { getPhotoUrl } from '@/api/system/tool' +import { getRoleTreeListByUser } from '@/api/system/role' // import showPhoto from '@/views/system/tool/showPhoto.vue' const $route = useRoute() const $router = useRouter() @@ -161,8 +162,11 @@ const selectPerson = () => { userListRef.value.initDialog() } +const userInfoData = ref() // 保存选择人员信息 const confirmPerson = (row: userType) => { + userInfoData.value = row + console.log(row, '选择的人员信息') ruleForm.value.name = row.name ruleForm.value.account = row.account ruleForm.value.deptId = row.deptId @@ -506,10 +510,41 @@ ? getStaffAdd({ ...ruleForm.value, certificateList: changeList.value[0].data, birthday: `${ruleForm.value.idCard.substring(6, 10)}-${ruleForm.value.idCard.substring(10, 12)}-${ruleForm.value.idCard.substring(12, 14)}` }) : getStaffupdate({ ...ruleForm.value, certificateList: changeList.value[0].data, birthday: `${ruleForm.value.idCard.substring(6, 10)}-${ruleForm.value.idCard.substring(10, 12)}-${ruleForm.value.idCard.substring(12, 14)}` })).then((res) => { if (res.code == 200) { - formEl?.resetFields() - ElMessage.success('提交成功') - resetFormData() - $router.go(-1) + // formEl?.resetFields() + // ElMessage.success('提交成功') + // resetFormData() + // $router.go(-1) + // 获取当前用户角色 + getRoleTreeListByUser(userInfoData.value.id).then((res) => { + console.log(res.data, '角色列表') + // 当前用户 角色 id + const roleIds: string[] = [] + // 挑选 计量人员 角色id + let metering = '' + const data = res.data + data.forEach((item: any) => { + // 当前用户角色 + if (item.checked) { + roleIds.push(item.id) + } + // 计量人员角色 + if (item.name === '计量人员') { + metering = item.id + } + }) + // 判断当前用户是否 计量人员角色 + if (roleIds.every(item => item !== metering)) { + roleIds.push(metering) + } + // 设置当前用户角色 + roleAssign(userInfoData.value.id, roleIds).then((res) => { + console.log('分配计量人员角色成功') + formEl?.resetFields() + ElMessage.success('提交成功') + resetFormData() + $router.go(-1) + }) + }) } }) } diff --git a/src/views/measure/person/list.vue b/src/views/measure/person/list.vue index 79c8659..ecda4cf 100644 --- a/src/views/measure/person/list.vue +++ b/src/views/measure/person/list.vue @@ -3,6 +3,8 @@ import { ElLoading, ElMessage, ElMessageBox } from 'element-plus' import type { StaffListType, StaffType } from './person-interface' import { exportList, getStaffDelete, getStaffList, uploadList } from '@/api/measure/person' +import { getRoleTreeListByUser } from '@/api/system/role' +import { roleAssign } from '@/api/system/user' // import { uploadApi } from '@/api/system/notice' import { printJSON } from '@/utils/printUtils' import { getDeptTreeList } from '@/api/system/dept' @@ -104,6 +106,8 @@ // 删除 const remove = (row: StaffType) => { + // 当前用户id + const userId = row.userId as string ElMessageBox.confirm( `确认删除${row.name}吗?`, '提示', @@ -116,11 +120,41 @@ .then(() => { getStaffDelete({ id: row.id as string }).then((res) => { if (res.code === 200) { - ElMessage({ - type: 'success', - message: '删除成功', + // ElMessage({ + // type: 'success', + // message: '删除成功', + // }) + // getList() + // 删除用户的 计量人员 角色 + // 获取当前用户角色 + getRoleTreeListByUser(userId).then((res) => { + console.log(res.data, '角色列表') + // 当前用户 角色 id + let roleIds: string[] = [] + // 挑选 计量人员 角色id + let metering = '' + const data = res.data + data.forEach((item: any) => { + // 当前用户角色 + if (item.checked) { + roleIds.push(item.id) + } + // 计量人员角色 + if (item.name === '计量人员') { + metering = item.id + } + }) + roleIds = roleIds.filter(item => item !== metering) + // 设置当前用户角色 + roleAssign(userId, roleIds).then((res) => { + console.log('删除计量人员角色成功') + ElMessage({ + type: 'success', + message: '删除成功', + }) + getList() + }) }) - getList() } }) }) @@ -308,7 +342,7 @@ 详情 - + 删除 diff --git a/src/components.d.ts b/src/components.d.ts index b39b99c..90f2dde 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -63,6 +63,5 @@ SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] - UploadMultiFiles: typeof import('./components/uploadMultiFiles/uploadMultiFiles.vue')['default'] } } diff --git a/src/views/measure/person/components/addPerson.vue b/src/views/measure/person/components/addPerson.vue index 088cb52..733efc3 100644 --- a/src/views/measure/person/components/addPerson.vue +++ b/src/views/measure/person/components/addPerson.vue @@ -6,7 +6,7 @@ import lodash from 'lodash' import type { technologyJobType } from '../person-interface' import userListDialog from './userListDialog.vue' -import { getUserList } from '@/api/system/user' +import { getUserList, roleAssign } from '@/api/system/user' import { getDeptTreeList } from '@/api/system/dept' import { UploadFile } from '@/api/measure/file' import { toTreeList } from '@/utils/structure' @@ -14,6 +14,7 @@ import { getDictByCode } from '@/api/system/dict' import { getStaffAdd, getStaffDetail, getStaffupdate } from '@/api/measure/person' import { getPhotoUrl } from '@/api/system/tool' +import { getRoleTreeListByUser } from '@/api/system/role' // import showPhoto from '@/views/system/tool/showPhoto.vue' const $route = useRoute() const $router = useRouter() @@ -161,8 +162,11 @@ const selectPerson = () => { userListRef.value.initDialog() } +const userInfoData = ref() // 保存选择人员信息 const confirmPerson = (row: userType) => { + userInfoData.value = row + console.log(row, '选择的人员信息') ruleForm.value.name = row.name ruleForm.value.account = row.account ruleForm.value.deptId = row.deptId @@ -506,10 +510,41 @@ ? getStaffAdd({ ...ruleForm.value, certificateList: changeList.value[0].data, birthday: `${ruleForm.value.idCard.substring(6, 10)}-${ruleForm.value.idCard.substring(10, 12)}-${ruleForm.value.idCard.substring(12, 14)}` }) : getStaffupdate({ ...ruleForm.value, certificateList: changeList.value[0].data, birthday: `${ruleForm.value.idCard.substring(6, 10)}-${ruleForm.value.idCard.substring(10, 12)}-${ruleForm.value.idCard.substring(12, 14)}` })).then((res) => { if (res.code == 200) { - formEl?.resetFields() - ElMessage.success('提交成功') - resetFormData() - $router.go(-1) + // formEl?.resetFields() + // ElMessage.success('提交成功') + // resetFormData() + // $router.go(-1) + // 获取当前用户角色 + getRoleTreeListByUser(userInfoData.value.id).then((res) => { + console.log(res.data, '角色列表') + // 当前用户 角色 id + const roleIds: string[] = [] + // 挑选 计量人员 角色id + let metering = '' + const data = res.data + data.forEach((item: any) => { + // 当前用户角色 + if (item.checked) { + roleIds.push(item.id) + } + // 计量人员角色 + if (item.name === '计量人员') { + metering = item.id + } + }) + // 判断当前用户是否 计量人员角色 + if (roleIds.every(item => item !== metering)) { + roleIds.push(metering) + } + // 设置当前用户角色 + roleAssign(userInfoData.value.id, roleIds).then((res) => { + console.log('分配计量人员角色成功') + formEl?.resetFields() + ElMessage.success('提交成功') + resetFormData() + $router.go(-1) + }) + }) } }) } diff --git a/src/views/measure/person/list.vue b/src/views/measure/person/list.vue index 79c8659..ecda4cf 100644 --- a/src/views/measure/person/list.vue +++ b/src/views/measure/person/list.vue @@ -3,6 +3,8 @@ import { ElLoading, ElMessage, ElMessageBox } from 'element-plus' import type { StaffListType, StaffType } from './person-interface' import { exportList, getStaffDelete, getStaffList, uploadList } from '@/api/measure/person' +import { getRoleTreeListByUser } from '@/api/system/role' +import { roleAssign } from '@/api/system/user' // import { uploadApi } from '@/api/system/notice' import { printJSON } from '@/utils/printUtils' import { getDeptTreeList } from '@/api/system/dept' @@ -104,6 +106,8 @@ // 删除 const remove = (row: StaffType) => { + // 当前用户id + const userId = row.userId as string ElMessageBox.confirm( `确认删除${row.name}吗?`, '提示', @@ -116,11 +120,41 @@ .then(() => { getStaffDelete({ id: row.id as string }).then((res) => { if (res.code === 200) { - ElMessage({ - type: 'success', - message: '删除成功', + // ElMessage({ + // type: 'success', + // message: '删除成功', + // }) + // getList() + // 删除用户的 计量人员 角色 + // 获取当前用户角色 + getRoleTreeListByUser(userId).then((res) => { + console.log(res.data, '角色列表') + // 当前用户 角色 id + let roleIds: string[] = [] + // 挑选 计量人员 角色id + let metering = '' + const data = res.data + data.forEach((item: any) => { + // 当前用户角色 + if (item.checked) { + roleIds.push(item.id) + } + // 计量人员角色 + if (item.name === '计量人员') { + metering = item.id + } + }) + roleIds = roleIds.filter(item => item !== metering) + // 设置当前用户角色 + roleAssign(userId, roleIds).then((res) => { + console.log('删除计量人员角色成功') + ElMessage({ + type: 'success', + message: '删除成功', + }) + getList() + }) }) - getList() } }) }) @@ -308,7 +342,7 @@ 详情 - + 删除 diff --git a/src/views/measure/person/person-interface.ts b/src/views/measure/person/person-interface.ts index 1b92963..54caa66 100644 --- a/src/views/measure/person/person-interface.ts +++ b/src/views/measure/person/person-interface.ts @@ -1,4 +1,4 @@ -// 计量人员列表查询参数类型 +// 计量人员列表查询参数类型string export interface StaffListType { staffNo: string // 人员编号 name: string // 姓名 @@ -14,6 +14,7 @@ } // 计量人员类型 export interface StaffType { + userId?: string account: string administrationJob: string birthday: string diff --git a/src/components.d.ts b/src/components.d.ts index b39b99c..90f2dde 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -63,6 +63,5 @@ SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] - UploadMultiFiles: typeof import('./components/uploadMultiFiles/uploadMultiFiles.vue')['default'] } } diff --git a/src/views/measure/person/components/addPerson.vue b/src/views/measure/person/components/addPerson.vue index 088cb52..733efc3 100644 --- a/src/views/measure/person/components/addPerson.vue +++ b/src/views/measure/person/components/addPerson.vue @@ -6,7 +6,7 @@ import lodash from 'lodash' import type { technologyJobType } from '../person-interface' import userListDialog from './userListDialog.vue' -import { getUserList } from '@/api/system/user' +import { getUserList, roleAssign } from '@/api/system/user' import { getDeptTreeList } from '@/api/system/dept' import { UploadFile } from '@/api/measure/file' import { toTreeList } from '@/utils/structure' @@ -14,6 +14,7 @@ import { getDictByCode } from '@/api/system/dict' import { getStaffAdd, getStaffDetail, getStaffupdate } from '@/api/measure/person' import { getPhotoUrl } from '@/api/system/tool' +import { getRoleTreeListByUser } from '@/api/system/role' // import showPhoto from '@/views/system/tool/showPhoto.vue' const $route = useRoute() const $router = useRouter() @@ -161,8 +162,11 @@ const selectPerson = () => { userListRef.value.initDialog() } +const userInfoData = ref() // 保存选择人员信息 const confirmPerson = (row: userType) => { + userInfoData.value = row + console.log(row, '选择的人员信息') ruleForm.value.name = row.name ruleForm.value.account = row.account ruleForm.value.deptId = row.deptId @@ -506,10 +510,41 @@ ? getStaffAdd({ ...ruleForm.value, certificateList: changeList.value[0].data, birthday: `${ruleForm.value.idCard.substring(6, 10)}-${ruleForm.value.idCard.substring(10, 12)}-${ruleForm.value.idCard.substring(12, 14)}` }) : getStaffupdate({ ...ruleForm.value, certificateList: changeList.value[0].data, birthday: `${ruleForm.value.idCard.substring(6, 10)}-${ruleForm.value.idCard.substring(10, 12)}-${ruleForm.value.idCard.substring(12, 14)}` })).then((res) => { if (res.code == 200) { - formEl?.resetFields() - ElMessage.success('提交成功') - resetFormData() - $router.go(-1) + // formEl?.resetFields() + // ElMessage.success('提交成功') + // resetFormData() + // $router.go(-1) + // 获取当前用户角色 + getRoleTreeListByUser(userInfoData.value.id).then((res) => { + console.log(res.data, '角色列表') + // 当前用户 角色 id + const roleIds: string[] = [] + // 挑选 计量人员 角色id + let metering = '' + const data = res.data + data.forEach((item: any) => { + // 当前用户角色 + if (item.checked) { + roleIds.push(item.id) + } + // 计量人员角色 + if (item.name === '计量人员') { + metering = item.id + } + }) + // 判断当前用户是否 计量人员角色 + if (roleIds.every(item => item !== metering)) { + roleIds.push(metering) + } + // 设置当前用户角色 + roleAssign(userInfoData.value.id, roleIds).then((res) => { + console.log('分配计量人员角色成功') + formEl?.resetFields() + ElMessage.success('提交成功') + resetFormData() + $router.go(-1) + }) + }) } }) } diff --git a/src/views/measure/person/list.vue b/src/views/measure/person/list.vue index 79c8659..ecda4cf 100644 --- a/src/views/measure/person/list.vue +++ b/src/views/measure/person/list.vue @@ -3,6 +3,8 @@ import { ElLoading, ElMessage, ElMessageBox } from 'element-plus' import type { StaffListType, StaffType } from './person-interface' import { exportList, getStaffDelete, getStaffList, uploadList } from '@/api/measure/person' +import { getRoleTreeListByUser } from '@/api/system/role' +import { roleAssign } from '@/api/system/user' // import { uploadApi } from '@/api/system/notice' import { printJSON } from '@/utils/printUtils' import { getDeptTreeList } from '@/api/system/dept' @@ -104,6 +106,8 @@ // 删除 const remove = (row: StaffType) => { + // 当前用户id + const userId = row.userId as string ElMessageBox.confirm( `确认删除${row.name}吗?`, '提示', @@ -116,11 +120,41 @@ .then(() => { getStaffDelete({ id: row.id as string }).then((res) => { if (res.code === 200) { - ElMessage({ - type: 'success', - message: '删除成功', + // ElMessage({ + // type: 'success', + // message: '删除成功', + // }) + // getList() + // 删除用户的 计量人员 角色 + // 获取当前用户角色 + getRoleTreeListByUser(userId).then((res) => { + console.log(res.data, '角色列表') + // 当前用户 角色 id + let roleIds: string[] = [] + // 挑选 计量人员 角色id + let metering = '' + const data = res.data + data.forEach((item: any) => { + // 当前用户角色 + if (item.checked) { + roleIds.push(item.id) + } + // 计量人员角色 + if (item.name === '计量人员') { + metering = item.id + } + }) + roleIds = roleIds.filter(item => item !== metering) + // 设置当前用户角色 + roleAssign(userId, roleIds).then((res) => { + console.log('删除计量人员角色成功') + ElMessage({ + type: 'success', + message: '删除成功', + }) + getList() + }) }) - getList() } }) }) @@ -308,7 +342,7 @@ 详情 - + 删除 diff --git a/src/views/measure/person/person-interface.ts b/src/views/measure/person/person-interface.ts index 1b92963..54caa66 100644 --- a/src/views/measure/person/person-interface.ts +++ b/src/views/measure/person/person-interface.ts @@ -1,4 +1,4 @@ -// 计量人员列表查询参数类型 +// 计量人员列表查询参数类型string export interface StaffListType { staffNo: string // 人员编号 name: string // 姓名 @@ -14,6 +14,7 @@ } // 计量人员类型 export interface StaffType { + userId?: string account: string administrationJob: string birthday: string diff --git a/src/views/system/user/roleAssignment.vue b/src/views/system/user/roleAssignment.vue index be67b63..f262b91 100644 --- a/src/views/system/user/roleAssignment.vue +++ b/src/views/system/user/roleAssignment.vue @@ -32,6 +32,8 @@ // 获取角色列表 const fetchRoleTree = () => { getRoleTreeListByUser(userId.value).then((response) => { + // 过滤掉计量人员角色 + response.data = response.data.filter((item: any) => item.name !== '计量人员') if (response.data) { roleTreeList.value = toTreeList(response.data) // 获取展开项和选中项 diff --git a/src/components.d.ts b/src/components.d.ts index b39b99c..90f2dde 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -63,6 +63,5 @@ SystemInfo: typeof import('./components/SystemInfo/index.vue')['default'] TableContainer: typeof import('./components/TableContainer/index.vue')['default'] Trend: typeof import('./components/Trend/index.vue')['default'] - UploadMultiFiles: typeof import('./components/uploadMultiFiles/uploadMultiFiles.vue')['default'] } } diff --git a/src/views/measure/person/components/addPerson.vue b/src/views/measure/person/components/addPerson.vue index 088cb52..733efc3 100644 --- a/src/views/measure/person/components/addPerson.vue +++ b/src/views/measure/person/components/addPerson.vue @@ -6,7 +6,7 @@ import lodash from 'lodash' import type { technologyJobType } from '../person-interface' import userListDialog from './userListDialog.vue' -import { getUserList } from '@/api/system/user' +import { getUserList, roleAssign } from '@/api/system/user' import { getDeptTreeList } from '@/api/system/dept' import { UploadFile } from '@/api/measure/file' import { toTreeList } from '@/utils/structure' @@ -14,6 +14,7 @@ import { getDictByCode } from '@/api/system/dict' import { getStaffAdd, getStaffDetail, getStaffupdate } from '@/api/measure/person' import { getPhotoUrl } from '@/api/system/tool' +import { getRoleTreeListByUser } from '@/api/system/role' // import showPhoto from '@/views/system/tool/showPhoto.vue' const $route = useRoute() const $router = useRouter() @@ -161,8 +162,11 @@ const selectPerson = () => { userListRef.value.initDialog() } +const userInfoData = ref() // 保存选择人员信息 const confirmPerson = (row: userType) => { + userInfoData.value = row + console.log(row, '选择的人员信息') ruleForm.value.name = row.name ruleForm.value.account = row.account ruleForm.value.deptId = row.deptId @@ -506,10 +510,41 @@ ? getStaffAdd({ ...ruleForm.value, certificateList: changeList.value[0].data, birthday: `${ruleForm.value.idCard.substring(6, 10)}-${ruleForm.value.idCard.substring(10, 12)}-${ruleForm.value.idCard.substring(12, 14)}` }) : getStaffupdate({ ...ruleForm.value, certificateList: changeList.value[0].data, birthday: `${ruleForm.value.idCard.substring(6, 10)}-${ruleForm.value.idCard.substring(10, 12)}-${ruleForm.value.idCard.substring(12, 14)}` })).then((res) => { if (res.code == 200) { - formEl?.resetFields() - ElMessage.success('提交成功') - resetFormData() - $router.go(-1) + // formEl?.resetFields() + // ElMessage.success('提交成功') + // resetFormData() + // $router.go(-1) + // 获取当前用户角色 + getRoleTreeListByUser(userInfoData.value.id).then((res) => { + console.log(res.data, '角色列表') + // 当前用户 角色 id + const roleIds: string[] = [] + // 挑选 计量人员 角色id + let metering = '' + const data = res.data + data.forEach((item: any) => { + // 当前用户角色 + if (item.checked) { + roleIds.push(item.id) + } + // 计量人员角色 + if (item.name === '计量人员') { + metering = item.id + } + }) + // 判断当前用户是否 计量人员角色 + if (roleIds.every(item => item !== metering)) { + roleIds.push(metering) + } + // 设置当前用户角色 + roleAssign(userInfoData.value.id, roleIds).then((res) => { + console.log('分配计量人员角色成功') + formEl?.resetFields() + ElMessage.success('提交成功') + resetFormData() + $router.go(-1) + }) + }) } }) } diff --git a/src/views/measure/person/list.vue b/src/views/measure/person/list.vue index 79c8659..ecda4cf 100644 --- a/src/views/measure/person/list.vue +++ b/src/views/measure/person/list.vue @@ -3,6 +3,8 @@ import { ElLoading, ElMessage, ElMessageBox } from 'element-plus' import type { StaffListType, StaffType } from './person-interface' import { exportList, getStaffDelete, getStaffList, uploadList } from '@/api/measure/person' +import { getRoleTreeListByUser } from '@/api/system/role' +import { roleAssign } from '@/api/system/user' // import { uploadApi } from '@/api/system/notice' import { printJSON } from '@/utils/printUtils' import { getDeptTreeList } from '@/api/system/dept' @@ -104,6 +106,8 @@ // 删除 const remove = (row: StaffType) => { + // 当前用户id + const userId = row.userId as string ElMessageBox.confirm( `确认删除${row.name}吗?`, '提示', @@ -116,11 +120,41 @@ .then(() => { getStaffDelete({ id: row.id as string }).then((res) => { if (res.code === 200) { - ElMessage({ - type: 'success', - message: '删除成功', + // ElMessage({ + // type: 'success', + // message: '删除成功', + // }) + // getList() + // 删除用户的 计量人员 角色 + // 获取当前用户角色 + getRoleTreeListByUser(userId).then((res) => { + console.log(res.data, '角色列表') + // 当前用户 角色 id + let roleIds: string[] = [] + // 挑选 计量人员 角色id + let metering = '' + const data = res.data + data.forEach((item: any) => { + // 当前用户角色 + if (item.checked) { + roleIds.push(item.id) + } + // 计量人员角色 + if (item.name === '计量人员') { + metering = item.id + } + }) + roleIds = roleIds.filter(item => item !== metering) + // 设置当前用户角色 + roleAssign(userId, roleIds).then((res) => { + console.log('删除计量人员角色成功') + ElMessage({ + type: 'success', + message: '删除成功', + }) + getList() + }) }) - getList() } }) }) @@ -308,7 +342,7 @@ 详情 - + 删除 diff --git a/src/views/measure/person/person-interface.ts b/src/views/measure/person/person-interface.ts index 1b92963..54caa66 100644 --- a/src/views/measure/person/person-interface.ts +++ b/src/views/measure/person/person-interface.ts @@ -1,4 +1,4 @@ -// 计量人员列表查询参数类型 +// 计量人员列表查询参数类型string export interface StaffListType { staffNo: string // 人员编号 name: string // 姓名 @@ -14,6 +14,7 @@ } // 计量人员类型 export interface StaffType { + userId?: string account: string administrationJob: string birthday: string diff --git a/src/views/system/user/roleAssignment.vue b/src/views/system/user/roleAssignment.vue index be67b63..f262b91 100644 --- a/src/views/system/user/roleAssignment.vue +++ b/src/views/system/user/roleAssignment.vue @@ -32,6 +32,8 @@ // 获取角色列表 const fetchRoleTree = () => { getRoleTreeListByUser(userId.value).then((response) => { + // 过滤掉计量人员角色 + response.data = response.data.filter((item: any) => item.name !== '计量人员') if (response.data) { roleTreeList.value = toTreeList(response.data) // 获取展开项和选中项 diff --git a/src/views/system/user/userAdd.vue b/src/views/system/user/userAdd.vue index 2e314c9..5387580 100644 --- a/src/views/system/user/userAdd.vue +++ b/src/views/system/user/userAdd.vue @@ -78,6 +78,8 @@ // 加载角色树形下拉菜单 const fetchRoleTree = () => { getRoleTreeList().then((res) => { + // 过滤掉计量人员角色 + res.data.list = res.data.list.filter((item: any) => item.name !== '计量人员') if (res.data.list) { // 将列表转树结构 roleTreeList.value = toTreeList(res.data.list, '0', true) }