Browse Source

提交票务销售代码

shipeng 4 months ago
parent
commit
d27548bb23

+ 2 - 14
src/views/windowTicketSales/model/changePerform.vue

@@ -31,24 +31,15 @@
 
 <script>
 import {
-  querySeatList,
-  merchantPerformTimeList,
   merchantPerformTimeListNew,
   merchantTheatreAuditoriumList,
   goodsPageList,
-  getGoodsPerformApi,
 } from '@/api/windowTicketSales/ticketingSales'
 import moment from "moment"
 import { pageList as getSeatType } from '@/api/seatTypeMr/seatTypeMr'
 // import selectListMixin from "./mixins/selectList"
 export default {
   name: "TicketSales",
-  // props: {
-  //   queryForm: {
-  //     type: Object,
-  //     required: true
-  //   }
-  // },
   components: {
   },
   // mixins: [selectListMixin],
@@ -265,7 +256,7 @@ export default {
       this.merchantPerformTimeListS.forEach((item, index) => {
         if (item.id == value) {
           this.performId = item.performId
-          console.log("value==this.performId", value)
+          // console.log("value==this.performId", value)
         }
       })
     },
@@ -309,12 +300,9 @@ export default {
     handleSave() {
       this.$refs.queryForm.validate(async (valid) => {
         if (valid) {
-          console.log(this.merchantPerformTimeListS, this.goodsPageListS,'666');
-          console.log(this.queryForm,'777');
+          // console.log(this.queryForm,'777');
           this.$emit('getSeatListFun', this.queryForm)
           this.isOpen = false;
-          // await this.getGoodsPerformFun(this.queryForm.goodsId);
-          // this.querySeatListFun(true);
         } else {
           console.log('error submit!!', valid);
           return false;

+ 116 - 158
src/views/windowTicketSales/model/ticketInfo.vue

@@ -88,7 +88,7 @@
       <div>
         <el-form :model="ruleForm" :rules="rules" ref="ruleForm11" label-width="100px" class="demo-ruleForm"
           size="mini">
-            <!-- <el-form-item label="用户来源 :" prop="source">
+          <!-- <el-form-item label="用户来源 :" prop="source">
               <el-radio-group @input="selectMarketTeamBySourceFun" v-model="ruleForm.source">
                 <el-radio label="7">窗口</el-radio>
                 <el-radio label="10">美团</el-radio>
@@ -104,8 +104,7 @@
             {{ viewerList.length }}人
             <el-button type="danger" @click="handleRealName" style="margin-left: 30px;">实名</el-button>
           </el-form-item>
-          <el-form-item v-if="ruleForm.source && ruleForm.source == 16" label="备注 :"
-            prop="sourceRemark">
+          <el-form-item v-if="ruleForm.source && ruleForm.source == 16" label="备注 :" prop="sourceRemark">
             <el-input style="width: 90%;" v-model="ruleForm.sourceRemark"></el-input>
           </el-form-item>
           <el-form-item v-if="ruleForm.source && ruleForm.source != 7" label="核销码/订单码" prop="orderIdOrQrCode">
@@ -125,10 +124,11 @@
           </el-form-item>
           <div v-show="ifShow">
             <el-form-item label="应收金额 :">
-            ¥{{ moneyAll }}元
+              ¥{{ moneyAll }}元
             </el-form-item>
             <!-- <el-form-item label="找零计算(注:只用于找零不提交数据 找零金额 = 收到金额 - 实收金额)" v-if="ruleForm.paymentType == 2 || ruleForm.paymentType == 3" label-width="480px"></el-form-item> -->
-            <el-form-item v-if="ruleForm.paymentType == 2 || ruleForm.paymentType == 3" label="收取现金 :" prop="realPrice_1">
+            <el-form-item v-if="ruleForm.paymentType == 2 || ruleForm.paymentType == 3" label="收取现金 :"
+              prop="realPrice_1">
               <el-input @input="setRealPrice_1" style="width: 90%;" v-model="ruleForm.realPrice_1"></el-input>
               <span>元</span>
             </el-form-item>
@@ -152,58 +152,6 @@
         </el-form>
       </div>
       <!--  支付过程 控制  -->
-      <div v-if="false" class="increase-viewers-pay-status">
-        <div class="increase-viewers-pay-status-info" v-if="!loading">
-          <span style="font-weight: 600;font-size: 20px;">提示</span>
-          <span style="padding: 10px 0;">
-            {{ payStatus == 1 ? '生成订单失败!!!' :
-              payStatus == 2 ? '生成订单生成成功,请点击调取扫码盒子' :
-                payStatus == 4 ? '扫码支付失败!!!' :
-                  payStatus == 5 ? '请出示付款码!!!' :
-                    payStatus == 5.5 ? '扫码成功,支付中...' :
-                      payStatus == 5.6 ? '扫码成功,支付中...' :
-                        payStatus == 6 ? '连接扫码器失败!!!' :
-                          payStatus == 7 ? '用户支付失败或未支付,请重新连接支付!!!' :
-                            payStatus == 8 ? '用户支付成功,请点击打印票!!!' :
-                              payStatus == 9 ? '支付超时!!!' :
-                                payStatus == 10 ? '订单已关闭,请重新选择座位,再购买!!!' :
-                                  payStatus == 3 ? '现金支付记录入库失败,请重新提交' : '未知状态' }}
-          </span>
-          <!-- 重新生成订单 1  -->
-          <div v-if="payStatus == 1" style="display: flex;">
-            <el-button @click="payStatus = null" type="success">修改信息</el-button>
-            <el-button @click="orderInfoSubmitFun()" style="margin-left: 20px;" type="primary">重新生成订单</el-button>
-          </div>
-          <!-- 扫码支付 2 -->
-          <el-button v-if="payStatus == 2" @click="vbar_open(orderId)" type="success">扫码支付</el-button>
-          <!-- 扫码支付 4 -->
-          <el-button v-if="payStatus == 4" @click="vbar_open(orderId)" type="success">重新扫码支付</el-button>
-          <!-- 重新支付 3 -->
-          <el-button v-if="payStatus == 3" @click="gotoCashPayFun(orderId)" type="success">重新提交入库</el-button>
-          <!-- 重新支付 6  7 -->
-          <el-button v-if="payStatus == 6 || payStatus == 7" @click="vbar_open(orderId)"
-            type="success">重新连接扫码支付</el-button>
-          <!-- 打印 8  -->
-          <div v-if="payStatus == 8">
-            <el-select v-model="printListId" placeholder="选择打印机">
-              <el-option :label="item.deviceName" :key="item.id" :value="item.id"
-                v-for="(item, index) in printList"></el-option>
-            </el-select>
-            <el-button style="margin-left: 15px" @click="print" type="success">打印门票</el-button>
-            <!-- <el-button style="margin-left: 15px" @click="goTicketingCollections" type="success">跳转取票界面</el-button> -->
-          </div>
-          <!-- 支付超时 9  -->
-          <div v-if="payStatus == 9">
-            <!-- <el-button @click="print" type="danger">取消支付</el-button> -->
-            <el-button @click="orderInfoSubmitFun()" type="primary">重新扫码</el-button>
-          </div>
-          <!-- 订单被关闭 10  -->
-          <div v-if="payStatus == 10">
-            <!-- <el-button @click="print" type="danger">取消支付</el-button> -->
-            <el-button @click="handleClose()" type="primary">关闭</el-button>
-          </div>
-        </div>
-      </div>
 
     </div>
 
@@ -214,91 +162,95 @@
     </span> -->
 
     <!-- 添加 观影人员实名 -->
-    <el-dialog 
-      title="观影人员实名" 
-      modal-append-to-body 
-      :close-on-click-modal="false" 
-      :visible.sync="isVisible" 
-      width="80%"
-    >
-      <el-table :data="viewerList" border style="width: 100%">
-        <el-table-column label="序号" type="index" width="50">
-        </el-table-column>
-        <el-table-column label="姓名" width="180">
-          <template slot-scope="scope">
-            <div>
-              <span v-if="actionIndex != scope.row.id">{{ scope.row.name }}</span>
-              <el-input size="mini" v-else v-model="tableForm.name" placeholder="请输入姓名"></el-input>
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column label="身份证号" width="250">
-          <template slot-scope="scope">
-            <div>
-              <span v-if="actionIndex != scope.row.id">{{ scope.row.idcard }}</span>
-              <el-input size="mini" v-else v-model="tableForm.idcard" placeholder="请输入身份证号" clearable
-                style="width: 230px;" @keyup.enter.native="handleQuery">
-                <el-button slot="append" :loading="idcardLoading" size="mini" type="primary" @click="readCert">{{
-                  idcardLoading ? '识别中' : '识别' }}</el-button>
-              </el-input>
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column label="座位类型">
-          <template slot-scope="scope">
-            <span>{{ scope.row.seatTypeName }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="date" label="座位号">
-          <template slot-scope="scope">
-            <span>{{ scope.row.seatName }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column prop="date" label="价格(元)">
-          <template slot-scope="scope">
-            <span>{{ scope.row.salePrice }}</span>
-          </template>
-        </el-table-column>
-        <el-table-column label="人员类别" width="140">
-          <template slot-scope="scope">
-            <div>
-              <dict-tag v-if="actionIndex != scope.row.id" :options="dict.type.personnel_type"
-                :value="scope.row.identity" />
-              <el-select size="mini" v-else v-model="tableForm.identity" placeholder="请选择人员类别" clearable
-                style="width: 100%">
-                <el-option v-for="dict in dict.type.personnel_type" :key="dict.value" :label="dict.label"
-                  :value="dict.value" />
-              </el-select>
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column label="应收金额(元)">
-          <template slot-scope="scope">
-            <span v-if="(scope.$index != 0 && oneMany == 1 && personnelNum != 0)">{{ scope.row.realPrice }}</span>
-            <div v-else>
-              <span v-if="actionIndex != scope.row.id">{{ scope.row.realPrice }}</span>
-              <el-input-number size="mini" style="width: 120px;" v-else v-model="tableForm.realPrice"
-                controls-position="right" label="请输入应收金额(元)"></el-input-number>
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column label="备注" width="180">
-          <template slot-scope="scope">
-            <div>
-              <span v-if="actionIndex != scope.row.id">{{ scope.row.remark }}</span>
-              <el-input size="mini" v-else v-model="tableForm.remark" placeholder="请输入备注"></el-input>
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column label="操作" width="80">
-          <template slot-scope="scope" v-if="(scope.$index != 0 && oneMany != 2) || scope.$index == 0">
-            <el-button size="mini" type="success" :loading="factorAuthLoading" v-if="actionIndex == scope.row.id"
-              @click="handleSeva(scope.$index, scope.row)">{{ factorAuthLoading ? '保存中....' : '保存' }}</el-button>
-            <el-button :disabled="!!actionIndex" size="mini" type="primary" v-if="actionIndex != scope.row.id"
-              @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
+    <el-dialog title="观影人员实名" modal-append-to-body :close-on-click-modal="false" :visible.sync="isVisible" width="85%">
+      <el-form :model="ValidateForm" ref="validateForm" label-width="90px">
+        <el-form-item prop="type" label="证件类型:">
+          <el-select v-model="ValidateForm.type" placeholder="请选择活动区域">
+            <el-option label="身份证" value="sfz"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="观影人员:">
+          <el-table :data="viewerList" border style="width: 100%">
+            <el-table-column label="序号" type="index" width="50">
+            </el-table-column>
+            <el-table-column label="姓名" width="170">
+              <template slot-scope="scope">
+                <div>
+                  <span v-if="actionIndex != scope.row.id">{{ scope.row.name }}</span>
+                  <el-input size="mini" v-else v-model="tableForm.name" placeholder="请输入姓名"></el-input>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="身份证号" width="250">
+              <template slot-scope="scope">
+                <div>
+                  <span v-if="actionIndex != scope.row.id">{{ scope.row.idcard }}</span>
+                  <el-input size="mini" v-else v-model="tableForm.idcard" placeholder="请输入身份证号" clearable
+                    style="width: 230px;" @keyup.enter.native="handleQuery">
+                    <el-button slot="append" :loading="idcardLoading" size="mini" type="primary" @click="readCert">{{
+                      idcardLoading ? '识别中' : '识别' }}</el-button>
+                  </el-input>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="座位类型">
+              <template slot-scope="scope">
+                <span>{{ scope.row.seatTypeName }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="date" label="座位号">
+              <template slot-scope="scope">
+                <span>{{ scope.row.seatName }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column prop="date" label="价格(元)">
+              <template slot-scope="scope">
+                <span>{{ scope.row.salePrice }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="人员类别" width="130">
+              <template slot-scope="scope">
+                <div>
+                  <dict-tag v-if="actionIndex != scope.row.id" :options="dict.type.personnel_type"
+                    :value="scope.row.identity" />
+                  <el-select size="mini" v-else v-model="tableForm.identity" placeholder="请选择人员类别" clearable
+                    style="width: 100%">
+                    <el-option v-for="dict in dict.type.personnel_type" :key="dict.value" :label="dict.label"
+                      :value="dict.value" />
+                  </el-select>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="应收金额(元)" width="130">
+              <template slot-scope="scope">
+                <span v-if="(scope.$index != 0 && oneMany == 1 && personnelNum != 0)">{{ scope.row.realPrice }}</span>
+                <div v-else>
+                  <span v-if="actionIndex != scope.row.id">{{ scope.row.realPrice }}</span>
+                  <el-input-number size="mini" style="width: 100%;" v-else v-model="tableForm.realPrice"
+                    controls-position="right" label="请输入应收金额(元)"></el-input-number>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="备注" width="170">
+              <template slot-scope="scope">
+                <div>
+                  <span v-if="actionIndex != scope.row.id">{{ scope.row.remark }}</span>
+                  <el-input size="mini" v-else v-model="tableForm.remark" placeholder="请输入备注"></el-input>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" width="80">
+              <template slot-scope="scope" v-if="(scope.$index != 0 && oneMany != 2) || scope.$index == 0">
+                <el-button size="mini" type="success" :loading="factorAuthLoading" v-if="actionIndex == scope.row.id"
+                  @click="handleSeva(scope.$index, scope.row)">{{ factorAuthLoading ? '保存中....' : '保存' }}</el-button>
+                <el-button :disabled="!!actionIndex" size="mini" type="primary" v-if="actionIndex != scope.row.id"
+                  @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-form-item>
+      </el-form>
+
       <span slot="footer" class="dialog-footer">
         <el-button :disabled="isFlag" type="primary" @click="handleSubmit">保 存</el-button>
         <el-button @click="isVisible = false">取 消</el-button>
@@ -306,12 +258,8 @@
     </el-dialog>
 
     <!-- 订单结算 提示 -->
-    <el-dialog title="提示!" 
-      modal-append-to-body 
-      :show-close="false"
-      :close-on-click-modal="false"
-      :visible.sync="isShow" width="45%"
-    >
+    <el-dialog title="提示!" modal-append-to-body :show-close="false" :close-on-click-modal="false" :visible.sync="isShow"
+      width="45%">
       <!--  支付过程 控制  -->
       <div v-loading="loading" :element-loading-text="loadingText" element-loading-spinner="el-icon-loading"
         element-loading-background="rgba(0, 0, 0, 0.8)" class="increase-viewers-box1">
@@ -353,7 +301,7 @@
                   v-for="(item, index) in printList"></el-option>
               </el-select>
               <el-button style="margin-left: 15px" @click="print" type="success">打印门票</el-button>
-              <el-button style="margin-left: 15px" @click="goTicketingCollections" type="info">取消</el-button>
+              <el-button style="margin-left: 15px" @click="goTicketingPage" type="info">取消</el-button>
               <!-- <el-button style="margin-left: 15px" @click="goTicketingCollections" type="success">跳转取票界面</el-button> -->
             </div>
             <!-- 支付超时 9  -->
@@ -406,6 +354,10 @@ export default {
       actionIndex: false,
       isVisible: false, // 观影人员实名
       isShow: false, // 结算提示
+      ValidateForm: {
+        type: 'sfz',
+        list: [],
+      },
       tableForm: {
         name: '', // 姓名
         mobile: '', // 电话
@@ -434,7 +386,7 @@ export default {
         realPrice: '', // 实收金额
       },
       viewerList: [], // 观影人列表
-      ifShow:false,
+      ifShow: false,
       rules: {
         source: [
           { required: true, message: '请选择用户来源', trigger: ['blur', 'change'] },
@@ -496,7 +448,7 @@ export default {
   computed: {
     isFlag() {
       let flag = true
-      if(this.viewerList.length >0 ) {
+      if (this.viewerList.length > 0) {
         flag = this.checkViewerList();
       }
       return flag;
@@ -529,13 +481,13 @@ export default {
           purchaser: {},// 购票人信息
           viewerList: [], // 观影人列表
           orderIdOrQrCode: '',
-          paymentType: params.source == '7' ? '1':'2', // 支付方式
+          paymentType: params.source == '7' ? '1' : '2', // 支付方式
           small: '',// 实收金额
           realPrice: '', // 实收金额
           remark: '', // 订单备注
           sourceRemark: '', //  来源备注
         }
-        console.log(this.ruleForm,'this.ruleForm');
+        console.log(this.ruleForm, 'this.ruleForm');
         this.payStatus = null
         this.orderId = null
         this.websocket_connected = false
@@ -552,9 +504,9 @@ export default {
         //     seatTypeName: params.seatTypeName,
         // }
         let listCopy = []
-        if(list.length > 0) {
-          console.log(list,'list11');
-          
+        if (list.length > 0) {
+          console.log(list, 'list11');
+
           this.ifShow = true
           list.forEach((item, index) => {
             listCopy.push({
@@ -574,12 +526,12 @@ export default {
             })
           })
         } else {
-           console.log(list,'list12221');
+          console.log(list, 'list12221');
           this.ifShow = false
         }
         //this.goodsList = 
         this.viewerList = JSON.parse(JSON.stringify(listCopy))
-        if(list.length > 0) {
+        if (list.length > 0) {
           this.setMoneyAll()
         } else {
           this.moneyAll = ''
@@ -1048,6 +1000,11 @@ export default {
         }
       })
     },
+    // 跳转 到 售票页面
+    goTicketingPage() {
+      const obj = { path: "/window/ticket" };
+      this.$tab.closeOpenPage(obj);
+    },
 
     /**  查看支付 状态  */
     async payQueryFun(orderId) {
@@ -1390,6 +1347,7 @@ export default {
   overflow-y: auto;
   // position: relative;
 }
+
 .increase-viewers-box1 {
   width: 100%;
   height: 400px;

+ 372 - 0
src/views/windowTicketSales/ticket.vue

@@ -0,0 +1,372 @@
+<template>
+  <div class="app-container app-container-me">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" :rules="rules" label-width="80px">
+      <el-form-item label="演出厅" prop="auditoriumId">
+        <el-select v-model="queryParams.auditoriumId" placeholder="演出厅" clearable style="width: 100%"
+          @change="changeTime($event, 'auditoriumId')">
+          <el-option v-for="dict in merchantTheatreAuditoriumListS" :key="dict.id" :label="dict.name"
+            :value="dict.id" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="场次时间" prop="performDate">
+        <el-date-picker type="date" placeholder="选择场次时间" v-model="queryParams.performDate"
+          @change="changeTime($event, 'performDate')" value-format="yyyy-MM-dd"></el-date-picker>
+      </el-form-item>
+      <el-form-item label="场次" prop="timeId">
+        <el-select 
+          v-model="queryParams.timeId" 
+          placeholder="场次" 
+          clearable style="width: 100%"
+        >
+          <el-option v-for="dict in merchantPerformTimeListS" :key="dict.id"
+            :label="dict.timeSnapshot + '(' + dict.performTimeStart + '-' + dict.performTimeEnd + ')'" :value="dict.id" />
+        </el-select>
+      </el-form-item>
+      <!-- <el-form-item label="票种" prop="goodsId">
+        <el-select v-model="queryParams.goodsId" placeholder="请选择票种" clearable style="width: 100%"
+          @change="changeTime($event, 'goodsId')">
+          <el-option v-for="dict in goodsPageListS" :key="dict.goodsId" :label="dict.goodsName" :value="dict.goodsId"
+            :disabled="dict.status == 1" />
+        </el-select>
+      </el-form-item> -->
+      <el-form-item>
+        <el-button :loading="loading" type="primary" icon="el-icon-search" size="mini"
+          @click="handleQuery">搜索</el-button>
+        <el-button :loading="loading" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+    <el-divider></el-divider>
+    <div class="row-warp">
+      <div style="margin: 30px 0; font-size: 16px;">
+        <span>用户来源:</span>
+         <el-radio-group v-model="queryParams.source">
+           <el-radio label="7">窗口</el-radio>
+           <el-radio label="10">美团</el-radio>
+           <!-- <el-radio label="11">携程</el-radio> -->
+           <el-radio label="13">抖音</el-radio>
+           <!-- <el-radio label="14">猫眼</el-radio> -->
+           <el-radio label="18">大麦</el-radio>
+           <el-radio label="19">飞猪</el-radio>
+           <!-- <el-radio label="15">去哪儿</el-radio> -->
+           <el-radio label="16">其他</el-radio>
+         </el-radio-group>
+      </div>
+      <div class="ticket-box" v-if="goodsPageListS.length != 0">
+        <div
+          v-for="(item, index) in goodsPageListS"
+          :key="item.goodsId" 
+          :class="['item-box', { 'selected': queryParams.goodsId === item.goodsId }]"
+          @click="selectItem(item)"
+        >
+          <p>{{ item.goodsName }}</p>
+        </div>
+      </div>
+      <el-empty v-else :image-size="200"></el-empty>
+    </div>
+    <el-button class="btnClass" type="danger" @click="handleBuyTicket">确 定</el-button>
+    
+  </div>
+</template>
+
+<script>
+import {
+  merchantPerformTimeListNew,
+  merchantTheatreAuditoriumList,
+  goodsPageList,
+} from '@/api/windowTicketSales/ticketingSales'
+//import increaseViewers from "./model/increaseViewers"
+// import increaseViewers from "./model/increaseViewersNew"
+import moment from "moment"
+import { pageList as getSeatType } from '@/api/seatTypeMr/seatTypeMr'
+// import selectListMixin from "./mixins/selectList"
+// import LockSeat from './model/lockSeat.vue'
+export default {
+  name: "Ticket",
+  // mixins: [selectListMixin],
+  dicts: ['channel_type'],
+  data() {
+    return {
+      // 遮罩层
+      loading: false,
+      // 查询参数
+      queryParams: {
+        timeId: '',
+        performDate: null,
+        auditoriumId: null,
+        goodsId: null,
+        source: '7',
+      },
+      rules: {
+        auditoriumId: [
+          { required: true, message: '请选择演出厅', trigger: ['blur', 'change'] }
+        ],
+        performDate: [
+          { required: true, message: '请选择时间', trigger: ['blur', 'change'] }
+        ],
+        timeId: [
+          { required: true, message: '请选择场次', trigger: ['blur', 'change'] }
+        ],
+        // goodsId: [
+        //   { required: true, message: '请选择票种', trigger: ['blur', 'change'] }
+        // ],
+      },
+      merchantTheatreAuditoriumListS: [], // 演出厅
+      merchantPerformTimeListS: [], // 场次
+      goodsPageListS: [], // 票务
+      // goodsPageListSAll: [], // 票务全部
+      // setList: [],
+      // seatMapListKey: [], // key
+      // seatSelectList: [],
+
+
+      performId: '',// 剧目ID
+      
+      stockType: null,
+    };
+  },
+  created() {
+    this.merchantTheatreAuditoriumListFun()
+    // this.goodsPageListFun()
+    // this.getSeatTypeList()
+  },
+  mounted() {
+    this.$set(this.queryParams, 'performDate', moment().format("yyyy-MM-DD"))
+  },
+  methods: {
+    moment,
+    selectItem(item) {
+      this.queryParams.goodsId = item.goodsId;
+    },
+    // 跳转到票务销售
+    handleBuyTicket() {
+      if(!this.queryParams.timeId) {
+        this.$message.info('请先选择场次查询需要购买的票种!');
+        return
+      }
+      if(!this.queryParams.goodsId) {
+        this.$message.info('请先选择需要购买的票种!');
+        return
+      }
+      this.$router.push({ name: 'TicketSales', params: this.queryParams });
+    },
+    setChanneltype(key) {
+      let srt = ''
+      this.dict.type.channel_type.forEach((item, index) => {
+        if (key == item.value) {
+          srt = item.label
+        }
+      })
+      return srt
+    },
+    /**  票务信息  */
+    async goodsPageListFun() {
+      try {
+        let res = await goodsPageList({
+          pageNum: 1,
+          pageSize: 999,
+          classifyId: 1,
+          goodsType: 2,
+        })
+        if (res.code == 200) {
+          this.goodsPageListSAll = res.data.rows
+          // let list = []
+          // res.data.rows.forEach((item,index)=>{
+          //     if(item.status != 1) {
+          //         list.push(item)
+          //     }
+          // })
+          // this.goodsPageListS = list
+        }
+      } catch (error) {
+
+      }
+    },
+    /**  获取演出厅  */
+    async merchantTheatreAuditoriumListFun() {
+      try {
+        let res = await merchantTheatreAuditoriumList({
+          pageNum: 1,
+          pageSize: 999
+        })
+        if (res.code == 200) {
+          this.merchantTheatreAuditoriumListS = res.data.rows
+          if (this.merchantTheatreAuditoriumListS.length > 0) {
+            this.$set(this.queryParams, 'auditoriumId', this.merchantTheatreAuditoriumListS[0].id)
+            this.changeTime(this.queryParams.auditoriumId, 'auditoriumId')
+          }
+        }
+      } catch (error) {
+
+      }
+    },
+    /**  获取场次  */
+    async merchantPerformTimeListFun() {
+      try {
+        let param = JSON.parse(JSON.stringify(this.queryParams));
+        param.status = 1;
+        let res = await merchantPerformTimeListNew(param)
+        if (res.code == 200) {
+          // console.log('merchantPerformTimeListS', res.data.rows);
+          this.merchantPerformTimeListS = res.data.list
+        }
+      } catch (error) {
+
+      }
+    },
+    
+    /**  选择场次时间  */
+    changeTime(value, type) {
+      if (type == 'timeId') {
+        this.$set(this.queryParams, 'goodsId', '')
+        this.stockType = null
+        if (value) {
+          let flog = false
+          let list2 = []
+          this.merchantPerformTimeListS.forEach((item, index) => {
+            if (item.id == value) {
+              flog = true
+              list2 = item.goodsList
+              this.stockType = item.stockType
+            }
+          })
+          this.goodsPageListS = []
+          setTimeout(() => {
+            this.goodsPageListS = list2
+          }, 500)
+
+        } else {
+          this.goodsPageListS = []
+        }
+      }
+      this.changeTimeCheck(value, type)
+    },
+    /**  选择场次时间  */
+    async changeTimeCheck(value, type) {
+      if (this.queryParams && this.queryParams.timeId && type != 'timeId' && type != 'goodsId') {
+        // console.log('sdfsdfsdf', this.queryParams)
+        this.$set(this.queryParams, 'timeId', '')
+        this.$set(this.queryParams, 'goodsId', '')
+        this.merchantPerformTimeListS = []
+        this.goodsPageListS = []
+      }
+      if (this.queryParams.auditoriumId && this.queryParams.performDate && type != 'timeId' && type != 'goodsId') {
+        //  获取场次
+        this.merchantPerformTimeListFun()
+      }
+      if (type == 'goodsId') {
+        //this.$refs.queryForm.clearValidate("goodsId")
+        if (value) {
+          // console.log("dsfsdfdsfds===", value)
+          // await this.getGoodsPerformFun(value);
+
+          this.handleQuery()
+        }
+      } else {
+       
+      }
+      this.performId = ''
+      // this.seatSelectList = []
+      this.seatList = []
+      // this.handleQuery()
+
+    },
+    /**  设置 场次 对应得剧目ID */
+    changePerformId(value) {
+      this.performId = ''
+      this.merchantPerformTimeListS.forEach((item, index) => {
+        if (item.id == value) {
+          this.performId = item.performId
+        }
+      })
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.$refs.queryForm.validate((valid) => {
+        if (valid) {
+          // this.querySeatListFun(true);
+          this.$set(this.queryParams, 'goodsId', '')
+          let list2 = []
+          this.merchantPerformTimeListS.forEach((item, index) => {
+            if (item.id == this.queryParams.timeId) {
+              list2 = item.goodsList
+            }
+          })
+          this.goodsPageListS = []
+          setTimeout(() => {
+            this.goodsPageListS = list2
+          }, 500)
+        } else {
+          console.log('error submit!!', valid);
+          return false;
+        }
+      });
+
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.$refs.queryForm.resetFields()
+      this.performId = ''
+      // this.seatSelectList = []
+      // this.seatMapList = {}
+      this.seatList = []
+      this.handleQuery();
+
+    },
+    
+    
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.app-container-me {
+  width: 100%;
+  height: calc(100vh -120px);
+  .row-warp {
+    width: 100%;
+    height: 100%;
+    margin: 30px 15px;
+    .ticket-box {
+      display: flex;
+      flex-wrap: wrap;
+      gap: 20px;  
+      margin-top: 50px;
+      .item-box {
+        flex: 0 0 calc(20% - 20px);
+        height: 150px;
+        background-color: #da4328;
+        color: #fff;
+        font-size: 18px;
+        border-radius: 10px;
+        padding: 20px;
+        box-sizing: border-box;
+        cursor: pointer;        /* 显示手指图标 */
+        transition: all 0.3s ease; /* 添加动画过渡 */
+        box-shadow: 0 2px 5px rgba(0,0,0,0); /* 默认无阴影 */
+        p {
+          margin: 15px 0;
+        }
+      }
+      .item-box:hover {
+        transform: scale(1.05);
+        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); /* 添加阴影 */
+      }
+      .selected {
+        border-width: 3px;
+        border-style: solid;
+        border-color: #649df3;
+        box-shadow: 0 0 0 2px rgba(72, 137, 241, 0.3);
+      }
+    }
+    
+  }
+  .btnClass {
+    width: 100px;
+    height: 40px;
+    position: fixed;
+    right: 40px;
+    bottom: 40px;
+  }
+}
+
+</style>