You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

509 lines
15 KiB

// 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() {
}
})