diff --git a/src/api/system/employee-api.js b/src/api/system/employee-api.js
index c2cc16e..bc5a041 100644
--- a/src/api/system/employee-api.js
+++ b/src/api/system/employee-api.js
@@ -90,4 +90,10 @@ export const employeeApi = {
queryEmployeeByDeptId: (departmentId) => {
return getRequest(`/employee/getAllEmployeeByDepartmentId/${departmentId}`);
},
+ /**
+ * 搜索员工(下拉框搜索用)
+ */
+ searchEmployee: (params) => {
+ return getRequest('/employee/search', params);
+ },
};
diff --git a/src/views/business/erp/penalty-apply/penalty-apply-list.vue b/src/views/business/erp/penalty-apply/penalty-apply-list.vue
index f4a3f78..124236e 100644
--- a/src/views/business/erp/penalty-apply/penalty-apply-list.vue
+++ b/src/views/business/erp/penalty-apply/penalty-apply-list.vue
@@ -346,6 +346,7 @@ import PenaltyApplyForm from './penalty-apply-form.vue';
applyDateStart: undefined, // 申请日期开始
applyDateEnd: undefined, // 申请日期结束
status: undefined, // 状态
+ userType: undefined, // 角色类型(ceo/cto/staff/user)
};
// 查询表单form
const queryForm = reactive({ ...queryFormState });
@@ -456,6 +457,17 @@ import PenaltyApplyForm from './penalty-apply-form.vue';
// 行政人员角色判断
isFirmAdmin.value = roleCodes.includes('staff');
+ // 设置userType供后端过滤状态字段
+ if (isCeo.value) {
+ queryForm.userType = 'ceo';
+ } else if (isCto.value) {
+ queryForm.userType = 'cto';
+ } else if (isFirmAdmin.value) {
+ queryForm.userType = 'staff';
+ } else {
+ queryForm.userType = 'user';
+ }
+
console.log('用户角色代码:', roleCodes, 'isCeo:', isCeo.value, 'isUser:', isUser.value, 'isCto:', isCto.value, 'isFirmAdmin:', isFirmAdmin.value);
}
}
diff --git a/src/views/business/erp/service/service-applications-list.vue b/src/views/business/erp/service/service-applications-list.vue
index 4e042b6..ed0c24d 100644
--- a/src/views/business/erp/service/service-applications-list.vue
+++ b/src/views/business/erp/service/service-applications-list.vue
@@ -14,7 +14,7 @@
-
+
{
- let result = employeeList.value;
-
- // 首先根据执业机构过滤
- if (queryForm.firmId) {
- result = result.filter(item => item.departmentId == queryForm.firmId);
- }
-
- // 然后根据搜索关键词过滤
- if (searchKeyword.value) {
- const keyword = searchKeyword.value.toLowerCase();
- result = result.filter(item =>
- (item.actualName && item.actualName.toLowerCase().includes(keyword)) ||
- (item.departmentName && item.departmentName.toLowerCase().includes(keyword))
- );
- }
-
- return result;
- });
+ // 员工列表(直接使用API返回的数据,无需前端过滤)
+ const filteredEmployeeList = computed(() => employeeList.value);
// 审核相关状态
const auditModalVisible = ref(false);
@@ -618,13 +600,6 @@ import { getRoleInfo } from '/@/utils/role-util';
return optionText.includes(input.toLowerCase());
}
- // 处理律师搜索
- function handleLawyerSearch(keyword) {
- searchKeyword.value = keyword;
- }
-
-
-
// 批量审核确认
async function handleBatchAudit() {
if (!batchAuditForm.auditResult) {
@@ -833,27 +808,41 @@ import { getRoleInfo } from '/@/utils/role-util';
}
}
- // 加载所有员工数据
- async function loadAllEmployees() {
+ // 加载指定机构的员工数据(使用新搜索接口)
+ async function loadEmployeesByFirm(keyword = '') {
try {
- if (employeeList.value.length === 0) {
- let resp = await employeeApi.queryAll();
- employeeList.value = resp.data;
+ // 律所主任(cto)和行政(staff)角色:只看当前律所的律师
+ // 律协/CEO角色:可以看所有律师
+ let firmId = undefined;
+ if (loginInfo.value) {
+ const roleCode = loginInfo.value.roleCode || '';
+ if (roleCode === 'cto' || roleCode === 'staff') {
+ firmId = loginInfo.value.departmentId;
+ }
}
+
+ const params = {
+ firmId: queryForm.firmId || firmId,
+ keyword: keyword || undefined,
+ limit: 50
+ };
+ const resp = await employeeApi.searchEmployee(params);
+ employeeList.value = resp.data || [];
} catch (e) {
console.error('加载员工数据失败:', e);
}
}
- // 加载指定机构的员工数据
- async function loadEmployeesByFirm() {
- try {
- if (employeeList.value.length === 0) {
- await loadAllEmployees();
- }
- } catch (e) {
- console.error('加载员工数据失败:', e);
- }
+ // 搜索防抖定时器
+ let searchTimer = null;
+
+ // 处理律师搜索(带防抖)
+ function handleLawyerSearch(keyword) {
+ clearTimeout(searchTimer);
+ searchKeyword.value = keyword;
+ searchTimer = setTimeout(() => {
+ loadEmployeesByFirm(keyword);
+ }, 300); // 300ms 防抖
}
// 处理执业机构变化
@@ -861,6 +850,8 @@ import { getRoleInfo } from '/@/utils/role-util';
// 清空律师选择
queryForm.userId = undefined;
searchKeyword.value = '';
+ // 重新加载律师列表
+ loadEmployeesByFirm('');
}
// 处理律师选择变化(选择律师时清空搜索关键词)
@@ -868,9 +859,10 @@ import { getRoleInfo } from '/@/utils/role-util';
searchKeyword.value = '';
}
- // 处理律师下拉框清空(点击叉号时清空搜索关键词)
+ // 处理律师下拉框清空(点击叉号时清空搜索关键词并重新加载)
function handleLawyerClear() {
searchKeyword.value = '';
+ loadEmployeesByFirm('');
}
// 总数