dct 7 月之前
父節點
當前提交
e9a21e584f

+ 1 - 1
src/api/order.js

@@ -24,7 +24,7 @@ export function getOrderListForRefund (params) {
 
 // 获取检票列表
 export function apiCheckList (params) {
-  return http.post('order/getCheckList', { data: params })
+  return http.post('/admin/statistics/orderCheckStatistics', { data: params })
 }
 
 // 获取免票列表

+ 7 - 1
src/components/GlobalComponents/OrderDetail.vue

@@ -328,10 +328,16 @@ export default {
           return '二维码'
         case 'face':
           return '人脸'
+        case 'card':
+          return 'IC卡'
         case 'idcard':
           return '身份证'
-        case 'person':
+        case 'manual_check':
           return '人工检票'
+        case 'print_check':
+          return '取票即检票'
+        case 'buy_check':
+          return '购买即检票'
         default:
           break
       }

+ 59 - 359
src/pages/queryReport/checkQuery.vue

@@ -12,11 +12,11 @@
       </div>
       <el-form-item
         label="检票起始时间"
-        prop="startDate"
+        prop="checkTimeBegin"
         label-width="150px"
       >
         <el-date-picker
-          v-model="form.startDate"
+          v-model="form.checkTimeBegin"
           type="datetime"
           placeholder="选择日期时间"
         >
@@ -25,39 +25,12 @@
 
       <el-form-item
         label="检票截止时间"
-        prop="endDate"
+        prop="checkTimeEnd"
         label-width="150px"
       >
         <el-date-picker
           default-time="23:59:59"
-          v-model="form.endDate"
-          type="datetime"
-          placeholder="选择日期时间"
-        >
-        </el-date-picker>
-      </el-form-item>
-
-      <el-form-item
-        label="售票起始时间"
-        prop="startDate1"
-        label-width="150px"
-      >
-        <el-date-picker
-          v-model="form.startDate1"
-          type="datetime"
-          placeholder="选择日期时间"
-        >
-        </el-date-picker>
-      </el-form-item>
-
-      <el-form-item
-        label="售票截止时间"
-        prop="endDate1"
-        label-width="150px"
-      >
-        <el-date-picker
-          default-time="23:59:59"
-          v-model="form.endDate1"
+          v-model="form.checkTimeEnd"
           type="datetime"
           placeholder="选择日期时间"
         >
@@ -66,10 +39,10 @@
 
       <el-form-item
         label="票种"
-        prop="keyWords1"
+        prop="ticketTypeIdList"
       >
         <el-select
-          v-model="form.keyWords1"
+          v-model="form.ticketTypeIdList"
           clearable
           placeholder="请选择"
         >
@@ -86,171 +59,17 @@
         </el-select>
       </el-form-item>
       <el-form-item
-        label="订单号"
-        prop="keyWords2"
-      >
-        <el-input v-model="form.keyWords2"></el-input>
-      </el-form-item>
-      <el-form-item
-        label="票号"
-        prop="keyWords3"
-      >
-        <QRReader v-model="form.keyWords3"></QRReader>
-      </el-form-item>
-      <el-form-item
-        label="身份证号"
-        prop="keyWords13">
-        <ReaderInput v-model="form.keyWords13"></ReaderInput>
-      </el-form-item>
-      <el-form-item
-        label="游客姓名"
-        prop="keyWords4"
-      >
-        <el-input v-model="form.keyWords4"></el-input>
-      </el-form-item>
-      <el-form-item
-        label="游客手机"
-        prop="keyWords5"
-      >
-        <el-input v-model="form.keyWords5"></el-input>
-      </el-form-item>
-      <el-form-item
-        label="景点"
-        prop="keyWords8"
-      >
-        <el-select
-          v-model="form.keyWords8"
-          @change="getChannelGroup"
-        >
-          <el-option
-            value=""
-            label="全部"
-          >
-          </el-option>
-          <el-option
-            v-for="item in userScenic"
-            :key="item.id"
-            :value="item.id"
-            :label="item.name"
-          ></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item
-        label="通道组"
-        prop="keyWords10"
-      >
-        <el-select
-          v-model="form.keyWords10"
-          @change="getChannel"
-        >
-          <el-option
-            value=""
-            label="全部"
-          >
-          </el-option>
-          <el-option
-            v-for="item in channelGroupList"
-            :key="item.id"
-            :value="item.id"
-            :label="item.name"
-          ></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item
-        label="通道"
-        prop="keyWords9"
-      >
-        <el-select
-          v-model="form.keyWords9"
-          @change="getDevice"
-        >
-          <el-option
-            value=""
-            label="全部"
-          >
-          </el-option>
-          <el-option
-            v-for="item in channelList"
-            :key="item.id"
-            :value="item.id"
-            :label="item.name"
-          ></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item
-        label="检票设备"
-        prop="keyWords6"
-      >
-        <el-select
-          clearable
-          v-model="form.keyWords6"
-        >
-          <el-option
-            value=""
-            label="全部"
-          >
-          </el-option>
-          <el-option
-            v-for="item in deviceList"
-            :key="item.id"
-            :value="item.id"
-            :label="item.name"
-          ></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item
-        label="查询方式"
-        prop="keyWords7"
-      >
+        label="销售来源"
+        prop="otaSourceNameList">
         <el-select
-          v-model="form.keyWords7"
-          placeholder="请选择"
-        >
-          <el-option
-            label="按票"
-            value="ticket"
-          >
-          </el-option>
-          <el-option
-            label="按订单"
-            value="order"
-          >
-          </el-option>
-        </el-select>
-      </el-form-item>
-
-      <el-form-item
-        label="检票类型"
-        prop="keyWords11"
-      >
-        <el-select v-model="form.keyWords11">
-          <el-option
-            value=""
-            label="全部">
-          </el-option>
-          <el-option
-            label="闸机检票"
-            value="CHECKER">
-          </el-option>
+          v-model="form.otaSourceNameList"
+          multiple
+          filterable>
           <el-option
-            label="人工检票"
-            value="PERSON">
-          </el-option>
-        </el-select>
-      </el-form-item>
-
-      <el-form-item
-        label="检票员"
-        prop="keyWords12">
-        <el-select v-model="form.keyWords12">
-          <el-option
-            label="全部"
-            value=""></el-option>
-          <el-option
-            v-for="item in salesList"
-            :key="item.id"
-            :label="item.nick_name"
-            :value="item.id">
+            v-for="item in otaSourceList"
+            :key="item"
+            :label="item"
+            :value="item">
           </el-option>
         </el-select>
       </el-form-item>
@@ -275,7 +94,7 @@
       <div class="block-title">
         检票列表
       </div>
-      <el-table
+      <!-- <el-table
         border
         stripe
         v-loading="loading"
@@ -367,106 +186,38 @@
           label="已退"
         >
         </el-table-column>
-      </el-table>
+      </el-table> -->
 
       <el-table
         v-loading="loading"
         :data="ticketTableData"
         key="ticketTable"
-        v-if="queryType === 'ticket'"
       >
-        <el-table-column type="expand">
-          <template slot-scope="scope">
-            <el-form
-              inline
-              class="table-expand"
-            >
-              <el-form-item label="游客姓名">
-                <span>{{ scope.row.guestName }}</span>
-              </el-form-item>
-              <el-form-item label="游客电话">
-                <span>{{ scope.row.guestPhone }}</span>
-              </el-form-item>
-            </el-form>
-          </template>
-        </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="scenic_name"
-          label="景点"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="checker_channel_group_name"
-          label="通道组"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="checker_channel_name"
-          label="通道"
+          prop="otaSourceName"
+          label="订单渠道"
         >
         </el-table-column>
         <el-table-column
           prop="ticketTypeName"
-          label="票型"
-        >
-        </el-table-column>
-        <el-table-column
-          prop="check_type"
-          label="检票类型"
-          width="110"
-        >
-          <template slot-scope="scope">
-            <el-tag
-              type="danger"
-              v-if="scope.row.check_type==='PERSON'">
-              人工检票
-            </el-tag>
-
-            <el-tag
-              type="success"
-              v-if="scope.row.check_type==='CHECKER'">
-              闸机检票
-            </el-tag>
-          </template>
-        </el-table-column>
-        <el-table-column
-          prop="check_manager_name"
-          label="检票人"
+          label="票种"
         >
         </el-table-column>
         <el-table-column
-          prop="checker_name"
-          label="检票设备"
+          prop="unitPrice"
+          label="单价"
         >
         </el-table-column>
         <el-table-column
-          prop="ip"
-          label="设备IP"
+          prop="checkNum"
+          label="检票人数"
         >
         </el-table-column>
         <el-table-column
-          prop="has_checked_num"
-          label="已检次数"
+          prop="checkPrice"
+          label="检票金额"
         >
         </el-table-column>
-        <el-table-column
-          width="160"
-          label="最后检票时间"
-        >
-          <template slot-scope="scope">
-            {{ scope.row.checkTime | formatTime }}
-          </template>
-        </el-table-column>
       </el-table>
       <el-pagination
         background
@@ -482,15 +233,12 @@
 
 <script>
 import { getScenic, getTicketTypeList } from '@/api/ticketType'
-import { apiChannel, apiChannelGroup, getDeviceList } from '@/api/checker'
-import { apiCheckList } from '@/api/order'
+import { apiCheckList, getSaleChannelList } from '@/api/order'
 import moment from 'moment'
-import ReaderInput from '@/components/ReaderInput'
 
 export default {
   name: 'checkQuery',
   components: {
-    ReaderInput
   },
   computed: {
     salesList () {
@@ -498,37 +246,28 @@ export default {
     },
     userScenic () {
       return this.$store.state.app.account.manager_scenic_matrix ? this.$store.state.app.account.manager_scenic_matrix : this.scenicList
+    },
+    ticketTypeList () {
+      return this.$store.state.app.ticketTypeList
     }
   },
   data () {
     return {
       form: {
-        keyWords1: '', // 票种ID
-        keyWords2: '', // 订单号
-        keyWords3: '', // 票号
-        keyWords4: '', // 游客姓名
-        keyWords5: '', // 游客手机
-        keyWords6: '', // 检票设备
-        keyWords7: 'ticket',
-        keyWords8: '', // 景点
-        keyWords9: '', // 通道
-        keyWords10: '', // 通道组
-        keyWords11: '', // 检票类型
-        keyWords12: '', // 检票类型
-        keyWords13: '', // 身份证号码
-        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()),
+        ticketTypeIdList: [], // 票种ID
+        otaSourceNameList: [],
+        checkTimeBegin: new Date(moment().subtract(7, 'day').format('YYYY-MM-DD HH:mm:ss')),
+        checkTimeEnd: new Date(moment().format('YYYY-MM-DD HH:mm:ss')),
         pageNum: 1,
         pageSize: 10
       },
+      otaSourceList: [],
       scenicList: [],
       channelGroupOri: [],
       channelGroupList: [],
       channelList: [],
       deviceList: [],
-      ticketTypeList: [],
+      // ticketTypeList: [],
       orderTableData: [],
       ticketTableData: [],
       queryType: 'order', // 按订单还是按票
@@ -542,16 +281,15 @@ export default {
     }
   },
   created () {
-    this.getScenicList()
-    this.initChannelGroup()
+    // this.getScenicList()
+    // this.initChannelGroup()
     const searchParams = JSON.parse(sessionStorage.getItem('统计表-检票记录-の查询条件'))
     if (searchParams) {
     // 如果存在查询条件,则设置到组件的数据中
       this.form = searchParams // 记住上次搜索条件
     }
-    this.getTicketTypeList().then(() => {
-      this.getCheckList()
-    })
+    this.getTicketTypeList()
+    this.getSaleChannelList()
   },
   methods: {
     reset () {
@@ -563,76 +301,38 @@ export default {
         this.scenicList = res?.data.children.map(item => item.data)
       })
     },
-    initChannelGroup () {
-      apiChannelGroup('getCheckerChannelGroupList', { pageNum: 1, pageSize: 10000 }).then(res => {
-        this.channelGroupOri = res.list
+    getSaleChannelList () {
+      getSaleChannelList().then(res => {
+        this.otaSourceList = res.data
       })
     },
-    // 根据景点获取通道组
-    getChannelGroup (id) {
-      if (id) {
-        this.channelGroupList = this.channelGroupOri.filter(item => item.scenics.some(v => v.scenic_id === id))
-      } else {
-        this.channelGroupList = []
-      }
-      this.channelList = []
-      this.deviceList = []
-      this.form.keyWords10 = ''
-      this.form.keyWords9 = ''
-      this.form.keyWords6 = ''
-    },
-    getChannel (id) {
-      if (id) {
-        apiChannel('getCheckerChannelList', {
-          keyWords1: '',
-          keyWords2: '',
-          keyWords3: id,
-          pageNum: 1,
-          pageSize: 1000
-        }).then(res => {
-          this.channelList = res.list
-        })
-      } else {
-        this.channelList = []
-      }
-      this.deviceList = []
-      this.form.keyWords9 = ''
-      this.form.keyWords6 = ''
-    },
-    getDevice (id) {
-      if (id) {
-        getDeviceList({
-          keyWords6: id,
-          pageNum: 1,
-          pageSize: 10000
-        }).then(res => {
-          this.deviceList = res.list
-        })
-      } else {
-        this.deviceList = []
-      }
-      this.form.keyWords6 = ''
-    },
     // 获取票种列表
     getTicketTypeList () {
-      return getTicketTypeList({
+      getTicketTypeList({
         pageNum: 1,
         pageSize: 999
       }).then(res => {
-        this.ticketTypeList = res.list
+        console.log('票种列表', res)
       })
     },
     getCheckList (goFirst) {
       this.loading = true
       goFirst && (this.form.pageNum = 1)
+
+      this.form.checkTimeBegin = moment(this.form.checkTimeBegin).format('YYYY-MM-DD HH:mm:ss')
+      this.form.checkTimeEnd = moment(this.form.checkTimeEnd).format('YYYY-MM-DD HH:mm:ss')
+
+      if (!this.form.ticketTypeIdList) {
+        this.form.ticketTypeIdList = []
+      }
+
+      if (!this.form.otaSourceNameList) {
+        this.form.otaSourceNameList = []
+      }
+
       apiCheckList(this.form).then(res => {
-        this.total = res.total
-        this.queryType = this.form.keyWords7
-        if (this.queryType === 'order') {
-          this.orderTableData = res.list
-        } else if (this.queryType === 'ticket') {
-          this.ticketTableData = res.list
-        }
+        this.total = res.data.total
+        this.ticketTableData = res.data.records
       }).finally(() => {
         this.loading = false
         sessionStorage.setItem('统计表-检票记录-の查询条件', JSON.stringify(this.form)) // 下次记住

+ 35 - 8
src/pages/sellManage/common/TicketList.vue

@@ -3,7 +3,6 @@
     class="search-list-wrap"
     :class="{focusFlash:isFocus}">
     <div
-      v-if="category === 'batch'"
       class="top-title">
       游玩日期
       <div>
@@ -115,7 +114,7 @@
     </div>
     <div
       v-if="category === 'batch'"
-      class="table-wrap">
+      class="table-wrap" style="flex: 1;">
       <div class="top-title">选择场次</div>
       <el-table
         ref="singleTable"
@@ -353,14 +352,32 @@ export default {
 
       if (res.code === '200') {
         console.log(playDate, '获取票种数据成功', res.data)
-        this.$set(this, 'currentTicket', res.data)
+        this.currentTicket = res.data
+        this.currentTicket.playDate = playDate
+        this.$emit('update', this.currentTicket)
+        this.$emit('input', this.currentTicket)
       }
     },
     async changeTicket (ticket) {
       if (!ticket) {
         return
       }
-      this.currentTicket = ticket
+      const playDate = moment(this.playDate).format('YYYY-MM-DD')
+      this.$emit('changePlayDate', playDate)
+      const res = await getTicketTypeByDate({
+        ticketTypeId: ticket.id,
+        playDateBegin: playDate
+      })
+
+      if (res.code === '200') {
+        console.log(playDate, '获取票种数据成功', res.data)
+        this.currentTicket = res.data
+      } else {
+        this.currentTicket = ticket
+      }
+
+      this.currentTicket.playDate = playDate
+
       // 设置不可选日期
       this.dateOption.disabledDate = (date) => {
         let beforeToday = moment().subtract(1, 'days').isAfter(date)
@@ -368,12 +385,21 @@ export default {
         let afterEnd = moment(ticket.useDateEnd).isBefore(date)
         return beforeToday || beforeStart || afterEnd
       }
-      this.$emit('update', ticket)
-      this.$emit('input', ticket)
+
+      this.$emit('update', this.currentTicket)
+      this.$emit('input', this.currentTicket)
     },
     handleBatchChange (row) {
+      if (!row) {
+        return
+      }
+
       this.selectBatch = row
-      this.$emit('selectBatch', row)
+      this.$set(this.currentTicket, 'batchConfigId', row.id)
+      this.$set(this.currentTicket, 'selectBatch', row)
+      console.log('当前选择的场次', row)
+      this.$emit('update', this.currentTicket)
+      this.$emit('input', this.currentTicket)
     },
     formatDate (input) {
       return moment(input).format('YYYY-MM-DD')
@@ -468,6 +494,7 @@ border: 14px solid rgb(255, 94, 0); border-right-color: transparent; border-bott
 }
 
 .list-wrap-batch {
-  max-height: calc(100vh - 200px);
+  max-height: calc(100vh - 400px);
+  flex: 1;
 }
 </style>

+ 10 - 0
src/pages/sellManage/common/orderItemMixin.js

@@ -10,6 +10,11 @@ export default {
   components: {
     TouristList
   },
+  computed: {
+    category () {
+      return this.$route.meta.category || 'ticket'
+    }
+  },
   methods: {
     showTouristList (record) {
       this.currentRecord = record
@@ -44,6 +49,11 @@ export default {
       this.currentRecord.total = this.$NP.times(this.currentRecord.price, this.currentRecord.count)
     },
     handleConfirm () {
+      if (this.category === 'batch') {
+        if (this.tickets.some(i => !i.batchConfigId)) {
+          return this.$message.error('请选择场次')
+        }
+      }
       this.formData = this.$parent.$parent.$refs.formInfo.form
       this.formData.remark = this.remark
       this.formData.pictureRemarks = this.pictureRemarks

+ 5 - 3
src/pages/sellManage/retail.vue

@@ -7,7 +7,7 @@
       type-id="1"
       slot="left"
       v-model="currentTicket"
-      @changePlayDate="onChangePlayDate"
+      @update="handleUpdate"
     ></TickList>
 
     <div slot="right">
@@ -17,8 +17,7 @@
           ref="formInfo"
           style="margin-bottom:10px"
           :current-ticket="currentTicket"
-          :order-items="orderItems"
-          @changePlayDate="onChangePlayDate"></FormInfo>
+          :order-items="orderItems"></FormInfo>
       </div>
 
       <div>
@@ -100,6 +99,9 @@ export default {
       this.$refs.formInfo.$refs.form.clearValidate()
     },
     onChangePlayDate (playDate) {
+    },
+    handleUpdate (ticket) {
+      this.currentTicket = ticket
     }
   },
   beforeDestroy () {

+ 48 - 13
src/pages/sellManage/retail/FormInfo.vue

@@ -4,9 +4,12 @@
       <template slot="header">
         <div
           class="card-title"
+          style="display:flex;"
           v-if="currentTicket">
-          <span>当前票种:<b>{{ currentTicket.name || '无' }}</b></span>
-
+          <div style="display:flex;">
+            <div>当前票种:<b>{{ currentTicket.name || '无' }}</b></div>
+            <div v-if="category === 'batch'" style="margin-left: 20px;">当前场次:<b>{{ currentBatchName || '无' }}</b></div>
+          </div>
           <div>{{ form.playDateBegin | formatDate }} 票价:<span class="price"><b>{{ currentPrice }}</b> 元</span></div>
         </div>
         <span
@@ -94,7 +97,7 @@
         >
           {{ Certificate.ValidDate }}
         </el-form-item>
-        <el-form-item
+        <!-- <el-form-item
           v-if="category === 'ticket'"
           verify
           prop="playDateBegin"
@@ -107,7 +110,7 @@
             v-model="form.playDateBegin"
           >
           </el-date-picker>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item
           v-if="category === 'ticket'"
           prop="playDateEnd"
@@ -251,6 +254,12 @@ export default {
     },
     scenicName () {
       return this.$store.state.user.scenicName
+    },
+    currentBatchName () {
+      if (!this.currentTicket) return ''
+      const batchConfig = this.currentTicket.selectBatch || {}
+      const { name, startTime, endTime } = batchConfig
+      return name ? `${name} ${startTime} - ${endTime}` : ''
     }
   },
   data () {
@@ -364,6 +373,20 @@ export default {
         return this.$message.error('请选择门票')
       }
 
+      if (this.category === 'batch') {
+        if (!this.currentTicket.batchConfigId) {
+          return this.$message.error('请选场次')
+        }
+
+        if (this.currentTicket.selectBatch.leftNums <= 0) {
+          return this.$message.error('当前场次已售罄')
+        }
+
+        if (this.currentTicket.selectBatch.leftNums < this.form.count) {
+          return this.$message.error('当前场次剩余票数不足')
+        }
+      }
+
       if (this.loading) return
 
       this.$refs.form.validate((valid) => {
@@ -372,9 +395,9 @@ export default {
 
           this.syncTouristList()
 
-          let { guestName, guestIdentify, guestIdentifyType, guestPhone, playDateBegin, playDateEnd } = this.form
+          let { guestName, guestIdentify, guestIdentifyType, guestPhone, playDateEnd } = this.form
 
-          let { id, name, checkCount } = this.currentTicket
+          let { id, name, checkCount, playDate, selectBatch, isUseDateLimit } = this.currentTicket
 
           let price = this.currentPrice
 
@@ -400,6 +423,10 @@ export default {
             }
           }
 
+          const pdb = playDate
+          const pde = this.category === 'batch' ? playDate
+            : isUseDateLimit ? moment(playDateEnd).format('YYYY-MM-DD') : moment(playDateEnd).format('YYYY-MM-DD')
+
           let tickets = this.touristList.map(item => {
             return {
               ticketTypeId: id,
@@ -410,23 +437,24 @@ export default {
               guestIdentify,
               guestIdentifyType,
               ticketNo: item.ticketNo,
+              batchConfigId: selectBatch?.id || '',
               face: item.face,
               pricePlanId: this.currentPlan || 0,
-              playDateBegin: this.currentTicket.isUseDateLimit ? moment(playDateBegin).format('YYYY-MM-DD') : moment(playDateBegin).format('YYYY-MM-DD'),
-              playDateEnd: this.currentTicket.isUseDateLimit ? moment(playDateEnd).format('YYYY-MM-DD') : moment(playDateEnd).format('YYYY-MM-DD')
+              playDateBegin: pdb,
+              playDateEnd: pde
             }
           })
 
           // 合并游玩日期相同的票种数据
           const existItem = this.orderItems.find(i => {
             let dateIsEque
-            if (this.currentTicket.isUseDateLimit) {
-              dateIsEque = JSON.stringify(i.playDateBegin) === JSON.stringify(playDateBegin)
+            if (isUseDateLimit) {
+              dateIsEque = JSON.stringify(i.playDateBegin) === JSON.stringify(pdb)
             } else {
               dateIsEque = true
             }
             // 日期对象不全等
-            return i.id === this.currentTicket.id && dateIsEque && i.price === this.currentPrice
+            return i.id === id && dateIsEque && i.price === this.currentPrice
           })
 
           if (existItem) {
@@ -441,8 +469,15 @@ export default {
               count: tickets.length,
               price,
               total: this.totalPrice,
-              playDateBegin: this.currentTicket.isUseDateLimit ? playDateBegin : playDateBegin,
-              currentTicket: { ...this.currentTicket, pricePlanId: this.currentPlan, price, playDateBegin, playDateEnd },
+              playDateBegin: pdb,
+              currentTicket: {
+                ...this.currentTicket,
+                pricePlanId:
+                this.currentPlan,
+                price,
+                playDateBegin: pdb,
+                playDateEnd: pde
+              },
               tickets
             })
           }

+ 28 - 25
src/pages/ticketSetting/ticket/Dialog.vue

@@ -101,18 +101,7 @@
           </el-form-item> -->
 
           <el-form-item
-            label="使用天数"
-            prop="useDays"
-          >
-            <el-input-number
-              controls-position="right"
-              v-model="form.useDays"
-              :min="0"
-              :step="1"
-            ></el-input-number>
-          </el-form-item>
-
-          <el-form-item
+            v-if="form.category !== 'member'"
             label="日期类型"
             prop="useDateType"
           >
@@ -173,23 +162,20 @@
           </el-form-item>
 
           <el-form-item
-            v-if="form.category === 'member'"
-            label="激活方式"
-            prop="memberActiveType"
+            v-if="!(form.category === 'member' && form.memberUseDateType === 2)"
+            label="使用天数"
+            prop="useDays"
           >
-            <el-radio
-              v-model="form.memberActiveType"
-              :label="1">
-              【购买即激活】 该年卡购买了就开始递减天数
-            </el-radio>
-            <el-radio
-              v-model="form.memberActiveType"
-              :label="2">
-              【首次使用激活】:第一次用了之后才开始递减时间,示例值
-            </el-radio>
+            <el-input-number
+              controls-position="right"
+              v-model="form.useDays"
+              :min="0"
+              :step="1"
+            ></el-input-number>
           </el-form-item>
 
           <el-form-item
+            v-if="!(form.category === 'member' && form.memberUseDateType === 1)"
             verify
             label="使用日期"
             prop="useDateStart"
@@ -215,6 +201,23 @@
             </el-date-picker>
           </el-form-item>
 
+          <el-form-item
+            v-if="form.category === 'member'"
+            label="激活方式"
+            prop="memberActiveType"
+          >
+            <el-radio
+              v-model="form.memberActiveType"
+              :label="1">
+              【购买即激活】 该年卡购买了就开始递减天数
+            </el-radio>
+            <el-radio
+              v-model="form.memberActiveType"
+              :label="2">
+              【首次使用激活】:第一次用了之后才开始递减时间,示例值
+            </el-radio>
+          </el-form-item>
+
           <!-- <el-form-item
             label="是否实名制购票"
             prop="isRealName"

+ 10 - 10
src/router/index.js

@@ -712,17 +712,11 @@ let routerMap = [
       //   component: require('@/pages/queryReport/printOlStatistics').default,
       //   meta: { title: '取票统计', permissionName: 'querystats:fetch_stats' }
       // },
-      // {
-      //   path: 'checkQuery',
-      //   name: 'checkQuery',
-      //   component: require('@/pages/queryReport/checkQuery').default,
-      //   meta: { title: '检票记录', permissionName: 'querystats:check_query' }
-      // },
       {
-        path: 'checkStatistic',
-        name: 'checkStatistic',
-        component: require('@/pages/queryReport/checkStatistic').default,
-        meta: { title: '检票设备入园', permissionName: 'querystats:check_stats' }
+        path: 'checkQuery',
+        name: 'checkQuery',
+        component: require('@/pages/queryReport/checkQuery').default,
+        meta: { title: '订单核销', permissionName: 'querystats:check_query' }
       },
       {
         path: 'freeQuery',
@@ -741,6 +735,12 @@ let routerMap = [
         name: 'vistorStaticstics',
         component: () => import('@/pages/visitor/vistorStaticstics'),
         meta: { title: '客户画像', permissionName: 'customer:customer_stats' }
+      },
+      {
+        path: 'checkStatistic',
+        name: 'checkStatistic',
+        component: require('@/pages/queryReport/checkStatistic').default,
+        meta: { title: '检票设备入园', permissionName: 'querystats:check_stats' }
       }
       // {
       //   path: 'salesDaily',