<style> .SingleTicketManager .el-input--prefix .el-input__inner { padding-left: 30px; } .SingleTicketManager_list { padding: 20px 0 0 0; } .SingleTicketManager ._ol_info { font-size: 12px; height: 100%; } .SingleTicketManager ._ol_info._edHeight { height: 200px; } .SingleTicketManager ._ol_color { font-size: 12px; width: 100%; margin-bottom: 20px; } .SingleTicketManager ._ol_color li { float: left; padding: 0 15px; display: flex; align-items: center; } .SingleTicketManager ._ol_color li ._cl { border-radius: 3px; display: inline-block; width: 5px; height: 12px; margin-right: 5px; } .SingleTicketManager ._red { background-color: #e95252; } .SingleTicketManager ._red_text { color: #e95252; } .SingleTicketManager ._green { background-color: #47bf8c; } .SingleTicketManager ._green_text { color: #47bf8c; } .SingleTicketManager ._blu { background-color: #2aaef2; } .SingleTicketManager ._blu_text { color: #2aaef2; } .SingleTicketManager ._ol_list { margin-top: 20px; min-height: 500px; } .SingleTicketManager ._ol_list>li { margin: 20px 0 0px 0px; transition: linear all 0.5s; background-color: #fff; border: 1px solid #dddddd; border-left: 0; position: relative; padding-top: 10px; } .SingleTicketManager ._ol_list>li:hover { box-shadow: 0px 0px 20px rgba(191, 191, 191, 1); transition: all linear 0.5s; } .SingleTicketManager ._oll_tit { color: #333333; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .SingleTicketManager ._oll_tit span { display: inline-block; padding: 1px 10px; font-size: 12px; border: solid 1px #ff9000; color: #ff9000; border-radius: 4px; } .SingleTicketManager ._oll_line { max-width: 5px; min-width: 5px; height: 100%; position: absolute; left: 0; top: 0; z-index: 50; background: rgba(233, 82, 82, 1); border-top-left-radius: 4px; border-bottom-left-radius: 4px; display: inline-block; } .SingleTicketManager ._oll_line._o_green { background: #47bf8c; } .SingleTicketManager ._oll_line._o_blu { background: #2aaef2; } .SingleTicketManager ._oll_info { max-width: 100%; } .SingleTicketManager ._oll_img { height: 45px; width: 45px; border-radius: 50%; margin: 5px 0 0 15px; margin-left: 20px; display: inline-block; } .SingleTicketManager ._oll_adrr { color: white; font-size: 12px; margin-top: 8px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: inline-block; padding: 4px 9px; background-color: #2aaef2; border-radius: 2px; } .SingleTicketManager ._oll_time { display: inline-block; background-color: #efefef; border-radius: 4px; color: #999999; font-size: 12px; padding: 2px 10px; margin-top: 10px; } .SingleTicketManager ._oll_food { min-width: 64px; max-width: 64px; height: 36px; background: rgba(42, 174, 242, 1); border-radius: 4px; margin: 0 30px; color: white; line-height: 36px; text-align: center; padding: 0 10px; overflow: hidden; } .SingleTicketManager .InfoChangeLog { max-width: 250px; height: auto; min-width: 250px; max-height: 220px; background-color: #ffffff; position: absolute; left: 0; z-index: 50; top: 70px; padding: 30px 20px 20px 0; box-shadow: 0px 0px 14px 0px #adadad; } .SingleTicketManager .InfoChangeLog .close { color: #cccccc; cursor: pointer; position: absolute; right: 10px; top: 10px; width: 17px; height: 17px; } .wangfan { color: #2aaef2 !important; font-size: 12px !important; display: inline-block !important; padding: 4px 9px !important; background-color: white !important; border-radius: 9px !important; border: 1px solid #2aaef2 !important; width: auto !important; height: auto !important; margin-left: 0 !important; } .wangfan.hollowFixedBtn:hover { color: #ffffff; border-color: #2aaef2; background-color: #2aaef2; } .wangfan.hollowFixedBtn { cursor: pointer; } ._destination { text-align: center; padding: 0 20px 0 0; } ._destination .iconfont { color: #2aaef2; } ._destination p ._destination_line { color: #b7b7b7; position: relative; top: -3px; } ._destination p ._destination_name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; width: 50px; display: inline-block; } ._CNY { height: 100%; display: flex; align-items: center; color: #333333; font-size: 16px; padding-left: 40px; border-left: 1px dashed #dcdfe6; min-width: 170px; } ._CNY span { color: #47bf8c; font-size: 18px; } .TMN_Seat { height: 100%; display: flex; } .SingleTicketManager .TK_SeatList { height: 60px; background-color: #f9f9f9; padding-right: 3px; } .SingleTicketManager .TK_SeatList>ul>li:nth-child(1) { margin-left: 5px; } .SingleTicketManager .TK_SeatList>ul>li { float: left; text-align: center; margin: 5px 4px 0 0; } .SingleTicketManager .TK_SeatList>ul>li:last-child { margin-right: 0; } .SingleTicketManager .TK_SeatList .iconfont { color: #d1d1d1; display: inline-block; margin-top: 5px; } .SingleTicketManager .TK_SeatList ._num1 { font-size: 18px; color: #333333; height: 28px; font-family: PingFangSC-Semibold, sans-serif; } .SingleTicketManager .TK_SeatList ._num2 { font-size: 18px; color: #47bf8c; height: 28px; font-family: PingFangSC-Semibold, sans-serif; cursor: pointer; } .SingleTicketManager .TK_SeatList ._num3 { font-size: 16px; color: #e95252; height: 28px; font-family: PingFangSC-Semibold, sans-serif; } .TK_SeatList ._wz { color: #666666; cursor: pointer; } .TK_SeatList ._yiyong { cursor: pointer; text-decoration: underline; } .TMA_raduis>ul { display: -webkit-box; align-items: center; } .TMA_raduis>ul>li {} .TMA_raduis>ul>li._head { display: flex; align-items: center; } .TMA_raduis>ul>li._head img { height: 26px; width: 26px; border-radius: 50%; margin-left: 15px; } .TMA_raduis>ul>li._head span { padding-left: 7px; display: inline-block; margin-right: 25px; } ._jztime { color: #666666; margin: 0 12px; } ._jztime .PingFangSC { font-size: 12px; } ._jztime ._text { font-size: 12px; } ._btn .hollowFixedBtn { padding: 6px 11px; width: 60px; margin-right: 10px; font-size: 12px; } .addSingleTicketManager { overflow: hidden; display: none; overflow: auto; z-index: 999; position: fixed; min-width: 1200px; bottom: 0; border-top: 3px solid #38425d; background-color: #f9f9f9; left: 50px; padding: 10px; } .edHeight { display: block; } ._add_t { padding-left: 10px; border-left: 3px solid #e95252; color: #333; font-size: 16px; font-family: "PingFangSC-Fine"; height: 30px; line-height: 30px; } .top-btn { text-align: right; position: absolute; top: 10px; right: 10px; } ._add_sel { padding: 10px 15px 0 15px; border-bottom: 1px dashed #dadada; } .SingleTicketManager .el-pagination { border: none !important; } ._add_sel>ul>li { margin-right: 15px; float: left; } ._add_sel>ul>li input, ._add_ret>ul>li input { height: 30px; } ._add_ret>ul>li { margin-bottom: 20px; } ._add_sel_t { color: #6666; font-size: 12px; padding: 8px 0; } ._add_hangban { padding: 0px 15px; border-bottom: 1px dashed #dadada; } ._add_hangban>li { float: left; display: -webkit-box; padding: 20px 0; overflow: auto; } ._add_hangban>li>div { margin-right: 20px; } ._add_hangban>li:nth-child(2) { border-left: 1px dashed #dadada; padding-left: 10px; } ._add_go { display: flex; } ._add_go>span { font-size: 14px; color: #000000; padding-right: 15px; } ._add_go>div { font-size: 12px; color: #666666; background-color: #e0f4ff; width: 230px; height: 175px; border-radius: 4px; } ._add_go>div>p:nth-child(1) { padding: 0 13px; color: #387ea5; background-color: #cbe9fa; height: 34px; line-height: 34px; } ._add_go>div>p:nth-child(1) .icon-xingzhuang { float: right; font-size: 12px; margin-top: 2px; cursor: pointer; } ._add_go>div>p:nth-child(1) .icon-xingzhuang:hover { color: #e95252; } ._add_info { margin-top: 12px; padding: 0 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } ._add_hbh { padding: 0 0 0 10px; margin-top: 14px; display: inline-block; } ._add_hbh em { font-style: normal; display: inline-block; width: 55px; text-align: right; } ._add_hbh .el-input--prefix .el-input__icon { line-height: 20px !important; } ._add_hbh .el-input--prefix .el-icon-date { display: none; } ._add_hbh .el-select, ._add_hbh .el-input .el-input__inner, ._add_hbh .el-select .el-input { height: 30px; font-size: 12px; border-color: #5395b9 !important; } ._add_go .el-input .el-input__inner { height: 30px; } ._add_hbh .el-select .el-input .el-select__caret { color: #5395b9 !important; } ._add_hbh .el-select .el-input.is-focus .el-input__inner { border-color: #5395b9 !important; } ._add_hbh .el-select-dropdown__item.selected { background: #5395b9 !important; } ._add_hbh .el-select-dropdown__item { height: 20px !important; line-height: 20px !important; } ._add_hbh .el-select-dropdown__item span { line-height: 20px !important; } ._add_date input { padding-left: 15px !important; padding-right: 15px !important; } .SingleTicketManager ._add_btn { float: right; display: inline-block; color: #b7ddf2; background-color: #5294b8; padding: 1px 5px; border-radius: 10px; cursor: pointer; line-height: 16px; margin-top: 8px; } ._add_ret { padding: 10px 0 0 0; } ._add_ret li { float: left; margin-right: 15px; } ._add_ret li em { font-size: 12px; color: #6666; font-style: normal; width: 80px; display: inline-block; text-align: right; } ._add_ret li._add_saveBtn { float: right; margin-top: 8px; } ._command_tb { width: -webkit-fill-available; margin-top: 10px; text-align: left; } ._command_tb tr:first-child { background-color: #cbe9fa; } ._command_tb tr th { font-size: 12px; color: #387ea5; padding: 8px; } ._command_tb tr td:first-child { color: #387ea5; } ._command_tb tr td { color: #333333; padding: 8px; font-size: 12px; background-color: #e0f4ff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } ._command_tb thead, ._command_tb tbody tr { display: table; width: 100%; table-layout: fixed; } ._tripDetails { padding: 0; box-shadow: 0px 1px 3px 0px #dedede; } ._tripDetails .popper__arrow::after { border-bottom-color: #ededed !important; } ._tripDetails table { padding: 10px 0 0 20px; background-color: #ededed; border-collapse: collapse; border: 1px solid #d2d2d2; font-size: 12px; } ._tripDetails table th { background-color: #ededed; padding: 5px; } ._tripDetails table td { background-color: #ffffff; padding: 9px 15px; color: #333333; border: 1px solid #d2d2d2; } ._tripDetails table td._d_name { background-color: #ededed; } ._tripDetails table ._color_666 { color: #666666; } ._tripDetails table tr._color_666 th { padding: 9px 15px; } ._trip_CNY { width: auto !important; padding: 10px !important; background-color: #ffffff; } ._trip_CNY table { background-color: #ededed; border-collapse: collapse; } ._trip_CNY table ._rb_bor { border-right: 1px dashed #d3d3d3; border-bottom: 1px dashed #d3d3d3; } ._trip_CNY table ._lb_bor { border-right: 1px dashed #d3d3d3; border-top: 1px dashed #d3d3d3; } ._trip_CNY table ._rt_bor { border-left: 1px dashed #d3d3d3; border-bottom: 1px dashed #d3d3d3; } ._trip_CNY table ._lt_bor { border-left: 1px dashed #d3d3d3; border-top: 1px dashed #d3d3d3; } ._trip_CNY table td { padding: 15px; text-align: left; } ._trip_CNY table td ._CNY_name { display: inline-block; width: 21px; height: 21px; font-size: 12px; color: #ffffff; background-color: #2aaef2; line-height: 21px; text-align: center; border-radius: 50%; } ._trip_CNY table td ._CNY_num { color: #333333; position: relative; top: 2px; } ._CNY p { color: #333333; cursor: pointer; text-decoration: underline; font-size: 14px; } ._allWidth>span { padding-right: 10px; } ._add_go_label { padding-right: 15px; } .commandLine { width: 100%; padding: 2px 5px; background-color: #333333; display: flex; color: white; } .commandLine .cmd_input { width: 100%; background-color: #333333; } .commandLine .cmd_input .el-textarea__inner { background-color: #333333; border: none; font-size: 12px; color: white; padding-left: 5px; } .SingleTicketManager .InfoChangeLog .changLog { background-color: #f9f9f9; height: auto; max-height: 170px; width: 100%; overflow: auto; } .SingleTicketManager .InfoChangeLog .changLog ul { margin-left: 20px; } .SingleTicketManager .InfoChangeLog .changLog li { border-left: 1px solid #e9e9e9; position: relative; padding-bottom: 15px; padding-left: 20px; } .SingleTicketManager .InfoChangeLog .changLog li p { text-align: left; } .SingleTicketManager .InfoChangeLog .changLog li .radius { width: 7px; height: 7px; border-radius: 50%; display: inline-block; position: absolute; left: -4px; top: 4px; } .SingleTicketManager .InfoChangeLog .changLog li.red .radius { background-color: #e95252; } .SingleTicketManager .InfoChangeLog .changLog li.green .radius { background-color: #47bf8c; } .SingleTicketManager .InfoChangeLog .time { color: #666666; padding-bottom: 5px; } .SingleTicketManager .InfoChangeLog .changLog::-webkit-scrollbar, .SingleTicketManager ._ol_info::-webkit-scrollbar, .addSingleTicketManager::-webkit-scrollbar, ._add_hangban>li::-webkit-scrollbar, .Journal .changLogList::-webkit-scrollbar { width: 4px; height: 8px; } .SingleTicketManager .InfoChangeLog .changLog::-webkit-scrollbar-thumb, .SingleTicketManager ._ol_info::-webkit-scrollbar-thumb, .addSingleTicketManager::-webkit-scrollbar-thumb, ._add_hangban>li::-webkit-scrollbar-thumb, .Journal .changLogList::-webkit-scrollbar-thumb { /*滚动条里面小方块*/ border-radius: 4px; -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2); background: #c9c9c9; } .SingleTicketManager .InfoChangeLog .changLog::-webkit-scrollbar-track, .SingleTicketManager ._ol_info::-webkit-scrollbar-track, .addSingleTicketManager::-webkit-scrollbar-track, ._add_hangban>li::-webkit-scrollbar-track, .Journal .changLogList::-webkit-scrollbar-track { /*滚动条里面轨道*/ -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2); border-radius: 4px; background: #ededed; } .SingleTicketManager _btn i { color: #fff !important; } ._command_tb tbody::-webkit-scrollbar { width: 4px; height: 8px; } ._command_tb tbody::-webkit-scrollbar-thumb { border-radius: 4px; -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2); background: #c9c9c9; } ._command_tb tbody::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2); border-radius: 4px; background: #ededed; } ._delete_cmd { cursor: pointer; } ._delete_cmd:hover { color: red; } .SingleTicketManager .el-form-item__label { font-size: 12px; color: #606266; } ._pingtai .el-select .el-input { height: auto; } ._pingtai .el-form-item, ._add_ret>ul>li .el-form-item { display: flex; } ._add_sel ul li .el-form-item { margin-bottom: 0; } .SingleTicketManager .upload-demo { text-align: center; } .SingleTicketManager .query-box ul .el-input { width: 150px; } .wangfan_dan { padding: 2px 9px !important; } /*审核成功*/ ._bg_gre { background-color: #47bf8c !important; color: white !important; cursor: pointer; width: 24px; height: 24px; text-align: center; line-height: 24px; border-radius: 50%; } /*默认*/ .bg_default { cursor: pointer; background-color: #bcbcbc !important; color: #909090 !important; cursor: pointer; width: 24px; height: 24px; text-align: center; line-height: 24px; border-radius: 50%; } /*审核中*/ .bg_auditing { background-color: #3867d6 !important; color: white; cursor: pointer; width: 24px; height: 24px; text-align: center; line-height: 24px; border-radius: 50%; } .SingleTicketManager .width_auto { width: 80%; } .SingleTicketManager ._rizhi { background: #fff !important; color: #e95252 !important; height: 30px !important; border: 1px solid #e95252 !important; cursor: pointer !important; border-radius: 15px !important; } .SingleTicketManager .Journal { width: 250px !important; } .Journal .InfoChangeLog { height: auto; max-height: 220px; background-color: #ffffff; } .Journal .changLogList { padding-left: 20px; max-height: 220px; overflow: auto; margin: 20px 0; } .Journal .changLogList_l { border-left: 1px solid #e9e9e9; position: relative; padding-bottom: 15px; padding-left: 20px; } .Journal .changLogList_l:last-child { border: 0; } .Journal .changLog_time { color: #666666; position: relative; top: -4px; } .Journal .TM_UPdate { font-size: 12px; } .SingleTicketManager .downBtn { padding: 6px 20px; position: relative; top: -1px; } .SingleTicketManager .icon-img_plane { font-size: 12px; -webkit-transform: scale(0.8); } .SingleTicketManager .departName { text-align: right; } .SingleTicketManager .arrivalName { text-align: left; } .SingleTicketManager ._destination .el-button:focus { background-color: #2aaef2 !important; color: #fff !important; } .SingleTicketManager .travelTo { position: relative; top: -2px; } .SingleTicketManager .icon-arrow1 { font-size: 12px; position: relative; top: 4%; } .SingleTicketManager .multiple_input .el-input { height: auto !important; } .SingleTicketManager .el-button--primary { padding: 5px; margin-right: 1px; } .SingleTicketManager .addSingleTicketManager::-webkit-scrollbar { /*滚动条整体样式*/ width: 4px; /*高宽分别对应横竖滚动条的尺寸*/ height: 8px; } .SingleTicketManager .addSingleTicketManager::-webkit-scrollbar-thumb { /*滚动条里面小方块*/ border-radius: 4px; -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2); background: #c9c9c9; } .SingleTicketManager .addSingleTicketManager::-webkit-scrollbar-track { /*滚动条里面轨道*/ -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2); border-radius: 4px; background: #ededed; } .Journal ._radius_green { width: 7px; height: 7px; border-radius: 50%; display: inline-block; position: absolute; left: -4px; top: 0; } .disClick { background-color: #d1d1d1; color: #fff; border: 1px solid #d1d1d1; } .disClick:hover { background-color: #d1d1d1 !important; cursor: default !important; box-shadow: none !important; } .TM_OrderRemind { font-size: 12px; color: #e95252; margin: 5px 0 0 0; } .SingleTicketManager ._lian_style { position: absolute; top: 0px; left: 5px; z-index: 99; display: inline-block; background-color: #e83140; color: white; padding: 2px 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; } .SingleTicketManager .el-date-editor.el-input, .SingleTicketManager .el-date-editor.el-input__inner { width: 100%; } .SingleTicketManager .addSingleTicketManager .el-select { width: 100%; } ._oll_img_box { height: 78px; display: inline-block; vertical-align: top; padding-top: 14px; } .SingleTicketManager .vmiddle { display: flex; align-items: Center; } .Plan_Query .el-button--primary { background-color: #fff !important; color: #e95252 !important; border-color: #e95252 !important; } .Plan_Query .el-button--primary:focus, .TC_ListContent .el-button--primary:hover { background-color: #fff !important; color: #e95252 !important; border-color: #e95252 !important; } .Plan_Query .el-button { border-radius: 16px; width: 90px; height: 30px; line-height: 26px; } .Plan_Query .el-button i { color: #e95252; } .Plan_Query .el-dropdown { position: relative; top: 4px; } .Plan_Query .el-button span { position: relative; top: -3px; } .SingleTicketManager .el-dropdown-menu__item:hover { background-color: #e95252 !important; color: #fff !important; } .TMA_PNR { font-size: 12px; color: #666666; margin: 5px 0 0 16px; } .SingleTicketManager .TICK_Code { position: absolute; left: 27px; top: 5px; } .SingleTicketManager .TCID_cont { min-height: 28px; border-top: 1px dashed #ccc; } .Ticket_TCID { margin: 5px 25px 5px 0; display: inline-block; } /*航班详情*/ .SingleTicketManager .FlightDivDetails { width: 100%; overflow: auto; } .SingleTicketManager ._flightList { text-align: left; font-size: 12px; margin-bottom: 5px; padding-right: 5px; } /*航班号*/ .SingleTicketManager .FlightNumber { color: #ff0066; font-weight: bold; } .SingleTicketManager .el-button-group i { font-size: 13px; } .FinaceDanList { display: block; cursor: pointer; } .FinaDetailContent { height: 25px; overflow: auto; } .SingleTicketManager .TK_raduis ul li { margin-left: 10px; float: left; } .FinaceDanList { cursor: pointer; } .teamTitle { text-indent: 10px; min-height: 28px; border-top: 1px solid #ccc; line-height: 28px; } .MySingleTicketManager .el-checkbox{ margin-left: 30px; } .MySingleTicketManager .picload{ width: 138px; height: 92px; border-radius: 2px; cursor: pointer; margin-bottom: 10px; padding: 5px; margin-right: 10px; position: relative; } .MySingleTicketManager .picload .el-upload{ width: 138px; height: 92px; } .MySingleTicketManager .picload .el-upload-dragger{ width: 100%; height: 100%; } .MySingleTicketManager ._addUpload_box>div{ float: left; width: 138px; height: 92px; border: 1px dashed rgba(210,210,210,1); border-radius: 2px; cursor: pointer; margin-bottom: 10px; padding: 5px; margin-right: 10px; position: relative; } .MySingleTicketManager ._addUpload_box .icon-excel, .MySingleTicketManager ._addUpload_box .icon-pdf{ text-align: center; font-size: 38px; color: green; line-height: 75px; } .MySingleTicketManager ._addUpload_box .icon-guanbi1{ font-size: 12px; color: white; display: inline-block; margin-left: 15px; position: absolute; right: -6px; top: -9px; background-color: #f56c6c; border-radius: 50%; height: 20px; width: 20px; text-align: center; line-height: 20px; } </style> <template> <div class="flexOne SingleTicketManager MySingleTicketManager"> <div class="query-box Plan_Query"> <ul> <li> <span> <em>状态</em> <el-select v-model="msg.FlyState" :placeholder="$t('system.ph_in')" class="w120"> <el-option label="未起飞" value="0"></el-option> <el-option label="已起飞" value="1"></el-option> </el-select> </span> </li> <li> <span> <em>线路</em> <el-select v-model="msg.LineId" :placeholder="$t('pub.pleaseSel')" class="w120"> <el-option :label="$t('pub.unlimitedSel')" :value="defaultSelectValue"></el-option> <el-option v-for="item in LineList" :key="item.LineID" :label="item.LineName" :value="item.LineID"> </el-option> </el-select> </span> </li> <li> <span class="hotel_name"> <em>航空公司</em> <el-select v-model="msg.AirLineID" filterable :placeholder="$t('system.ph_in')" class="w120"> <el-option :label="$t('pub.unlimitedSel')" :value="defaultSelectValue"></el-option> <el-option v-for="item in airlineList" :label="item.AlName" :value="item.AirLineId" :key="item.AirLineId"> </el-option> </el-select> </span> </li> <li> <span> <em>航班日期</em> <el-date-picker class="w135" v-model="msg.QFlightDateStart" type="date" :picker-options="beforeCheck" value-format="yyyy-MM-dd" :placeholder="$t('admin.admin_choDate')"> </el-date-picker> <span class="_ln">-</span> <el-date-picker class="w135" v-model="msg.QFlightDateEnd" type="date" :picker-options="afterCheck" value-format="yyyy-MM-dd" :placeholder="$t('admin.admin_choDate')"></el-date-picker> </span> </li> <li> <span> <em>操作人</em> <el-select v-model="msg.CreateBy" filterable :placeholder="$t('system.ph_in')" class="w120"> <el-option :label="$t('pub.unlimitedSel')" :value="defaultSelectValue"></el-option> <el-option v-for="item in EmployeeList" :label="item.EmName" :value="item.EmployeeId" :key="item.EmployeeId"></el-option> </el-select> </span> </li> <li> <span> <em>编号</em> <el-input v-model="msg.ID" placeholder="机票编号" @keyup.native="checkInteger(msg,'ID')"></el-input> </span> </li> <li> <span> <em>定金类型</em> <el-select v-model="msg.DepositType" filterable :placeholder="$t('system.ph_in')" class="w120"> <el-option :label="$t('pub.unlimitedSel')" :value="defaultSelectValue"></el-option> <el-option v-for="item in DepositTypeArray" :label="item.Name" :value="item.Id" :key="item.Id"> </el-option> </el-select> </span> </li> <li> <span> <em>出发地</em> <el-select v-model="msg.Departure_city" filterable :placeholder="$t('system.ph_in')" class="w120"> <el-option :label="$t('pub.unlimitedSel')" :value="defaultSelectValue"></el-option> <el-option v-for="item in ChinaCityList" :label="item.Name" :value="item.ID" :key="item.ID"> </el-option> </el-select> </span> </li> <li style="margin-right:50px;"> <button class="normalBtn" type="button" @click="resetPageIndex(),getList()">{{$t('pub.searchBtn')}}</button> <button class="normalBtn" type="button" @click="addShow=true,command=false,sanmai=false,initAddMsg()"> {{$t('pub.addBtn')}} </button> <button class="hollowFixedBtn" type="button" @click="command=true,addShow=false,sanmai=false,initAddMsg()"> {{$t('Airticket.Air_orderImport')}} </button> <el-dropdown @command="getImport"> <el-button type="primary"> 导入 <i class="el-icon-arrow-down el-icon--right"></i> </el-button> <el-dropdown-menu slot="dropdown"> <el-dropdown-item command="1">一般模板导入</el-dropdown-item> <el-dropdown-item command="2">多航段模板导入</el-dropdown-item> </el-dropdown-menu> </el-dropdown> <el-dropdown @command="getDownLoad"> <el-button type="primary"> 下载模板 <i class="el-icon-arrow-down el-icon--right"></i> </el-button> <el-dropdown-menu slot="dropdown" style="width:150px;"> <el-dropdown-item @click.native="DownLoad(1)">一般模板</el-dropdown-item> <el-dropdown-item @click.native="DownLoad(2)">多航段模板</el-dropdown-item> </el-dropdown-menu> </el-dropdown> </li> </ul> </div> <div class="SingleTicketManager_list"> <ul class="_ol_color clearfix"> <li> <span class="_red _cl"></span> <span class="_red_text">{{$t('Airticket.Air_redType')}}:</span> {{$t('Airticket.Air_firstClass')}} </li> <li> <span class="_green _cl"></span> <span class="_green_text">{{$t('Airticket.Air_greenType')}}:</span> {{$t('Airticket.Air_businessClass')}} </li> <li> <span class="_blu _cl"></span> <span class="_blu_text">{{$t('Airticket.Air_blueType')}}:</span> {{$t('Airticket.Air_EconomyClass')}} </li> <li> <span style="color:#4BCA81 ;">√:</span> <span>全部出票</span> </li> <li> <span style="color: #E95252;">O:</span> <span> 已出中段/部分出票</span> </li> <li> <span style="color:#E95252 ;">X:</span> <span>未处理</span> </li> </ul> <div class="_ol_info" :class="addShow==true||command==true?'_edHeight':''"> <ul class="_ol_list" v-loading="loading"> <li v-for="(item,index) in dataList" :data-id="item.ID"> <span class="_oll_line" v-if="item.FreightSpace==1"></span> <span class="_oll_line _o_green" v-if="item.FreightSpace==2"></span> <span class="_oll_line _o_blu" v-if="item.FreightSpace==3"></span> <el-row :gutter="10"> <el-col :span="2"> <span class="_lian_style" v-if="item.IsSetUnion==1">联</span> <div class="_oll_img_box"> <span class="TICK_Code PingFangSC">编号:{{item.ID}} </span> <img v-if="!item.AirlineUrl" class="_oll_img" :src="defaultImg"> <img v-else class="_oll_img" :src="item.AirlineUrl" :onerror="defaultImg"> </div> </el-col> <el-col :span="2" class="vmiddle" style="width:85px;"> <div class="_oll_info"> <el-tooltip class="item" effect="dark" :content="item.AirlineName" placement="top-start" popper-class="max-w250"> <p class="_oll_tit">{{item.AirlineName}}</p> </el-tooltip> <span class="_oll_adrr">{{item.FreightSpaceStr}}</span> </div> </el-col> <el-col :span="4" class="vmiddle"> <div class="FlightDivDetails"> <div class="_flightList" v-for="subItem in item.flightList"> <span class="FlightNumber">{{subItem.Flight_number}}</span> <span>{{subItem.FlightDate}} {{subItem.Departure_time}}</span> <span>({{subItem.DIATA}}){{subItem.DepartureName}}</span> <span v-if="subItem.StopoverName">-</span> <span v-if="subItem.StopoverName">({{subItem.StopoverIATA}}){{subItem.StopoverName}}</span> <span v-if="subItem.ArrivalCityName">-</span> <span v-if="subItem.ArrivalCityName">({{subItem.AIATA}}){{subItem.ArrivalCityName}}</span> </div> </div> </el-col> <el-col :span="5" class="vmiddle"> <div class="TMN_Seat"> <div class="TK_SeatList"> <ul class="clearfix"> <li> <span class="iconfont icon-img_yizi"></span> </li> <li> <p class="_num3">{{item.TicketNum==null?'0':item.TicketNum}}</p> <p class="_wz">{{$t('Airticket.Air_reservation')}}</p> </li> <li style="display:none"> <p class="_num3">{{item.TicketNum-item.SurplusNum}}</p> <el-popover popper-class="_tripDetails" width="400" trigger="click"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr class="_color_666"> <th>{{$t('hotel.order_Number')}}</th> <th>{{$t('admin.admin_personNumber')}}</th> <th>{{$t('admin.admin_type')}}</th> <th>{{$t('hotel.suplier_contact')}}</th> </tr> <tr v-for="(us,Uindex) in usedDetails"> <td>{{us.OrderId}}</td> <td>{{us.OrderUserAccount}}</td> <td>{{us.OrderSourceStr}}</td> <td>{{us.ConfirmName}}</td> </tr> </table> <p slot="reference" class="_wz _yiyong" @click="getUsedDetails(index)"> {{$t('hotel.hotel_roomUsed')}}</p> </el-popover> </li> <li> <p :class="{'_num3':item.ConfigUnionCount!=item.UnionCount,'_num2':item.ConfigUnionCount==item.UnionCount}"> {{item.UnionCount}}</p> <el-popover popper-class="_tripDetails" width="500"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr class="_color_666"> <th>联运城市</th> <th>订单号</th> <th>联运数量</th> <th>已配数量</th> <th>是否住宿</th> </tr> <tr v-for="(unionItem,x) in item.UnionDetailList"> <td>{{unionItem.UnionCityName}}</td> <td>{{unionItem.UnionOrderIds}}</td> <td>{{unionItem.UnionGuestCount}}</td> <td>{{unionItem.UnionConfigNum}}</td> <td> <span v-if="unionItem.IsStay==1" class="_num3">是</span> <span v-else>否</span> </td> </tr> </table> <p slot="reference" class="_wz _yiyong">联运</p> </el-popover> </li> <li> <p class="_num3">{{item.OrderTotalNum}}</p> <p class="_wz">报名人数</p> </li> <li> <p class="_num3">{{item.UseScatterNum}}/{{item.AirTicketScatterNum }}</p> <p class="_wz">已卖/总数</p> </li> <li> <p class="_num3">{{item.SurplusNum}}</p> <p class="_wz">可散卖</p> </li> <li> <p class="_num3">{{item.OutTicketPercent}} %</p> <p class="_wz">出票百分比</p> </li> </ul> </div> </div> </el-col> <el-col :span="1"> <div> <ul> <!--出票状态--> <li style="font-size:18px;"> <span style="color: #4BCA81;" v-if="item.TicketState==1">√</span> <span class="colorE95252" v-else>{{item.TicketState=='0'?"x":"O"}}</span> </li> </ul> </div> </el-col> <el-col :span="4" class="vmiddle"> <div class="TK_raduis"> <ul> <!--一定--> <li v-if="item.FirstDeposit!=''"> <div @click="goFinacePage(item,1)" :class="getClass(item.FirstDepositStatus)"> <el-tooltip effect="dark" :content="item.FirstDeposit" placement="top" popper-class="max-w250"> <span>1</span> </el-tooltip> </div> <div class="FinaDetailContent"> <span v-if="item.FirstAuditList!=null" v-for="childItem in item.FirstAuditList"> <span class="FinaceDanList" @click="goFinaceDetails(childItem.FinaceId)">{{childItem.FinaceId}}</span> </span> </div> </li> <!--二定--> <li v-if="item.SecondDeposit!=''"> <div @click="goFinacePage(item,2)" :class="getClass(item.SecondDepositStatus)"> <el-tooltip effect="dark" :content="item.SecondDeposit" placement="top" popper-class="max-w250"> <span>2</span> </el-tooltip> </div> <div class="FinaDetailContent"> <span v-if="item.SecondAuditList!=null" v-for="childItem in item.SecondAuditList"> <span class="FinaceDanList" @click="goFinaceDetails(childItem.FinaceId)">{{childItem.FinaceId}}</span> </span> </div> </li> <!--三定--> <li v-if="item.ThirdDeposit!=''"> <div @click="goFinacePage(item,3)" :class="getClass(item.ThirdDepositStatus)"> <el-tooltip effect="dark" :content="item.ThirdDeposit" placement="top" popper-class="max-w250"> <span>3</span> </el-tooltip> </div> <div class="FinaDetailContent"> <span v-if="item.ThirdAuditList!=null" v-for="childItem in item.ThirdAuditList"> <span class="FinaceDanList" @click="goFinaceDetails(childItem.FinaceId)">{{childItem.FinaceId}}</span> </span> </div> </li> <!--四定--> <li v-if="item.FourthDeposit!=''"> <div @click="goFinacePage(item,4)" :class="getClass(item.FourthDepositStatus)"> <el-tooltip effect="dark" :content="item.FourthDeposit" placement="top" popper-class="max-w250"> <span>4</span> </el-tooltip> </div> <div class="FinaDetailContent"> <span v-if="item.FourthAuditList!=null" v-for="childItem in item.FourthAuditList"> <span class="FinaceDanList" @click="goFinaceDetails(childItem.FinaceId)">{{childItem.FinaceId}}</span> </span> </div> </li> <!--尾款--> <li v-else-if="item.FinalPayment!=''"> <div @click="goCustomList('PassengerList',item, 5,'旅客名单')" :class="getClass(item.FinalPaymentStatus)"> <el-tooltip effect="dark" :content="item.FinalPayment" placement="top" popper-class="max-w250"> <span>尾</span> </el-tooltip> </div> <div class="FinaDetailContent"> <span v-if="item.FinalAuditList!=null" v-for="childItem in item.FinalAuditList"> <span class="FinaceDanList" @click="goFinaceDetails(childItem.FinaceId)">{{childItem.FinaceId}}</span> </span> </div> </li> </ul> </div> </el-col> <el-col :span="1" class="vmiddle"> <div class="TMA_raduis"> <ul style="padding:0;"> <li class="_head" style="display:block"> <img style="margin-left:0px" v-if="item.CreateUrl" :src="item.CreateUrl" :onerror="defaultImg"> <img style="margin-left:0px" v-else src="../../assets/img/bg_z1@2x.png"> <span style="padding:0;margin:0;display:block;">{{item.CreateName}}</span> </li> </ul> </div> </el-col> <el-col :span="2" class="vmiddle"> <div class="_jztime"> <p class="PingFangSC">{{item.TicketDeadlineStr}}</p> <p class="_text">{{$t('Airticket.Air_deadTicketTime')}}</p> </div> </el-col> <el-col :span="3" class=""> <div> <el-button-group size="mini"> <el-tooltip class="item" effect="dark" :content="$t('system.table_edit')" placement="top-start"> <el-button type="primary" icon="iconfont icon-Edit" @click="getEntityExtend(item.ID)"></el-button> </el-tooltip> <el-tooltip class="item" effect="dark" content="旅客名单" placement="top-start"> <el-button type="primary" icon="iconfont icon-lists" @click="goUrl('PassengerList',item,'旅客名单')"> </el-button> </el-tooltip> <el-tooltip class="item" effect="dark" content="联运设置" placement="top-start" style="display:none;"> <el-button type="primary" icon="iconfont icon-ico_shezhi" @click="goUrl('ThroughSetting',item,'联运设置')" style="margin-left:0;"></el-button> </el-tooltip> <el-tooltip class="item" effect="dark" content="删除" placement="top-start"> <el-button type="primary" icon="iconfont icon-img_delete_small" @click="DeleteAirticket(item.ID)" style="margin-left:0;"></el-button> </el-tooltip> <el-tooltip class="item" effect="dark" :content="item.TripItinerary==''?'行程单上传':'行程单下载'" placement="top-start"> <el-button v-if="item.TripItinerary==''" type="primary" icon="iconfont icon-upload" style="margin-left:0;" @click="outerVisible1=true,UploadItineraryMsg.ID=item.ID"></el-button> <el-button v-else type="primary" icon="iconfont icon-xiazai2" style="margin-left:0;" @click="DownLoad(3,item.TripItinerary)"></el-button> </el-tooltip> <el-tooltip class="item" effect="dark" content="散卖" placement="top-start"> <el-button type="primary" icon="iconfont icon-maichu" @click="sanSale(item)"></el-button> </el-tooltip> <el-tooltip class="item" effect="dark" content="机票单据转移" placement="top-start"> <el-button type="primary" icon="iconfont icon-gengduo1" @click="OpenFindig(item)"></el-button> </el-tooltip> <el-tooltip class="item" effect="dark" content="日志" placement="top-start"> <el-popover popper-class="Journal" width="400" trigger="click"> <div class="InfoChangeLog"> <div class="changLog"> <ul v-if="orderlogList.length!=0" class="changLogList"> <li v-for="item in orderlogList" class="changLogList_l"> <span class="_radius_green" :style="item.EndValue>item.StartValue?'background-color: #47BF8C':'background-color: #E95252'"></span> <p class="changLog_time">{{item.UpdateDateStr}}</p> <p class="TM_UPdate">{{item.UpdateName}} {{item.UpdateTypeStr}}</p> </li> </ul> <ul v-else> <li>{{$t('hotel.hotel_zanwu')}}</li> </ul> </div> </div> <el-button type="primary" slot="reference" icon="iconfont icon-rizhi" @click="InfoChangeLogShow(item.ID)"></el-button> </el-popover> </el-tooltip> <el-tooltip class="item" effect="dark" content="机票服务费" placement="top-start"> <el-button type="primary" icon="iconfont icon-caidan-fill" @click="TikcetServiceCharge(item)"></el-button> </el-tooltip> </el-button-group> </div> <div style="margin-top:5px;"> <el-button-group size="mini"> <el-tooltip class="item" effect="dark" content="部分出票" placement="top-start" v-show="item.TicketState==0"> <el-button type="primary" class="iconfont icon-icon_status-half-dot" @click="UpdateTicketState(item.ID,3)"></el-button> </el-tooltip> <el-tooltip class="item" effect="dark" content="已出中段" placement="top-start" v-show="item.TicketState==0"> <el-button type="primary" class="iconfont icon-zhongzhuan" @click="ZhongDuanPNR = true, ZhongDuanID= item.ID"> </el-button> <!-- <el-button type="primary" class="iconfont icon-zhongzhuan" @click="UpdateTicketState(item.ID,2)"> </el-button> --> </el-tooltip> <el-tooltip class="item" effect="dark" content="出票完成" placement="top-start" v-show="item.TicketState!=1"> <el-button type="primary" class="iconfont icon-duigou" @click="UpdateTicketState(item.ID,1)"> </el-button> </el-tooltip> </el-button-group> </div> </el-col> </el-row> <el-row> <span style="padding-left:10px;" title="国际段">行程天数:<span style="color:#ff0066;font-weight:bold">{{item.DayNum}} 天</span></span> <span v-if="Number(item.B2BPrice)<Number(item.CostPrice) || Number(item.B2BPrice)==Number(item.CostPrice) || Number(item.B2CPrice)<Number(item.CostPrice)|| Number(item.B2CPrice)==Number(item.CostPrice)" style="margin-left:10px;color:red">B2B价格未维护</span> </el-row> <el-row :gutter="0"> <el-col :span="1"> <div class="teamTitle">团期:</div> </el-col> <el-col :span="15"> <div class="TCID_cont PingFangSC"> <span v-show="item.PriceList==null ||item.PriceList.length==0">暂无</span> <span class="Ticket_TCID" v-for="subItem in item.PriceList"> <a style="color:blue;cursor:pointer" @click='goUrlT("RegistrationList",subItem.TCID,"报名清单")'> ({{subItem.TCID}}){{subItem.TCNUM}} </a> <a style="color:red;cursor:pointer;" @click="goUrlTicketUnion(subItem.TCID,item.ID)">设置联运</a> <a style="cursor:pointer;" @click="goFinaceDetails(subItem.FinanceId)" v-if="subItem.FinanceId"> (折让单:<span style="color: blue;">{{subItem.FinanceId}}</span>) </a> </span> </div> </el-col> <el-col :span="8"> <div class="TCID_cont" style="padding-top:5px;">PNR:{{item.PNR}} <template v-if="item.MidpiecePNR"> 中段PNR:{{item.MidpiecePNR}}</template> </div> </el-col> </el-row> </li> </ul> <div class="noData" v-show="noData">{{$t('system.content_noData')}}</div> <el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage" layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total"></el-pagination> </div> </div> <el-form class="addSingleTicketManager" :class="addShow==true?'edHeight':''" :model="addMsg" :rules="rules" ref="addMsg" label-width="100px"> <p class="_add_t">{{$t('Airticket.Air_AddTickets')}}</p> <div class="_add_sel"> <ul class="clearfix"> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_positions')" prop="FreightSpace"> <el-select v-model="addMsg.FreightSpace" filterable :placeholder="$t('pub.pleaseSel')"> <el-option v-for="item in FreightSpaceList" :key="item.Id" :label="item.Name" :value="item.Id"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_TicketType')" prop="TicketType"> <el-select v-model="addMsg.TicketType" filterable :placeholder="$t('pub.pleaseSel')"> <el-option v-for="item in TicketTypeList" :key="item.Id" :label="item.Name" :value="item.Id"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_TicketDeadLine')" prop="TicketDeadline"> <el-date-picker v-model="addMsg.TicketDeadline" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_Number')" prop="TicketNum"> <el-input v-model="addMsg.TicketNum" onkeyup="value=value.replace(/[^\d]/g,'')"></el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_unitPrice')" prop="CostPrice"> <el-input v-model="addMsg.CostPrice" placeholder="0.0" @keyup.native="checkPrice(addMsg,'CostPrice')"> </el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_salesPrice')" prop="SalePrice"> <el-input v-model="addMsg.SalePrice" placeholder="0.0" @keyup.native="checkPrice(addMsg,'SalePrice')"> </el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_b2bPrice')" prop="B2BPrice"> <el-input v-model="addMsg.B2BPrice" placeholder="0.0" @keyup.native="checkPrice(addMsg,'B2BPrice')"> </el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_b2cPrice')" prop="B2CPrice"> <el-input v-model="addMsg.B2CPrice" placeholder="0.0" @keyup.native="checkPrice(addMsg,'B2CPrice')"> </el-input> </el-form-item> </el-col> </ul> </div> <!--添加修改航班--> <ul class="_add_hangban clearfix"> <li v-if="addMsg.TicketType" :class="addMsg.TicketType==1?'_allWidth':''"> <span class="_add_go_label">{{$t('Airticket.Air_go')}}</span> <div class="_add_go" v-for="(item,index) in addMsg.flightList" v-if="addMsg.flightList&&item.FlightSubType==1"> <div> <p> <span class="iconfont icon-hangban"></span> <span>{{item.Flight_number}} {{item.Departure_time}}</span> <span class="iconfont icon-xingzhuang" @click="deletFlightInfo(item.ID,index)"></span> </p> <el-tooltip class="item" effect="dark" :content="item.FlightDate" placement="top-start" popper-class="max-w250"> <p class="_add_info"> <span>{{$t('Airticket.Air_StartTime')}}:{{item.FlightDate}}</span> </p> </el-tooltip> <el-tooltip class="item" effect="dark" :content="item.dName" placement="top-start" popper-class="max-w250"> <p class="_add_info"> <span>{{$t('system.query_flightAir')}}:{{item.dName}}</span> </p> </el-tooltip> <el-tooltip class="item" effect="dark" :content="item.aName" placement="top-start" popper-class="max-w250"> <p class="_add_info"> <span>{{$t('system.query_arrivalAir')}}:{{item.aName }}</span> </p> </el-tooltip> <div style="margin:10px 0 0 12px;"> <el-input type="text" class="w80" v-model="item.TicketDepartureTime" @keyup.native="checkTime(item,'TicketDepartureTime')" maxlength="5" :placeholder="$t('system.ph_time')"></el-input> - <el-input type="text" class="w80" v-model="item.TicketArrivalTime" @keyup.native="checkTime(item,'TicketArrivalTime')" maxlength="5" :placeholder="$t('system.ph_time')"> </el-input> </div> </div> </div> <div class="_add_go _new_go"> <div> <p> <span>{{$t('pub.addBtn')}}</span> <span class="_add_btn" @click="addFlight()">{{$t('pub.sureBtn')}}</span> </p> <span class="_add_hbh"> <em class>航空公司</em> <el-select v-model="addGoFlight.AirLineID" filterable :placeholder="$t('pub.pleaseSel')" @change="getAirportNameList(addGoFlight.AirLineID,1)" class="w150"> <el-option :label="$t('pub.unlimitedSel')" :value="defaultSelectValue"></el-option> <el-option v-for="item in airlineList" :label="item.AlName" :value="item.AirLineId" :key="item.AirLineId"></el-option> </el-select> </span> <span class="_add_hbh"> <em class>{{$t('system.query_flightNum')}}</em> <el-select v-model="addGoFlight.FlightID" filterable :placeholder="$t('system.ph_choice')" class="w150"> <el-option v-for="item in AirportNameList" :key="item.ID" :label="item.Flight_number" :value="item.ID"></el-option> </el-select> </span> <span class="_add_hbh"> <em class="demonstration">{{$t('pub.date')}}</em> <el-date-picker class="w150 _add_date" v-model="addGoFlight.FlightDate" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"> </el-date-picker> </span> </div> </div> </li> <li v-if="addMsg.TicketType==2"> <span class="_add_go_label">{{$t('Airticket.Air_returnTrip')}}</span> <div class="_add_go" v-for="(item,index) in addMsg.flightList" v-if="addMsg.flightList&&item.FlightSubType==3"> <div> <p> <span class="iconfont icon-hangban"></span> <span>{{item.Flight_number}} {{item.Departure_time}}</span> <span class="iconfont icon-xingzhuang" @click="deletFlightInfo(item.ID,index)"></span> </p> <el-tooltip class="item" effect="dark" :content="item.FlightDate" placement="top-start" popper-class="max-w250"> <p class="_add_info"> <span>{{$t('Airticket.Air_StartTime')}}:{{item.FlightDate}}</span> </p> </el-tooltip> <el-tooltip class="item" effect="dark" :content="item.dName" placement="top-start" popper-class="max-w250"> <p class="_add_info"> <span>{{$t('system.query_flightAir')}}:{{item.dName }}</span> </p> </el-tooltip> <el-tooltip class="item" effect="dark" :content="item.aName" placement="top-start" popper-class="max-w250"> <p class="_add_info"> <span>{{$t('system.query_arrivalAir')}}:{{item.aName}}</span> </p> </el-tooltip> <div style="margin:10px 0 0 12px;"> <el-input type="text" class="w80" v-model="item.TicketDepartureTime" @keyup.native="checkTime(item,'TicketDepartureTime')" maxlength="5" :placeholder="$t('system.ph_time')"></el-input> - <el-input type="text" class="w80" v-model="item.TicketArrivalTime" @keyup.native="checkTime(item,'TicketArrivalTime')" maxlength="5" :placeholder="$t('system.ph_time')"> </el-input> </div> </div> </div> <div class="_add_go _new_go"> <div> <p> <span>{{$t('pub.addBtn')}}</span> <span class="_add_btn" @click="addFlightReturn()">{{$t('pub.sureBtn')}}</span> </p> <span class="_add_hbh"> <em class>航空公司</em> <el-select v-model="returnTripData.AirLineID" filterable :placeholder="$t('pub.pleaseSel')" @change="getAirportNameList(returnTripData.AirLineID,2)" class="w150"> <el-option :label="$t('pub.unlimitedSel')" :value="defaultSelectValue"></el-option> <el-option v-for="item in airlineList" :label="item.AlName" :value="item.AirLineId" :key="item.AirLineId"></el-option> </el-select> </span> <span class="_add_hbh"> <em class>{{$t('system.query_flightNum')}}</em> <el-select v-model="returnTripData.FlightID" filterable :placeholder="$t('system.ph_choice')" class="w150"> <el-option v-for="item in BackAirportNameList" :key="item.ID" :label="item.Flight_number" :value="item.ID"></el-option> </el-select> </span> <span class="_add_hbh"> <em class="demonstration">{{$t('pub.date')}}</em> <el-date-picker class="w150 _add_date" v-model="returnTripData.FlightDate" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"> </el-date-picker> </span> </div> </div> </li> </ul> <div class="_add_ret"> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_yiding')"> <el-date-picker v-model="addMsg.FirstDeposit" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_erding')"> <el-date-picker v-model="addMsg.SecondDeposit" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_sanding')"> <el-date-picker v-model="addMsg.ThirdDeposit" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_siding')"> <el-date-picker v-model="addMsg.FourthDeposit" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_lastPayment')"> <el-date-picker v-model="addMsg.FinalPayment" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="PNR"> <el-input v-model="addMsg.PNR" :placeholder="$t('pub.pleaseImport')"></el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_salesPlatform')"> <el-select v-model="openplatString" multiple :placeholder="$t('pub.pleaseSel')" class="multiple_input"> <el-option v-for="item in openplatform" :key="item.ID" :label="item.Name" :value="item.ID"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="线路" prop="LineId"> <el-select v-model="addMsg.LineId" :placeholder="$t('pub.pleaseSel')" class="multiple_input"> <el-option label='不限' :value='comdefaultSelect'></el-option> <el-option v-for="item in LineList" :key="item.LineID" :label="item.LineName" :value="item.LineID"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="行程天数(国际)" > <el-input v-model="addMsg.DayNum" placeholder="行程天数" @keyup.native="checkInteger(addMsg,'DayNum')" maxlength="2"></el-input> </el-form-item> </el-col> <div class="top-btn"> <button class="cancelBtn" type="button" @click="addShow=false,resetForm('addMsg')">{{$t('pub.cancelBtn')}} </button> <button type="button" class="normalBtn" :class="{'disClick':!isSubmit}" @click="submitForm('addMsg')"> {{$t('pub.saveBtn')}} </button> </div> </div> </el-form> <el-form class="addSingleTicketManager" :class="command==true?'edHeight':''" :model="addMsg" :rules="rules" ref="addMsgCmd" label-width="100px"> <div class="combottomTitle">{{$t('Airticket.Air_orderImport')}}</div> <div class="_command_box"> <table class="_command_tb" border="0" cellspacing="0" cellpadding="0"> <thead> <tr> <th>{{$t('Airticket.Air_segment')}}</th> <th>{{$t('system.query_flightNum')}}</th> <th>{{$t('Airticket.Air_positionLevel')}}</th> <th>{{$t('Airticket.Air_flightDate')}}</th> <th>{{$t('Airticket.Air_Trip')}}</th> <th>{{$t('Airticket.Air_Number')}}</th> <th>{{$t('system.query_flightAir')}}</th> <th>{{$t('system.ph_flightTime')}}</th> <th>{{$t('system.query_arrivalAir')}}</th> <th>{{$t('system.query_arrivalTime')}}</th> <th>{{$t('system.table_operation')}}</th> </tr> </thead> <tbody> <tr v-for="(item,index) in TicketOrderList"> <td v-if="index<1">{{$t('Airticket.Air_go')}}</td> <td v-else-if="index!==TicketOrderList.length-1">{{$t('Airticket.Air_transit')}}</td> <td v-else-if="index==TicketOrderList.length-1">{{$t('Airticket.Air_returnTrip')}}</td> <td>{{item.FlightCode}}</td> <td>{{item.FreightSpaceStr}}</td> <td>{{item.FlightDate}}</td> <td>{{item.StartCityName}}-{{item.ArrivalCityName}}</td> <td>{{item.Num}}</td> <td>{{item.StartAirport}}</td> <td>{{item.StartTime}}</td> <td>{{item.ArrivalAirport}}</td> <td>{{item.ArrivalTime}}</td> <td class="_delete_cmd" @click="deleteCmd(index)">{{$t('system.ph_shanchu')}}</td> </tr> </tbody> </table> </div> <div class="_add_ret"> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_yiding')"> <el-date-picker v-model="addMsg.FirstDeposit" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_erding')"> <el-date-picker v-model="addMsg.SecondDeposit" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_sanding')"> <el-date-picker v-model="addMsg.ThirdDeposit" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_siding')"> <el-date-picker v-model="addMsg.FourthDeposit" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_lastPayment')"> <el-date-picker v-model="addMsg.FinalPayment" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_Number')" prop="TicketNum"> <el-input v-model="addMsg.TicketNum" @keyup.native="checkInteger(addMsg,'TicketNum')"></el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_TicketDeadLine')" prop="TicketDeadline"> <el-date-picker v-model="addMsg.TicketDeadline" type="date" :placeholder="$t('admin.admin_choDate')" value-format="yyyy-MM-dd" :picker-options="pickerOptions1"></el-date-picker> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_unitPrice')" prop="CostPrice"> <el-input v-model="addMsg.CostPrice" placeholder="0.0" @keyup.native="checkPrice(addMsg,'CostPrice')"> </el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_salesPrice')" prop="SalePrice"> <el-input v-model="addMsg.SalePrice" placeholder="0.0" @keyup.native="checkPrice(addMsg,'SalePrice')"> </el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_b2bPrice')" prop="B2BPrice"> <el-input v-model="addMsg.B2BPrice" placeholder="0.0" @keyup.native="checkPrice(addMsg,'B2BPrice')"> </el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_b2cPrice')" prop="B2CPrice"> <el-input v-model="addMsg.B2CPrice" placeholder="0.0" @keyup.native="checkPrice(addMsg,'B2CPrice')"> </el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="PNR"> <el-input v-model="addMsg.PNR" :placeholder="$t('pub.pleaseImport')"></el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item :label="$t('Airticket.Air_salesPlatform')"> <el-select v-model="openplatString" multiple :placeholder="$t('pub.pleaseSel')" class="multiple_input"> <el-option v-for="item in openplatform" :key="item.ID" :label="item.Name" :value="item.ID"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="线路"> <el-select v-model="addMsg.LineId" :placeholder="$t('pub.pleaseSel')"> <el-option v-for="item in LineList" :key="item.LineID" :label="item.LineName" :value="item.LineID"> </el-option> </el-select> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="行程天数(国际)" > <el-input v-model="addMsg.DayNum" placeholder="行程天数" @keyup.native="checkInteger(addMsg,'DayNum')" maxlength="2"></el-input> </el-form-item> </el-col> <el-col :span="24"> <div class="commandLine"> <span> <i class="iconfont icon-arrow1"></i> </span> <el-input type="textarea" :autosize="{minRows: 1, maxRows: 8 }" resize="none" :placeholder="$t('Airticket.Air_inputOrder')" v-model="TicketOrder" class="cmd_input" @keyup.enter.native="getPostTicketOrder()"></el-input> </div> <div class="TM_OrderRemind">输入完成后回车即可导入</div> </el-col> <div class="top-btn"> <button class="cancelBtn" type="button" @click="command=false,resetForm('addMsgCmd')"> {{$t('pub.cancelBtn')}} </button> <button type="button" class="normalBtn" :class="{'disClick':!isSubmit}" @click="submitForm('addMsgCmd')"> {{$t('pub.saveBtn')}} </button> </div> </div> </el-form> <el-form class="combottomDiv" v-if="sanmai" label-width="100px" :model="sales" :rules="salerules"> <el-row> <el-col :span="20"> <p class="_add_t">散卖机票</p> </el-col> <el-col :span="4"> <button type="button" class="normalBtn" @click="saveSales()">{{$t('pub.saveBtn')}}</button> <button class="hollowFixedBtn" type="button" @click="resetForm('addMsg'),sanmai=false">{{$t('pub.cancelBtn')}}</button> </el-col> </el-row> <div class="_add_sel"> <ul class="clearfix"> <el-col :span="5"> <el-form-item label="人数" prop="AirTicketNum"> <el-input v-model="sales.AirTicketNum" @keyup.native="checkInteger(sales,'AirTicketNum')"></el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="B2B单价" prop="B2BPrice"> <el-input v-model="sales.B2BPrice" @keyup.native="checkPrice(sales,'B2BPrice')"></el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="B2C单价" prop="B2CPrice"> <el-input v-model="sales.B2CPrice" @keyup.native="checkPrice(sales,'B2CPrice')"></el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="是否特惠" prop="IsDiscounts"> <el-select v-model="sales.IsDiscounts" :placeholder="$t('pub.pleaseSel')"> <el-option label="否" value="0" selected></el-option> <el-option label="是" value="1"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="机票类型" prop="AirTicketType"> <el-select v-model="sales.AirTicketType" :placeholder="$t('pub.pleaseSel')"> <el-option label="国际机票" value="1" selected></el-option> <el-option label="国内机票" value="2"></el-option> </el-select> </el-form-item> </el-col> </ul> </div> </el-form> <el-dialog custom-class="w400" :title="importFileTitle" :visible.sync="ZhongDuanPNR" center> <el-form label-width="110px"> <el-form-item label="中段PNR"> <el-input v-model="MidpiecePNR"></el-input> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <button class="hollowFixedBtn" @click="dialogFormVisible=false">{{$t('pub.cancelBtn')}}</button> <button class="normalBtn" type="primary" @click="UpdateTicketState(ZhongDuanID, 2)">{{$t('pub.sureBtn')}}</button> </div> </el-dialog> <el-dialog custom-class="w700" :title="importFileTitle" :visible.sync="outerVisible" center> <el-upload v-if="uploadDoc" ref="ticketUpload" drag class="upload-demo" :action="getImportFileUrl()" :on-success="handleAvatarSuccess"> <i class="el-icon-upload"></i> <div class="el-upload__text"> 将文件拖到此处,或 <em>点击上传</em> </div> <div slot="tip" class="el-upload__tip">只能上传Excel文件</div> </el-upload> </el-dialog> <el-dialog custom-class="w400" title="行程单上传" :visible.sync="outerVisible1" center> <el-upload v-if="uploadDoc" ref="ticketUploadItinerary" drag class="upload-demo" :http-request="uploadItinerary" :on-success="handleAvatarItinerarySuccess" action> <i class="el-icon-upload"></i> <div class="el-upload__text"> 将文件拖到此处,或 <em>点击上传</em> </div> <div slot="tip" class="el-upload__tip"></div> </el-upload> </el-dialog> <!-- 单据转移 --> <el-dialog custom-class="w400" title="机票单据转移" :visible.sync="ticketDia" center> <el-form label-width="110px"> <el-form-item label="原机票编码"> <el-input v-model="ticketMsg.OldAirId" :disabled="true"></el-input> </el-form-item> <el-form-item label="新机票编码"> <el-input v-model="ticketMsg.NewAirId"></el-input> </el-form-item> <el-form-item label="财务单据ID"> <!-- <el-checkbox-group > --> <template v-for="(item,index) in ticketMsg.FinalList"> <el-checkbox v-model="ckedArr" @change="handleChange(item)" :label="item" :key="index+5000">{{item}}</el-checkbox> </template> <span v-show="ticketMsg.FinalList.length==0" style="font-size:14px">暂无数据</span> <!-- </el-checkbox-group> --> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <button class="hollowFixedBtn" @click="ticketDia=false">{{$t('pub.cancelBtn')}}</button> <button class="normalBtn" type="primary" @click="TicketFinalTranfer">{{$t('pub.sureBtn')}}</button> </div> </el-dialog> <!-- 机票服务费 --> <el-dialog width="1000px" title="保存" :visible.sync="moneyR" center> <el-form class="Rform" ref="form" :model="Ticketform" label-width="67px"> <table class="po_content singeRowTable" style="border:1px solid #E6E6E6;margin-bottom:15px" cellspacing="0" cellpadding="0" v-loading="loading"> <tr> <th>团号</th> <th>机位数</th> <th>服务费</th> <th>备注</th> </tr> <tr v-for="(item,index) in MsgRAirServiceList" :key="index"> <td><input style="position: relative;top: 3px;display: inline-block;width: 15px;height: 15px;" type="checkbox" :value="item.TCID" v-model="customerList"/> {{item.TCNUM}}({{item.TCID}}){{item.OutBranchName}} </td> <td><el-input size="small" style="width:150px" v-model="item.TicketNum" @keyup.native="checkInteger(item,'TicketNum')"></el-input></td> <td><el-input size="mini" style="width:150px" v-model="item.Money" @keyup.native="checkPrice(item,'Money')"></el-input></td> <td> <el-input style="width:150px" v-model="item.Remark"></el-input> <el-select style="width:100px" @change="SelectFinaceId(FinaceIdnum,index)" v-model="FinaceIdnum" :placeholder="$t('pub.pleaseSel')"> <el-option v-for="(item,index) in AirSeritem" :key="index" :label="item.FinaceId" :value="item.FinaceId"></el-option> </el-select> </td> </tr> <tr v-if="MsgRAirServiceList.length==0"> <td colspan="5">暂无数据</td> </tr> </table> <el-row style="margin-bottom:15px"> <el-col :span="8"> 付款类型 :<el-input style="width:200px" v-model="fklxStr" :disabled="true"></el-input> </el-col> <el-col :span="8"> 结算部门 :<el-input style="width:200px" v-model="jsbmStr" :disabled="true"></el-input> </el-col> </el-row> <el-row> <el-col :span="8"> <el-form-item label="上传附件" > <div class="picload"> <el-upload style="width: 138px;height: 92px;" drag :http-request="uploadFileBtn" :multiple="true" :show-file-list="false" action=""> <i class="el-icon-plus avatar-uploader-icon"></i> <div class="el-upload__text">{{$t('active.ld_djscwj')}}</div> </el-upload> </div> </el-form-item> </el-col> <el-col :span="16" style="padding-top:5px"> <div class="_addUpload_box" v-for="(file,fIndex) in saveMsg" :key="fIndex"> <div v-if="file.Type==3"> <div style="width:100%;height:100%;overflow: hidden;"> <img style="width:100%" :src="file.Url?file.Url:file.Content" @click="showUpLoadFile(file)"> </div> <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span> </div> <div v-if="file.Type==1"> <div class="iconfont " :class="file.Content.substring(file.Content.lastIndexOf('.')+1,file.Content.length).toUpperCase()=='PDF'? 'icon-pdf' : 'icon-excel'" @click="showUpLoadFile(file)"> </div> <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span> </div> <div v-if="file.Type==2"> <div class="iconfont icon-excel" @click="showUpLoadFile(file)"> </div> <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span> </div> </div> </el-col> </el-row> </el-form> <span slot="footer" class="dialog-footer"> <el-button size="small" @click="moneyR = false,FinaceIdnum=''">取 消</el-button> <el-button :loading="Btnloading" size="small" type="danger" @click="RSumbit">确 定</el-button> </span> </el-dialog> </div> </template> <script> export default { data() { let validateLineId = (rule, value, callback) => { if (value == 0) { return callback(new Error('请选择线路')); } else { callback(); } } return { FinaceIdnum:'', AirSeritem:[], fklxStr:'虚拟结算', jsbmStr:'总部票务部', currencyTypeList:[], MsgRAirServiceList:[], isCkedAll:false, customerList:[], Btnloading:false, showDisable:false, ClientAccountList:[], ClientTypeList:[], moneyR:false, saveMsg:[], Ticketform:{ ImportType:'', IsPublic:"", ClientType:"", ClientID:"", vorcherInos:[], PayDate:'', CurrencyId:1, }, ticketMsg:{ OldAirId:"", NewAirId:'', FinalList:[], FinanceId:'', }, ckedArr:[], ticketDia:false, MidpiecePNR: '', ZhongDuanID: 0, ZhongDuanPNR: false, outerVisible1: false, //导入文件弹窗标题 importFileTitle: "批量导入", //是否显示导入文件弹窗 outerVisible: false, //公用不限 comdefaultSelect: 0, //行程单上传信息 UploadItineraryMsg: { ID: 0, TripItinerary: "" }, //机票定金类型 DepositTypeArray: [{ Id: 1, Name: "一定" }, { Id: 2, Name: "二定" }, { Id: 3, Name: "三定" }, { Id: 4, Name: "四定" }, { Id: 5, Name: "尾款" }, ], msg: { pageIndex: 1, pageSize: 6, AirLineID: 0, DepositType: 0, OpenPlatform: "", QFlightDateStart: "", QFlightDateEnd: "", CreateBy: 0, //操作人 FlyState: "0", LineId: 0, //线路编号 ID: 0, TicketType: 0, //定金类型(1定,2定等) IsLimit: 1, Departure_city:0//出发地 }, addMsg: { ID: "0", AirLineID: "", FreightSpace: "", PNR: "", TicketType: "", TicketDeadline: "", TicketNum: "", CostPrice: "", SalePrice: "", B2BPrice: "", B2CPrice: "", OpenPlatform: "", FirstDeposit: "", SecondDeposit: "", ThirdDeposit: "", FourthDeposit: "", FinalPayment: "", flightList: [], LineId: 0,//线路编号 DayNum:0,//行程天数 }, //去程 addGoFlight: { AirLineTicketId: 0, FlightType: "", FlightID: "", FlightDate: "", aName: "", dName: "", FlightSubType: 1, ID: 0, AirLineID: 0, }, //回程 returnTripData: { AirLineTicketId: 0, FlightType: "", FlightID: "", FlightDate: "", aName: "", dName: "", FlightSubType: 3, ID: 0, AirLineID: 0 }, //员工列表 EmployeeList: [], defaultSelectValue: 0, downList: "", //一般模板 downMoreList: "", //多航段米板 changeAirLineID: "", chengeDelIdList: [], openplatString: [], OpenPlatformStrings: "", TicketOrder: "", //航空公司下拉框 airlineList: [], //舱位列表下拉框 FreightSpaceList: [], //机票类型下拉框 TicketTypeList: [], //日志详情 orderlogList: [], //航班详情 tripDetails: [], //订单详情 usedDetails: [], //默认图片 defaultImg: 'this.src="' + require("../../assets/img/bg_z1@2x.png") + '"', //开放平台下拉框 openplatform: [], TicketOrderList: [], //去程航班列表 AirportNameList: [], //回程航班列表 BackAirportNameList: [], //国内城市列表 ChinaCityList:[], //线路列表 LineList: [], returnTrip: [], total: 0, isSubmit: true, currentPage: 1, loading: true, noData: false, countryList: "", dataList: [], addShow: false, command: false, sanmai: false, uploadDoc: true, //散卖obj sales: { AirTicketId: 0, AirTicketNum: 0, B2BPrice: '', B2CPrice: '', IsDiscounts: '0', AirTicketType:'1' }, //1-一般导入,2-多航段导入 importType: 1, pickerOptions1: { disabledDate(time) { return time.getTime() < Date.now() - 100000000; } }, beforeCheck: { disabledDate: time => { if (this.msg.QFlightDateEnd) { let endTime = new Date(this.msg.QFlightDateEnd); return time && endTime.getTime() < time.getTime(); } else { return false; } } }, afterCheck: { disabledDate: time => { if (this.msg.QFlightDateStart) { let startTime = new Date(this.msg.QFlightDateStart); //可以选择当天 return time && time.getTime() < startTime.getTime() - 1 * 24 * 60 * 60 * 1000; } else { return false; } } }, rules: { //表单必填验证 FreightSpace: [{ required: true, message: "请选择仓位", trigger: "change" }], AirLineID: [{ required: true, message: "请选择航空公司", trigger: "change" }], TicketType: [{ required: true, message: "请选择机票类型", trigger: "change" }], TicketDeadline: [{ required: true, message: "请选择出票时限", trigger: "change" }], TicketNum: [{ required: true, message: "请输入人数", trigger: "change" }], CostPrice: [{ required: true, message: "请输入成本价", trigger: "change" }], SalePrice: [{ required: true, message: "请输入销售价", trigger: "change" }], B2BPrice: [{ required: true, message: "请输入B2B价格", trigger: "change" }], B2CPrice: [{ required: true, message: "请输入B2C价格", trigger: "change" }], openplatString: [{ required: true, message: "请选择销售平台", trigger: "change" }], LineId: [{ validator: validateLineId, trigger: 'change', required: true, }], }, salerules: { AirTicketNum: [{ required: true, message: "请填写人数", trigger: "change" }], B2BPrice: [{ required: true, message: "请填写B2B单价", trigger: "change" }], B2CPrice: [{ required: true, message: "请填写B2C单价", trigger: "change" }], } }; }, methods: { SelectFinaceId(val,index){ this.MsgRAirServiceList[index].Remark=`关联单据:${val}`; }, TikcetServiceCharge(item){ this.AirSeritem=[]; if(item.FirstAuditList&&item.FirstAuditList.length>0){ item.FirstAuditList.forEach(fin=>{ this.AirSeritem.push(fin); }) } if(item.SecondAuditList && item.SecondAuditList.length>0){ item.SecondAuditList.forEach(fin=>{ this.AirSeritem.push(fin); }) } if(item.ThirdAuditList &&item.ThirdAuditList.length>0){ item.ThirdAuditList.forEach(fin=>{ this.AirSeritem.push(fin); }) } if(item.FourthAuditList&&item.FourthAuditList.length>0){ item.FourthAuditList.forEach(fin=>{ this.AirSeritem.push(fin); }) } if(item.FinalAuditList&&item.FinalAuditList.length>0){ item.FinalAuditList.forEach(fin=>{ this.AirSeritem.push(fin); }) } this.moneyR=true; this.MsgRAirServiceList=[]; item.PriceList.forEach(price=>{ if(!price.disabled){ let obj={ AirTicketId:price.AirTicketId, Money:price.Money, TCID:price.TCID, TCNUM:price.TCNUM, TicketNum:price.TicketNum, disabled:price.disabled, Remark:"", OutBranchName:price.OutBranchName, }; this.MsgRAirServiceList.push(obj); } }) }, IsPublicChange(val){ this.showDisable=false; this.Ticketform.ClientType = ''; this.Ticketform.ClientID = ''; this.Ticketform.AccountNumber = ''; this.ClientAccountListS=[]; if(val==8||val==9){ this.showDisable=true; } }, RSumbit(){ if(this.customerList.length==0){ this.Error("至少选择一项!") return; } this.Ticketform.AirServiceList=[]; this.customerList.forEach(item=>{ this.MsgRAirServiceList.forEach(obj=>{ if(item==obj.TCID){ this.Ticketform.AirServiceList.push(obj) } }) }) let list=this.Ticketform.AirServiceList; for(let i=0;i<list.length;i++){ if(!list[i].Money || list[i].Money==""){ this.Error("请输入服务费") return; } if(!list[i].TicketNum || list[i].TicketNum==""){ this.Error("请输入机位数") return; } } this.Ticketform.vorcherInos = this.saveMsg; // if(this.Ticketform.PayDate==""){ // this.Error("请选择时间!"); // return; // } this.Btnloading=true; this.apipost('Financial_post_SetAirTicketServiceBetchImport',this.Ticketform,res=>{ this.Btnloading=false; if(res.data.resultCode==1){ this.Success(res.data.message) this.initMsg(); this.FinaceIdnum='', this.moneyR=false; this.getList(); }else{ this.Error(res.data.message) } },err=>{}) }, getCurrencyType() { // 币种类型 this.apipost('financeinfo_post_GetList', { Name: '' }, res => { if (res.data.resultCode == 1) { this.currencyTypeList = res.data.data; } }, err => {}) }, initMsg(){ this.saveMsg=[]; this.Ticketform={ ImportType:'', IsPublic:"", ClientType:"", ClientID:"", vorcherInos:[], PayDate:'', CurrencyId:1, } }, showUpLoadFile(i){ // 预览上传文件 if(i.Type==3){ this.picObj.push(i.Url); this.picIsShow= true; }else{ if(i.Content.substring(i.Content.lastIndexOf('.')+1,i.Content.length).toUpperCase()=='PDF'){ this.previewPDF(i.Url) }else{ window.open("https://view.officeapps.live.com/op/view.aspx?src="+i.Url) } } }, deleteUploadFile(i){ // 删除上传文件 this.saveMsg.splice(i,1); }, uploadFileBtn(file) { //上传 if(file.file.size > 1024 * 1024 * 10) { this.$message.warning(this.$t('tips.wjdxbncgsz')) return } // 1 文档 2 数据 3 图片 let typeArr=[ {stringArr:'GIF|JPG|JPEG|PNG|BMP',type:3}, {stringArr:'DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF',type:1}, ] let ft=file.file.name.substring(file.file.name.lastIndexOf('.')+1,file.file.name.length).toUpperCase(); let fileTypeNumber = 2; let typeOk = false; typeArr.forEach(x=>{ if(x.stringArr.indexOf(ft)!='-1') { fileTypeNumber=x.type; typeOk = true; } }) if (!typeOk) return this.$message.error(this.$t('tips.qscWEfile')); let newArr = []; newArr.push(file.file) let path = "/Upload/Temporary/" this.$message.info(this.$t('tips.shangchuanzhong')) this.UploadSelfFileT(path, newArr, x => { let fileSize = file.file.size<1024? file.file.size:(file.file.size / 1024).toFixed(0); this.saveMsg.push({ Content: x.data.FilePath, ID:0, Type:fileTypeNumber, Url: this.domainManager().ViittoFileUrl + x.data.FilePath, }) this.$message.success(this.$t('tips.scchenggong')) }, 1); }, TicketFinalTranfer(){ if(this.ticketMsg.NewAirId==""){ this.Error("请输入新机票编码"); return; } if(this.ticketMsg.FinanceId==""){ this.Error("请选择财务单据"); return; } this.apipost( "Financial_post_AirTicketFinanceTransfer", this.ticketMsg, res => { if (res.data.resultCode == 1) { this.ticketDia=false; this.Success(res.data.message); this.getList(); } else{ this.Error(res.data.message) } }, err => {} ); }, handleChange(val){ let index = this.ckedArr.indexOf(val) if (index >= 0) { this.ckedArr = [val] } else { this.ckedArr.splice(index, 1) } if(this.ckedArr.length>0){ this.ticketMsg.FinanceId=this.ckedArr[0]; } else{ this.ticketMsg.FinanceId=""; } }, OpenFindig(item){ this.ticketDia=true; this.ticketMsg={ OldAirId:"", NewAirId:'', FinalList:[], FinanceId:'', }; this.ckedArr=[]; this.ticketMsg.OldAirId=item.ID; let FinalList=[]; if(item.FirstAuditList){ item.FirstAuditList.forEach(child=>{ FinalList.push(child.FinaceId); }) } if(item.SecondAuditList){ item.SecondAuditList.forEach(child=>{ FinalList.push(child.FinaceId); }) } if(item.ThirdAuditList){ item.ThirdAuditList.forEach(child=>{ FinalList.push(child.FinaceId); }) } if(item.FourthAuditList){ item.FourthAuditList.forEach(child=>{ FinalList.push(child.FinaceId); }) } if(item.FinalAuditList){ item.FinalAuditList.forEach(child=>{ FinalList.push(child.FinaceId); }) } this.ticketMsg.FinalList=FinalList; }, //页面跳转 goUrlT(path, obj, title) { this.$router.push({ name: path, query: { "id": obj, blank: 'y', tab: title } }) }, //联运跳转 goUrlTicketUnion(TCID, AirticketId) { this.$router.push({ name: "TicketTransport", query: { "tcid": TCID, "AirticketId": AirticketId, blank: 'y', tab: "设置联运" } }) }, //上传行程单 uploadItinerary(item) { let newArr = []; newArr.push(item.file); let path = "/Upload/Ticket/"; this.UploadSelfFileT(path, newArr, x => { var fileUrl = this.domainManager().ViittoFileUrl + x.data.FilePath; this.UploadItineraryMsg.TripItinerary = fileUrl; this.apipost( "AirTicket_Post_SetTripItinerary", this.UploadItineraryMsg, res => { if (res.data.resultCode == 1) { this.Success("上传行程单成功!"); this.UploadItineraryMsg.ID = 0; this.UploadItineraryMsg.TripItinerary = ""; } this.outerVisible1 = false; }, null ); }); }, handleAvatarItinerarySuccess(file) { this.$refs.ticketUploadItinerary.clearFiles(); }, //跳转到财务详情页面 goFinaceDetails(frid) { this.$router.push({ name: "FinancialDocumentsDetail", query: { id: frid, blank: "y", tab: "单据详情" } }); }, //获取颜色状态 getClass(status) { //默认样式 var classStr = "bg_default"; switch (status) { //审核成功样式 case 4: classStr = "_bg_gre"; break; //审核中样式 case 2: classStr = "bg_auditing"; break; } return classStr; }, //获取审核状态 getTicketDepositStatus(status) { var TicketStatus = ""; switch (status) { case 2: TicketStatus = "审核中"; break; case 3: TicketStatus = "审核失败"; break; case 4: TicketStatus = "审核成功"; break; } return TicketStatus; }, //获取首付款类型 getFeeType(FeeType) { var FeeTypeName = ""; switch (FeeType) { case 1: FeeTypeName = "收款"; break; case 2: FeeTypeName = "付款"; break; } return FeeTypeName; }, //跳转财务付款单 goFinacePage(item, type) { var TCID = 0; if (item.TCIDList != null && item.TCIDList.length > 0) { TCID = item.TCIDList[0]; } let orderObj = { OrderID: null, OrderSource: 4, TCID: null, Obj: { Type: type }, SourceID: item.ID, TCIDList: item.TCIDList, companyIDList: item.OutBranchIdList, }; this.$router.push({ name: "ChoiceAddFinancialDocuments", query: { Type: 2, path: "TicketFinace", blank: "y", orderObj: JSON.stringify(orderObj) } }); }, //跳转至旅客名单 goCustomList(path, obj, type, title) { this.$router.push({ name: path, query: { blank: 'y', isFromTk: true, id: obj.ID, Obj: JSON.stringify({ Type: type }), TCIDList: JSON.stringify(obj.TCIDList), companyIDList: JSON.stringify(obj.OutBranchIdList), tab: title } }) }, //导入 getImport(command) { this.importType = command; this.outerVisible = true; }, //下载(不要删除) getDownLoad() {}, //下载文件 DownLoad(Type, str) { if (Type == 1) { window.open(this.downList); } else if (Type == 2) { window.open(this.downMoreList); } else { window.open(str); } }, getImportFileUrl() { let url = this.domainManager().UploadFileUrl + "?cmd=dmc_post_LocalFileUpload&fileType=1&fileLimit=1&Type=2&uid=" + this.getLocalStorage().EmployeeId + "&importType=" + this.importType; return url; }, getList() { if (this.msg.ID == "") { this.msg.ID = 0; } this.loading = true; this.apipost( "AirTicket_get_GetPageList", this.msg, res => { this.loading = false; if (res.data.resultCode == 1) { this.total = res.data.data.count; this.dataList = res.data.data.pageData; // PriceList // RAirServiceList this.dataList.forEach(data=>{ data.RAirServiceList.forEach(item=>{ data.PriceList.forEach(price=>{ if(price.TCID==item.TCID){ price.FinanceId=item.FinanceId; price.Money=item.Money; price.TicketNum=item.TicketNum; price.disabled=true; } }) }) }) this.noData = !this.total > 0; } if (this.msg.ID == 0) { this.msg.ID = ""; } }, err => {} ); }, //初始化航空公司下拉 initAirlines() { this.apipost( "airline_post_GetList", {}, res => { if (res.data.resultCode == 1) { this.airlineList = res.data.data; } }, err => {} ); }, //获取舱位列表 GetFreightSpaceList() { this.apipost( "AirTicket_Get_GetFreightSpaceList", {}, res => { if (res.data.resultCode == 1) { this.FreightSpaceList = res.data.data; } }, err => {} ); }, //获取机票类型 GetTicketTypeList() { this.apipost( "AirTicket_Get_GetTicketTypeList", {}, res => { if (res.data.resultCode == 1) { this.TicketTypeList = res.data.data; } }, err => {} ); }, //新增去程 addFlight() { if (this.addGoFlight.FlightDate == "") { this.Warning("请选择航班日期!"); return; } var newList = {}; var newDate = this.addGoFlight.FlightDate; this.AirportNameList.forEach(x => { if (x.ID == this.addGoFlight.FlightID) { let goFlightCount = 0; this.addMsg.flightList.forEach(flight => { if (flight.FlightSubType === 1) { goFlightCount++; } }); if (goFlightCount == 0) { newList.FlightType = 1; //去程 } else { newList.FlightType = 2; //去程中转 } newList.aName = x.aName; newList.dName = x.dName; newList.Flight_number = x.Flight_number; newList.FlightDate = newDate; newList.FlightID = this.addGoFlight.FlightID; newList.AirLineTicketId = this.addGoFlight.AirLineTicketId; newList.AirLineID = this.addGoFlight.AirLineID; newList.FlightSubType = this.addGoFlight.FlightSubType; newList.TicketDepartureTime = x.DepartureTime; newList.TicketArrivalTime = x.ArrivalTime; newList.ID = this.addGoFlight.ID; this.addMsg.flightList.push(newList); } }); //航班排序 this.FlightSort(); this.addGoFlight.FlightDate = ""; this.addGoFlight.FlightID = ""; this.addGoFlight.AirLineID = 0; }, //添加回程 addFlightReturn() { if (this.returnTripData.FlightDate == "") { this.Warning("请选择航班日期!"); return; } var newList = {}; var newDate = this.returnTripData.FlightDate; this.BackAirportNameList.forEach(x => { if (x.ID == this.returnTripData.FlightID) { let returnFlightCount = 0; this.addMsg.flightList.forEach(flight => { if (flight.FlightSubType === 3) { returnFlightCount++; } }); if (returnFlightCount == 0) { newList.FlightType = 3; //回程 } else { newList.FlightType = 2; //回程中转 } newList.aName = x.aName; newList.dName = x.dName; newList.Flight_number = x.Flight_number; newList.FlightDate = newDate; newList.FlightID = this.returnTripData.FlightID; newList.AirLineTicketId = this.returnTripData.AirLineTicketId; newList.FlightSubType = this.returnTripData.FlightSubType; newList.AirLineID = this.returnTripData.AirLineID; newList.TicketDepartureTime = x.DepartureTime; newList.TicketArrivalTime = x.ArrivalTime; newList.ID = this.returnTripData.ID; this.addMsg.flightList.push(newList); } }); //航班排序 this.FlightSort(); this.returnTripData.FlightDate = ""; this.returnTripData.FlightID = ""; this.returnTripData.AirLineID = 0; }, //航班排序 FlightSort() { let goTripArray = []; //去程航班 let returnTripArray = []; //回程航班 this.addMsg.flightList.forEach(x => { if (x.FlightSubType == 1) { goTripArray.push(x); } if (x.FlightSubType == 3) { returnTripArray.push(x); } }); goTripArray.sort(this.arraySort); returnTripArray.sort(this.arraySort); if (goTripArray != null && goTripArray.length > 0) { goTripArray.forEach((item, index) => { if (index == 0) { item.FlightType = 1; //去程 } else { item.FlightType = 2; //去程中转 } }); } this.addMsg.flightList = []; this.addMsg.flightList = goTripArray; if (returnTripArray != null && returnTripArray.length > 0) { returnTripArray.forEach((item, index) => { if (index == returnTripArray.length - 1) { item.FlightType = 3; //回程 } else { item.FlightType = 2; //去程中转 } this.addMsg.flightList.push(item); }); } }, //数组排序 arraySort(itemA, itemB) { if (this.getConvertDate(itemA.FlightDate) < this.getConvertDate(itemB.FlightDate)) { return -1; } else if (this.getConvertDate(itemA.FlightDate) > this.getConvertDate(itemB.FlightDate)) { return 1; } else { if (this.getConvertDate(itemA.FlightDate) < this.getConvertDate(itemB.FlightDate)) { return 1; } else if (this.getConvertDate(itemA.FlightDate) > this.getConvertDate(itemB.FlightDate)) { return -1; } return 0; } }, //获取日期时间转换 getConvertDate(dateStr) { if (dateStr.indexOf("年") != -1) { dateStr = this.$commonUtils.getDateStr(dateStr) } return dateStr; }, // 修改 根据ID获取信息 getEntityExtend(ID) { this.addShow = true; this.command = false; this.sanmai = false; this.initAddMsg(); this.chengeDelIdList = []; this.apipost( "ticket_get_GetEntityExtend", { ID: ID }, res => { if (res.data.resultCode == 1) { this.addMsg = res.data.data; if (this.addMsg.OpenPlatform != null) { if (this.addMsg.OpenPlatform != "") { this.OpenPlatformStrings = this.addMsg.OpenPlatform.split(","); this.OpenPlatformStrings.forEach(x => { this.openplatString.push(Number(x)); }); } } this.changeAirLineID = res.data.data.AirLineID; res.data.data.flightList.forEach((x, index) => { this.chengeDelIdList.push(x.ID); }); } else { this.Warning(res.data.message); } }, err => {} ); }, // 修改 根据ID获取信息 UpdateTicketState(ID, TicketState) { this.apipost( "AirTicket_get_UpdateTicketState", { ID: ID, TicketState: TicketState, MidpiecePNR: this.MidpiecePNR }, res => { if (res.data.resultCode == 1) { this.Success("操作成功"); this.getList(); } else { this.Warning(res.data.message); } this.ZhongDuanPNR=false }, err => {} ); }, //根据航空公司ID 获取机场列表 getAirportNameList(AirLineID, type) { if (type == 1) { this.addGoFlight.FlightID = ""; this.addGoFlight.FlightDate = ""; } else { this.returnTripData.FlightID = ""; this.returnTripData.FlightDate = ""; } let msg = { airlineID: AirLineID }; this.apipost( "flight_post_GetAirportNameListExt", msg, res => { if (res.data.resultCode == 1) { if (type == 1) { this.AirportNameList = res.data.data; } else { this.BackAirportNameList = res.data.data; } } }, err => {} ); }, //命令提交 getPostTicketOrder() { if (!this.TicketOrder) { this.Warning("请输入命令"); return; } this.apipost( "AirTicket_post_PostTicketOrder", { TicketOrder: this.TicketOrder }, res => { if (res.data.resultCode == 1) { var DataArray = res.data.data; this.TicketOrder = ""; DataArray.forEach(ticketItem => { this.TicketOrderList.push(ticketItem); var newList = {}; newList.AirLineTicketId = 0; newList.FlightID = ticketItem.FID; newList.FlightDate = ticketItem.FlightDate; newList.FlightSubType = 1; newList.FlightType = 1; this.addMsg.flightList.push(newList); }); //航班排序数组 let gotripArray = this.addMsg.flightList; gotripArray.sort(this.arraySort); if (gotripArray != null && gotripArray.length > 0) { gotripArray.forEach((item, index) => { if (index == 0) { item.FlightType = 1; //启程 item.FlightSubType = 1; } else if ( index == gotripArray.length - 1 && gotripArray.length > 1 ) { item.FlightType = 3; //返程 item.FlightSubType = 3; } else { item.FlightType = 2; } }); } this.addMsg.flightList = []; this.addMsg.flightList = gotripArray; let newGoTripArray = this.TicketOrderList; newGoTripArray.sort(this.arraySort); this.TicketOrderList = newGoTripArray; this.addMsg.AirLineID = this.TicketOrderList[0].AirlineID; this.addMsg.FreightSpace = this.TicketOrderList[0].FreightSpace; this.addMsg.TicketNum = this.TicketOrderList[0].Num; } else { this.Warning(res.data.message); } }, err => {} ); }, //删除 deleteCmd(index) { var that = this; this.Confirm("是否删除?", function () { that.deletelist(index); }); }, //航空公司改变 changeSele(chengeDelIdList) { var that = this; this.Confirm("航空公司改变将删除以前的航班信息?", function () { this.addMsg.flightList = []; this.apipost( "AirticketFlight_Post_RemoveByIds", { TicketFlightId: chengeDelIdList.toString() }, res => {}, err => {} ); }); }, //删除航班 deletFlightInfo(id, index) { var that = this; that.Confirm("是否删除此航班?", function () { that.addMsg.flightList.splice(index, 1); that.apipost( "AirticketFlight_Post_Remove", { TicketFlightId: id }, res => {}, err => {} ); }); }, saveAddData(addMsg) { if (addMsg == "addMsgCmd") { if (this.addMsg.flightList.length >= 2) { this.addMsg.TicketType = 2; } } if (!this.addMsg.FirstDeposit) { this.addMsg.FirstDeposit = ""; } if (!this.addMsg.SecondDeposit) { this.addMsg.SecondDeposit = ""; } if (!this.addMsg.ThirdDeposit) { this.addMsg.ThirdDeposit = ""; } if (!this.addMsg.FourthDeposit) { this.addMsg.FourthDeposit = ""; } this.addMsg.TicketNum = parseInt(this.addMsg.TicketNum); this.addMsg.ID = parseInt(this.addMsg.ID); this.addMsg.OpenPlatform = this.openplatString.toString(); var newList = this.addMsg; newList.flightList.forEach(x => { delete x.ArrivalCityName; delete x.DepartureName; delete x.Flight_number; delete x.aName; delete x.dName; }); if (newList.flightList != null && newList.flightList.length > 0 && newList.flightList[0].AirLineID != undefined) { this.addMsg.AirLineID = newList.flightList[0].AirLineID; } if (this.isSubmit) { this.isSubmit = false; this.apipost( "AirTicket_post_Set", newList, res => { if (res.data.resultCode == 1) { this.Success("保存成功"); this.initAddMsg(); this.getList(); } else { this.Warning(res.data.message); } this.addShow = false; this.command = false; this.isSubmit = true; }, err => {} ); } }, //提交创建、修改表单 submitForm(addMsg) { let that = this; that.$refs[addMsg].validate(valid => { if (valid) { that.saveAddData(addMsg); } else { return false; } }); }, //删除数组 deletelist(index) { this.TicketOrderList.splice(index, 1); this.addMsg.flightList.splice(index, 1); }, //获取订单详情 getUsedDetails(index) { this.usedDetails = this.dataList[index].OrderList; }, //日志详情 InfoChangeLogShow(ID) { this.apipost( "DmcInfoChangeLog_get_GetList", { ResourceId: ID, ResourceType: 3 }, res => { this.orderlogList = res.data.data; }, err => {} ); }, //获取开放平台 GetPlatform() { this.apipost("hotel_post_GetPlatform", {}, res => { this.openplatform = res.data.data; }); }, //翻页功能按钮 handleCurrentChange(val) { this.msg.pageIndex = val; this.getList(); }, //查询初始化页码 resetPageIndex() { this.msg.pageIndex = 1; this.currentPage = 1; }, //重新初始化提交参数 initAddMsg() { this.addMsg.ID = 0; this.addMsg.AirLineID = ""; this.addMsg.FreightSpace = ""; this.addMsg.PNR = ""; this.addMsg.TicketType = 1; this.addMsg.TicketDeadline = ""; this.addMsg.TicketNum = ""; this.addMsg.CostPrice = ""; this.addMsg.SalePrice = ""; this.addMsg.B2BPrice = ""; this.addMsg.B2CPrice = ""; this.addMsg.OpenPlatform = ""; this.addMsg.FirstDeposit = ""; this.addMsg.SecondDeposit = ""; this.addMsg.ThirdDeposit = ""; this.addMsg.FourthDeposit = ""; this.addMsg.FinalPayment = ""; this.addMsg.flightList = []; this.addMsg.LineId = 0; this.AirportNameList = ""; this.addGoFlight.FlightDate = ""; this.addGoFlight.FlightID = ""; this.TicketOrderList = []; this.openplatString = []; this.changeAirLineID = ""; this.addMsg.DayNum=0; }, //弹出框取消 初始化谈框内表单 resetForm(formName) { this.$refs[formName].resetFields(); this.openplatString = []; }, //上传文件后清空文件队列 handleAvatarSuccess(res, file) { this.$refs.ticketUpload.clearFiles(); if (res.resultCode == 1) { this.Success(res.message); this.outerVisible = false; this.getList(); } }, //下载模板文件 getDownList() { this.apipost( "AirTicket_post_DownAirticket", {}, res => { if (res.data.resultCode == 1) { this.downList = this.domainManager().LocalTemplateFileDownLoadUrl + res.data.data.FileUrl; this.downMoreList = this.domainManager().LocalTemplateFileDownLoadUrl + res.data.data.MoreUrl; } else { this.Error(res.data.message); } }, err => {} ); }, goUrl(path, obj, name) { this.$router.push({ path: path, query: { id: obj.ID, alcode: obj.AlCode, flightdate: obj.FlightDate, blank: "y", tab: name } }); }, //删除机票 DeleteAirticket(Id) { if (Id > 0) { var that = this; this.Confirm("是否删除?", function () { var msg = { ID: Id }; that.apipost( "AirTicket_Post_RemoveAirticket", msg, res => { if (res.data.resultCode == 1) { that.Success("删除成功!"); that.getList(); } else { that.Error(res.data.message); } }, null ); }); } else { this.addMsg.RulesList.splice(index, 1); } }, //根据当前员工所在部门获取该部门及子部门员工信息 getEmployeeList() { this.apipost( "admin_get_GetEmployeeByUserDepartmentId", {}, res => { if (res.data.resultCode == 1) { this.EmployeeList = res.data.data; } }, err => {} ); }, //获取线路列表 GetLineList() { this.apipost( "line_post_GetAllList", {}, res => { if (res.data.resultCode == 1) { this.LineList = res.data.data; } }, err => {} ); }, //散卖机票 sanSale(item) { this.sanmai = true; this.addShow = false; this.command = false; this.sales.AirTicketId = item.ID; this.sales.AirTicketNum = item.AirTicketScatterNum; this.sales.B2BPrice = item.ScatterB2BPrice; this.sales.B2CPrice = item.ScatterB2CPrice; if (item.IsDiscounts != null) { this.sales.IsDiscounts = item.IsDiscounts.toString(); } else { this.sales.IsDiscounts = '0'; } if(item.AirTicketType!=null){ this.sales.AirTicketType=item.AirTicketType.toString(); }else { this.sales.AirTicketType='1'; } }, //保存 saveSales() { this.apipost( "ticket_post_SetAirTicketScattering", this.sales, res => { if (res.data.resultCode == 1) { this.Success(res.data.message); this.getList(); this.sanmai = false; } else { this.Error(res.data.message); } }, err => {} ); }, //获取中国下面的所有城市 GetChinaCityList() { this.apipost( "Destination_get_GetCityListByCountryId", { Id: 2 }, res => { if (res.data.resultCode == 1) { this.ChinaCityList = res.data.data; } else { this.Error(res.data.message); } }, err => {} ); } }, mounted() { var id = this.$route.query.id; if (id) { this.msg.ID = id; } this.GetChinaCityList(); this.GetLineList(); this.getList(); this.initAirlines(); this.GetFreightSpaceList(); this.GetTicketTypeList(); this.GetPlatform(); this.getDownList(); this.getEmployeeList(); this.getCurrencyType(); } }; </script>