dct пре 8 месеци
родитељ
комит
d9f4122fc8
2 измењених фајлова са 195 додато и 13 уклоњено
  1. 10 5
      src/api/order.js
  2. 185 8
      src/pages/queryReport/salesQuery.vue

+ 10 - 5
src/api/order.js

@@ -73,6 +73,16 @@ export function cancelOrder (params) {
   return http.post('/admin/order/cancelOrder', { data: params })
 }
 
+// 人工检票
+export function checkTickets (params) {
+  return http.post('/admin/order/manualCheck', { data: params })
+}
+
+// 修改订单
+export function updateOrder (params) {
+  return http.post('/admin/order/orderUpdate', { data: params })
+}
+
 // 获取所有订单统计
 export function getOrderStatistics (params) {
   return http.post('/admin/statistics/orderSaleStatistics', { data: params })
@@ -145,11 +155,6 @@ export function getSaleChannelList () {
   return http.post('/order/getSaleChannelList')
 }
 
-// 人工检票
-export function checkTickets (parasm) {
-  return http.post('/order/checkTickets', parasm)
-}
-
 // 补打记录
 export function getTicketSecondPrintLog (params) {
   return http.post('/orderStatistics/getTicketSecondPrintLog', params)

+ 185 - 8
src/pages/queryReport/salesQuery.vue

@@ -482,14 +482,16 @@
             </el-link>
             <el-link
               type="primary"
-              @click="$refs.orderDetail.show(scope.row)">
+              v-if="scope.row.status !== 'CANCELED'"
+              @click="checkOrder(scope.row)">
               核销
             </el-link>
-            <el-link
+            <!-- <el-link
               type="primary"
+              v-if="scope.row.status !== 'CANCELED'"
               @click="$refs.orderDetail.show(scope.row)">
               撤销核销
-            </el-link>
+            </el-link> -->
             <el-link
               type="primary"
               v-if="scope.row.status !== 'CANCELED'"
@@ -498,8 +500,9 @@
             </el-link>
             <el-link
               type="primary"
-              @click="$refs.orderDetail.show(scope.row)">
-              有效期
+              v-if="scope.row.status !== 'CANCELED'"
+              @click="editOrder(scope.row)">
+              修改
             </el-link>
             <!--
             <el-link
@@ -509,7 +512,7 @@
               开票
             </el-link>
             -->
-            <el-link
+            <!-- <el-link
               type="primary"
               v-if="scenicName==='昭苏' && scope.row.ticketList.some(v=>v.is_invoice_picked===0&&v.status==='USED')&&scope.row.otaName!=='清鹤自营售票'"
               @click="showPickInvoice(scope.row)">
@@ -520,7 +523,7 @@
               v-if="scenicName!=='昭苏' && scope.row.ticketList.some(v=>v.is_invoice_picked===0&&v.status==='USED')"
               @click="showPickInvoice(scope.row)">
               开票
-            </el-link>
+            </el-link> -->
           </template>
         </el-table-column>
       </el-table>
@@ -841,12 +844,102 @@
           @click="submitRefundOrder">确定</el-button>
       </span>
     </el-dialog>
+    <el-dialog
+      title="修改"
+      :visible.sync="editOrderDialogVisible"
+      width="80%"
+      @close="cancelEdit">
+      <el-form
+        class="searchBox"
+        ref="formEl"
+        :model="editOrderInfo"
+        :inline="true"
+        label-width="100px">
+        <el-form-item
+          label="修改类型"
+          prop="updateType"
+        >
+          <el-select
+            v-model="editOrderInfo.updateType"
+            clearable
+            placeholder="请选择"
+          >
+            <el-option
+              v-for="item in updateTypes"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item
+          v-if="editOrderInfo.updateType === 'updateOrderPayChannel'"
+          label="支付方式"
+          prop="payChannel"
+        >
+          <el-radio-group
+            border
+            fill="#379143"
+            class="tags-btn"
+            v-model="editOrderInfo.payChannel">
+            <el-radio
+              border
+              v-for="val in payChannelOptions"
+              :key="val"
+              :value="val"
+              :label="val"></el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <el-form-item
+          v-if="editOrderInfo.updateType === 'updatePlayDate'"
+          label="起始时间"
+          prop="playDateBegin">
+          <el-date-picker
+            v-model="editOrderInfo.playDateBegin"
+            type="datetime"
+            placeholder="选择日期时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item
+          v-if="editOrderInfo.updateType === 'updatePlayDate'"
+          label="截止时间"
+          prop="playDateEnd">
+          <el-date-picker
+            default-time="23:59:59"
+            v-model="editOrderInfo.playDateEnd"
+            type="datetime"
+            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>
+      </el-form>
+      <span slot="footer">
+        <el-button @click="cancelEdit">取消</el-button>
+        <el-button
+          type="primary"
+          @click="submitEditOrder">确定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
 <script>
 /* eslint-disable no-unused-vars */
-import { apiOrderList, pickInvoice, getInvoice, cancelOrder } from '@/api/order'
+import { apiOrderList, pickInvoice, getInvoice, cancelOrder, checkTickets, updateOrder } from '@/api/order'
 import { orderStatusDic, channelList, papersType } from '@/assets/staticData'
 import { getPayStatus } from '@/utils/index'
 
@@ -948,6 +1041,21 @@ export default {
         force: true,
         orderId: '',
         ticketCancelRequestList: []
+      },
+      updateTypes: [
+        { value: 'updateOrderPayChannel', label: '支付方式' },
+        { value: 'updatePlayDate', label: '游玩日期' },
+        { value: 'updateScenicTimes', label: '检票次数' }
+      ],
+      editOrderDialogVisible: false,
+      editOrderInfo: {
+        orderId: '',
+        updateType: '',
+        payChannel: '',
+        playDateBegin: '',
+        playDateEnd: '',
+        checkLimitTimes: 0,
+        ticketCheckScenicUpdateRequestList: []
       }
     }
   },
