浏览代码

1. 增加

MONSTER-ygh 1 年之前
父节点
当前提交
f30019d2f0

+ 21 - 0
src/api/statisticalReport/seatInventory.js

@@ -0,0 +1,21 @@
+import request from '@/utils/request'
+
+// 场次统计分页查询
+export const performTimeCount = (query) => {
+  return request({
+    url: '/merchant/merchantPerformTime/performTimeCount',
+    method: 'get',
+    params: query
+  })
+}
+
+//  场次统计导出
+export function downTimeCountListXls(params) {
+  return request({
+    url: '/merchant/merchantPerformTime/performTimeCountExport',
+    method: 'get',
+    responseType: 'blob',
+    params
+  });
+}
+

+ 21 - 0
src/api/statisticalReport/sessionInventory.js

@@ -0,0 +1,21 @@
+import request from '@/utils/request'
+
+// 场次统计分页查询
+export const performTimeCount = (query) => {
+  return request({
+    url: '/merchant/merchantPerformTime/performTimeCount',
+    method: 'get',
+    params: query
+  })
+}
+
+//  场次统计导出
+export function downTimeCountListXls(params) {
+  return request({
+    url: '/merchant/merchantPerformTime/performTimeCountExport',
+    method: 'get',
+    responseType: 'blob',
+    params
+  });
+}
+

+ 22 - 1
src/views/finance/flowingWaterMr/index.vue

@@ -10,6 +10,21 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <el-form-item label="支付方式">
+        <el-select
+          v-model="queryParams.payWay"
+          placeholder="支付方式"
+          clearable
+          style="width: 100%"
+        >
+            <el-option
+              v-for="dict in dict.type.pay_way_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+        </el-select>
+      </el-form-item>
       <el-form-item label="收支类型">
         <el-select
           v-model="queryParams.incomeExpenses"
@@ -69,6 +84,11 @@
           <span>¥{{ scope.row.orderPrice }}</span>
         </template>
       </el-table-column>
+      <el-table-column label="支付方式" align="center" prop="payWay">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.pay_way_type" :value="scope.row.payWay"/>
+        </template>
+      </el-table-column>
       <el-table-column label="收支类型" align="center" prop="incomeExpenses" />
       <el-table-column label="业务类型" align="center" prop="businessType" />
       <el-table-column label="产生渠道" align="center" prop="refundTime" width="160" >
