Browse Source

新增机票费用录入页面

wangh 2 years ago
parent
commit
6854568e0c

+ 255 - 0
src/components/OP/AirTicketRes.vue

@@ -0,0 +1,255 @@
+<template>
+    <div>
+        <div class="communal-list">
+            <div>
+
+                <div class="communal-title">
+                    <div>机票费用录入</div>
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 90%;">
+                        <el-select v-model="DiId" placeholder="团组选择" @change="AirTicketResSelectChange">
+                            <el-option v-for="item in AirTicketResSelectData" :key="item.id" :label="item.groupName"
+                                :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </div>
+                    <div>
+                        <router-link :to="{ path: '/home/OpAirTicketRes', query: { DiId } }">
+                            <el-button type="primary" style="margin-left: 10px;">新增</el-button>
+                        </router-link>
+                    </div>
+                </div>
+                <span style="font-weight: bold;">团队名称:</span>
+                {{ delegationInfo.teamName }}&nbsp;&nbsp;&nbsp;
+                <span style="font-weight: bold;">客户:</span>
+                {{ delegationInfo.clientName }}&nbsp;&nbsp;&nbsp;
+                <span style="font-weight: bold;">出访国家:</span>
+                {{ delegationInfo.visitCountry }}&nbsp;&nbsp;&nbsp;
+                <span style="font-weight: bold;">起止日期:</span>
+                {{ delegationInfo.visitStartDate }}—{{ delegationInfo.visitEndDate }}&nbsp;&nbsp;&nbsp;
+                <span style="font-weight: bold;">天数/人数:</span>
+                {{ delegationInfo.visitDays }}天/{{ delegationInfo.visitPNumber }}人
+            </div>
+            <hr style='background-color:#5555; height:1px; border:none;' />
+            <template>
+                <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" 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="cTypeName" label="舱位类型" width="100">
+                    </el-table-column>
+                    <el-table-column prop="flightDescription" label="航班行程" width="220">
+                    </el-table-column>
+                    <el-table-column prop="clientName" label="客人名单" width="280">
+                    </el-table-column>
+                    <el-table-column prop="clientNum" label="客人人数" width="50">
+                    </el-table-column>
+                    <el-table-column prop="prePrice,preCurrencyStr" label="机票单价" width="120" sortable>
+                        <template slot-scope="scope">
+                            {{ scope.row.prePrice }}({{ scope.row.preCurrencyStr }})
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="price,currencyStr" label="机票总价" width="120">
+                        <template slot-scope="scope">
+                            {{ scope.row.price }}({{ scope.row.currencyStr }})
+                        </template>
+                    </el-table-column>
+                    <el-table-column prop="isAuditGM" label="是否审核" width="120">
+                        <template slot-scope="isAuditGM">
+                            <span v-if="isAuditGM.row.isAuditGM == 1">已通过</span>
+                            <span v-else-if="isAuditGM.row.isAuditGM == 0">未审核</span>
+                            <span v-else-if="isAuditGM.row.isAuditGM == 2">未通过</span>
+                            <span v-else>自动审核通过</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column label="操作">
+                        <template slot-scope="scope">
+                            <el-button size="mini" @click="upDate(scope.$index, scope.row)">编辑</el-button>
+                            <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </template>
+            <div class="block">
+                <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                    :current-page="currentPage" :page-sizes="[10, 12, 15, 20]" :page-size="pageSize"
+                    layout="total, sizes, prev, pager, next" :total="tableDatas.length">
+                </el-pagination>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            loading: false,
+            tableDatas: [],
+            tableData: [],
+            currentPage: 1, // 当前页码
+            pageSize: 12,// 每页的数据条数
+            input: '',
+            token: '',
+            userId: 0,
+            DiId: '',
+            AirTicketResSelectData: [],
+            delegationInfo: {},
+        }
+    },
+    methods: {
+        //每页条数改变时触发 选择一页显示多少行
+        handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+        },
+        //团组下拉框
+        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) {
+                if (res.data.code == 200) {
+                    that.AirTicketResSelectData = res.data.data.groupName;
+                    debugger
+                    that.DiId = that.AirTicketResSelectData[0].id;
+                    that.AirTicketResList()
+                }
+
+            }).catch(function (error) {
+
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        AirTicketResSelectChange() {
+            this.AirTicketResList();
+        },
+        //团组信息绑定
+        AirTicketResList() {
+            var url = "/api/Groups/AirTicketResList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    diId: that.DiId
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.tableDatas = res.data.data.airTicketReservations;
+                    that.tableData = that.tableDatas
+                    if (that.tableDatas.slice((that.currentPage - 1) * that.pageSize, that.currentPage * that.pageSize).length == 0) {
+                        if (that.currentPage > 1) {
+                            that.currentPage = that.currentPage - 1;
+                        }
+                    }
+                    that.delegationInfo = res.data.data.delegationInfo
+                }
+
+            }).catch(function (error) {
+
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        upDate(index, row) {
+            localStorage.setItem('CarDataEdit', JSON.stringify(row));
+            this.$router.push('/home/carDataEdit')
+        },
+        del(index, row) {
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Resource/DelCarData"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
+
+                    if (res.data.code == 200) {
+
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.carData();
+                    } else {
+                        that.$message.error('删除失败!');
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
+            });
+        }
+    },
+    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;
+}
+
+.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-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+</style>

