Browse Source

机票费用报表导出

wangh 1 year ago
parent
commit
b9d2471f7a
2 changed files with 182 additions and 193 deletions
  1. 157 190
      src/components/Finance/FeesPage.vue
  2. 25 3
      src/components/OP/AirTicketRes.vue

+ 157 - 190
src/components/Finance/FeesPage.vue

@@ -4,7 +4,8 @@
             <el-form :inline="true" :model="formInline" class="demo-form-inline">
                 <el-form-item>
                     <el-select v-model="formInline.Status" @change="shStatus()" placeholder="审核状态">
-                        <el-option v-for="(item,index) in AuditStatus" :key="index" :label="item.title" :value="item.id"></el-option>
+                        <el-option v-for="(item, index) in AuditStatus" :key="index" :label="item.title"
+                            :value="item.id"></el-option>
                     </el-select>
                 </el-form-item>
                 <el-form-item label="团队名称:">
@@ -23,7 +24,7 @@
                     {{ formInline.Days }}天 / {{ formInline.Number }}人
                 </el-form-item>
             </el-form>
-            <el-form v-if="formInline.Status==0" :inline="true" :model="formInline" class="demo-form-inline">
+            <el-form v-if="formInline.Status == 0" :inline="true" :model="formInline" class="demo-form-inline">
                 <el-form-item>
                     <el-button type="primary" @click="PostAuditGrpCreditCardPayment(1)">通 过(多选)</el-button>
                 </el-form-item>
@@ -39,7 +40,7 @@
                 </el-form-item>
                 <el-form-item v-show="causetrue">
                     <el-input v-model="formInline.cause"></el-input>
-                  </el-form-item>
+                </el-form-item>
             </el-form>
         </div>
         <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
@@ -52,83 +53,40 @@
             <el-tab-pane label="团组增减款项" name="98"></el-tab-pane>
         </el-tabs>
         <div>
-            <el-table
-            ref="multipleTable"
-            border
-            :data="tableData"
-            tooltip-effect="dark"
-            style="width: 100%"
-            @selection-change="handleSelectionChange">
-                <el-table-column
-                type="selection"
-                width="40"
-                v-if="formInline.Status==0">
+            <el-table ref="multipleTable" border :data="tableData" tooltip-effect="dark" style="width: 100%"
+                @selection-change="handleSelectionChange">
+                <el-table-column type="selection" width="40" v-if="formInline.Status == 0">
                 </el-table-column>
-                <el-table-column
-                prop="priceNameContent"
-                label="费用所属"
-                width="200">
+                <el-table-column prop="priceNameContent" label="费用所属" width="200">
                     <template slot-scope="scope">
-                        <el-popover style="white-space: pre-wrap;" placement="top-start" width="100" trigger="click" :content="scope.row.priceMsgContent">
-                            <span slot="reference">{{ scope.row.priceNameContent}}</span>
+                        <el-popover style="white-space: pre-wrap;" placement="top-start" width="100" trigger="click"
+                            :content="scope.row.priceMsgContent">
+                            <span slot="reference">{{ scope.row.priceNameContent }}</span>
                         </el-popover>
                     </template>
                 </el-table-column>
-                <el-table-column
-                prop="priceName"
-                label="费用模块"
-                width="120">
+                <el-table-column prop="priceName" label="费用模块" width="120">
                 </el-table-column>
-                <el-table-column
-                prop="busName"
-                label="Bus名称"
-                show-overflow-tooltip>
+                <el-table-column prop="busName" label="Bus名称" show-overflow-tooltip>
                 </el-table-column>
-                <el-table-column
-                prop="waitPay"
-                label="应付款金额"
-                show-overflow-tooltip>
+                <el-table-column prop="waitPay" label="应付款金额" show-overflow-tooltip>
                 </el-table-column>
-                <el-table-column
-                prop="currPay"
-                label="此次付款金额"
-                show-overflow-tooltip>
+                <el-table-column prop="currPay" label="此次付款金额" show-overflow-tooltip>
                 </el-table-column>
-                <el-table-column
-                prop="balance"
-                label="剩余尾款"
-                show-overflow-tooltip>
+                <el-table-column prop="balance" label="剩余尾款" show-overflow-tooltip>
                 </el-table-column>
-                <el-table-column
-                prop="operatorName"
-                label="申请人"
-                width="100"
-                show-overflow-tooltip>
+                <el-table-column prop="operatorName" label="申请人" width="100" show-overflow-tooltip>
                 </el-table-column>
