|
@@ -329,9 +329,10 @@
|
|
|
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)">
|
|
|
<el-button size="mini" type="text" icon="el-icon-d-arrow-right">更多</el-button>
|
|
|
<el-dropdown-menu slot="dropdown">
|
|
|
+ <!-- (scope.row.payWay == 'corporate'||scope.row.status === 0) -->
|
|
|
<el-dropdown-item
|
|
|
command="1"
|
|
|
- v-if="hasPermi('groupBuyingMr:groupBuyingMr:duigong') && (scope.row.payWay == 'corporate'||scope.row.status === 0)">对公转账</el-dropdown-item>
|
|
|
+ v-if="hasPermi('groupBuyingMr:groupBuyingMr:duigong') && (scope.row.status === 0)">代客下单</el-dropdown-item>
|
|
|
<el-dropdown-item
|
|
|
command="2"
|
|
|
v-if="hasPermi('groupBuyingMr:groupBuyingMr:cancel') && scope.row.status == 0">关闭订单</el-dropdown-item>
|
|
@@ -341,10 +342,10 @@
|
|
|
<el-dropdown-item
|
|
|
command="4"
|
|
|
v-if="hasPermi('groupBuyingMr:groupBuyingMr:reset') && scope.row.status == 0">修改订单</el-dropdown-item>
|
|
|
- <el-dropdown-item
|
|
|
+ <!-- <el-dropdown-item
|
|
|
command="5"
|
|
|
v-if="hasPermi('groupBuyingMr:groupBuyingMr:place')"
|
|
|
- >代客下单</el-dropdown-item>
|
|
|
+ >代客下单</el-dropdown-item> -->
|
|
|
<el-dropdown-item
|
|
|
command="6"
|
|
|
v-if="hasPermi('groupBuyingMr:groupBuyingMr:rebook') && scope.row.status == 3 && scope.row.allowReSubmit == 1"
|
|
@@ -390,87 +391,98 @@
|
|
|
</el-dialog>
|
|
|
|
|
|
<el-dialog
|
|
|
- title="对公信息凭证"
|
|
|
+ title="代客下单"
|
|
|
:visible.sync="showCorporatePay"
|
|
|
width="50%"
|
|
|
@close="handleCorporatePayClose"
|
|
|
:before-close="handleCorporatePayClose">
|
|
|
<el-form v-loading="corporatePayLoading" :model="form" :rules="corporatePayRules" ref="ruleForm1" label-width="120px" class="demo-ruleForm">
|
|
|
- <el-form-item v-if="!form.eaitType" label="类型" prop="payOrCredit">
|
|
|
- <el-radio-group v-model="form.payOrCredit">
|
|
|
- <el-radio :label="1">对公支付</el-radio>
|
|
|
+ <el-form-item v-if="!form.eaitType" label="支付方式" prop="payWay">
|
|
|
+ <el-radio-group v-model="form.payWay">
|
|
|
+ <el-radio :label="1">对公转账</el-radio>
|
|
|
<el-radio :label="2">挂账</el-radio>
|
|
|
+ <el-radio :label="3">链接支付</el-radio>
|
|
|
+ <el-radio :label="4">授信支付</el-radio>
|
|
|
+ <el-radio :label="5">储值余额</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
- <el-form-item v-if="form.eaitType" label="类型" prop="payOrCredit">
|
|
|
- <span>{{ form.payOrCredit == 1 ? '对公支付':'挂账' }}</span>
|
|
|
- </el-form-item>
|
|
|
- <!-- <el-form-item label="凭证上传" prop="photoList" required>
|
|
|
- <el-upload
|
|
|
- ref="upload"
|
|
|
- :class="form.photoList && form.photoList.length>=15 ? 'upload-box':''"
|
|
|
- :action="uploadObj.url"
|
|
|
- :headers="uploadObj.headers"
|
|
|
- accept=".jpg,.png"
|
|
|
- :on-success="handlePhotoListSuccess"
|
|
|
- :before-upload="beforeAvatarUpload"
|
|
|
- list-type="picture-card"
|
|
|
- :file-list="form.photoList"
|
|
|
- :on-remove="handleRemove"
|
|
|
- :limit="15"
|
|
|
- >
|
|
|
- <i class="el-icon-plus"></i>
|
|
|
- </el-upload>
|
|
|
- </el-form-item> -->
|
|
|
- <el-form-item v-if="form.payOrCredit == 2" label="账期" prop="rePaymentTime">
|
|
|
- <el-date-picker
|
|
|
- v-model="form.rePaymentTime"
|
|
|
- type="date"
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- placeholder="选择日期">
|
|
|
- </el-date-picker>
|
|
|
+ <el-form-item v-if="form.eaitType" label="支付方式" prop="payWay">
|
|
|
+ <span>{{ getPayWayText(form.payWay) }}</span>
|
|
|
</el-form-item>
|
|
|
- <el-form-item :label="form.payOrCredit != 2?'凭证上传':'挂账类型凭证'" prop="photoList">
|
|
|
- <div style="display: flex;flex-wrap: wrap;">
|
|
|
- <div
|
|
|
- v-for="(item,index) in form.photoList"
|
|
|
- :key="index"
|
|
|
- style="width: 100px; height: 100px;margin-top: 5px; position: relative;border: 1px solid #999;border-radius: 5px;margin-right: 20px;">
|
|
|
- <el-image
|
|
|
- style="width: 100%; height: 100%"
|
|
|
- :src="item"
|
|
|
- :preview-src-list="form.photoList">
|
|
|
- </el-image>
|
|
|
- <span @click="handleRemove(index)" style="position: absolute;top: -15px;right: -15px;color: red;font-size: 24px;z-index: 999;cursor: pointer;">
|
|
|
- <i class="el-icon-error"></i>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div
|
|
|
- style="width: 100px; height: 100px;margin-top: 5px;"
|
|
|
- v-if="!form.photoList||form.photoList.length<15"
|
|
|
- v-loading="actionUrlLoading"
|
|
|
- element-loading-text="上传中..."
|
|
|
- element-loading-spinner="el-icon-loading"
|
|
|
- element-loading-background="rgba(0, 0, 0, 0.8)"
|
|
|
- >
|
|
|
- <el-upload
|
|
|
- class="avatar-uploader"
|
|
|
- :action="uploadObj.url"
|
|
|
- :headers="uploadObj.headers"
|
|
|
- :show-file-list="false"
|
|
|
- :before-upload="beforeAvatarUpload"
|
|
|
- :on-success="handleAvatarSuccess"
|
|
|
- :on-progress="handleAvatarProgress"
|
|
|
- :disabled="actionUrlLoading"
|
|
|
- :on-error="handleAvatarError"
|
|
|
- >
|
|
|
- <i class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
- </el-upload>
|
|
|
+
|
|
|
+ <!-- 对公转账和挂账显示原有内容 -->
|
|
|
+ <template v-if="form.payWay === 1 || form.payWay === 2">
|
|
|
+ <el-form-item v-if="form.payWay === 2" label="账期" prop="rePaymentTime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.rePaymentTime"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择日期">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :label="form.payWay === 1 ? '凭证上传' : '挂账类型凭证'" prop="photoList">
|
|
|
+ <div style="display: flex;flex-wrap: wrap;">
|
|
|
+ <div
|
|
|
+ v-for="(item,index) in form.photoList"
|
|
|
+ :key="index"
|
|
|
+ style="width: 100px; height: 100px;margin-top: 5px; position: relative;border: 1px solid #999;border-radius: 5px;margin-right: 20px;">
|
|
|
+ <el-image
|
|
|
+ style="width: 100%; height: 100%"
|
|
|
+ :src="item"
|
|
|
+ :preview-src-list="form.photoList">
|
|
|
+ </el-image>
|
|
|
+ <span @click="handleRemove(index)" style="position: absolute;top: -15px;right: -15px;color: red;font-size: 24px;z-index: 999;cursor: pointer;">
|
|
|
+ <i class="el-icon-error"></i>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div
|
|
|
+ style="width: 100px; height: 100px;margin-top: 5px;"
|
|
|
+ v-if="!form.photoList||form.photoList.length<15"
|
|
|
+ v-loading="actionUrlLoading"
|
|
|
+ element-loading-text="上传中..."
|
|
|
+ element-loading-spinner="el-icon-loading"
|
|
|
+ element-loading-background="rgba(0, 0, 0, 0.8)"
|
|
|
+ >
|
|
|
+ <el-upload
|
|
|
+ class="avatar-uploader"
|
|
|
+ :action="uploadObj.url"
|
|
|
+ :headers="uploadObj.headers"
|
|
|
+ :show-file-list="false"
|
|
|
+ :before-upload="beforeAvatarUpload"
|
|
|
+ :on-success="handleAvatarSuccess"
|
|
|
+ :on-progress="handleAvatarProgress"
|
|
|
+ :disabled="actionUrlLoading"
|
|
|
+ :on-error="handleAvatarError"
|
|
|
+ >
|
|
|
+ <i class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
+ </el-upload>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
-
|
|
|
- </div>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="备注">
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <!-- 授信支付显示额度信息 -->
|
|
|
+ <template v-if="form.payWay === 4 && balanceInfo">
|
|
|
+ <el-form-item label="剩余授信额度">
|
|
|
+ <span>¥{{ balanceInfo.grantSurplus }}</span>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="订单金额">
|
|
|
+ <span>¥{{ currentOrder.orderPrice }}</span>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <!-- 储值余额支付显示余额信息 -->
|
|
|
+ <template v-if="form.payWay === 5 && balanceInfo">
|
|
|
+ <el-form-item label="剩余储值余额">
|
|
|
+ <span>¥{{ balanceInfo.balance }}</span>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="订单金额">
|
|
|
+ <span>¥{{ currentOrder.orderPrice }}</span>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <!-- 只有对公转账和挂账显示备注 -->
|
|
|
+ <el-form-item label="备注" v-if="form.payWay === 1 || form.payWay === 2">
|
|
|
<el-input placeholder="请备注" type="textarea" maxlength="300" show-word-limit v-model="form.corporate.remark"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
@@ -489,8 +501,11 @@ import {
|
|
|
pageList,
|
|
|
gotoCorporatePay,
|
|
|
downOrderListXls,
|
|
|
- teamPayOrderUrlApi
|
|
|
+ teamPayOrderUrlApi,
|
|
|
+ balancePay,
|
|
|
+ creditPay
|
|
|
} from '@/api/order/groupBuyingMr';
|
|
|
+ import { getSelectById as getBalanceInfo } from '@/api/team/teamMr'
|
|
|
import { orderInfoCancel } from '@/api/windowTicketSales/ticketingSales';
|
|
|
import detailsDia from "./dialog/details.vue";
|
|
|
import resetOrder from "./dialog/resetOrder.vue";
|
|
@@ -563,36 +578,38 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
corporatePayRules: {
|
|
|
- payOrCredit: [{ required: true, message: "选择类型", trigger: ["change","blur"] }],
|
|
|
- rePaymentTime: [{ required: true, message: "选择日期", trigger: ["change","blur"] }],
|
|
|
+ payWay: [{ required: true, message: "请选择支付方式", trigger: ["change","blur"] }],
|
|
|
+ rePaymentTime: [{ required: true, message: "请选择账期", trigger: ["change","blur"] }],
|
|
|
photoList: [{ required: true, message: "请上传凭证", trigger: ["change","blur"] }],
|
|
|
- },
|
|
|
- uploadObj: {
|
|
|
- url: process.env.VUE_APP_UPLOAD_FILE_API + "/upload/single/minio",
|
|
|
- Headers: { Authorization: "Bearer " + getToken() },
|
|
|
- },
|
|
|
- corporatePayLoading:false,
|
|
|
+ },
|
|
|
+ uploadObj: {
|
|
|
+ url: process.env.VUE_APP_UPLOAD_FILE_API + "/upload/single/minio",
|
|
|
+ Headers: { Authorization: "Bearer " + getToken() },
|
|
|
+ },
|
|
|
+ corporatePayLoading:false,
|
|
|
|
|
|
- handleExportLoading: false,
|
|
|
- pagePerformTimeList: [], // 场次列表
|
|
|
- multiPerformDate:false,
|
|
|
- fixed: 'left',
|
|
|
- actionUrlLoading: false,
|
|
|
+ handleExportLoading: false,
|
|
|
+ pagePerformTimeList: [], // 场次列表
|
|
|
+ multiPerformDate:false,
|
|
|
+ fixed: 'left',
|
|
|
+ actionUrlLoading: false,
|
|
|
|
|
|
- queryShow: {
|
|
|
- id: true,
|
|
|
- teamName: true,
|
|
|
- salerPerson: false,
|
|
|
- teamTypeId: false,
|
|
|
- ifSuccessInvoice: false,
|
|
|
- payWay: false,
|
|
|
- status: false,
|
|
|
- time: false,
|
|
|
- paymentId: false,
|
|
|
- performDate: true,
|
|
|
- invoiceTime: false,
|
|
|
- refundPaymentId: false,
|
|
|
- },
|
|
|
+ queryShow: {
|
|
|
+ id: true,
|
|
|
+ teamName: true,
|
|
|
+ salerPerson: false,
|
|
|
+ teamTypeId: false,
|
|
|
+ ifSuccessInvoice: false,
|
|
|
+ payWay: false,
|
|
|
+ status: false,
|
|
|
+ time: false,
|
|
|
+ paymentId: false,
|
|
|
+ performDate: true,
|
|
|
+ invoiceTime: false,
|
|
|
+ refundPaymentId: false,
|
|
|
+ },
|
|
|
+ balanceInfo: null, // 余额信息
|
|
|
+ currentOrder: null, // 当前操作的订单
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
@@ -826,31 +843,44 @@ export default {
|
|
|
this.dialogVisibleLoading = false
|
|
|
})
|
|
|
},
|
|
|
- async handleCorporatePay(row){
|
|
|
+ async handleCorporatePay(row) {
|
|
|
this.actionUrlLoading = false
|
|
|
- console.log('corporatePay',row);
|
|
|
- this.showCorporatePay = true;
|
|
|
- this.corporatePayLoading = true;
|
|
|
+ this.showCorporatePay = true
|
|
|
+ this.corporatePayLoading = true
|
|
|
+ this.currentOrder = row
|
|
|
+
|
|
|
let res = await getSelectById(row.id)
|
|
|
- this.form.orderId = row.id;
|
|
|
+ this.form.orderId = row.id
|
|
|
this.$set(this.form,'photoList',[])
|
|
|
this.form.eaitType = null
|
|
|
+
|
|
|
+ // 获取余额信息
|
|
|
+ try {
|
|
|
+ const balanceRes = await getBalanceInfo(row.memberId)
|
|
|
+ if(balanceRes.code === 200) {
|
|
|
+ this.balanceInfo = balanceRes.data
|
|
|
+ }
|
|
|
+ } catch(err) {
|
|
|
+ console.error('获取余额信息失败', err)
|
|
|
+ }
|
|
|
+
|
|
|
if(res.data.corporate && JSON.stringify(res.data.corporate) != '{}'){
|
|
|
let urlList = res.data.corporate.voucherUrl.split(',')||[]
|
|
|
this.form.eaitType = 1
|
|
|
- this.$set(this.form,'payOrCredit',1)
|
|
|
+ this.$set(this.form,'payWay',1)
|
|
|
this.$set(this.form,'rePaymentTime','')
|
|
|
this.$set(this.form,'photoList',urlList)
|
|
|
this.$set(this.form.corporate,'remark',res.data.corporate.remark)
|
|
|
}else if(res.data.teamCredit && JSON.stringify(res.data.teamCredit) != '{}'){
|
|
|
this.form.eaitType = 2
|
|
|
let urlList = res.data.teamCredit.voucherUrl.split(',')||[]
|
|
|
- this.$set(this.form,'payOrCredit',2)
|
|
|
+ this.$set(this.form,'payWay',2)
|
|
|
this.$set(this.form,'rePaymentTime',res.data.teamCredit.repaymentTime)
|
|
|
this.$set(this.form,'photoList',urlList)
|
|
|
this.$set(this.form.corporate,'remark',res.data.teamCredit.remark)
|
|
|
}else {
|
|
|
- this.$set(this.form,'payOrCredit','')
|
|
|
+ // 移除eaitType的设置,只设置默认支付方式
|
|
|
+ this.$set(this.form,'payWay',1)
|
|
|
this.$set(this.form,'rePaymentTime','')
|
|
|
this.$set(this.form,'photoList',[])
|
|
|
this.$set(this.form.corporate,'remark','')
|
|
@@ -858,8 +888,7 @@ export default {
|
|
|
this.$nextTick(()=>{
|
|
|
this.$refs.ruleForm1.clearValidate()
|
|
|
})
|
|
|
- this.corporatePayLoading = false;
|
|
|
-
|
|
|
+ this.corporatePayLoading = false
|
|
|
},
|
|
|
handleCorporatePayClose(){
|
|
|
this.$set(this.form,'photoList',[])
|
|
@@ -867,32 +896,80 @@ export default {
|
|
|
this.corporatePayLoading = false;
|
|
|
this.showCorporatePay = false;
|
|
|
},
|
|
|
- corporatePay(){
|
|
|
- console.log('form',this.form);
|
|
|
- this.$refs['ruleForm1'].validate((valid) => {
|
|
|
+ async corporatePay() {
|
|
|
+ this.$refs['ruleForm1'].validate(async (valid) => {
|
|
|
if (valid) {
|
|
|
- if(this.form.photoList.length<1){
|
|
|
- this.$message.error('请上传凭证');
|
|
|
- return
|
|
|
+ if(this.form.payWay === 1 || this.form.payWay === 2) {
|
|
|
+ if(this.form.photoList.length<1){
|
|
|
+ this.$message.error('请上传凭证')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ this.corporatePayLoading = true
|
|
|
+ try {
|
|
|
+ let res = null
|
|
|
+
|
|
|
+ // 对公转账和挂账
|
|
|
+ if(this.form.payWay === 1 || this.form.payWay === 2) {
|
|
|
+ const voucherUrl = this.form.photoList.map(item => item).join(",")
|
|
|
+ const params = {
|
|
|
+ orderId: this.form.orderId,
|
|
|
+ payWay: this.form.payWay,
|
|
|
+ payOrCredit: this.form.payWay,
|
|
|
+ corporate: {
|
|
|
+ voucherUrl,
|
|
|
+ remark: this.form.corporate.remark
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(this.form.payWay === 2) {
|
|
|
+ params.rePaymentTime = this.form.rePaymentTime
|
|
|
+ }
|
|
|
+ res = await gotoCorporatePay(params)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 链接支付
|
|
|
+ if(this.form.payWay === 3) {
|
|
|
+ this.handPlaceAnOrder(this.currentOrder)
|
|
|
+ this.handleCorporatePayClose()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 授信支付
|
|
|
+ if(this.form.payWay === 4) {
|
|
|
+ if(this.balanceInfo.grantSurplus < this.currentOrder.orderPrice) {
|
|
|
+ this.$message.error('授信额度不足')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ console.log('this.form',this.form);
|
|
|
+ res = await creditPay({
|
|
|
+ orderId: this.form.orderId
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ // 储值余额支付
|
|
|
+ if(this.form.payWay === 5) {
|
|
|
+ if(this.balanceInfo.balance < this.currentOrder.orderPrice) {
|
|
|
+ this.$message.error('储值余额不足')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ res = await balancePay({
|
|
|
+ orderId: this.form.orderId
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ if(res) {
|
|
|
+ this.$message.success(res.msg)
|
|
|
+ this.corporatePayLoading = false
|
|
|
+ this.handleCorporatePayClose()
|
|
|
+ this.getList()
|
|
|
+ }
|
|
|
+ } catch(err) {
|
|
|
+ this.corporatePayLoading = false
|
|
|
+ this.$message.error(err.msg || '操作失败')
|
|
|
}
|
|
|
- this.corporatePayLoading = true;
|
|
|
- const voucherUrl = this.form.photoList.map(item => item).join(",");
|
|
|
- this.form.corporate.voucherUrl = voucherUrl;
|
|
|
- gotoCorporatePay(this.form).then((res)=>{
|
|
|
- this.$message.success(res.msg);
|
|
|
- this.corporatePayLoading = false;
|
|
|
- this.handleCorporatePayClose();
|
|
|
- }).catch((err)=>{
|
|
|
- this.corporatePayLoading = false;
|
|
|
- this.$message.error(err.msg);
|
|
|
- console.log('corporatePay err',err);
|
|
|
- })
|
|
|
- } else {
|
|
|
- console.log('error submit!!');
|
|
|
- return false;
|
|
|
}
|
|
|
- });
|
|
|
-
|
|
|
+ })
|
|
|
},
|
|
|
/**
|
|
|
* 剧目海报上传成功
|
|
@@ -1081,7 +1158,8 @@ export default {
|
|
|
this.copyToClipboard(res.data.url)
|
|
|
}
|
|
|
});
|
|
|
- }).catch(() => { });
|
|
|
+ }).catch(() => { }).finally(() => {
|
|
|
+ });
|
|
|
},
|
|
|
/** 复制内容 */
|
|
|
copyToClipboard(text) {
|
|
@@ -1130,7 +1208,17 @@ export default {
|
|
|
},
|
|
|
openQuery(key) {
|
|
|
this.$set(this.queryShow,key,true)
|
|
|
- }
|
|
|
+ },
|
|
|
+ getPayWayText(payWay) {
|
|
|
+ const payWayMap = {
|
|
|
+ 1: '对公转账',
|
|
|
+ 2: '挂账',
|
|
|
+ 3: '链接支付',
|
|
|
+ 4: '授信支付',
|
|
|
+ 5: '储值余额'
|
|
|
+ }
|
|
|
+ return payWayMap[payWay] || ''
|
|
|
+ },
|
|
|
},
|
|
|
beforeDestroy() {
|
|
|
this.resizeObserver.unobserve(this.$refs.queryFormBox);
|