dct 1 year ago
parent
commit
e7399928c7

+ 1 - 1
index.html

@@ -5,7 +5,7 @@
     <meta charset="UTF-8">
     <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
     <meta http-equiv="X-UA-Compatible" content="ie=edge">
-    <title>电子票务系统</title>
+    <title>售检票系统</title>
     <link rel="stylesheet" href="https://at.alicdn.com/t/font_1433521_2lryjmxpnlk.css">
     <style>
         html,

+ 4 - 0
src/api/order.js

@@ -250,3 +250,7 @@ export function preorderDetailTravellerFace (id) {
 export function getKeys () {
   return http.post('http://175.44.31.47:3000/impression-mazu-ms/open/loginApp/getKeys?loginName=browse&password=Aaqw2@2024')
 }
+
+export function printTickets (ids) {
+  return http.post('/admin/order/printTicket', { data: { ticketIdList: ids } })
+}

+ 63 - 18
src/components/GlobalComponents/OrderDetail.vue

@@ -101,34 +101,67 @@
                 {{ scope.row.checkNum ? scope.row.price / scope.row.checkNum : scope.row.price }}
               </template>
             </el-table-column>
-            <el-table-column width="100" prop="guestName" label="游客姓名">
-            </el-table-column>
-            <el-table-column width="140" prop="guestPhone" label="游客手机号">
-            </el-table-column>
-            <el-table-column width="100" prop="guestIdentifyType" label="证件类型">
+            <el-table-column width="210" prop="guestInfo" label="游客信息">
               <template slot-scope="scope">
-                {{ papersType[scope.row.guestIdentifyType] }}
+                <div class=""><span>姓名:</span>{{ scope.row.guestName }}</div>
+                <div class=""><span>手机号:</span>{{ scope.row.guestPhone }}</div>
+                <div class=""><span>证件类型:</span>{{ papersType[scope.row.guestIdentifyType] }}</div>
+                <div class=""><span>证件号码:</span>{{ scope.row.guestIdentify }}</div>
               </template>
             </el-table-column>
-            <el-table-column prop="guestIdentify" label="证件号码">
-            </el-table-column>
-            <el-table-column width="80" prop="checkNum" label="检票人数">
+            <el-table-column width="260" prop="ticketCheckInfo" label="检票信息">
+              <template slot-scope="scope">
+                <div class=""><span>检票状态:</span>
+                  <TicketStatusTag :value="scope.row.status"></TicketStatusTag>
+                </div>
+                <div class=""><span>检票人数:</span>{{ scope.row.checkNum }}</div>
+                <div class=""><span>首次检票时间:</span>{{ scope.row.firstCheckTime }}</div>
+                <div class=""><span>最后一次检票时间:</span>{{ scope.row.checkTime }}</div>
+                <div class=""><span>检票闸机:</span>{{ scope.row.checkerName }}</div>
+              </template>
             </el-table-column>
-            <el-table-column width="160" prop="playDateBegin" label="游玩时间">
+            <el-table-column width="260" prop="ticketPrintInfo" label="取票信息">
               <template slot-scope="scope">
-                {{ scope.row.playDateBegin || scope.row.playDateEnd ? `${scope.row.playDateBegin || ''} - ${scope.row.playDateEnd || ''}` : "无限制" }}
+                <div class=""><span>取票状态:</span>
+                  <el-tag :type="scope.row.isPrint ? 'success' : 'info'">
+                    {{ scope.row.isPrint ? "已取票" : "未取票" }}
+                  </el-tag>
+                </div>
+                <div class=""><span>取票时间:</span>{{ scope.row.printTime }}</div>
+                <div class=""><span>取票人:</span>{{ scope.row.printAdminName }}</div>
+                <div class=""><span>取票自助机:</span>{{ scope.row.printTermName }}</div>
               </template>
             </el-table-column>
-            <el-table-column width="80" label="取票状态">
+            <el-table-column width="260" prop="ticketRefundInfo" label="退票信息">
               <template slot-scope="scope">
-                <el-tag :type="scope.row.isPrint ? 'success' : 'info'">
-                  {{ scope.row.isPrint ? "已取票" : "未取票" }}
-                </el-tag>
+                <div class=""><span>退款操作人:</span>{{ scope.row.cancelAdminName }}</div>
+                <div class=""><span>退款金额:</span>{{ scope.row.cancelPrice }}</div>
+                <div class=""><span>退款申请时间:</span>{{ scope.row.cancelSubmitTime }}</div>
+                <div class=""><span>退款完成时间:</span>{{ scope.row.cancelCompleteTime }}</div>
               </template>
             </el-table-column>
-            <el-table-column width="80" label="状态">
+            <el-table-column width="240" prop="ticketCardInfo" label="卡信息">
+              <template slot-scope="scope" v-if="scope.row.card">
+                <div class=""><span>卡片编号:</span>{{ scope.row.card.cardNo }}</div>
+                <div class=""><span>有效时间:</span>{{ scope.row.card.validDateStart }} - {{ scope.row.card.validDateEnd }}</div>
+                <div class=""><span>卡片状态:</span>{{ scope.row.card.status | filterCardStatus }}</div>
+                <div class="" v-if="scope.row.card.status === 1"><span>开卡时间:</span>{{ scope.row.card.cardNo }}</div>
+                <div class="" v-if="scope.row.card.status === 0"><span>退卡时间:</span>{{ scope.row.card.cardNo }}</div>
+                <div class="" v-if="scope.row.card.status === 2"><span>挂失时间:</span>{{ scope.row.card.repealTime }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column width="240" prop="ticketFaceInfo" label="人脸信息">
+              <template slot-scope="scope" v-if="scope.row.face">
+                <div class=""><span>有效时间:</span>{{ scope.row.face.validDateStart }} - {{ scope.row.face.validDateEnd }}</div>
+                <div class=""><span>卡片状态:</span>{{ scope.row.face.status === 0 ? '可用' : '不可用' }}</div>
+                <div class=""><span>图片地址:</span>{{ scope.row.face.imageUrl }}</div>
+                <div class=""><span>base64:</span>{{ scope.row.face.faceData }}</div>
+                <div class=""><span>注册状态:</span>{{ scope.row.face.registerStatus === 0 ? '未注册' : '已注册' }}</div>
+              </template>
+            </el-table-column>
+            <el-table-column width="160" prop="playDateBegin" label="游玩时间">
               <template slot-scope="scope">
-                <TicketStatusTag :value="scope.row.status"></TicketStatusTag>
+                {{ scope.row.playDateBegin || scope.row.playDateEnd ? `${scope.row.playDateBegin || ''} - ${scope.row.playDateEnd || ''}` : "无限制" }}
               </template>
             </el-table-column>
             <el-table-column width="80" prop="price" label="小计">
@@ -449,7 +482,7 @@ export default {
       visible: false,
       detailVisible: false,
       record: {},
-      activeTab: 'payInfo',
+      activeTab: 'ticketCheckInfo',
       ticketNoSearch: '',
       ticketNoSearch1: '',
       ticketNoSearch2: ''
@@ -501,6 +534,18 @@ export default {
         default:
           break
       }
+    },
+    filterCardStatus (input) {
+      switch (input) {
+        case 0:
+          return '未使用'
+        case 1:
+          return '使用中'
+        case 2:
+          return '已挂失'
+        default:
+          return input
+      }
     }
   },
   methods: {

+ 19 - 2
src/pages/checkerManage/deviceManage.vue

@@ -137,8 +137,15 @@
         <el-table-column
           prop="status"
           label="状态">
-          <template slot-scope="props">
-            <span>{{ props.row.status ? '启用' : '禁用' }}</span>
+          <template slot-scope="scope">
+            <el-switch
+              @change="handelStatusChange($event,scope.row)"
+              v-model="scope.row.isUse"
+              active-text="启用"
+              inactive-text="禁用"
+              :active-value="1"
+              :inactive-value="0">
+            </el-switch>
           </template>
         </el-table-column>
         <el-table-column
@@ -386,6 +393,16 @@ export default {
         this.batchUpdateDialogVisible = false
         this.getList()
       })
+    },
+    handelStatusChange (value, item) {
+      return ''
+      // const newItem = Object.assign({}, { ...item, status: value })
+
+      // batchUpdateDeviceScene(newItem).then(res => {
+      //   this.$message.success('操作成功')
+      //   this.getList()
+      //   this.$store.dispatch('getFreeConfig')
+      // })
     }
   }
 }

