This commit is contained in:
dhr
2025-10-11 09:59:06 +08:00
parent 0022ca0d01
commit b6fabc0c4c
7 changed files with 70 additions and 55 deletions

View File

@ -39,7 +39,7 @@
</el-select> </el-select>
</div> </div>
<div class="filter-item"> <div class="filter-item">
<el-select v-model="searchParams.executor" placeholder="执行人"> <el-select v-model="searchParams.sendPerson" placeholder="执行人">
<el-option label="全部" value="" /> <el-option label="全部" value="" />
<el-option v-for="user in usersList" :key="user.id" :label="user.name" :value="user.id" /> <el-option v-for="user in usersList" :key="user.id" :label="user.name" :value="user.id" />
</el-select> </el-select>
@ -396,7 +396,7 @@ const searchParams = ref({
keyword: '', keyword: '',
taskStatus: '', taskStatus: '',
type: '', type: '',
executor: '' sendPerson: ''
}); });
// 执行人列表相关 // 执行人列表相关
@ -469,7 +469,7 @@ async function getTaskList() {
pageSize: pageSize.value, pageSize: pageSize.value,
status: searchParams.value.taskStatus || undefined, status: searchParams.value.taskStatus || undefined,
type: searchParams.value.type || undefined, type: searchParams.value.type || undefined,
executor: searchParams.value.executor || undefined, sendPerson: searchParams.value.sendPerson || undefined,
keyword: searchParams.value.keyword keyword: searchParams.value.keyword
}); });
@ -646,17 +646,6 @@ const handleSearch = () => {
getTaskList(); // 调用接口获取数据 getTaskList(); // 调用接口获取数据
}; };
const resetFilters = () => {
searchParams.value = {
keyword: '',
taskStatus: '',
type: '',
executor: ''
};
currentPage.value = 1;
getTaskList();
};
// 创建报修任务弹窗相关 // 创建报修任务弹窗相关
const createTaskDialogVisible = ref(false); const createTaskDialogVisible = ref(false);
const createTaskFormRef = ref(null); const createTaskFormRef = ref(null);

View File

