|
@@ -42,7 +42,7 @@
|
|
v-model="rebookForm.performTimeId"
|
|
v-model="rebookForm.performTimeId"
|
|
placeholder="选择场次"
|
|
placeholder="选择场次"
|
|
style="width: 100%"
|
|
style="width: 100%"
|
|
- @change="querySeatListFun"
|
|
|
|
|
|
+ @change="resubmitInfoFun()"
|
|
>
|
|
>
|
|
<el-option
|
|
<el-option
|
|
v-for="item in intervalList"
|
|
v-for="item in intervalList"
|
|
@@ -52,15 +52,32 @@
|
|
/>
|
|
/>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="支付方式 :" prop="paymentType">
|
|
|
|
|
|
+ <el-form-item label="订单总额:">
|
|
|
|
+ <span>{{ rebookForm.realPrice }}元</span>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item v-if="rebookForm.diffPrice < 0" label="改签费用:">
|
|
|
|
+ <span>退款{{ Math.abs(rebookForm.diffPrice) }}元</span>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item v-if="rebookForm.diffPrice > 0" label="改签费用:">
|
|
|
|
+ <span>补差价{{ Math.abs(rebookForm.diffPrice) }}元</span>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item v-if="rebookForm.diffPrice > 0" label="支付方式 :" prop="paymentType">
|
|
<el-radio-group v-model="rebookForm.paymentType">
|
|
<el-radio-group v-model="rebookForm.paymentType">
|
|
<el-radio label="1">扫码支付</el-radio>
|
|
<el-radio label="1">扫码支付</el-radio>
|
|
<el-radio label="2">现金支付</el-radio>
|
|
<el-radio label="2">现金支付</el-radio>
|
|
- <!-- <el-radio v-if="['10','11','13','14','18','19'].includes(ruleForm.source)" label="3">对公支付</el-radio> -->
|
|
|
|
- <!-- <el-radio v-if="['10','11','13','14','18','19'].includes(ruleForm.source)" label="4">账户余额({{ balance }})</el-radio>
|
|
|
|
- <el-radio v-if="['10','11','13','14','18','19'].includes(ruleForm.source)" label="5">授信余额({{ grantQuota }})</el-radio> -->
|
|
|
|
|
|
+ <el-radio label="3">对公支付</el-radio>
|
|
|
|
+ <el-radio label="4">账户余额</el-radio>
|
|
|
|
+ <el-radio label="5">授信余额</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item label="备注:">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="rebookForm.resubmitRemark"
|
|
|
|
+ placeholder="请输入备注"
|
|
|
|
+ clearable
|
|
|
|
+ type="textarea"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<div class="tip-box">
|
|
<div class="tip-box">
|
|
<p>温馨提示:每张票仅限改签一次,改签成功后原订单费用将原路返回退还给客户,请知悉。</p>
|
|
<p>温馨提示:每张票仅限改签一次,改签成功后原订单费用将原路返回退还给客户,请知悉。</p>
|
|
@@ -150,34 +167,18 @@
|
|
</el-dialog>
|
|
</el-dialog>
|
|
</template>
|
|
</template>
|
|
<script>
|
|
<script>
|
|
-import { getDateTimeAll } from '@/api/windowTicketSales/rebook'
|
|
|
|
|
|
+import { getDateTimeAll,resubmitInfoApi } from '@/api/windowTicketSales/rebook'
|
|
import {
|
|
import {
|
|
- orderInfoSubmit,
|
|
|
|
- gotoMicroPay,
|
|
|
|
- gotoCashPay,
|
|
|
|
- gotoCorporatePay,
|
|
|
|
- gotoBalancePay,
|
|
|
|
- gotoQuotaPay,
|
|
|
|
- payQuery,
|
|
|
|
- selectRegion,
|
|
|
|
- orderInfoCancel,
|
|
|
|
- factorAuth,
|
|
|
|
- selectMarketTeamBySourceApi,
|
|
|
|
querySeatListNew,
|
|
querySeatListNew,
|
|
- querySeatList,
|
|
|
|
- } from '@/api/windowTicketSales/ticketingSales'
|
|
|
|
- import { pageList as getPrintListApi } from "@/api/device/pda";
|
|
|
|
- import { printApi } from '@/api/windowTicketSales/ticketingCollection'
|
|
|
|
- import { rebookApi } from '@/api/windowTicketSales/rebook'
|
|
|
|
- import { countBySeatTyp } from '@/api/ticketMr/InventoryTemplate'
|
|
|
|
- import { pageList as getSeatType } from '@/api/seatTypeMr/seatTypeMr'
|
|
|
|
- import seatBox from '@/components/seatBox/index.vue';
|
|
|
|
- const mathM = require('mathjs')
|
|
|
|
- const https = require('https');
|
|
|
|
- const axios = require('axios');
|
|
|
|
|
|
+} from '@/api/windowTicketSales/ticketingSales'
|
|
|
|
+import { countBySeatTyp } from '@/api/ticketMr/InventoryTemplate'
|
|
|
|
+import { pageList as getSeatType } from '@/api/seatTypeMr/seatTypeMr'
|
|
|
|
+import seatBox from '@/components/seatBox/index.vue';
|
|
|
|
+import payJs from "../mixins/pay"
|
|
export default {
|
|
export default {
|
|
name: "RebookBox",
|
|
name: "RebookBox",
|
|
components: { seatBox },
|
|
components: { seatBox },
|
|
|
|
+ mixins: [payJs],
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
// 改签对话框
|
|
// 改签对话框
|
|
@@ -227,6 +228,8 @@ export default {
|
|
this.rebookDialog = true
|
|
this.rebookDialog = true
|
|
this.payStatus = null
|
|
this.payStatus = null
|
|
this.rebookForm = {
|
|
this.rebookForm = {
|
|
|
|
+ resubmitType: 2, // 改签类型: 1-改签 2-升舱 不传默认为改签
|
|
|
|
+ goodsDiffAmount: undefined,
|
|
performName: row.performName,
|
|
performName: row.performName,
|
|
goodsName: row.goodsName,
|
|
goodsName: row.goodsName,
|
|
seatTypeName: row.seatTypeName,
|
|
seatTypeName: row.seatTypeName,
|
|
@@ -251,6 +254,7 @@ export default {
|
|
this.rebookForm.performDate = this.formatDate(today)
|
|
this.rebookForm.performDate = this.formatDate(today)
|
|
this.handleDateChange()
|
|
this.handleDateChange()
|
|
},
|
|
},
|
|
|
|
+
|
|
/** 获取场次 */
|
|
/** 获取场次 */
|
|
handleDateChange() {
|
|
handleDateChange() {
|
|
this.intervalListLoading = true
|
|
this.intervalListLoading = true
|
|
@@ -319,548 +323,32 @@ export default {
|
|
})
|
|
})
|
|
.catch(_ => {});
|
|
.catch(_ => {});
|
|
},
|
|
},
|
|
- /** 取消订单 */
|
|
|
|
- async orderInfoCancelFun(type){
|
|
|
|
- // let payStatus = this.payStatus
|
|
|
|
- // this.payStatus = null
|
|
|
|
- try {
|
|
|
|
- this.loading = true
|
|
|
|
- this.loadingText = "取消订单中..."
|
|
|
|
- orderInfoCancel({
|
|
|
|
- orderId: this.orderId
|
|
|
|
- }).then((res)=>{
|
|
|
|
- if(res.code==200) {
|
|
|
|
- if(type){ // 关闭弹窗
|
|
|
|
- if(this.codeTime) {
|
|
|
|
- clearInterval(this.codeTime)
|
|
|
|
- }
|
|
|
|
- this.orderId = null
|
|
|
|
- this.payStatus = null
|
|
|
|
- this.$emit('clearDialogVisible')
|
|
|
|
- this.rebookDialog = false
|
|
|
|
- }else {
|
|
|
|
- this.payStatus = 9
|
|
|
|
- this.loading = false
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }else {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- }).catch(()=>{
|
|
|
|
- this.$message.error('订单关闭失败!!!');
|
|
|
|
- })
|
|
|
|
- } catch (error) {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- /** 生成订单 */
|
|
|
|
- async orderInfoSubmitFun(){
|
|
|
|
- this.loading = true
|
|
|
|
- try {
|
|
|
|
- this.orderId = null
|
|
|
|
- this.loadingText = "生成订单中..."
|
|
|
|
- let res = await rebookApi({
|
|
|
|
- ...this.rebookForm
|
|
|
|
- })
|
|
|
|
- if(res.code == 200){
|
|
|
|
- this.orderId = res.data.orderId
|
|
|
|
- if(this.ruleForm.paymentType == 2) { // 现金支付
|
|
|
|
- this.gotoCashPayFun(this.orderId)
|
|
|
|
- }else if(this.ruleForm.paymentType == 3) { // 对公支付
|
|
|
|
- this.gotoCorporatePayFun(this.orderId)
|
|
|
|
- }else if(this.ruleForm.paymentType == 4){ // 账户余额
|
|
|
|
- this.gotoBalancePayFun(this.orderId)
|
|
|
|
- }else if(this.ruleForm.paymentType == 5){ // 授信余额
|
|
|
|
- this.gotoQuotaPayFun(this.orderId)
|
|
|
|
- }else {
|
|
|
|
- // 扫码支付
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 2
|
|
|
|
- }
|
|
|
|
- }else{
|
|
|
|
- this.$message.error('生成订单失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 1
|
|
|
|
- }
|
|
|
|
- } catch (error) {
|
|
|
|
- this.$message.error('生成订单失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 1
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- /** 调取 订单支付码支付 */
|
|
|
|
- async gotoMicroPayFun(orderId,code){
|
|
|
|
- this.loading = true
|
|
|
|
- try {
|
|
|
|
- this.loadingText = "订单支付中..."
|
|
|
|
- this.payStatus = ''
|
|
|
|
- let res = await gotoMicroPay({
|
|
|
|
- "orderId": orderId, // 订单编号-提交订单返回
|
|
|
|
- "authCode": code // 微信扫码支付-支付码
|
|
|
|
- })
|
|
|
|
- if(res.code == 200){
|
|
|
|
- this.payTimeNum = 0
|
|
|
|
- this.websocketClear()
|
|
|
|
- if(this.payTime){
|
|
|
|
- clearInterval(this.payTime)
|
|
|
|
- }
|
|
|
|
- this.payTime = setInterval(()=>{
|
|
|
|
- this.payQueryFun(this.orderId)
|
|
|
|
- },1500)
|
|
|
|
- }else{
|
|
|
|
- this.$message.error('支付失败!!!');
|
|
|
|
- this.payStatus = ''
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 6
|
|
|
|
- }
|
|
|
|
- } catch (error) {
|
|
|
|
- this.$message.error('支付失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 6
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- /** 对公支付 */
|
|
|
|
- async gotoCorporatePayFun(orderId) {
|
|
|
|
- this.loading = true
|
|
|
|
- try {
|
|
|
|
- this.loadingText = "订单入库中..."
|
|
|
|
- let res = await gotoCorporatePay({
|
|
|
|
- "orderId": orderId, // 订单编号-提交订单返回
|
|
|
|
- "payAmount": this.ruleForm.realPrice
|
|
|
|
- })
|
|
|
|
- if(res.code == 200){
|
|
|
|
- if(this.payTime){
|
|
|
|
- clearInterval(this.payTime)
|
|
|
|
- }
|
|
|
|
- this.payTimeNum = 0
|
|
|
|
- this.payTime = setInterval(()=>{
|
|
|
|
- this.payQueryFun(this.orderId)
|
|
|
|
- },1000)
|
|
|
|
- }else{
|
|
|
|
- this.$message.error('订单入库中失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 3
|
|
|
|
- }
|
|
|
|
- } catch (error) {
|
|
|
|
- this.$message.error('订单入库中失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 3
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- /** 授信额度支付 */
|
|
|
|
- async gotoQuotaPayFun(orderId) {
|
|
|
|
- this.loading = true
|
|
|
|
- try {
|
|
|
|
- this.loadingText = "订单入库中..."
|
|
|
|
- let res = await gotoQuotaPay({
|
|
|
|
- "orderId": orderId, // 订单编号-提交订单返回
|
|
|
|
- })
|
|
|
|
- if(res.code == 200){
|
|
|
|
- if(this.payTime){
|
|
|
|
- clearInterval(this.payTime)
|
|
|
|
- }
|
|
|
|
- this.payTimeNum = 0
|
|
|
|
- this.payTime = setInterval(()=>{
|
|
|
|
- this.payQueryFun(this.orderId)
|
|
|
|
- },1000)
|
|
|
|
- }else{
|
|
|
|
- this.$message.error('订单入库中失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 3
|
|
|
|
- }
|
|
|
|
- } catch (error) {
|
|
|
|
- this.$message.error('订单入库中失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 3
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- /** 余额支付 */
|
|
|
|
- async gotoBalancePayFun(orderId) {
|
|
|
|
- this.loading = true
|
|
|
|
- try {
|
|
|
|
- this.loadingText = "订单入库中..."
|
|
|
|
- let res = await gotoBalancePay({
|
|
|
|
- "orderId": orderId, // 订单编号-提交订单返回
|
|
|
|
- })
|
|
|
|
- if(res.code == 200){
|
|
|
|
- if(this.payTime){
|
|
|
|
- clearInterval(this.payTime)
|
|
|
|
- }
|
|
|
|
- this.payTimeNum = 0
|
|
|
|
- this.payTime = setInterval(()=>{
|
|
|
|
- this.payQueryFun(this.orderId)
|
|
|
|
- },1000)
|
|
|
|
- }else{
|
|
|
|
- this.$message.error('订单入库中失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 3
|
|
|
|
- }
|
|
|
|
- } catch (error) {
|
|
|
|
- this.$message.error('订单入库中失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 3
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- /** 订单现金支付 */
|
|
|
|
- async gotoCashPayFun(orderId){
|
|
|
|
- this.loading = true
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ *
|
|
|
|
+ * 获取升舱/改签信息
|
|
|
|
+ *
|
|
|
|
+ */
|
|
|
|
+ async resubmitInfoFun() {
|
|
try {
|
|
try {
|
|
- this.loadingText = "订单入库中..."
|
|
|
|
- let res = await gotoCashPay({
|
|
|
|
- "orderId": orderId, // 订单编号-提交订单返回
|
|
|
|
- "payAmount": this.ruleForm.realPrice
|
|
|
|
|
|
+ let res = await resubmitInfoApi({
|
|
|
|
+ orderId: this.rebookForm.orderId,
|
|
|
|
+ timeId: this.rebookForm.performTimeId,
|
|
|
|
+ seatTypeId: this.rebookForm.seatTypeId,
|
|
|
|
+ //goodsDiffAmount: this.rebookForm.goodsDiffAmount,
|
|
})
|
|
})
|
|
- if(res.code == 200){
|
|
|
|
- if(this.payTime){
|
|
|
|
- clearInterval(this.payTime)
|
|
|
|
|
|
+ if(res.data.reSubmitInfo) {
|
|
|
|
+ this.rebookForm = {
|
|
|
|
+ ...this.rebookForm,
|
|
|
|
+ realPrice: res.data.reSubmitInfo.realPrice,
|
|
|
|
+ diffPrice: res.data.reSubmitInfo.diffPrice
|
|
}
|
|
}
|
|
- this.payTimeNum = 0
|
|
|
|
- this.payTime = setInterval(()=>{
|
|
|
|
- this.payQueryFun(this.orderId)
|
|
|
|
- },1000)
|
|
|
|
- }else{
|
|
|
|
- this.$message.error('订单入库中失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 3
|
|
|
|
}
|
|
}
|
|
|
|
+ this.querySeatListFun()
|
|
} catch (error) {
|
|
} catch (error) {
|
|
- this.$message.error('订单入库中失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 3
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- // 跳转取票界面
|
|
|
|
- goTicketingCollections(){
|
|
|
|
- this.$router.push({
|
|
|
|
- path:"/windowTicketSales/ticketingCollections",
|
|
|
|
- query:{
|
|
|
|
- orderId: this.orderId
|
|
|
|
- }
|
|
|
|
- })
|
|
|
|
- },
|
|
|
|
- /** 查看支付 状态 */
|
|
|
|
- async payQueryFun(orderId){
|
|
|
|
- this.loading = true
|
|
|
|
-
|
|
|
|
- try {
|
|
|
|
- this.payTimeNum = this.payTimeNum + 1
|
|
|
|
- if(this.payTimeNum==15){
|
|
|
|
- if(this.payTime){
|
|
|
|
- clearInterval(this.payTime)
|
|
|
|
- }
|
|
|
|
- this.orderInfoCancelFun()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- if(this.ruleForm.paymentType == 2){
|
|
|
|
- this.loadingText = "订单入库中..."
|
|
|
|
- }else {
|
|
|
|
- this.loadingText = "订单支付中..."
|
|
|
|
- }
|
|
|
|
- this.payStatus = ''
|
|
|
|
- let res = await payQuery({
|
|
|
|
- orderId: orderId
|
|
|
|
- })
|
|
|
|
- if(res.code == 200){
|
|
|
|
- if(res.data) {
|
|
|
|
- if(res.data.payStatus == 0) {
|
|
|
|
- if(this.payTime){
|
|
|
|
- clearInterval(this.payTime)
|
|
|
|
- }
|
|
|
|
- if(this.ruleForm.paymentType == 2){
|
|
|
|
- this.$message.error('"订单入库中失败"');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 3
|
|
|
|
- }else {
|
|
|
|
- if(res.data.orderStatus == 9 || res.data.orderStatus == 4 || res.data.orderStatus == 5){
|
|
|
|
- this.$message.error('订单已关闭,请重新选择座位,再购买!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 10
|
|
|
|
- }else {
|
|
|
|
- this.$message.error('用户未支付!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 7
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }else if(res.data.payStatus == 1) {
|
|
|
|
- if(this.payTime){
|
|
|
|
- clearInterval(this.payTime)
|
|
|
|
- }
|
|
|
|
- if(this.ruleForm.paymentType == 2){
|
|
|
|
- this.$message({
|
|
|
|
- message: '订单入库成功',
|
|
|
|
- type: 'success'
|
|
|
|
- });
|
|
|
|
- this.loading = false
|
|
|
|
- // this.payStatus = 8
|
|
|
|
- // this.getPrintListApi()
|
|
|
|
- this.goTicketingCollections()
|
|
|
|
-
|
|
|
|
- }else {
|
|
|
|
- this.$message({
|
|
|
|
- message: '用户已支付成功,请打印门票',
|
|
|
|
- type: 'success'
|
|
|
|
- });
|
|
|
|
- // 开始 打印
|
|
|
|
- this.loading = false
|
|
|
|
- // this.payStatus = 8
|
|
|
|
- // this.getPrintListApi()
|
|
|
|
- this.goTicketingCollections()
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- }else if(res.data.payStatus == 2) {
|
|
|
|
-
|
|
|
|
- }else if(res.data.payStatus == 3) {
|
|
|
|
- if(this.payTime){
|
|
|
|
- clearInterval(this.payTime)
|
|
|
|
- }
|
|
|
|
- if(this.ruleForm.paymentType == 2){
|
|
|
|
- this.$message.error('"订单入库中失败"');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 3
|
|
|
|
- }else {
|
|
|
|
- if(res.data.orderStatus == 9 || res.data.orderStatus == 4 || res.data.orderStatus == 5){
|
|
|
|
- this.$message.error('订单已关闭,请重新选择座位,再购买!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 10
|
|
|
|
- }else {
|
|
|
|
- this.$message.error('用户支付失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 7
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }else if(res.data.payStatus == 4) {
|
|
|
|
- if(this.payTime){
|
|
|
|
- clearInterval(this.payTime)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if(this.ruleForm.paymentType == 2){
|
|
|
|
- this.$message.error('"订单入库中失败"');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 3
|
|
|
|
- }else {
|
|
|
|
- if(res.data.orderStatus == 9 || res.data.orderStatus == 4 || res.data.orderStatus == 5){
|
|
|
|
- this.$message.error('订单已关闭,请重新选择座位,再购买!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 10
|
|
|
|
- }else {
|
|
|
|
- this.$message.error('支付退款!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 7
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- }else{
|
|
|
|
- this.$message.error('支付失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 7
|
|
|
|
- }
|
|
|
|
|
|
|
|
- } catch (error) {
|
|
|
|
- this.$message.error('支付失败!!!');
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 7
|
|
|
|
}
|
|
}
|
|
- },
|
|
|
|
-
|
|
|
|
- /** 连接VBarServer */
|
|
|
|
- vbar_open() {
|
|
|
|
- this.loading = true
|
|
|
|
- this.loadingText = "连接扫码盒子中!!!"
|
|
|
|
- this.payStatus = null
|
|
|
|
- this.code = ''
|
|
|
|
- this.websocketClear()
|
|
|
|
- this.payStatus = 5 // 连接成功
|
|
|
|
- document.addEventListener('keydown',this.keydownAdd);
|
|
|
|
- this.loading = false
|
|
|
|
- },
|
|
|
|
- /** 连接结果 */
|
|
|
|
- websocket_open_state(message){
|
|
|
|
- console.log("连接结果 ===== ",message)
|
|
|
|
- this.codeTime = setInterval(()=>{
|
|
|
|
- console.log("检测是否连接")
|
|
|
|
- if(this.websocketData.readyState != WebSocket.OPEN) {
|
|
|
|
- this.payStatus = 6
|
|
|
|
- }
|
|
|
|
- },3000)
|
|
|
|
- //document.getElementById('wsocket').value = "已连接";
|
|
|
|
- },
|
|
|
|
- // 拼接字符串
|
|
|
|
- keydownAdd(e){
|
|
|
|
- console.log("e=====",e)
|
|
|
|
- console.log("this.code=====",this.code)
|
|
|
|
- if( this.payStatus == 5 && e.key != 'Enter') {
|
|
|
|
- this.code = this.code + e.key
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if( e.key == 'Enter') {
|
|
|
|
- document.removeEventListener('keydown',this.keydownAdd);
|
|
|
|
- let codeCopy = this.code
|
|
|
|
- this.payStatus == 5.5
|
|
|
|
- this.code = ''
|
|
|
|
- this.gotoMicroPayFun(this.orderId,codeCopy)
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- //接收扫码完整结果处理
|
|
|
|
- websocket_decode(code){
|
|
|
|
- console.log("orderId=========",this.orderId )
|
|
|
|
- console.log("code=========",code)
|
|
|
|
- if(this.orderId && this.payStatus == 5.5 && regex.test(code) ) {
|
|
|
|
- this.payStatus = 5.6 // 支付中
|
|
|
|
- let codeCopy = code.replace("%%%", "").replace("%%%", "")
|
|
|
|
- this.gotoMicroPayFun(this.orderId,codeCopy)
|
|
|
|
- }else if(!code){
|
|
|
|
- this.payStatus = 5
|
|
|
|
- this.code = ''
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- /** 关闭通讯 */
|
|
|
|
- websocketClear(){
|
|
|
|
- document.removeEventListener('keydown',this.keydownAdd);
|
|
|
|
- },
|
|
|
|
- /** 读取身份证 */
|
|
|
|
- readCert(){
|
|
|
|
- this.idcardLoading = true
|
|
|
|
- var result = "";
|
|
|
|
- try {
|
|
|
|
- let xmlHttp = new XMLHttpRequest();
|
|
|
|
- let Protocol = window.location.protocol.split(':')[0];
|
|
|
|
- //获取当前协议,并且分割字符串,得到http或者https
|
|
|
|
- if (Protocol === 'https'){
|
|
|
|
- //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
|
|
|
|
- xmlHttp.open("POST", "http://127.0.0.1:18889/api/readCert?ReadSN=" + 0, false); //readCert读卡,生成正反面仿复印件
|
|
|
|
- }else {
|
|
|
|
- //创建请求 第一个参数是代表以post方式发送;第二个是请求端口和地址;第三个表示是否异步
|
|
|
|
- xmlHttp.open("POST", "http://127.0.0.1:18889/api/readCert?ReadSN=" + 0, false); //readCert读卡,生成正反面仿复印件
|
|
|
|
- }
|
|
|
|
- //发送请求
|
|
|
|
- xmlHttp.send();
|
|
|
|
- if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
|
|
|
|
- result = xmlHttp.responseText;
|
|
|
|
- xmlHttp.readyState = 1;
|
|
|
|
- }
|
|
|
|
- } catch (e) {
|
|
|
|
- console.error("e====",e)
|
|
|
|
- }
|
|
|
|
- let obj = JSON.parse(result)
|
|
|
|
- if(obj.resultContent && obj.resultContent.certNumber){
|
|
|
|
- this.$set(this.tableForm,"idcard",obj.resultContent.certNumber)
|
|
|
|
- this.$set(this.tableForm,"name",obj.resultContent.partyName)
|
|
|
|
- }else {
|
|
|
|
- this.$message.error('读取失败!!!');
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- this.idcardLoading = false
|
|
|
|
- //return result;
|
|
|
|
- console.log(result,obj)
|
|
|
|
- },
|
|
|
|
- /** 查询打印机列表 */
|
|
|
|
- getPrintListApi() {
|
|
|
|
- getPrintListApi({deviceType:5,pageNum: 1,
|
|
|
|
- pageSize: 999,})
|
|
|
|
- .then(response => {
|
|
|
|
- this.printList = response.data.rows;
|
|
|
|
- }).catch((error)=>{
|
|
|
|
- console.log("error===",error)
|
|
|
|
- }
|
|
|
|
- );
|
|
|
|
- },
|
|
|
|
- // 打印
|
|
|
|
- async print(list = []){
|
|
|
|
- if(!this.printListId) {
|
|
|
|
- this.$message.error('请选择打印机!!');
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- this.loading = true
|
|
|
|
- this.loadingText = '打印中...'
|
|
|
|
- this.payStatus = ''
|
|
|
|
- try {
|
|
|
|
- let res = await printApi({
|
|
|
|
- orderId: this.orderId,
|
|
|
|
- source: 2,
|
|
|
|
- deviceId: this.printListId
|
|
|
|
- })
|
|
|
|
- if(res.code == 200) {
|
|
|
|
- let url = res.data.linkIp
|
|
|
|
- let printInfo = res.data.printInfo
|
|
|
|
- this.connectPrint(url,printInfo)
|
|
|
|
- }else {
|
|
|
|
- throw new Error(res)
|
|
|
|
- }
|
|
|
|
- } catch (error) {
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 8
|
|
|
|
- console.error("error=====",error)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- },
|
|
|
|
- /** 连接打印机 */
|
|
|
|
- connectPrint(url,data){
|
|
|
|
- // 创建忽略 SSL 的 axios 实例
|
|
|
|
- const ignoreSSL = axios.create({
|
|
|
|
- httpsAgent: new https.Agent({
|
|
|
|
- rejectUnauthorized: false
|
|
|
|
- }),
|
|
|
|
- withCredentials: true, // 跨域请求时发送Cookie
|
|
|
|
- timeout: 60000, // 请求超时
|
|
|
|
- headers: {
|
|
|
|
- "Content-Type": "application/json; charset=UTF-8;"
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- ignoreSSL.post(url,
|
|
|
|
- { ...data }
|
|
|
|
- ).then(()=>{
|
|
|
|
- this.rebookDialog = false
|
|
|
|
- this.loading = false
|
|
|
|
- }).catch(()=>{
|
|
|
|
- this.loading = false
|
|
|
|
- this.payStatus = 8
|
|
|
|
- // this.rebookDialog = false
|
|
|
|
- // this.loading = false
|
|
|
|
- })
|
|
|
|
- // 在 axios 请求时,选择性忽略 SSL
|
|
|
|
- // const agent = new https.Agent({
|
|
|
|
- // rejectUnauthorized: false
|
|
|
|
- // });
|
|
|
|
- // axios.post(
|
|
|
|
- // url,
|
|
|
|
- // { httpsAgent: agent,...data }
|
|
|
|
- // ).then(()=>{
|
|
|
|
- // this.rebookDialog = false
|
|
|
|
- // this.loading = false
|
|
|
|
- // })
|
|
|
|
- // .catch(()=>{
|
|
|
|
- // this.rebookDialog = false
|
|
|
|
- // this.loading = false
|
|
|
|
- // })
|
|
|
|
- },
|
|
|
|
- /** 获取授信余额和账户余额 */
|
|
|
|
- async selectMarketTeamBySourceFun(value) {
|
|
|
|
- console.log("value===",value)
|
|
|
|
- try {
|
|
|
|
- if(!['10','11','13','14','18','19'].includes(value)) return
|
|
|
|
- let res = await selectMarketTeamBySourceApi({
|
|
|
|
- source: value
|
|
|
|
- })
|
|
|
|
- this.balance = res.data.balance
|
|
|
|
- if(res.data.grantQuota && res.data.grantUsed) {
|
|
|
|
- this.grantQuota = res.data.grantQuota - res.data.grantUsed
|
|
|
|
- }else if(res.data.grantQuota) {
|
|
|
|
- this.grantQuota = res.data.grantQuota
|
|
|
|
- }else {
|
|
|
|
- this.grantQuota = 0
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- } catch (error) {
|
|
|
|
- this.balance = null
|
|
|
|
- this.grantQuota = null
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
|
|
+ },
|
|
/** 获取座位 */
|
|
/** 获取座位 */
|
|
async querySeatListFun(type){
|
|
async querySeatListFun(type){
|
|
try {
|
|
try {
|