dct преди 8 месеца
родител
ревизия
e30f38ff74

+ 4 - 10
src/pages/queryReport/salesQuery.vue

@@ -1068,8 +1068,7 @@ export default {
         playDateEnd: '',
         checkLimitTimes: 0,
         ticketCheckScenicUpdateRequestList: []
-      },
-      orderDetailMap: new Map()
+      }
     }
   },
   filters: {
@@ -1125,7 +1124,7 @@ export default {
       this.multipleSelection = val
     },
     selectable (row, index) {
-      return row.status === 'USED'
+      return true
     },
     showPickInvoice (order) {
       this.visible = true
@@ -1249,13 +1248,8 @@ export default {
       }, 0)
     },
     async getOrderDetail (order) {
-      if (this.orderDetailMap.get(order.id)) {
-        this.currentOrder = this.orderDetailMap.get(order.id)
-      } else {
-        const res = await getSingleOrder(order.id)
-        this.currentOrder = res?.data || order
-        this.orderDetailMap.set(order.id, this.currentOrder)
-      }
+      const res = await getSingleOrder(order.id)
+      this.currentOrder = res?.data || order
     },
     async refundOrder (order) {
       await this.getOrderDetail(order)

+ 14 - 9
src/pages/sellManage/common/TicketList.vue

@@ -3,6 +3,7 @@
     class="search-list-wrap"
     :class="{focusFlash:isFocus}">
     <div
+      v-if="!isPeriodTicket"
       class="top-title">
       游玩日期
       <div>
@@ -12,16 +13,10 @@
           :picker-options="dateOption"
           v-model="playDate"
           type="date"
-          placeholder="选择日期时间">
+          placeholder="选择日期时间"
+          @change="handleDateChange"
+        >
         </el-date-picker>
-
-        <el-button
-          style="margin:0 0 0 10px"
-          type="primary"
-          size="small"
-          @click="getTicketTypeInfo">
-          更新
-        </el-button>
       </div>
     </div>
     <div class="top-title">选择票种</div>
@@ -265,6 +260,12 @@ export default {
           ...config
         }
       })
+    },
+    // 是否期票
+    isPeriodTicket () {
+      const category = this.$route.meta.category || 'ticket'
+      const { useDateType } = this.currentTicket || {}
+      return category === 'ticket' && useDateType === 2
     }
   },
   watch: {
@@ -342,6 +343,10 @@ export default {
         this.loading = false
       })
     },