@ -37,8 +37,8 @@
<div class="filter-item"> <div class="filter-item">
<el-select v-model="workOrderStatus" placeholder="全部状态" clearable> <el-select v-model="workOrderStatus" placeholder="全部状态" clearable>
<el-option label="全部状态" value="all"></el-option> <el-option label="全部状态" value="all"></el-option>
<el-option label="已接单" value="accepted"></el-option> <el-option label="待派单" value="pending"></el-option>
<el-option label="待处理" value="pending"></el-option> <el-option label="已派单" value="accepted"></el-option>
<el-option label="执行中" value="executing"></el-option> <el-option label="执行中" value="executing"></el-option>
<el-option label="已完成" value="completed"></el-option> <el-option label="已完成" value="completed"></el-option>
</el-select> </el-select>
@ -464,16 +464,6 @@ const workOrderStatus = ref('all');
const priority = ref('all'); const priority = ref('all');
const createDate = ref(''); const createDate = ref('');
// 优先级转类名
const mapPriorityToClass = (priority) => {
const priorityMap = {
1: 'high',
2: 'medium',
3: 'low'
};
return priorityMap[priority] || 'low';
};
// 工单数据 // 工单数据
const rawTableData = ref([]); const rawTableData = ref([]);
@ -491,6 +481,9 @@ const fetchWorkOrderList = async () => {
pageSize: pageSize.value pageSize: pageSize.value
}; };
// 调试输出,检查参数是否正确
console.log('请求参数:', params);
const response = await gongdanlist(params); const response = await gongdanlist(params);
if (response.code === 200 && response.rows) { if (response.code === 200 && response.rows) {
@ -522,6 +515,38 @@ const fetchWorkOrderList = async () => {
} }
}; };
// 类型映射函数 - 页面类型转接口code
const mapTypeToTypeCode = (type) => {
const typeMap = {
'maintenance': 1, // 维护保养
'inspection': 2, // 检查检测
'installation': 3, // 安装调试
'upgrade': 4 // 升级改造
};
return typeMap[type] || null;
};
// 状态映射函数 - 页面状态转接口code
const mapStatusToStatusCode = (status) => {
const statusMap = {
'pending': 1, // 待派单
'accepted': 2, // 已派单
'executing': 3, // 执行中
'completed': 4 // 已完成
};
return statusMap[status] || null;
};
// 优先级映射函数 - 页面优先级转接口code
const mapPriorityToLevelCode = (priority) => {
const priorityMap = {
'high': 3, // 高
'medium': 2, // 中
'low': 1 // 低
};
return priorityMap[priority] || null;
};
// 类型映射函数 - 页面类型转接口code // 类型映射函数 - 页面类型转接口code
const mapTypeToCode = (type) => { const mapTypeToCode = (type) => {
const typeMap = { const typeMap = {
@ -647,10 +672,10 @@ const pagedTableData = computed(() => {
let statusText = ''; let statusText = '';
switch (workOrderStatus.value) { switch (workOrderStatus.value) {
case 'accepted': case 'accepted':
statusText = '已单'; statusText = '已单';
break; break;
case 'pending': case 'pending':
statusText = '待处理'; statusText = '待派单';
break; break;
case 'executing': case 'executing':
statusText = '执行中'; statusText = '执行中';
@ -768,6 +793,7 @@ const getStepStatusText = (status) => {
const handleSearch = () => { const handleSearch = () => {
currentPage.value = 1; // 重置到第一页 currentPage.value = 1; // 重置到第一页
fetchWorkOrderList(); // 触发API请求获取数据
}; };
// 重置筛选 // 重置筛选

View File

@ -39,8 +39,8 @@
<div class="filter-item"> <div class="filter-item">
<el-select v-model="workOrderStatus" placeholder="全部状态" clearable> <el-select v-model="workOrderStatus" placeholder="全部状态" clearable>
<el-option label="全部状态" value="all"></el-option> <el-option label="全部状态" value="all"></el-option>
<el-option label="待派单" value="accepted"></el-option> <el-option label="待派单" value="pending"></el-option>
<el-option label="待处理" value="pending"></el-option> <el-option label="已派单" value="accepted"></el-option>
<el-option label="执行中" value="executing"></el-option> <el-option label="执行中" value="executing"></el-option>
<el-option label="已完成" value="completed"></el-option> <el-option label="已完成" value="completed"></el-option>
</el-select> </el-select>
@ -792,10 +792,10 @@ const pagedTableData = computed(() => {
let statusText = ''; let statusText = '';
switch (workOrderStatus.value) { switch (workOrderStatus.value) {
case 'accepted': case 'accepted':
statusText = '已单'; statusText = '已单';
break; break;
case 'pending': case 'pending':
statusText = '待处理'; statusText = '待派单';
break; break;
case 'executing': case 'executing':
statusText = '执行中'; statusText = '执行中';

View File

@ -35,7 +35,7 @@
</div> </div>
<div class="filter-item"> <div class="filter-item">
<el-select v-model="executor" placeholder="维修人" :loading="loadingUsers"> <el-select v-model="sendPerson" placeholder="维修人" :loading="loadingUsers">
<el-option label="全部维修人" value="all"></el-option> <el-option label="全部维修人" value="all"></el-option>
<el-option v-for="user in usersList" :key="user.id" :label="user.name" :value="user.id"></el-option> <el-option v-for="user in usersList" :key="user.id" :label="user.name" :value="user.id"></el-option>
</el-select> </el-select>
@ -419,7 +419,7 @@ import { qiangxiuDetail, qiangxiulist, addqiangxiu, updateqiangxiu } from '@/api
import { xunjianUserlist } from '@/api/zhinengxunjian/xunjian'; import { xunjianUserlist } from '@/api/zhinengxunjian/xunjian';
const taskStatus = ref(''); const taskStatus = ref('');
const planType = ref('all'); const planType = ref('all');
const executor = ref('all'); const sendPerson = ref('all');
const keyword = ref(''); const keyword = ref('');
// 任务数据 - 添加了更多字段以展示滚动效果 // 任务数据 - 添加了更多字段以展示滚动效果
const tasks = ref([]); const tasks = ref([]);
@ -457,7 +457,7 @@ const handleSearch = () => {
const resetFilters = () => { const resetFilters = () => {
taskStatus.value = 'all'; taskStatus.value = 'all';
planType.value = 'all'; planType.value = 'all';
executor.value = 'all'; sendPerson.value = 'all';
keyword.value = ''; keyword.value = '';
currentPage.value = 1; currentPage.value = 1;
getTaskList(); getTaskList();
@ -1074,9 +1074,8 @@ async function getTaskList() {
// 构建请求参数,包含筛选条件 // 构建请求参数,包含筛选条件
const requestParams = { const requestParams = {
projectId: 1, projectId: 1,
pageNum: currentPage.value, pageNum: parseInt(currentPage.value, 10),
pageSize: pageSize.value pageSize: parseInt(pageSize.value, 10)
// 严格匹配JSON数据结构
}; };
// 添加任务状态筛选条件 - 严格匹配JSON数据中的status字段 // 添加任务状态筛选条件 - 严格匹配JSON数据中的status字段
@ -1088,7 +1087,7 @@ async function getTaskList() {
'completed': '3', 'completed': '3',
'delayed': '4' 'delayed': '4'
}; };
requestParams.status = statusMap[taskStatus.value] || taskStatus.value; requestParams.status = String(statusMap[taskStatus.value] || taskStatus.value);
} }
// 添加故障类型筛选条件 - 严格匹配JSON数据中的type字段 // 添加故障类型筛选条件 - 严格匹配JSON数据中的type字段
@ -1101,13 +1100,13 @@ async function getTaskList() {
'network': '4', 'network': '4',
'environment': '5' 'environment': '5'
}; };
requestParams.type = typeMap[planType.value] || planType.value; requestParams.type = String(typeMap[planType.value] || planType.value);
} }
// 添加维修人员筛选条件 - 严格匹配JSON数据中的sendPerson字段 // 添加维修人员筛选条件 - 严格匹配JSON数据中的sendPerson字段
if (executor.value && executor.value !== 'all') { if (sendPerson.value && sendPerson.value !== 'all' && sendPerson.value !== '') {
// 直接使用用户ID作为sendPerson参数 // 转换为数字类型以匹配API期望的格式
requestParams.sendPerson = executor.value; requestParams.sendPerson = parseInt(sendPerson.value, 10);
} }
// 添加关键词搜索条件 // 添加关键词搜索条件
@ -1132,7 +1131,7 @@ async function getTaskList() {
// 严格匹配JSON数据中的reportName字段 // 严格匹配JSON数据中的reportName字段
reporter: item.reportName || '未知报修人', reporter: item.reportName || '未知报修人',
// 严格匹配JSON数据中的sendPerson和sendPersonVo字段 // 严格匹配JSON数据中的sendPerson和sendPersonVo字段
maintainer: item.sendPersonVo?.userName || '未分配', maintainer: item.sendPersonVo?.userName || (item.sendPerson ? `用户ID: ${item.sendPerson}` : '未分配'),
completeTime: item.reportFinishTime ? formatDate(item.reportFinishTime) : '', completeTime: item.reportFinishTime ? formatDate(item.reportFinishTime) : '',
actionText: getActionText(item.status), actionText: getActionText(item.status),
@ -1165,7 +1164,11 @@ async function getTaskList() {
: mapped; : mapped;
tasks.value = filtered; tasks.value = filtered;
total.value = kw ? filtered.length : res.total || filtered.length; if (res.total !== undefined) {
total.value = kw ? filtered.length : res.total;
} else {
total.value = filtered.length;
}
} else { } else {
tasks.value = []; tasks.value = [];
total.value = 0; total.value = 0;

View File

@ -19,7 +19,7 @@
</div> </div>
</div> </div>
<!-- 筛选栏 (默认隐藏) --> <!-- 筛选栏 -->
<div class="filter-bar"> <div class="filter-bar">
<div class="filter-container"> <div class="filter-container">
<div class="filter-item"> <div class="filter-item">
@ -456,8 +456,8 @@ const getTaskList = async () => {
// 添加维修人员筛选条件 - 严格匹配JSON数据中的sendPerson字段 // 添加维修人员筛选条件 - 严格匹配JSON数据中的sendPerson字段
if (executor.value && executor.value !== 'all') { if (executor.value && executor.value !== 'all') {
// 直接使用用户ID作为sendPerson参数 // 确保用户ID为字符串类型与接口期望格式一致
params.sendPerson = executor.value; params.sendPerson = executor.value.toString();
} }
// 添加时间范围筛选条件 // 添加时间范围筛选条件

View File

@ -443,9 +443,6 @@ const handleInspectionManagement3 = () => {
margin-bottom: 16px; margin-bottom: 16px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
} }
/* */
/* 内容容器样式 */ /* 内容容器样式 */
.content-container { .content-container {
display: flex; display: flex;

View File

@ -39,8 +39,8 @@
<div class="filter-item"> <div class="filter-item">
<el-select v-model="workOrderStatus" placeholder="全部状态" clearable> <el-select v-model="workOrderStatus" placeholder="全部状态" clearable>
<el-option label="全部状态" value="all"></el-option> <el-option label="全部状态" value="all"></el-option>
<el-option label="待派单" value="accepted"></el-option> <el-option label="待派单" value="pending"></el-option>
<el-option label="待处理" value="pending"></el-option> <el-option label="已派单" value="accepted"></el-option>
<el-option label="执行中" value="executing"></el-option> <el-option label="执行中" value="executing"></el-option>
<el-option label="已完成" value="completed"></el-option> <el-option label="已完成" value="completed"></el-option>
</el-select> </el-select>
@ -1003,10 +1003,10 @@ const pagedTableData = computed(() => {
let statusText = ''; let statusText = '';
switch (workOrderStatus.value) { switch (workOrderStatus.value) {
case 'accepted': case 'accepted':
statusText = '已单'; statusText = '已单';
break; break;
case 'pending': case 'pending':
statusText = '待处理'; statusText = '待派单';
break; break;
case 'executing': case 'executing':
statusText = '执行中'; statusText = '执行中';