mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 10:18:42 +08:00 
			
		
		
		
	perf: dept
This commit is contained in:
		| @@ -1,9 +1,12 @@ | ||||
| export type DeptVO = { | ||||
|   id: number | ||||
|   name: string | ||||
|   status: number | ||||
|   parentId: number | ||||
|   createTime: string | ||||
|   status: number | ||||
|   sort: number | ||||
|   leaderUserId: number | ||||
|   phone: string | ||||
|   email: string | ||||
| } | ||||
|  | ||||
| export type DeptListReqVO = { | ||||
|   | ||||
| @@ -17,7 +17,7 @@ export const modelSchema = reactive<FormSchema[]>([ | ||||
|   }, | ||||
|   { | ||||
|     label: '负责人', | ||||
|     field: 'email', | ||||
|     field: 'leaderUserId', | ||||
|     component: 'Input' | ||||
|   }, | ||||
|   { | ||||
| @@ -33,7 +33,7 @@ export const modelSchema = reactive<FormSchema[]>([ | ||||
|   { | ||||
|     label: '显示排序', | ||||
|     field: 'sort', | ||||
|     component: 'Input' | ||||
|     component: 'InputNumber' | ||||
|   }, | ||||
|   { | ||||
|     label: '状态', | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| <script setup lang="ts"> | ||||
| import { useI18n } from '@/hooks/web/useI18n' | ||||
| import { ElInput, ElCard, ElTree, ElTreeSelect } from 'element-plus' | ||||
| import { ElInput, ElCard, ElTree, ElTreeSelect, ElSelect, ElOption } from 'element-plus' | ||||
| import { handleTree } from '@/utils/tree' | ||||
| import { onMounted, ref, unref, watch } from 'vue' | ||||
| import * as DeptApi from '@/api/system/dept' | ||||
| @@ -8,6 +8,7 @@ import { Form, FormExpose } from '@/components/Form' | ||||
| import { modelSchema } from './dept.data' | ||||
| import { DeptVO } from '@/api/system/dept/types' | ||||
| import { useMessage } from '@/hooks/web/useMessage' | ||||
| import { getListSimpleUsersApi } from '@/api/system/user' | ||||
| const message = useMessage() | ||||
| interface Tree { | ||||
|   id: number | ||||
| @@ -34,7 +35,7 @@ const filterText = ref('') | ||||
| const deptOptions = ref() // 树形结构 | ||||
| const treeRef = ref<InstanceType<typeof ElTree>>() | ||||
| const getTree = async () => { | ||||
|   const res = await DeptApi.getDeptPageApi(null) | ||||
|   const res = await DeptApi.listSimpleDeptApi() | ||||
|   deptOptions.value = handleTree(res) | ||||
| } | ||||
| const filterNode = (value: string, data: Tree) => { | ||||
| @@ -44,6 +45,13 @@ const filterNode = (value: string, data: Tree) => { | ||||
| watch(filterText, (val) => { | ||||
|   treeRef.value!.filter(val) | ||||
| }) | ||||
| // 用户列表 | ||||
| const userOption = ref() | ||||
| const leaderUserId = ref() | ||||
| const getUserList = async () => { | ||||
|   const res = await getListSimpleUsersApi() | ||||
|   userOption.value = res | ||||
| } | ||||
| // 新增 | ||||
| const handleAdd = (data: { id: number }) => { | ||||
|   // 重置表单 | ||||
| @@ -54,11 +62,12 @@ const handleAdd = (data: { id: number }) => { | ||||
| } | ||||
| // 编辑 | ||||
| const handleUpdate = async (data: { id: number }) => { | ||||
|   showForm.value = true | ||||
|   const res = await DeptApi.getDeptApi(data.id) | ||||
|   formTitle.value = '修改- ' + res?.name | ||||
|   deptParentId.value = res.parentId | ||||
|   leaderUserId.value = res.leaderUserId | ||||
|   unref(formRef)?.setValues(res) | ||||
|   showForm.value = true | ||||
| } | ||||
| // 删除 | ||||
| const handleDelete = async (data: { id: number }) => { | ||||
| @@ -78,7 +87,7 @@ const submitForm = async () => { | ||||
|   try { | ||||
|     const data = unref(formRef)?.formModel as DeptVO | ||||
|     data.parentId = deptParentId.value | ||||
|     // TODO: 表单提交待完善 | ||||
|     data.leaderUserId = leaderUserId.value | ||||
|     if (formTitle.value.startsWith('新增')) { | ||||
|       await DeptApi.createDeptApi(data) | ||||
|     } else if (formTitle.value.startsWith('修改')) { | ||||
| @@ -92,6 +101,7 @@ const submitForm = async () => { | ||||
| } | ||||
| onMounted(async () => { | ||||
|   await getTree() | ||||
|   await getUserList() | ||||
| }) | ||||
| </script> | ||||
| <template> | ||||
| @@ -159,6 +169,16 @@ onMounted(async () => { | ||||
|               check-strictly | ||||
|             /> | ||||
|           </template> | ||||
|           <template #leaderUserId> | ||||
|             <el-select v-model="leaderUserId"> | ||||
|               <el-option | ||||
|                 v-for="item in userOption" | ||||
|                 :key="parseInt(item.id)" | ||||
|                 :label="item.nickname" | ||||
|                 :value="parseInt(item.id)" | ||||
|               /> | ||||
|             </el-select> | ||||
|           </template> | ||||
|         </Form> | ||||
|         <!-- 操作按钮 --> | ||||
|         <el-button | ||||
|   | ||||
| @@ -9,6 +9,7 @@ import { | ||||
|   ElTreeSelect, | ||||
|   ElSelect, | ||||
|   ElOption, | ||||
|   ElTransfer, | ||||
|   ElForm, | ||||
|   ElFormItem, | ||||
|   ElUpload, | ||||
| @@ -482,7 +483,7 @@ getList() | ||||
|     </template> | ||||
|   </Dialog> | ||||
|   <!-- 分配用户角色 --> | ||||
|   <Dialog v-model="roleDialogVisible" title="分配角色"> | ||||
|   <Dialog v-model="roleDialogVisible" title="分配角色" maxHeight="450px"> | ||||
|     <el-form :model="userRole" label-width="80px"> | ||||
|       <el-form-item label="用户名称"> | ||||
|         <el-input v-model="userRole.username" :disabled="true" /> | ||||
| @@ -491,14 +492,15 @@ getList() | ||||
|         <el-input v-model="userRole.nickname" :disabled="true" /> | ||||
|       </el-form-item> | ||||
|       <el-form-item label="角色"> | ||||
|         <el-select v-model="userRole.roleIds" multiple> | ||||
|           <el-option | ||||
|             v-for="item in roleOptions" | ||||
|             :key="parseInt(item.id)" | ||||
|             :label="item.name" | ||||
|             :value="parseInt(item.id)" | ||||
|           /> | ||||
|         </el-select> | ||||
|         <el-transfer | ||||
|           v-model="userRole.roleIds" | ||||
|           :titles="['角色列表', '已选择']" | ||||
|           :props="{ | ||||
|             key: 'id', | ||||
|             label: 'name' | ||||
|           }" | ||||
|           :data="roleOptions" | ||||
|         /> | ||||
|       </el-form-item> | ||||
|     </el-form> | ||||
|     <!-- 操作按钮 --> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 xingyu
					xingyu