liuhj před 1 měsícem
rodič
revize
4359a29aee

+ 2 - 2
src/components/Finance/Cost.vue

@@ -4449,7 +4449,7 @@ export default {
             }).catch(err => {
                 that.costloading = false;
                 this.$message({
-                    message: '网络异常!',
+                    message: '接口异常,请联系信息部!',
                     type: 'error'
                 });
             })
@@ -6855,7 +6855,7 @@ export default {
                         throw new Error(resp.data.msg);
                     }
                 }).catch(err => {
-                    this.$message.error('网络异常!');
+                    this.$message.error('接口异常,请联系信息部!');
 
                 }).finally(() => {
                     this.selectLoading = false;

+ 4 - 4
src/components/MCR/MarketCustomerResourcesHome.vue

@@ -588,7 +588,7 @@ export default {
                 }
 
             }).catch(err => {
-                this.$message.error('网络异常!');
+                this.$message.error('接口异常,请联系信息部!!');
             }).finally(() => {
                 this.loading = false;
                 console.log('finally');
@@ -702,7 +702,7 @@ export default {
                     throw new Error(resp.data.msg);
                 }
             }).catch(err => {
-                this.$message.error('网络异常!');
+                this.$message.error('接口异常,请联系信息部!');
             })
         },
 
@@ -725,7 +725,7 @@ export default {
                     throw new Error(resp.data.msg);
                 }
             }).catch(err => {
-                this.$message.error('网络异常!');
+                this.$message.error('接口异常,请联系信息部!');
             })
         },
         remoteMethod(query) {
@@ -752,7 +752,7 @@ export default {
                         throw new Error(resp.data.msg);
                     }
                 }).catch(err => {
-                    this.$message.error('网络异常!');
+                    this.$message.error('接口异常,请联系信息部!');
 
                 }).finally(() => {
                     console.log('finally');

+ 1 - 1
src/components/MCR/MarketCustomerResourcesOperation.vue

@@ -484,7 +484,7 @@ export default {
                     throw new Error(resp.data.msg);
                 }
             }).catch(err => {
-                this.$message.error('网络异常!');
+                this.$message.error('接口异常,请联系信息部!');
             })
         },
         restaurantsfz(){

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 769 - 445
src/components/OP/NewAirTicket.vue


+ 632 - 0
src/components/OP/NewAirTicketRes.vue

@@ -0,0 +1,632 @@
+<template>
+    <div>
+        <div class="communal-list">
+            <div>
+                <div class="communal-title">
+                    <div>机票费用录入</div>
+                </div>
+                <div style="display: flex;justify-content: space-between;">
+                    <div style="width: 60%;">
+                        <el-select style="width: 300px;" remote :remote-method="GroupFeeKeywordSearch" :loading="selectLoading" v-model="DiId" placeholder="团组选择" clearable filterable
+                            @change="AirTicketResSelectChange">
+                            <el-option v-for="item in AirTicketResSelectDatas" :key="item.id" :label="item.teamName"
+                                :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </div>
+                    <div>
+                        <el-button type="primary" @click="download" style="margin-left: 10px;">导出报表</el-button>
+                        <el-button type="primary" @click="downloadCN" style="margin-left: 10px;">中文行程单</el-button>
+                        <el-button type="primary" @click="downloadEN" style="margin-left: 10px;">英文行程单</el-button>
+                        <el-button type="primary" style="margin-left: 10px;" @click="addIf">新增</el-button>
+                    </div>
+                </div>
+                <div style="margin:10px 0;color:#606266;">
+                    <span style="font-weight: bold;font-size:15px;">团队名称:</span>
+                    <span style="color:#606266;">{{ delegationInfo.teamName }}&nbsp;&nbsp;&nbsp;</span>
+                    <span style="font-weight: bold;font-size:15px;">客户:</span>
+                    <span style="color:#606266;">{{ delegationInfo.clientName }}&nbsp;&nbsp;&nbsp;</span>
+                    <span style="font-weight: bold;font-size:15px;">出访国家:</span>
+                    <span style="color:#606266;">{{ delegationInfo.visitCountry }}&nbsp;&nbsp;&nbsp;</span>
+                    <span style="font-weight: bold;font-size:15px;">起止日期:</span>
+                    <span style="color:#606266;">{{ delegationInfo.visitStartDate }}—{{ delegationInfo.visitEndDate
+                    }}&nbsp;&nbsp;&nbsp;</span>
+                    <span style="font-weight: bold;font-size:15px;">天数/人数:</span>
+                    <span style="color:#606266;">{{ delegationInfo.visitDays }}天/{{ delegationInfo.visitPNumber }}人</span>
+                </div>
+            </div>
+            <div class="costbudgeting">
+                <span>*团组成本预算-机票的预算:</span>
+                <div v-if="budgeting.length>1">
+                    <div class="costbudgeting-li" v-for="(item,index) in budgeting" :key="index">
+                        <span>({{item.costType}}段)</span>
+                        <span>时间:{{item.costTypeStartTime}} ~ {{item.costTypeEndTime}}</span>
+                        <span v-for="(items,index) in item.data.airFeeData" :key="index">&nbsp;&nbsp;&nbsp;{{items.airType}}:{{townum(items.airDRCB)}}元/人&nbsp;&nbsp;&nbsp;{{items.airNum}}人&nbsp;&nbsp;&nbsp;共:{{townum(items.airZCB)}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
+                        <el-popover
+                        placement="right"
+                        width="552"
+                        trigger="hover">
+                        <el-table max-height="800" border :data="item.data.airInitData">
+                            <el-table-column width="150" property="date" label="DATE"></el-table-column>
+                            <!-- <el-table-column width="100" property="name" label="姓名"></el-table-column> -->
+                            <el-table-column width="400" property="itinerary" label="ITIN"></el-table-column>
+                        </el-table>
+                        <span slot="reference" style="cursor: pointer;">"移上查看详细"</span>
+                        </el-popover>
+                        <!-- 客户名单 -->
+                        <el-popover
+                        placement="bottom"
+                        width="662"
+                        trigger="hover">
+                        <el-table max-height="600" border :data="rollcallarr">
+                            <el-table-column width="100" property="date" label="姓名">
+                                <template slot-scope="scope">
+                                    {{ scope.row.lastName}}{{scope.row.firstName}}
+                                </template>
+                            </el-table-column>
+                            <el-table-column width="200" property="lastName" label="拼音">
+                                <template slot-scope="scope">
+                                    {{ pinyingxing(scope.row.lastName) }}/{{  pinyingxing(scope.row.firstName) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column width="50" property="sex" label="性别">
+                                <template slot-scope="scope">
+                                    {{ scope.row.sex==0?'男':'女'}}
+                                </template>
+                            </el-table-column>
+                            <el-table-column width="110" property="birthDay" label="生日">
+                                <template slot-scope="scope">
+                                    {{ fgarr(scope.row.birthDay) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column width="200" property="idCardNo" label="身份证号码">
+                                <template slot-scope="scope">
+                                    {{ scope.row.idCardNo }}
+                                </template>
+                            </el-table-column>
+                        </el-table>
+                        <span slot="reference" style="cursor: pointer;margin-left: 20px;">"移上查看客户名单"</span>
+                        </el-popover>
+                    </div>
+                </div>
+                <div v-if="budgeting.length<=1">
+                    <div class="costbudgeting-li" v-for="(item,index) in budgeting" :key="index">
+                        <span v-for="(items,index) in item.data.airFeeData" :key="index">{{items.airType}}:{{townum(items.airDRCB)}}元/人&nbsp;&nbsp;&nbsp;{{items.airNum}}人&nbsp;&nbsp;&nbsp;共:{{townum(items.airZCB)}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
+                        <el-popover
+                        placement="right"
+                        width="552"
+                        trigger="hover">
+                        <el-table max-height="800" border :data="item.data.airInitData">
+                            <el-table-column width="150" property="date" label="DATE"></el-table-column>
+                            <!-- <el-table-column width="100" property="name" label="姓名"></el-table-column> -->
+                            <el-table-column width="400" property="itinerary" label="ITIN"></el-table-column>
+                        </el-table>
+                        <!-- <el-button slot="reference">click 激活</el-button> -->
+                        <span slot="reference" style="cursor: pointer;">"移上查看详细"</span>
+                        </el-popover>
+                        <!-- 客户名单 -->
+                        <el-popover
+                        placement="bottom"
+                        width="662"
+                        trigger="hover">
+                        <el-table max-height="600" border :data="rollcallarr">
+                            <el-table-column width="100" property="date" label="姓名">
+                                <template slot-scope="scope">
+                                    {{ scope.row.lastName}}{{scope.row.firstName}}
+                                </template>
+                            </el-table-column>
+                            <el-table-column width="200" property="birthDay" label="拼音">
+                                <template slot-scope="scope">
+                                    {{ pinyingxing(scope.row.lastName) }}/{{  pinyingxing(scope.row.firstName) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column width="50" property="sex" label="性别">
+                                <template slot-scope="scope">
+                                    {{ scope.row.sex==0?'男':'女'}}
+                                </template>
+                            </el-table-column>
+                            <el-table-column width="110" property="birthDay" label="生日">
+                                <template slot-scope="scope">
+                                    {{ fgarr(scope.row.birthDay) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column width="200"  label="身份证号码">
+                                <template slot-scope="scope">
+                                    {{ scope.row.idCardNo==""?'-':scope.row.idCardNo }}
+                                </template>
+                            </el-table-column>
+                        </el-table>
+                        <span slot="reference" style="cursor: pointer;margin-left: 20px;">"移上查看客户名单"</span>
+                        </el-popover>
+                    </div>
+                </div>
+                <div style="display: flex;align-items: center;" v-if="budgeting.length==0">
+                    <div class="costbudgeting-li">
+                        未设置团组成本或成本未通知
+                    </div>
+                    <el-popover
+                        placement="bottom"
+                        width="662"
+                        trigger="hover">
+                        <el-table max-height="600" border :data="rollcallarr">
+                            <el-table-column width="100" property="date" label="姓名">
+                                <template slot-scope="scope">
+                                    {{ scope.row.lastName}}{{scope.row.firstName}}
+                                </template>
+                            </el-table-column>
+                            <el-table-column width="200" property="birthDay" label="拼音">
+                                <template slot-scope="scope">
+                                    {{ pinyingxing(scope.row.lastName) }}/{{  pinyingxing(scope.row.firstName) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column width="50" property="sex" label="性别">
+                                <template slot-scope="scope">
+                                    {{ scope.row.sex==0?'男':'女'}}
+                                </template>
+                            </el-table-column>
+                            <el-table-column width="110" property="birthDay" label="生日">
+                                <template slot-scope="scope">
+                                    {{ fgarr(scope.row.birthDay) }}
+                                </template>
+                            </el-table-column>
+                            <el-table-column width="200"  label="身份证号码">
+                                <template slot-scope="scope">
+                                    {{ scope.row.idCardNo==""?'-':scope.row.idCardNo }}
+                                </template>
+                            </el-table-column>
+                        </el-table>
+                        <span slot="reference" style="cursor: pointer;margin-left: 20px;">"移上查看客户名单"</span>
+                    </el-popover>
+                </div>
+            </div>
+            <template>
+                <el-table :data="tableData" border
+                    style="width: 100%" v-loading="loading" element-loading-text="拼命加载中...">
+                    <el-table-column prop="num" label="序 号" width="55">
+                        <template slot-scope="scope">
+                            {{ (currentPage - 1) * pageSize + scope.$index + 1 }}
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="cabinName" label="舱位类型" width="100">
+                    </el-table-column>
+                    <el-table-column prop="flightDesc" label="航班简述" width="600">
+                        <template slot-scope="scope">
+                            <div style="white-space: pre-line;">
+                                {{ scope.row.flightDesc }}
+                            </div>
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="clientNameList" label="客人名单" width="280">
+                    </el-table-column>
+                    <el-table-column prop="clientCount" label="客人人数">
+                    </el-table-column>
+                    <el-table-column prop="prePrice,preCurrencyStr" label="机票单价" width="120" sortable>
+                        <template slot-scope="scope">
+                            {{ townum(scope.row.avgTicketPrice) }}({{ scope.row.currency }})
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="price,currencyStr" label="机票总价" width="120">
+                        <template slot-scope="scope">
+                            {{ townum(scope.row.totalTicketPrice) }}({{ scope.row.currency }})
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="isAuditGM" label="是否审核" width="120">
+                        <template slot-scope="isAuditGM">
+                            <span v-if="isAuditGM.row.auditStatus == 1">已通过</span>
+                            <span v-else-if="isAuditGM.row.auditStatus == 0">未审核</span>
+                            <span v-else-if="isAuditGM.row.auditStatus == 2">未通过</span>
+                            <span v-else>自动审核通过</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="操作" :width="'80px'">
+                        <template slot-scope="scope">
+                            <el-button size="mini" @click="upDate(scope.$index, scope.row)">编辑</el-button>
+                            <div style="height: 8px;"></div>
+                            <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </template>
+            <div v-if="fynone" class="block">
+                <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                    :current-page="pageIndex" :page-sizes="[10, 12, 15, 20]" :page-size="pageSize"
+                    layout="total, sizes, prev, pager, next" :total="tableData.length">
+                </el-pagination>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+import { el } from '@fullcalendar/core/internal-common';
+import { pinyin } from 'pinyin-pro';
+export default {
+    data() {
+        return {
+            loading: false,
+            tableDatas: [],
+            tableData: [],
+            currentPage: 1, // 当前页码
+            pageSize: 12,// 每页的数据条数
+            input: '',
+            token: '',
+            userId: 0,
+            DiId: '',
+            AirTicketResSelectData: [],
+            AirTicketResSelectDatas: [],
+            selectLoading:false,
+            delegationInfo: {},
+            fynone:true,
+            budgeting:[],
+            gridData: [],
+            rollcallarr:[],
+            pageIndex:1,
+            pageSize:10,
+            isPaySign:0,
+            total:0
+        }
+    },
+    methods: {
+        //联想
+        GroupFeeKeywordSearch(query) {
+            if (query !== '') {
+                this.selectLoading=true;
+                var url = "/api/search/GroupFeeKeywordSearch/" +this.userId+'/'+85 +'/'+query
+                var that = this
+                this.$axios({
+                    method: 'get',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                }).then(function (res) {
+                    if (res.data.code == 200) {
+                        that.AirTicketResSelectDatas = res.data.data;
+                    }else{
+                        that.AirTicketResSelectDatas=[];
+                    }
+                }).finally(()=>{
+                    that.selectLoading=false;
+                })
+            }else{
+                this.AirTicketResSelectDatas=this.AirTicketResSelectData;
+                
+            }
+        },
+
+
+        //拼音
+        pinyingxing(val){
+            return pinyin(val, { toneType: 'none' }).toUpperCase();
+        },
+        //fenge
+        fgarr(val){
+            val=val+""
+            return val.split(' ')[0]
+        },
+        btn(){
+            console.log(this.budgeting.length)
+        },
+        //保留两位小数
+        townum(val){
+            if(Number.isFinite(val)){
+                return val.toFixed(2)
+
+            }
+        },
+        //获取成本提示
+        getcostbudgeting(){
+            this.budgeting=[];
+            var url = "/api/Groups/PostGroupCostModulePrompt"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    userId: that.userId,
+                    diId: that.DiId,
+                    cTable:85,
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    console.log(res)
+                    that.budgeting=res.data.data.modulePromptInfos;
+                } else {
+                    // that.$message.error(res.data.msg);
+                }
+            })
+        },
+        handleSizeChange(val) {
+            this.pagesize=val;
+            this.pageIndex=1;
+            this.AirTicketResList();
+        },
+        handleCurrentChange(val) {
+            this.pageIndex=val;
+            this.AirTicketResList();
+        },
+        //团组下拉框
+        AirTicketResSelect() {
+            var url = "/api/Groups/AirTicketResSelect"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    userId: that.userId
+                }
+            }).then(function (res) {
+                console.log(res)
+                if (res.data.code == 200) {
+                    that.AirTicketResSelectData = res.data.data.groupName;
+                    that.AirTicketResSelectDatas = that.AirTicketResSelectData;
+                 
+                    if (that.AirTicketResSelectData.length != 0) {
+                        var diid = that.$route.query.DiId;
+                        if (diid) {
+                            that.DiId = parseInt(diid);
+                        } else {
+                            that.DiId = that.AirTicketResSelectData[0].id;
+                        }
+                        that.AirTicketResList();
+                        that.getcostbudgeting();
+                        that.PostTourClientListByDiId();
+                    }
+
+                }
+            }).catch(function (error) {
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        AirTicketResSelectChange() {
+            this.AirTicketResList();
+            this.getcostbudgeting();
+            this.PostTourClientListByDiId();
+        },
+        //团组信息绑定
+        AirTicketResList() {
+            var url = "/api/Groups/airTicket/list"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    pageIndex:that.pageIndex,
+                    pageSize:that.pageSize,
+                    diId: that.DiId,
+                    userId: that.userId,
+                    isPaySign: that.isPaySign,
+                }
+            }).then(function (res) {
+                console.log(res)
+                if (res.data.code == 200) {
+                    that.tableData = res.data.data.airTicketReservations
+                    if(that.tableData<=0){
+                        that.fynone=false;
+                    }else{
+                        that.fynone=true;
+                    }
+                    that.delegationInfo = res.data.data.delegationInfo
+                }else{
+                    that.fynone=false;
+                }
+
+            }).catch(function (error) {
+                that.fynone=false;
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        upDate(index, row) {
+            this.$router.push({
+                path: "/home/NewAirTicket",
+                query: {
+                    DiId: this.DiId,
+                    id: row.id
+                }
+            })
+
+        },
+        //获取客户名单info
+        PostTourClientListByDiId() {
+            var that = this
+            var url = "/api/Groups/PostTourClientListByDiId"
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType:1,
+                    diid: that.DiId,
+                    pageId:104,
+                    userId:that.userId
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.rollcallarr=res.data.data;
+                } else {
+                    that.$message.error(res.data.msg);
+                }
+            })
+        },
+        addIf() {
+            if (this.DiId != 0 && this.DiId != '' && this.DiId != undefined) {
+                this.$router.push({
+                    path: "/home/NewAirTicket",
+                    query: {
+                        DiId: this.DiId,
+                    }
+                })
+
+            } else {
+                this.$message('请选择团组在进行添加');
+            }
+        },
+        del(index, row) {
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Groups/airTicket/del"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        portType:1,
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
+
+                    if (res.data.code == 200) {
+
+                        that.$message({
+                            message: res.data.msg,
+                            type: 'success'
+                        });
+                        that.AirTicketResList();
+                    } else {
+                        that.$message.error(res.data.msg);
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
+            });
+        },
+        download() {
+            var url = "/api/Groups/DeriveAirTicketRes"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    DiId: that.DiId,
+                    UserId: that.userId
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    window.location.href = res.data.data
+                } else {
+                    that.$message.error(res.data.smg);
+                }
+            })
+        },
+        downloadCN() {
+            var url = "/api/Groups/ItineraryAirTicketRes"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    DiId: that.DiId,
+                    UserId: that.userId,
+                    Language: "CN"
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    window.location.href = res.data.data
+                } else {
+                    that.$message.error("网络错误,请稍后重试");
+                }
+            })
+        },
+        downloadEN() {
+            var url = "/api/Groups/ItineraryAirTicketRes"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    DiId: that.DiId,
+                    UserId: that.userId,
+                    Language: "EN"
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    window.location.href = res.data.data
+                } else {
+                    that.$message.error("网络错误,请稍后重试");
+                }
+            })
+        }
+    },
+    mounted() {
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        this.AirTicketResSelect();
+        //this.AirTicketResList()
+    }
+}
+</script>
+<style>
+.communal-list {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+    min-height: 830px;
+    
+}
+
+.communal-title {
+    display: flex;
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+    margin-top: 8px;
+    margin-bottom: 10px;
+    justify-content: space-between;
+    align-items: center;
+}
+.communal-list .block{
+    margin-top: 20px;
+}
+.communal-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+.costbudgeting{
+    color: red;
+    font-size: 14px;
+}
+.costbudgeting-li{
+    margin: 5px 0;
+    
+}
+</style>

