Ver código fonte

fix: 订单支付修改

LaveyD 2 meses atrás
pai
commit
2d75dc8854

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "ticket",
-  "version": "1.0.17",
+  "version": "1.0.17.4",
   "private": true,
   "description": "多巴胺科技",
   "author": "",

+ 5 - 1
src/const/index.js

@@ -213,6 +213,10 @@ export const checkRuleDic = [
   },
   {
     value: 3,
-    label: '购买即核销'
+    label: '购买即核销(线下)'
+  },
+  {
+    value: 4,
+    label: '购买即核销(全局)'
   }
 ]

+ 44 - 3
src/pages/queryReport/reportList.vue

@@ -74,11 +74,24 @@
       <!-- <div class="block-title">
         报表列表
       </div> -->
+      <el-button
+        type="danger"
+        size="small"
+        :disabled="selectedRows.length === 0"
+        style="margin-bottom: 10px;"
+        @click="batchDeleteRecord">
+        批量删除({{ selectedRows.length }})
+      </el-button>
       <el-table
         stripe
         border
         v-loading="loading"
-        :data="tableData">
+        :data="tableData"
+        @selection-change="handleSelectionChange">
+        <el-table-column
+          type="selection"
+          width="55">
+        </el-table-column>
         <el-table-column
           label="创建时间"
           prop="createTime"
@@ -110,7 +123,7 @@
           label="操作人"
         >
         </el-table-column>
-        <el-table-column
+        <!-- <el-table-column
           prop="reportTime"
           label="制表时间"
         >
@@ -124,7 +137,7 @@
           prop="reportUser"
           label="制表人"
         >
-        </el-table-column>
+        </el-table-column> -->
         <el-table-column
           label="操作"
           width="120"
@@ -200,6 +213,7 @@ export default {
       tableData: [],
       total: 0,
       loading: false,
+      selectedRows: [],
       deviceList: []
     }
   },
@@ -232,10 +246,18 @@ export default {
       getReportList(this.form).then(res => {
         this.tableData = res.data.records || []
         this.total = res.data.total || 0
+        // 当前页无数据且不是第一页,跳回第一页重新加载
+        if (this.tableData.length === 0 && this.form.pageNum > 1) {
+          this.form.pageNum = 1
+          this.queryList()
+        }
       }).finally(() => {
         this.loading = false
       })
     },
