设置父用户

This commit is contained in:
zhonghua.li
2026-04-26 11:52:04 +08:00
parent 1b03bcae4c
commit 3890552611
2 changed files with 58 additions and 4 deletions

View File

@@ -30,3 +30,11 @@ export function deleteLbDepartmentUser(id) {
method: 'delete' method: 'delete'
}) })
} }
export function bindLbDepartmentUserParent(params) {
return request({
url: '/lbDepartmentUser/bindParentUser',
method: 'post',
params
})
}

View File

@@ -186,7 +186,7 @@
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<span class="selected-tip">已选 {{ parentSelectedRows.length }} </span> <span class="selected-tip">已选 {{ parentSelectedRows.length }} </span>
<el-button @click="parentDialogVisible = false">关闭</el-button> <el-button @click="parentDialogVisible = false">关闭</el-button>
<el-button type="primary" @click="confirmParentSelection">确定</el-button> <el-button type="primary" :loading="parentBindLoading" @click="confirmParentSelection">确定</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
@@ -195,6 +195,7 @@
<script> <script>
import { import {
addLbDepartmentUser, addLbDepartmentUser,
bindLbDepartmentUserParent,
deleteLbDepartmentUser, deleteLbDepartmentUser,
getLbDepartmentUserList, getLbDepartmentUserList,
updateLbDepartmentUser updateLbDepartmentUser
@@ -206,6 +207,7 @@ export default {
return { return {
loading: false, loading: false,
submitLoading: false, submitLoading: false,
parentBindLoading: false,
list: [], list: [],
total: 0, total: 0,
dialogVisible: false, dialogVisible: false,
@@ -217,6 +219,7 @@ export default {
parentList: [], parentList: [],
parentTotal: 0, parentTotal: 0,
parentSelectedRows: [], parentSelectedRows: [],
lastSelectedParentRow: null,
queryParams: { queryParams: {
current: 1, current: 1,
size: 10, size: 10,
@@ -419,7 +422,18 @@ export default {
return params return params
}, },
handleParentSelectionChange(selection) { handleParentSelectionChange(selection) {
this.parentSelectedRows = selection if (!selection.length) {
this.parentSelectedRows = []
this.lastSelectedParentRow = null
return
}
const latestSelected = selection[selection.length - 1]
if (selection.length > 1 && this.$refs.parentTable) {
this.$refs.parentTable.clearSelection()
this.$refs.parentTable.toggleRowSelection(latestSelected, true)
}
this.parentSelectedRows = [latestSelected]
this.lastSelectedParentRow = latestSelected
}, },
handleParentQuery() { handleParentQuery() {
this.parentQueryParams.current = 1 this.parentQueryParams.current = 1
@@ -451,13 +465,45 @@ export default {
this.$message.warning('请先勾选上级人员') this.$message.warning('请先勾选上级人员')
return return
} }
this.$message.success(`已勾选 ${this.parentSelectedRows.length} 位人员`) if (this.parentSelectedRows.length > 1) {
this.$message.warning('一次只能选择 1 位上级人员')
return
}
if (!this.currentParentTarget || !this.currentParentTarget.userId) {
this.$message.error('未获取到当前子用户信息,请重新打开弹框后重试')
return
}
const selectedParent = this.parentSelectedRows[0]
if (!selectedParent || !selectedParent.userId) {
this.$message.error('未获取到上级用户ID请重新选择')
return
}
const tenantId = this.currentParentTarget.tenantId || selectedParent.tenantId || ''
if (!tenantId) {
this.$message.error('未获取到租户ID无法绑定')
return
}
this.parentBindLoading = true
bindLbDepartmentUserParent({
parentUserId: selectedParent.userId,
parentUserName: selectedParent.name || undefined,
childUserId: this.currentParentTarget.userId,
childUserName: this.currentParentTarget.name || undefined,
tenantId
}).then((res) => {
this.$message.success((res && res.message) || '绑定上级成功')
this.parentDialogVisible = false this.parentDialogVisible = false
this.fetchList()
}).finally(() => {
this.parentBindLoading = false
})
}, },
resetParentDialog() { resetParentDialog() {
this.parentList = [] this.parentList = []
this.parentTotal = 0 this.parentTotal = 0
this.parentSelectedRows = [] this.parentSelectedRows = []
this.lastSelectedParentRow = null
this.parentBindLoading = false
this.currentParentTarget = null this.currentParentTarget = null
this.parentQueryParams = { this.parentQueryParams = {
current: 1, current: 1,