+ 7 - 6
src/components/OP/SuppliesInventory.vue

@@ -1540,8 +1540,8 @@ export default {
                     return false;
                 }
             });
-                    this.GoodsReceiveOP();
-        }, 1000, true),
+                this.GoodsReceiveOP();
+        }, 5000, true),
 
         ClaimresetForm(formName) {
             this.Claimitemlabel="";
@@ -1720,6 +1720,7 @@ export default {
                     });
                     that.ClaimresetForm("ClaimsruleForm");
                     that.GoodsReceiveList({'id':that.ID});
+                    that.ClaimitemVisible=false;
                 }else{
                     that.$message.error(res.data.msg);
                 }
@@ -1902,8 +1903,8 @@ export default {
                 that.$message.error("操作错误,联系信息部!");
             });
         },
-         //获取记录
-         GoodsReceiveBatchList() {
+        //获取记录
+        GoodsReceiveBatchList() {
             this.batchrecordingdata=[];
             var url = "/api/PersonnelModule/GoodsReceiveBatchList"
             var that = this
@@ -1986,7 +1987,7 @@ export default {
             this.GoodsReceiveBatchInfo(val.id)
         },
         //Pilianglingyongbaocun
-        GoodsReceiveBatchOp() {
+        GoodsReceiveBatchOp: debounce(function (formName)  { 
             var url = "/api/PersonnelModule/GoodsReceiveBatchOp"
             var that = this
             this.$axios({
@@ -2019,7 +2020,7 @@ export default {
             }).catch(function (error) {
                 that.$message.error("操作错误,联系信息部!");
             });
-        },
+        }, 5000, true),
         handleSelect(key, keyPath) {
             console.log(key, keyPath);
         },

+ 6 - 0
src/router/index.js

@@ -152,6 +152,7 @@ import MaterialBasicdata from '@/components/OP/MaterialBasicdata'
 import RequestAccess from '@/components/OP/RequestAccess'
 import RequestAccessNot from '@/components/OP/RequestAccessNot'
 import NewAirTicket from '@/components/OP/NewAirTicket'
+import NewAirTicketRes from '@/components/OP/NewAirTicketRes'
 
 
 Vue.use(Router)
@@ -909,6 +910,11 @@ export default new Router({
           name: 'NewAirTicket',
           component: NewAirTicket
         },
+        {
+          path: '/home/NewAirTicketRes',
+          name: 'NewAirTicketRes',
+          component: NewAirTicketRes
+        },
       ]
     },
     {

+ 123 - 25
src/store/flightParser.js

@@ -85,17 +85,19 @@ function parseFormat10(parts) {
   
   // 判断哪个是航站楼(通常T开头)哪个是预订码(数字)
   let terminal, bookingCode
-  if (code1.startsWith('T')) {
-    terminal = code1
-    bookingCode = code2
-  } else if (code2.startsWith('T')) {
-    terminal = code2
-    bookingCode = code1
-  } else {
-    // 默认顺序
-    bookingCode = code1
-    terminal = code2
-  }
+  bookingCode = code1
+  terminal = code2
+  // if (code1.startsWith('T')) {
+  //   terminal = code1
+  //   bookingCode = code2
+  // } else if (code2.startsWith('T')) {
+  //   terminal = code2
+  //   bookingCode = code1
+  // } else {
+  //   // 默认顺序
+  //   bookingCode = code1
+  //   terminal = code2
+  // }
   
   const actionCode = actionDate.slice(0, 2)
   const dateStr = actionDate.slice(2)
@@ -218,7 +220,8 @@ function buildFlightInfo(params) {
       formatted: formatTime(arrHour, arrMinute)
     },
     terminal: terminal,
-    bookingCode: parseInt(bookingCode),
+    // bookingCode: parseInt(bookingCode),
+    bookingCode: bookingCode,
     aircraft: aircraft,
     aircraftName: getAircraftName(aircraft),
     duration: {
@@ -250,14 +253,25 @@ function formatTime(hour, minute) {
 function getAircraftName(code) {
   var aircraftMap = {
     '359': '空客A350-900',
+    '388': '空客A380-800',
+    '320': '空客A320',
     '321': '空客A321',
-    '32A': '空客A320 (鲨鳍小翼)',
+    '332': '空客A330-200',
+    '333': '空客A330-300',
+    '343': '空客A340-300',
+    '346': '空客A340-600',
+    // 波音
+    '73H': '波音737-800',
     '738': '波音737-800',
-    '789': '波音787-9',
     '77W': '波音777-300ER',
-    '333': '空客A330-300',
-    '332': '空客A330-200',
-    '320': '空客A320'
+    '772': '波音777-200',
+    '788': '波音787-8',
+    '789': '波音787-9',
+    '744': '波音747-400',
+    // 支线
+    'CR9': '庞巴迪CRJ-900',
+    'E90': '巴西航空工业E190',
+    'AT7': 'ATR 72',
   }
   return aircraftMap[code] || code
 }
@@ -267,14 +281,98 @@ function getAircraftName(code) {
  */
 function getAirportName(code) {
   var airportMap = {
-    'TFU': '成都天府',
-    'FRA': '法兰克福',
-    'MUC': '慕尼黑',
-    'CPH': '哥本哈根',
-    'PEK': '北京首都',
-    'PVG': '上海浦东',
-    'CAN': '广州白云',
-    'CTU': '成都双流'
+    // 国际/地区
+    "HND": "东京羽田",
+    "NRT": "东京成田",
+    "KIX": "大阪关西",
+    "ICN": "首尔仁川",
+    "BKK": "曼谷素万那普",
+    "SIN": "新加坡樟宜",
+    "JFK": "纽约肯尼迪",
+    "LAX": "洛杉矶",
+    "LHR": "伦敦希思罗",
+    "FRA": "法兰克福",
+    "CDG": "巴黎戴高乐",
+    "SYD": "悉尼",
+    "ANC": "安克雷奇",
+    "BNE": "布里斯班",
+    "BOM": "孟买",
+    "BRU": "布鲁塞尔",
+    "CTS": "札幌",
+    "DEL": "德里",
+    "DPS": "登巴萨",
+    "FKS": "福岛",
+    "FUK": "福冈",
+    "GUM": "关岛",
+    "HIJ": "广岛",
+    "HNL": "夏威夷",
+    "IAD": "华盛顿",
+    "KIJ": "新泻",
+    "KMI": "宫崎",
+    "KMJ": "熊本",
+    "KMQ": "小松",
+    "KOJ": "鹿儿岛",
+    "KUL": "吉隆坡",
+    "MUC": "慕尼黑",
+    "MYJ": "松山",
+    "NGO": "名古屋",
+    "NGS": "长崎",
+    "OIT": "大分",
+    "OKA": "冲绳",
+    "OKJ": "冈山",
+    "ORD": "芝加哥",
+    "PUS": "釜山",
+    "SDJ": "仙台",
+    "SEA": "西雅图",
+    "SEL": "首尔金浦",
+    "SFO": "旧金山",
+    "SVO": "莫斯科",
+    "TOY": "富山",
+    "TPE": "台北桃园",
+    "VIE": "维也纳",
+    "YVR": "温哥华",
+    "HKG": "香港",
+
+    // 中国国内
+    "PEK": "北京首都",
+    "PKX": "北京大兴",
+    "SHA": "上海虹桥",
+    "PVG": "上海浦东",
+    "CAN": "广州白云",
+    "TFU": "成都天府",
+    "CTU": "成都双流",
+    "CKG": "重庆江北",
+    "XIY": "西安咸阳",
+    "KMG": "昆明长水",
+    "HGH": "杭州萧山",
+    "XMN": "厦门高崎",
+    "NKG": "南京禄口",
+    "WUH": "武汉天河",
+    "TSN": "天津滨海",
+    "CSX": "长沙黄花",
+    "TAO": "青岛胶东",
+    "DLC": "大连周水子",
+    "HRB": "哈尔滨太平",
+    "URC": "乌鲁木齐地窝堡",
+    "SZX": "深圳宝安",
+    "CGO": "郑州新郑",
+    "HFE": "合肥新桥",
+    "KWE": "贵阳龙洞堡",
+    "LHW": "兰州中川",
+    "NNG": "南宁吴圩",
+    "SHE": "沈阳桃仙",
+    "TNA": "济南遥墙",
+    "INC": "银川河东",
+    "XNN": "西宁曹家堡",
+    "LXA": "拉萨贡嘎",
+    "HAK": "海口美兰",
+    "SYX": "三亚凤凰",
+    "NGB": "宁波栎社",
+    "FOC": "福州长乐",
+    "JJN": "泉州晋江",
+    "WNZ": "温州龙湾",
+    "WUX": "无锡硕放",
+    "ZUH": "珠海金湾"
   }
   return airportMap[code] || code
 }