From a7bde8bb720c91242b61e377b6844b01cf311476 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E5=BC=BA?= <357099073@qq.com> Date: Tue, 4 Nov 2025 17:35:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E4=BF=AE=E5=A4=8D=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pc/src/api/department.js | 44 + pc/src/api/employee.js | 69 ++ pc/src/api/position.js | 52 + pc/src/components/CommonHeader.vue | 36 + pc/src/views/apps/oa/departments/index.vue | 372 +++++++ pc/src/views/apps/oa/employees/index.vue | 963 ++++++++++++++++- pc/src/views/apps/oa/index.vue | 12 +- pc/src/views/apps/oa/organization/index.vue | 1034 +++++++++++++++++++ pc/src/views/apps/oa/positions/index.vue | 450 ++++++++ pc/src/views/system/users/index.vue | 165 ++- server/controllers/auth.go | 71 +- server/controllers/department.go | 270 +++++ server/controllers/employee.go | 403 ++++++++ server/controllers/position.go | 319 ++++++ server/controllers/user.go | 40 +- server/database/add_employee_fields.sql | 108 ++ server/database/add_menu_delete_time.sql | 38 + server/database/add_organization_menu.sql | 15 + server/database/create_oa_tables.sql | 163 +++ server/database/yz_departments.sql | 32 + server/database/yz_employees.sql | 34 + server/database/yz_positions.sql | 32 + server/models/department.go | 87 ++ server/models/employee.go | 242 +++++ server/models/menu.go | 44 +- server/models/permission.go | 6 +- server/models/position.go | 100 ++ server/models/user.go | 69 +- server/routers/router.go | 18 + 29 files changed, 5200 insertions(+), 88 deletions(-) create mode 100644 pc/src/api/department.js create mode 100644 pc/src/api/employee.js create mode 100644 pc/src/api/position.js create mode 100644 pc/src/views/apps/oa/departments/index.vue create mode 100644 pc/src/views/apps/oa/organization/index.vue create mode 100644 pc/src/views/apps/oa/positions/index.vue create mode 100644 server/controllers/department.go create mode 100644 server/controllers/employee.go create mode 100644 server/controllers/position.go create mode 100644 server/database/add_employee_fields.sql create mode 100644 server/database/add_menu_delete_time.sql create mode 100644 server/database/add_organization_menu.sql create mode 100644 server/database/create_oa_tables.sql create mode 100644 server/database/yz_departments.sql create mode 100644 server/database/yz_employees.sql create mode 100644 server/database/yz_positions.sql create mode 100644 server/models/department.go create mode 100644 server/models/employee.go create mode 100644 server/models/position.go diff --git a/pc/src/api/department.js b/pc/src/api/department.js new file mode 100644 index 0000000..3eb6fab --- /dev/null +++ b/pc/src/api/department.js @@ -0,0 +1,44 @@ +import request from '@/utils/request'; + +// 获取租户下的所有部门 +export function getTenantDepartments(tenantId) { + return request({ + url: `/api/departments/tenant/${tenantId}`, + method: 'get', + }); +} + +// 获取部门详情 +export function getDepartmentInfo(departmentId) { + return request({ + url: `/api/departments/${departmentId}`, + method: 'get', + }); +} + +// 添加部门 +export function addDepartment(data) { + return request({ + url: '/api/departments', + method: 'post', + data, + }); +} + +// 更新部门信息 +export function editDepartment(departmentId, data) { + return request({ + url: `/api/departments/${departmentId}`, + method: 'put', + data, + }); +} + +// 删除部门 +export function deleteDepartment(departmentId) { + return request({ + url: `/api/departments/${departmentId}`, + method: 'delete', + }); +} + diff --git a/pc/src/api/employee.js b/pc/src/api/employee.js new file mode 100644 index 0000000..979e677 --- /dev/null +++ b/pc/src/api/employee.js @@ -0,0 +1,69 @@ +import request from '@/utils/request'; + +// 获取所有员工信息 +export function getAllEmployees() { + return request({ + url: '/api/employees', + method: 'get', + }); +} + +// 获取员工信息 +export function getEmployeeInfo(employeeId) { + return request({ + url: `/api/employees/${employeeId}`, + method: 'get', + }); +} + +// 获取租户员工信息 +export function getTenantEmployees(tenantId) { + return request({ + url: `/api/employees/tenant/${tenantId}`, + method: 'get', + }); +} + +// 添加员工 +export function addEmployee(data) { + return request({ + url: '/api/employees', + method: 'post', + data, + }); +} + +// 更新员工信息 +export function editEmployee(employeeId, data) { + return request({ + url: `/api/employees/${employeeId}`, + method: 'put', + data, + }); +} + +// 删除员工 +export function deleteEmployee(employeeId) { + return request({ + url: `/api/employees/${employeeId}`, + method: 'delete', + }); +} + +// 重置员工密码 +export function resetEmployeePassword(employeeId) { + return request({ + url: `/api/employees/${employeeId}/reset-password`, + method: 'post', + }); +} + +// 修改员工密码 +export function changeEmployeePassword(employeeId, data) { + return request({ + url: `/api/employees/${employeeId}/change-password`, + method: 'post', + data, + }); +} + diff --git a/pc/src/api/position.js b/pc/src/api/position.js new file mode 100644 index 0000000..a9cd77d --- /dev/null +++ b/pc/src/api/position.js @@ -0,0 +1,52 @@ +import request from '@/utils/request'; + +// 获取租户下的所有职位 +export function getTenantPositions(tenantId) { + return request({ + url: `/api/positions/tenant/${tenantId}`, + method: 'get', + }); +} + +// 根据部门ID获取职位列表 +export function getPositionsByDepartment(departmentId) { + return request({ + url: `/api/positions/department/${departmentId}`, + method: 'get', + }); +} + +// 获取职位详情 +export function getPositionInfo(positionId) { + return request({ + url: `/api/positions/${positionId}`, + method: 'get', + }); +} + +// 添加职位 +export function addPosition(data) { + return request({ + url: '/api/positions', + method: 'post', + data, + }); +} + +// 更新职位信息 +export function editPosition(positionId, data) { + return request({ + url: `/api/positions/${positionId}`, + method: 'put', + data, + }); +} + +// 删除职位 +export function deletePosition(positionId) { + return request({ + url: `/api/positions/${positionId}`, + method: 'delete', + }); +} + diff --git a/pc/src/components/CommonHeader.vue b/pc/src/components/CommonHeader.vue index 5d1f0f5..b1c6695 100644 --- a/pc/src/components/CommonHeader.vue +++ b/pc/src/components/CommonHeader.vue @@ -38,6 +38,7 @@ + {{ displayName }}