Просмотр исходного кода

仅没有根组织时,允许批量导入

imndx 5 месяцев назад
Родитель
Сommit
697448836d

+ 28 - 7
organization-web/src/components/common/Home.vue

@@ -4,8 +4,8 @@
             <div style="height: 60px; display: flex; justify-content: center;align-items: center" @click="go2home">
                 <p>野火组织架构管理后台</p>
             </div>
-            <el-menu default-active='/contact/departmentanduser' router>
-                <el-menu-item index="/contact/departmentanduser">成员与部门</el-menu-item>
+            <el-menu router>
+                <el-menu-item index="/organization/departmentanduser">成员与部门</el-menu-item>
             </el-menu>
         </el-aside>
         <el-container :class="{'content-collapse':collapse}">
@@ -53,7 +53,8 @@
 </template>
 
 <script>
-import { useUserStore } from "@/store/stores/userStore";
+import {useUserStore} from "@/store/stores/userStore";
+import {useOrgStore} from "@/store/stores/orgStore";
 import Breadcrumb from "@/components/common/Breadcrumb";
 
 export default {
@@ -83,23 +84,29 @@ export default {
 
     setup() {
         const userStore = useUserStore();
-        return { userStore };
+        const orgStore = useOrgStore();
+        return {userStore, orgStore};
     },
 
     created() {
         this.userStore.getAccount();
+        this.orgStore.getRootOrganizationsWithChildren();
     },
 
     computed: {
         account() {
             return this.userStore.account;
-        }
+        },
+        rootOrganizations() {
+            return this.orgStore.rootOrganizations;
+        },
     },
 
     methods: {
         go2home() {
-            if (this.$router.history.current.path !== '/index') {
-                this.$router.replace('/index')
+            const defaultPath = this.rootOrganizations.length > 0 ? '/organization/departmentanduser' : '/organization//import-member';
+            if (this.$router.history.current.path !== defaultPath) {
+                this.$router.replace(defaultPath);
             }
         },
         logout() {
@@ -122,6 +129,20 @@ export default {
                 }
             });
         }
+    },
+    watch: {
+        rootOrganizations: {
+            handler(newVal) {
+                // 当根组织数据变化时,检查是否需要跳转到批量导入页面
+                if (newVal.length === 0 && this.$router.history.current.path !== '/organization/departmentanduser/import-member') {
+                    this.$router.push('/organization/departmentanduser/import-member')
+                } else if (newVal.length > 0 && this.$router.history.current.path !== '/organization/departmentanduser') {
+                    this.$router.push('/organization/departmentanduser')
+                }
+            },
+            deep: true,
+            immediate: true
+        }
     }
 }
 </script>

+ 1 - 1
organization-web/src/components/page/organization/ImportMember.vue

@@ -16,7 +16,7 @@
                     :action="uploadUrl"
                     :with-credentials="true"
                     accept=".xls,.xlsx"
-                    :show-file-list="false"
+                    :show-file-list="true"
                     :limit="1"
                     :on-change="handleChange"
                     :auto-upload="false"

+ 4 - 7
organization-web/src/components/page/organization/Member.vue

@@ -34,10 +34,8 @@
             <el-header>
                 <div style="height: 100%; display: flex; flex-direction: row; align-items: center; justify-content: center">
                     <p style="flex: 1 1 auto"> {{ currentOrg && currentOrg.name }}</p>
-                    <el-button type="primary" icon="el-icon-plus" @click="showAddDepartmentMemberDialog = true">添加成员</el-button>
-                    <el-button v-if="rootOrganizations.length === 0" @click="importMember">批量导入</el-button>
-                    <el-button>变更部门</el-button>
-                    <el-button type="danger">操作离职</el-button>
+                    <el-button type="primary" icon="el-icon-plus" v-if="rootOrganizations.length > 0" @click="showAddDepartmentMemberDialog = true">添加成员</el-button>
+                    <el-button type="primary" v-if="rootOrganizations.length === 0" @click="importMember">批量导入</el-button>
                 </div>
             </el-header>
             <el-table
@@ -131,14 +129,13 @@
 </template>
 
 <script>
-import { useOrgStore } from "@/store/stores/orgStore";
+import {useOrgStore} from "@/store/stores/orgStore";
 import AddSubDepartment from "@/components/page/organization/dialog/AddSubDepartment";
 import AddDepartmentMember from "@/components/page/organization/dialog/AddDepartmentMember";
 import ChooseDepartment from "@/components/page/organization/dialog/ChooseDepartment";
 import ChooseMember from "@/components/page/organization/dialog/ChooseMember";
 import DeleteEmployee from "@/components/page/organization/drawer/DeleteEmployee";
 import UpdateDepartment from "@/components/page/organization/dialog/UpdateDepartment.vue";
-import fa from "element-ui/src/locale/lang/fa";
 import api from "@/api/api";
 
 export default {
@@ -203,7 +200,7 @@ export default {
 
     setup() {
         const orgStore = useOrgStore();
-        return { orgStore };
+        return {orgStore};
     },
 
     activated() {