+    handleSelectionChange (selection) {
+      this.selectedRows = selection
+    },
     deleteRecord (id) {
       this.$confirm('确定删除该记录?', '提示', {
         confirmButtonText: '确定',
@@ -247,6 +269,25 @@ export default {
             type: 'success',
             message: '删除成功!'
           })
+          this.queryList()
+        })
+      })
+    },
+    batchDeleteRecord () {
+      const ids = this.selectedRows.map(row => row.id)
+      this.$confirm(`确定删除选中的 ${ids.length} 条记录?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        deleteReport(ids).then(() => {
+          this.$message({
+            type: 'success',
+            message: `成功删除 ${ids.length} 条记录`
+          })
+          this.queryList()
+        }).catch(() => {
+          this.$message.error('删除失败,请重试')
         })
       })
     }

+ 63 - 3
src/pages/queryReport/salesQuery.vue

@@ -260,6 +260,19 @@
           </el-option>
         </el-select>
       </el-form-item>
+      <el-form-item
+        label="客户类型"
+        prop="teamIndividual"
+      >
+        <el-select
+          v-model="form.teamIndividual"
+          placeholder="请选择"
+          clearable>
+          <el-option label="全部" value=""></el-option>
+          <el-option label="团队" value="2"></el-option>
+          <el-option label="散客" value="1"></el-option>
+        </el-select>
+      </el-form-item>
       <div class="btn-wrap">
         <el-button
           @click="reset"
@@ -1687,11 +1700,27 @@
           </el-table>
         </div>
         <template v-if="editOrderInfo.updateType === 'updateCheckNumAndPrice' && editOrderInfo.payType === 'NO_PAY'">
+          <el-form-item
+            label="选择门票">
+            <el-select
+              v-model="editOrderInfo.ticketId"
+              @change="handleEditTicketChange">
+              <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>
+              </el-option>
+            </el-select>
+          </el-form-item>
           <el-form-item
             label="检票人数">
             <el-input-number
               controls-position="right"
               :min="1"
+              :precision="0"
               v-model="editOrderInfo.checkNum"
               @change="handelCheckNumChange"
             ></el-input-number>
@@ -1913,6 +1942,7 @@ export default {
         unitPriceBegin: undefined, // 单价
         unitPriceEnd: undefined, // 单价
         teamIdList: [],
+        teamIndividual: '',
         pageNum: 1,
         pageSize: 10
       },
@@ -1986,6 +2016,7 @@ export default {
         playDateBegin: '',
         playDateEnd: '',
         ticketIds: [],
+        ticketId: '',
         ticketList: [],
         ticketCheckScenicUpdateRequestList: [],
         payType: '',
@@ -2012,6 +2043,16 @@ export default {
       return orderCategories.find(item => item.id === n).name
     }
   },
+  watch: {
+    'editOrderInfo.updateType' (val) {
+      // 选择修改检票人数和金额时,需先选择门票再带出值,重置为空
+      if (val === 'updateCheckNumAndPrice') {
+        this.editOrderInfo.ticketId = ''
+        this.editOrderInfo.checkNum = undefined
+        this.editOrderInfo.price = undefined
+      }
+    }
+  },
   async created () {
     const searchParams = JSON.parse(sessionStorage.getItem('统计表-售票记录-查询条件'))
     if (searchParams) {
@@ -2514,6 +2555,7 @@ export default {
       this.editOrderInfo.checkNum = order.ticketCheckNum
       this.editOrderInfo.price = order.price
 
+      this.editOrderInfo.ticketId = ''
       this.editOrderInfo.ticketCheckScenicUpdateRequestList = []
       this.editOrderInfo.ticketList = []
       this.currentOrder.ticketList.forEach(v => {
@@ -2524,9 +2566,16 @@ export default {
         // this.editOrderInfo.ticketCheckScenicUpdateRequestList.push(...v.ticketCheckScenicList)
       })
     },
+    handleEditTicketChange (ticketId) {
+      const ticket = this.currentOrder.ticketList.find(item => item.id === ticketId)
+      if (!ticket) return
+      this.editOrderInfo.checkNum = ticket.checkNum || 1
+      this.editOrderInfo.price = ticket.price || 0
+    },
     handelCheckNumChange (val) {
-      const ticketPrice = this.currentOrder.originalPrice - (this.currentOrder.discountPrice || 0)
-      this.editOrderInfo.price = val * ticketPrice
+      const ticket = this.currentOrder.ticketList.find(item => item.id === this.editOrderInfo.ticketId)
+      const unitPrice = ticket ? (ticket.checkNum ? ticket.price / ticket.checkNum : ticket.price) : 0
+      this.editOrderInfo.price = Math.round(val * unitPrice * 100) / 100
     },
     cancelEdit () {
       this.editOrderDialogVisible = false
@@ -2537,6 +2586,7 @@ export default {
         playDateBegin: '',
         playDateEnd: '',
         ticketIds: [],
+        ticketId: '',
         ticketList: [],
         ticketCheckScenicUpdateRequestList: []
       }
@@ -2581,7 +2631,17 @@ export default {
         })
       }
 
-      updateOrder(this.editOrderInfo).then(res => {
+      if (this.editOrderInfo.updateType === 'updateCheckNumAndPrice') {
+        if (!this.editOrderInfo.ticketId) {
+          return this.$message.error('请选择门票')
+        }
+        this.editOrderInfo.ticketIds = [this.editOrderInfo.ticketId]
+      }
+
+      const params = { ...this.editOrderInfo }
+      delete params.ticketId
+
+      updateOrder(params).then(res => {
         if (res.code === '999999') {
           this.$message.warning(res.msg || '修改失败')
           return

+ 3 - 2
src/pages/sellManage/common/confirmMixin.js

@@ -195,9 +195,10 @@ export default {
         return
       }
 
-      const scanArr = ['瑞通储值卡']
+      // debugger;
+
       // 是否使用外部扫码
-      if ((scanArr.indexOf(this.currentPayChannel) > -1 || this.payType === 'B_SCAN_C_PAY') && !qrcode) {
+      if (this.payType === 'B_SCAN_C_PAY' && !qrcode) {
         if (this.submitDisable) return
         this.setParams()
         this.submitDisable = true

+ 4 - 3
src/pages/sellManage/common/handlePay.js

@@ -35,10 +35,11 @@ export default (params, res, vue, callback) => {
   }
 
   log.info('订单参数', JSON.stringify(logData))
+  log.info('创建订单返回', JSON.stringify(res))
 
-  const payType = getPayType(params.payChannel)
-  log.warn(`发起 ${payType} - ${params.payChannel} 支付`)
-  switch (getPayType(params.payChannel)) {
+  const payType = res.payType
+  log.warn(`发起 ${payType} - ${res.payChannel} 支付`)
+  switch (payType) {
     case 'POS':
       choosePay('pay', params, vue).then(data => {
         if (data) {

+ 3 - 1
src/pages/ticketSetting/batch.vue

@@ -215,7 +215,9 @@ const getCheckRuleName = (rule) => {
     case '2':
       return '取票即核销'
     case '3':
-      return '购买即核销'
+      return '购买即核销(线下)'
+    case '4':
+      return '购买即核销(全局)'
     default:
       break
   }

+ 3 - 1
src/pages/ticketSetting/batchConfig.vue

@@ -271,7 +271,9 @@ const getCheckRuleName = (rule) => {
     case '2':
       return '取票即核销'
     case '3':
-      return '购买即核销'
+      return '购买即核销(线下)'
+    case '4':
+      return '购买即核销(全局)'
     default:
       break
   }

+ 3 - 1
src/pages/ticketSetting/ticket.vue

@@ -279,7 +279,9 @@ const getCheckRuleName = (rule) => {
     case '2':
       return '取票即核销'
     case '3':
-      return '购买即核销'
+      return '购买即核销(线下)'
+    case '4':
+      return '购买即核销(全局)'
     default:
       break
   }

+ 5 - 1
src/pages/ticketSetting/ticket/Dialog.vue

@@ -466,7 +466,11 @@
               </el-checkbox>
               <el-checkbox
                 label="3">
-                购买即核销
+                购买即核销(线下)
+              </el-checkbox>
+              <el-checkbox
+                label="4">
+                购买即核销(全局)
               </el-checkbox>
             </el-checkbox-group>
           </el-form-item>