// pages/Airtraffic/Airtraffic.js Page({ data: { name:'Airtraffic', selectedTime: '--时--分', selectedDate: '--年--月--日', selectedIndex1: 0, selectedIndex2: 0, selectedIndex4: 0, selectedIndex5: 0, selectedIndex7: 0, selectedIndex8: 0, selectedIndex9: 0, selectedIndex10: 0, selectedIndex11: 0, selectedIndex12: 0, selectedIndex13: 0, selectedIndex14: 0, selectedIndex15: 0, selectedIndex16: 0, selectedIndex100: 0, selectedIndex101: 0, selectedIndex102: 0, selectedIndex103: 0, selectedIndex104: 0, selectedIndex105: 0, selectedIndex106: 0, selectedIndex107: 0, inputValue1: '', inputValue2: '', inputValue3: '', inputValue6: '', inputValue7: '', inputValue8: '', inputValue15: '', inputValue16: '', inputValue20: '', inputValue21: '', inputValue22: '', inputValue23: '', inputValue100: '', inputValue101: '', inputValue102: '', timezones: ['请选择','UTC-12:00', 'UTC-11:00', 'UTC-10:00', 'UTC-9:00', 'UTC-8:00', 'UTC-7:00', 'UTC-6:00', 'UTC-5:00', 'UTC-4:00', 'UTC-3:00', 'UTC-2:00', 'UTC-1:00', 'UTC+0:00', 'UTC+1:00', 'UTC+2:00', 'UTC+3:00', 'UTC+4:00', 'UTC+5:00', 'UTC+6:00', 'UTC+7:00', 'UTC+8:00', 'UTC+9:00', 'UTC+10:00', 'UTC+11:00', 'UTC+12:00'], workposition:['请选择','区域','进近','塔台','管掉','总调','报告室','其他'], License:['请选择','私用驾驶员执照','商用驾驶员执照','航线运输驾驶员执照','临时执照','无','其它'], ACFT:['请选择','飞机','直升机','滑翔机','其它'], controlledairspace:['请选择','A类空域','B类空域','C类空域','D类空域'], task:['请选择','客运','货运','训练','检查','调机','通用飞行','其它'], plan:['请选择','目视飞行计划','仪表飞行计划','其它'], phase:['请选择','地面/滑行','起飞','爬升','巡航/作业','下降','进近','复飞','着陆','其它'], weather:['请选择','IMC','VMC','雷暴','风切变','紊流','结冰','雨','雪','雾','多云','其它'], lv:['请选择','黎明','昼间','黄昏/曙暮光','夜间/月光','夜间/黑暗','未知'], ATS:['请选择','塔台管制席','地面管制席','主任管制席','助理管制席','程序管制席','雷达管制席','通报协调席','放行许可席','其它'], ATC:['请选择','雷达管制','程序管制','雷达监视下的程序管制','其它'], TCAS:['请选择','是','否'], Advise:['请选择','是','否'], }, //时间选择 onTimeChange: function (event) { this.setData({ selectedTime: event.detail.value }); }, onTimezoneChange: function (event) { this.setData({ selectedIndex1: event.detail.value }); }, onDateChange: function(e) { this.setData({ selectedDate: e.detail.value }); }, //工作时间选择 onInput1: function(event) { this.setData({ inputValue1: event.detail.value }); }, onInput2: function(event) { this.setData({ inputValue2: event.detail.value }); }, onInput3: function(event) { this.setData({ inputValue3: event.detail.value }); }, //岗位选择 onworkposition: function (event) { this.setData({ selectedIndex2: event.detail.value }); }, //工作经历 onInput15: function(event) { this.setData({ inputValue15: event.detail.value }); }, onInput16: function(event) { this.setData({ inputValue16: event.detail.value }); }, //执照选择 onLicense: function(event) { this.setData({ selectedIndex4: event.detail.value }); }, //管制席位 onATS: function (event) { this.setData({ selectedIndex12: event.detail.value }); }, //管制类型 onATC: function (event) { this.setData({ selectedIndex13: event.detail.value }); }, //管制空域 onControlledairspace: function (event) { this.setData({ selectedIndex16: event.detail.value }); }, //航空器一 //航空器种类 onACFT: function(event) { this.setData({ selectedIndex5: event.detail.value }); }, //任务 ontask: function(event) { this.setData({ selectedIndex7: event.detail.value }); }, //计划 onplan: function(event) { this.setData({ selectedIndex8: event.detail.value }); }, //飞行阶段 onphase: function(event) { this.setData({ selectedIndex9: event.detail.value }); }, //飞行高度 onInput6: function(event) { this.setData({ inputValue6: event.detail.value }); }, //天气 onweather: function(event) { this.setData({ selectedIndex10: event.detail.value }); }, //光线条件和能见度 onlv: function(event) { this.setData({ selectedIndex11: event.detail.value }); }, onInput7: function(event) { this.setData({ inputValue7: event.detail.value }); }, onInput8: function(event) { this.setData({ inputValue8: event.detail.value }); }, //TCAS onTCAS: function (event) { this.setData({ selectedIndex14: event.detail.value }); }, //Advise onAdvise: function (event) { this.setData({ selectedIndex15: event.detail.value }); }, //航空器二 //航空器种类 onACFT0: function(event) { this.setData({ selectedIndex100: event.detail.value }); }, //任务 ontask0: function(event) { this.setData({ selectedIndex101: event.detail.value }); }, //计划 onplan0: function(event) { this.setData({ selectedIndex102: event.detail.value }); }, //飞行阶段 onphase0: function(event) { this.setData({ selectedIndex103: event.detail.value }); }, //飞行高度 onInput100: function(event) { this.setData({ inputValue100: event.detail.value }); }, //天气 onweather0: function(event) { this.setData({ selectedIndex104: event.detail.value }); }, //光线条件和能见度 onlv0: function(event) { this.setData({ selectedIndex105: event.detail.value }); }, onInput101: function(event) { this.setData({ inputValue101: event.detail.value }); }, onInput102: function(event) { this.setData({ inputValue102: event.detail.value }); }, //TCAS onTCAS0: function (event) { this.setData({ selectedIndex106: event.detail.value }); }, //Advise onAdvise0: function (event) { this.setData({ selectedIndex107: event.detail.value }); }, //个人信息//姓名电话邮箱 onInput21: function(event) { this.setData({ inputValue21: event.detail.value }); }, onInput22: function(event) { this.setData({ inputValue22: event.detail.value }); }, onInput23: function(event) { this.setData({ inputValue23: event.detail.value }); }, //事件经过 onInput20: function(event) { this.setData({ inputValue20: event.detail.value }); }, //提交与重写 onReset() { this.setData({ selectedTime: '--时--分', selectedDate: '--年--月--日', selectedIndex1: 0, selectedIndex2: 0, selectedIndex4: 0, selectedIndex5: 0, selectedIndex7: 0, selectedIndex8: 0, selectedIndex9: 0, selectedIndex10: 0, selectedIndex11: 0, selectedIndex12: 0, selectedIndex13: 0, selectedIndex14: 0, selectedIndex15: 0, selectedIndex16: 0, selectedIndex100: 0, selectedIndex101: 0, selectedIndex102: 0, selectedIndex103: 0, selectedIndex104: 0, selectedIndex105: 0, selectedIndex106: 0, selectedIndex107: 0, inputValue1: '', inputValue2: '', inputValue3: '', inputValue6: '', inputValue7: '', inputValue8: '', inputValue15: '', inputValue16: '', inputValue20: '', inputValue21: '', inputValue22: '', inputValue23: '', inputValue100: '', inputValue101: '', inputValue102: '', },() => { console.log('Form has been reset'); }) }, // 提交数据 onSubmit: function () { // 获取存储中的 token const token = wx.getStorageSync('token'); if (!token) { console.log('Token 不存在,请先登录'); wx.showToast({ title: '请先登录', icon: 'none' }); return; // 终止提交 } const data = this.data; // 获取各选择项的实际文本值 const timezoneText = data.timezones[data.selectedIndex1]; // 获取时区的实际文本 const workPositionText = data.workposition[data.selectedIndex2]; // 获取岗位的实际文本 const licenseText = data.License[data.selectedIndex4]; // 获取执照类型的实际文本 const acftText = data.ACFT[data.selectedIndex5]; // 获取航空器类型的实际文本 const taskText = data.task[data.selectedIndex7]; // 获取任务的实际文本 const planText = data.plan[data.selectedIndex8]; // 获取计划的实际文本 const phaseText = data.phase[data.selectedIndex9]; // 获取飞行阶段的实际文本 const weatherText = data.weather[data.selectedIndex10]; // 获取天气的实际文本 const lightText = data.lv[data.selectedIndex11]; // 获取光线条件的实际文本 const atsText = data.ATS[data.selectedIndex12]; // 获取管制席位的实际文本 const atcText = data.ATC[data.selectedIndex13]; // 获取管制类型的实际文本 const tcasText = data.TCAS[data.selectedIndex14]; // 获取TCAS的实际文本 const adviseText = data.Advise[data.selectedIndex15]; // 获取建议的实际文本 const acft0Text = data.ACFT[data.selectedIndex100]; // 获取航空器二的类型 const task0Text = data.task[data.selectedIndex101]; // 获取航空器二的任务 const plan0Text = data.plan[data.selectedIndex102]; // 获取航空器二的计划 const phase0Text = data.phase[data.selectedIndex103]; // 获取航空器二的阶段 const weather0Text = data.weather[data.selectedIndex104]; // 获取航空器二的天气 const light0Text = data.lv[data.selectedIndex105]; // 获取航空器二的光线条件 const tcas0Text = data.TCAS[data.selectedIndex106]; // 获取航空器二的TCAS const advise0Text = data.Advise[data.selectedIndex107]; // 获取航空器二的建议 // 提交数据到后端 wx.request({ url: 'http://192.168.137.1:8080/report/add', method: 'POST', header: { 'Authorization': `${token}`, 'content-type': 'application/json' }, data: { selectedTime: data.selectedTime, selectedDate: data.selectedDate, timezone: timezoneText, // 提交时区的实际文本 workPosition: workPositionText,// 提交岗位的实际文本 license: licenseText, // 提交执照类型的实际文本 acftType: acftText, // 提交航空器类型的实际文本 task: taskText, // 提交任务的实际文本 plan: planText, // 提交计划的实际文本 phase: phaseText, // 提交飞行阶段的实际文本 weather: weatherText, // 提交天气的实际文本 lightCondition: lightText, // 提交光线条件的实际文本 ats: atsText, // 提交管制席位的实际文本 atc: atcText, // 提交管制类型的实际文本 tcas: tcasText, // 提交TCAS的实际文本 advise: adviseText, // 提交建议的实际文本 acft0Type: acft0Text, // 提交航空器类型的实际文本 task0: task0Text, // 提交任务的实际文本 plan0: plan0Text, // 提交计划的实际文本 phase0: phase0Text, // 提交飞行阶段的实际文本 weather0: weather0Text, // 提交天气的实际文本 lightCondition0: light0Text, // 提交光线条件的实际文本 ats0: ats0Text, // 提交管制席位的实际文本 atc0: atcT0ext, // 提交管制类型的实际文本 tcas0: tcas0Text, // 提交TCAS的实际文本 advise0: advise0Text, // 提交建议的实际文本 inputValue1: data.inputValue1, inputValue2: data.inputValue2, inputValue3: data.inputValue3, inputValue6: data.inputValue6, inputValue7: data.inputValue7, inputValue8: data.inputValue8, inputValue15: data.inputValue15, inputValue16: data.inputValue16, inputValue20: data.inputValue20, inputValue21: data.inputValue21, inputValue22: data.inputValue22, inputValue23: data.inputValue23, inputValue100: data.inputValue100, inputValue101: data.inputValue101, inputValue102: data.inputValue102, name: data.name }, success: function(res) { console.log('Data submitted successfully:', res); }, fail: function(err) { console.error('Error submitting data:', err); } }); // 使用腾讯混元智能体的 API 调用 wx.request({ url: 'https://yuanqi.tencent.com/openapi/v1/agent/chat/completions', method: 'POST', header: { 'X-Source': 'openapi', 'Content-Type': 'application/json', 'Authorization': 'Bearer jSNTZONSnnzJ2uuQT7IEgXlPzfE4lX5f' // 替换为你的实际 Bearer Token }, data: { assistant_id: 'ty1W9unZM9IY', // 替换为实际的 assistant_id user_id: '123456', // 替换为实际的用户ID stream: false, messages: [ { role: 'user', content: [ { type: 'text', text: JSON.stringify(data) // 将用户填写的数据转换为字符串 } ] } ] }, success: function (res) { console.log('API 调用成功: ', res); // 打印完整的 API 响应 console.log('API 返回的 choices:', res.data.choices); // 检查数据结构 // 检查选择项并从中提取智能体回复 if (res.data && res.data.choices && res.data.choices.length > 0) { // 确保 message 字段的内容可以被访问 const messageContent = res.data.choices[0].message?.content; let agentReply; // 如果 messageContent 存在并且是一个数组,则提取内容 if (Array.isArray(messageContent) && messageContent.length > 0) { agentReply = messageContent[0].text; // 假设内容在数组的第一个元素中 } else { agentReply = messageContent || '无法获取智能体的回复'; } // 跳转到详情页面并传递数据和智能体的回复 wx.navigateTo({ url: '/pages/FlightCrewDetails/FlightCrewDetails', success: function (navRes) { navRes.eventChannel.emit('sendData', { details: data, // 用户输入的数据 agentReply: agentReply // 智能体的回复 }); } }); } else { console.log('API 响应中没有 choices'); } }, fail: function (err) { console.log('智能体调用失败', err); } }); }, onLoad(options) { }, onReady() { }, onShow() { }, onHide() { }, onUnload() { }, onPullDownRefresh() { }, onReachBottom() { }, onShareAppMessage() { } })