|  | @@ -0,0 +1,736 @@
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +  <div class="app-container">
 | 
	
		
			
				|  |  | +    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
 | 
	
		
			
				|  |  | +      <el-form-item label="订单号">
 | 
	
		
			
				|  |  | +        <el-input v-model="queryParams.orderId" placeholder="请输入订单号" clearable style="width: 240px;"
 | 
	
		
			
				|  |  | +          @keyup.enter.native="handleQuery" />
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item label="订单状态">
 | 
	
		
			
				|  |  | +        <el-select v-model="queryParams.orderStatus" placeholder="订单状态" clearable style="width: 100%">
 | 
	
		
			
				|  |  | +          <el-option v-for="dict in dict.type.order_status_type" :key="dict.value" :label="dict.label"
 | 
	
		
			
				|  |  | +            :value="dict.value" />
 | 
	
		
			
				|  |  | +        </el-select>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item label="座位类型">
 | 
	
		
			
				|  |  | +        <el-select v-model="queryParams.seatTypeId" placeholder="座位类型" clearable style="width: 100%">
 | 
	
		
			
				|  |  | +          <el-option v-for="(item, index) in seatTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
 | 
	
		
			
				|  |  | +        </el-select>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item label="购票渠道">
 | 
	
		
			
				|  |  | +        <el-select v-model="queryParams.source" placeholder="购票渠道" clearable style="width: 100%">
 | 
	
		
			
				|  |  | +          <el-option v-for="dict in dict.type.order_form_type" :key="dict.value" :label="dict.label"
 | 
	
		
			
				|  |  | +            :value="dict.value" />
 | 
	
		
			
				|  |  | +        </el-select>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item label="支付时间">
 | 
	
		
			
				|  |  | +        <el-date-picker style="width: 230px;" v-model="queryParams.payTime" type="date" value-format="yyyy-MM-dd"
 | 
	
		
			
				|  |  | +          placeholder="支付时间">
 | 
	
		
			
				|  |  | +        </el-date-picker>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item label="演出时间">
 | 
	
		
			
				|  |  | +        <el-date-picker style="width: 230px;" v-model="queryParams.performDate" @change="pagePerformTimeListFun"
 | 
	
		
			
				|  |  | +          type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
 | 
	
		
			
				|  |  | +        </el-date-picker>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item label="场次">
 | 
	
		
			
				|  |  | +        <el-select v-model="queryParams.performTimeId" placeholder="场次" clearable style="width: 100%">
 | 
	
		
			
				|  |  | +          <el-option v-for="dict in pagePerformTimeList" :key="dict.id" :label="dict.timeSnapshot" :value="dict.id" />
 | 
	
		
			
				|  |  | +        </el-select>
 | 
	
		
			
				|  |  | +      </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">
 | 
	
		
			
				|  |  | +      <el-button type="primary" size="mini" icon="el-icon-download" v-hasPermi="['order:orderMr: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>
 | 
	
		
			
				|  |  | +      <el-button 
 | 
	
		
			
				|  |  | +      type="primary" 
 | 
	
		
			
				|  |  | +      size="mini" 
 | 
	
		
			
				|  |  | +      v-hasPermi="['order:orderMr:downloadExcel']"
 | 
	
		
			
				|  |  | +      :disabled="multipleSelection.length==0"
 | 
	
		
			
				|  |  | +        @click="openRefundSubmitModel(multipleSelection)">批量退款</el-button>
 | 
	
		
			
				|  |  | +      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
 | 
	
		
			
				|  |  | +    </el-row>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <el-table ref="tables" @selection-change="handleSelectionChange" v-loading="loading" :data="dataList" border>
 | 
	
		
			
				|  |  | +      <el-table-column 
 | 
	
		
			
				|  |  | +      :selectable="isSelectableFun"
 | 
	
		
			
				|  |  | +      type="selection" 
 | 
	
		
			
				|  |  | +      width="55"></el-table-column>
 | 
	
		
			
				|  |  | +      <el-table-column label="订单号" align="center" prop="orderId" />
 | 
	
		
			
				|  |  | +      <el-table-column label="观影人名称" align="center" prop="name" />
 | 
	
		
			
				|  |  | +      <el-table-column label="身份证号" align="center" prop="idcard" />
 | 
	
		
			
				|  |  | +      <el-table-column label="票务名称" align="center" prop="goodsName" />
 | 
	
		
			
				|  |  | +      <el-table-column label="座位类型" align="center" prop="seatTypeName" />
 | 
	
		
			
				|  |  | +      <el-table-column label="购买渠道" align="center" prop="source">
 | 
	
		
			
				|  |  | +        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +          <dict-tag :options="dict.type.order_form_type" :value="scope.row.source" />
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </el-table-column>
 | 
	
		
			
				|  |  | +      <el-table-column label="演出日期" align="center" prop="performDate" />
 | 
	
		
			
				|  |  | +      <el-table-column label="场次" width="120" 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="memberName" />
 | 
	
		
			
				|  |  | +      <el-table-column label="购票人手机号" align="center" prop="memberMobile" />
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <el-table-column label="订单总额" align="center" prop="realPriceTotal">
 | 
	
		
			
				|  |  | +        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +          <span>{{ scope.row.realPriceTotal ? '¥' + scope.row.realPriceTotal : '-' }}</span>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </el-table-column>
 | 
	
		
			
				|  |  | +      <el-table-column label="观影实付金额" align="center" prop="realPrice">
 | 
	
		
			
				|  |  | +        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +          <span>{{ scope.row.realPrice ? '¥' + scope.row.realPrice : '-' }}</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="createTime" />
 | 
	
		
			
				|  |  | +      <el-table-column label="支付时间" align="center" prop="payTime" width="160">
 | 
	
		
			
				|  |  | +        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +          <span>{{ parseTime(scope.row.payTime) }}</span>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </el-table-column>
 | 
	
		
			
				|  |  | +      <el-table-column label="订单状态" align="center">
 | 
	
		
			
				|  |  | +        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +          <dict-tag :options="dict.type.order_status_type" :value="scope.row.status" />
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </el-table-column>
 | 
	
		
			
				|  |  | +      <el-table-column label="核销渠道" align="center" prop="deviceName" />
 | 
	
		
			
				|  |  | +      <el-table-column label="人员类别" align="center">
 | 
	
		
			
				|  |  | +        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +          <dict-tag :options="dict.type.personnel_type" :value="scope.row.identity" />
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </el-table-column>
 | 
	
		
			
				|  |  | +      <el-table-column label="备注" align="center" prop="remark" />
 | 
	
		
			
				|  |  | +      <el-table-column label="操作" align="center" width="100" class-name="small-padding fixed-width">
 | 
	
		
			
				|  |  | +        <template slot-scope="scope">
 | 
	
		
			
				|  |  | +          <el-button size="mini" type="text" @click="openDetails(scope.row)"
 | 
	
		
			
				|  |  | +            v-hasPermi="['orderMr:orderMr:details']">详情</el-button>
 | 
	
		
			
				|  |  | +          <el-button v-if="scope.row.status == 3 || scope.row.status == 7" size="mini" type="text"
 | 
	
		
			
				|  |  | +            @click="handleOpen([scope.row])" v-hasPermi="['orderMr:orderMr:print']">打印</el-button>
 | 
	
		
			
				|  |  | +          <el-button v-if="scope.row.status == 3 || scope.row.status == 6" size="mini" type="text"
 | 
	
		
			
				|  |  | +            @click="openRefundSubmitModel([scope.row])" v-hasPermi="['orderMr:orderMr:print']">退款</el-button>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </el-table-column>
 | 
	
		
			
				|  |  | +    </el-table>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
 | 
	
		
			
				|  |  | +      @pagination="getList" />
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <!-- 详情 -->
 | 
	
		
			
				|  |  | +    <details-dia ref="detailsDia" @getList="getList"></details-dia>
 | 
	
		
			
				|  |  | +    <!-- 打印  -->
 | 
	
		
			
				|  |  | +    <el-dialog title="选择小票机" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
 | 
	
		
			
				|  |  | +      <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
 | 
	
		
			
				|  |  | +        <el-form-item label="小票机" prop="region">
 | 
	
		
			
				|  |  | +          <el-select v-model="ruleForm.region" placeholder="选择小票机">
 | 
	
		
			
				|  |  | +            <el-option :label="item.deviceName" :key="item.id" :value="item.id"
 | 
	
		
			
				|  |  | +              v-for="(item, index) in printList"></el-option>
 | 
	
		
			
				|  |  | +          </el-select>
 | 
	
		
			
				|  |  | +        </el-form-item>
 | 
	
		
			
				|  |  | +      </el-form>
 | 
	
		
			
				|  |  | +      <span slot="footer" class="dialog-footer">
 | 
	
		
			
				|  |  | +        <el-button @click="dialogVisible = false">取 消</el-button>
 | 
	
		
			
				|  |  | +        <el-button type="primary" :loading="dialogVisibleLoading" @click="print(viewerList)">{{
 | 
	
		
			
				|  |  | +          dialogVisibleLoading ? '打印中...' : '打印' }}</el-button>
 | 
	
		
			
				|  |  | +      </span>
 | 
	
		
			
				|  |  | +    </el-dialog>
 | 
	
		
			
				|  |  | +    <!-- 退款   -->
 | 
	
		
			
				|  |  | +    <el-dialog 
 | 
	
		
			
				|  |  | +    title="退款提示" 
 | 
	
		
			
				|  |  | +    :visible.sync="tkDialogVisible" 
 | 
	
		
			
				|  |  | +    width="80%" 
 | 
	
		
			
				|  |  | +    :before-close="handleCloseTk"
 | 
	
		
			
				|  |  | +    :modal-append-to-body="false"
 | 
	
		
			
				|  |  | +    :show-close="!tkDialogVisibleLoading"
 | 
	
		
			
				|  |  | +    >
 | 
	
		
			
				|  |  | +      <div style="display: flex;width: 100%;height: calc( 100vh - 30vh );overflow: hidden;overflow-y: auto;">
 | 
	
		
			
				|  |  | +        <div style="display: 200px;box-sizing: border-box;">
 | 
	
		
			
				|  |  | +          <el-form :disabled="tkDialogVisibleLoading" :model="tkRuleForm" :rules="tkRules" ref="tkRuleForm" label-width="100px" class="demo-ruleForm">
 | 
	
		
			
				|  |  | +            <el-form-item label="退款总金额">
 | 
	
		
			
				|  |  | +              <span>{{ tkRuleForm.refundAmountAll }}</span>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +            <el-form-item label="退款原因" prop="refundReason">
 | 
	
		
			
				|  |  | +              <el-input 
 | 
	
		
			
				|  |  | +              type="textarea"
 | 
	
		
			
				|  |  | +              :rows="3" 
 | 
	
		
			
				|  |  | +              v-model="tkRuleForm.refundReason"></el-input>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +            <el-form-item label="备注" prop="remark">
 | 
	
		
			
				|  |  | +              <el-input 
 | 
	
		
			
				|  |  | +              type="textarea"
 | 
	
		
			
				|  |  | +              :rows="3" 
 | 
	
		
			
				|  |  | +              v-model="tkRuleForm.remark"></el-input>
 | 
	
		
			
				|  |  | +            </el-form-item>
 | 
	
		
			
				|  |  | +          </el-form>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +        <div style=" width: calc( 100% - 200px );box-sizing: border-box;padding-left: 40px;">
 | 
	
		
			
				|  |  | +          <el-table
 | 
	
		
			
				|  |  | +          :data="tkSelectList"
 | 
	
		
			
				|  |  | +          style="width: 100%">
 | 
	
		
			
				|  |  | +          <el-table-column
 | 
	
		
			
				|  |  | +            prop="orderId"
 | 
	
		
			
				|  |  | +            label="订单号"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +          </el-table-column>
 | 
	
		
			
				|  |  | +          <el-table-column
 | 
	
		
			
				|  |  | +            label="观影人数"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              <span>{{ scope.row.viewerList.length }}</span>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </el-table-column>
 | 
	
		
			
				|  |  | +          <el-table-column
 | 
	
		
			
				|  |  | +            prop="refundAmount"
 | 
	
		
			
				|  |  | +            label="退款金额"
 | 
	
		
			
				|  |  | +            >
 | 
	
		
			
				|  |  | +          </el-table-column>
 | 
	
		
			
				|  |  | +          <el-table-column
 | 
	
		
			
				|  |  | +            prop="address"
 | 
	
		
			
				|  |  | +            label="状态">
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              <span 
 | 
	
		
			
				|  |  | +              :style="{
 | 
	
		
			
				|  |  | +                color: refundSubmitAction == scope.row.orderId?'#409eff':
 | 
	
		
			
				|  |  | +                  refundSubmitSuccess.includes(scope.row.orderId)?'#67c23a':
 | 
	
		
			
				|  |  | +                  refundSubmitError.includes(scope.row.orderId)?'#f56c6c':
 | 
	
		
			
				|  |  | +                  '#000'
 | 
	
		
			
				|  |  | +              }"
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +                {{ 
 | 
	
		
			
				|  |  | +                  refundSubmitAction == scope.row.orderId?'退款中...':
 | 
	
		
			
				|  |  | +                  refundSubmitSuccess.includes(scope.row.orderId)?'退款成功':
 | 
	
		
			
				|  |  | +                  refundSubmitError.includes(scope.row.orderId)?'退款失败':
 | 
	
		
			
				|  |  | +                  '等待退款...'  }}
 | 
	
		
			
				|  |  | +              </span>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </el-table-column>
 | 
	
		
			
				|  |  | +        </el-table>
 | 
	
		
			
				|  |  | +        </div>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +      <span slot="footer" class="dialog-footer">
 | 
	
		
			
				|  |  | +        <el-button :loading="tkDialogVisibleLoading" @click="handleCloseTk('tkRuleForm')">取 消</el-button>
 | 
	
		
			
				|  |  | +        <el-button 
 | 
	
		
			
				|  |  | +        :loading="tkDialogVisibleLoading" 
 | 
	
		
			
				|  |  | +        type="primary" 
 | 
	
		
			
				|  |  | +        @click="tkSubmitForm('tkRuleForm')"
 | 
	
		
			
				|  |  | +        v-if="refundSubmitSuccess.length != tkSelectList.length"
 | 
	
		
			
				|  |  | +        >{{ 
 | 
	
		
			
				|  |  | +        tkDialogVisibleLoading ? '退款中...':
 | 
	
		
			
				|  |  | +        refundSubmitError.length > 0? '继续提交失败订单':
 | 
	
		
			
				|  |  | +        '确定退款'
 | 
	
		
			
				|  |  | +         }}</el-button>
 | 
	
		
			
				|  |  | +      </span>
 | 
	
		
			
				|  |  | +    </el-dialog>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import { pageList, downOrderListXls, printApi, refundSubmitApi } from '@/api/order/viewers'
 | 
	
		
			
				|  |  | +import detailsDia from "./dialog/details";
 | 
	
		
			
				|  |  | +import { pagePerformTimeList } from "@/api/schedulingMr/schedulingMr"
 | 
	
		
			
				|  |  | +import { exportExcel } from '@/utils/exportexcel'
 | 
	
		
			
				|  |  | +import { pageList as getPrintListApi } from "@/api/device/pda";
 | 
	
		
			
				|  |  | +import { pageList as getSeatTypeList } from '@/api/seatTypeMr/seatTypeMr'
 | 
	
		
			
				|  |  | +const https = require('https');
 | 
	
		
			
				|  |  | +const axios = require('axios');
 | 
	
		
			
				|  |  | +const mathM = require('mathjs')
 | 
	
		
			
				|  |  | +export default {
 | 
	
		
			
				|  |  | +  name: "agreement",
 | 
	
		
			
				|  |  | +  dicts: ['order_form_type', 'order_status_type', 'pay_way_type', 'personnel_type'],
 | 
	
		
			
				|  |  | +  components: { detailsDia },
 | 
	
		
			
				|  |  | +  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: '',
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      pagePerformTimeList: [], // 场次列表
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      handleExportLoading: false,
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      viewerList: [],
 | 
	
		
			
				|  |  | +      printList: [],
 | 
	
		
			
				|  |  | +      dialogVisible: false,
 | 
	
		
			
				|  |  | +      ruleForm: {},
 | 
	
		
			
				|  |  | +      rules: {
 | 
	
		
			
				|  |  | +        region: [
 | 
	
		
			
				|  |  | +          { required: true, message: '请选择备注', trigger: ['change', 'blur'] }
 | 
	
		
			
				|  |  | +        ],
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      dialogVisibleLoading: false,
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      seatTypeList: [],
 | 
	
		
			
				|  |  | +      multipleSelection: [],
 | 
	
		
			
				|  |  | +      tkDialogVisible: false,
 | 
	
		
			
				|  |  | +      tkDialogVisibleLoading: false,
 | 
	
		
			
				|  |  | +      tkSelectList: [],
 | 
	
		
			
				|  |  | +      tkRuleForm: {
 | 
	
		
			
				|  |  | +        "orderId": null,
 | 
	
		
			
				|  |  | +        "refundReason": null,
 | 
	
		
			
				|  |  | +        "remark": null,
 | 
	
		
			
				|  |  | +        "refundAmount": 0.01,
 | 
	
		
			
				|  |  | +        "viewerList": [
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            "viewerId": "1111",
 | 
	
		
			
				|  |  | +            "salePrice": 0.01
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        ]
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      tkRules: {
 | 
	
		
			
				|  |  | +        refundReason: [{ required: true, message: '请输入退款原因', trigger: ['blur', 'change'] }],
 | 
	
		
			
				|  |  | +        remark: [{ required: true, message: '请输入备注', trigger: ['blur', 'change'] }],
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      refundSubmitAction: null,
 | 
	
		
			
				|  |  | +      refundSubmitSuccess:[], // 成功条数
 | 
	
		
			
				|  |  | +      refundSubmitError: [], // 失败条数
 | 
	
		
			
				|  |  | +      refundSubmitErrorList: [], //
 | 
	
		
			
				|  |  | +    };
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  created() {
 | 
	
		
			
				|  |  | +    this.getSeatTypeListFun()
 | 
	
		
			
				|  |  | +    this.getList();
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  methods: {
 | 
	
		
			
				|  |  | +    /** 查询列表 */
 | 
	
		
			
				|  |  | +    getList() {
 | 
	
		
			
				|  |  | +      this.loading = true;
 | 
	
		
			
				|  |  | +      pageList(this.addDateRange(this.queryParams))
 | 
	
		
			
				|  |  | +        .then(response => {
 | 
	
		
			
				|  |  | +          this.dataList = response.data.rows;
 | 
	
		
			
				|  |  | +          this.total = response.data.total;
 | 
	
		
			
				|  |  | +          this.loading = false;
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 取消按钮
 | 
	
		
			
				|  |  | +    cancel() {
 | 
	
		
			
				|  |  | +      this.open = false;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 搜索按钮操作 */
 | 
	
		
			
				|  |  | +    handleQuery() {
 | 
	
		
			
				|  |  | +      this.queryParams.pageNum = 1;
 | 
	
		
			
				|  |  | +      if (this.queryParams.time) {
 | 
	
		
			
				|  |  | +        this.queryParams.payBeginTime = this.queryParams.time[0];
 | 
	
		
			
				|  |  | +        this.queryParams.payEndTime = this.queryParams.time[1];
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      if (this.queryParams.createTime && this.queryParams.createTime.length > 0) {
 | 
	
		
			
				|  |  | +        this.queryParams.createBeginTime = this.queryParams.createTime[0];
 | 
	
		
			
				|  |  | +        this.queryParams.createEndTime = this.queryParams.createTime[1];
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      this.getList();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 重置按钮操作 */
 | 
	
		
			
				|  |  | +    resetQuery() {
 | 
	
		
			
				|  |  | +      this.queryParams = {
 | 
	
		
			
				|  |  | +        pageNum: 1,
 | 
	
		
			
				|  |  | +        pageSize: 10,
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'orderId', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'status', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'memberMobile', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'source', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'performName', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'payBeginTime', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'payEndTime', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'time', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'createTime', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'createBeginTime', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'createEndTime', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'goodsName', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'performDate', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'timeSnapshot', '');
 | 
	
		
			
				|  |  | +      // this.$set(this.queryParams, 'performTimeId', '');
 | 
	
		
			
				|  |  | +      // this.queryParams.pageNum = 1;
 | 
	
		
			
				|  |  | +      this.handleQuery();
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 详情按钮操作 */
 | 
	
		
			
				|  |  | +    openDetails(row, type) {
 | 
	
		
			
				|  |  | +      this.$refs["detailsDia"].openDialog("详情", row, type);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    async pagePerformTimeListFun(value) {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        this.pagePerformTimeList = []
 | 
	
		
			
				|  |  | +        this.$set(this.queryParams, 'timeSnapshot', null)
 | 
	
		
			
				|  |  | +        if (!value) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +          return
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        let { data, code } = await pagePerformTimeList({
 | 
	
		
			
				|  |  | +          performDate: value,
 | 
	
		
			
				|  |  | +          pageNum: 1,
 | 
	
		
			
				|  |  | +          pageSize: 999
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        this.pagePerformTimeList = [].concat(data.rows)
 | 
	
		
			
				|  |  | +      } catch (error) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 导出报表
 | 
	
		
			
				|  |  | +     * @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]
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +          downOrderListXls(postMap)
 | 
	
		
			
				|  |  | +            .then((res) => {
 | 
	
		
			
				|  |  | +              exportExcel(res, '订单管理', '.xlsx');
 | 
	
		
			
				|  |  | +              this.handleExportLoading = false;
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            .catch((error) => {
 | 
	
		
			
				|  |  | +              console.log("error===", error)
 | 
	
		
			
				|  |  | +              this.handleExportLoading = false;
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        .catch(() => {
 | 
	
		
			
				|  |  | +          this.$message.info('您已取消导出!');
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    handleOpen(list = []) {
 | 
	
		
			
				|  |  | +      if (!list || list.length == 0) return
 | 
	
		
			
				|  |  | +      let idList = []
 | 
	
		
			
				|  |  | +      list.forEach((item, index) => {
 | 
	
		
			
				|  |  | +        idList.push(item.id)
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      this.viewerList = idList
 | 
	
		
			
				|  |  | +      this.getPrintListApi()
 | 
	
		
			
				|  |  | +      this.$set(this.ruleForm, 'region', '');
 | 
	
		
			
				|  |  | +      this.$nextTick(() => {
 | 
	
		
			
				|  |  | +        this.$refs.ruleForm.clearValidate('region')
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      this.dialogVisible = true
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    handleClose() {
 | 
	
		
			
				|  |  | +      this.dialogVisible = false
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 查询打印机列表 */
 | 
	
		
			
				|  |  | +    getPrintListApi() {
 | 
	
		
			
				|  |  | +      getPrintListApi({
 | 
	
		
			
				|  |  | +        deviceType: 5, pageNum: 1,
 | 
	
		
			
				|  |  | +        pageSize: 999,
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +        .then(response => {
 | 
	
		
			
				|  |  | +          this.printList = response.data.rows;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /**  选择打印机  */
 | 
	
		
			
				|  |  | +    selectPrint() {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    // 打印 
 | 
	
		
			
				|  |  | +    async print(list = []) {
 | 
	
		
			
				|  |  | +      this.$refs.ruleForm.validate(async (valid) => {
 | 
	
		
			
				|  |  | +        if (valid) {
 | 
	
		
			
				|  |  | +          this.dialogVisibleLoading = true
 | 
	
		
			
				|  |  | +          try {
 | 
	
		
			
				|  |  | +            let res = await printApi({
 | 
	
		
			
				|  |  | +              viewerList: list,
 | 
	
		
			
				|  |  | +              source: 2,
 | 
	
		
			
				|  |  | +              deviceId: this.ruleForm.region
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            if (res.code == 200) {
 | 
	
		
			
				|  |  | +              let url = res.data.linkIp
 | 
	
		
			
				|  |  | +              let printInfo = res.data.printInfo
 | 
	
		
			
				|  |  | +              this.connectPrint(url, printInfo)
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +              throw new Error(res)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          } catch (error) {
 | 
	
		
			
				|  |  | +            this.dialogVisible = false
 | 
	
		
			
				|  |  | +            this.dialogVisibleLoading = false
 | 
	
		
			
				|  |  | +            console.error("error=====", error)
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          console.log('error submit!!');
 | 
	
		
			
				|  |  | +          return false;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /**  连接打印机  */
 | 
	
		
			
				|  |  | +    connectPrint(url, data) {
 | 
	
		
			
				|  |  | +      // 创建忽略 SSL 的 axios 实例
 | 
	
		
			
				|  |  | +      const ignoreSSL = axios.create({
 | 
	
		
			
				|  |  | +        httpsAgent: new https.Agent({
 | 
	
		
			
				|  |  | +          rejectUnauthorized: false
 | 
	
		
			
				|  |  | +        }),
 | 
	
		
			
				|  |  | +        withCredentials: true, // 跨域请求时发送Cookie
 | 
	
		
			
				|  |  | +        timeout: 60000, // 请求超时
 | 
	
		
			
				|  |  | +        headers: {
 | 
	
		
			
				|  |  | +          "Content-Type": "application/json; charset=UTF-8;"
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +      ignoreSSL.post(url,
 | 
	
		
			
				|  |  | +        { ...data }
 | 
	
		
			
				|  |  | +      ).then(() => {
 | 
	
		
			
				|  |  | +        this.dialogVisible = false
 | 
	
		
			
				|  |  | +        this.dialogVisibleLoading = false
 | 
	
		
			
				|  |  | +      }).catch(() => {
 | 
	
		
			
				|  |  | +        this.dialogVisible = false
 | 
	
		
			
				|  |  | +        this.dialogVisibleLoading = false
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 获取座位类型  */
 | 
	
		
			
				|  |  | +    async getSeatTypeListFun() {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        let res = await getSeatTypeList({
 | 
	
		
			
				|  |  | +          pageNum: 1, pageSize: 999
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        this.seatTypeList = res.data.rows
 | 
	
		
			
				|  |  | +      } catch (error) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /**  打开弹窗  */
 | 
	
		
			
				|  |  | +    openRefundSubmitModel(data, type) {
 | 
	
		
			
				|  |  | +      this.refundSubmitSuccess = []
 | 
	
		
			
				|  |  | +      this.refundSubmitError = []
 | 
	
		
			
				|  |  | +      let list = []
 | 
	
		
			
				|  |  | +      data.forEach((item,index)=>{
 | 
	
		
			
				|  |  | +        let flog = false
 | 
	
		
			
				|  |  | +        let indexNew = null
 | 
	
		
			
				|  |  | +        list.forEach((item1,index1)=>{
 | 
	
		
			
				|  |  | +          if(item.orderId == item1.orderId) {
 | 
	
		
			
				|  |  | +            flog = true
 | 
	
		
			
				|  |  | +            indexNew = index1
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        if(!flog){
 | 
	
		
			
				|  |  | +          list.push({
 | 
	
		
			
				|  |  | +            "orderId": item.orderId,
 | 
	
		
			
				|  |  | +            "refundReason": null,
 | 
	
		
			
				|  |  | +            "remark": null,
 | 
	
		
			
				|  |  | +            "refundAmount": 0,
 | 
	
		
			
				|  |  | +            "viewerList": [
 | 
	
		
			
				|  |  | +              {
 | 
	
		
			
				|  |  | +                "viewerId": item.id,
 | 
	
		
			
				|  |  | +                "salePrice": item.realPrice?item.realPrice:0
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            ]
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          list[indexNew].viewerList.push({
 | 
	
		
			
				|  |  | +            "viewerId": item.id,
 | 
	
		
			
				|  |  | +            "salePrice": item.realPrice?item.realPrice:0
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      let refundAmountAll = 0
 | 
	
		
			
				|  |  | +      list.forEach((item,index)=>{
 | 
	
		
			
				|  |  | +        if(item.viewerList && item.viewerList.length > 0){
 | 
	
		
			
				|  |  | +          let refundAmount = 0
 | 
	
		
			
				|  |  | +          item.viewerList.forEach((item1,index1)=>{
 | 
	
		
			
				|  |  | +            refundAmount = mathM.format(Number(refundAmount) + Number(item1.salePrice),10) 
 | 
	
		
			
				|  |  | +            refundAmountAll = mathM.format(Number(refundAmountAll) + Number(item1.salePrice),10)
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +          list[index].refundAmount = refundAmount
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      })
 | 
	
		
			
				|  |  | +      this.tkRuleForm['refundAmountAll'] = refundAmountAll
 | 
	
		
			
				|  |  | +      this.tkSelectList = JSON.parse(JSON.stringify(list))
 | 
	
		
			
				|  |  | +      console.log("dfsfdsfsdfds====",this.tkSelectList)
 | 
	
		
			
				|  |  | +      this.tkDialogVisible = true
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    tkSubmitForm(formName) {
 | 
	
		
			
				|  |  | +        this.$refs[formName].validate((valid) => {
 | 
	
		
			
				|  |  | +          if (valid) {
 | 
	
		
			
				|  |  | +            let listCopy = JSON.parse(JSON.stringify(this.tkSelectList))
 | 
	
		
			
				|  |  | +            this.tkSelectList.forEach((item,index)=>{
 | 
	
		
			
				|  |  | +              listCopy[index] = {
 | 
	
		
			
				|  |  | +                ...item,
 | 
	
		
			
				|  |  | +                refundReason: this.tkRuleForm.refundReason?this.tkRuleForm.refundReason:'',
 | 
	
		
			
				|  |  | +                remark: this.tkRuleForm.remark?this.tkRuleForm.remark:''
 | 
	
		
			
				|  |  | +              }
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            this.tkSelectList = listCopy
 | 
	
		
			
				|  |  | +            this.refundSubmitFun(0)
 | 
	
		
			
				|  |  | +            if(this.refundSubmitError && this.refundSubmitError.length>0) {
 | 
	
		
			
				|  |  | +              let list = []
 | 
	
		
			
				|  |  | +              this.refundSubmitError.forEach((item,index)=>{
 | 
	
		
			
				|  |  | +                this.tkSelectList.forEach((item1,index1)=>{
 | 
	
		
			
				|  |  | +                  if(item == item1.orderId){
 | 
	
		
			
				|  |  | +                    list.push(item1)
 | 
	
		
			
				|  |  | +                  }
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  | +              })
 | 
	
		
			
				|  |  | +              this.refundSubmitErrorList = list
 | 
	
		
			
				|  |  | +              this.moreRefundSubmitFun(0)
 | 
	
		
			
				|  |  | +            }else {
 | 
	
		
			
				|  |  | +              this.refundSubmitFun(0)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            console.log('error submit!!');
 | 
	
		
			
				|  |  | +            return false;
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 批量退票 */
 | 
	
		
			
				|  |  | +    async refundSubmitFun(index) {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        this.tkDialogVisibleLoading = true
 | 
	
		
			
				|  |  | +        this.refundSubmitAction = this.tkSelectList[index].orderId
 | 
	
		
			
				|  |  | +        let res = await refundSubmitApi({
 | 
	
		
			
				|  |  | +          ...this.tkSelectList[index]
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        this.refundSubmitAction = null
 | 
	
		
			
				|  |  | +        if(res.code == 200) {
 | 
	
		
			
				|  |  | +          this.refundSubmitSuccess.push(this.tkSelectList[index].orderId)
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          this.refundSubmitError.push(this.tkSelectList[index].orderId)
 | 
	
		
			
				|  |  | +          this.$message.error(`订单号:${this.tkSelectList[index].orderId},退款失败`);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if((index+1) < this.tkSelectList.length) {
 | 
	
		
			
				|  |  | +          this.refundSubmitAction = this.tkSelectList[index+1].orderId
 | 
	
		
			
				|  |  | +          setTimeout(() => {
 | 
	
		
			
				|  |  | +            this.refundSubmitFun(index+1)
 | 
	
		
			
				|  |  | +          }, 3000);
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          this.tkDialogVisibleLoading = false
 | 
	
		
			
				|  |  | +          if(this.refundSubmitError.length == 0) {
 | 
	
		
			
				|  |  | +            this.$message({
 | 
	
		
			
				|  |  | +              message: '全部退款成功!!!',
 | 
	
		
			
				|  |  | +              type: 'success'
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            // this.handleCloseTk()
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      } catch (error) {
 | 
	
		
			
				|  |  | +        console.error(index+"===error====",error)
 | 
	
		
			
				|  |  | +        this.refundSubmitAction = null
 | 
	
		
			
				|  |  | +        this.refundSubmitError.push(this.tkSelectList[index].orderId)
 | 
	
		
			
				|  |  | +        this.$message.error(`订单号:${this.tkSelectList[index].orderId},退款失败`);
 | 
	
		
			
				|  |  | +        if((index+1) < this.tkSelectList.length) {
 | 
	
		
			
				|  |  | +          this.refundSubmitAction = this.tkSelectList[index+1].orderId
 | 
	
		
			
				|  |  | +          setTimeout(() => {
 | 
	
		
			
				|  |  | +            this.refundSubmitFun(index+1)
 | 
	
		
			
				|  |  | +          }, 3000);
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          this.tkDialogVisibleLoading = false
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /** 再次 批量退票 */
 | 
	
		
			
				|  |  | +    async moreRefundSubmitFun(index) {
 | 
	
		
			
				|  |  | +      try {
 | 
	
		
			
				|  |  | +        this.refundSubmitError = []
 | 
	
		
			
				|  |  | +        this.tkDialogVisibleLoading = true
 | 
	
		
			
				|  |  | +        this.refundSubmitAction = this.refundSubmitErrorList[index].orderId
 | 
	
		
			
				|  |  | +        let res = await refundSubmitApi({
 | 
	
		
			
				|  |  | +          ...this.refundSubmitErrorList[index]
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +        this.refundSubmitAction = null
 | 
	
		
			
				|  |  | +        if(res.code == 200) {
 | 
	
		
			
				|  |  | +          this.refundSubmitSuccess.push(this.refundSubmitErrorList[index].orderId)
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          this.refundSubmitError.push(this.refundSubmitErrorList[index].orderId)
 | 
	
		
			
				|  |  | +          this.$message.error(`订单号:${this.refundSubmitErrorList[index].orderId},退款失败`);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        if((index+1) < this.refundSubmitErrorList.length) {
 | 
	
		
			
				|  |  | +          this.refundSubmitAction = this.refundSubmitErrorList[index+1].orderId
 | 
	
		
			
				|  |  | +          setTimeout(() => {
 | 
	
		
			
				|  |  | +            this.refundSubmitFun(index+1)
 | 
	
		
			
				|  |  | +          }, 3000);
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          this.tkDialogVisibleLoading = false
 | 
	
		
			
				|  |  | +          if(this.refundSubmitErrorList.length == 0) {
 | 
	
		
			
				|  |  | +            this.$message({
 | 
	
		
			
				|  |  | +              message: '全部退款成功!!!',
 | 
	
		
			
				|  |  | +              type: 'success'
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            // this.handleCloseTk()
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      } catch (error) {
 | 
	
		
			
				|  |  | +        console.error(index+"===error====",error)
 | 
	
		
			
				|  |  | +        this.refundSubmitAction = null
 | 
	
		
			
				|  |  | +        this.refundSubmitError.push(this.refundSubmitErrorList[index].orderId)
 | 
	
		
			
				|  |  | +        this.$message.error(`订单号:${this.refundSubmitErrorList[index].orderId},退款失败`);
 | 
	
		
			
				|  |  | +        if((index+1) < this.refundSubmitErrorList.length) {
 | 
	
		
			
				|  |  | +          this.refundSubmitAction = this.refundSubmitErrorList[index+1].orderId
 | 
	
		
			
				|  |  | +          setTimeout(() => {
 | 
	
		
			
				|  |  | +            this.refundSubmitFun(index+1)
 | 
	
		
			
				|  |  | +          }, 3000);
 | 
	
		
			
				|  |  | +        }else {
 | 
	
		
			
				|  |  | +          this.tkDialogVisibleLoading = false
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /**  退款状态  */
 | 
	
		
			
				|  |  | +    refundSubmitStatus(row){
 | 
	
		
			
				|  |  | +      
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /**  选择 */
 | 
	
		
			
				|  |  | +    handleSelectionChange(val) {
 | 
	
		
			
				|  |  | +      this.multipleSelection = val;
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    /**  是否可用 */
 | 
	
		
			
				|  |  | +    isSelectableFun(row, index){
 | 
	
		
			
				|  |  | +      return row.status == 3 || row.status == 6
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    handleCloseTk(formName){
 | 
	
		
			
				|  |  | +      console.log('dsfsdfsdf')
 | 
	
		
			
				|  |  | +      this.tkDialogVisible = false
 | 
	
		
			
				|  |  | +      if(this.$refs.tkRuleForm) {
 | 
	
		
			
				|  |  | +        this.$refs.tkRuleForm.resetFields()
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      this.getList();
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +};
 | 
	
		
			
				|  |  | +</script>
 |