@@ -102,7 +122,7 @@ import { pageList, downOrderListXls } from '@/api/financeMr/flowingWaterMr'
 import { exportExcel } from '@/utils/exportexcel'
 export default {
   name: "agreement",
-  dicts: ['agreement_type','order_form_type'],
+  dicts: ['agreement_type','order_form_type','pay_way_type'],
   data() {
     return {
       // 遮罩层
@@ -189,6 +209,7 @@ export default {
       this.$set(this.queryParams, 'id', '');
       this.$set(this.queryParams, 'businessType', '');
       this.$set(this.queryParams, 'incomeExpenses', '');
+      this.$set(this.queryParams, 'payWay', '');
       this.queryParams.pageNum = 1;
       this.handleQuery();
     },

+ 16 - 0
src/views/order/orderMr/index.vue

@@ -52,6 +52,21 @@
             />
         </el-select>
       </el-form-item>
+      <el-form-item label="支付方式">
+        <el-select
+          v-model="queryParams.payWay"
+          placeholder="支付方式"
+          clearable
+          style="width: 100%"
+        >
+            <el-option
+              v-for="dict in dict.type.pay_way_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+        </el-select>
+      </el-form-item>
       <el-form-item label="购票渠道">
         <el-select
           v-model="queryParams.source"
@@ -349,6 +364,7 @@ export default {
       this.$set(this.queryParams, 'performDate', '');
       this.$set(this.queryParams, 'timeSnapshot', '');
       this.$set(this.queryParams, 'performTimeId', '');
+      this.$set(this.queryParams, 'payWay', '');
       this.queryParams.pageNum = 1;
       this.handleQuery();
     },

+ 196 - 287
src/views/statisticalReport/seatInventory.vue

@@ -1,301 +1,210 @@
 <template>
-    <div class="app-container">
-      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
-        <el-form-item label="票务管理:">
-          <el-select
-            v-model="queryParams.goodsId"
-            placeholder="票务管理"
-            clearable
-            @change="goodsChangeEven"
-            style="width: 100%;"
-          >
-            <el-option
-              v-for="dict in ticketList"
-              :key="dict.id"
-              :label="dict.goodsName"
-              :value="dict.goodsId"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="座位类型:">
-          <el-select
-            v-model="queryParams.seatTypeId"
-            placeholder="座位类型"
-            clearable
-            style="width: 100%;"
-          >
-            <el-option
-              v-for="dict in seatList"
-              :key="dict.seatTypeId"
-              :label="dict.seatTypeName"
-              :value="dict.seatTypeId"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="场次日期">
-          <el-date-picker
-            v-model="queryParams.time"
-            type="daterange"
-            value-format="yyyy-MM-dd"
-            range-separator="至"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item>
-          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-        </el-form-item>
-      </el-form>
-      <el-row :gutter="10" class="mb8"  style="margin-left: 0; margin-top: 10px">
-        <el-button
-          type="primary"
-          size="mini"
-          icon="el-icon-download"
-          :disabled="tableData.length === 0"
-          v-hasPermi="['statisticalReport:seatInventory:downloadExcel']"
-          @click="handleExport"
-          v-loading.fullscreen.lock="handleExportLoading"
-          element-loading-text="正在拼命生成数据中..."
-          element-loading-spinner="el-icon-loading"
-          element-loading-background="rgba(0, 0, 0, 0.5)"
-        >导出excel</el-button>
-        <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-      </el-row>
-  
-      <el-table ref="tables" v-loading="loading" :data="dataList" border>
-        <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">
-          <template slot-scope="scope">
-            <span>{{ scope.row.performDate }}</span>
-          </template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
+      <el-form-item label="日期">
+        <el-date-picker
+          v-model="queryParams.performStartDate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+    <el-row :gutter="10" class="mb8"  style="margin-left: 0; margin-top: 10px">
+      <el-button
+        type="primary"
+        size="mini"
+        icon="el-icon-download"
+        :disabled="tableData.length === 0"
+        v-hasPermi="['statisticalReport:seatInventory:downloadExcel']"
+        @click="handleExport"
+        v-loading.fullscreen.lock="handleExportLoading"
+        element-loading-text="正在拼命生成数据中..."
+        element-loading-spinner="el-icon-loading"
+        element-loading-background="rgba(0, 0, 0, 0.5)"
+      >导出excel</el-button>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table ref="tables" v-loading="loading" :data="dataList" border>
+      <el-table-column label="序号" align="center" type="index" width="60"></el-table-column>
+      <el-table-column label="日期" align="center" prop="performDate" />
+      <el-table-column label="场次" align="center">
+        <template slot-scope="scope">
+          <span>{{ scope.row.performTimeStart }} -- {{ scope.row.performTimeEnd }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="座位总数" align="center">
+        <template slot-scope="scope">
+          <span>{{ scope.row.total }}张</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="自营" align="center">
+        <el-table-column
+          prop="microAppTotal"
+          label="小程序">
         </el-table-column>
-        <el-table-column label="场次" align="center">
-          <template slot-scope="scope">
-            <span>{{ scope.row.performTimeStart }} -- {{ scope.row.performTimeEnd }}</span>
-          </template>
+        <el-table-column
+          prop="groupBuyTotal"
+          label="团购">
         </el-table-column>
-        <el-table-column label="座位类型" align="center" prop="seatTypeName" />
-        <el-table-column label="座位总数" align="center">
-          <template slot-scope="scope">
-            <span>{{ scope.row.total }}张</span>
-          </template>
+        <el-table-column
+          prop="winTotal"
+          label="窗口">
         </el-table-column>
-        <el-table-column label="自营" align="center">
-          <el-table-column
-            prop="province"
-            label="小程序">
-          </el-table-column>
-          <el-table-column
-            prop="province1"
-            label="团购">
-          </el-table-column>
-          <el-table-column
-            prop="province2"
-            label="窗口">
-          </el-table-column>
+      </el-table-column>
+      <el-table-column label="OTA" align="center">
+        <el-table-column
+          prop="meituanTotal"
+          label="美团">
         </el-table-column>
-        <el-table-column label="OTA" align="center">
-          <el-table-column
-            prop="province3"
-            label="美团">
-          </el-table-column>
-          <el-table-column
-            prop="province4"
-            label="携程">
-          </el-table-column>
-          <el-table-column
-            prop="province5"
-            label="猫眼">
-          </el-table-column>
-          <el-table-column
-            prop="province6"
-            label="抖音">
-          </el-table-column>
-          <el-table-column
-            prop="province7"
-            label="去哪儿">
-          </el-table-column>
+        <el-table-column
+          prop="xiechenTotal"
+          label="携程">
         </el-table-column>
-        <el-table-column label="已售小计" align="center">
-          <template slot-scope="scope">
-            <span>{{ (scope.row.total - scope.row.saleTotal) >= 0 ? (scope.row.total - scope.row.saleTotal) : '' }}张</span>
-          </template>
+        <el-table-column
+          prop="maoyanTotal"
+          label="猫眼">
         </el-table-column>
-        <el-table-column label="剩余" align="center">
-          <template slot-scope="scope">
-            <span>{{ (scope.row.total - scope.row.saleTotal) >= 0 ? (scope.row.total - scope.row.saleTotal) : '' }}张</span>
-          </template>
+        <el-table-column
+          prop="duoyinTotal"
+          label="抖音">
         </el-table-column>
-      </el-table>
-  
-      <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/statistics'
-  import { exportExcel } from '@/utils/exportexcel'
-  import { seatPricePageList } from '@/api/distribution/ticketMr'
-  export default {
-    name: "agreement",
-    dicts: ['agreement_type'],
-    data() {
-      return {
-        // 遮罩层
-        loading: true,
-        // 选中数组
-        ids: [],
-        // 非单个禁用
-        single: true,
-        // 非多个禁用
-        multiple: true,
-        // 显示搜索条件
-        showSearch: true,
-        // 总条数
-        total: 0,
-        // 用户表格数据
-        dataList: null,
-        // 弹出层标题
-        title: "",
-  
-        // 是否显示弹出层
-        open: false,
-        // 日期范围
-        dateRange: [],
-        // 查询参数
-        queryParams: {
-          pageNum: 1,
-          pageSize: 10,
-        },
-        visibleStatus: false,
-        newObj: {},
-        visibleType: '',
-        handleExportLoading: false,
-        tableData: {},
-        ticketList: [],
-        seatList: [],
-      };
+        <el-table-column
+          prop="otherTotal"
+          label="其他">
+        </el-table-column>
+      </el-table-column>
+      <el-table-column 
+      prop="saleTotal"
+      label="已售小计">
+      </el-table-column>
+      <el-table-column 
+      prop="noSaleTotal"
+      label="剩余">
+      </el-table-column>
+    </el-table>
+
+    <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/seatInventory'
+import { exportExcel } from '@/utils/exportexcel'
+export default {
+  name: "seatInventory",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 用户表格数据
+      dataList: null,
+      // 弹出层标题
+      title: "",
+
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      visibleStatus: false,
+      newObj: {},
+      visibleType: '',
+      handleExportLoading: false,
+      tableData: {},
+      ticketList: [],
+      seatList: [],
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询列表 */
+    getList() {
+      this.loading = true;
+      performTimeCount(this.addDateRange(this.queryParams))
+      .then(response => {
+          this.dataList = response.data.rows;
+          this.total = response.data.total;
+          this.loading = false;
+        }
+      );
     },
-    created() {
+    // 取消按钮
+    cancel() {
+      this.open = false;
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
       this.getList();
-      this.ticketListApi();
     },
-    methods: {
-      /** 查询列表 */
-      getList() {
-        this.loading = true;
-        if(this.queryParams.time){
-          this.queryParams.performStartDate = this.queryParams.time[0];
-          this.queryParams.performEndDate = this.queryParams.time[1];
-        }
-        performTimeCount(this.addDateRange(this.queryParams, this.dateRange))
-        .then(response => {
-            this.dataList = response.data.rows;
-            this.total = response.data.total;
-            this.loading = false;
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.seatList = [];
+      this.$set(this.queryParams, 'performStartDate', '');
+      this.queryParams.pageNum = 1;
+      this.handleQuery();
+    },
+    /**
+     * 导出报表
+     * @date 2022-10-24
+     * @returns {any}
+     */
+    handleExport() {
+      this.$confirm('您确定要导出当前查询的数据吗?', '提示', {
+        confirmButtonText: '确定 ',
+        cancelButtonText: '取消 ',
+        type: 'warning'
+      })
+        .then(() => {
+          this.handleExportLoading = true;
+          // const { pageNum, pageSize} = this.params;
+          let postMap = {}
+          for (let key in this.queryParams) {
+            if(key != 'pageNum' && key != 'pageSize'){
+              postMap[key] = this.queryParams[key]
+            }
           }
-        );
-      },
-      /** 票务列表查询 */
-      ticketListApi() {
-        this.ticketList = []
-        seatPricePageList(this.addDateRange({pageNum: 1, pageSize: 100}))
-          .then(response => {
-            let ticketItemList = []
-            response.data.rows.forEach(item => {
-              if(ticketItemList.indexOf(item.goodsId) == -1){
-                this.ticketList.push(item);
-                ticketItemList.push(item.goodsId);
-              }
-            })
-          });
-      },
-      /** 座位类型列表 */
-      getSeatTypeList(obj) {
-        seatPricePageList(this.addDateRange({pageNum: 1, pageSize: 100, goodsId: obj.goodsId}))
-          .then(response => {
-            let ticketList = []
-            response.data.rows.forEach(item => {
-              if(ticketList.indexOf(item.seatTypeId) == -1){
-                this.seatList.push(item);
-                ticketList.push(item.seatTypeId);
-              }
+          downTimeCountListXls(postMap)
+            .then((res) => {
+              exportExcel(res, '场次销售统计', '.xlsx');
+              this.handleExportLoading = false;
             })
-          });
-      },
-      // 取消按钮
-      cancel() {
-        this.open = false;
-      },
-      // 票务改变事件
-      goodsChangeEven() {
-        this.seatList = [];
-        this.$set(this.queryParams, 'seatTypeId', '');
-        let selectMap = {goodsId: this.queryParams.goodsId}
-        this.getSeatTypeList(selectMap);
-      },
-      /** 搜索按钮操作 */
-      handleQuery() {
-        this.queryParams.pageNum = 1;
-        this.getList();
-      },
-      /** 重置按钮操作 */
-      resetQuery() {
-        this.dateRange = [];
-        this.seatList = [];
-        this.$set(this.queryParams, 'time', '');
-        this.$set(this.queryParams, 'performStartDate', '');
-        this.$set(this.queryParams, 'performEndDate', '');
-        this.$set(this.queryParams, 'goodsId', '');
-        this.$set(this.queryParams, 'seatTypeId', '');
-        this.queryParams.pageNum = 1;
-        this.handleQuery();
-      },
-      /**
-       * 导出报表
-       * @date 2022-10-24
-       * @returns {any}
-       */
-      handleExport() {
-        this.$confirm('您确定要导出当前查询的数据吗?', '提示', {
-          confirmButtonText: '确定 ',
-          cancelButtonText: '取消 ',
-          type: 'warning'
+            .catch(() => {
+              this.handleExportLoading = false;
+            });
         })
-          .then(() => {
-            this.handleExportLoading = true;
-            // const { pageNum, pageSize} = this.params;
-            let postMap = {}
-            for (let key in this.queryParams) {
-              if(key != 'pageNum' && key != 'pageSize'){
-                postMap[key] = this.queryParams[key]
-              }
-            }
-            downTimeCountListXls(postMap)
-              .then((res) => {
-                exportExcel(res, '场次统计', '.xlsx');
-                this.handleExportLoading = false;
-              })
-              .catch(() => {
-                this.handleExportLoading = false;
-              });
-          })
-          .catch(() => {
-            this.$message.info('您已取消导出!');
-          });
-      },
-    }
-  };
-  </script>
-  
+        .catch(() => {
+          this.$message.info('您已取消导出!');
+        });
+    },
+  }
+};
+</script>

+ 268 - 0
src/views/statisticalReport/session copy.vue

@@ -0,0 +1,268 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
+      <!-- <el-form-item label="票务管理:">
+        <el-select
+          v-model="queryParams.goodsId"
+          placeholder="票务管理"
+          clearable
+          @change="goodsChangeEven"
+          style="width: 100%;"
+        >
+          <el-option
+            v-for="dict in ticketList"
+            :key="dict.id"
+            :label="dict.goodsName"
+            :value="dict.goodsId"
+          />
+        </el-select>
+      </el-form-item> -->
+      <el-form-item label="座位类型:">
+        <el-select
+          v-model="queryParams.seatTypeId"
+          placeholder="座位类型"
+          clearable
+          style="width: 100%;"
+        >
+          <el-option
+            v-for="dict in seatList"
+            :key="dict.seatTypeId"
+            :label="dict.seatTypeName"
+            :value="dict.seatTypeId"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="场次日期">
+        <el-date-picker
+          v-model="queryParams.time"
+          type="daterange"
+          value-format="yyyy-MM-dd"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+    <el-row :gutter="10" class="mb8"  style="margin-left: 0; margin-top: 10px">
+      <el-button
+        type="primary"
+        size="mini"
+        icon="el-icon-download"
+        :disabled="tableData.length === 0"
+        v-hasPermi="['session:session:downloadExcel']"
+        @click="handleExport"
+        v-loading.fullscreen.lock="handleExportLoading"
+        element-loading-text="正在拼命生成数据中..."
+        element-loading-spinner="el-icon-loading"
+        element-loading-background="rgba(0, 0, 0, 0.5)"
+      >导出excel</el-button>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table ref="tables" v-loading="loading" :data="dataList" border>
+      <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">
+        <template slot-scope="scope">
+          <span>{{ scope.row.performDate }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="场次" align="center">
+        <template slot-scope="scope">
+          <span>{{ scope.row.performTimeStart }} -- {{ scope.row.performTimeEnd }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="座位类型" align="center" prop="seatTypeName" />
+      <el-table-column label="总库存" align="center">
+        <template slot-scope="scope">
+          <span>{{ scope.row.total }}张</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="已售数量" align="center">
+        <template slot-scope="scope">
+          <span>{{ scope.row.saleTotal }}张</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="已核销数量" align="center">
+        <template slot-scope="scope">
+          <span>{{ scope.row.usedTotal }}张</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="库存数量" align="center">
+        <template slot-scope="scope">
+          <span>{{ (scope.row.total - scope.row.saleTotal) >= 0 ? (scope.row.total - scope.row.saleTotal) : '' }}张</span>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <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/statistics'
+import { exportExcel } from '@/utils/exportexcel'
+import { seatPricePageList } from '@/api/distribution/ticketMr'
+export default {
+  name: "session",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 用户表格数据
+      dataList: null,
+      // 弹出层标题
+      title: "",
+
+      // 是否显示弹出层
+      open: false,
+      // 日期范围
+      dateRange: [],
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+      visibleStatus: false,
+      newObj: {},
+      visibleType: '',
+      handleExportLoading: false,
+      tableData: {},
+      ticketList: [],
+      seatList: [],
+    };
+  },
+  created() {
+    this.getList();
+    this.ticketListApi();
+  },
+  methods: {
+    /** 查询列表 */
+    getList() {
+      this.loading = true;
+      if(this.queryParams.time){
+        this.queryParams.performStartDate = this.queryParams.time[0];
+        this.queryParams.performEndDate = this.queryParams.time[1];
+      }
+      performTimeCount(this.addDateRange(this.queryParams, this.dateRange))
+      .then(response => {
+          this.dataList = response.data.rows;
+          this.total = response.data.total;
+          this.loading = false;
+        }
+      );
+    },
+    /** 票务列表查询 */
+    ticketListApi() {
+      this.ticketList = []
+      seatPricePageList(this.addDateRange({pageNum: 1, pageSize: 100}))
+        .then(response => {
+          let ticketItemList = []
+          response.data.rows.forEach(item => {
+            if(ticketItemList.indexOf(item.goodsId) == -1){
+              this.ticketList.push(item);
+              ticketItemList.push(item.goodsId);
+            }
+          })
+        });
+    },
+    /** 座位类型列表 */
+    getSeatTypeList(obj) {
+      seatPricePageList(this.addDateRange({pageNum: 1, pageSize: 100, goodsId: obj.goodsId}))
+        .then(response => {
+          let ticketList = []
+          response.data.rows.forEach(item => {
+            if(ticketList.indexOf(item.seatTypeId) == -1){
+              this.seatList.push(item);
+              ticketList.push(item.seatTypeId);
+            }
+          })
+        });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+    },
+    // 票务改变事件
+    goodsChangeEven() {
+      this.seatList = [];
+      this.$set(this.queryParams, 'seatTypeId', '');
+      let selectMap = {goodsId: this.queryParams.goodsId}
+      this.getSeatTypeList(selectMap);
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.seatList = [];
+      this.$set(this.queryParams, 'time', '');
+      this.$set(this.queryParams, 'performStartDate', '');
+      this.$set(this.queryParams, 'performEndDate', '');
+      this.$set(this.queryParams, 'goodsId', '');
+      this.$set(this.queryParams, 'seatTypeId', '');
+      this.queryParams.pageNum = 1;
+      this.handleQuery();
+    },
+    /**
+     * 导出报表
+     * @date 2022-10-24
+     * @returns {any}
+     */
+    handleExport() {
+      this.$confirm('您确定要导出当前查询的数据吗?', '提示', {
+        confirmButtonText: '确定 ',
+        cancelButtonText: '取消 ',
+        type: 'warning'
+      })
+        .then(() => {
+          this.handleExportLoading = true;
+          // const { pageNum, pageSize} = this.params;
+          let postMap = {}
+          for (let key in this.queryParams) {
+            if(key != 'pageNum' && key != 'pageSize'){
+              postMap[key] = this.queryParams[key]
+            }
+          }
+          downTimeCountListXls(postMap)
+            .then((res) => {
+              exportExcel(res, '场次统计', '.xlsx');
+              this.handleExportLoading = false;
+            })
+            .catch(() => {
+              this.handleExportLoading = false;
+            });
+        })
+        .catch(() => {
+          this.$message.info('您已取消导出!');
+        });
+    },
+  }
+};
+</script>

+ 24 - 114
src/views/statisticalReport/sessionInventory.vue

@@ -1,45 +1,12 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="80px">
-      <el-form-item label="票务管理:">
-        <el-select
-          v-model="queryParams.goodsId"
-          placeholder="票务管理"
-          clearable
-          @change="goodsChangeEven"
-          style="width: 100%;"
-        >
-          <el-option
-            v-for="dict in ticketList"
-            :key="dict.id"
-            :label="dict.goodsName"
-            :value="dict.goodsId"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="座位类型:">
-        <el-select
-          v-model="queryParams.seatTypeId"
-          placeholder="座位类型"
-          clearable
-          style="width: 100%;"
-        >
-          <el-option
-            v-for="dict in seatList"
-            :key="dict.seatTypeId"
-            :label="dict.seatTypeName"
-            :value="dict.seatTypeId"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="场次日期">
+      <el-form-item label="日期">
         <el-date-picker
-          v-model="queryParams.time"
-          type="daterange"
+          v-model="queryParams.performStartDate"
+          type="date"
           value-format="yyyy-MM-dd"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期">
+          placeholder="日期">
         </el-date-picker>
       </el-form-item>
       <el-form-item>
@@ -65,19 +32,12 @@
 
     <el-table ref="tables" v-loading="loading" :data="dataList" border>
       <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">
-        <template slot-scope="scope">
-          <span>{{ scope.row.performDate }}</span>
-        </template>
-      </el-table-column>
+      <el-table-column label="日期" align="center" prop="performDate" />
       <el-table-column label="场次" align="center">
         <template slot-scope="scope">
           <span>{{ scope.row.performTimeStart }} -- {{ scope.row.performTimeEnd }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="座位类型" align="center" prop="seatTypeName" />
       <el-table-column label="座位总数" align="center">
         <template slot-scope="scope">
           <span>{{ scope.row.total }}张</span>
@@ -85,49 +45,47 @@
       </el-table-column>
       <el-table-column label="自营" align="center">
         <el-table-column
-          prop="province"
+          prop="microAppTotal"
           label="小程序">
         </el-table-column>
         <el-table-column
-          prop="province1"
+          prop="groupBuyTotal"
           label="团购">
         </el-table-column>
         <el-table-column
-          prop="province2"
+          prop="winTotal"
           label="窗口">
         </el-table-column>
       </el-table-column>
       <el-table-column label="OTA" align="center">
         <el-table-column
-          prop="province3"
+          prop="meituanTotal"
           label="美团">
         </el-table-column>
         <el-table-column
-          prop="province4"
+          prop="xiechenTotal"
           label="携程">
         </el-table-column>
         <el-table-column
-          prop="province5"
+          prop="maoyanTotal"
           label="猫眼">
         </el-table-column>
         <el-table-column
-          prop="province6"
+          prop="duoyinTotal"
           label="抖音">
         </el-table-column>
         <el-table-column
-          prop="province7"
-          label="去哪儿">
+          prop="otherTotal"
+          label="其他">
         </el-table-column>
       </el-table-column>
-      <el-table-column label="已售小计" align="center">
-        <template slot-scope="scope">
-          <span>{{ (scope.row.total - scope.row.saleTotal) >= 0 ? (scope.row.total - scope.row.saleTotal) : '' }}张</span>
-        </template>
+      <el-table-column 
+      prop="saleTotal"
+      label="已售小计">
       </el-table-column>
-      <el-table-column label="剩余" align="center">
-        <template slot-scope="scope">
-          <span>{{ (scope.row.total - scope.row.saleTotal) >= 0 ? (scope.row.total - scope.row.saleTotal) : '' }}张</span>
-        </template>
+      <el-table-column 
+      prop="noSaleTotal"
+      label="剩余">
       </el-table-column>
     </el-table>
 
@@ -144,12 +102,10 @@
 
 <script>
 
-import { performTimeCount, downTimeCountListXls } from '@/api/statistics'
+import { performTimeCount, downTimeCountListXls } from '@/api/statisticalReport/sessionInventory'
 import { exportExcel } from '@/utils/exportexcel'
-import { seatPricePageList } from '@/api/distribution/ticketMr'
 export default {
-  name: "agreement",
-  dicts: ['agreement_type'],
+  name: "sessionInventory",
   data() {
     return {
       // 遮罩层
@@ -171,8 +127,6 @@ export default {
 
       // 是否显示弹出层
       open: false,
-      // 日期范围
-      dateRange: [],
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -189,17 +143,12 @@ export default {
   },
   created() {
     this.getList();
-    this.ticketListApi();
   },
   methods: {
     /** 查询列表 */
     getList() {
       this.loading = true;
-      if(this.queryParams.time){
-        this.queryParams.performStartDate = this.queryParams.time[0];
-        this.queryParams.performEndDate = this.queryParams.time[1];
-      }
-      performTimeCount(this.addDateRange(this.queryParams, this.dateRange))
+      performTimeCount(this.addDateRange(this.queryParams))
       .then(response => {
           this.dataList = response.data.rows;
           this.total = response.data.total;
@@ -207,44 +156,10 @@ export default {
         }
       );
     },
-    /** 票务列表查询 */
-    ticketListApi() {
-      this.ticketList = []
-      seatPricePageList(this.addDateRange({pageNum: 1, pageSize: 100}))
-        .then(response => {
-          let ticketItemList = []
-          response.data.rows.forEach(item => {
-            if(ticketItemList.indexOf(item.goodsId) == -1){
-              this.ticketList.push(item);
-              ticketItemList.push(item.goodsId);
-            }
-          })
-        });
-    },
-    /** 座位类型列表 */
-    getSeatTypeList(obj) {
-      seatPricePageList(this.addDateRange({pageNum: 1, pageSize: 100, goodsId: obj.goodsId}))
-        .then(response => {
-          let ticketList = []
-          response.data.rows.forEach(item => {
-            if(ticketList.indexOf(item.seatTypeId) == -1){
-              this.seatList.push(item);
-              ticketList.push(item.seatTypeId);
-            }
-          })
-        });
-    },
     // 取消按钮
     cancel() {
       this.open = false;
     },
-    // 票务改变事件
-    goodsChangeEven() {
-      this.seatList = [];
-      this.$set(this.queryParams, 'seatTypeId', '');
-      let selectMap = {goodsId: this.queryParams.goodsId}
-      this.getSeatTypeList(selectMap);
-    },
     /** 搜索按钮操作 */
     handleQuery() {
       this.queryParams.pageNum = 1;
@@ -252,13 +167,8 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.dateRange = [];
       this.seatList = [];
-      this.$set(this.queryParams, 'time', '');
       this.$set(this.queryParams, 'performStartDate', '');
-      this.$set(this.queryParams, 'performEndDate', '');
-      this.$set(this.queryParams, 'goodsId', '');
-      this.$set(this.queryParams, 'seatTypeId', '');
       this.queryParams.pageNum = 1;
       this.handleQuery();
     },
@@ -284,7 +194,7 @@ export default {
           }
           downTimeCountListXls(postMap)
             .then((res) => {
-              exportExcel(res, '场次统计', '.xlsx');
+              exportExcel(res, '场次销售统计', '.xlsx');
               this.handleExportLoading = false;
             })
             .catch(() => {

+ 3 - 3
src/views/statistics/index.vue

@@ -50,9 +50,9 @@ export default {
       itemList: [
         // {id: 1, name: '总览统计', url: ''},
         // {id: 2, name: '渠道统计', url: ''},
-        {id: 3, name: '票务统计', hasPermi: 'session:session:list', url: 'statisticalReport/session'},
-        // {id: 4, name: '场次库存', hasPermi: 'statisticalReport:sessionInventory:list', url: 'statisticalReport/sessionInventory'},
-        // {id: 5, name: '座位库存', hasPermi: 'statisticalReport:seatInventory:list', url: 'statisticalReport/seatInventory'},
+        // {id: 3, name: '场次销售分析', hasPermi: 'session:session:list', url: 'statisticalReport/session'},
+        {id: 4, name: '场次销售统计', hasPermi: 'statisticalReport:sessionInventory:list', url: 'statisticalReport/sessionInventory'},
+        // {id: 5, name: '座位类型销售统计', hasPermi: 'statisticalReport:seatInventory:list', url: 'statisticalReport/seatInventory'},
       ]
     };
   },

+ 20 - 3
src/views/venue/performanceHallMr/mixins/selectList.js

@@ -55,9 +55,26 @@ export default {
 
         /**  批量修改   */
 
-        // 批量禁用
-        selectBatchDisable() {
-
+        // 座位状态
+        selectBatchSetaDisableFun() {
+            let listTabel = JSON.parse(JSON.stringify(this.tableDataAll))
+            for(let i=0;i<this.selectTabelList.length;i++){
+                for(let j=0;j<this.tableDataAll.length;j++){
+                    if(this.selectTabelList[i].styleCss.id == this.tableDataAll[j].styleCss.id){
+                        listTabel[j] = {
+                            ...this.tableDataAll[j],
+                            status: this.formAll.status,
+                        }
+                        break;
+                    }    
+                }
+            }
+            this.tableDataAll = JSON.parse(JSON.stringify(listTabel))
+            console.log("this.tableDataAll=====",this.tableDataAll)
+            // this.batchTableList = JSON.parse(JSON.stringify(this.tableDataAll))
+            this.formDialogVisible = false
+            this.handleQuery()
+            this.dataProcess()
         },
         //批量修改座位类型 
         selectBatchSetaTypeFun() {

+ 150 - 138
src/views/venue/performanceHallMr/model/seatManagementTable.vue

@@ -15,6 +15,11 @@
                     <span :style="{backgroundColor: item.color}"></span>
                     <span :style="{color: item.color}">{{ item.name }}</span>    
                 </div>
+                <div 
+                >
+                    <span :style="{backgroundColor: '#ccc'}"></span>
+                    <span :style="{color: '#ccc'}">{{ "不可用" }}</span>    
+                </div>
             </div>
         </div>
         <div class="sm-box">
@@ -90,9 +95,9 @@
                                 @contextmenu="(e)=>{e.preventDefault();openFormDialogVisible('singleEdit',item1)}"
                                 >
                                     <div>
-                                        <i style="line-height: 15px;">{{ item1.columnNo }}</i>
-                                        <i style="line-height: 15px;">{{ item1.name }}</i>
-                                        <i style="line-height: 15px;white-space: nowrap;">{{ item1.styleCss && item1.styleCss.sort }}</i>
+                                        <i style="line-height: 15px;"></i>
+                                        <i style="line-height: 15px;">{{ item1.name ? item1.name : '未命名' }}</i>
+                                        <i style="line-height: 15px;white-space: nowrap;">{{ item1.rowNo+ '-' +item1.columnNo }} ({{ item1.priority ? item1.priority : '-'  }})</i>
                                     </div>   
                                 </div>
                             </div>
@@ -146,16 +151,21 @@
                                         <i @click="seatSortingFun('rise')">修改名称</i>
                                     </div> -->
                                     <div class="qu-second-info-list">
-                                        <div 
-                                        class="qu-second-info-item"
-                                        :key="index"
-                                        v-for="(item,index) in currentTabelList">
-                                            <div >
-                                                <span>名称:{{ item.name }}</span>
-                                                <span>优先级:{{ item.priority }}</span>
+                                        <transition-group>
+                                            <div 
+                                            class="qu-second-info-item"
+                                            :key="index"
+                                            v-for="(item,index) in currentTabelList"
+                                            v-dragging="{item: item, list:currentTabelList}"
+                                            >
+                                                <div >
+                                                    <span>名称:{{ item.name ? item.name :'未命名' }}</span>
+                                                    <span>优先级:{{ item.priority ? item.priority : '-' }}</span>
+                                                </div>
+                                                <el-button type="primary" size="mini" @click="openFormDialogVisible('singleEdit',item)">编辑</el-button>
                                             </div>
-                                            <el-button type="primary" size="mini" @click="openFormDialogVisible('singleEdit',item)">编辑</el-button>
-                                        </div>
+                                        </transition-group>
+                                        
                                     </div>
                                 </div>                 
                             </div>
@@ -219,7 +229,7 @@
                                     </div>
                                     <div>
                                         <el-button type="primary" :disabled="multipleSelection.length==0" size="mini" @click="openFormDialogVisible('batchSetaPriority')">优先级</el-button>
-                                        <el-button type="danger" :disabled="multipleSelection.length==0" size="mini" @click="openFormDialogVisible('batchSetaDisable')">批量禁用</el-button>
+                                        <el-button type="danger" :disabled="multipleSelection.length==0" size="mini" @click="openFormDialogVisible('batchSetaDisable')">座位状态</el-button>
                                     </div>
                                 </div>
                                 <div class="qu-batch-table">
@@ -272,7 +282,7 @@
                                         <el-button type="primary" :disabled="selectTabelList.length==0" size="mini" @click="openFormDialogVisible('selectBatchSetaPriority')">优先级</el-button>
                                     </div>
                                     <div>
-                                        <el-button type="danger" :disabled="selectTabelList.length==0" size="mini" @click="openFormDialogVisible('selectBatchSetaDisable')">批量禁用</el-button>
+                                        <el-button type="danger" :disabled="selectTabelList.length==0" size="mini" @click="openFormDialogVisible('selectBatchSetaDisable')">座位状态</el-button>
                                         <el-button type="info" :disabled="selectTabelList.length==0" size="mini" @click="delSelectTabelList">清除选择</el-button>
                                     </div>
                                 </div>
@@ -370,7 +380,15 @@
                         <el-input v-model="formAll.setaPriorityNum" placeholder="等级数"></el-input>
                     </el-form-item>
                 </div>
-
+                <div v-if="['batchSetaDisable','selectBatchSetaDisable'].indexOf(formAllType) !=-1">
+                    <el-form-item label="座位状态" prop="status">
+                        <el-radio-group v-model="formAll.status">
+                            <el-radio :label="0">初始(该状态下不C端显示)</el-radio>
+                            <el-radio :label="1">可用</el-radio>
+                            <el-radio :label="2">不可用</el-radio>
+                        </el-radio-group>
+                    </el-form-item>
+                </div>
                 <!-- 单个编辑  -->
                 <div v-if="['singleEdit'].indexOf(formAllType) !=-1">
                     <el-form-item label="座位名称" prop="name">
@@ -397,12 +415,12 @@
                             <el-radio :label="2">不可用</el-radio>
                         </el-radio-group>
                     </el-form-item>
-                    <el-form-item label="是否禁用" prop="delFlag">
+                    <!-- <el-form-item label="是否禁用" prop="delFlag">
                         <el-radio-group v-model="formAll.delFlag">
                             <el-radio :label="0">禁用</el-radio>
                             <el-radio :label="1">启用</el-radio>
                         </el-radio-group>
-                    </el-form-item>
+                    </el-form-item> -->
                 </div>
             </el-form>
             <span slot="footer" class="dialog-footer">
@@ -535,7 +553,8 @@ export default {
 
         this.$dragging.$on("dragged", (result) => {
             // 将排序后的结果重新赋值
-            this.tableHeader = [].concat(JSON.parse(JSON.stringify(result.value.list)))
+            //this.tableHeader = [].concat(JSON.parse(JSON.stringify(result.value.list)))
+            this.draggingSeatSort()
         });
 
     },
@@ -552,23 +571,23 @@ export default {
             }
         },
         //初始化排序
-        initSortTable() {
-            let that = this;
-            this.sortable = new Sortable(document.getElementsByClassName('box-table')[0], {
-            animation: 150,
-            handle: '.drag-btn',
-            onEnd: (e) => {
-                // 获取排序之后的data数据
-                that.ranking_goods.splice(e.newIndex, 0, that.ranking_goods.splice(e.oldIndex, 1)[0]);
-                var newArray = that.ranking_goods.slice(0);
-                that.ranking_goods = []
-                that.$nextTick(function () {
-                that.ranking_goods = newArray
-                })
-            }
-            })
+        // initSortTable() {
+        //     let that = this;
+        //     this.sortable = new Sortable(document.getElementsByClassName('box-table')[0], {
+        //     animation: 150,
+        //     handle: '.drag-btn',
+        //     onEnd: (e) => {
+        //         // 获取排序之后的data数据
+        //         that.ranking_goods.splice(e.newIndex, 0, that.ranking_goods.splice(e.oldIndex, 1)[0]);
+        //         var newArray = that.ranking_goods.slice(0);
+        //         that.ranking_goods = []
+        //         that.$nextTick(function () {
+        //         that.ranking_goods = newArray
+        //         })
+        //     }
+        //     })
 
-        },
+        // },
 
         /**  初始化数据  */
         async initData(row,list,type){
@@ -686,8 +705,8 @@ export default {
                                 seatLabel: null,
                                 sortId: j, // 排序号码
                                 color: '#E6E6FA',// 座位类型对应的颜色
-                                delFlag: 0, // 座位是否可用
-                                priority: 9999, // 座位出票顺序  数字越小越优先
+                                //delFlag: 0, // 座位是否可用
+                                priority: '', // 座位出票顺序  数字越小越优先
                                 status: 0, //0-初始(该状态下不C端显示) 1-可用 2-不可用
                             })
                         }
@@ -724,8 +743,8 @@ export default {
                         seatLabel: null,
                         sortId: j, // 排序号码
                         color: '#E6E6FA',// 座位类型对应的颜色
-                        delFlag: 0, // 座位是否可用
-                        priority: 9999, // 座位出票顺序  数字越小越优先
+                        //delFlag: 0, // 座位是否可用
+                        priority: '', // 座位出票顺序  数字越小越优先
                         status: 0, //0-初始(该状态下不C端显示) 1-可用 2-不可用
                     })
                 }
@@ -750,8 +769,8 @@ export default {
                         seatLabel: null,
                         sortId: this.colsAll, // 排序号码
                         color: '#E6E6FA',// 座位类型对应的颜色
-                        delFlag: 0, // 座位是否可用
-                        priority: 9999, // 座位出票顺序  数字越小越优先
+                        //delFlag: 0, // 座位是否可用
+                        priority: '', // 座位出票顺序  数字越小越优先
                         status: 0, //0-初始(该状态下不C端显示) 1-可用 2-不可用
                     })
                 }
@@ -894,8 +913,13 @@ export default {
                     setaPriorityNum: null,
                 })))
             }
-            if(type == 'batchSetaDisable') { // 批量禁用
+            if(type == 'batchSetaDisable') { // 座位状态
                 this.formAllType = 'batchSetaDisable'
+                this.formDialogVisibleTitle = "批量修改座位状态"
+                this.formDialogVisible = true
+                this.$set(this,'formAll',JSON.parse(JSON.stringify({
+                    status: null,
+                })))
             }
 
             if(type == 'selectBatchSetaName') { // 座位名称
@@ -930,8 +954,13 @@ export default {
                     setaPriorityNum: null,
                 })))
             }
-            if(type == 'selectBatchSetaDisable') { // 批量禁用
+            if(type == 'selectBatchSetaDisable') { // 座位状态
                 this.formAllType = 'selectBatchSetaDisable'
+                this.formDialogVisibleTitle = "批量修改座位状态"
+                this.formDialogVisible = true
+                this.$set(this,'formAll',JSON.parse(JSON.stringify({
+                    status: null,
+                })))
             }
             if(type == 'singleEdit') { // 单个编辑
                 console.log("data===",data)
@@ -961,7 +990,11 @@ export default {
                         this.selectBatchSetaPriorityFun()
                     }else if(this.formAllType == 'singleEdit') {
                         this.singleEditFun()
-                    }   
+                    }else if(this.formAllType == 'batchSetaDisable') {
+                        this.batchSetaDisableFun()
+                    }else if(this.formAllType == 'selectBatchSetaDisable') {
+                        this.selectBatchSetaDisableFun()
+                    }  
                 } else {
                     console.log('error submit!!');
                     return false;
@@ -988,7 +1021,7 @@ export default {
                         seatLabel: seatLabel,
                         color: color,// 座位类型对应的颜色
                         status: this.formAll.status,
-                        delFlag: this.formAll.delFlag,
+                        //delFlag: this.formAll.delFlag,
                     }
                     break;
                 }    
@@ -996,9 +1029,26 @@ export default {
             this.formDialogVisible = false
             this.dataProcess()
         },
-        // 批量禁用
-        batchDisable() {
-
+        // 座位状态
+        batchSetaDisableFun() {
+            let listTabel = JSON.parse(JSON.stringify(this.tableDataAll))
+            for(let i=0;i<this.multipleSelection.length;i++){
+                for(let j=0;j<this.tableDataAll.length;j++){
+                    if(this.multipleSelection[i].styleCss.id == this.tableDataAll[j].styleCss.id){
+                        listTabel[j] = {
+                            ...this.tableDataAll[j],
+                            status: this.formAll.status,
+                        }
+                        break;
+                    }    
+                }
+            }
+            this.tableDataAll = JSON.parse(JSON.stringify(listTabel))
+            console.log("this.tableDataAll=====",this.tableDataAll)
+            // this.batchTableList = JSON.parse(JSON.stringify(this.tableDataAll))
+            this.formDialogVisible = false
+            this.handleQuery()
+            this.dataProcess()
         },
         //批量修改座位类型 
         batchSetaTypeFun() {
@@ -1190,10 +1240,56 @@ export default {
             if(type=='reversal'){
                 list.reverse()
             }
-            this.$set(this.tableData[this.currentRow-1],this.currentProperty,list)
+
+            let listTabel = JSON.parse(JSON.stringify(this.tableDataAll))
+            for(let i=0;i<list.length;i++){
+                for(let j=0;j<this.tableDataAll.length;j++){
+                    if(list[i].styleCss.id == this.tableDataAll[j].styleCss.id){
+                        listTabel[j] = {
+                            ...this.tableDataAll[j],
+                            sortId: i,
+                            styleCss: {
+                                ...this.tableDataAll[j].styleCss,
+                                sort: i,
+                            }
+                        }
+                        break;
+                    }    
+                }
+            }
+            this.tableDataAll = JSON.parse(JSON.stringify(listTabel))
+            console.log("this.tableDataAll=====",this.tableDataAll)
+            this.formDialogVisible = false
+            this.handleQuery()
+            this.dataProcess()
+            this.currentTabelList = JSON.parse(JSON.stringify(this.tableData[this.currentRow-1][this.currentProperty]))
+        },
+        // 拖动排序
+        draggingSeatSort(){
+            let list = JSON.parse(JSON.stringify(this.currentTabelList))
+            let listTabel = JSON.parse(JSON.stringify(this.tableDataAll))
+            for(let i=0;i<list.length;i++){
+                for(let j=0;j<this.tableDataAll.length;j++){
+                    if(list[i].styleCss.id == this.tableDataAll[j].styleCss.id){
+                        listTabel[j] = {
+                            ...this.tableDataAll[j],
+                            sortId: i,
+                            styleCss: {
+                                ...this.tableDataAll[j].styleCss,
+                                sort: i,
+                            }
+                        }
+                        break;
+                    }    
+                }
+            }
+            this.tableDataAll = JSON.parse(JSON.stringify(listTabel))
+            console.log("this.tableDataAll=====",this.tableDataAll)
+            this.formDialogVisible = false
+            this.handleQuery()
+            this.dataProcess()
             this.currentTabelList = JSON.parse(JSON.stringify(this.tableData[this.currentRow-1][this.currentProperty]))
         },
-
         
 
         /**  座位升序 赋值   */
@@ -1396,95 +1492,11 @@ export default {
         width: 100%;
         height: calc( 100% - 60px );
     }
-}
-
-.qu-first-box {
-    width: 100%;
-    height: 100%;
-    .qu-first-row {
-        display: flex;
-        align-items: center;
-    }
 
-    .qu-first-form {
+    ::v-deep .el-tab-pane {
         width: 100%;
-        height: 250px;
-        overflow: hidden;
-        padding-top: 10px;
+        height: 100%;
         box-sizing: border-box;
-        border-bottom: 1px solid #ccc;
-    }
-
-    .qu-first-info {
-        width: 100%;
-        height: calc( 100% - 250px );
-        overflow: hidden;
-        .qu-first-info-title {
-            width: 100%;
-            height: 25px;
-            display: flex;
-            align-items: flex-end;
-            padding-bottom: 5px;
-            span:first-child{
-                font-size: 16px;
-            }
-            span:last-child{
-                font-size: 12px;
-                margin-left: 10px;
-            }
-        }
-
-        .qu-first-info-list {
-            width: 100%;
-            height: calc( 100% - 30px );
-            box-sizing: border-box;
-            padding-right: 5px;
-            overflow: hidden;
-            overflow-y: auto;
-            .qu-first-info-item {
-                width: 100%;
-                height: 40px;
-                box-sizing: border-box;
-                border: 1px solid #ccc;
-                margin-bottom: 5px;
-                display: flex;
-                justify-content: space-between;
-                align-items: center;
-                font-size: 16px;
-                border-radius: 10px;
-                >span {
-                    width: 100%;
-                    height: 100%;
-                    display: flex;
-                    align-items: center;
-                    padding: 0 20px;
-                    font-weight: 600;
-                }
-                >div {
-                    display: flex;
-                    span {
-                        display: flex;
-                        padding: 0 10px;
-                        height: 100%;
-                        align-items: center;
-                        font-size: 12px;
-                        white-space: nowrap;
-                    }
-                    span:first-child {
-                        color: #409eff;
-                    }
-                    span:last-child {
-                        color: #f56c6c;
-                    }
-                }
-            }
-        }
-        .qu-first-info-list::-webkit-scrollbar {
-            width: 2px;
-        }
-        .qu-first-info-list::-webkit-scrollbar-track {
-            background-color: #ccc;
-        }
     }
 }
 
@@ -1566,7 +1578,7 @@ export default {
         }
         .qu-second-info-list {
             width: 100%;
-            height: calc( 100% - 100px );
+            height: calc( 100% - 70px );
             box-sizing: border-box;
             padding-right: 5px;
             overflow: hidden;
@@ -1644,7 +1656,7 @@ export default {
         }
     }
     .qu-batch-table {
-        height: calc( 100% - 250px );
+        height: calc( 100% - 210px );
         box-sizing: border-box;
     }
 }
@@ -1673,7 +1685,7 @@ export default {
         }
     }
     .qu-select-table {
-        height: calc( 100% - 170px );
+        height: calc( 100% - 120px );
         box-sizing: border-box;
     }
 }