-                <el-table-column
-                prop="auditOperatorName"
-                label="审核人"
-                width="100"
-                show-overflow-tooltip>
+                <el-table-column prop="auditOperatorName" label="审核人" width="100" show-overflow-tooltip>
                 </el-table-column>
-                <el-table-column
-                prop="overBudget"
-                label="超预算比例"
-                show-overflow-tooltip>
+                <el-table-column prop="overBudget" label="超预算比例" show-overflow-tooltip>
                 </el-table-column>
-                <el-table-column
-                label="审核操作"
-                >
+                <el-table-column label="审核操作">
                     <template slot-scope="scope">
-                        <el-button
-                        size="mini"
-                        v-if='scope.row.isAuditGM==0||scope.row.isAuditGM==2'
-                        @click="handleEdit(scope.$index, scope.row)">通 过</el-button>
-                        <el-button
-                        size="mini"
-                        type="danger"
-                        v-if='scope.row.isAuditGM==0||scope.row.isAuditGM==1'
-                        @click="handleDelete(scope.$index, scope.row)">不通过</el-button>
+                        <el-button size="mini" v-if='scope.row.isAuditGM == 0 || scope.row.isAuditGM == 2'
+                            @click="handleEdit(scope.$index, scope.row)">通 过</el-button>
+                        <el-button size="mini" type="danger" v-if='scope.row.isAuditGM == 0 || scope.row.isAuditGM == 1'
+                            @click="handleDelete(scope.$index, scope.row)">不通过</el-button>
                     </template>
                 </el-table-column>
             </el-table>
