|  | @@ -1,14 +1,20 @@
 | 
	
		
			
				|  |  |  <template>
 | 
	
		
			
				|  |  |      <div class="sm">
 | 
	
		
			
				|  |  | -        <div style="width: 1300px;">
 | 
	
		
			
				|  |  | +        <div class="sm-box-top-tool">
 | 
	
		
			
				|  |  |              <div style="display: flex;align-items: center;">
 | 
	
		
			
				|  |  |                  <span style="margin-right: 5px;font-size: 14px;">放大/缩小:</span> 
 | 
	
		
			
				|  |  |                  <div style="width: 100px;">
 | 
	
		
			
				|  |  |                      <el-slider input-size="mini" v-model="whNum" :min="16" :max="100"></el-slider>
 | 
	
		
			
				|  |  |                  </div>
 | 
	
		
			
				|  |  |              </div>
 | 
	
		
			
				|  |  | -            <div>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +            <div class="sm-box-top-tool-legend">
 | 
	
		
			
				|  |  | +                <div 
 | 
	
		
			
				|  |  | +                :key="item.id" 
 | 
	
		
			
				|  |  | +                v-for="(item,index) in seatTypeList"
 | 
	
		
			
				|  |  | +                >
 | 
	
		
			
				|  |  | +                    <span :style="{backgroundColor: item.color}"></span>
 | 
	
		
			
				|  |  | +                    <span :style="{color: item.color}">{{ item.name }}</span>    
 | 
	
		
			
				|  |  | +                </div>
 | 
	
		
			
				|  |  |              </div>
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |          <div class="sm-box">
 | 
	
	
		
			
				|  | @@ -53,7 +59,7 @@
 | 
	
		
			
				|  |  |                          v-for="(item,index) in tableHeader"
 | 
	
		
			
				|  |  |                          :prop="item.key"
 | 
	
		
			
				|  |  |                          :label="item.title"
 | 
	
		
			
				|  |  | -                        :width="((whNum+7.5)*item.length)+'px'"
 | 
	
		
			
				|  |  | +                        :width="((width*(whNum/100)+7.5)*item.length)+'px'"
 | 
	
		
			
				|  |  |                          align="center"
 | 
	
		
			
				|  |  |                          >
 | 
	
		
			
				|  |  |                          <template slot-scope="scope">
 | 
	
	
		
			
				|  | @@ -69,7 +75,7 @@
 | 
	
		
			
				|  |  |                                      <div>
 | 
	
		
			
				|  |  |                                          <i style="line-height: 15px;">{{ item1.columnNo }}</i>
 | 
	
		
			
				|  |  |                                          <i style="line-height: 15px;">{{ item1.name }}</i>
 | 
	
		
			
				|  |  | -                                        <i style="line-height: 15px;">vip</i>
 | 
	
		
			
				|  |  | +                                        <i style="line-height: 15px;white-space: nowrap;">{{ item1.styleCss && item1.styleCss.sort }}</i>
 | 
	
		
			
				|  |  |                                      </div>   
 | 
	
		
			
				|  |  |                                  </div>
 | 
	
		
			
				|  |  |                              </div>
 | 
	
	
		
			
				|  | @@ -93,11 +99,13 @@
 | 
	
		
			
				|  |  |                  v-if="activeName == 'first'"
 | 
	
		
			
				|  |  |                  class="qu-first-box">
 | 
	
		
			
				|  |  |                      <div class="qu-first-form">
 | 
	
		
			
				|  |  | -                        <el-form :model="ruleForm" size="mini" :rules="rules" ref="ruleFormRegion" label-width="100px" class="demo-ruleForm">
 | 
	
		
			
				|  |  | +                        <el-form :model="ruleForm" size="mini" :rules="rules" ref="ruleFormRegion" label-width="110px" class="demo-ruleForm">
 | 
	
		
			
				|  |  |                              <el-form-item label="座位总排数">
 | 
	
		
			
				|  |  |                                  <el-input v-model="rowAll">
 | 
	
		
			
				|  |  |                                      <el-button slot="append" @click="createTableList">创建排数</el-button>
 | 
	
		
			
				|  |  |                                  </el-input>
 | 
	
		
			
				|  |  | +                            </el-form-item><el-form-item label="单排最大座位数">
 | 
	
		
			
				|  |  | +                                <span>{{ colsAll }}</span>
 | 
	
		
			
				|  |  |                              </el-form-item>
 | 
	
		
			
				|  |  |                              <el-form-item label="区域名称" prop="name">
 | 
	
		
			
				|  |  |                                  <el-input v-model="ruleForm.name"></el-input>
 | 
	
	
		
			
				|  | @@ -155,10 +163,17 @@
 | 
	
		
			
				|  |  |                                      <el-radio :label="2">批量</el-radio>
 | 
	
		
			
				|  |  |                                  </el-radio-group>
 | 
	
		
			
				|  |  |                              </el-form-item>
 | 
	
		
			
				|  |  | +                            <el-form-item label="座位号" prop="seatParity">
 | 
	
		
			
				|  |  | +                                <el-radio-group v-model="ruleForm1.seatParity">
 | 
	
		
			
				|  |  | +                                    <el-radio :label="1">奇偶列</el-radio>
 | 
	
		
			
				|  |  | +                                    <el-radio :label="2">奇数列</el-radio>
 | 
	
		
			
				|  |  | +                                    <el-radio :label="3">偶数列</el-radio>
 | 
	
		
			
				|  |  | +                                </el-radio-group>
 | 
	
		
			
				|  |  | +                            </el-form-item>
 | 
	
		
			
				|  |  |                              <el-form-item label="座位类型" prop="seatTypeId">
 | 
	
		
			
				|  |  |                                  <el-select 
 | 
	
		
			
				|  |  |                                  v-model="ruleForm1.seatTypeId"
 | 
	
		
			
				|  |  | -                                placeholder="请选择座位排练">
 | 
	
		
			
				|  |  | +                                placeholder="请选择座位类型">
 | 
	
		
			
				|  |  |                                      <el-option 
 | 
	
		
			
				|  |  |                                      v-for="(item,index) in seatTypeList"
 | 
	
		
			
				|  |  |                                      :key="item.id"
 | 
	
	
		
			
				|  | @@ -244,6 +259,7 @@
 | 
	
		
			
				|  |  |                      </div>
 | 
	
		
			
				|  |  |                      <div class="qu-batch-tool">
 | 
	
		
			
				|  |  |                          <el-button type="primary" size="mini" @click="openFormDialogVisible">修改区域</el-button>
 | 
	
		
			
				|  |  | +                        <el-button type="primary" size="mini" @click="batchSetaType">座位类型</el-button>
 | 
	
		
			
				|  |  |                          <el-button type="danger" size="mini" @click="batchDisable">批量禁用</el-button>
 | 
	
		
			
				|  |  |                          
 | 
	
		
			
				|  |  |                      </div>
 | 
	
	
		
			
				|  | @@ -336,6 +352,7 @@
 | 
	
		
			
				|  |  |  <script>
 | 
	
		
			
				|  |  |  import Sortable from "sortablejs";
 | 
	
		
			
				|  |  |  import dragSelect from 'ty-drag-select';
 | 
	
		
			
				|  |  | +import { pageList as getSeatTypeList } from '@/api/seatTypeMr/seatTypeMr'
 | 
	
		
			
				|  |  |  export default {
 | 
	
		
			
				|  |  |      name: 'sysIndex',
 | 
	
		
			
				|  |  |      components: {},
 | 
	
	
		
			
				|  | @@ -343,127 +360,10 @@ export default {
 | 
	
		
			
				|  |  |          return {
 | 
	
		
			
				|  |  |              // 页面渲染的数据
 | 
	
		
			
				|  |  |              seatList: [],
 | 
	
		
			
				|  |  | -            seatTypeList: [
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    "id": "899466154989936640",
 | 
	
		
			
				|  |  | -                    "createBy": "admin",
 | 
	
		
			
				|  |  | -                    "createTime": "2023-12-26 11:24:13",
 | 
	
		
			
				|  |  | -                    "updateBy": "admin",
 | 
	
		
			
				|  |  | -                    "updateTime": "2023-12-26 11:24:13",
 | 
	
		
			
				|  |  | -                    "delFlag": 0,
 | 
	
		
			
				|  |  | -                    "name": "贵宾席-OTA测试",
 | 
	
		
			
				|  |  | -                    "color": "#EB3286"
 | 
	
		
			
				|  |  | -                },
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    "id": "899466065307328512",
 | 
	
		
			
				|  |  | -                    "createBy": "admin",
 | 
	
		
			
				|  |  | -                    "createTime": "2023-12-26 11:23:51",
 | 
	
		
			
				|  |  | -                    "updateBy": "admin",
 | 
	
		
			
				|  |  | -                    "updateTime": "2023-12-26 11:23:51",
 | 
	
		
			
				|  |  | -                    "delFlag": 0,
 | 
	
		
			
				|  |  | -                    "name": "普通席-OTA测试",
 | 
	
		
			
				|  |  | -                    "color": "#AE3BE7"
 | 
	
		
			
				|  |  | -                },
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    "id": "898175951457316864",
 | 
	
		
			
				|  |  | -                    "createBy": "admin",
 | 
	
		
			
				|  |  | -                    "createTime": "2023-12-22 21:57:24",
 | 
	
		
			
				|  |  | -                    "updateBy": "admin",
 | 
	
		
			
				|  |  | -                    "updateTime": "2023-12-22 21:57:24",
 | 
	
		
			
				|  |  | -                    "delFlag": 0,
 | 
	
		
			
				|  |  | -                    "name": "VIP票",
 | 
	
		
			
				|  |  | -                    "color": "#FF0000"
 | 
	
		
			
				|  |  | -                },
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    "id": "898175913469505536",
 | 
	
		
			
				|  |  | -                    "createBy": "admin",
 | 
	
		
			
				|  |  | -                    "createTime": "2023-12-22 21:57:15",
 | 
	
		
			
				|  |  | -                    "updateBy": "admin",
 | 
	
		
			
				|  |  | -                    "updateTime": "2023-12-22 21:57:15",
 | 
	
		
			
				|  |  | -                    "delFlag": 0,
 | 
	
		
			
				|  |  | -                    "name": "贵宾票",
 | 
	
		
			
				|  |  | -                    "color": "#FFD000"
 | 
	
		
			
				|  |  | -                },
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    "id": "898175825946963968",
 | 
	
		
			
				|  |  | -                    "createBy": "admin",
 | 
	
		
			
				|  |  | -                    "createTime": "2023-12-22 21:56:54",
 | 
	
		
			
				|  |  | -                    "updateBy": "admin",
 | 
	
		
			
				|  |  | -                    "updateTime": "2023-12-22 21:56:54",
 | 
	
		
			
				|  |  | -                    "delFlag": 0,
 | 
	
		
			
				|  |  | -                    "name": "普通票",
 | 
	
		
			
				|  |  | -                    "color": "#0BB8B8"
 | 
	
		
			
				|  |  | -                },
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    "id": "898175718375649280",
 | 
	
		
			
				|  |  | -                    "createBy": "admin",
 | 
	
		
			
				|  |  | -                    "createTime": "2023-12-22 21:56:29",
 | 
	
		
			
				|  |  | -                    "updateBy": "admin",
 | 
	
		
			
				|  |  | -                    "updateTime": "2023-12-26 11:23:02",
 | 
	
		
			
				|  |  | -                    "delFlag": 0,
 | 
	
		
			
				|  |  | -                    "name": "普通座位-测试",
 | 
	
		
			
				|  |  | -                    "color": "#DE5421"
 | 
	
		
			
				|  |  | -                },
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    "id": "898175647802290176",
 | 
	
		
			
				|  |  | -                    "createBy": "admin",
 | 
	
		
			
				|  |  | -                    "createTime": "2023-12-22 21:56:12",
 | 
	
		
			
				|  |  | -                    "updateBy": "admin",
 | 
	
		
			
				|  |  | -                    "updateTime": "2023-12-22 21:56:35",
 | 
	
		
			
				|  |  | -                    "delFlag": 0,
 | 
	
		
			
				|  |  | -                    "name": "贵宾座位-测试",
 | 
	
		
			
				|  |  | -                    "color": "#2FBB60"
 | 
	
		
			
				|  |  | -                },
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    "id": "898175609768341504",
 | 
	
		
			
				|  |  | -                    "createBy": "admin",
 | 
	
		
			
				|  |  | -                    "createTime": "2023-12-22 21:56:03",
 | 
	
		
			
				|  |  | -                    "updateBy": "admin",
 | 
	
		
			
				|  |  | -                    "updateTime": "2023-12-24 20:17:00",
 | 
	
		
			
				|  |  | -                    "delFlag": 0,
 | 
	
		
			
				|  |  | -                    "name": "VIP座位-测试",
 | 
	
		
			
				|  |  | -                    "color": "#002FFF"
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            ],
 | 
	
		
			
				|  |  | -            tableHeader: [
 | 
	
		
			
				|  |  | -                // { title: '左1',key: 'zuo',align: 'flex-end' },
 | 
	
		
			
				|  |  | -                // { title: '过道2',key: 'zuo11',align: 'center' },
 | 
	
		
			
				|  |  | -                // { title: '中3',key: 'zhong',align: 'center' },
 | 
	
		
			
				|  |  | -                // { title: '过道4',key: 'zuo22',align: 'center' },
 | 
	
		
			
				|  |  | -                // { title: '右5',key: 'you',align: 'flex-start' },
 | 
	
		
			
				|  |  | -                // { title: '右6',key: 'you',align: 'flex-start' },
 | 
	
		
			
				|  |  | -                // { title: '右7',key: 'you',align: 'flex-start' },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -                // { title: '右8',key: 'you',align: 'flex-start' },
 | 
	
		
			
				|  |  | -                // { title: '右9',key: 'you',align: 'flex-start' },
 | 
	
		
			
				|  |  | -            ],
 | 
	
		
			
				|  |  | -            tableData: [
 | 
	
		
			
				|  |  | -                // {
 | 
	
		
			
				|  |  | -                //     id: this.currentRow+"_"+this.currentProperty+"_"+i,
 | 
	
		
			
				|  |  | -                //     name: this.ruleForm1.name.replace('${row}',this.currentRow).replace('${col}',i),
 | 
	
		
			
				|  |  | -                //     status: this.ruleForm1.seatTypeId,
 | 
	
		
			
				|  |  | -                //     rowNo: this.currentRow,
 | 
	
		
			
				|  |  | -                //     colNo: i,
 | 
	
		
			
				|  |  | -                //     sort: i,
 | 
	
		
			
				|  |  | -                //     style: {key: this.currentProperty}
 | 
	
		
			
				|  |  | -                // }
 | 
	
		
			
				|  |  | -            ], // 全部的座位 表格形式
 | 
	
		
			
				|  |  | -            tableDataAll: [
 | 
	
		
			
				|  |  | -                // {
 | 
	
		
			
				|  |  | -                //     "id": "899524164202352651",
 | 
	
		
			
				|  |  | -                //     "delFlag": 0,
 | 
	
		
			
				|  |  | -                //     "auditoriumId": "899466305364123648",
 | 
	
		
			
				|  |  | -                //     "name": "",
 | 
	
		
			
				|  |  | -                //     "rowNo": 2,
 | 
	
		
			
				|  |  | -                //     "columnNo": 9,
 | 
	
		
			
				|  |  | -                //     "seatTypeId": "899466154989936640",
 | 
	
		
			
				|  |  | -                //     "seatLabel": "贵宾席-OTA测试",
 | 
	
		
			
				|  |  | -                //     "priority": 1,
 | 
	
		
			
				|  |  | -                //     "status": 1,
 | 
	
		
			
				|  |  | -                //     "sortId": 11,
 | 
	
		
			
				|  |  | -                //     "color": "#EB3286"
 | 
	
		
			
				|  |  | -                // }
 | 
	
		
			
				|  |  | -            ], // 全部的座位
 | 
	
		
			
				|  |  | +            seatTypeList: [],
 | 
	
		
			
				|  |  | +            tableHeader: [],
 | 
	
		
			
				|  |  | +            tableData: [], // 全部的座位 表格形式
 | 
	
		
			
				|  |  | +            tableDataAll: [], // 全部的座位
 | 
	
		
			
				|  |  |              widthAll: '100%',
 | 
	
		
			
				|  |  |              heightAll: '100%',
 | 
	
		
			
				|  |  |              width: 60,
 | 
	
	
		
			
				|  | @@ -478,6 +378,7 @@ export default {
 | 
	
		
			
				|  |  |              
 | 
	
		
			
				|  |  |              // tool
 | 
	
		
			
				|  |  |              rowAll: null,
 | 
	
		
			
				|  |  | +            colsAll: null,
 | 
	
		
			
				|  |  |              activeName: 'second',
 | 
	
		
			
				|  |  |              
 | 
	
		
			
				|  |  |              // 创建区域
 | 
	
	
		
			
				|  | @@ -503,8 +404,11 @@ export default {
 | 
	
		
			
				|  |  |                  name: [
 | 
	
		
			
				|  |  |                      { required: true, message: '请选择座位名称', trigger: ['blur','change'] }
 | 
	
		
			
				|  |  |                  ],
 | 
	
		
			
				|  |  | +                seatParity: [
 | 
	
		
			
				|  |  | +                    { required: true, message: '请选择座位号', trigger: ['blur','change'] }
 | 
	
		
			
				|  |  | +                ],
 | 
	
		
			
				|  |  |                  seatTypeId: [
 | 
	
		
			
				|  |  | -                    { required: true, message: '请输入座位类型', trigger: ['blur','change'] }
 | 
	
		
			
				|  |  | +                    { required: true, message: '请选择座位类型', trigger: ['blur','change'] }
 | 
	
		
			
				|  |  |                  ],
 | 
	
		
			
				|  |  |              },
 | 
	
		
			
				|  |  |              currentRow: null, // 当前选择的单元格行
 | 
	
	
		
			
				|  | @@ -546,6 +450,17 @@ export default {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      methods: {
 | 
	
		
			
				|  |  | +        /** 获取座位类型  */
 | 
	
		
			
				|  |  | +        async getSeatTypeListFun(){
 | 
	
		
			
				|  |  | +            try {
 | 
	
		
			
				|  |  | +                let res = await getSeatTypeList({
 | 
	
		
			
				|  |  | +                    pageNum: 1, pageSize: 999
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +                this.seatTypeList = res.data.rows
 | 
	
		
			
				|  |  | +            } catch (error) {
 | 
	
		
			
				|  |  | +                
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  |          //初始化排序
 | 
	
		
			
				|  |  |          initSortTable() {
 | 
	
		
			
				|  |  |              let that = this;
 | 
	
	
		
			
				|  | @@ -566,21 +481,32 @@ export default {
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          /**  初始化数据  */
 | 
	
		
			
				|  |  | -        initData(row,list,type){
 | 
	
		
			
				|  |  | -            if(row.styleCss) {
 | 
	
		
			
				|  |  | -                this.tableHeader =  JSON.parse(row.styleCss).tableHeader
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            this.rowAll = row.rows
 | 
	
		
			
				|  |  | -            let listCopy = []
 | 
	
		
			
				|  |  | -            list.forEach((item,index) => {
 | 
	
		
			
				|  |  | -                if(item.styleCss) {
 | 
	
		
			
				|  |  | -                    item.styleCss = JSON.parse(item.styleCss)
 | 
	
		
			
				|  |  | +        async initData(row,list,type){
 | 
	
		
			
				|  |  | +            this.tableHeader = []
 | 
	
		
			
				|  |  | +            this.tableData = []
 | 
	
		
			
				|  |  | +            this.tableDataAll = []
 | 
	
		
			
				|  |  | +            this.rowAll = null
 | 
	
		
			
				|  |  | +            this.colsAll = null
 | 
	
		
			
				|  |  | +            await this.getSeatTypeListFun()
 | 
	
		
			
				|  |  | +            if(row.rows) {
 | 
	
		
			
				|  |  | +                if(row.styleCss) {
 | 
	
		
			
				|  |  | +                    this.tableHeader =  JSON.parse(row.styleCss).tableHeader
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  | -                listCopy.push(item)
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | -            this.tableDataAll = JSON.parse(JSON.stringify(listCopy))
 | 
	
		
			
				|  |  | -            //this.createTableList()
 | 
	
		
			
				|  |  | -            this.dataProcess() // 数据整理
 | 
	
		
			
				|  |  | +                this.rowAll = row.rows
 | 
	
		
			
				|  |  | +                let listCopy = []
 | 
	
		
			
				|  |  | +                list.forEach((item,index) => {
 | 
	
		
			
				|  |  | +                    // if(item.styleCss) {
 | 
	
		
			
				|  |  | +                    //     item.styleCss = JSON.parse(item.styleCss)
 | 
	
		
			
				|  |  | +                    // }
 | 
	
		
			
				|  |  | +                    listCopy.push({
 | 
	
		
			
				|  |  | +                        ...item,
 | 
	
		
			
				|  |  | +                        styleCss: item.styleCss ? JSON.parse(JSON.parse(item.styleCss)): {}
 | 
	
		
			
				|  |  | +                    })
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +                this.tableDataAll = JSON.parse(JSON.stringify(listCopy))
 | 
	
		
			
				|  |  | +                console.log("sfasdfasdfasd====",this.tableDataAll)
 | 
	
		
			
				|  |  | +                this.dataProcess() // 数据整理
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |          /**  数组组装  */
 | 
	
		
			
				|  |  |          dataProcess(){
 | 
	
	
		
			
				|  | @@ -590,7 +516,7 @@ export default {
 | 
	
		
			
				|  |  |              for(let i = 0;i<this.rowAll;i++) {
 | 
	
		
			
				|  |  |                  if(this.tableHeader && this.tableHeader.length){
 | 
	
		
			
				|  |  |                      let obj = {
 | 
	
		
			
				|  |  | -                        id: "row_"+i
 | 
	
		
			
				|  |  | +                        tableId: "row_"+i
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      this.tableHeader.forEach((item,index)=>{
 | 
	
		
			
				|  |  |                          obj[item.key] = []
 | 
	
	
		
			
				|  | @@ -787,7 +713,7 @@ export default {
 | 
	
		
			
				|  |  |                  this.seatTypeList.forEach((item,index)=>{
 | 
	
		
			
				|  |  |                      if(this.ruleForm1.seatTypeId == item.id) {
 | 
	
		
			
				|  |  |                          color = item.color
 | 
	
		
			
				|  |  | -                        seatLabel = item.seatLabel
 | 
	
		
			
				|  |  | +                        seatLabel = item.name
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                  })
 | 
	
		
			
				|  |  |                  if(this.ruleForm1.resource == 2){ // 批量
 | 
	
	
		
			
				|  | @@ -811,10 +737,16 @@ export default {
 | 
	
		
			
				|  |  |                          return
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      for(let i = min;i<=max;i++) {
 | 
	
		
			
				|  |  | +                        if(this.ruleForm1.seatParity == 2 && i%2 == 0) { // 排除偶数
 | 
	
		
			
				|  |  | +                            continue;
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                        if(this.ruleForm1.seatParity == 3 && i%2 > 0) { // 排除奇数数
 | 
	
		
			
				|  |  | +                            continue;
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |                          list.push({
 | 
	
		
			
				|  |  | -                            id: this.currentRow+"_"+this.currentProperty+"_"+i,
 | 
	
		
			
				|  |  | +                            tableId: this.currentRow+"_"+this.currentProperty+"_"+i,
 | 
	
		
			
				|  |  |                              name: this.ruleForm1.name.replace('${row}',this.currentRow).replace('${col}',i),
 | 
	
		
			
				|  |  | -                            status: this.ruleForm1.seatTypeId,
 | 
	
		
			
				|  |  |                              styleCss: {
 | 
	
		
			
				|  |  |                                  key: this.currentProperty, // 所属区域的key
 | 
	
		
			
				|  |  |                                  keyLabel: this.currentLabel, // 所属区域的名称
 | 
	
	
		
			
				|  | @@ -824,9 +756,12 @@ export default {
 | 
	
		
			
				|  |  |                              rowNo: this.currentRow,
 | 
	
		
			
				|  |  |                              columnNo: i,
 | 
	
		
			
				|  |  |                              seatTypeId: this.ruleForm1.seatTypeId,
 | 
	
		
			
				|  |  | +                            sortId: i, // 排序号码
 | 
	
		
			
				|  |  |                              seatLabel: seatLabel,
 | 
	
		
			
				|  |  |                              color: color,// 座位类型对应的颜色
 | 
	
		
			
				|  |  | -                            delFlag: 0,
 | 
	
		
			
				|  |  | +                            delFlag: 0, // 座位是否可用
 | 
	
		
			
				|  |  | +                            priority: 9999, // 座位出票顺序  数字越小越优先
 | 
	
		
			
				|  |  | +                            status: 0, //0-初始(该状态下不C端显示) 1-可用 2-不可用
 | 
	
		
			
				|  |  |                          })
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      this.tableDataAll = this.tableDataAll.concat(JSON.parse(JSON.stringify(list)))
 | 
	
	
		
			
				|  | @@ -837,12 +772,8 @@ export default {
 | 
	
		
			
				|  |  |                      console.log("this.tableData111=====",this.currentRow,this.currentProperty,this.tableData[this.currentRow-1][this.currentProperty])
 | 
	
		
			
				|  |  |                      let index = this.tableData[this.currentRow-1][this.currentProperty].length
 | 
	
		
			
				|  |  |                      let obj = {
 | 
	
		
			
				|  |  | -                        id: this.currentRow+"_"+this.currentProperty+"_"+(index+1),
 | 
	
		
			
				|  |  | +                        tableId: this.currentRow+"_"+this.currentProperty+"_"+(index+1),
 | 
	
		
			
				|  |  |                          name: this.ruleForm1.name,
 | 
	
		
			
				|  |  | -                        status: this.ruleForm1.seatTypeId,
 | 
	
		
			
				|  |  | -                        rowNo: this.currentRow,
 | 
	
		
			
				|  |  | -                        sort: index+1,
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |                          styleCss: {
 | 
	
		
			
				|  |  |                              key: this.currentProperty, // 所属区域的key
 | 
	
		
			
				|  |  |                              keyLabel: this.currentLabel, // 所属区域的名称
 | 
	
	
		
			
				|  | @@ -851,10 +782,13 @@ export default {
 | 
	
		
			
				|  |  |                          },
 | 
	
		
			
				|  |  |                          rowNo: this.currentRow,
 | 
	
		
			
				|  |  |                          columnNo: index+1,
 | 
	
		
			
				|  |  | +                        sortId: i, // 排序号码
 | 
	
		
			
				|  |  |                          seatTypeId: this.ruleForm1.seatTypeId,
 | 
	
		
			
				|  |  |                          seatLabel: seatLabel,
 | 
	
		
			
				|  |  |                          color: color,// 座位类型对应的颜色
 | 
	
		
			
				|  |  | -                        delFlag: 0,
 | 
	
		
			
				|  |  | +                        delFlag: 0, // 座位是否可用
 | 
	
		
			
				|  |  | +                        priority: 9999, // 座位出票顺序  数字越小越优先
 | 
	
		
			
				|  |  | +                        status: 0, //0-初始(该状态下不C端显示) 1-可用 2-不可用
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      this.tableData[this.currentRow-1][this.currentProperty].push(obj)
 | 
	
		
			
				|  |  |                      this.tableDataAll.push(JSON.parse(JSON.stringify(obj)))
 | 
	
	
		
			
				|  | @@ -889,11 +823,10 @@ export default {
 | 
	
		
			
				|  |  |          countRegionW(){
 | 
	
		
			
				|  |  |              let list = JSON.parse(JSON.stringify(this.tableHeader))
 | 
	
		
			
				|  |  |              for(let i = 0; i < list.length; i++) {
 | 
	
		
			
				|  |  | +                list[i].length =  0
 | 
	
		
			
				|  |  |                  for(let j = 0;j < this.tableData.length; j++) {
 | 
	
		
			
				|  |  |                      if(this.tableData[j][list[i].key] && this.tableData[j][list[i].key].length){
 | 
	
		
			
				|  |  | -                        if(j==0) {
 | 
	
		
			
				|  |  | -                            list[i].length = this.tableData[j][list[i].key].length
 | 
	
		
			
				|  |  | -                        }else if(list[i].length<this.tableData[j][list[i].key].length){
 | 
	
		
			
				|  |  | +                        if(list[i].length<this.tableData[j][list[i].key].length){
 | 
	
		
			
				|  |  |                              list[i].length = this.tableData[j][list[i].key].length
 | 
	
		
			
				|  |  |                          }
 | 
	
		
			
				|  |  |                      }
 | 
	
	
		
			
				|  | @@ -901,6 +834,13 @@ export default {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              console.log("list=====111",list)
 | 
	
		
			
				|  |  |              this.tableHeader = [].concat(list)
 | 
	
		
			
				|  |  | +            let colsAll = 0
 | 
	
		
			
				|  |  | +            this.tableHeader.forEach((item,index) => {
 | 
	
		
			
				|  |  | +                if(item.length) {
 | 
	
		
			
				|  |  | +                    colsAll = colsAll + item.length
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            this.colsAll = colsAll
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |          /**  创建座位  结束  */
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -989,13 +929,16 @@ export default {
 | 
	
		
			
				|  |  |          batchDisable() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  | +        /**  批量修改座位类型   */
 | 
	
		
			
				|  |  | +        batchSetaType() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  |          /** 删选 */
 | 
	
		
			
				|  |  |          handleQuery(){
 | 
	
		
			
				|  |  |             
 | 
	
		
			
				|  |  |              if(!this.queryParams.menuName&&!this.queryParams.status){
 | 
	
		
			
				|  |  |                  this.batchTableList = this.tableDataAll
 | 
	
		
			
				|  |  | -                console.log("list====",this.queryParams)
 | 
	
		
			
				|  |  | +                console.log("list====",this.queryParams,this.tableDataAll)
 | 
	
		
			
				|  |  |              }else {
 | 
	
		
			
				|  |  |                  let list = []
 | 
	
		
			
				|  |  |                  this.tableDataAll.forEach((item,index)=>{
 | 
	
	
		
			
				|  | @@ -1082,7 +1025,12 @@ export default {
 | 
	
		
			
				|  |  |              let styleCss = {
 | 
	
		
			
				|  |  |                  tableHeader: this.tableHeader
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            this.$emit('saveSeat',list,JSON.stringify(styleCss))
 | 
	
		
			
				|  |  | +            list.forEach((item,index)=>{
 | 
	
		
			
				|  |  | +                if(item.styleCss) {
 | 
	
		
			
				|  |  | +                    list[index].styleCss = JSON.stringify(item.styleCss)
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            this.$emit('saveSeat',this.rowAll,this.colsAll,list,JSON.stringify(styleCss))
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  };
 | 
	
	
		
			
				|  | @@ -1094,16 +1042,42 @@ export default {
 | 
	
		
			
				|  |  |      width: 100%;
 | 
	
		
			
				|  |  |      height: 100%;
 | 
	
		
			
				|  |  |      box-sizing: border-box;
 | 
	
		
			
				|  |  | -    padding-top: 20px;
 | 
	
		
			
				|  |  |      display: flex;
 | 
	
		
			
				|  |  |      flex-direction: column;
 | 
	
		
			
				|  |  |      justify-content: center;
 | 
	
		
			
				|  |  |      align-items: center;
 | 
	
		
			
				|  |  | +    --top-tool-h: 60px;
 | 
	
		
			
				|  |  | +    --left-tool-w: 300px
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +.sm-box-top-tool {
 | 
	
		
			
				|  |  | +    width: 100%;
 | 
	
		
			
				|  |  | +    height: var(--top-tool-h);
 | 
	
		
			
				|  |  | +    box-sizing: border-box;
 | 
	
		
			
				|  |  | +    display: flex;
 | 
	
		
			
				|  |  | +    .sm-box-top-tool-legend {
 | 
	
		
			
				|  |  | +        width: 400px;
 | 
	
		
			
				|  |  | +        display: flex;
 | 
	
		
			
				|  |  | +        >div {
 | 
	
		
			
				|  |  | +            display: flex;
 | 
	
		
			
				|  |  | +            align-items: center;
 | 
	
		
			
				|  |  | +            margin-left: 10px;
 | 
	
		
			
				|  |  | +            >span:first-child {
 | 
	
		
			
				|  |  | +                display: block;
 | 
	
		
			
				|  |  | +                width: 10px;
 | 
	
		
			
				|  |  | +                height: 10px;
 | 
	
		
			
				|  |  | +                flex-shrink: 0;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            >span:last-child {
 | 
	
		
			
				|  |  | +                white-space: nowrap;
 | 
	
		
			
				|  |  | +                margin-left: 5px;
 | 
	
		
			
				|  |  | +                font-size: 12px;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  .sm-box {
 | 
	
		
			
				|  |  | -    width: 1300px;
 | 
	
		
			
				|  |  | -    height: 600px; 
 | 
	
		
			
				|  |  | +    width: 100%;
 | 
	
		
			
				|  |  | +    height: calc( 100% - var(--top-tool-h) ); 
 | 
	
		
			
				|  |  |      box-sizing: border-box;
 | 
	
		
			
				|  |  |      display: flex;
 | 
	
		
			
				|  |  |      justify-content: center;
 | 
	
	
		
			
				|  | @@ -1112,61 +1086,62 @@ export default {
 | 
	
		
			
				|  |  |      --row-scale: 1;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  .sm-scroll-box {
 | 
	
		
			
				|  |  | -    width: 1000px;
 | 
	
		
			
				|  |  | +    width: calc( 100% - var(--left-tool-w) );
 | 
	
		
			
				|  |  |      height: 100%;
 | 
	
		
			
				|  |  |      border: 1px solid #ccc;
 | 
	
		
			
				|  |  |      box-sizing: border-box;
 | 
	
		
			
				|  |  |      background-color: aqua;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.row-item-box {
 | 
	
		
			
				|  |  | -    border: 1px dashed #ccc;
 | 
	
		
			
				|  |  | -    width: 100%;
 | 
	
		
			
				|  |  | -    height: 100%;
 | 
	
		
			
				|  |  | -    align-items: center;
 | 
	
		
			
				|  |  | -    padding: 5px;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +    .row-item-box {
 | 
	
		
			
				|  |  | +        border: 1px dashed #ccc;
 | 
	
		
			
				|  |  | +        width: 100%;
 | 
	
		
			
				|  |  | +        height: 100%;
 | 
	
		
			
				|  |  | +        align-items: center;
 | 
	
		
			
				|  |  | +        padding: 5px;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.row-item-box:hover {
 | 
	
		
			
				|  |  | -    background-color: rgba(64, 158, 255,0.3);
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +    .row-item-box:hover {
 | 
	
		
			
				|  |  | +        background-color: rgba(64, 158, 255,0.3);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.row-item {
 | 
	
		
			
				|  |  | -    width: var(--row-w);
 | 
	
		
			
				|  |  | -    height: var(--row-h);
 | 
	
		
			
				|  |  | -    margin-left: 5px;
 | 
	
		
			
				|  |  | -    border: 1px solid #ccc;
 | 
	
		
			
				|  |  | -    display: flex;
 | 
	
		
			
				|  |  | -    flex-direction: column;
 | 
	
		
			
				|  |  | -    flex-shrink: 0;
 | 
	
		
			
				|  |  | -    font-size: 12px;
 | 
	
		
			
				|  |  | -    align-items: center;
 | 
	
		
			
				|  |  | -    box-sizing: border-box;
 | 
	
		
			
				|  |  | -    justify-content: center;
 | 
	
		
			
				|  |  | -    overflow: hidden;
 | 
	
		
			
				|  |  | -    > div {
 | 
	
		
			
				|  |  | -        width: var(--row-w-i);
 | 
	
		
			
				|  |  | -        height: var(--row-h-i);
 | 
	
		
			
				|  |  | -        transform: scale(var(--row-scale));
 | 
	
		
			
				|  |  | +    .row-item {
 | 
	
		
			
				|  |  | +        width: var(--row-w);
 | 
	
		
			
				|  |  | +        height: var(--row-h);
 | 
	
		
			
				|  |  | +        margin-left: 5px;
 | 
	
		
			
				|  |  | +        border: 1px solid #ccc;
 | 
	
		
			
				|  |  |          display: flex;
 | 
	
		
			
				|  |  |          flex-direction: column;
 | 
	
		
			
				|  |  | +        flex-shrink: 0;
 | 
	
		
			
				|  |  | +        font-size: 12px;
 | 
	
		
			
				|  |  | +        align-items: center;
 | 
	
		
			
				|  |  | +        box-sizing: border-box;
 | 
	
		
			
				|  |  | +        justify-content: center;
 | 
	
		
			
				|  |  | +        overflow: hidden;
 | 
	
		
			
				|  |  | +        > div {
 | 
	
		
			
				|  |  | +            width: var(--row-w-i);
 | 
	
		
			
				|  |  | +            height: var(--row-h-i);
 | 
	
		
			
				|  |  | +            transform: scale(var(--row-scale));
 | 
	
		
			
				|  |  | +            display: flex;
 | 
	
		
			
				|  |  | +            flex-direction: column;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        i {
 | 
	
		
			
				|  |  | +            color: #fff;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  | -    i {
 | 
	
		
			
				|  |  | -        color: #fff;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .row-item:first-child {
 | 
	
		
			
				|  |  | +        margin-left: 0;
 | 
	
		
			
				|  |  | +    } 
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    .el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf {
 | 
	
		
			
				|  |  | +        border-bottom: none !important;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.row-item:first-child {
 | 
	
		
			
				|  |  | -    margin-left: 0;
 | 
	
		
			
				|  |  | -} 
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -.el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf {
 | 
	
		
			
				|  |  | -    border-bottom: none !important;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  .table-tool {
 | 
	
		
			
				|  |  | -    width: calc( 100% - 1000px );
 | 
	
		
			
				|  |  | +    width: var(--left-tool-w);
 | 
	
		
			
				|  |  |      height: 100%;
 | 
	
		
			
				|  |  |      padding: 0 10px;
 | 
	
		
			
				|  |  |      box-sizing: border-box;
 | 
	
	
		
			
				|  | @@ -1186,7 +1161,7 @@ export default {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      .qu-first-form {
 | 
	
		
			
				|  |  |          width: 100%;
 | 
	
		
			
				|  |  | -        height: 200px;
 | 
	
		
			
				|  |  | +        height: 250px;
 | 
	
		
			
				|  |  |          overflow: hidden;
 | 
	
		
			
				|  |  |          padding-top: 10px;
 | 
	
		
			
				|  |  |          box-sizing: border-box;
 | 
	
	
		
			
				|  | @@ -1195,7 +1170,7 @@ export default {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      .qu-first-info {
 | 
	
		
			
				|  |  |          width: 100%;
 | 
	
		
			
				|  |  | -        height: calc( 100% - 200px );
 | 
	
		
			
				|  |  | +        height: calc( 100% - 250px );
 | 
	
		
			
				|  |  |          overflow: hidden;
 | 
	
		
			
				|  |  |          .qu-first-info-title {
 | 
	
		
			
				|  |  |              width: 100%;
 | 
	
	
		
			
				|  | @@ -1292,7 +1267,7 @@ export default {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      .qu-second-form {
 | 
	
		
			
				|  |  |          width: 100%;
 | 
	
		
			
				|  |  | -        height: 240px;
 | 
	
		
			
				|  |  | +        height: 300px;
 | 
	
		
			
				|  |  |          overflow: hidden;
 | 
	
		
			
				|  |  |          padding-top: 10px;
 | 
	
		
			
				|  |  |          box-sizing: border-box;
 | 
	
	
		
			
				|  | @@ -1301,7 +1276,7 @@ export default {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      .qu-second-info {
 | 
	
		
			
				|  |  |          width: 100%;
 | 
	
		
			
				|  |  | -        height: calc( 100% - 320px );
 | 
	
		
			
				|  |  | +        height: calc( 100% - 400px );
 | 
	
		
			
				|  |  |          overflow: hidden;
 | 
	
		
			
				|  |  |          .qu-second-info-title {
 | 
	
		
			
				|  |  |              width: 100%;
 |