gcz hace 11 meses
padre
commit
b851b144ef

+ 18 - 0
src/api/statisticalReport/statistics.js

@@ -109,4 +109,22 @@ export function downDayReportCount(params) {
   });
 }
 
+// 分销明细
+export const marketPersonSaleCount = (query) => {
+  return request({
+    url: '/order/operationReport/marketPersonSaleCount',
+    method: 'get',
+    params: query
+  })
+}
+// 分销明细导出
+export function downMarketPersonSaleCount(params) {
+  return request({
+    url: '/order/operationReport/marketPersonSaleCountExport',
+    method: 'get',
+    responseType: 'blob',
+    params
+  });
+}
+
 

+ 73 - 32
src/views/statisticalReport/distridbution.vue

@@ -3,15 +3,17 @@
       <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="40px">
         <el-form-item label="日期">
           <el-date-picker
-            v-model="queryParams.performStartDate"
-            type="date"
+          style="width: 230px;"
+            v-model="selectTime"
+            type="daterange"
+            @change="dataChange"
             value-format="yyyy-MM-dd"
             placeholder="日期">
           </el-date-picker>
         </el-form-item>
         <el-form-item label="分销商类型" label-width="120px">
           <el-select
-            v-model="queryParams.type"
+            v-model="queryParams.personType"
             placeholder="分销商类型"
             @change="getList"
             clearable
@@ -50,52 +52,63 @@
         <el-table-column label="序号" align="center" type="index" width="60"></el-table-column>
         <!-- <el-table-column label="剧目名称" align="center" prop="performName" />
         <el-table-column label="票务名称" align="center" prop="goodsName" /> -->
-        <el-table-column label="场次日期" align="center">
+        <el-table-column label="分销商类型" align="center">
           <template slot-scope="scope">
