dct 8 месяцев назад
Родитель
Сommit
afe9768bb9

+ 4 - 4
src/api/member.js

@@ -132,10 +132,10 @@ export function pickInvoice (params, type, buyer, tax_num, phone, email) {
   return http.post('/member/pickInvoice', {
     orderIdList: params,
     invoiceType: type,
-    invoice_buyer: buyer,
-    invoice_buyer_tax_num: tax_num,
-    invoice_buyer_phone: phone,
-    invoice_buyer_email: email
+    invoiceBuyer: buyer,
+    invoiceBuyerTaxNum: tax_num,
+    invoiceBuyerPhone: phone,
+    invoiceBuyerEmail: email
   })
 }
 

+ 8 - 8
src/api/order.js

@@ -120,20 +120,20 @@ export function pickInvoice (
   tax_num,
   email,
   phone,
-  invoice_buyer_address,
-  invoice_buyer_bank_account,
+  invoiceBuyerAddress,
+  invoiceBuyerBankAccount,
   remark
 ) {
   return http.post('/order/pickInvoice', {
     orderIdList: params,
     ticketIdList,
     invoiceType: type,
-    invoice_buyer: buyer,
-    invoice_buyer_tax_num: tax_num,
-    invoice_buyer_email: email,
-    invoice_buyer_phone: phone,
-    invoice_buyer_address,
-    invoice_buyer_bank_account,
+    invoiceBuyer: buyer,
+    invoiceBuyerTaxNum: tax_num,
+    invoiceBuyerEmail: email,
+    invoiceBuyerPhone: phone,
+    invoiceBuyerAddress,
+    invoiceBuyerBankAccount,
     remark
   })
 }

+ 72 - 13
src/assets/staticData.js

