Explorar o código

Merge branch 'ts'

Hixon hai 1 ano
pai
achega
93522eaba8

+ 13 - 1
src/api/system/user/index.ts

@@ -169,6 +169,17 @@ export const updateAuthRole = (data: { userId: string; roleIds: string }) => {
   });
 };
 
+/**
+ * 查询当前部门的所有用户信息
+ * @param deptId
+ */
+export const listUserByDeptId = (deptId: string | number): AxiosPromise<UserVO[]> => {
+  return request({
+    url: "/system/user/list/dept/" + deptId,
+    method: "get"
+  });
+};
+
 /**
  * 查询部门下拉树结构
  */
@@ -193,5 +204,6 @@ export default {
   uploadAvatar,
   getAuthRole,
   updateAuthRole,
-  deptTreeSelect
+  deptTreeSelect,
+  listUserByDeptId
 };

+ 1 - 1
src/components/Editor/index.vue

@@ -50,7 +50,7 @@ const props = defineProps({
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 
 const upload = reactive<UploadOption>({
-  headers: globalHeaders,
+  headers: globalHeaders(),
   url: import.meta.env.VITE_APP_BASE_API + '/resource/oss/upload'
 })
 const myQuillEditor = ref();

+ 1 - 1
src/components/FileUpload/index.vue

@@ -66,7 +66,7 @@ const uploadList = ref<any[]>([]);
 
 const baseUrl = import.meta.env.VITE_APP_BASE_API;
 const uploadFileUrl = ref(baseUrl + "/resource/oss/upload"); // 上传文件服务器地址
-const headers = ref(globalHeaders);
+const headers = ref(globalHeaders());
 
 const fileList = ref<any[]>([]);
 const showTip = computed(

+ 1 - 1
src/components/ImageUpload/index.vue

@@ -70,7 +70,7 @@ const dialogVisible = ref(false);
 
 const baseUrl = import.meta.env.VITE_APP_BASE_API;
 const uploadImgUrl = ref(baseUrl + "/resource/oss/upload"); // 上传的图片服务器地址
-const headers = ref(globalHeaders);
+const headers = ref(globalHeaders());
 
 const fileList = ref<any[]>([]);
 const showTip = computed(

+ 2 - 2
src/plugins/download.ts

@@ -16,7 +16,7 @@ export default {
         method: 'get',
         url: url,
         responseType: 'blob',
-        headers: globalHeaders,
+        headers: globalHeaders(),
       });
       const isBlob = blobValidate(res.data);
       if (isBlob) {
@@ -40,7 +40,7 @@ export default {
         method: 'get',
         url: url,
         responseType: 'blob',
-        headers: globalHeaders,
+        headers: globalHeaders(),
       });
       const isBlob = blobValidate(res.data);
       if (isBlob) {

+ 5 - 3
src/utils/request.ts

@@ -14,9 +14,11 @@ import { encrypt } from '@/utils/jsencrypt';
 let downloadLoadingInstance: LoadingInstance;
 // 是否显示重新登录
 export const isRelogin = { show: false };
-export const globalHeaders = {
-  Authorization: "Bearer " + getToken(),
-  clientid: import.meta.env.VITE_APP_CLIENT_ID
+export const globalHeaders = () => {
+  return {
+    Authorization: "Bearer " + getToken(),
+    clientid: import.meta.env.VITE_APP_CLIENT_ID
+  }
 }
 
 axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8';

+ 18 - 3
src/views/system/dept/index.vue

@@ -97,7 +97,9 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="负责人" prop="leader">
-              <el-input v-model="form.leader" placeholder="请输入负责人" maxlength="20" />
+              <el-select v-model="form.leader" placeholder="请选择负责人">
+                <el-option v-for="item in deptUserList" :key="item.userId" :label="item.userName" :value="item.userId" />
+              </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -114,7 +116,7 @@
             <el-form-item label="部门状态">
               <el-radio-group v-model="form.status">
                 <el-radio v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.value">{{ dict.label
-                }}</el-radio>
+                  }}</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
@@ -133,6 +135,8 @@
 <script setup name="Dept" lang="ts">
 import { listDept, getDept, delDept, addDept, updateDept, listDeptExcludeChild } from "@/api/system/dept"
 import { DeptForm, DeptQuery, DeptVO } from "@/api/system/dept/types";
+import {UserVO} from "@/api/system/user/types";
+import {listUserByDeptId} from "@/api/system/user";
 
 interface DeptOptionsType {
   deptId: number | string;
@@ -149,7 +153,7 @@ const loading = ref(true)
 const showSearch = ref(true)
 const deptOptions = ref<DeptOptionsType[]>([])
 const isExpandAll = ref(true)
-
+const deptUserList = ref<UserVO[]>([]);
 
 const dialog = reactive<DialogOption>({
   visible: false,
@@ -199,6 +203,15 @@ const getList = async () => {
   }
   loading.value = false
 }
+
+/** 查询当前部门的所有用户 */
+async function getDeptAllUser(deptId: any) {
+  if (deptId !== null && deptId !== "" && deptId !== undefined) {
+    const res = await listUserByDeptId(deptId);
+    deptUserList.value = res.data;
+  }
+}
+
 /** 取消按钮 */
 const cancel = () => {
   reset()
@@ -251,6 +264,8 @@ const handleAdd = async (row?: DeptVO) => {
 /** 修改按钮操作 */
 const handleUpdate = async (row: DeptVO) => {
   reset();
+  //查询当前部门所有用户
+  getDeptAllUser(row.deptId);
   const res = await getDept(row.deptId);
   form.value = res.data
   const response = await listDeptExcludeChild(row.deptId);

+ 1 - 1
src/views/system/user/index.vue

@@ -335,7 +335,7 @@ const upload = reactive<ImportOption>({
   // 是否更新已经存在的用户数据
   updateSupport: 0,
   // 设置上传的请求头部
-  headers: globalHeaders,
+  headers: globalHeaders(),
   // 上传的地址
   url: import.meta.env.VITE_APP_BASE_API + "/system/user/importData"
 })