add-passenger.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import passengerService from '../../utils/passenger.js';
  2. Page({
  3. data:{
  4. name:'',
  5. idTypes:['身份证','回乡证','护照','台胞证'],
  6. idTypeIndex:0,
  7. idcard:'',
  8. phone:'',
  9. from: '' // 来源页面:order(订单页面)或 management(管理页面)
  10. },
  11. onLoad(options) {
  12. // 获取来源页面参数
  13. this.setData({ from: options.from || 'order' });
  14. },
  15. onNameInput(e){this.setData({name:e.detail.value})},
  16. onIdTypeChange(e){this.setData({idTypeIndex:e.detail.value})},
  17. onIdCardInput(e){this.setData({idcard:e.detail.value})},
  18. onPhoneInput(e){this.setData({phone:e.detail.value})},
  19. savePassenger(){
  20. const { name, idcard, phone, idTypes, idTypeIndex, from } = this.data;
  21. if(!name || !idcard || !phone){
  22. wx.showToast({title:'请填写完整',icon:'none'});
  23. return;
  24. }
  25. const passengerData = {
  26. name: name.trim(),
  27. idtype: idTypes[idTypeIndex],
  28. idcard: idcard.trim(),
  29. phone: phone.trim()
  30. };
  31. wx.showLoading({ title: '保存中...' });
  32. try {
  33. // 保存到乘车人管理系统
  34. const savedPassenger = passengerService.addPassenger(passengerData);
  35. // 如果来自订单页面,同时添加到订单的乘车人列表
  36. if (from === 'order') {
  37. let pages = getCurrentPages();
  38. let prevPage = pages[pages.length - 2];
  39. if (prevPage && prevPage.route === 'pages/order/order') {
  40. let passengers = prevPage.data.passengers || [];
  41. passengers.push(savedPassenger);
  42. prevPage.setData({ passengers });
  43. }
  44. }
  45. wx.hideLoading();
  46. wx.showToast({ title: '保存成功', icon: 'success' });
  47. setTimeout(() => {
  48. wx.navigateBack();
  49. }, 1500);
  50. } catch (error) {
  51. wx.hideLoading();
  52. wx.showToast({
  53. title: error.message || '保存失败',
  54. icon: 'none'
  55. });
  56. }
  57. }
  58. })