0924
This commit is contained in:
@ -424,6 +424,16 @@
|
||||
<div class="step-item" v-for="(step, index) in formData.steps" :key="index">
|
||||
<div class="step-number">{{ index + 1 }}</div>
|
||||
<el-input v-model="step.content" placeholder="输入试验步骤" />
|
||||
<el-button
|
||||
v-if="formData.steps.length > 1"
|
||||
type="text"
|
||||
size="small"
|
||||
class="delete-step-btn"
|
||||
@click="deleteStep(index)"
|
||||
style="color: #f56c6c"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</div>
|
||||
<el-button type="text" size="small" class="add-step-btn" @click="addStep">添加步骤</el-button>
|
||||
</div>
|
||||
@ -579,6 +589,7 @@ import router from '@/router';
|
||||
import { ElMessage, ElMessageBox } from 'element-plus';
|
||||
import { shiyanDetail, shiyanlist, addshiyan, updateshiyan } from '@/api/zhinengxunjian/shiyan/index';
|
||||
import { xunjianUserlist } from '@/api/zhinengxunjian/xunjian/index';
|
||||
import { addjiedian } from '@/api/zhinengxunjian/jiedian/index';
|
||||
// 1. 选项卡状态管理
|
||||
const activeTab = ref('plan'); // 默认为"巡检计划"
|
||||
const timeRange = ref('month'); // 统计时间范围:月/周/日
|
||||
@ -839,20 +850,14 @@ const userList = ref([]);
|
||||
const getUsersList = async () => {
|
||||
try {
|
||||
const response = await xunjianUserlist();
|
||||
const userRows =
|
||||
response?.data?.rows && Array.isArray(response.data.rows)
|
||||
? response.data.rows
|
||||
: response?.rows && Array.isArray(response.rows)
|
||||
? response.rows
|
||||
: Array.isArray(response)
|
||||
? response
|
||||
: [];
|
||||
// 适配新接口格式:检查code为200且rows为数组
|
||||
const userRows = response.code === 200 && response.rows && Array.isArray(response.rows) ? response.rows : [];
|
||||
|
||||
userList.value = userRows
|
||||
.filter((item) => item && typeof item === 'object')
|
||||
.map((item, index) => ({
|
||||
label: item.userName || `用户${index + 1}`,
|
||||
value: item.id || `id_${index}`
|
||||
.map((item) => ({
|
||||
label: item.userName || '未知用户',
|
||||
value: String(item.userId || '') // 使用userId作为唯一标识
|
||||
}));
|
||||
|
||||
if (userList.value.length === 0) {
|
||||
@ -933,8 +938,40 @@ const handleSave = async () => {
|
||||
// 编辑模式:调用更新接口
|
||||
response = await updateshiyan(requestData);
|
||||
} else {
|
||||
// 处理步骤数据格式
|
||||
const stepsData = formData.value.steps
|
||||
.filter((step) => step.content.trim())
|
||||
.map((step, index) => ({
|
||||
createTime: new Date().toISOString(),
|
||||
updateTime: new Date().toISOString(),
|
||||
remark: step.content.trim(),
|
||||
status: '1', // 使用数字代码
|
||||
// module值为2(与工单列表的1不同)
|
||||
module: 2,
|
||||
sort: index + 1
|
||||
}));
|
||||
|
||||
// 首先调用addjiedian接口
|
||||
const jiedianResponse = await addjiedian(stepsData);
|
||||
|
||||
if (jiedianResponse.code !== 200) {
|
||||
ElMessage.error('创建步骤失败');
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取返回的ids,实际返回格式中msg字段包含ids字符串
|
||||
let nodeIds = '';
|
||||
if (jiedianResponse.code === 200 && jiedianResponse.msg) {
|
||||
nodeIds = jiedianResponse.msg;
|
||||
} else {
|
||||
ElMessage.warning('未获取到有效的步骤ID');
|
||||
return;
|
||||
}
|
||||
|
||||
// 新增模式:调用添加接口(删除请求参数中的id,避免后端报错)
|
||||
const { id, ...addData } = requestData;
|
||||
// 添加nodeIds字段
|
||||
addData.nodeIds = nodeIds;
|
||||
response = await addshiyan(addData);
|
||||
}
|
||||
|
||||
@ -1041,10 +1078,22 @@ const handleEditRecord = async (row) => {
|
||||
const recordDetail = detailResponse.data.rows?.[0] || detailResponse.data;
|
||||
// 兼容两种数据结构:可能在rows数组中,也可能直接在data中
|
||||
|
||||
// 3. 处理testStep:将逗号分隔的字符串转换为步骤数组
|
||||
// 3. 处理步骤数据:优先从nodes数组中提取
|
||||
const steps = [];
|
||||
if (recordDetail.testStep) {
|
||||
// 拆分字符串(例如 "1. 213,2. 321" → ["1. 213", "2. 321"])
|
||||
// 如果有nodes数组,优先从nodes中提取步骤数据
|
||||
if (recordDetail.nodes && Array.isArray(recordDetail.nodes)) {
|
||||
// 复制nodes数组并按code升序排序
|
||||
const sortedNodes = [...recordDetail.nodes].sort((a, b) => (a.code || 0) - (b.code || 0));
|
||||
// 转换为所需的格式
|
||||
sortedNodes.forEach((node) => {
|
||||
if (node.intendedPurpose && node.intendedPurpose.trim()) {
|
||||
steps.push({ content: node.intendedPurpose.trim() });
|
||||
}
|
||||
});
|
||||
}
|
||||
// 如果nodes中没有数据,回退到从testStep字符串解析
|
||||
else if (recordDetail.testStep) {
|
||||
// 拆分字符串
|
||||
const stepItems = recordDetail.testStep.split(',');
|
||||
stepItems.forEach((stepText) => {
|
||||
// 移除序号前缀(如"1. "),只保留内容
|
||||
@ -1137,6 +1186,17 @@ const addStep = () => {
|
||||
formData.value.steps.push({ content: '' });
|
||||
};
|
||||
|
||||
// 删除步骤
|
||||
const deleteStep = (index) => {
|
||||
// 确保至少保留一个步骤
|
||||
if (formData.value.steps.length <= 1) {
|
||||
ElMessage.warning('至少需要保留一个步骤');
|
||||
return;
|
||||
}
|
||||
// 从数组中删除指定索引的步骤
|
||||
formData.value.steps.splice(index, 1);
|
||||
};
|
||||
|
||||
// 添加新设备
|
||||
const addEquipment = () => {
|
||||
if (newEquipment.value.trim()) {
|
||||
|
||||
Reference in New Issue
Block a user