feat:部门权限

This commit is contained in:
dzc committed 2025-06-23 15:42:04 +08:00
1 parent cff707f9af
commit d4220f7161
3 files changed
+30 -20

No files matched your search

+8
View File
@@ -8,6 +8,14 @@ export const deptTree = (params?: Object) => {
})
}
export const deptTreeSelect = (params?: Object) => {
return request({
url: "/admin/dept/tree-select",
method: "get",
params,
})
}
export const addObj = (obj: Object) => {
return request({
url: "/admin/dept",
+14 -15
View File
@@ -1,30 +1,28 @@
<template>
<el-tree-select
v-model="selectId"
:data="deptOptions"
:props="{ value: 'id', label: 'name', children: 'children' }"
class="w100"
filterable
clearable
check-strictly
:render-after-expand="false"
:placeholder="placeholder"
@change="handleChange"
/>
<el-tree-select v-model="selectId" :data="deptOptions" :props="{ value: 'id', label: 'name', children: 'children' }"
class="w100" filterable clearable check-strictly :render-after-expand="false" :placeholder="placeholder"
@change="handleChange" />
</template>
<script setup lang="ts" name="SelectDept">
import { ref, onMounted } from "vue"
import { deptTree } from "/@/api/admin/dept"
import { deptTree, deptTreeSelect } from "/@/api/admin/dept"
import { useMessage } from "/@/hooks/message"
const selectId = defineModel()
defineProps({
const props = defineProps({
placeholder: {
type: String,
default: "请选择部门",
},
/**
* "all" | "scope"
*/
dataScope: {
type: String,
default: "scope",
}
})
const emit = defineEmits(["update:modelValue", "change"])
@@ -34,13 +32,14 @@ const deptOptions = ref<any[]>([])
// 加载部门树数据
const loadDeptTree = async () => {
try {
const res = await deptTree()
const res: any = props.dataScope == "scope" ? await deptTree() : await deptTreeSelect()
if (res.code == 0) {
deptOptions.value = res.data || []
} else {
useMessage().error(res.msg || "获取部门数据失败")
}
} catch (error: any) {
console.error(error);
useMessage().error(error.msg || "获取部门数据失败")
}
}
@@ -1,10 +1,12 @@
<template>
<el-dialog :title="form.id ? '编辑' : '新增'" width="40%" v-model="visible" :close-on-click-modal="false" draggable>
<el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="90px" v-loading="loading">
<el-form ref="dataFormRef" :model="form" :rules="dataRules" formDialogRef label-width="90px"
v-loading="loading">
<el-row :gutter="24">
<el-col :span="24" class="mb20">
<el-form-item label="调动用户" prop="userId">
<select-user v-model="form.userId" @change="(v: any) => { form.sourceDeptId = v?.deptId ?? null}" />
<select-user v-model="form.userId"
@change="(v: any) => { form.sourceDeptId = v?.deptId ?? null }" />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
@@ -19,12 +21,13 @@
</el-col>
<el-col :span="24" class="mb20" v-if="form.bizType == '30'">
<el-form-item label="目标部门" prop="targetDeptId">
<select-dept v-model="form.targetDeptId" clearable />
<select-dept v-model="form.targetDeptId" dataScope="all" clearable />
</el-form-item>
</el-col>
<el-col :span="24" class="mb20">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" type="textarea" :autosize="{ minRows: 6 }" />
<el-input v-model="form.remark" placeholder="请输入备注" type="textarea"
:autosize="{ minRows: 6 }" />
</el-form-item>
</el-col>
</el-row>
@@ -94,7 +97,7 @@ const openDialog = (id: string) => {
// 提交
const onSubmit = async () => {
const valid = await dataFormRef.value.validate().catch(() => {})
const valid = await dataFormRef.value.validate().catch(() => { })
if (!valid) return false
try {