Bläddra i källkod

新增黑屏代码查询

wangh 1 år sedan
förälder
incheckning
3cf9160ce7

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

@@ -454,12 +454,6 @@ export default {
             clientNameId: [],//客人姓名
             clientNameList: [],
             airGroupCostParameter: {},//机票成本预算
-            jjccb: 0,
-            jjcrs: 0,
-            jjczj: 0,
-            gwccb: 0,
-            gwcrs: 0,
-            gwczj: 0,
             status: 0,
             airTicketResOpData: {
                 id: 0,
@@ -534,7 +528,6 @@ export default {
                 }
             }).then(function (res) {
                 if (res.data.code == 200) {
-
                     that.AirTicketResSelectData = res.data.data.groupName;
                     that.ticketClass = res.data.data.ticketClass;//舱位下拉框
                     that.payment = res.data.data.payment;//支付方式下拉框
@@ -542,7 +535,6 @@ export default {
                     that.airTicketAgents = res.data.data.airTicketAgents//合作方资料下拉框
                     that.DiIdSelect = parseInt(that.DiId)
                     that.QueryTankType();
-
                 }
 
             })

+ 245 - 0
src/components/Resource/OpTicketBlackCode.vue

@@ -0,0 +1,245 @@
+<template>
+    <div class="car_add">
+        <div>
+            <div class="communal-title">
+                <div>{{ title }}</div>
+            </div>
+        </div>
+        <div style="display: flex;">
+            <div style="text-align:left;font-size: 17px;font-weight: 600;color: #555;">
+                团组成本预算 - 机票的预算:
+            </div>
+            <div style="margin-left:20px;color: #555;" 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;" v-else>
+                团组成本暂未开放此团数据!
+            </div>
+        </div>
+        <hr style='background-color:#5555; height:1px; border:none;' />
+        <div>
+            <el-form :model="delegationInfo" label-width="100px" class="demo-ruleForm">
+                <div style="display: flex;">
+                    <div style="width: 25%;">
+                        <el-form-item label="团组名称:" label-width="160px">
+                            <el-select v-model="DiId" clearable filterable placeholder="团组选择" @change="AirTicketResChange"
+                                :disabled="isShow" style="width: 100%;">
+                                <el-option v-for="item in DelegationSelect" :key="item.id" :label="item.groupName"
+                                    :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+                    <div style="width: 25%;">
+                        <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: 25%;">
+                        <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: 25%;">
+                        <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="OpTicketBlackCodeData" :rules="OpTicketBlackCodeRules" ref="OpTicketBlackCodeData"
+                label-width="100px" class="demo-ruleForm">
+                <div style="display: flex;">
+                    <div style="width: 25%;">
+                        <el-form-item label="团组名称:" label-width="160px">
+
+                        </el-form-item>
+                    </div>
+                </div>
+            </el-form>
+
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            title: "新增机票行程代码录入",
+            token: '',
+            userId: 0,
+            id: '',
+            DiId: '',
+            isShow: false,
+            delegationInfo: {},
+            DelegationSelect: [],//团组下拉框
+            airGroupCostParameter: {},//机票成本预算
+            OpTicketBlackCodeData: {
+                status: 0,
+                id: 0,
+                diId: 0,
+                blackCode: '',
+                price: '',
+                nowPrice: '',
+                bcPrice: 0,
+                ecPrice: 0,
+                createUserId: 0,
+            },
+            OpTicketBlackCodeRules: [
+
+            ]
+        }
+    },
+    methods: {
+        //团组下拉框
+        DelegationSelectFun() {
+            var url = "/api/Groups/GetGroupNameList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    "portType": 1,
+                    "pageIndex": 0,
+                    "pageSize": 0
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.DelegationSelect = res.data.data;
+                    that.QueryTicketBlackCodeById()
+                }
+
+            }).catch(function (error) {
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        QueryTicketBlackCodeById() {
+            var url = "/api/Resource/QueryTicketBlackCodeById"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    Id: that.Id,
+                    DiId: this.DiId
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    that.delegationInfo = res.data.data.delegationInfo
+                    that.airGroupCostParameter = res.data.data.groupCostParameter
+                    if (res.data.data.ticketBlackCode != null) {
+                        var TicketBlackCode = res.data.data.ticketBlackCode
+                        that.OpTicketBlackCodeData.blackCode = TicketBlackCode.blackCode
+                        that.OpTicketBlackCodeData.price = TicketBlackCode.price
+                        that.OpTicketBlackCodeData.nowPrice = TicketBlackCode.nowPrice
+                        that.OpTicketBlackCodeData.bcPrice = TicketBlackCode.bcPrice
+                        that.OpTicketBlackCodeData.ecPrice = TicketBlackCode.ecPrice
+                    }
+                }
+
+            }).catch(function (error) {
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        //团组下拉框选择事件
+        AirTicketResChange() {
+
+        },
+        //点击保存事件
+        addBtn() {
+
+        }
+    },
+
+    mounted() {
+
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId
+
+        this.id = this.$route.query.id
+        this.DiId = parseInt(this.$route.query.DiId)
+        this.DelegationSelectFun()
+        var that = this
+        if (that.DiId != undefined && that.id != undefined) {
+            that.status = 2;
+            //that.isShow = true
+        } else {
+            that.isShow = false
+            //that.status = 1;
+        }
+        this.QueryTicketBlackCodeById();
+    }
+}
+</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>

+ 260 - 0
src/components/Resource/TicketBlackCode.vue