+    async handleDateChange (val) {
+      this.playDate = moment(val).format('YYYY-MM-DD')
+      this.getTicketTypeInfo()
+    },
     async getTicketTypeInfo () {
       const playDate = moment(this.playDate).format('YYYY-MM-DD')
       this.$emit('changePlayDate', playDate)

+ 4 - 0
src/pages/sellManage/retail/Confirm.vue

@@ -197,6 +197,7 @@
 import mixin from './mixin'
 import posMixin from '@/pages/common/posMixin'
 import confirmMixin from '../common/confirmMixin'
+import moment from 'moment'
 
 export default {
   mixins: [mixin, posMixin, confirmMixin],
@@ -210,6 +211,9 @@ export default {
       let tickets = JSON.parse(JSON.stringify(this.tickets))
       let params = Object.assign({}, this.formData)
 
+      params.playDateBegin = moment(this.formData.playDateBegin).format('YYYY-MM-DD')
+      params.playDateEnd = moment(this.formData.playDateEnd).format('YYYY-MM-DD')
+
       // 一码多人,根据单张门票最大限额进行拆分
       if (params.checkWay - 0 === 2) {
         let allTickets = []

+ 61 - 25
src/pages/sellManage/retail/FormInfo.vue

@@ -97,8 +97,7 @@
         >
           {{ Certificate.ValidDate }}
         </el-form-item>
-        <!-- <el-form-item
-          v-if="category === 'ticket'"
+        <el-form-item
           verify
           prop="playDateBegin"
           label="游玩日期">
@@ -106,13 +105,13 @@
             :clearable="false"
             type="date"
             :editable="false"
+            :disabled="disablePlayDateBegin"
             :picker-options="dateOption"
             v-model="form.playDateBegin"
           >
           </el-date-picker>
-        </el-form-item> -->
+        </el-form-item>
         <el-form-item
-          v-if="category === 'ticket'"
           prop="playDateEnd"
           label="结束日期">
           <el-date-picker
@@ -270,7 +269,6 @@ export default {
       papersType: IDENTIFY_TYPES,
       checkWayList,
       pricePlan: [],
-      playEndDate: '',
       currentPrice: 0,
       currentPlan: null,
       retail_lockCheckStyle: this.$localStore.get('retail_lockCheckStyle') || false,
@@ -310,7 +308,8 @@ export default {
         disabledDate () {
           return false
         }
-      }
+      },
+      disablePlayDateBegin: false
     }
   },
   created () {
@@ -338,10 +337,21 @@ export default {
 
       this.Certificate = {}
     },
-    setEndDate () {
-      let endDate = moment(this.form.playDateBegin).add(this.currentTicket.useDays - 1, 'days').endOf('day').valueOf()
-      this.form.playDateEnd = new Date(endDate)
-      this.playEndDate = moment(endDate).format('YYYY-MM-DD')
+    setEndDate (val) {
+      const { category, currentTicket } = this
+      const { useDateType, memberUseDateType, useDays } = currentTicket
+
+      if ((category === 'ticket' && useDateType === 1) || (category === 'member' && memberUseDateType === 2)) {
+        this.form.playDateEnd = moment(val).add((useDays || 1) - 1, 'days').format('YYYY-MM-DD')
+      }
+
+      if (category === 'batch') {
+        this.form.playDateEnd = moment(val).format('YYYY-MM-DD')
+      }
+
+      if (category === 'member' && memberUseDateType === 1) {
+        this.form.playDateEnd = moment(val).add((useDays || 1) - 1, 'days').format('YYYY-MM-DD')
+      }
     },
     // 更新游客列表
     updateTourist (data) {
@@ -395,11 +405,11 @@ export default {
 
           this.syncTouristList()
 
-          let { guestName, guestIdentify, guestIdentifyType, guestPhone, playDateEnd } = this.form
+          const { guestName, guestIdentify, guestIdentifyType, guestPhone, playDateBegin, playDateEnd } = this.form
 
-          let { id, name, checkCount, playDate, selectBatch, isUseDateLimit } = this.currentTicket
+          const { id, name, checkCount, selectBatch, isUseDateLimit } = this.currentTicket
 
-          let price = this.currentPrice
+          const price = this.currentPrice
 
           if (this.form.checkWay === 3) {
             // 是否存在未填写的内容
@@ -423,9 +433,8 @@ export default {
             }
           }
 
-          const pdb = playDate
-          const pde = this.category === 'batch' ? playDate
-            : isUseDateLimit ? moment(playDateEnd).format('YYYY-MM-DD') : moment(playDateEnd).format('YYYY-MM-DD')
+          const pdb = moment(playDateBegin).format('YYYY-MM-DD')
+          const pde = moment(playDateEnd).format('YYYY-MM-DD')
 
           let tickets = this.touristList.map(item => {
             return {
@@ -489,7 +498,7 @@ export default {
             guestPhone: '',
             guestIdentify: '',
             guestIdentifyType: 0,
-            playDateBegin: new Date(moment().startOf('day').valueOf()),
+            playDateBegin: moment().format('YYYY-MM-DD'),
             lock: false // 是否可编辑
           }]
 
@@ -521,17 +530,44 @@ export default {
 
   },
   watch: {
-    currentTicket (val) {
+    async currentTicket (val) {
       if (!val) return
 
+      await this.$nextTick()
       this.resetForm()
-
-      // 设置初始日期
-      if (moment(val.useDateStart).isAfter(new Date())) {
-        this.form.playDateBegin = val.useDateStart
-      } else if (!this.form.playDateBegin) {
-        this.form.playDateBegin = new Date(moment().startOf('day').valueOf())
+      const { useDateType, useDateStart, useDateEnd, useDays, memberUseDateType, playDate } = val
+      this.disablePlayDateBegin = false
+
+      switch (this.category) {
+        case 'ticket':
+          if (useDateType === 2) {
+            this.form.playDateBegin = moment(useDateStart).format('YYYY-MM-DD')
+            this.form.playDateEnd = moment(useDateEnd).format('YYYY-MM-DD')
+            this.disablePlayDateBegin = true
+          } else {
+            this.form.playDateBegin = moment().format('YYYY-MM-DD')
+            this.form.playDateEnd = moment().add((useDays || 1) - 1, 'days').format('YYYY-MM-DD')
+          }
+          break
+        case 'batch':
+          this.form.playDateBegin = moment(playDate).format('YYYY-MM-DD')
+          this.form.playDateEnd = moment(playDate).format('YYYY-MM-DD')
+          this.disablePlayDateBegin = true
+          break
+        case 'member':
+          if (memberUseDateType === 1) {
+            this.form.playDateBegin = moment(playDate).format('YYYY-MM-DD')
+            this.form.playDateEnd = moment(playDate).add((useDays || 1) - 1, 'days').format('YYYY-MM-DD')
+          } else {
+            this.form.playDateBegin = moment(useDateStart).format('YYYY-MM-DD')
+            this.form.playDateEnd = moment(useDateEnd).format('YYYY-MM-DD')
+          }
+          this.disablePlayDateBegin = true
+          break
+        default :
+          break
       }
+
       // 设置不可选日期
       this.dateOption.disabledDate = (date) => {
         let beforeToday = moment().subtract(1, 'days').isAfter(date)
@@ -559,7 +595,7 @@ export default {
     },
     'form.playDateBegin' (val) {
       if (val) {
-        this.setEndDate()
+        this.setEndDate(val)
         this.currentPlan = null
         this.$emit('changePlayDate', moment(val).format('YYYY-MM-DD'))
         this.timer && clearTimeout(this.timer)

+ 1 - 1
src/router/index.js

@@ -716,7 +716,7 @@ let routerMap = [
         path: 'checkQuery',
         name: 'checkQuery',
         component: require('@/pages/queryReport/checkQuery').default,
-        meta: { title: '订单核销', permissionName: 'querystats:check_query' }
+        meta: { title: '核销统计', permissionName: 'querystats:check_query' }
       },
       {
         path: 'freeQuery',