+ 10 - 12
src/pages/checkerManage/subProjectManage.vue

@@ -48,14 +48,14 @@
           prop="adminIds"
           label="管理员">
           <template slot-scope="scope">
-            {{ getAdminName(scope.row.adminIds) }}
+            {{ getAdminName(scope.row.admins) }}
           </template>
         </el-table-column>
         <el-table-column
           prop="ticketTypeIds"
           label="票种">
           <template slot-scope="scope">
-            {{ getTicketTypeNames(scope.row.ticketTypeIds) }}
+            {{ getTicketTypeNames(scope.row.ticketTypes) }}
           </template>
         </el-table-column>
         <el-table-column
@@ -220,8 +220,8 @@ export default {
       this.currentItem = {
         id: item.id,
         name: item.name,
-        adminIds: item.adminIds || [],
-        ticketTypeIds: item.ticketTypeIds || []
+        adminIds: item.admins.map(adm => adm.id) || [],
+        ticketTypeIds: item.ticketTypes.map(tt => tt.id) || []
       }
       this.dialogVisible = true
     },
@@ -245,15 +245,13 @@ export default {
         this.getList()
       })
     },
-    getAdminName (ids) {
-      if (!ids) return ''
-      const names = this.adminList.filter(item => ids.includes(item.id)).map(item => item.loginName)
-      return names.join(',')
+    getAdminName (admins) {
+      if (!admins) return ''
+      return admins.map(admin => admin.loginName).join(',')
     },
-    getTicketTypeNames (ids) {
-      if (!ids) return ''
-      const names = this.ticketTypeList.filter(item => ids.includes(item.id)).map(item => item.name)
-      return names.join(',')
+    getTicketTypeNames (ticketTypes) {
+      if (!ticketTypes) return ''
+      return ticketTypes.map(tt => tt.name).join(',')
     }
   }
 }

