Sfoglia il codice sorgente

fix:设置负责人优化

刘恒 1 anno fa
parent
commit
c2146eca40

+ 32 - 2
src/components/DialogSetDeptLeader/index.vue

@@ -38,6 +38,8 @@
             :default-expand-all="true"
             :expand-on-click-node="false"
             @node-click="treeClick"
+            node-key="id"
+            highlight-current
           >
           </el-tree>
         </div>
@@ -84,9 +86,9 @@
 </template>
 
 <script setup lang="ts">
-import { defineProps, ref, onMounted, defineEmits } from "vue";
+import { defineProps, ref, onMounted, defineEmits,nextTick,watch } from "vue";
 import api from "@/api";
-import { ElMessage } from "element-plus";
+import { ElMessage,ElTree } from "element-plus";
 type tableType = {
   id: string;
   name: string;
@@ -107,6 +109,30 @@ interface ListItem {
   value: string;
   label: string;
 }
+const treeRef = ref<InstanceType<typeof ElTree>>();
+// onMounted(async ()=>{
+//   await nextTick()
+//   console.log(treeRef.value)
+//   if(props.deptIds.length<2){
+//       treeRef.value!.setCurrentKey(props.deptIds[0]);
+//     }
+// })
+watch(props, (val) => {
+  nextTick(()=>{
+    if(props.dialogVisible)
+    if(props.deptIds.length<2){
+      treeRef.value?.setCurrentKey(props?.deptIds[0]);
+      treeClick({id:props.deptIds[0]}) 
+    }
+  })
+  
+  // if(val.dialogVisible){
+   
+   
+  // }
+  
+ 
+});
 
 const list = ref<ListItem[]>([]);
 const options = ref<ListItem[]>([]);
@@ -260,6 +286,10 @@ const handleClose = (done: () => void) => {
   border-radius: 10px;
   min-height: 500px;
   margin-top: 20px;
+  .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content {
+    background-color: #f0f9eb; /* 浅黄色背景 */
+    color: #1f569d; /* 深蓝色字体 */
+  }
   > div {
     flex: 1;
     padding: 15px;

+ 1 - 1
src/views/operationManagement/modules/allocation.vue

@@ -38,7 +38,7 @@
 </template>
 
 <script setup lang="ts">
-import { ref, onMounted, defineEmits } from 'vue'
+import { ref, onMounted, defineEmits,watch } from 'vue'
 import api from '@/api'
 import { ElMessage } from 'element-plus'
 

+ 16 - 10
src/views/personnel/institutionManage.vue

@@ -250,13 +250,18 @@ function setDeptUser(item:any){
 //批量设置负责人
 
 function manySetDeptUser(){
-  
-  deptIdList.value=checkTableIdList.value
-  deptDialogVisible.value=true
+  if(checkTableIdList.value.length>0){
+    deptIdList.value=checkTableIdList.value
+    deptDialogVisible.value=true
+  }else{
+    ElMessage.warning("请选择机构后,再进行设置负责人")
+  }
+ 
 }
 
 function confirmCharge(){
   deptDialogVisible.value=false
+  getInstitutionList(); //机构列表
 }
 
 
@@ -338,7 +343,7 @@ const typeformatter = (row: any, column: any, cellValue: any) => {
 };
 const columns = [
   { prop: "name", label: "机构名称" },
-  { prop: "Phone", label: "人数" },
+  { prop: "userCount", label: "人数" },
   { prop: "comType", label: "机构类型", formatter: typeformatter },
   {
     prop: "comAttribute",
@@ -387,6 +392,7 @@ function selectChange(list:any){
 const isDisabledId = ref("");
 const addChild = (item: any) => {
   // form.id=item.id
+  console.log(item)
   form.parentId = item.id;
   isDisabledId.value = item.id;
   dialogVisible.value = true;
@@ -396,7 +402,7 @@ const addChild = (item: any) => {
   // pageInfo.pageSize=item.pageSize
 };
 const editor = (item: any) => {
-  console.log(item);
+  
   // form={...item}
   for (let key in item) {
     form[key] = item[key];
@@ -537,7 +543,7 @@ const getInstitutionList = () => {
 
     // }
     tableData.value = res.data;
-    console.log(tableData.value);
+   
   });
   // pageInfo.pageSize=item.pageSize
 };
@@ -561,7 +567,7 @@ const confirm = async (formEl: FormInstance | undefined) => {
     if (valid) {
       const obj = { ...form };
       delete obj.area;
-
+      console.log(obj)
       if (operationType.value == "add") {
         api.institutionApi
           .institutionAdd({
@@ -570,7 +576,7 @@ const confirm = async (formEl: FormInstance | undefined) => {
             province: form.area[0],
             city: form.area[1],
             area: form.area[2],
-            parentId:obj.parentId[obj.parentId.length-1]
+            parentId:typeof obj.parentId=='string' ? obj.parentId:obj.parentId[obj.parentId.length-1]
           })
           .then((res) => {
             if (res.code === 200) {
@@ -587,11 +593,11 @@ const confirm = async (formEl: FormInstance | undefined) => {
             province: form.area[0],
             city: form.area[1],
             area: form.area[2],
-            parentId:obj.parentId[obj.parentId.length-1]
+            parentId:typeof obj.parentId=='string' ? obj.parentId:obj.parentId[obj.parentId.length-1]
 
           })
           .then((res) => {
-           
+            
             if (res.code === 200) {
               ElMessage.success("操作成功");
               dialogVisible.value = false;

+ 16 - 4
src/views/personnel/memberManagement.vue

@@ -23,6 +23,7 @@
         :default-expand-all="isExpand"
         :filter-node-method="filterNode"
         :expand-on-click-node="false"
+        @node-click="treeClickTable"
         >
         <template #default="{ node, data }">
           <span class="custom-tree-node">
@@ -81,7 +82,7 @@
                 </el-dropdown-menu>
               </template>
             </el-dropdown>
-            <el-button type="primary" @click="manySetDeptUser()">
+            <el-button type="primary" :disabled="!deptItem.id" @click="manySetDeptUser()">
               设置负责人</el-button
             >
           </div>
@@ -163,12 +164,14 @@
       </template>
     </el-dialog>
     <setDept
+    
       :dialogVisible="deptDialogVisible"
       :dept-list="deptTreeData"
-      :dept-ids="deptIdList"
+      :dept-ids="[deptItem.id]"
       @close-dialog="confirmDialogInfo"
       :title="title"
       @cancel-dialog="deptDialogVisible=false"
+      
     ></setDept>
     <el-dialog
       v-model="changeDeptDialog"
@@ -297,6 +300,12 @@ const filterNode = (value: string, data: Tree) => {
   if (!value) return true;
   return data.name.includes(value);
 };
+
+function treeClickTable(node: any) {
+  deptItem.value=node
+  getUserList()
+
+}
 //全部展示机构树,或全部收起
 const isExpand=ref(false)
 function expandTree(){
@@ -420,11 +429,13 @@ const pageInfo =reactive( {
 const getList = (item: PageInfo) => {
   pageInfo.pageNum = item.pageNum;
   pageInfo.pageSize = item.pageSize;
+  getUserList()
 };
 
 const getUserList= () => {
   api.userApi.memberList({
-    ...pageInfo
+    ...pageInfo,
+    deptId:deptItem.value.id
   }).then((res:any)=>{
     
     if(res.code===200){
@@ -465,7 +476,7 @@ const operationMany = (item: any) => {
 };
 
 const append = (data: Tree) => {
-  console.log(data);
+  
   // const newChild = { id: id++, label: 'testtest', children: [] }
   if (!data.children) {
     data.children = [];
@@ -507,6 +518,7 @@ function changeDept(item:any) {
 //选择变更的机构
 const deptItem = ref({});
 function treeClick(node: any) {
+
   deptItem.value = node;
 }