Browse Source

feat:排序修改

master
wang 6 months ago
parent
commit
404dadb371
  1. 6
      src/api/system/employee-api.js
  2. 12
      src/views/business/erp/penalty-apply/penalty-apply-list.vue
  3. 80
      src/views/business/erp/service/service-applications-list.vue

6
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);
},
};

12
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);
}
}

80
src/views/business/erp/service/service-applications-list.vue

@ -14,7 +14,7 @@
<a-form-item label="执业机构" v-if="isAssociationRole || isCeo" class="smart-query-form-item">
<DepartmentTreeSelect style="width: 250px" v-model:value="queryForm.firmId" placeholder="请选择执业机构" @change="handleFirmChange" />
</a-form-item>
<a-form-item label="律师名称" v-if="isAssociationRole || isCtoRole || isCeo" class="smart-query-form-item">
<a-form-item label="律师名称" v-if="isAssociationRole || isCtoRole || isCeo || isFirmAdmin" class="smart-query-form-item">
<a-select
v-model:value="queryForm.userId"
style="width: 200px"
@ -23,7 +23,7 @@
:allowClear="true"
:filterOption="false"
optionFilterProp="children"
@focus="loadEmployeesByFirm"
@focus="loadEmployeesByFirm()"
@search="handleLawyerSearch"
@change="handleLawyerChange"
@clear="handleLawyerClear"
@ -484,26 +484,8 @@ import { getRoleInfo } from '/@/utils/role-util';
const employeeList = ref([]);
// 搜索关键词
const searchKeyword = ref('');
// 过滤后的员工列表
const filteredEmployeeList = computed(() => {
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('');
}
// 总数

Loading…
Cancel
Save