+ 2 - 2
src/pages/checkerManage/termManage/index.vue

@@ -143,7 +143,7 @@
 <script>
 import Modal from './Modal.vue'
 import TicketSpot from './TicketSpot.vue'
-import { getTerm, updateTerm, deleteTerm } from '@/api/termManage'
+import { getTermList, updateTerm, deleteTerm } from '@/api/termManage'
 
 const nameMap = {
   'POS': 'POS机',
@@ -191,7 +191,7 @@ export default {
     getList (goFirst) {
       this.loading = true
       goFirst && (this.form.pageNum = 1)
-      getTerm(this.form).then(res => {
+      getTermList(this.form).then(res => {
         this.total = res.data?.total || 0
         this.tableData = res.data?.records
       }).finally(() => {

+ 20 - 10
src/pages/queryReport/OrderStatistics.vue

@@ -11,6 +11,8 @@
       </div>
       <el-form-item
         label="起始时间"
+        required
+        verify
         prop="timeBegin">
         <el-date-picker
           v-model="form.timeBegin"
@@ -21,6 +23,8 @@
 
       <el-form-item
         label="截止时间"
+        required
+        verify
         prop="timeEnd">
         <el-date-picker
           default-time="23:59:59"
@@ -286,7 +290,7 @@
             {{ scope.row.actualCheckNum - scope.row.cancel_multi_people }}
           </template>
         </el-table-column> -->
-        <el-table-column
+        <!-- <el-table-column
           v-if="selectKeys.includes('ticketTypeName')"
           prop="ticketTypeName"
           label="票种">
@@ -305,7 +309,7 @@
           v-if="selectKeys.includes('payChannel')"
           prop="payChannel"
           label="支付方式">
-        </el-table-column>
+        </el-table-column> -->
       </el-table>
     </div>
   </div>
@@ -530,6 +534,20 @@ export default {
     },
     // 获取表格数据
     getSaleStatistic () {
+      if (this.form.timeBegin) {
+        this.form.timeBegin = moment(this.form.timeBegin).format('YYYY-MM-DD HH:mm:ss')
+      } else {
+        this.$message.error('请选择起始时间')
+        return
+      }
+
+      if (this.form.timeEnd) {
+        this.form.timeEnd = moment(this.form.timeEnd).format('YYYY-MM-DD HH:mm:ss')
+      } else {
+        this.$message.error('请选择截止时间')
+        return
+      }
+
       this.loading = true
       this.tableData = []
 
@@ -544,14 +562,6 @@ export default {
 
       this.form.groupByList = this.finalGroup.map(i => i.value)
 
-      if (this.form.timeBegin) {
-        this.form.timeBegin = moment(this.form.timeBegin).format('YYYY-MM-DD HH:mm:ss')
-      }
-
-      if (this.form.timeEnd) {
-        this.form.timeEnd = moment(this.form.timeEnd).format('YYYY-MM-DD HH:mm:ss')
-      }
-
       getOrderStatistics(this.form).then(res => {
         this.tableData = res.data || []
 

+ 184 - 41
src/pages/queryReport/salesQuery.vue

@@ -390,6 +390,12 @@
               @click="editOrder(scope.row)">
               修改
             </el-link>
+            <el-link
+              type="primary"
+              v-if="scope.row.status !== 'CANCELED'"
+              @click="printOrder(scope.row)">
+              网络取票
+            </el-link>
             <br>
             <el-link
               type="primary"
@@ -896,6 +902,77 @@
           @click="submitSecondPrint">确定</el-button>
       </span>
     </el-dialog>
+    <el-dialog
+      title="网络取票"
+      :visible.sync="printOrderDialogVisible"
+      width="80%"
+      @close="printOrderDialogVisible=false">
+      <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="printOrderDialogVisible = false">取消</el-button>
+        <el-button
+          type="primary"
+          @click="submitPrintOrder">确定</el-button>
+      </span>
+    </el-dialog>
     <el-dialog
       title="修改"
       :visible.sync="editOrderDialogVisible"
@@ -952,9 +1029,23 @@
         </el-form-item>
         <el-form-item
           v-if="editOrderInfo.updateType === 'updatePlayDate'"
-          label="原游玩时间"
+          label="选择门票"
           prop="playDateBegin">
-          {{ currentOrder.playDateBegin || currentOrder.playDateEnd ? `${currentOrder.playDateBegin || ''} - ${currentOrder.playDateEnd || ''}` : "无限制" }}
+          <el-select
+            v-model="editOrderInfo.ticketIds"
+            multiple>
+            <el-option
+              v-for="item in currentOrder.ticketList"
+              :key="item.id"
+              :label="item.ticketNo"
+              :value="item.id">
+              <span style="">{{ item.ticketNo }}</span>-
+              <span style="color: #8492a6; font-size: 13px">{{ item.ticketTypeName }}</span>
+              (<span style="color: #849822; font-size: 13px">
+                {{ item.playDateBegin || item.playDateEnd ? `${item.playDateBegin || ''} - ${item.playDateEnd || ''}` : "无限制" }}
+              </span>)
+            </el-option>
+          </el-select>
         </el-form-item>
         <el-form-item
           v-if="editOrderInfo.updateType === 'updatePlayDate'"
@@ -977,20 +1068,6 @@
             placeholder="选择日期时间">
           </el-date-picker>
         </el-form-item>
-        <!-- <el-form-item
-          v-if="editOrderInfo.updateType === 'updateScenicTimes'"
-          label="检票次数"
-          prop="checkLimitTimes"
-        >
-          <el-input-number
-            v-model="editOrderInfo.checkLimitTimes"
-            :min="-1"
-          ></el-input-number>
-          <div class="tips">
-            <i class="el-icon-info"></i>
-            -1代表不限制 如果当前景点为群组景点 该次数为群组景点的检票次数总和
-          </div>
-        </el-form-item> -->
         <div class="tableBox" v-if="editOrderInfo.updateType === 'updateScenicTimes'">
           <div class="tips">
             <i class="el-icon-info"></i>
@@ -1000,19 +1077,39 @@
             border
             stripe
             height="500"
-            :data="editOrderInfo.ticketCheckScenicUpdateRequestList">
-            <el-table-column
-              label="景点"
-              prop="scenicName"
-              min-width="90">
+            :data="editOrderInfo.ticketList">
+            <el-table-column type="expand">
+              <template slot-scope="props">
+                <div class="title">检票景点明细</div>
+                <el-table :data="props.row.ticketCheckScenicList" :max-height="200">
+                  <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>
+              </template>
             </el-table-column>
-            <el-table-column
-              label="已检票次数"
-              prop="checkedTimes"
-              min-width="90">
+            <el-table-column width="160" prop="ticketNo" label="票号"> </el-table-column>
+            <el-table-column width="100" prop="ticketTypeName" label="票种"> </el-table-column>
+            <el-table-column min-width="180" label="检票景点">
+              <template slot-scope="scope">
+                {{ scope.row.ticketCheckScenicList.map(item => item.scenicName).join(',') }}
+              </template>
             </el-table-column>
             <el-table-column
-              label="当前景点的限制检票次数"
+              label="景点的限制检票次数"
               min-width="90">
               <template slot-scope="scope">
                 <el-input-number
@@ -1038,7 +1135,7 @@
 
 <script>
 /* eslint-disable no-unused-vars */
-import { apiOrderList, pickInvoice, getInvoice, cancelOrder, reprintTicket, checkTickets, updateOrder, getSaleChannelList, getSingleOrder } from '@/api/order'
+import { apiOrderList, pickInvoice, getInvoice, cancelOrder, reprintTicket, checkTickets, updateOrder, getSaleChannelList, getSingleOrder, printTickets } from '@/api/order'
 import { orderStatusDic, ticketStatusDic, channelList, papersType, orderCategories } from '@/assets/staticData'
 import { getPayStatus } from '@/utils/index'
 // import Ellipsis from '@/components/Ellipsis'
@@ -1155,6 +1252,7 @@ export default {
         orderId: '',
         ticketIdList: []
       },
+      printOrderDialogVisible: false,
       secondPrintDialogVisible: false,
       secondPrintInfo: {
         orderId: '',
@@ -1172,7 +1270,8 @@ export default {
         payChannel: '',
         playDateBegin: '',
         playDateEnd: '',
-        checkLimitTimes: 0,
+        ticketIds: [],
+        ticketList: [],
         ticketCheckScenicUpdateRequestList: []
       }
     }
@@ -1372,7 +1471,7 @@ export default {
     },
     submitRefundOrder () {
       if (!this.multipleSelection?.length) {
-        return this.$message.error('请选择退单门票')
+        return this.$message.error('请选择门票')
       }
 
       this.refundOrderInfo.ticketCancelRequestList = this.multipleSelection.map(v => {
@@ -1389,10 +1488,10 @@ export default {
       }).then(() => {
         cancelOrder(this.refundOrderInfo).then(res => {
           if (res.code === '999999') {
-            this.$message.warning(res.msg || '退单失败')
+            this.$message.warning(res.msg || '操作失败')
             return
           }
-          this.$message.success('退单成功')
+          this.$message.success('操作成功')
           this.refundOrderDialogVisible = false
           this.getOrderList()
         })
@@ -1400,7 +1499,7 @@ export default {
     },
     submitSecondPrint () {
       if (!this.multipleSelection?.length) {
-        return this.$message.error('请选择打印门票')
+        return this.$message.error('请选印门票')
       }
 
       this.secondPrintInfo.ticketIdList = this.multipleSelection.map(v => v.id)
@@ -1412,10 +1511,10 @@ export default {
       }).then(() => {
         reprintTicket(this.secondPrintInfo).then(res => {
           if (res.code === '999999') {
-            this.$message.warning(res.msg || '打印失败')
+            this.$message.warning(res.msg || '操作失败')
             return
           }
-          this.$message.success('打印成功')
+          this.$message.success('操作成功')
           this.secondPrintDialogVisible = false
           this.getOrderList()
         })
@@ -1433,7 +1532,7 @@ export default {
     },
     submitCheckOrder () {
       if (!this.multipleSelection?.length) {
-        return this.$message.error('请选择核销门票')
+        return this.$message.error('请选择门票')
       }
 
       this.checkOrderInfo.ticketIdList = this.multipleSelection.map(v => v.id)
@@ -1445,10 +1544,37 @@ export default {
       }).then(() => {
         checkTickets(this.checkOrderInfo).then(res => {
           if (res.code === '999999') {
-            this.$message.warning(res.msg || '核销失败')
+            this.$message.warning(res.msg || '操作失败')
+            return
+          }
+          this.$message.success('操作成功')
+          this.checkOrderDialogVisible = false
+          this.getOrderList()
+        })
+      })
+    },
+    async printOrder (order) {
+      await this.getOrderDetail(order)
+      this.printOrderDialogVisible = true
+    },
+    submitPrintOrder () {
+      if (!this.multipleSelection?.length) {
+        return this.$message.error('请选择门票')
+      }
+
+      const ticketIdList = this.multipleSelection.map(v => v.id)
+
+      this.$confirm('确定要网络取票吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        printTickets(ticketIdList).then(res => {
+          if (res.code === '999999') {
+            this.$message.warning(res.msg || '操作失败')
             return
           }
-          this.$message.success('核销成功')
+          this.$message.success('操作成功')
           this.checkOrderDialogVisible = false
           this.getOrderList()
         })
@@ -1464,8 +1590,13 @@ export default {
       this.editOrderInfo.playDateEnd = order.playDateEnd
 
       this.editOrderInfo.ticketCheckScenicUpdateRequestList = []
+      this.editOrderInfo.ticketList = []
       this.currentOrder.ticketList.forEach(v => {
-        this.editOrderInfo.ticketCheckScenicUpdateRequestList.push(...v.ticketCheckScenicList)
+        this.editOrderInfo.ticketList.push({
+          ...v,
+          checkLimitTimes: -1 // 默认不限制
+        })
+        // this.editOrderInfo.ticketCheckScenicUpdateRequestList.push(...v.ticketCheckScenicList)
       })
     },
     cancelEdit () {
@@ -1476,7 +1607,8 @@ export default {
         payChannel: '',
         playDateBegin: '',
         playDateEnd: '',
-        checkLimitTimes: 0,
+        ticketIds: [],
+        ticketList: [],
         ticketCheckScenicUpdateRequestList: []
       }
     },
@@ -1491,8 +1623,19 @@ export default {
         return this.$message.error('请选择游玩日期')
       }
 
-      if (this.editOrderInfo.updateType !== 'updateScenicTimes') {
-        this.editOrderInfo.ticketCheckScenicUpdateRequestList = []
+      this.editOrderInfo.ticketCheckScenicUpdateRequestList = []
+
+      if (this.editOrderInfo.updateType === 'updateScenicTimes') {
+        this.editOrderInfo.ticketIds = this.editOrderInfo.ticketList.map(item => item.id)
+        this.editOrderInfo.ticketList.forEach(item => {
+          item.ticketCheckScenicList.forEach(scenic => {
+            this.editOrderInfo.ticketCheckScenicUpdateRequestList.push({
+              id: scenic.id,
+              checkedTimes: scenic.checkedTimes,
+              checkLimitTimes: item.checkLimitTimes
+            })
+          })
+        })
       }
 
       updateOrder(this.editOrderInfo).then(res => {

+ 16 - 14
src/pages/sellManage/retail/FormInfo.vue

@@ -25,6 +25,22 @@
         :model="form"
         :inline="true"
         label-width="100px">
+        <el-form-item
+          v-if="isTeam"
+          verify
+          required
+          label="团体">
+          <el-select
+            filterable
+            v-model="form.teamId">
+            <el-option
+              v-for="item in teamList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item
           verify
           can-be-empty
@@ -158,20 +174,6 @@
             锁定
           </el-checkbox>
         </el-form-item>
-        <el-form-item
-          v-if="isTeam"
-          verify
-          label="团体">
-          <el-select
-            v-model="form.teamId">
-            <el-option
-              v-for="item in teamList"
-              :key="item.id"
-              :label="item.name"
-              :value="item.id">
-            </el-option>
-          </el-select>
-        </el-form-item>
         <!-- v-if="form.checkWay === 3 || form.checkWay === 4" -->
         <el-form-item
           label="游客信息"

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

@@ -44,7 +44,7 @@
               v-model="remark"
               style="width:200px"></el-input>
           </span>
-          <span class="item">图片备注:
+          <!-- <span class="item">图片备注:
             <el-button
               type="primary"
               size="small"
@@ -53,7 +53,7 @@
             >
               编辑查看
             </el-button>
-          </span>
+          </span> -->
         </div>
 
         <el-button

+ 1 - 1
src/pages/systemSetting/commonSetting.vue

@@ -43,9 +43,9 @@
       <el-table border stripe v-loading="loading" :data="configList">
         <!-- <el-table-column prop="configKey" label="配置键">
         </el-table-column> -->
+        <el-table-column prop="configDesc" label="描述"></el-table-column>
         <el-table-column prop="configValue" label="配置值">
         </el-table-column>
-        <el-table-column prop="configDesc" label="描述"></el-table-column>
         <!-- <el-table-column label="创建时间">
           <template slot-scope="scope">
             {{ scope.row.createTime | formatTime }}

+ 0 - 3
src/pages/ticketSetting/scenic.vue

@@ -29,9 +29,6 @@
             {{ scope.row.isOpen | scenicStatus }}
           </template>
         </el-table-column>
-        <el-table-column
-          prop="createTime"
-          label="创建时间"></el-table-column>
         <!-- <el-table-column
           width="300"
           label="开放时间">

+ 13 - 13
src/router/index.js

@@ -92,6 +92,12 @@ let routerMap = [
         component: require('@/pages/sellManage/retail').default,
         meta: { title: '散客售票', permissionName: 'ticket_sale:ticket', category: 'ticket' }
       },
+      {
+        path: 'team-ticket',
+        name: 'team-ticket',
+        component: require('@/pages/sellManage/retail').default,
+        meta: { title: '团体售票', permissionName: 'ticket_sale:team', category: 'ticket', type: 'team' }
+      },
       {
         path: 'retail-batch',
         name: 'retail-batch',
@@ -104,12 +110,6 @@ let routerMap = [
         component: require('@/pages/sellManage/retail').default,
         meta: { title: '年卡次卡', permissionName: 'ticket_sale:member', category: 'member' }
       },
-      {
-        path: 'team-ticket',
-        name: 'team-ticket',
-        component: require('@/pages/sellManage/retail').default,
-        meta: { title: '团体售票', permissionName: 'ticket_sale:team', category: 'ticket', type: 'team' }
-      },
       {
         path: 'salesQuery',
         name: 'salesQuery',
@@ -396,7 +396,7 @@ let routerMap = [
       {
         path: 'teamManage',
         name: 'teamManage',
-        component: require('@/pages/checkerManage/teamManage').default,
+        component: require('@/pages/checkerManage/termManage').default,
         meta: { title: '团队管理', permissionName: 'ticket_check:team' }
       },
       {
@@ -939,12 +939,12 @@ let routerMap = [
         component: require('@/pages/systemSetting/role').default,
         meta: { title: '角色管理', permissionName: 'system_setting:roles' }
       },
-      {
-        path: 'smallTicket',
-        name: 'smallTicket',
-        component: require('@/pages/systemSetting/smallTicket').default,
-        meta: { title: '小票打印配置', permissionName: 'system_setting:print_model' }
-      },
+      // {
+      //   path: 'smallTicket',
+      //   name: 'smallTicket',
+      //   component: require('@/pages/systemSetting/smallTicket').default,
+      //   meta: { title: '小票打印配置', permissionName: 'system_setting:print_model' }
+      // },
       {
         path: 'operationLog',
         name: 'operationLog',

+ 2 - 2
vue.config.js

@@ -4,11 +4,11 @@ function resolve (dir) {
   return path.join(__dirname, dir)
 }
 
-console.log('环境', process.env.NODE_ENV, require('./package.json').version)
+console.log('环境', process.env.VUE_APP_PROJECT_NAME, process.env.NODE_ENV, require('./package.json').version)
 
 const pagesObject = {
   index: {
-    title: process.env.VUE_APP_PROJECT_NAME,
+    title: '售检票系统',
     entry: 'src/main.js', // entry for the public page
     template: 'public/index.html', // source template
     filename: 'index.html' // output as dist/*