@@ -149,161 +107,161 @@ export default {
     data() {
         return {
             activeName: '-1',
-            diid:'',
-            token:'',
-            causetrue:false,
+            diid: '',
+            token: '',
+            causetrue: false,
             formInline: {
                 Status: -1,
                 name: '甘孜州州长团赴瑞士、希腊、奥地利10日团',
-                clientName:'兰卡彬真',
+                clientName: '兰卡彬真',
                 // clientPhone:'15884061115',
-                CountriesVisited:'瑞士 希腊 奥地利',
-                StartTime:' 2023-08-20',
+                CountriesVisited: '瑞士 希腊 奥地利',
+                StartTime: ' 2023-08-20',
                 // EndTime:'2023-08-29',
-                Number:5,
-                Days:10,
-                resource:'',
-                cause:"",
+                Number: 5,
+                Days: 10,
+                resource: '',
+                cause: "",
             },
-            AuditStatus:[
+            AuditStatus: [
                 {
-                    id:-1,
-                    title:'全部'
+                    id: -1,
+                    title: '全部'
                 },
                 {
-                    id:0,
-                    title:'未审核'
+                    id: 0,
+                    title: '未审核'
                 },
                 {
-                    id:1,
-                    title:'审核通过'
+                    id: 1,
+                    title: '审核通过'
                 },
                 {
-                    id:2,
-                    title:'审核不通过'
+                    id: 2,
+                    title: '审核不通过'
                 },
             ],
             tableData: [],
             multipleSelection: [],
-            auditarr:'',
-            userid:'',
-            payable:'',
+            auditarr: '',
+            userid: '',
+            payable: '',
         }
     },
     methods: {
         //控制其他原因
         onSubmit() {
             console.log(this.formInline.resource);
-            if(this.formInline.resource=='3、其他'){
-                this.causetrue=true;
-            }else{
-                this.causetrue=false;
+            if (this.formInline.resource == '3、其他') {
+                this.causetrue = true;
+            } else {
+                this.causetrue = false;
             }
         },
         //获取详情
-        getPostSearchGrpCreditCardPayment(){
-            var url="/api/Groups/PostSearchGrpCreditCardPayment"
-            var that=this
+        getPostSearchGrpCreditCardPayment() {
+            var url = "/api/Groups/PostSearchGrpCreditCardPayment"
+            var that = this
             this.$axios({
                 method: 'post',
-                url:url,
-                headers:{
-                    Authorization:'Bearer '+that.token
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
                 },
-                data:{
+                data: {
                     diId: 2270,
-                    label:that.activeName,
-                    auditStatus:that.formInline.Status
+                    label: that.activeName,
+                    auditStatus: that.formInline.Status
                 }
-            }).then(function(res){
+            }).then(function (res) {
                 console.log(res);
-                if(res.data.code==200){
-                    that.formInline.name=res.data.data.teamName;
-                    that.formInline.clientName=res.data.data.clientName;
-                    that.formInline.CountriesVisited=res.data.data.visitCountry;
-                    that.formInline.StartTime=res.data.data.visitDate;
-                    that.formInline.Days=res.data.data.visitDays;
-                    that.formInline.Number=res.data.data.visitPNumber;
-                    that.tableData=res.data.data.detailList;
-                    document.querySelector('.payable').innerHTML=res.data.data.totalStr1;
-                    document.querySelector('.payment').innerHTML=res.data.data.totalStr2;
-                    document.querySelector('.remainder').innerHTML=res.data.data.totalStr3;
-                    document.querySelector('.reviewed').innerHTML=res.data.data.totalStr4;
+                if (res.data.code == 200) {
+                    that.formInline.name = res.data.data.teamName;
+                    that.formInline.clientName = res.data.data.clientName;
+                    that.formInline.CountriesVisited = res.data.data.visitCountry;
+                    that.formInline.StartTime = res.data.data.visitDate;
+                    that.formInline.Days = res.data.data.visitDays;
+                    that.formInline.Number = res.data.data.visitPNumber;
+                    that.tableData = res.data.data.detailList;
+                    document.querySelector('.payable').innerHTML = res.data.data.totalStr1;
+                    document.querySelector('.payment').innerHTML = res.data.data.totalStr2;
+                    document.querySelector('.remainder').innerHTML = res.data.data.totalStr3;
+                    document.querySelector('.reviewed').innerHTML = res.data.data.totalStr4;
                 }
             })
         },
         handleSelectionChange(val) {
-            this.auditarr="";
+            this.auditarr = "";
             this.multipleSelection = val;
-            for(var i=0;i<this.multipleSelection.length;i++){
-                this.auditarr+=this.multipleSelection[i].id+','
+            for (var i = 0; i < this.multipleSelection.length; i++) {
+                this.auditarr += this.multipleSelection[i].id + ','
             }
             console.log(this.auditarr.substring(0, this.auditarr.length - 1))
-            this.auditarr=this.auditarr.substring(0, this.auditarr.length - 1)
+            this.auditarr = this.auditarr.substring(0, this.auditarr.length - 1)
         },
         handleClick(tab, event) {
-            this.activeName=tab.name;
+            this.activeName = tab.name;
             this.getPostSearchGrpCreditCardPayment();
         },
-        shStatus(){
+        shStatus() {
             this.getPostSearchGrpCreditCardPayment();
         },
         handleEdit(index, row) {
-            this.noPostAuditGrpCreditCardPayment(row.id,1)
+            this.noPostAuditGrpCreditCardPayment(row.id, 1)
         },
         handleDelete(index, row) {
-            this.noPostAuditGrpCreditCardPayment(row.id,2)
+            this.noPostAuditGrpCreditCardPayment(row.id, 2)
         },
         //多选审批
-        PostAuditGrpCreditCardPayment(val){
-            var url="/api/Groups/PostAuditGrpCreditCardPayment"
-            var that=this
+        PostAuditGrpCreditCardPayment(val) {
+            var url = "/api/Groups/PostAuditGrpCreditCardPayment"
+            var that = this
             this.$axios({
                 method: 'post',
-                url:url,
-                headers:{
-                    Authorization:'Bearer '+that.token
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
                 },
-                data:{
+                data: {
                     CreditIdStr: that.auditarr,
-                    auditCode:val,//1审核通过,2审核未通过
-                    user:that.userid//userid
+                    auditCode: val,//1审核通过,2审核未通过
+                    user: that.userid//userid
                 }
-            }).then(function(res){
+            }).then(function (res) {
                 console.log(res);
-                if(res.data.code==200){
+                if (res.data.code == 200) {
                     that.$message({
-                        message:res.data.msg ,
+                        message: res.data.msg,
                         type: 'warning',
-                        offset:50
+                        offset: 50
                     });
                     that.getPostSearchGrpCreditCardPayment();
                 }
             })
         },
         //单独审批
-        noPostAuditGrpCreditCardPayment(val,num){
-            console.log(val,num)
-            var url="/api/Groups/PostAuditGrpCreditCardPayment"
-            var that=this
+        noPostAuditGrpCreditCardPayment(val, num) {
+            console.log(val, num)
+            var url = "/api/Groups/PostAuditGrpCreditCardPayment"
+            var that = this
             this.$axios({
                 method: 'post',
-                url:url,
-                headers:{
-                    Authorization:'Bearer '+that.token
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
                 },
-                data:{
-                    CreditIdStr: val+'',
-                    auditCode:num,//1审核通过,2审核未通过
-                    user:that.userid//userid
+                data: {
+                    CreditIdStr: val + '',
+                    auditCode: num,//1审核通过,2审核未通过
+                    user: that.userid//userid
                 }
-            }).then(function(res){
+            }).then(function (res) {
                 console.log(res);
-                if(res.data.code==200){
+                if (res.data.code == 200) {
                     that.$message({
-                        message:res.data.msg ,
+                        message: res.data.msg,
                         type: 'warning',
-                        offset:50
+                        offset: 50
                     });
                     that.getPostSearchGrpCreditCardPayment();
                 }
@@ -312,53 +270,62 @@ export default {
         childMethod() {
             this.$parent.fatherMethod();
         },
-        ceshi(){
+        ceshi() {
             console.log("tg")
         }
     },
-    mounted(){
-        this.diid=this.$route.query.id;
-        this.token=JSON.parse(localStorage.getItem('userinif')).token;
-        this.userid=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
+    mounted() {
+        this.diid = this.$route.query.id;
+        this.token = JSON.parse(localStorage.getItem('userinif')).token;
+        this.userid = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
         this.getPostSearchGrpCreditCardPayment();
         // this.getTime('是否通过该条费用?',this.ceshi(),'通过') 
     }
 }
 </script>
 <style>
-    .fesspage-box{
-        background-color: #fff;
-        padding: 10px;
-        box-shadow: 0 0 5px #0005;
-        border-radius: 10px;
-    }
-    .fesspage-head .el-form-item__label{
-        font-weight: 600;
-    }
-    .fesspage-head .el-form--inline .el-form-item__content{
-        color: #606266;
-    }
-    .fesspage-head .el-form-item{
-        margin-bottom: 10px;
-    }
-    .payments{
-        margin-top: 10px;
-    }
-    .payments>div{
-        margin: 2px 0;
-        font-size: 14px;
-    }
-    .payments .statistics{
-        font-size: 17px;
-        font-weight:600 ;
-    }
-    .payment{
-        color: #008000;
-    }
-    .remainder{
-        color: #ff0000;
-    }
-    .reviewed{
-        color: #1D5DA4;
-    }
+.fesspage-box {
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+}
+
+.fesspage-head .el-form-item__label {
+    font-weight: 600;
+}
+
+.fesspage-head .el-form--inline .el-form-item__content {
+    color: #606266;
+}
+
+.fesspage-head .el-form-item {
+    margin-bottom: 10px;
+}
+
+.payments {
+    margin-top: 10px;
+}
+
+.payments>div {
+    margin: 2px 0;
+    font-size: 14px;
+}
+
+.payments .statistics {
+    font-size: 17px;
+    font-weight: 600;
+}
+
+.payment {
+    color: #008000;
+}
+
+.remainder {
+    color: #ff0000;
+}
+
+.reviewed {
+    color: #1D5DA4;
+}
 </style>

+ 25 - 3
src/components/OP/AirTicketRes.vue

@@ -7,7 +7,7 @@
                     <div>机票费用录入</div>
                 </div>
                 <div style="display: flex;">
-                    <div style="width: 90%;">
+                    <div style="width: 80%;">
                         <el-select v-model="DiId" placeholder="团组选择" @change="AirTicketResSelectChange">
                             <el-option v-for="item in AirTicketResSelectData" :key="item.id" :label="item.groupName"
                                 :value="item.id">
@@ -15,6 +15,7 @@
                         </el-select>
                     </div>
                     <div>
+                        <el-button type="primary" @click="download" style="margin-left: 10px;">导出报表</el-button>
                         <router-link :to="{ path: '/home/OpAirTicketRes', query: { DiId } }">
                             <el-button type="primary" style="margin-left: 10px;">新增</el-button>
                         </router-link>
@@ -188,7 +189,7 @@ export default {
                 cancelButtonText: '取消',
                 type: 'warning'
             }).then(() => {
-                var url = "/api/Resource/DelCarData"
+                var url = "/api/Groups/DelAirTicketRes"
                 var that = this
                 this.$axios({
                     method: 'post',
@@ -209,7 +210,7 @@ export default {
                             message: '删除成功',
                             type: 'success'
                         });
-                        that.carData();
+                        that.AirTicketResList();
                     } else {
                         that.$message.error('删除失败!');
                     }
@@ -224,6 +225,27 @@ export default {
                     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("网络错误,请稍后重试");
+                }
+            })
         }
     },
     mounted() {