@@ -34,19 +34,23 @@ export const orderStatusDic = [
   },
   {
     value: 'WAIT_USE',
-    label: '未检票'
+    label: '待使用'
   },
   {
     value: 'PART_USE',
-    label: '部分检票'
+    label: '部分使用'
   },
   {
     value: 'COMPLETE',
-    label: '已检票'
+    label: '已完成'
   },
   {
     value: 'CANCELED',
-    label: '已退票'
+    label: '已取消'
+  },
+  {
+    value: 'PART_CANCEL',
+    label: '部分取消'
   },
   {
     value: 'CLOSED',
@@ -58,13 +62,13 @@ export const ticketStatusDic = [
     value: 'WAIT_USE',
     label: '待使用'
   },
-  // {
-  //   value: 'PART_USE',
-  //   label: '部分检票'
-  // },
   {
     value: 'USED',
-    label: '已使用'
+    label: '已核销'
+  },
+  {
+    value: 'REFUNDING',
+    label: '退款中'
   },
   // {
   //   value: 'OUTOFDATE',
@@ -73,6 +77,10 @@ export const ticketStatusDic = [
   {
     value: 'CANCELED',
     label: '已取消'
+  },
+  {
+    value: 'CLOSED',
+    label: '已关闭'
   }
 ]
 
@@ -101,11 +109,11 @@ export const OrderStatus = {
     type: ''
   },
   WAIT_USE: {
-    label: '未检票',
+    label: '待使用',
     type: 'success'
   },
   PART_USE: {
-    label: '部分检票',
+    label: '部分使用',
     type: 'warning'
   },
   USED: {
@@ -113,11 +121,62 @@ export const OrderStatus = {
     type: ''
   },
   COMPLETE: {
-    label: '已检票',
+    label: '已完成',
+    type: ''
+  },
+  CANCELED: {
+    label: '已取消',
+    type: 'danger'
+  },
+  PART_CANCEL: {
+    label: '部分取消',
+    type: 'danger'
+  },
+  OUTOFDATE: {
+    label: '已过期',
+    type: 'info'
+  },
+  REFUNDING: {
+    label: '退款中',
+    type: 'info'
+  },
+  CLOSED: {
+    label: '已关闭',
+    type: 'info'
+  },
+  '': {
+    label: '其它',
+    type: 'info'
+  }
+}
+
+export const TicketStatus = {
+  WAIT_PAY: {
+    label: '待支付',
+    type: ''
+  },
+  WAIT_USE: {
+    label: '待使用',
+    type: 'success'
+  },
+  PART_USE: {
+    label: '部分使用',
+    type: 'warning'
+  },
+  USED: {
+    label: '已核销',
+    type: ''
+  },
+  COMPLETE: {
+    label: '已完成',
     type: ''
   },
   CANCELED: {
-    label: '已退票',
+    label: '已取消',
+    type: 'danger'
+  },
+  PART_CANCEL: {
+    label: '部分取消',
     type: 'danger'
   },
   OUTOFDATE: {

+ 149 - 156
src/components/GlobalComponents/OrderDetail.vue

@@ -92,30 +92,53 @@
           <el-form-item label="支付方式">
             {{ orderData.payChannel }}
           </el-form-item>
-          <el-form-item
-            label="卡号"
-            v-if="orderData.payChannel === '储值卡支付'"
-          >
-            {{ orderData.memberSystemPayInfo.cardNo }}
-          </el-form-item>
-          <el-form-item
-            label="姓名"
-            v-if="orderData.payChannel === '储值卡支付'"
-          >
-            {{ orderData.memberSystemPayInfo.name }}
-          </el-form-item>
-          <el-form-item
-            label="身份证号"
-            v-if="orderData.payChannel === '储值卡支付'"
-          >
-            {{ orderData.memberSystemPayInfo.idcardNo }}
-          </el-form-item>
-          <el-form-item
-            label="手机号"
-            v-if="orderData.payChannel === '储值卡支付'"
-          >
-            {{ orderData.memberSystemPayInfo.phone }}
-          </el-form-item>
+          <div class="title">支付信息列表</div>
+          <el-table border :data="orderData.payContext.payList">
+            <el-table-column prop="orderNo" label="支付订单号">
+            </el-table-column>
+            <el-table-column prop="payStatus" label="支付状态"> </el-table-column>
+            <el-table-column prop="submitTime" label="提交时间"> </el-table-column>
+            <el-table-column prop="payTime" label="支付完成时间">
+            </el-table-column>
+            <el-table-column prop="fee" label="支付金额">
+            </el-table-column>
+            <el-table-column prop="outOrderNo" label="第三方订单号">
+            </el-table-column>
+            <el-table-column prop="errMsg" label="支付错误信息">
+            </el-table-column>
+          </el-table>
+          <div class="title">退款信息</div>
+          <el-table border :data="orderData.payContext.payRefundList">
+            <el-table-column prop="status" label="退款状态">
+            </el-table-column>
+            <el-table-column prop="refundFee" label="退款金额">
+            </el-table-column>
+            <el-table-column prop="refundOrderNo" label="退款订单号">
+            </el-table-column>
+            <el-table-column prop="outRefundOrderNo" label="第三方退款单号">
+            </el-table-column>
+            <el-table-column prop="submitTime" label="退款提交时间">
+            </el-table-column>
+            <el-table-column prop="completeTime" label="退款完成时间">
+            </el-table-column>
+            <el-table-column prop="errMsg" label="退款错误信息">
+            </el-table-column>
+          </el-table>
+          <div class="title">退款明细</div>
+          <el-table border :data="orderData.payContext.payRefundTaskList">
+            <el-table-column prop="status" label="退款明细状态">
+            </el-table-column>
+            <el-table-column prop="refundFee" label="退款金额">
+            </el-table-column>
+            <el-table-column prop="refundRetryCount" label="退款重试次数">
+            </el-table-column>
+            <el-table-column prop="submitTime" label="退款提交时间">
+            </el-table-column>
+            <el-table-column prop="completeTime" label="退款完成时间">
+            </el-table-column>
+            <el-table-column prop="errMsg" label="退款错误信息">
+            </el-table-column>
+          </el-table>
         </el-tab-pane>
         <el-tab-pane
           class="block-title"
@@ -133,7 +156,7 @@
             </el-table-column>
           </el-table>
         </el-tab-pane>
-        <el-tab-pane class="block-title" label="购票信息" name="customerInfo">
+        <el-tab-pane class="block-title" label="购票信息" name="customerInfo">
           <el-form-item
             :label="orderData.groupIndividual === 1 ? '预订人' : '购买人'"
           >
@@ -159,126 +182,10 @@
             {{ orderData.salesperson }}
           </el-form-item>
           <el-table border :data="orderData.ticketList">
-            <!-- <el-table-column type="expand">
-              <template slot-scope="scope">
-                <el-table :data="scope.row.ticketList">
-                  <el-table-column prop="name" label="姓名"></el-table-column>
-                  <el-table-column label="证件类型">
-                    <template slot-scope="idType">
-                      {{ papersType[idType.row.idType] }}
-                    </template>
-                  </el-table-column>
-                  <el-table-column
-                    prop="guestIdentify"
-                    label="证件号"
-                  ></el-table-column>
-                  <el-table-column
-                    prop="guestPhone"
-                    label="手机号"
-                  ></el-table-column>
-                </el-table>
-              </template>
-            </el-table-column> -->
-            <el-table-column width="80" label="序号" prop="id">
-              <template slot-scope="scope">
-                {{ scope.row.id.toString().padStart(8, "0") }}
-              </template>
-            </el-table-column>
             <el-table-column prop="ticketNo" label="票号"> </el-table-column>
-
-            <el-table-column prop="tname" label="票种"> </el-table-column>
-
-            <template v-if="orderData.ticketList[0]">
-              <el-table-column
-                v-if="orderData.ticketList[0].performName"
-                label="节目"
-              >
-                <template slot-scope="scope">
-                  {{ scope.row.performName }}
-                </template>
-              </el-table-column>
-
-              <el-table-column
-                v-if="orderData.ticketList[0].batchConfigName"
-                label="场次"
-              >
-                <template slot-scope="scope">
-                  {{ scope.row.batchConfigName }}
-                </template>
-              </el-table-column>
-
-              <el-table-column prop="serialNumber" label="场次内序号">
-              </el-table-column>
-              <el-table-column
-                v-if="orderData.ticketList[0].scheduleConfigName"
-                prop="scheduleConfigName"
-                label="班次"
-              >
-              </el-table-column>
-              <el-table-column
-                v-if="orderData.ticketList[0].scheduleConfigName"
-                label="班次内序号"
-              >
-                <template
-                  slot-scope="scope"
-                  v-if="scope.row.scheduleConfigName"
-                >
-                  {{ scope.row.scheduleSerialNumber }}
-                </template>
-              </el-table-column>
-              <el-table-column
-                v-if="orderData.ticketList[0].seatAreaName"
-                label="区域"
-              >
-                <template slot-scope="scope">
-                  {{ scope.row.seatAreaName }}
-                </template>
-              </el-table-column>
-
-              <el-table-column
-                v-if="orderData.ticketList[0].seatName"
-                label="座位号"
-              >
-                <template slot-scope="scope">
-                  {{
-                    `${scope.row.seatNameNew}${scope.row.seatRowTag}排${
-                      scope.row.seatName
-                    }座`
-                  }}
-                </template>
-              </el-table-column>
-            </template>
-
-            <el-table-column
-              width="80"
-              label="原价(¥)"
-              v-if="orderData.customerType"
-            >
-              <template slot-scope="scope">
-                {{ scope.row.originalPrice }}
-              </template>
-            </el-table-column>
-
-            <el-table-column width="80" label="票价(¥)">
-              <template slot-scope="scope">
-                {{ scope.row.price }}
-              </template>
-            </el-table-column>
-
-            <el-table-column
-              width="80"
-              label="折扣"
-              v-if="orderData.customerType"
-            >
-              <template slot-scope="scope">
-                {{
-                  scope.row.discount === 100
-                    ? "无"
-                    : scope.row.discount / 10 + "折"
-                }}
-              </template>
+            <el-table-column prop="ticketTypeName" label="票种"> </el-table-column>
+            <el-table-column width="80" prop="price" label="票价(¥)">
             </el-table-column>
-
             <el-table-column prop="guestName" label="游客姓名">
             </el-table-column>
             <el-table-column prop="guestPhone" label="游客手机号">
@@ -289,17 +196,14 @@
               </template>
             </el-table-column>
             <el-table-column prop="guestIdentify" label="证件号码">
-              <template slot-scope="scope">
-                {{ scope.row.guestIdentify }}
-              </template>
             </el-table-column>
 
             <el-table-column width="100" prop="checkNum" label="检票人数">
             </el-table-column>
 
-            <el-table-column width="100" prop="payDateBegin" label="游玩时间">
+            <el-table-column width="100" prop="playDateBegin" label="游玩时间">
               <template slot-scope="scope">
-                {{ scope.row.payDateBegin || "无限制" }}
+                {{ scope.row.playDateBegin || scope.row.playDateEnd ? `${scope.row.playDateBegin || ''} - ${scope.row.playDateEnd || ''}` : "无限制" }}
               </template>
             </el-table-column>
             <el-table-column width="80" label="取票状态">
@@ -311,7 +215,7 @@
             </el-table-column>
             <el-table-column width="80" label="状态">
               <template slot-scope="scope">
-                <OrderStatusTag :value="scope.row.status"></OrderStatusTag>
+                <TicketStatusTag :value="scope.row.status"></TicketStatusTag>
               </template>
             </el-table-column>
             <el-table-column width="80" prop="price" label="小计">
@@ -319,7 +223,7 @@
             <el-table-column width="80" label="检票景点">
               <template slot-scope="scope">
                 <el-button
-                  v-if="scope.row.ticketListcenic"
+                  v-if="scope.row.ticketListScenic"
                   @click="showDetail(scope.row)"
                 >
                   明细
@@ -328,6 +232,69 @@
             </el-table-column>
           </el-table>
         </el-tab-pane>
+        <el-tab-pane class="block-title" label="修改记录" name="orderUpdateLog">
+          <el-table border :data="orderData.orderUpdateLogList">
+            <el-table-column prop="updateType" label="修改类型">
+            </el-table-column>
+            <el-table-column prop="orderNo" label="订单号">
+            </el-table-column>
+            <el-table-column prop="ticketNo" label="票号">
+            </el-table-column>
+            <el-table-column prop="oldValue" label="修改前">
+            </el-table-column>
+            <el-table-column prop="newValue" label="修改后">
+            </el-table-column>
+            <el-table-column prop="updateAdminName" label="操作人">
+            </el-table-column>
+            <el-table-column prop="createTime" label="修改时间">
+            </el-table-column>
+          </el-table>
+        </el-tab-pane>
+        <el-tab-pane class="block-title" label="检票信息" name="ticketCheckInfo">
+          <div class="title">检票景点明细</div>
+          <el-table :data="orderData.ticketCheckScenicList">
+            <el-table-column
+              prop="scenicName"
+              label="景点"
+            ></el-table-column>
+            <el-table-column
+              prop="checkLimitTimes"
+              label="可检票次数"
+            >
+              <template slot-scope="scope">
+                {{ scope.row.checkLimitTimes === -1 ? "无限制" : scope.row.checkLimitTimes }}
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="checkedTimes"
+              label="已检票次数"
+            ></el-table-column>
+            <el-table-column
+              prop="createTime"
+              label="创建时间"
+            ></el-table-column>
+          </el-table>
+          <div class="title">门票检票日志</div>
+          <el-table border :data="orderData.ticketCheckLogList">
+            <el-table-column prop="checkType" label="检票类型">
+              <template slot-scope="prop">
+                {{ prop.row.checkType | checkTypeFilter }}
+              </template>
+            </el-table-column>
+            <el-table-column prop="scenicName" label="景点名称"> </el-table-column>
+            <el-table-column prop="checkAdminName" label="检票员"> </el-table-column>
+            <el-table-column prop="checkerName" label="检票设备名称"> </el-table-column>
+            <el-table-column prop="checkTime" label="检票时间"> </el-table-column>
+            <el-table-column prop="createTime" label="创建时间"> </el-table-column>
+          </el-table>
+        </el-tab-pane>
+        <el-tab-pane class="block-title" label="补打信息" name="secondPrintInfo">
+          <el-table border :data="orderData.ticketSecondPrintLogList">
+            <el-table-column prop="printAdminName" label="操作人"> </el-table-column>
+            <el-table-column prop="printTime" label="操作时间"> </el-table-column>
+            <el-table-column prop="createTime" label="创建时间"> </el-table-column>
+          </el-table>
+        </el-tab-pane>
       </el-tabs>
 
       <el-dialog
@@ -336,17 +303,17 @@
         append-to-body
       >
         <div style="padding:20px">
-          <el-table :data="record.ticketListcenic">
+          <el-table :data="record.ticketListScenic">
             <el-table-column
-              property="scenic_name"
+              prop="scenic_name"
               label="景点"
             ></el-table-column>
             <el-table-column
-              property="checkLimitTimes"
+              prop="checkLimitTimes"
               label="可检票次数"
             ></el-table-column>
             <el-table-column
-              property="checked_times"
+              prop="checked_times"
               label="已检票次数"
             ></el-table-column>
           </el-table>
@@ -359,6 +326,7 @@
 <script>
 import { channelList, IDENTIFY_TYPES } from '@/assets/staticData'
 import { getPayResponse } from '@/utils/posUtils'
+import { getSingleOrder } from '@/api/order'
 
 export default {
   created () {
@@ -394,14 +362,39 @@ export default {
       activeTab: 'baseInfo'
     }
   },
+  filters: {
+    checkTypeFilter (input) {
+      switch (input) {
+        case 'qrcode':
+          return '二维码'
+        case 'face':
+          return '人脸'
+        case 'idcard':
+          return '身份证'
+        case 'person':
+          return '人工检票'
+        default:
+          break
+      }
+    }
+  },
   methods: {
     getPayResponse,
-    show (data) {
+    async show (data) {
       this.visible = true
       if (data.pictureRemarks) {
         data.pictureRemarks = data.pictureRemarks.filter(i => i.url)
       }
-      this.orderData = data
+      const res = await getSingleOrder(data.id)
+      this.orderData = res?.data || data
+
+      if (!this.orderData.payContext) {
+        this.orderData.payContext = {
+          payList: [],
+          payRefundList: [],
+          payRefundTaskList: []
+        }
+      }
     },
     handleClose () {
       this.visible = false

+ 26 - 0
src/components/GlobalComponents/TicketStatusTag.vue

@@ -0,0 +1,26 @@
+<template>
+  <el-tag :type="TicketStatus[value]&&TicketStatus[value].type">
+    {{ TicketStatus[value]&&TicketStatus[value].label || value }}
+  </el-tag>
+</template>
+
+<script>
+import { TicketStatus } from '@/assets/staticData'
+export default {
+  data () {
+    return {
+      TicketStatus
+    }
+  },
+  props: {
+    value: {
+      type: String,
+      default: ''
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 19 - 19
src/pages/member/memberTradeLog.vue

@@ -356,37 +356,37 @@
           v-if="!formEl.invoiceType"
           verify
           label="购买方"
-          prop="invoice_buyer"
+          prop="invoiceBuyer"
         >
           <el-input
-            v-model="formEl.invoice_buyer"
+            v-model="formEl.invoiceBuyer"
             style="width:100%"></el-input>
         </el-form-item>
         <el-form-item
           v-if="!formEl.invoiceType"
           label="纳税⼈识别号"
-          prop="invoice_buyer_tax_num "
+          prop="invoiceBuyerTaxNum "
         >
           <el-input
-            v-model="formEl.invoice_buyer_tax_num"
+            v-model="formEl.invoiceBuyerTaxNum"
             style="width:100%"></el-input>
         </el-form-item>
         <el-form-item
           v-if="!formEl.invoiceType"
           label="纳税⼈手机号"
-          prop="invoice_buyer_phone "
+          prop="invoiceBuyerPhone "
         >
           <el-input
-            v-model="formEl.invoice_buyer_phone"
+            v-model="formEl.invoiceBuyerPhone"
             style="width:100%"></el-input>
         </el-form-item>
         <el-form-item
           v-if="!formEl.invoiceType"
           label="纳税⼈邮箱"
-          prop="invoice_buyer_email "
+          prop="invoiceBuyerEmail "
         >
           <el-input
-            v-model="formEl.invoice_buyer_email"
+            v-model="formEl.invoiceBuyerEmail"
             style="width:100%"></el-input>
         </el-form-item>
       </el-form>
@@ -446,10 +446,10 @@ export default {
       invoiceType: 0,
       formEl: {
         invoiceType: 1,
-        invoice_buyer: '',
-        invoice_buyer_tax_num: '',
-        invoice_buyer_phone: '',
-        invoice_buyer_email: ''
+        invoiceBuyer: '',
+        invoiceBuyerTaxNum: '',
+        invoiceBuyerPhone: '',
+        invoiceBuyerEmail: ''
       },
       currentOrder: {},
       visible: false
@@ -538,20 +538,20 @@ export default {
       this.$refs.formEl.validate(valid => {
         if (!valid) return
         if (this.formEl.invoiceType) {
-          this.formEl.invoice_buyer = ''
-          this.formEl.invoice_buyer_tax_num = ''
-          this.formEl.invoice_buyer_phone = ''
-          this.formEl.invoice_buyer_email = ''
+          this.formEl.invoiceBuyer = ''
+          this.formEl.invoiceBuyerTaxNum = ''
+          this.formEl.invoiceBuyerPhone = ''
+          this.formEl.invoiceBuyerEmail = ''
         }
-        pickInvoice([this.currentOrder.id], this.formEl.invoiceType, this.formEl.invoice_buyer, this.formEl.invoice_buyer_tax_num, this.formEl.invoice_buyer_phone, this.formEl.invoice_buyer_email).then(res => {
+        pickInvoice([this.currentOrder.id], this.formEl.invoiceType, this.formEl.invoiceBuyer, this.formEl.invoiceBuyerTaxNum, this.formEl.invoiceBuyerPhone, this.formEl.invoiceBuyerEmail).then(res => {
           this.$message.success('操作成功')
           this.getList()
           this.visible = false
           this.currentOrder = {}
           this.formEl = {
             invoiceType: 1,
-            invoice_buyer: '',
-            invoice_buyer_tax_num: ''
+            invoiceBuyer: '',
+            invoiceBuyerTaxNum: ''
           }
           this.$confirm('发票已生成,是否跳转到发票下载页?', '提示', {
             confirmButtonText: '确定',

+ 6 - 6
src/pages/queryReport/invoiceRecord.vue

@@ -171,32 +171,32 @@
         >
         </el-table-column>
         <el-table-column
-          prop="invoice_buyer"
+          prop="invoiceBuyer"
           label="购买方"
         >
         </el-table-column>
         <el-table-column
-          prop="invoice_buyer_email"
+          prop="invoiceBuyerEmail"
           label="购买人邮箱"
         >
         </el-table-column>
         <el-table-column
-          prop="invoice_buyer_phone"
+          prop="invoiceBuyerPhone"
           label="购买人电话"
         >
         </el-table-column>
         <el-table-column
-          prop="invoice_buyer_tax_num"
+          prop="invoiceBuyerTaxNum"
           label="购买方税号"
         >
         </el-table-column>
         <el-table-column
-          prop="invoice_buyer_address"
+          prop="invoiceBuyerAddress"
           label="购买方地址"
         >
         </el-table-column>
         <el-table-column
-          prop="invoice_buyer_bank_account"
+          prop="invoiceBuyerBankAccount"
           label="购买方银行开户行及账号"
         >
         </el-table-column>

+ 277 - 278
src/pages/queryReport/salesQuery.vue

@@ -16,176 +16,137 @@
       >
         <el-input v-model="form.orderNo"></el-input>
       </el-form-item>
-      <template>
-        <el-form-item
-          label="合作方订单号"
-          prop="partnerOrderNo"
-        >
-          <el-input v-model="form.partnerOrderNo"></el-input>
-        </el-form-item>
-      </template>
-      <!-- <el-form-item
-        label="票号"
-        prop="keyWords7"
-      >
-        <QRReader v-model="form.keyWords7"></QRReader>
-      </el-form-item>
       <el-form-item
-        label="游客姓名"
-        prop="keyWords2"
+        label="合作方订单号"
+        prop="partnerOrderNo"
       >
-        <el-input v-model="form.keyWords2"></el-input>
+        <el-input v-model="form.partnerOrderNo"></el-input>
       </el-form-item>
       <el-form-item
-        label="游客手机"
-        prop="keyWords3">
-        <el-input v-model="form.keyWords3"></el-input>
-      </el-form-item>
-      <el-form-item
-        label="证件号"
-        prop="keyWords4">
-        <ReaderInput v-model="form.keyWords4"></ReaderInput>
+        label="票号"
+        prop="ticketNo"
+      >
+        <el-input v-model="form.ticketNo"></el-input>
       </el-form-item>
       <el-form-item
-        label="起始时间"
-        prop="startDate"
-      >
+        label="下单时间"
+        prop="createTime">
         <el-date-picker
-          v-model="form.startDate"
-          type="datetime"
-          placeholder="选择日期时间"
-        >
+          v-model="form.createTime"
+          type="datetimerange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
         </el-date-picker>
       </el-form-item>
       <el-form-item
-        label="截止时间"
-        prop="endDate"
-      >
+        label="游玩时间"
+        prop="playDate">
         <el-date-picker
-          default-time="23:59:59"
-          v-model="form.endDate"
-          type="datetime"
-          placeholder="选择日期时间"
-        >
+          v-model="form.playDate"
+          type="datetimerange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
         </el-date-picker>
       </el-form-item>
       <el-form-item
-        label="状态"
-        prop="keyWords5"
-      >
+        label="支付方式"
+        prop="payChannelList">
         <el-select
-          v-model="form.keyWords5"
-          clearable
-          placeholder="请选择"
-        >
-          <el-option
-            label="全部"
-            value=""></el-option>
+          v-model="form.payChannelList"
+          multiple
+          filterable>
           <el-option
-            v-for="item in orderStatusDic"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
+            v-for="item in payChannelOptions"
+            :key="item"
+            :label="item"
+            :value="item">
           </el-option>
         </el-select>
       </el-form-item>
       <el-form-item
-        label="销售渠道"
-        prop="keyWords8"
-      >
+        label="销售来源"
+        prop="otaSourceNameList">
         <el-select
-          v-model="form.keyWords8"
-          placeholder="请选择"
-        >
-          <el-option
-            label="全部"
-            :value="null"></el-option>
+          v-model="form.otaSourceNameList"
+          multiple
+          filterable>
           <el-option
-            v-for="(item,index) in saleChannel"
-            :key="index"
+            v-for="item in otaSourceList"
+            :key="item"
             :label="item"
-            :value="item"
-          >
+            :value="item">
           </el-option>
         </el-select>
       </el-form-item>
       <el-form-item
-        label="团散"
-        prop="keyWords6"
+        label="游客姓名"
+        prop="visitorName"
+      >
+        <el-input v-model="form.visitorName"></el-input>
+      </el-form-item>
+      <el-form-item
+        label="游客电话"
+        prop="visitorPhone">
+        <el-input v-model="form.visitorPhone"></el-input>
+      </el-form-item>
+      <el-form-item
+        label="游客证件号"
+        prop="visitorIdentify">
+        <ReaderInput v-model="form.visitorIdentify"></ReaderInput>
+      </el-form-item>
+      <el-form-item
+        label="订单状态"
+        prop="orderStatus"
       >
         <el-select
-          v-model="form.keyWords6"
+          v-model="form.orderStatus"
+          clearable
           placeholder="请选择"
         >
-          <el-option
-            label="全部"
-            value=""
-          >
-          </el-option>
-          <el-option
-            label="散客"
-            :value="1"
-          >
-          </el-option>
-          <el-option
-            label="团体"
-            :value="2"
-          >
-          </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item
-        label="售票员"
-        prop="keyWords9">
-        <el-select v-model="form.keyWords9">
           <el-option
             label="全部"
             value=""></el-option>
           <el-option
-            v-for="item in salesList"
-            :key="item.id"
-            :label="item.nick_name"
-            :value="item.nick_name">
+            v-for="item in orderStatusDic"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
           </el-option>
         </el-select>
       </el-form-item>
       <el-form-item
-        label="银行交易流水号"
-        prop="orderNo7"
-        label-width="180px"
+        label="门票状态"
+        prop="ticketStatus"
       >
-        <el-input v-model="form.orderNo7"></el-input>
-      </el-form-item>
-      <el-form-item
-        label="支付方式"
-        prop="orderNo0">
         <el-select
-          v-model="form.orderNo0"
-          filterable>
+          v-model="form.ticketStatus"
+          clearable
+          placeholder="请选择"
+        >
           <el-option
             label="全部"
             value=""></el-option>
           <el-option
-            v-for="item in payChannelOptions"
-            :key="item"
-            :label="item"
-            :value="item">
+            v-for="item in ticketStatusDic"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
           </el-option>
         </el-select>
       </el-form-item>
       <el-form-item
         label="票种列表"
-        prop="orderNo1"
+        prop="ticketTypeIdList"
       >
         <el-select
-          v-model="form.orderNo1"
+          v-model="form.ticketTypeIdList"
           placeholder="请选择"
+          multiple
           filterable>
-          <el-option
-            value=""
-            label="全部">
-          </el-option>
           <el-option
             v-for="item in ticketTypeList"
             :key="item.id"
@@ -194,20 +155,17 @@
           </el-option>
         </el-select>
       </el-form-item>
-
       <el-form-item
-        label="景点选择"
-        prop="orderNo2"
+        label="售票员"
+        prop="adminIdList"
       >
         <el-select
-          v-model="form.orderNo2"
-          placeholder="请选择">
-          <el-option
-            value=""
-            label="全部">
-          </el-option>
+          v-model="form.adminIdList"
+          multiple
+          placeholder="请选择"
+          filterable>
           <el-option
-            v-for="item in scenicList"
+            v-for="item in []"
             :key="item.id"
             :value="item.id"
             :label="item.name">
@@ -215,78 +173,22 @@
         </el-select>
       </el-form-item>
       <el-form-item
-        label="客户状态"
-        prop="keyWords20"
+        label="售卖自助机"
+        prop="saleTermIdList"
       >
         <el-select
-          v-model="form.keyWords20"
+          v-model="form.saleTermIdList"
+          multiple
           placeholder="请选择"
-        >
-          <el-option
-            label="全部"
-            value=""
-          >
-          </el-option>
-          <el-option
-            label="灰名单"
-            :value="3"
-          >
-          </el-option>
-          <el-option
-            label="其他"
-            :value="2"
-          >
-          </el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item
-        label="游玩起始时间"
-        prop="startDate1"
-        label-width="180px"
-      >
-        <el-date-picker
-          v-model="form.startDate1"
-          type="datetime"
-          placeholder="选择游玩日期时间"
-        >
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item
-        label="游玩截止时间"
-        prop="endDate1"
-        label-width="180px"
-      >
-        <el-date-picker
-          default-time="23:59:59"
-          v-model="form.endDate1"
-          type="datetime"
-          placeholder="选择游玩日期时间"
-        >
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item
-        label="订单标签"
-        prop="keyWords28"
-      >
-        <el-select
-          clearable
-          v-model="form.keyWords28"
-          placeholder="请选择">
+          filterable>
           <el-option
-            v-for="item in order_tag_list"
-            :key="item"
-            :label="item"
-            :value="item">
+            v-for="item in []"
+            :key="item.id"
+            :value="item.id"
+            :label="item.name">
           </el-option>
         </el-select>
       </el-form-item>
-      <el-form-item
-        v-if="['昭苏'].includes(scenicName)"
-        label="车牌号"
-        prop="keyWords29"
-      >
-        <el-input v-model="form.keyWords29"></el-input>
-      </el-form-item> -->
       <div class="btn-wrap">
         <el-button
           @click="reset"
@@ -313,7 +215,7 @@
         v-loading="loading"
         :data="tableData">
         <el-table-column
-          width="190"
+          min-width="200"
           prop="orderNo"
           label="订单号"
           fixed="left"
@@ -332,22 +234,17 @@
         >
         </el-table-column>
         <el-table-column
-          label="支付方式"
+          label="支付渠道"
           width="120"
           prop="payChannel">
         </el-table-column>
-        <!-- <el-table-column
-          label="支付状态"
-          width="120"
-          prop="payStatus">
-        </el-table-column> -->
         <el-table-column
           label="支付状态"
           fixed="right"
         >
           <template slot-scope="scope">
             <el-tag
-              :type="getPayStatus(scope.row.payStatus,'type')"
+              :type="getPayStatus(scope.row.payStatus, 'type')"
               size="normal"
             >
               {{ getPayStatus(scope.row.payStatus) }}
@@ -389,14 +286,17 @@
           </template>
         </el-table-column>
         <el-table-column
+          width="120"
           prop="buyerName"
           label="购买方名称"
         ></el-table-column>
         <el-table-column
+          width="110"
           prop="buyerPhone"
           label="购买方手机">
         </el-table-column>
         <el-table-column
+          width="140"
           prop="buyerIdentify"
           label="购买方证件号">
         </el-table-column>
@@ -428,11 +328,11 @@
             {{ reduceCheckNum(scope.row.ticketList) }}
           </template>
         </el-table-column> -->
-        <el-table-column
+        <!-- <el-table-column
           width="80"
           label="游客信息"
           prop="guestName">
-        </el-table-column>
+        </el-table-column> -->
         <!-- <el-table-column
           width="80"
           label="使用状态"
@@ -560,7 +460,7 @@
         </el-table-column>
 
         <el-table-column
-          prop="tname"
+          prop="ticketTypeName"
           label="票种"
         >
         </el-table-column>
@@ -595,7 +495,7 @@
           label="游玩时间"
         >
           <template slot-scope="scope">
-            {{ scope.row.is_need_playtime?scope.row.payDateBegin:'无限制' }}
+            {{ scope.row.playDateBegin || scope.row.playDateEnd ? `${scope.row.playDateBegin || ''} - ${scope.row.playDateEnd || ''}` : "无限制" }}
           </template>
         </el-table-column>
         <el-table-column
@@ -680,64 +580,64 @@
           v-if="!formEl.invoiceType"
           verify
           label="购买方"
-          prop="invoice_buyer"
+          prop="invoiceBuyer"
         >
           <el-input
-            v-model="formEl.invoice_buyer"
+            v-model="formEl.invoiceBuyer"
             style="width:100%"></el-input>
         </el-form-item>
         <el-form-item
           v-if="!formEl.invoiceType"
           label="纳税⼈识别号"
-          prop="invoice_buyer_tax_num"
-          :rules="rules.invoice_buyer_tax_num"
+          prop="invoiceBuyerTaxNum"
+          :rules="rules.invoiceBuyerTaxNum"
         >
           <el-input
-            v-model="formEl.invoice_buyer_tax_num"
+            v-model="formEl.invoiceBuyerTaxNum"
             style="width:100%"></el-input>
         </el-form-item>
         <el-form-item
           v-if="!formEl.invoiceType"
           label="纳税⼈邮箱"
-          prop="invoice_buyer_email"
+          prop="invoiceBuyerEmail"
           :rules="[
             { required: false, message: '请输入邮箱', trigger: 'blur' },
             { type: 'email', message: '邮箱格式不正确', trigger: 'blur' }
           ]"
         >
           <el-input
-            v-model="formEl.invoice_buyer_email"
+            v-model="formEl.invoiceBuyerEmail"
             style="width:100%"></el-input>
         </el-form-item>
         <el-form-item
           v-if="!formEl.invoiceType"
           label="纳税⼈手机号"
-          prop="invoice_buyer_phone"
+          prop="invoiceBuyerPhone"
           :rules="[
             { required: false, message: '请输入手机号', trigger: 'blur' },
             { pattern: /^1[3456789]\d{9}$/, message: '手机号格式不正确', trigger: 'blur' }
           ]"
         >
           <el-input
-            v-model="formEl.invoice_buyer_phone"
+            v-model="formEl.invoiceBuyerPhone"
             style="width:100%"></el-input>
         </el-form-item>
         <el-form-item
           v-if="!formEl.invoiceType"
           label="购买方地址"
-          prop="invoice_buyer_address"
+          prop="invoiceBuyerAddress"
         >
           <el-input
-            v-model="formEl.invoice_buyer_address"
+            v-model="formEl.invoiceBuyerAddress"
             style="width:100%"></el-input>
         </el-form-item>
         <el-form-item
           v-if="!formEl.invoiceType"
           label="购买方银行开户行及账号"
-          prop="invoice_buyer_bank_account"
+          prop="invoiceBuyerBankAccount"
         >
           <el-input
-            v-model="formEl.invoice_buyer_bank_account"
+            v-model="formEl.invoiceBuyerBankAccount"
             style="width:100%"></el-input>
         </el-form-item>
         <el-form-item
@@ -757,6 +657,81 @@
           @click="submitPickInvoice">确定</el-button>
       </span>
     </el-dialog>
+    <el-dialog
+      title="核销"
+      :visible.sync="checkOrderDialogVisible"
+      width="80%"
+      @close="checkOrderDialogVisible=false">
+      <div style="margin: 20px">
+        <el-checkbox label="强制核销" v-model="checkOrderInfo.force"></el-checkbox>
+      </div>
+      <el-table
+        border
+        :data="currentOrder.ticketList"
+        @selection-change="handleSelectionChange">
+        <el-table-column
+          type="selection"
+          :selectable="selectable"
+          width="55">
+        </el-table-column>
+        <el-table-column prop="ticketNo" label="票号"> </el-table-column>
+
+        <el-table-column prop="ticketTypeName" label="票种"> </el-table-column>
+        <el-table-column prop="guestName" label="游客姓名">
+        </el-table-column>
+        <el-table-column prop="guestPhone" label="游客手机号">
+        </el-table-column>
+        <el-table-column prop="guestIdentifyType" label="证件类型">
+          <template slot-scope="scope">
+            {{ papersType[scope.row.guestIdentifyType] }}
+          </template>
+        </el-table-column>
+        <el-table-column prop="guestIdentify" label="证件号码">
+          <template slot-scope="scope">
+            {{ scope.row.guestIdentify }}
+          </template>
+        </el-table-column>
+
+        <el-table-column width="100" prop="checkNum" label="检票人数">
+        </el-table-column>
+
+        <el-table-column width="100" prop="payDateBegin" label="游玩时间">
+          <template slot-scope="scope">
+            {{ scope.row.playDateBegin || scope.row.playDateEnd ? `${scope.row.playDateBegin || ''} - ${scope.row.playDateEnd || ''}` : "无限制" }}
+          </template>
+        </el-table-column>
+        <el-table-column width="80" label="取票状态">
+          <template slot-scope="scope">
+            <el-tag :type="scope.row.isPrint ? 'success' : 'info'">
+              {{ scope.row.isPrint ? "已取票" : "未取票" }}
+            </el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column width="80" label="状态">
+          <template slot-scope="scope">
+            <OrderStatusTag :value="scope.row.status"></OrderStatusTag>
+          </template>
+        </el-table-column>
+        <el-table-column width="80" prop="price" label="小计">
+        </el-table-column>
+        <el-table-column width="80" label="检票景点">
+          <template slot-scope="scope">
+            <el-button
+              v-if="scope.row.ticketListScenic"
+              @click="showDetail(scope.row)"
+            >
+              明细
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <span slot="footer">
+        <el-button @click="checkOrderDialogVisible = false">取消</el-button>
+        <el-button
+          type="primary"
+          @click="submitCheckOrder">确定</el-button>
+      </span>
+    </el-dialog>
     <el-dialog
       title="退单"
       :visible.sync="refundOrderDialogVisible"
@@ -781,14 +756,8 @@
           :selectable="selectable"
           width="55">
         </el-table-column>
-        <el-table-column width="80" label="序号" prop="id">
-          <template slot-scope="scope">
-            {{ scope.row.id.toString().padStart(8, "0") }}
-          </template>
-        </el-table-column>
         <el-table-column prop="ticketNo" label="票号"> </el-table-column>
-
-        <el-table-column prop="tname" label="票种"> </el-table-column>
+        <el-table-column prop="ticketTypeName" label="票种"> </el-table-column>
         <el-table-column prop="guestName" label="游客姓名">
         </el-table-column>
         <el-table-column prop="guestPhone" label="游客手机号">
@@ -809,7 +778,7 @@
 
         <el-table-column width="100" prop="payDateBegin" label="游玩时间">
           <template slot-scope="scope">
-            {{ scope.row.payDateBegin || "无限制" }}
+            {{ scope.row.playDateBegin || scope.row.playDateEnd ? `${scope.row.playDateBegin || ''} - ${scope.row.playDateEnd || ''}` : "无限制" }}
           </template>
         </el-table-column>
         <el-table-column width="80" label="取票状态">
@@ -829,7 +798,7 @@
         <el-table-column width="80" label="检票景点">
           <template slot-scope="scope">
             <el-button
-              v-if="scope.row.ticketListcenic"
+              v-if="scope.row.ticketListScenic"
               @click="showDetail(scope.row)"
             >
               明细
@@ -939,11 +908,9 @@
 
 <script>
 /* eslint-disable no-unused-vars */
-import { apiOrderList, pickInvoice, getInvoice, cancelOrder, checkTickets, updateOrder } from '@/api/order'
-import { orderStatusDic, channelList, papersType } from '@/assets/staticData'
+import { apiOrderList, pickInvoice, getInvoice, cancelOrder, checkTickets, updateOrder, getSaleChannelList } from '@/api/order'
+import { orderStatusDic, ticketStatusDic, channelList, papersType } from '@/assets/staticData'
 import { getPayStatus } from '@/utils/index'
-
-// import ReaderInput from '@/components/ReaderInput'
 import Ellipsis from '@/components/Ellipsis'
 import moment from 'moment'
 import { payPOS } from '@/api/pay'
@@ -981,34 +948,33 @@ export default {
   },
   data () {
     return {
-      projectName: process.env.VUE_APP_PROJECT,
+      projecticketTypeName: process.env.VUE_APP_PROJECT,
       channelList,
+      otaSourceList: [],
       orderStatusDic,
+      ticketStatusDic,
       papersType,
       isDev: process.env.NODE_ENV === 'development',
       form: {
-        startDate: new Date(moment().startOf('day').valueOf()),
-        endDate: new Date(moment().endOf('day').valueOf()),
-        startDate1: new Date(moment().startOf('day').valueOf()),
-        endDate1: new Date(moment().endOf('day').valueOf()),
         partnerOrderNo: '', // OTA订单号
-        ota_3rd_orderNo: '', // 渠道订单号
+        otaOrderNo: '', // 渠道订单号
         orderNo: '', // 订单号
-        keyWords2: '', // 游客姓名
-        keyWords3: '', // 游客手机
-        keyWords4: '', // 游客身份证
-        keyWords5: '', // 状态
-        keyWords6: '', // 1散客 2团体
-        keyWords7: '', // 票号
-        keyWords8: null,
-        keyWords9: '', // 售票员
-        orderNo0: '',
-        orderNo1: '',
-        orderNo2: '',
-        orderNo7: '', // 银行交易流水号
-        keyWords20: '',
-        keyWords28: '',
-        keyWords29: '',
+        createTime: ['', ''], // 下单时间
+        createTimeBegin: '',
+        createTimeEnd: '',
+        playDate: ['', ''], // 游玩时间
+        playDateBegin: '',
+        playDateEnd: '',
+        payChannelList: [], // 支付方式
+        otaSourceNameList: [], // 销售来源
+        adminIdList: [], // 售票员
+        saleTermIdList: [], // 售卖自助机
+        orderStatus: '', // 订单状态
+        ticketStatus: '', // 门票状态
+        visitorName: '', // 游客姓名
+        visitorPhone: '', // 游客手机
+        visitorIdentify: '', // 游客身份证
+        ticketTypeIdList: [], // 票种列表
         pageNum: 1,
         pageSize: 10
       },
@@ -1018,16 +984,16 @@ export default {
       invoiceType: 0,
       formEl: {
         invoiceType: 1,
-        invoice_buyer: '',
-        invoice_buyer_tax_num: '',
-        invoice_buyer_email: '',
-        invoice_buyer_phone: '',
-        invoice_buyer_address: '',
-        invoice_buyer_bank_account: '',
+        invoiceBuyer: '',
+        invoiceBuyerTaxNum: '',
+        invoiceBuyerEmail: '',
+        invoiceBuyerPhone: '',
+        invoiceBuyerAddress: '',
+        invoiceBuyerBankAccount: '',
         remark: ''
       },
       rules: {
-        invoice_buyer_tax_num: [
+        invoiceBuyerTaxNum: [
           { required: false, message: '请输入纳税人识别号', trigger: 'blur' },
           { pattern: /^[A-Za-z0-9]{15,20}$/, message: '纳税人识别号格式不正确', trigger: 'blur' }
         ]
@@ -1042,6 +1008,12 @@ export default {
         orderId: '',
         ticketCancelRequestList: []
       },
+      checkOrderDialogVisible: false,
+      checkOrderInfo: {
+        force: true,
+        orderId: '',
+        ticketIdList: []
+      },
       updateTypes: [
         { value: 'updateOrderPayChannel', label: '支付方式' },
         { value: 'updatePlayDate', label: '游玩日期' },
@@ -1077,14 +1049,14 @@ export default {
     // 如果存在查询条件,则设置到组件的数据中
       this.form = searchParams // 记住上次搜索条件
     }
+    this.getSaleChannelList()
     this.getOrderList()
-    // const res = await getSystemConfigList()
-    // this.order_tag_list = res.list.find(v => v.config_key === 'order_tag_list')?.config_value?.replace(/\s+/g, '')?.split(',') || []
   },
   methods: {
     getPayStatus,
     reset () {
       this.$refs.form.resetFields()
+      this.getOrderList(true)
     },
     // 取票状态
     checkPrintStatus (ticketList) {
@@ -1126,27 +1098,27 @@ export default {
       this.$refs.formEl.validate(valid => {
         if (!valid) return
         if (this.formEl.invoiceType) {
-          this.formEl.invoice_buyer = ''
-          this.formEl.invoice_buyer_tax_num = ''
-          this.formEl.invoice_buyer_email = ''
-          this.formEl.invoice_buyer_phone = ''
-          this.formEl.invoice_buyer_address = ''
-          this.formEl.invoice_buyer_bank_account = ''
+          this.formEl.invoiceBuyer = ''
+          this.formEl.invoiceBuyerTaxNum = ''
+          this.formEl.invoiceBuyerEmail = ''
+          this.formEl.invoiceBuyerPhone = ''
+          this.formEl.invoiceBuyerAddress = ''
+          this.formEl.invoiceBuyerBankAccount = ''
           this.formEl.remark = ''
         }
-        pickInvoice([this.currentOrder.id], this.multipleSelection.map(v => v.id), this.formEl.invoiceType, this.formEl.invoice_buyer, this.formEl.invoice_buyer_tax_num, this.formEl.invoice_buyer_email, this.formEl.invoice_buyer_phone, this.formEl.invoice_buyer_address, this.formEl.invoice_buyer_bank_account, this.formEl.remark).then(res => {
+        pickInvoice([this.currentOrder.id], this.multipleSelection.map(v => v.id), this.formEl.invoiceType, this.formEl.invoiceBuyer, this.formEl.invoiceBuyerTaxNum, this.formEl.invoiceBuyerEmail, this.formEl.invoiceBuyerPhone, this.formEl.invoiceBuyerAddress, this.formEl.invoiceBuyerBankAccount, this.formEl.remark).then(res => {
           this.$message.success('操作成功')
           this.getOrderList()
           this.visible = false
           this.currentOrder = {}
           this.formEl = {
             invoiceType: 1,
-            invoice_buyer: '',
-            invoice_buyer_tax_num: '',
-            invoice_buyer_email: '',
-            invoice_buyer_phone: '',
-            invoice_buyer_address: '',
-            invoice_buyer_bank_account: '',
+            invoiceBuyer: '',
+            invoiceBuyerTaxNum: '',
+            invoiceBuyerEmail: '',
+            invoiceBuyerPhone: '',
+            invoiceBuyerAddress: '',
+            invoiceBuyerBankAccount: '',
             remark: ''
           }
           this.$confirm('发票已生成,是否跳转到发票下载页?', '提示', {
@@ -1190,9 +1162,28 @@ export default {
       }).catch(() => {
       })
     },
+    getSaleChannelList () {
+      getSaleChannelList().then(res => {
+        console.log(res, 'res')
+        this.otaSourceList = res.data
+      })
+    },
     getOrderList (goFirst) {
       this.loading = true
       goFirst && (this.form.pageNum = 1)
+
+      if (this.form.createTime) {
+        const [s, e] = this.form.createTime
+        this.form.createTimeBegin = s ? moment(s).format('YYYY-MM-DD HH:mm:ss') : ''
+        this.form.createTimeEnd = e ? moment(e).format('YYYY-MM-DD HH:mm:ss') : ''
+      }
+
+      if (this.form.playDate) {
+        const [s, e] = this.form.playDate
+        this.form.playDateBegin = s ? moment(s).format('YYYY-MM-DD') : ''
+        this.form.playDateEnd = e ? moment(e).format('YYYY-MM-DD') : ''
+      }
+
       apiOrderList(this.form).then(res => {
         this.total = res.data.total
 
@@ -1267,21 +1258,29 @@ export default {
     },
     // 核销
     checkOrder (order) {
-      this.$confirm('确定对此订单手工核销码, 是否继续?', '提示', {
+      this.checkOrderDialogVisible = true
+      this.currentOrder = order
+      this.checkOrderInfo.orderId = order.id
+    },
+    submitCheckOrder () {
+      if (!this.multipleSelection?.length) {
+        return this.$message.error('请选择核销门票')
+      }
+
+      this.checkOrderInfo.ticketIdList = this.multipleSelection.map(v => v.id)
+
+      this.$confirm('确定要核销吗?', '提示', {
         confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning'
       }).then(() => {
-        const params = {
-          force: true,
-          ticketIdList: order.ticketList.map(v => v.id)
-        }
-        checkTickets(params).then(res => {
+        checkTickets(this.checkOrderInfo).then(res => {
           if (res.code === '999999') {
             this.$message.warning(res.msg || '核销失败')
             return
           }
           this.$message.success('核销成功')
+          this.checkOrderDialogVisible = false
           this.getOrderList()
         })
       })

+ 12 - 6
src/pages/sellManage/retail/FormInfo.vue

@@ -107,13 +107,19 @@
           >
           </el-date-picker>
         </el-form-item>
-        <el-form-item
+        <!-- <el-form-item
+          verify
+          prop="playDateEnd"
           label="结束日期">
-          <el-input
-            disabled
-            v-model="playEndDate"
-          ></el-input>
-        </el-form-item>
+          <el-date-picker
+            :clearable="false"
+            :editable="false"
+            :picker-options="dateOption"
+            v-model="form.playDateEnd"
+            type="date"
+          >
+          </el-date-picker>
+        </el-form-item> -->
         <el-form-item
           verify
           number

+ 1 - 1
src/pages/sellManage/retail/OrderInfo.vue

@@ -59,7 +59,7 @@
         <el-button
           type="primary"
           class="warnBtn item"
-          :disabled="value.length === 0"
+          :disabled="value.length === 0 || !payChannel"
           @click="handleConfirm">
           确认出票
         </el-button>

+ 22 - 3
src/pages/systemSetting/payChannel/index.vue

@@ -15,6 +15,24 @@
           placeholder="请输入名称">
         </el-input>
       </el-form-item>
+      <el-form-item
+        label="支付类型"
+        prop="payType">
+        <el-select v-model="form.payType">
+          <el-option
+            label="全部"
+            value=""></el-option>
+          <el-option
+            label="无需支付"
+            value="NO_PAY"></el-option>
+          <el-option
+            label="B扫C支付"
+            value="B_SCAN_C_PAY"></el-option>
+          <el-option
+            label="C扫B支付"
+            value="C_SCAN_B_PAY"></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item
         label="状态"
         prop="status">
@@ -152,7 +170,9 @@ const nameMap = {
   'POS': 'POS机',
   'VALUECARD': '存值卡',
   'BSCANC': 'B扫C支付',
-  'NO_PAY': '无需支付'
+  'NO_PAY': '无需支付',
+  'B_SCAN_C_PAY': 'B扫C支付',
+  'C_SCAN_B_PAY': 'C扫B支付'
 }
 
 export default {
@@ -173,6 +193,7 @@ export default {
         pageNum: 1,
         pageSize: 10,
         keyWords: '',
+        payType: '',
         status: '',
         type: ''
       },
@@ -193,10 +214,8 @@ export default {
       this.loading = true
       goFirst && (this.form.pageNum = 1)
       getPayChannel(this.form).then(res => {
-        console.log('res', res)
         this.total = res.data?.total || 0
         this.tableData = res.data?.records
-        console.log('this.tableData', this.tableData)
       }).finally(() => {
         this.loading = false
       })

+ 1 - 1
src/pages/ticketSetting/scenic.vue

@@ -48,7 +48,7 @@
           prop="day_check_limit"
           label="景点容量"></el-table-column> -->
         <el-table-column
-          prop="day_check_count"
+          prop="dayEnter"
           label="今日已检次数"></el-table-column>
         <el-table-column label="操作">
           <template slot-scope="scope">

+ 185 - 185
src/router/index.js

@@ -3,9 +3,9 @@ import Router from 'vue-router'
 import Layout from '@/components/Layout/index.vue'
 import Demo from '@/components/Demo.vue'
 import Config from '@/pages/config'
-import agencyName from '@/utils/agencyName'
+// import agencyName from '@/utils/agencyName'
 // import theaterName from '@/utils/theaterName'
-import saleTicketName from '@/utils/saleTicketName'
+// import saleTicketName from '@/utils/saleTicketName'
 
 Vue.use(Router)
 
@@ -82,7 +82,7 @@ let routerMap = [
     path: '/ticketSale',
     component: Layout,
     name: '订单中心',
-    meta: { title: process.env.VUE_APP_PROJECT === 'czg' ? '预约管理' : `${saleTicketName()}管理`, icon: 'ticketSale' },
+    meta: { title: '订单中心', icon: 'ticketSale' },
     redirect: 'noredirect',
     alwaysShow: true,
     children: [
@@ -425,188 +425,188 @@ let routerMap = [
       // }
     ]
   },
-  {
-    path: '/agency',
-    component: Layout,
-    name: '旅行社管理',
-    meta: { title: `${agencyName()}管理`, icon: 'travel' },
-    redirect: 'noredirect',
-    alwaysShow: true,
-    children: [
-      // {
-      //   path: 'agencySetting',
-      //   name: 'agencySetting',
-      //   component: require('@/pages/agency/agencySetting').default,
-      //   meta: { title: `${agencyName()}列表`, permissionName: 'travel_agency:travel_agency' }
-      // },
-      // {
-      //   path: 'agencyTradeLog',
-      //   name: 'agencyTradeLog',
-      //   component: require('@/pages/agency/agencyTradeLog').default,
-      //   meta: { title: '余额消费记录', permissionName: 'travel_agency:prepay_log' }
-      // },
-      // {
-      //   path: 'agencyPreOrder',
-      //   name: 'agencyPreOrder',
-      //   component: require('@/pages/agency/preOrder').default,
-      //   meta: { title: `${agencyName()}预定`, permissionName: 'travel_agency:travel_agency_preorder' }
-      // },
-      // {
-      //   path: 'agencyPreOrderList',
-      //   name: 'agencyPreOrderList',
-      //   component: require('@/pages/agency/preOrderList').default,
-      //   meta: { title: '预订单记录', permissionName: 'travel_agency:travel_agency_preorder_npm' }
-      // },
-      // {
-      //   path: 'agencypreOrderManage',
-      //   name: 'agencypreOrderManage',
-      //   component: require('@/pages/agency/preOrderManage').default,
-      //   meta: { title: '预订单管理', permissionName: 'travel_agency:travel_agency_preorder_manage' }
-      // },
-      // {
-      //   path: 'agencyStatistic',
-      //   name: 'agencyStatistic',
-      //   component: require('@/pages/agency/agencyStatistic').default,
-      //   meta: { title: `${agencyName()}售票统计`, permissionName: 'travel_agency:sale_stats' }
-      // },
-      // {
-      //   path: 'agencyPreOrderStatistic',
-      //   name: 'agencyPreOrderStatistic',
-      //   component: require('@/pages/agency/agencyPreOrderStatistic').default,
-      //   meta: { title: `${agencyName()}预付款统计`, permissionName: 'querystats:fetch_agency' }
-      // },
-      // {
-      //   path: 'guideQuery',
-      //   name: 'guideQuery',
-      //   component: require('@/pages/agency/guideQuery').default,
-      //   meta: { title: '导游管理', permissionName: 'travel_agency:guide' }
-      // },
-      // {
-      //   path: 'guideStatistic',
-      //   name: 'guideStatistic',
-      //   component: require('@/pages/agency/guideStatistic').default,
-      //   meta: { title: '导游售票统计', permissionName: 'travel_agency:guide_sale_stats' }
-      // }
-    ]
-  },
-  {
-    path: '/membership',
-    component: Layout,
-    name: '会员管理',
-    meta: { title: '会员管理', icon: 'member' },
-    redirect: 'noredirect',
-    alwaysShow: true,
-    children: [
-      // {
-      //   path: 'memberType',
-      //   name: 'memberType',
-      //   component: require('@/pages/member/memberType').default,
-      //   meta: { title: '会员类型', permissionName: 'member:member_type' }
-      // },
-      // {
-      //   path: 'memberPreSales',
-      //   name: 'memberPreSales',
-      //   component: require('@/pages/member/memberPreSales').default,
-      //   meta: { title: '会员预售管理', permissionName: 'member:member_presale' }
-      // },
-      // {
-      //   path: 'memberSales',
-      //   name: 'memberSales',
-      //   component: require('@/pages/member/memberSales').default,
-      //   meta: { title: '会员办理', permissionName: 'member:member_add' }
-      // },
-      // {
-      //   path: 'memberUpgrade',
-      //   name: 'memberUpgrade',
-      //   component: require('@/pages/member/memberUpgrade').default,
-      //   meta: { title: '会员升级设置', permissionName: 'member:member_upgrade' }
-      // },
-      // {
-      //   path: 'iccardCheckout',
-      //   name: 'iccardCheckout',
-      //   component: require('@/pages/member/iccardCheckout').default,
-      //   meta: { title: '会员出库', permissionName: 'member:member_preadd' }
-      // },
-      // {
-      //   path: 'iccardCheckoutLog',
-      //   name: 'iccardCheckoutLog',
-      //   component: require('@/pages/member/iccardCheckoutLog').default,
-      //   meta: { title: '会员出库记录', permissionName: 'member:member_preadd' }
-      // },
-      // {
-      //   path: 'iccardStorage',
-      //   name: 'iccardStorage',
-      //   component: require('@/pages/member/iccardStorage').default,
-      //   meta: { title: '会员入库', permissionName: 'member:member_preadd' }
-      // },
-      // {
-      //   path: 'storageQuery',
-      //   name: 'storageQuery',
-      //   component: require('@/pages/member/storageQuery').default,
-      //   meta: { title: '入库记录', permissionName: 'member:member_preadd_record' }
-      // },
-      // {
-      //   path: 'storageStatistics',
-      //   name: 'storageStatistics',
-      //   component: require('@/pages/member/storageStatistics').default,
-      //   meta: { title: '入库统计', permissionName: 'member:member_preadd_stats' }
-      // },
-      // {
-      //   path: 'memberActive',
-      //   name: 'memberActive',
-      //   component: require('@/pages/member/memberActive').default,
-      //   meta: { title: '会员激活', permissionName: 'member:member_active' }
-      // },
-      // {
-      //   path: 'iccardActiveLog',
-      //   name: 'iccardActiveLog',
-      //   component: require('@/pages/member/iccardActiveLog').default,
-      //   meta: { title: '会员激活记录', permissionName: 'member:member_active' }
-      // },
-      // {
-      //   path: 'memberList',
-      //   name: 'memberList',
-      //   component: require('@/pages/member/memberList').default,
-      //   meta: { title: '会员客户管理', permissionName: 'member:member_query' }
-      // },
-      // {
-      //   path: 'memberRecharge',
-      //   name: 'memberRecharge',
-      //   component: require('@/pages/member/memberRecharge').default,
-      //   meta: { title: '会员充值退卡', permissionName: 'member:member_charge' }
-      // },
-      // {
-      //   path: 'memberCheckLog',
-      //   name: 'memberCheckLog',
-      //   component: require('@/pages/member/memberCheckLog').default,
-      //   meta: { title: '会员检票记录', permissionName: 'member:member_check_record' }
-      // },
-      // {
-      //   path: 'memberCheckStatistics',
-      //   name: 'memberCheckStatistics',
-      //   component: require('@/pages/member/memberCheckStatistics').default,
-      //   meta: { title: '会员检票统计', permissionName: 'member:member_check_statistics' }
-      // },
-      // {
-      //   path: 'memberTradeLog',
-      //   name: 'memberTradeLog',
-      //   component: require('@/pages/member/memberTradeLog').default,
-      //   meta: { title: '会员交易记录', permissionName: 'member:member_charge_statistics' }
-      // },
-      // {
-      //   path: 'memberTradeStatistics',
-      //   name: 'memberTradeStatistics',
-      //   component: require('@/pages/member/memberTradeStatistics').default,
-      //   meta: { title: '会员交易统计', permissionName: 'member:member_charge_record' }
-      // },
-      // {
-      //   path: 'memberCheckTimesLogs',
-      //   name: 'memberCheckTimesLogs',
-      //   component: require('@/pages/member/memberCheckTimesLogs').default,
-      //   meta: { title: '会员检票修改记录', permissionName: 'member:update_check_times' }
-      // }
-    ]
-  },
+  // {
+  //   path: '/agency',
+  //   component: Layout,
+  //   name: '旅行社管理',
+  //   meta: { title: `${agencyName()}管理`, icon: 'travel' },
+  //   redirect: 'noredirect',
+  //   alwaysShow: true,
+  //   children: [
+  //     // {
+  //     //   path: 'agencySetting',
+  //     //   name: 'agencySetting',
+  //     //   component: require('@/pages/agency/agencySetting').default,
+  //     //   meta: { title: `${agencyName()}列表`, permissionName: 'travel_agency:travel_agency' }
+  //     // },
+  //     // {
+  //     //   path: 'agencyTradeLog',
+  //     //   name: 'agencyTradeLog',
+  //     //   component: require('@/pages/agency/agencyTradeLog').default,
+  //     //   meta: { title: '余额消费记录', permissionName: 'travel_agency:prepay_log' }
+  //     // },
+  //     // {
+  //     //   path: 'agencyPreOrder',
+  //     //   name: 'agencyPreOrder',
+  //     //   component: require('@/pages/agency/preOrder').default,
+  //     //   meta: { title: `${agencyName()}预定`, permissionName: 'travel_agency:travel_agency_preorder' }
+  //     // },
+  //     // {
+  //     //   path: 'agencyPreOrderList',
+  //     //   name: 'agencyPreOrderList',
+  //     //   component: require('@/pages/agency/preOrderList').default,
+  //     //   meta: { title: '预订单记录', permissionName: 'travel_agency:travel_agency_preorder_npm' }
+  //     // },
+  //     // {
+  //     //   path: 'agencypreOrderManage',
+  //     //   name: 'agencypreOrderManage',
+  //     //   component: require('@/pages/agency/preOrderManage').default,
+  //     //   meta: { title: '预订单管理', permissionName: 'travel_agency:travel_agency_preorder_manage' }
+  //     // },
+  //     // {
+  //     //   path: 'agencyStatistic',
+  //     //   name: 'agencyStatistic',
+  //     //   component: require('@/pages/agency/agencyStatistic').default,
+  //     //   meta: { title: `${agencyName()}售票统计`, permissionName: 'travel_agency:sale_stats' }
+  //     // },
+  //     // {
+  //     //   path: 'agencyPreOrderStatistic',
+  //     //   name: 'agencyPreOrderStatistic',
+  //     //   component: require('@/pages/agency/agencyPreOrderStatistic').default,
+  //     //   meta: { title: `${agencyName()}预付款统计`, permissionName: 'querystats:fetch_agency' }
+  //     // },
+  //     // {
+  //     //   path: 'guideQuery',
+  //     //   name: 'guideQuery',
+  //     //   component: require('@/pages/agency/guideQuery').default,
+  //     //   meta: { title: '导游管理', permissionName: 'travel_agency:guide' }
+  //     // },
+  //     // {
+  //     //   path: 'guideStatistic',
+  //     //   name: 'guideStatistic',
+  //     //   component: require('@/pages/agency/guideStatistic').default,
+  //     //   meta: { title: '导游售票统计', permissionName: 'travel_agency:guide_sale_stats' }
+  //     // }
+  //   ]
+  // },
+  // {
+  //   path: '/membership',
+  //   component: Layout,
+  //   name: '会员管理',
+  //   meta: { title: '会员管理', icon: 'member' },
+  //   redirect: 'noredirect',
+  //   alwaysShow: true,
+  //   children: [
+  //     // {
+  //     //   path: 'memberType',
+  //     //   name: 'memberType',
+  //     //   component: require('@/pages/member/memberType').default,
+  //     //   meta: { title: '会员类型', permissionName: 'member:member_type' }
+  //     // },
+  //     // {
+  //     //   path: 'memberPreSales',
+  //     //   name: 'memberPreSales',
+  //     //   component: require('@/pages/member/memberPreSales').default,
+  //     //   meta: { title: '会员预售管理', permissionName: 'member:member_presale' }
+  //     // },
+  //     // {
+  //     //   path: 'memberSales',
+  //     //   name: 'memberSales',
+  //     //   component: require('@/pages/member/memberSales').default,
+  //     //   meta: { title: '会员办理', permissionName: 'member:member_add' }
+  //     // },
+  //     // {
+  //     //   path: 'memberUpgrade',
+  //     //   name: 'memberUpgrade',
+  //     //   component: require('@/pages/member/memberUpgrade').default,
+  //     //   meta: { title: '会员升级设置', permissionName: 'member:member_upgrade' }
+  //     // },
+  //     // {
+  //     //   path: 'iccardCheckout',
+  //     //   name: 'iccardCheckout',
+  //     //   component: require('@/pages/member/iccardCheckout').default,
+  //     //   meta: { title: '会员出库', permissionName: 'member:member_preadd' }
+  //     // },
+  //     // {
+  //     //   path: 'iccardCheckoutLog',
+  //     //   name: 'iccardCheckoutLog',
+  //     //   component: require('@/pages/member/iccardCheckoutLog').default,
+  //     //   meta: { title: '会员出库记录', permissionName: 'member:member_preadd' }
+  //     // },
+  //     // {
+  //     //   path: 'iccardStorage',
+  //     //   name: 'iccardStorage',
+  //     //   component: require('@/pages/member/iccardStorage').default,
+  //     //   meta: { title: '会员入库', permissionName: 'member:member_preadd' }
+  //     // },
+  //     // {
+  //     //   path: 'storageQuery',
+  //     //   name: 'storageQuery',
+  //     //   component: require('@/pages/member/storageQuery').default,
+  //     //   meta: { title: '入库记录', permissionName: 'member:member_preadd_record' }
+  //     // },
+  //     // {
+  //     //   path: 'storageStatistics',
+  //     //   name: 'storageStatistics',
+  //     //   component: require('@/pages/member/storageStatistics').default,
+  //     //   meta: { title: '入库统计', permissionName: 'member:member_preadd_stats' }
+  //     // },
+  //     // {
+  //     //   path: 'memberActive',
+  //     //   name: 'memberActive',
+  //     //   component: require('@/pages/member/memberActive').default,
+  //     //   meta: { title: '会员激活', permissionName: 'member:member_active' }
+  //     // },
+  //     // {
+  //     //   path: 'iccardActiveLog',
+  //     //   name: 'iccardActiveLog',
+  //     //   component: require('@/pages/member/iccardActiveLog').default,
+  //     //   meta: { title: '会员激活记录', permissionName: 'member:member_active' }
+  //     // },
+  //     // {
+  //     //   path: 'memberList',
+  //     //   name: 'memberList',
+  //     //   component: require('@/pages/member/memberList').default,
+  //     //   meta: { title: '会员客户管理', permissionName: 'member:member_query' }
+  //     // },
+  //     // {
+  //     //   path: 'memberRecharge',
+  //     //   name: 'memberRecharge',
+  //     //   component: require('@/pages/member/memberRecharge').default,
+  //     //   meta: { title: '会员充值退卡', permissionName: 'member:member_charge' }
+  //     // },
+  //     // {
+  //     //   path: 'memberCheckLog',
+  //     //   name: 'memberCheckLog',
+  //     //   component: require('@/pages/member/memberCheckLog').default,
+  //     //   meta: { title: '会员检票记录', permissionName: 'member:member_check_record' }
+  //     // },
+  //     // {
+  //     //   path: 'memberCheckStatistics',
+  //     //   name: 'memberCheckStatistics',
+  //     //   component: require('@/pages/member/memberCheckStatistics').default,
+  //     //   meta: { title: '会员检票统计', permissionName: 'member:member_check_statistics' }
+  //     // },
+  //     // {
+  //     //   path: 'memberTradeLog',
+  //     //   name: 'memberTradeLog',
+  //     //   component: require('@/pages/member/memberTradeLog').default,
+  //     //   meta: { title: '会员交易记录', permissionName: 'member:member_charge_statistics' }
+  //     // },
+  //     // {
+  //     //   path: 'memberTradeStatistics',
+  //     //   name: 'memberTradeStatistics',
+  //     //   component: require('@/pages/member/memberTradeStatistics').default,
+  //     //   meta: { title: '会员交易统计', permissionName: 'member:member_charge_record' }
+  //     // },
+  //     // {
+  //     //   path: 'memberCheckTimesLogs',
+  //     //   name: 'memberCheckTimesLogs',
+  //     //   component: require('@/pages/member/memberCheckTimesLogs').default,
+  //     //   meta: { title: '会员检票修改记录', permissionName: 'member:update_check_times' }
+  //     // }
+  //   ]
+  // },
   {
     path: '/queryReport',
     component: Layout,

+ 6 - 6
src/store/getters.js

@@ -17,12 +17,12 @@ const getters = {
     const union = (a, b) => Array.from(new Set([...a, ...b]))
 
     return union([
-      '银行卡',
-      '银联钱包',
-      '银联扫码',
-      '银联二维码',
-      '支付宝',
-      '微信'
+      // '银行卡',
+      // '银联钱包',
+      // '银联扫码',
+      // '银联二维码',
+      // '支付宝',
+      // '微信'
     ], payChannels)
   }
 }