fix: 更新任务列表屏幕标题为“任务模版”,并在任务编辑页面中处理二维码解析失败时清空相关字段

This commit is contained in:
xudan 2025-07-24 16:28:52 +08:00
parent 3576a82b8a
commit e18d0314e6
2 changed files with 27 additions and 4 deletions

View File

@ -27,7 +27,7 @@ function HomeStackNavigator() {
<HomeStack.Screen
name="TaskList"
component={TaskListScreen}
options={{ title: '任务列表' }}
options={{ title: '任务模版' }}
/>
<HomeStack.Screen
name="TaskEdit"

View File

@ -126,6 +126,7 @@ export default function TaskEditScreen() {
.trim();
const qrData = JSON.parse(cleanedContent);
console.log('二维码解析成功:', qrData);
// 创建新的任务对象,保持原有数据不变
@ -144,7 +145,6 @@ export default function TaskEditScreen() {
value: '', // 清空为空字符串
};
});
// 然后用二维码数据填充匹配的字段
Object.keys(qrData).forEach(qrKey => {
const matchingParam = task.detail!.inputParams.find(
@ -178,8 +178,31 @@ export default function TaskEditScreen() {
// 扫描成功后,按钮状态变回"扫描二维码获取信息"
setIsWaitingForQrCode(false);
} catch (error) {
// 解析失败不报错,按照需求静默处理
console.log('二维码信息解析失败,但不影响使用:', error);
// 解析失败时清空二维码输入框和表单字段
setQrCodeInfo('');
// 清空所有表单字段
if (task && task.detail && task.detail.inputParams) {
const clearedTask = { ...task };
if (!clearedTask.parameters) {
clearedTask.parameters = {};
}
task.detail.inputParams.forEach(param => {
const currentParam = clearedTask.parameters[param.name] || {};
clearedTask.parameters[param.name] = {
...currentParam,
value: '', // 清空为空字符串
};
});
setTask(clearedTask);
if (!isModified) {
setIsModified(true);
}
}
console.log('二维码信息解析失败,已清空相关字段:', error);
}
};