@@ -1156,6 +1264,75 @@ export default {
           this.getOrderList()
         })
       })
+    },
+    // 核销
+    checkOrder (order) {
+      this.$confirm('确定对此订单手工核销码, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        const params = {
+          force: true,
+          ticketIdList: order.ticketList.map(v => v.id)
+        }
+        checkTickets(params).then(res => {
+          if (res.code === '999999') {
+            this.$message.warning(res.msg || '核销失败')
+            return
+          }
+          this.$message.success('核销成功')
+          this.getOrderList()
+        })
+      })
+    },
+    // 修改
+    editOrder (order) {
+      this.editOrderDialogVisible = true
+      this.editOrderInfo.orderId = order.id
+      this.editOrderInfo.payChannel = order.payChannel
+      this.editOrderInfo.playDateBegin = order.playDateBegin
+      this.editOrderInfo.playDateEnd = order.playDateEnd
+    },
+    cancelEdit () {
+      this.editOrderDialogVisible = false
+      this.editOrderInfo = {
+        orderId: '',
+        updateType: '',
+        payChannel: '',
+        playDateBegin: '',
+        playDateEnd: '',
+        checkLimitTimes: 0,
+        ticketCheckScenicUpdateRequestList: []
+      }
+    },
+    submitEditOrder () {
+      if (this.editOrderInfo.updateType === '') {
+        return this.$message.error('请选择修改类型')
+      }
+      if (this.editOrderInfo.updateType === 'updateOrderPayChannel' && !this.editOrderInfo.payChannel) {
+        return this.$message.error('请选择支付方式')
+      }
+      if (this.editOrderInfo.updateType === 'updatePlayDate' && (!this.editOrderInfo.playDateBegin || !this.editOrderInfo.playDateEnd)) {
+        return this.$message.error('请选择游玩日期')
+      }
+
+      this.editOrderInfo.ticketCheckScenicUpdateRequestList = this.multipleSelection.map(v => {
+        return {
+          id: v.id,
+          checkLimitTimes: this.editOrderInfo.checkLimitTimes
+        }
+      })
+
+      updateOrder(this.editOrderInfo).then(res => {
+        if (res.code === '999999') {
+          this.$message.warning(res.msg || '修改失败')
+          return
+        }
+        this.$message.success('修改成功')
+        this.editOrderDialogVisible = false
+        this.getOrderList()
+      })
     }
   }
 }