liuhj 6 місяців тому
батько
коміт
d68ada40fa

+ 36 - 4
src/components/Finance/RvsReport.vue

@@ -2,10 +2,19 @@
     <div>
         <div class="rvsreport-all">
             <div class="rvsreport-haed">
-                <el-date-picker @change="datechange" style="width:350px" v-model="value2" type="daterange" align="left"
-                    unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
-                    :picker-options="pickerOptions">
-                </el-date-picker>
+                <div>
+                    <el-date-picker @change="datechange" style="width:350px" v-model="value2" type="daterange" align="left"
+                        unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
+                        :picker-options="pickerOptions">
+                    </el-date-picker>
+                    <el-input
+                        style="width:250px"
+                        placeholder="请输入团组名称"
+                        v-model="input"
+                        clearable>
+                    </el-input>
+                    <el-button @click="datechange" type="primary">查询</el-button>
+                </div>
                 <el-button @click="Skeclick" type="primary">生 成</el-button>
             </div>
             <div class="hjbox">
@@ -57,8 +66,26 @@
                             </template>
                         </el-table-column>
                         <el-table-column prop="prClient" label="收款单位" width="180">
+                            <template slot-scope="scope">
+                                <el-popover
+                                placement="top"
+                                width="300"
+                                trigger="hover">
+                                    {{scope.row.prClient}}
+                                    <span style="display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;cursor: pointer;color: #48a2ff;" slot="reference">{{scope.row.prClient}}</span>
+                                </el-popover>
+                            </template>
                         </el-table-column>
                         <el-table-column prop="schedule" label="收款进度">
+                            <template slot-scope="scope">
+                                <el-popover
+                                placement="top"
+                                width="300"
+                                trigger="hover">
+                                    {{scope.row.schedule}}
+                                    <span style="display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;cursor: pointer;color: #48a2ff;" slot="reference">{{scope.row.schedule}}</span>
+                                </el-popover>
+                            </template>
                         </el-table-column>
                     </el-table-column>
                 </el-table>
@@ -99,6 +126,7 @@ export default {
                     }
                 }]
             },
+            input:'',
             value2: '',
             tableData: [],
             total_balance:'0.00',
@@ -165,6 +193,7 @@ export default {
                     endDt: endDt,
                     currUserId:that.userid,
                     requestType: requestType,
+                    groupName:that.input
                 }
             }).then(function (res) {
                 console.log(res)
@@ -206,4 +235,7 @@ export default {
     padding-right: 5px;
     padding-left: 5px;
 }
+.rvsreport-all .callondialog-li .el-input, .el-range-editor.el-input__inner{
+    margin-bottom: 0px;
+}
 </style>

+ 45 - 3
src/components/MCR/Marketingamount.vue

@@ -76,6 +76,9 @@
                     </el-select>
                 </el-form-item>
             </el-form>
+            <el-form style="width:100px;margin-left: 10px;">
+                <el-button @click="PostMarketingSalesGroupExcel" type="primary">导出Excel</el-button>
+            </el-form>
         </div>
         <div class="Marketingamount-head-ul">
             <div :style="yratio>0?'background-color: #ff4f4f':'background-color: #069305'" class="Marketingamount-head-li">
@@ -413,6 +416,46 @@ export default {
                 ]
             });
         },