@@ -0,0 +1,260 @@
+<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 v-model="DiId" placeholder="团组选择" clearable filterable
+                            @change="AirTicketResSelectChange">
+                            <el-option v-for="item in DelegationSelect" :key="item.id" :label="item.groupName"
+                                :value="item.id">
+                            </el-option>
+                        </el-select>
+                    </div>
+                    <div style="width: 20%;">
+                        <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:17px;">团队名称:</span>
+                    <span style="color:#606266;">{{ DelegationInfo.teamName }}&nbsp;&nbsp;&nbsp;</span>
+                    <span style="font-weight: bold;font-size:17px;">客户:</span>
+                    <span style="color:#606266;">{{ DelegationInfo.clientName }}&nbsp;&nbsp;&nbsp;</span>
+                    <span style="font-weight: bold;font-size:17px;">出访国家:</span>
+                    <span style="color:#606266;">{{ DelegationInfo.visitCountry }}&nbsp;&nbsp;&nbsp;</span>
+                    <span style="font-weight: bold;font-size:17px;">起止日期:</span>
+                    <span style="color:#606266;">{{ DelegationInfo.visitStartDate }}—{{ DelegationInfo.visitEndDate
+                    }}&nbsp;&nbsp;&nbsp;</span>
+                    <span style="font-weight: bold;font-size:17px;">天数/人数:</span>
+                    <span style="color:#606266;">{{ DelegationInfo.visitDays }}天/{{ DelegationInfo.visitPNumber }}人</span>
+                </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="blackCode" label="黑屏代码">
+                    </el-table-column>
+                    <el-table-column prop="price" label="全价费用">
+                    </el-table-column>
+                    <el-table-column prop="nowPrice" label="现价费用">
+                    </el-table-column>
+                    <el-table-column prop="createName" 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>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            loading: false,
+            tableDatas: [],
+            tableData: [],
+            currentPage: 1, // 当前页码
+            pageSize: 12,// 每页的数据条数
+            token: '',
+            userId: 0,
+            DiId: '',
+            DelegationSelect: [],
+            DelegationInfo: {}
+        }
+    },
+    methods: {
+        //每页条数改变时触发 选择一页显示多少行
+        handleSizeChange(val) {
+            this.currentPage = 1;
+            this.pageSize = val;
+        },
+        //当前页改变时触发 跳转其他页
+        handleCurrentChange(val) {
+            this.currentPage = val;
+        },
+        //下拉框数据绑定
+        DelegationSelectFun() {
+            var url = "/api/Groups/GetGroupNameList"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    "portType": 1,
+                    "pageIndex": 0,
+                    "pageSize": 0
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    debugger
+                    that.DelegationSelect = res.data.data;
+                    that.DiId = that.DelegationSelect[0].id
+                    that.QueryTicketBlackCodeByDiId();
+                }
+
+            }).catch(function (error) {
+                that.$message.error("网络错误,请稍后重试");
+            });
+        },
+        //团组下拉框值改变事件
+        AirTicketResSelectChange() {
+            this.QueryTicketBlackCodeByDiId();
+        },
+        QueryTicketBlackCodeByDiId() {
+            var url = "/api/Resource/QueryTicketBlackCodeByDiId"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + this.token
+                },
+                data: {
+                    diId: that.DiId
+                }
+            }).then(function (res) {
+                console.log(res)
+
+                if (res.data.code == 200) {
+                    debugger
+                    that.tableData = res.data.data.ticketBlackCodes;
+                    that.DelegationInfo = res.data.data.delegationInfo
+                    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("网络错误,请稍后重试");
+            });
+        },
+        upDate(index, row) {
+
+            this.$router.push({
+                path: "/home/OpTicketBlackCode",
+                query: {
+                    DiId: this.DiId,
+                    id: row.id
+                }
+            })
+        },
+        addIf() {
+            debugger
+            if (this.DiId != 0 && this.DiId != '' && this.DiId != undefined) {
+                this.$router.push({
+                    path: "/home/OpTicketBlackCode",
+                    query: {
+                        DiId: this.DiId,
+                    }
+                })
+
+            } else {
+                this.$message('请选择团组在进行添加');
+            }
+        },
+        del(index, row) {
+            this.$confirm('此操作将删除该数据, 是否继续?', '提示', {
+                confirmButtonText: '确定',
+                cancelButtonText: '取消',
+                type: 'warning'
+            }).then(() => {
+                var url = "/api/Resource/DelAirTicketRes"
+                var that = this
+                this.$axios({
+                    method: 'post',
+                    url: url,
+                    headers: {
+                        Authorization: 'Bearer ' + this.token
+                    },
+                    data: {
+                        Id: row.id,
+                        DeleteUserId: that.userId
+                    }
+                }).then(function (res) {
+                    console.log(res)
+
+                    if (res.data.code == 200) {
+                        that.$message({
+                            message: '删除成功',
+                            type: 'success'
+                        });
+                        that.AirTicketResList();
+                    } 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.DelegationSelectFun()
+    }
+}
+</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>

+ 13 - 1
src/router/index.js

@@ -71,6 +71,8 @@ import OpAskData from '@/components/Resource/OpAskData'
 import DelegationEnData from '@/components/OP/DelegationEnData'
 import OpDelegationEnData from '@/components/OP/OpDelegationEnData'
 import invitationLetter from '@/components/Resource/invitationLetter'
+import TicketBlackCode from '@/components/Resource/TicketBlackCode'
+import OpTicketBlackCode from '@/components/Resource/OpTicketBlackCode'
 Vue.use(Router)
 
 export default new Router({
@@ -412,7 +414,17 @@ export default new Router({
           path: '/home/invitationLetter',
           name: 'invitationLetter',
           component: invitationLetter
-        }
+        },
+        {
+          path: '/home/TicketBlackCode',
+          name: 'TicketBlackCode',
+          component: TicketBlackCode
+        },
+        {
+          path: '/home/OpTicketBlackCode',
+          name: 'OpTicketBlackCode',
+          component: OpTicketBlackCode
+        },
       ]
     },
     {