+ 342 - 0
src/components/OP/OpAirTicketRes.vue

@@ -0,0 +1,342 @@
+<template>
+    <div class="car_add">
+        <div>
+            <div class="communal-title">
+                <div>{{ title }}</div>
+            </div>
+
+        </div>
+        <hr style='background-color:#5555; height:1px; border:none;' />
+        <div style="color:red;display: flex;">
+            <div style="text-align:left;width:20%;">
+                *团组成本预算 - 机票的预算:
+            </div>
+            <div style="margin-left:20px;color:red;" v-if="airGroupCostParameter != null">
+                经济舱: {{ airGroupCostParameter.jjccb }}元/人 {{ airGroupCostParameter.jjcrs }}人
+                共:{{ airGroupCostParameter.jjccb * airGroupCostParameter.jjcrs
+                }}元&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                公务舱: {{ airGroupCostParameter.gwccb }}元/人 {{ airGroupCostParameter.gwcrs }}人
+                共:{{ airGroupCostParameter.gwccb * airGroupCostParameter.gwcrs
+                }}元&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+            </div>
+            <div style="margin-left:20px;color:red;" v-else>
+                团组成本暂未开放此团数据!
+            </div>
+        </div>
+        <div>
+            <el-form :model="delegationInfo" ref="delegationInfo" label-width="100px" class="demo-ruleForm">
+                <div style="display: flex;">
+                    <div style="width: 33%;">
+                        <el-form-item label="团组名称:" label-width="160px">
+                            <el-select v-model="DiIdSelect" placeholder="团组选择" @change="AirTicketResChange"
+                                style="width: 100%;">
+                                <el-option v-for="item in AirTicketResSelectData" :key="item.id" :label="item.groupName"
+                                    :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="团 号:" prop="tourCode" label-width="160px">
+                            <el-input placeholder="团号" v-model="delegationInfo.tourCode" :disabled="true">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="客户:" prop="clientName" label-width="160px">
+                            <el-input placeholder="客户" v-model="delegationInfo.clientName" :disabled="true">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 33%;">
+                        <el-form-item label="出访国家:" prop="visitCountry" label-width="160px">
+                            <el-input placeholder="出访国家" v-model="delegationInfo.visitCountry" :disabled="true">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+                </div>
+            </el-form>
+            <el-form :model="opData" ref="opData" label-width="100px" class="demo-ruleForm">
+                <div style="display: flex;">
+                    <div style="width: 33%;">
+                        <el-form-item label="舱类型:" label-width="160px">
+                            <el-select v-model="DiIdSelect" placeholder="舱类型" style="width: 100%;">
+                                <el-option v-for="item in ticketClass" :key="item.id" :label="item.name" :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="机票单价:" prop="tourCode" label-width="160px">
+                            <el-input placeholder="机票单价" v-model="delegationInfo.tourCode" style="width: 58%;">
+                            </el-input>
+                            <el-select v-model="DiIdSelect" style="width: 35%;">
+                                <el-option v-for="item in currency" :key="item.id" :label="item.name"
+                                    :value="item.id"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="机票总价:" prop="clientName" label-width="160px">
+                            <el-input placeholder="机票总价:" v-model="delegationInfo.tourCode" style="width: 58%;">
+                            </el-input>
+                            <el-select v-model="DiIdSelect" style="width: 35%;">
+                                <el-option v-for="item in currency" :key="item.id" :label="item.name"
+                                    :value="item.id"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+
+
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 33%;">
+                        <el-form-item label="此舱位人数:" prop="visitCountry" label-width="160px">
+                            <el-input placeholder="此舱位人数:" v-model="delegationInfo.visitCountry">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="是否值机: " label-width="160px">
+                            <el-radio-group v-model="delegationInfo.isEu">
+                                <el-radio :label=1>是</el-radio>
+                                <el-radio :label=0>否</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="是否选座:" label-width="160px">
+                            <el-radio-group v-model="delegationInfo.isEu">
+                                <el-radio :label=1>是</el-radio>
+                                <el-radio :label=0>否</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                    </div>
+
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 33%;">
+                        <el-form-item label="是否购买行李:" label-width="160px">
+                            <el-radio-group v-model="delegationInfo.isEu">
+                                <el-radio :label=1>是</el-radio>
+                                <el-radio :label=0>否</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="是否行李直挂:" label-width="160px">
+                            <el-radio-group v-model="delegationInfo.isEu">
+                                <el-radio :label=1>是</el-radio>
+                                <el-radio :label=0>否</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 33%;">
+                        <el-form-item label="是否火车票出票选座:" label-width="160px">
+                            <el-radio-group v-model="delegationInfo.isEu">
+                                <el-radio label=1>是</el-radio>
+                                <el-radio label=0>否</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                    </div>
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 50%;">
+                        <el-form-item label="航班简述:" label-width="160px">
+                            <el-input placeholder="此舱位客人名称:" v-model="delegationInfo.visitCountry">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 50%;">
+                        <el-form-item label="城市:" prop="tourCode" label-width="160px">
+                            <el-input placeholder="此舱位客人名称:" v-model="delegationInfo.visitCountry">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 90%;">
+                        <el-form-item label="此舱位客人名称:" prop="Remark" label-width="160px">
+                            <el-input placeholder="此舱位客人名称:" v-model="delegationInfo.visitCountry">
+                            </el-input>
+                        </el-form-item>
+                    </div>
+                </div>
+                <div>
+                    <span style="color: red; padding-left: 100px;">
+                        请严格遵守此格式!!! 1. EK363 R1 WE08MAR CANDXB HK7 0015 0515 SEAME 2 3 (注意空格以及多条数据换行)
+                    </span>
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 90%;">
+                        <el-form-item label="航班描述:" prop="Remark" label-width="160px">
+                            <el-input type="textarea" :rows="3" placeholder="航班描述"
+                                v-model="delegationInfo.Remark"></el-input>
+                        </el-form-item>
+                    </div>
+                </div>
+                <div style="display: flex;">
+                    <div style="width: 90%;">
+                        <el-form-item label="费用描述:" prop="Remark" label-width="160px">
+                            <el-input type="textarea" :rows="3" placeholder="费用描述"
+                                v-model="delegationInfo.Remark"></el-input>
+                        </el-form-item>
+                    </div>
+                </div>``
+                <div style="display: flex;">
+                    <div style="width: 90%;">
+                        <el-form-item label="备 注:" prop="Remark" label-width="160px">
+                            <el-input type="textarea" :rows="3" placeholder="备注" v-model="delegationInfo.Remark"></el-input>
+                        </el-form-item>
+                    </div>
+                </div>
+            </el-form>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            title: "新增机票费用录入",
+            token: '',
+            userId: 0,
+            DiId: '',
+            DiIdSelect: '',
+            delegationInfo: {},
+            AirTicketResSelectData: [],//团组下拉框
+            ticketClass: [],//舱位下拉框
+            currency: [],//币种下拉框
+            payment: [],//支付方式下拉框
+            cardType: [],//卡类型下拉框
+            airGroupCostParameter: {},//机票成本预算
+            jjccb: 0,
+            jjcrs: 0,
+            jjczj: 0,
+            gwccb: 0,
+            gwcrs: 0,
+            gwczj: 0,
+            opData: {},
+        }
+    },
+    methods: {
+        //团组下拉框
+        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) {
+                if (res.data.code == 200) {
+                    that.AirTicketResSelectData = res.data.data.groupName;
+                    that.ticketClass = res.data.data.ticketClass;//舱位下拉框
+                    that.currency = res.data.data.currency;//币种下拉框
+                    that.payment = res.data.data.payment;//支付方式下拉框
+                    that.cardType = res.data.data.cardType;//卡类型下拉框
+                    that.DiIdSelect = parseInt(that.DiId)
+                    that.AirTicketResList()
+                }
+
+            })
+        },
+        AirTicketResChange() {
+            this.AirTicketResList();
+        },
+        AirTicketResList() {
+            var url = "/api/Groups/AirTicketResList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    diId: that.DiIdSelect
+                }
+            }).then(function (res) {
+
+                if (res.data.code == 200) {
+                    debugger
+                    that.delegationInfo = res.data.data.delegationInfo
+                    that.airGroupCostParameter = res.data.data.airGroupCostParameter
+                }
+            })
+        },
+    },
+
+    mounted() {
+
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        this.AirTicketResSelect();
+        this.DiId = this.$route.query.DiId
+
+    }
+}
+</script>
+<style>
+.communal-list {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.car_add .communal-title {
+    display: flex;
+    font-size: 17px;
+    font-weight: 600;
+    color: #555;
+    margin-bottom: 20px;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.appraise-box {
+    display: flex;
+    flex-wrap: wrap;
+    justify-content: space-between;
+    margin: 50px 0;
+}
+
+.appraise-box>div {
+    width: 30%;
+}
+
+.communal-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+
+.car_add {
+    background-color: #fff;
+    padding: 20px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+@media screen and (max-width: 1700px) {
+    .appraise-box>div {
+        width: 48%;
+    }
+
+    .appraise-box>div el-form-item__content {
+        width: 260px !important;
+    }
+}
+</style>

+ 296 - 0
src/components/Resource/AirTicketAgent.vue

@@ -0,0 +1,296 @@
+<template>
+    <div>
+        <div class="communal-list">
+            <div class="communal-title">
+                <div>代理出票合作方资料</div>
+                <div class="communal-box">
+                    <el-input @input="Inquireclick()" placeholder="代理方名称" v-model="input" clearable style="width: 350px;">
+                    </el-input>
+                    <el-button type="primary" @click="addData" style="margin-left: 10px;">新增</el-button>
+                </div>
+            </div>
+            <template>
+                <el-table :data="tableDatas.slice((currentPage - 1) * pageSize, currentPage * pageSize)" 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="name" label="名称">
+                    </el-table-column>
+                    <el-table-column prop="bank" label="开户行">
+                    </el-table-column>
+                    <el-table-column prop="account" label="账户">
+                    </el-table-column>
+                    <el-table-column label="操作">
+                        <template slot-scope="scope">
+                            <el-button size="mini" @click="upDate(scope.$index, scope.row)">编辑</el-button>
+                            <el-button size="mini" type="danger" @click="del(scope.$index, scope.row)">删除</el-button>
+                        </template>
+                    </el-table-column>
+                </el-table>
+            </template>
+            <div class="block">
+                <el-pagination align='center' @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                    :current-page="currentPage" :page-sizes="[10, 12, 15, 20]" :page-size="pageSize"
+                    layout="total, sizes, prev, pager, next" :total="tableDatas.length">
+                </el-pagination>
+            </div>
+        </div>
+        <el-dialog :title="title" :visible.sync="OpVisible" width="30%" :before-close="handleClose"
+            :close-on-click-modal="false">
+            <div>
+                <el-form :model="OpData" :rules="rules" ref="OpData" label-width="100px" class="demo-ruleForm">
+                    <el-form-item label="名称" prop="name">
+                        <el-input placeholder="请输入名称" v-model="OpData.name">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="开户行" prop="bank">
+                        <el-input placeholder="请输入开户行" v-model="OpData.bank">
+                        </el-input>
+                    </el-form-item>
+                    <el-form-item label="账户" prop="account">
+                        <el-input placeholder="请输入账户" v-model="OpData.account">
+                        </el-input>
+                    </el-form-item>
+
+                    <el-form-item label="备 注" prop="remark">
+                        <el-input type="textarea" :rows="3" placeholder="请输入备注" v-model="OpData.remark"></el-input>
+                    </el-form-item>
+                </el-form>
+            </div>
+            <span slot="footer" class="dialog-footer">
+                <el-button @click="OpVisible = false">取 消</el-button>
+                <el-button type="primary" @click="OpDateBtn">确 定</el-button>
+            </span>
+        </el-dialog>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            loading: false,
+            tableDatas: [],
+            tableData: [],
+            currentPage: 1, // 当前页码
+            pageSize: 12,// 每页的数据条数
+            input: '',
+            token: '',
+            userId: 0,
+            OpVisible: false,
+            title: '添加代理出票合作方',
+            OpData: {
+                status: 0,
+                id: 0,
+                name: "",
+                account: "",
+                bank: "",
+                createUserId: 0,
+                remark: ""
+            },
+
+            rules: {
+                name: [
+                    { required: true, message: '请输入合作方名称', trigger: 'blur' },
+                ],
+                account: [
+                    { required: true, message: '请输入合作方开户账户', trigger: 'blur' },
+                ],
+                bank: [
+                    { required: true, message: '请输入合作方开户银行', trigger: 'blur' },
+                ],
+            },
+        }
+    },
+    methods: {
+        //每页条数改变时触发 选择一页显示多少行
+        handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+        },
+        QueryAirTicketAgent() {
+            this.loading = true
+            var url = "/api/Resource/QueryAirTicketAgent"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    portType: 1,
+                    PageIndex: that.currentPage,
+                    PageSize: that.PageSize
+                }
+            }).then(function (res) {
+                console.log(res)
+
+                if (res.data.code == 200) {
+
+                    that.tableData = res.data.data.pageSource;
+                    that.pageSize = res.data.data.pageSize;
+                    that.PageIndex = res.data.data.pageIndex
+                    that.tableDatas = that.tableData;
+
+                    if (that.tableDatas.slice((that.currentPage - 1) * that.pageSize, that.currentPage * that.pageSize).length == 0) {
+                        if (that.currentPage > 1) {
+                            that.currentPage = that.currentPage - 1;
+                        }
+                    }
+                }
+                that.loading = false
+            }).catch(function (error) {
+                that.loading = false
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        //搜索框处理
+        Inquireclick() {
+            var newarr = [];
+            if (this.input == "") {
+                newarr = this.tableData;
+            } else {
+                for (var i = 0; i < this.tableData.length; i++) {
+                    if (this.tableData[i].name.indexOf(this.input) != -1) {
+                        newarr.push(this.tableData[i]);
+                    }
+                }
+            }
+            this.tableDatas = newarr;
+            this.currentPage = 1;
+        },
+
+        upDate(index, row) {
+            this.OpVisible = true;
+            this.title = '修改代理出票合作方资料'
+            this.OpData.status = 2
+            this.OpData.id = row.id
+            this.OpData.name = row.name
+            this.OpData.account = row.account
+            this.OpData.bank = row.bank
+            this.OpData.createUserId = this.userId
+            this.OpData.remark = row.remark
+        },
+        addData() {
+            this.title = '添加代理出票合作方资料'
+            this.OpVisible = true;
+            this.OpData.status = 1
+            this.OpData.id = 0
+            this.OpData.createUserId = this.userId
+        },
+        OpDateBtn() {
+            this.$refs.OpData.validate((valid) => {
+                if (valid) {
+                    var that = this;
+                    var url = "/api/Resource/OpAirTicketAgent"
+                    that.$axios({
+                        method: 'post',
+                        url: url,
+                        headers: {
+                            Authorization: 'Bearer ' + that.token
+                        },
+                        data: that.OpData
+                    }).then(function (res) {
+                        console.log(res)
+
+                        if (res.data.code == 200) {
+                            that.$message({
+                                message: res.data.msg,
+                                type: 'success'
+                            });
+                            that.OpVisible = false;
+                            that.QueryAirTicketAgent();
+                        } else {
+                            that.$message.error(res.data.msg,);
+                        }
+                    })
+                }
+            })
+        },
+
+        del(index, row) {
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Resource/DelAirTicketAgent"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: this.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
+
+                    if (res.data.code == 200) {
+
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.QueryAirTicketAgent();
+                    } else {
+                        that.$message.error('删除失败!');
+                    }
+                    that.loading = false
+                }).catch(function (error) {
+                    that.loading = false
+                    that.$message.error("网络错误,请稍后重试");
+                });
+            }).catch(() => {
+                this.$message({
+                    type: 'info',
+                    message: '操作已取消!'
+                });
+            });
+        }
+    },
+    mounted() {
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+        this.QueryAirTicketAgent();
+    }
+}
+</script>
+<style>
+.communal-list {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.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-box {
+    display: flex;
+}
+
+.communal-box>button {
+    margin-left: 10px;
+    padding: 8px 20px;
+}
+</style>

+ 1 - 1
src/components/system/User.vue

@@ -32,7 +32,7 @@
                     </el-table-column>
                     <el-table-column prop="phone" label="手机号" width="180">
                     </el-table-column>
-                    <el-table-column label="认识审核" prop="hrAudit">
+                    <el-table-column label="人事审核" prop="hrAudit">
                         <template slot-scope="hrAudit">
                             <span>{{ hrAudit.row.hrAudit == 1 ? "审核通过" : "未通过/未审核" }}</span>
                         </template>

+ 18 - 0
src/router/index.js

@@ -48,6 +48,9 @@ import OCRIdentify from '@/components/OP/OCRIdentify';
 import GroupsTaskAssignment from '@/components/OP/GroupsTaskAssignment';
 import DailyFeePayment from '@/components/Finance/DailyFeePayment';
 import DailyFeeedit from '@/components/Finance/DailyFeeedit';
+import AirTicketAgent from '@/components/Resource/AirTicketAgent';
+import AirTicketRes from '@/components/OP/AirTicketRes';
+import OpAirTicketRes from '@/components/OP/OpAirTicketRes';
 
 Vue.use(Router)
 
@@ -276,6 +279,21 @@ export default new Router({
           name: 'DailyFeeedit',
           component: DailyFeeedit
         },
+        {
+          path: '/home/AirTicketAgent',
+          name: 'AirTicketAgent',
+          component: AirTicketAgent
+        },
+        {
+          path: '/home/AirTicketRes',
+          name: 'AirTicketRes',
+          component: AirTicketRes
+        },
+        {
+          path: '/home/OpAirTicketRes',
+          name: 'OpAirTicketRes',
+          component: OpAirTicketRes
+        },
       ]
     },
     {