+        //导出Excel
+        PostMarketingSalesGroupExcel() {
+            var url = "/api/Statistics/PostMarketingSalesGroupExcel"
+            var that = this
+            this.$axios({
+                method: 'post',
+                url: url,
+                headers: {
+                    Authorization: 'Bearer ' + that.token
+                },
+                data: {
+                    portType:1,
+                    userId: that.userId,
+                    pageId:180,
+                    companyId:that.companyname,
+                    groupPickupUserId:that.personnelname,
+                    beginDt:that.quarter=='全部'?that.QbeginDt:that.MbeginDt,
+                    endDt:that.quarter=='全部'?that.QendDt:that.MendDt,
+                    pageIndex:0,
+                    pageSize:0,
+                    searchCriteria:'',
+                }
+            }).then(function (res) {
+                if (res.data.code == 200) {
+                    window.open(res.data.data.url)
+                    that.$message({
+                        message: res.data.msg,
+                        type: 'success'
+                    });
+                }else{
+                    that.$message({
+                        message:res.data.msg,
+                        duration:1000,
+                        type:"error"
+                    });
+                }
+            }).catch(function (error) {
+                that.$message.error('接口报错请联系信息部!');
+            });
+        },
         //获取PostMarketingSalesInitData
         PostMarketingSalesInitData() {
             var url = "/api/Statistics/PostMarketingSalesInitData"
@@ -637,10 +680,8 @@ export default {
         //月切换
         MonthlySwitch(val){
             console.log(val);
-            
             for (let m = 0; m < this.montharr.length; m++) {
                 if(val==this.montharr[m].name){
-                    console.log(this.montharr[m]);
                     this.MbeginDt=this.montharr[m].beginDt;
                     this.MendDt=this.montharr[m].endDt;
                 }
@@ -1028,9 +1069,10 @@ export default {
 }
 .search-head{
     display: flex;
+    flex-wrap: wrap;
 }
 .search-head .el-form{
-    width: 300px;
+    width: 290px;
 }
 .search-head .el-select{
     width: 100%;

+ 76 - 2
src/components/statistics/Statistically.vue

@@ -40,9 +40,11 @@
                         <div v-else-if="value==1" style="width: 100%;">
                             <div id="grossmarginss" style="width: 100%;height:400px;"></div>
                             <div id="Airticketcitybox" style="width: 100%;height:400px;"></div>
+                            <div id="AirPredeterminedPlatform" style="width: 100%;height:400px;"></div>
                         </div>
                         <div v-else-if="value==2" style="width: 100%;">
                             <div id="hoteltopten" style="width: 100%;height:400px;"></div>
+                            <div id="hotelPredeterminedPlatform" style="width: 100%;height:400px;"></div>
                         </div>
                         <div v-else-if="value==5" style="width: 100%;">
                             <div id="invitationtopten" style="width: 100%;height:400px;"></div>
@@ -244,7 +246,9 @@ export default {
             costing:[],
             Airticketnum:[],
             Airticketcity:[],
+            AirticketPredetermined:[],
             Hoteltop:[],
+            hotelPredetermined:[],
             invitationtop:[],
             teamCooperation:[],
             groupnum:[],
@@ -389,6 +393,35 @@ export default {
                 color:['#2e83d4'],
                 series: [{ type: 'bar' }]
             },true);
+            //预定平台
+            var AirPredeterminedPlatform = echarts.init(document.getElementById('AirPredeterminedPlatform'));
+            AirPredeterminedPlatform.setOption({
+                title:{
+                    text: '机票预订平台排行',
+                },
+                legend: {},
+                tooltip: {
+                    formatter:function(params){
+                        console.log(params);
+                        
+                        var html=params.data[0]+"预订总次数:"+params.data[1]+"次<br/>"
+                        for(let i=0;i<params.data[2].length;i++){
+                            html += '团组名称:'+params.data[2][i].groupName+'&nbsp;&nbsp;&nbsp;次数:'+params.data[2][i].total+",<br/>";
+                        }
+                        return html 
+                    }
+
+                },
+                dataset: {
+                    source: this.AirticketPredetermined
+                },
+                xAxis: { type: 'category' },
+                yAxis: {
+                    name: '该平台预订次数',
+                },
+                color:['#2e83d4'],
+                series: [{ type: 'bar' }]
+            },true);
         },
         //团组酒店
         grouphotel(){
@@ -418,11 +451,37 @@ export default {
                 color:['#2e83d4'],
                 series: [{ type: 'bar' }]
             },true);
+            //预定平台
+            var hotelPredeterminedPlatform = echarts.init(document.getElementById('hotelPredeterminedPlatform'));
+            hotelPredeterminedPlatform.setOption({
+                title:{
+                    text: '预订酒店平台排行',
+                },
+                legend: {},
+                tooltip: {
+                    formatter:function(params){
+                        var html="该平台预订总次数:"+params.data[1]+"次<br/>"
+                        for(let i=0;i<params.data[2].length;i++){
+                            html += '酒店名称:'+params.data[2][i].hotelName+',&nbsp;&nbsp;&nbsp;'+'单人间:' +params.data[2][i].singleRoomCount+',&nbsp;&nbsp;&nbsp;'+'双人间:' +params.data[2][i].doubleRoomCount+',&nbsp;&nbsp;&nbsp;'+'套房:' +params.data[2][i].suiteRoomCount+',&nbsp;&nbsp;&nbsp;'+'其他房型:' +params.data[2][i].otherRoomCount+',&nbsp;&nbsp;&nbsp;'+'总房数:' +params.data[2][i].roomTotal+",<br/>";
+                        }
+                        return html 
+                    }
+
+                },
+                dataset: {
+                    source: this.hotelPredetermined
+                },
+                xAxis: { type: 'category' },
+                yAxis: {
+                    name: '该平台预订次数',
+                },
+                color:['#2e83d4'],
+                series: [{ type: 'bar' }]
+            },true);
         },
         //团组商邀
         groupinvitation(){
             var invitationtopten = echarts.init(document.getElementById('invitationtopten'));
-            
             invitationtopten.setOption({
                 title:{
                     text: '邀请国家数量排行',
@@ -615,6 +674,7 @@ export default {
             if(document.getElementById('grossmarginss')!=null){
                 echarts.init(document.getElementById('grossmarginss')).dispose();
                 echarts.init(document.getElementById('Airticketcitybox')).dispose();
+                echarts.init(document.getElementById('AirPredeterminedPlatform')).dispose();
             }
             if(document.getElementById('teamCooperationbox')!=null){
                 echarts.init(document.getElementById('teamCooperationbox')).dispose();
@@ -624,6 +684,7 @@ export default {
             }
             if(document.getElementById('hoteltopten')!=null){
                 echarts.init(document.getElementById('hoteltopten')).dispose();
+                echarts.init(document.getElementById('hotelPredeterminedPlatform')).dispose();
             }
             if(document.getElementById('invitationtopten')!=null){
                 echarts.init(document.getElementById('invitationtopten')).dispose();
@@ -706,6 +767,7 @@ export default {
                 if(res.data.code==200){
                     that.Airticketnum=[];
                     that.Airticketcity=[];
+                    that.Airticketpred=[];
                     var datainfo=res.data.data;
                     //机票数
                     that.Airticketnum.push(['product','本年机票数量']);
@@ -717,6 +779,11 @@ export default {
                     for(let i=0;i<datainfo.airTicketAreaData.length;i++){
                         that.Airticketcity.push([datainfo.airTicketAreaData[i].month+'月',datainfo.airTicketAreaData[i].quantity,datainfo.airTicketAreaData[i].cityData]);
                     }
+                    //机票预订平台
+                    that.AirticketPredetermined.push(['product','机票预订平台排行榜']);
+                    for(let i=0;i<datainfo.airTicketPlatformData.length;i++){
+                        that.AirticketPredetermined.push([datainfo.airTicketPlatformData[i].platform,datainfo.airTicketPlatformData[i].total,datainfo.airTicketPlatformData[i].children]);
+                    }
                     that.groupstatisone()
                 }else{
                     that.$message({
@@ -742,12 +809,19 @@ export default {
             }).then(function (res) {
                 if(res.data.code==200){
                     that.Hoteltop=[];
-                    var datainfo=res.data.data;
+                    that.hotelPredetermined=[];
+                    var datainfo=res.data.data.hotelCityData;
+                    var hotelpred=res.data.data.hotelPlatformData
                     //酒店预订数
                     that.Hoteltop.push(['product','城市酒店预订排行榜']);
                     for(let i=0;i<datainfo.length;i++){
                         that.Hoteltop.push([datainfo[i].city,datainfo[i].bookingRoomNum,datainfo[i].hotelData]);
                     }
+                    //酒店预订平台
+                    that.hotelPredetermined.push(['product','酒店预订平台排行榜']);
+                    for(let k=0;k<hotelpred.length;k++){
+                        that.hotelPredetermined.push([hotelpred[k].platform,hotelpred[k].bookingRoomNum,hotelpred[k].hotelData]);
+                    }
                     that.grouphotel()
                 }else{
                     that.$message({