-            <span>{{ scope.row.performDate }}</span>
+            <span>{{ scope.row.personType }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="场次" align="center">
+        <el-table-column label="分销商名称" align="center">
           <template slot-scope="scope">
-            <span>{{ scope.row.performTimeStart }} -- {{ scope.row.performTimeEnd }}</span>
+            <span>{{ scope.row.personName }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="销售量" align="center">
+        <el-table-column label="票种(元)" align="center">
+          
+        </el-table-column>
+        <el-table-column label="结算价(元)" align="center">
+          <template slot-scope="scope">
+            <span>{{ scope.row.settlementAmount }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="人次" align="center">
           <template slot-scope="scope">
-            <span>{{ scope.row.saleTotal?scope.row.saleTotal+'张' : '-' }}</span>
+            <span>{{ scope.row.personNext }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="核销量" align="center">
+        <el-table-column label="收入" align="center">
           <template slot-scope="scope">
-            <span>{{ scope.row.usedTotal?scope.row.usedTotal+'张' : '-' }}</span>
+            <span>{{ scope.row.salePriceAmount }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="核销率" align="center">
+        <el-table-column label="收入占比" align="center">
           <template slot-scope="scope">
-            <span>{{ scope.row.usedRate?scope.row.usedRate+'%' : '-' }}</span>
+            <span>{{ scope.row.incomeRatio?scope.row.incomeRatio+'%' : '-' }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="核销上座率" align="center">
+        <el-table-column label="备注" align="center">
           <template slot-scope="scope">
-            <span>{{ scope.row.occupancyRate?scope.row.occupancyRate+'%' : '-' }}</span>
+            <span>{{ scope.row.remark }}</span>
           </template>
         </el-table-column>
       </el-table>
+      <ul class="total-remark" v-if="responseData.saleTotalRemarkOnColor">
+        <li><span class="til">合计:</span><div class="html-wap" v-html="responseData.saleTotalRemarkOnColor||'-'"></div> </li>
+      </ul>
   
-      <pagination
+      <!-- <pagination
         v-show="total>0"
         :total="total"
         :page.sync="queryParams.pageNum"
         :limit.sync="queryParams.pageSize"
         @pagination="getList"
-      />
+      /> -->
   
     </div>
   </template>
   
   <script>
   
-  import { performTimeCount, downTimeCountListXls } from '@/api/statisticalReport/statistics'
+  import { marketPersonSaleCount, downMarketPersonSaleCount } from '@/api/statisticalReport/statistics'
   import { exportExcel } from '@/utils/exportexcel'
   import { seatPricePageList } from '@/api/distribution/ticketMr'
   import moment from "moment"
@@ -127,8 +140,8 @@
         dateRange: [],
         // 查询参数
         queryParams: {
-          pageNum: 1,
-          pageSize: 10,
+          // pageNum: 1,
+          // pageSize: 10,
         },
         visibleStatus: false,
         newObj: {},
@@ -137,10 +150,12 @@
         tableData: {},
         ticketList: [],
         seatList: [],
+        selectTime:'',
+        responseData:{},
       };
     },
     created() {
-      this.$set(this.queryParams,'performStartDate',moment().format("yyyy-MM-DD"))
+      this.$set(this,'selectTime',[moment().format("yyyy-MM-DD"),moment().format("yyyy-MM-DD")]);
       this.getList();
       this.ticketListApi();
     },
@@ -148,18 +163,22 @@
       /** 查询列表 */
       getList() {
         this.loading = true;
-        if(this.queryParams.time){
-          this.queryParams.performStartDate = this.queryParams.time[0];
-          this.queryParams.performEndDate = this.queryParams.time[1];
+        if(this.selectTime){
+          this.queryParams.beginDate = this.selectTime[0];
+          this.queryParams.endDate = this.selectTime[1];
         }
-        performTimeCount(this.addDateRange(this.queryParams, this.dateRange))
+        marketPersonSaleCount(this.addDateRange(this.queryParams, this.dateRange))
         .then(response => {
-            this.dataList = response.data.rows;
+            this.responseData = response.data;
+            this.dataList = response.data.dataList||[];
             this.total = response.data.total;
             this.loading = false;
           }
         );
       },
+      dataChange(data) {
+        this.getList()
+      },
       /** 票务列表查询 */
       ticketListApi() {
         this.ticketList = []
@@ -200,7 +219,7 @@
       },
       /** 搜索按钮操作 */
       handleQuery() {
-        this.queryParams.pageNum = 1;
+        // this.queryParams.pageNum = 1;
         this.getList();
       },
       /** 重置按钮操作 */
@@ -212,8 +231,9 @@
         this.$set(this.queryParams, 'performEndDate', '');
         this.$set(this.queryParams, 'goodsId', '');
         this.$set(this.queryParams, 'seatTypeId', '');
-        this.$set(this.queryParams, 'type', '');
-        this.queryParams.pageNum = 1;
+        this.$set(this.queryParams, 'personType', '');
+        // this.queryParams.pageNum = 1;
+        this.$set(this,'selectTime',[moment().format("yyyy-MM-DD"),moment().format("yyyy-MM-DD")]);
         this.handleQuery();
       },
       /**
@@ -236,9 +256,9 @@
                 postMap[key] = this.queryParams[key]
               }
             }
-            downTimeCountListXls(postMap)
+            downMarketPersonSaleCount(postMap)
               .then((res) => {
-                exportExcel(res, '场次销售分析', '.xlsx');
+                exportExcel(res, '分销明细', '.xlsx');
                 this.handleExportLoading = false;
               })
               .catch(() => {
@@ -252,4 +272,25 @@
     }
   };
   </script>
-  
+  <style lang="scss" scoped>
+  .total-remark{
+    margin-top: 24px;
+    margin-bottom: 24px;
+    padding-left: 0;
+    li{
+      list-style: none;
+      display: flex;
+      ::v-deep .html-wap{
+        span{
+          color: blue;
+          margin: 0 5px;
+          display: inline-block;
+        }
+      }
+    }
+    .til{
+      font-weight: bold;
+      color: #333;
+    }
+  }
+  </style>