Преглед изворни кода

fix: V4版本组织管理

qindao пре 1 година
родитељ
комит
756c3d40d6

+ 3 - 3
src/api/auth/dept.ts

@@ -1,5 +1,5 @@
 import { http } from '@/utils/http/axios';
-import { DeptTreeItem , addDeptProps} from '@/types/dept/type';
+import { DeptTreeItem , addDeptProps, editDeptProps} from '@/types/dept/type';
 
 /**
  * @description: 部门列表
@@ -71,7 +71,7 @@ export function deleteDept(params) {
 /**
  * @description: V4: 添加组织
  */
-export function saveDept(params) {
+export function saveDept(params:addDeptProps) {
   return http.request({
     url: '/admin/dept/saveDept',
     method: 'post',
@@ -82,7 +82,7 @@ export function saveDept(params) {
 /**
  * @description: V4:编辑组织
  */
-export function updateDepartments(params:addDeptProps) {
+export function updateDepartments(params:editDeptProps) {
   return http.request({
     url: '/admin/dept/updateDept',
     method: 'post',

+ 1 - 1
src/api/datamanagement/getDevMode.ts

@@ -3,7 +3,7 @@ import { http } from '@/utils/http/axios';
 // 获取开发者模式开关状态
 export const getDevMode = () => {
   return http.request({
-    url: '/issue/getDevMode',
+    url: '/admin/issueManage/getDevMode',
     method: 'get',
   });
 };

+ 0 - 22
src/views/auth/dept/columns.ts

@@ -1,22 +0,0 @@
-import { BasicColumn } from '@/components/Table';
-import { h } from 'vue';
-
-export const columns: BasicColumn[] = [
-  {
-    label: '组织名称',
-    prop: 'deptName',
-    render(record) {
-      return h(
-        'span',
-        {},
-        {
-          default: () => record.row.deptName + '   (' + record.row.userCount + ')',
-        },
-      );
-    },
-  },
-  {
-    label: '上级组织名称',
-    prop: 'parentName',
-  },
-];

+ 63 - 84
src/views/auth/dept/dept.vue

@@ -1,37 +1,36 @@
 <template>
   <PageWrapper>
     <el-card :bordered="false" class="proCard">
-      <BasicTable
-        :columns="columns"
-        :request="loadDataTable"
-        row-key="deptId"
-        :tableSetting="{
-          size: false,
-          redo: false,
-          fullscreen: false,
-          striped: false,
-          setting: false,
-        }"
-        ref="basicTableRef"
-        :actionColumn="actionColumn"
-        @update:checked-row-keys="onCheckedRow"
-        :pagination="false"
-      >
-        <template #tableTitle>
-          <el-space align="center">
-            <el-button type="primary" @click="openCreateDrawer">
-              <template #icon>
-                <el-icon>
-                  <FileAddOutlined />
-                </el-icon>
-              </template>
-              添加
-            </el-button>
-          </el-space>
-        </template>
-      </BasicTable>
+     <template #header>
+        <el-space align="center">
+          <el-button type="primary" @click="openCreateDrawer">
+            <template #icon>
+              <el-icon>
+                <FileAddOutlined />
+              </el-icon>
+            </template>
+            添加
+          </el-button>
+        </el-space>
+      </template>
+      <el-table :data="tableData" row-key="id" :tree-props="treeProps" default-expand-all>
+        <el-table-column prop="deptName" label="组织名称" />
+        <el-table-column label="操作" width="200">
+          <template #default="scope">
+            <el-space>
+              <div class="el-space el-space--horizontal">
+                <div class="el-space__item" @click="handleEdit(scope.row)">
+                  <div><img :src="editIcon" class="el-tooltip__trigger" /></div>
+                </div>
+                <div class="el-space__item" @click="handleDelete(scope.row)">
+                  <div><img :src="deleteIcon" class="el-tooltip__trigger" /></div>
+                </div>
+              </div>
+            </el-space>
+          </template>
+        </el-table-column>
+      </el-table>
     </el-card>
-
     <CreateDrawer_shangfei
       ref="createDrawerRef"
       :title="drawerTitle"
@@ -52,25 +51,25 @@
 </template>
 
 <script lang="ts" setup>
-  import { h, reactive, ref } from 'vue';
+  import { onMounted, reactive, ref } from 'vue';
   import { ElMessage } from 'element-plus';
-  import { BasicTable, TableAction, BasicColumn } from '@/components/Table';
-  import { getAllDepartments , deleteDepartments} from '@/api/auth/dept';
+  import { getAllDepartments, deleteDepartments } from '@/api/auth/dept';
   import { FileAddOutlined } from '@vicons/antd';
   import CreateDrawer from './CreateDrawer.vue';
   import CreateDrawer_shangfei from './CreateDrawer-shangfei.vue';
-  import { columns } from './columns';
   import { useGlobSetting } from '@/hooks/setting';
   import type { DeptTreeItem } from '@/types/dept/type';
+  import editIcon from '@/assets/images/reportmessage/edit.png';
+  import deleteIcon from '@/assets/images/reportmessage/delete.png';
 
   const globSetting = useGlobSetting();
   const disableDepartmentEdit = globSetting.disableDepartmentEdit;
 
   const message = ElMessage;
-  const basicTableRef = ref();
-  const rowKeys = ref([]);
-  const rowKeysName = ref<string>();
   const tableData = ref<any[]>([]);
+  const treeProps = reactive({
+    checkStrictly: false,
+  });
   const createDrawerRef = ref();
   const drawerTitle = ref('添加部门');
   const currentDept = ref<DeptTreeItem>({
@@ -84,59 +83,16 @@
     createdAt: '',
     updatedAt: '',
     isDeleted: 0,
-    tenantId: 0
-  });
-
-  const actionColumn: BasicColumn = reactive({
-    width: 150,
-    title: '操作',
-    prop: 'action',
-    fixed: 'right',
-    align: 'center',
-    render(record) {
-      const { index } = record;
-      if (index === 0 && disableDepartmentEdit) return null;
-      return h(TableAction as any, {
-        actions: [
-          {
-            label: '删除',
-            isConfirm: true,
-            popConfirm: {
-              onConfirm: handleDelete.bind(null, record.row),
-              title: '您确定要删除吗?',
-              confirmButtonText: '确定',
-              cancelButtonText: '取消',
-            },
-          },
-          {
-            label: '编辑',
-            onClick: handleEdit.bind(null, record.row),
-          },
-        ],
-      });
-    },
+    tenantId: 0,
   });
 
-  const loadDataTable = async (res) => {
+  const loadDataTable = async () => {
     const result = await getAllDepartments();
     tableData.value = result;
-    return { list: result };
   };
 
-  function onCheckedRow(keys) {
-    rowKeys.value = keys;
-    rowKeysName.value = tableData.value
-      .filter((item) => {
-        return keys.includes(item.id);
-      })
-      .map((item) => {
-        return item.username;
-      })
-      .join(',');
-  }
-
   function reloadTable() {
-    basicTableRef.value.reload();
+    loadDataTable()
   }
 
   function openCreateDrawer() {
@@ -155,7 +111,30 @@
   function handleDelete(record: Recordable) {
     deleteDepartments(record.id).then(() => {
       message.success('删除成功');
-      reloadTable();
+      loadDataTable();
     });
   }
+
+  onMounted(() => {
+    loadDataTable();
+  });
 </script>
+<style scoped>
+  .el-space--horizontal {
+    align-items: center;
+    gap: 0px 20px;
+  }
+
+  .el-tooltip__trigger {
+    width: 16px;
+  }
+
+  .tooltip__password {
+    color: var(--el-color-primary);
+  }
+  .box-item {
+    position: absolute;
+    top: 0;
+    right: 0;
+  }
+</style>