Procházet zdrojové kódy

fix: 应急管理-应急架构体系 修复已知问题

“fujiacheng” před 9 měsíci
rodič
revize
126e5406cf

+ 4 - 0
src/views/emergency/constant/index.ts

@@ -0,0 +1,4 @@
+//管理权限
+export const EMERGENCY_PERMISSIONS = {
+  ORGANIZATION_MANAGEMENT: 'emergency_business_module:organization_management',
+};

+ 10 - 1
src/views/emergency/organization/PageOrganization.vue

@@ -6,7 +6,7 @@
     <div class="safety-platform-container__main">
       <OrgChart :treeData="treeData" @node-click="handleNodeClick" @canvas-click="handleCanvasClick" />
     </div>
-    <div class="safety-platform-container__footer">
+    <div class="safety-platform-container__footer" v-if="showOperationBar">
       <el-button @click="router.push('team-management')"> 编辑 </el-button>
     </div>
   </div>
@@ -18,7 +18,9 @@
   import { useRouter } from 'vue-router';
   import OrgChart from '../components/OrgChart.vue';
   import TeamDetailDrawer from './components/TeamDetailDrawer.vue';
+  import { useUserInfoHook } from '@/views/disaster/hooks';
   import useTeamStore from './team-management/store/userTeam';
+  import { EMERGENCY_PERMISSIONS } from '@/views/emergency/constant';
 
   type OrganizationTreeType = {
     id: string;
@@ -47,6 +49,9 @@
 
   const router = useRouter();
 
+  const showOperationBar = ref(false);
+
+  const { permissions } = useUserInfoHook();
   const { getLeaderTeams } = useTeamStore();
 
   const teamDetailDrawerRef = ref<InstanceType<typeof TeamDetailDrawer>>();
@@ -79,6 +84,10 @@
   }
 
   onMounted(async () => {
+    showOperationBar.value = Boolean(
+      permissions.find((item: { code: string }) => item.code === EMERGENCY_PERMISSIONS.ORGANIZATION_MANAGEMENT),
+    );
+
     const res = await getLeaderTeams();
 
     treeData.value = convertData(res);

+ 5 - 2
src/views/emergency/organization/team-management/leader-teams/LeaderTeam.vue

@@ -66,6 +66,7 @@
 
 <script setup lang="ts">
   import { ref, watch, nextTick } from 'vue';
+  import { ElMessageBox } from 'element-plus';
   import { storeToRefs } from 'pinia';
   import AddTeam from './components/AddTeam.vue';
   import { LeaderTeamType } from '../type';
@@ -130,7 +131,9 @@
   }
 
   function handleDelete() {
-    deleteTeam(props.teamData);
+    ElMessageBox.confirm('是否确认删除该队伍').then(async () => {
+      deleteTeam(props.teamData);
+    });
   }
 
   let clickTimeout: any = null;
@@ -237,7 +240,7 @@
         border-radius: 4px;
         background: #f4f7ff;
         outline: 1px solid rgba(245, 248, 255, 0.25);
-        z-index: 9991;
+        z-index: 999;
 
         .leader-team__operation-item {
           height: 31.5px;

+ 5 - 1
src/views/emergency/organization/team-management/leader-teams/components/AddTeam.vue

@@ -1,5 +1,5 @@
 <template>
-  <el-dialog v-model="showDialog" title="添加队伍" width="300" class="add-team-dialog">
+  <el-dialog v-model="showDialog" title="添加队伍" width="300" class="add-team-dialog" @close="clearData">
     <el-form :model="formData" ref="ruleFormRef" :rules="rules" label-position="top">
       <el-form-item prop="teamName" label="队伍名">
         <el-input v-model="formData.teamName" />
@@ -34,6 +34,10 @@
     showDialog.value = true;
   }
 
+  function clearData() {
+    formData.value.teamName = '';
+  }
+
   async function submitForm() {
     await ruleFormRef.value!.validate((valid) => {
       if (valid) {

+ 7 - 4
src/views/emergency/organization/team-management/team-info/components/AddPerson.vue

@@ -150,10 +150,13 @@
           jobTitle: formData.value.jobName,
           ...formData.value,
         };
-        await saveTeamPersonnel(data);
-        await refreshCurTeamInfo();
-
-        loadingTeamInfo.value = false;
+        saveTeamPersonnel(data)
+          .then(() => {
+            refreshCurTeamInfo();
+          })
+          .finally(() => {
+            loadingTeamInfo.value = false;
+          });
       }
     });
   }