2 lines
18 KiB
JavaScript
2 lines
18 KiB
JavaScript
|
|
import{_ as Q,a as h}from"./index-BlP3rxMf.js";import{g as I,u as N,a as L}from"./index-BqycflTi.js";import{y as l,A as t,K as u,Q as g,O as r,D as f,aD as F,I as p,al as _,P as v,a6 as y,M as m,V as j,z as i}from"./vendor-C3mpOp0n.js";import"./elementPlus-DFx51bSH.js";const q={name:"Matching",data(){return{stats:{userStats:null},creating:!1,processing:!1,pendingAllocations:[],matchingOrders:[],showOrderDetail:!1,selectedOrder:null,matchingType:"small",customAmount:"",transferDialog:{visible:!1,allocationId:null,toUser:{id:null,name:"",wechatQr:"",alipayQr:"",unionpayQr:"",bankCard:""},amount:0,actualAmount:0,voucher:"",description:""}}},async mounted(){await this.loadData()},methods:{async loadData(){try{await Promise.all([this.loadStats(),this.loadPendingAllocations(),this.loadMatchingOrders()])}catch(e){console.error("加载数据失败:",e),this.$message.error("加载数据失败")}},async loadStats(){try{const e=await h.get("/matching/stats");this.stats=e.data.data||{}}catch(e){console.error("加载统计数据失败:",e)}},async loadPendingAllocations(){try{const e=await h.get("/matching/pending-allocations");this.pendingAllocations=e.data.data||[]}catch(e){console.error("加载待处理分配失败:",e)}},async loadMatchingOrders(){try{const e=await h.get("/matching/my-orders");this.matchingOrders=e.data.data||[]}catch(e){console.error("加载匹配订单失败:",e)}},async createOrder(){var e,s;this.creating=!0;try{const d={matchingType:this.matchingType};if(this.matchingType==="large"){if(!this.isValidCustomAmount){this.$message.error("请输入有效的匹配金额(5000-50000元)");return}d.customAmount=parseFloat(this.customAmount)}await h.post("/matching/create",d);const c=this.matchingType==="small"?"小额匹配成功!已为您生成3笔转账分配":`大额匹配成功!已为您生成${this.getLargeMatchingCount()}笔转账分配`;this.$message.success(c),await this.loadData()}catch(d){console.error("创建匹配订单失败:",d);const c=((s=(e=d.response)==null?void 0:e.data)==null?void 0:s.message)||"匹配失败,请稍后重试";c.includes("审核")||c.includes("上传")||c.includes("完善")?this.$confirm(c+",是否前往个人中心完善资料?","提示",{confirmButtonText:"前往完善",cancelButtonText:"取消",type:"warning"}).then(()=>{this.$router.push("/profile")}).catch(()=>{}):this.$message.error(c)}finally{this.creating=!1}},async confirmAllocation(e,s){try{const c=(await h.get(`/matching/allocation/${e}`)).data.data,o=(await h.get(`/users/payment-info/${c.to_user_id}`)).data.data;this.transferDialog={visible:!0,allocationId:e,toUser:{id:c.to_user_id,name:c.to_user_name,wechatQr:o.wechat_qr,alipayQr:o.alipay_qr,unionpayQr:o.unionpay_qr,bankCard:o.bank_card},amount:s,actualAmount:s}}catch(d){console.error("获取转账信息失败:",d),this.$message.error("获取转账信息失败")}},async rejectAllocation(e){const s=prompt("请输入拒绝原因(可选):");if(s!==null){this.processing=!0;try{await h.post(`/matching/reject-allocation/${e}`,{reason:s}),this.$message.success("已拒绝分配"),await this.loadData()}catch(d){console.error("拒绝分配失败:",d),this.$message.error("拒绝分配失败")}finally{this.processing=!1}}},async viewOrderDetail(e){try{const s=await h.get(`/matching/order/${e}`);this.selectedOrder=s.data.data,this.showOrderDetail=!0}catch(s){console.error("获取订单详情失败:",s),this.$message.error("获取订单详情失败")}},closeOrderDetail(){this.showOrderDetail=!1,this.selectedOrder=null},getStatusText(e){return{pending:"待处理",matching:"匹配中",completed:"已完成",cancelled:"已取消",confirmed:"已确认",rejected:"已拒绝",failed:"匹配失败"}[e]||e},getActionText(e){return{join:"加入",confirm:"确认",reject:"拒绝",complete:"完成"}[e]||e},formatDate(e){return new Date(e).toLocaleString("zh-CN")},formatDeadline(e){if(!e)return"";const s=new Date(e),d=new Date,c=new Date(d.getFullYear(),d.getMonth(),d.getDate()),n=new Date(s.getFullYear(),s.getMonth(),s.getDate()),o=s.toLocaleTimeString("zh-CN",{hour:"2-digit",minu
|