"use strict"; const common_vendor = require("../../common/vendor.js"); const modules_api_AppServer = require("../../modules/api/AppServer.js"); require("../../modules/Config.js"); const appServer = new modules_api_AppServer.AppServer(); const _sfc_main = { data() { return { navbarBgColor: "transparent", scrollTop: 0, showWithdrawModal: false, showApplyModal: false, showQRCodeModal: false, showQRCodeContent: false, // 控制二维码内容显示 qrcodeDataUrl: "", qrcodeValue: "", // 二维码内容 appLogo: "", // 应用logo,用于分享图片 applyStep: 1, withdrawAmount: "", paymentMethod: "wechat", qrcodeImage: "", bankCardNumber: "", cardholderName: "", bankName: "", swiftCode: "", withdrawRecords: [], withdrawDetailList: [], inviteRecords: [], // 佣金统计 commissionStats: { totalInvites: 0, paidInvites: 0, totalCommission: "0.00", availableBalance: "0.00", invitationCode: "" }, loading: false, inviteRules: "" // 邀请规则说明(从后台配置获取) }; }, computed: { // 弹窗显示时禁止页面滚动 pageStyle() { if (this.showQRCodeModal || this.showWithdrawModal || this.showApplyModal) { return "overflow: hidden;"; } return ""; } }, onLoad() { this.loadData(); }, // 微信小程序分享配置 onShareAppMessage() { const inviteCode = this.commissionStats.invitationCode || ""; let shareImage = "/static/new_bg1.png"; if (this.appLogo && this.appLogo.startsWith("http")) { shareImage = this.appLogo; } console.log("分享图片路径:", shareImage, "appLogo:", this.appLogo); return { title: "邀请你加入,一起赚佣金!", path: `/pages/index/index?inviteCode=${inviteCode}`, imageUrl: shareImage }; }, // 分享到朋友圈(微信小程序) onShareTimeline() { const inviteCode = this.commissionStats.invitationCode || ""; let shareImage = "/static/new_bg1.png"; if (this.appLogo && this.appLogo.startsWith("http")) { shareImage = this.appLogo; } return { title: "邀请你加入,一起赚佣金!", query: `inviteCode=${inviteCode}`, imageUrl: shareImage }; }, methods: { // 加载数据 async loadData() { this.loading = true; try { await Promise.all([ this.loadCommissionStats(), this.loadCommissionRecords(), this.loadWithdrawRecords(), this.loadAppConfig() ]); } catch (error) { console.error("加载数据失败:", error); } finally { this.loading = false; } }, // 加载应用配置(从globalData获取logo和邀请规则) loadAppConfig() { try { const app = getApp(); if (app && app.globalData && app.globalData.config) { const config = app.globalData.config; if (config.app_logo) { this.appLogo = app.getConfigImageUrl("app_logo"); console.log("从globalData获取到应用logo:", this.appLogo); } if (config.invite_rules) { this.inviteRules = config.invite_rules; } } } catch (error) { console.error("获取应用配置失败:", error); } }, // 加载佣金统计 async loadCommissionStats() { try { const res = await appServer.GetCommissionStats(); if (res && res.code === 0 && res.data) { this.commissionStats = res.data; this.updateWithdrawDisplay(); const inviteCode = res.data.invitationCode || ""; this.qrcodeValue = `https://your-domain.com/invite?code=${inviteCode}`; } } catch (error) { console.error("获取佣金统计失败:", error); } }, // 加载佣金记录 async loadCommissionRecords() { try { const res = await appServer.GetCommissions({ page: 1, limit: 50 }); if (res && res.code === 0 && res.data && res.data.records) { this.inviteRecords = res.data.records.map((item) => { var _a, _b; return { username: ((_a = item.invitee) == null ? void 0 : _a.nickname) || "-", uid: ((_b = item.invitee) == null ? void 0 : _b.uid) || "-", time: this.formatDate(item.createdAt), paid: true, amount: parseFloat(item.commissionAmount) }; }); } } catch (error) { console.error("获取佣金记录失败:", error); } }, // 加载提现记录 async loadWithdrawRecords() { try { const res = await appServer.GetWithdrawals({ page: 1, limit: 10 }); if (res && res.code === 0 && res.data && res.data.records) { this.withdrawDetailList = res.data.records.map((item) => ({ time: this.formatDate(item.createdAt), amount: item.amount, status: this.getWithdrawStatusText(item.status) })); } } catch (error) { console.error("获取提现记录失败:", error); } }, // 更新提现显示 updateWithdrawDisplay() { this.withdrawRecords = [{ amount: this.commissionStats.availableBalance || "0", status: this.$t("invite.statusWaiting") }]; }, // 格式化日期 formatDate(dateStr) { if (!dateStr) return "-"; const date = new Date(dateStr); return `${date.getFullYear()}/${date.getMonth() + 1}/${date.getDate()}`; }, // 获取提现状态文本 getWithdrawStatusText(status) { const statusMap = { "waiting": this.$t("invite.statusWaiting"), "processing": this.$t("invite.statusProcessing"), "completed": this.$t("invite.statusCompleted"), "rejected": this.$t("invite.statusRejected") || "已拒绝" }; return statusMap[status] || status; }, goBack() { common_vendor.index.navigateBack(); }, showDetail() { common_vendor.index.showModal({ title: "规则说明", content: this.inviteRules || this.$t("invite.ruleContent"), showCancel: false }); }, generateQRCode() { const inviteCode = this.commissionStats.invitationCode || ""; this.qrcodeValue = `https://your-domain.com/invite?code=${inviteCode}`; this.showQRCodeContent = false; this.showQRCodeModal = true; }, onQRCodePopupOpen() { setTimeout(() => { this.showQRCodeContent = true; }, 100); }, closeQRCodeModal() { this.showQRCodeContent = false; this.showQRCodeModal = false; this.qrcodeDataUrl = ""; }, shareQRCodeToFriend() { common_vendor.index.showToast({ title: this.$t("invite.shareSuccess") || "请使用右上角分享", icon: "none" }); }, saveQRCodeImage() { if (this.$refs.uQrcode) { this.$refs.uQrcode.toTempFilePath({ success: (res) => { common_vendor.index.saveImageToPhotosAlbum({ filePath: res.tempFilePath, success: () => { common_vendor.index.showToast({ title: this.$t("invite.saveSuccess") || "保存成功", icon: "success" }); }, fail: (err) => { console.error("保存图片失败:", err); if (err.errMsg && err.errMsg.includes("auth deny")) { common_vendor.index.showModal({ title: "提示", content: "需要您授权保存图片到相册", success: (modalRes) => { if (modalRes.confirm) { common_vendor.index.openSetting(); } } }); } else { common_vendor.index.showToast({ title: "保存失败", icon: "none" }); } } }); }, fail: (err) => { console.error("获取二维码图片失败:", err); common_vendor.index.showToast({ title: "获取二维码失败", icon: "none" }); } }); } else { common_vendor.index.showToast({ title: "二维码生成中,请稍候", icon: "none" }); } }, shareToFriend() { common_vendor.index.share({ provider: "weixin", scene: "WXSceneSession", type: 0, title: this.$t("invite.shareTitle"), success: () => { common_vendor.index.showToast({ title: this.$t("invite.shareSuccess"), icon: "success" }); } }); }, goToWithdrawDetail() { this.showWithdrawModal = true; }, closeWithdrawModal() { this.showWithdrawModal = false; }, applyWithdraw() { this.applyStep = 1; this.withdrawAmount = ""; this.paymentMethod = "wechat"; this.qrcodeImage = ""; this.bankCardNumber = ""; this.cardholderName = ""; this.bankName = ""; this.swiftCode = ""; this.showApplyModal = true; }, closeApplyModal() { this.showApplyModal = false; }, nextStep() { const amount = parseFloat(this.withdrawAmount); if (!this.withdrawAmount || isNaN(amount)) { common_vendor.index.showToast({ title: this.$t("invite.enterAmountError"), icon: "none" }); return; } if (amount < 1) { common_vendor.index.showToast({ title: this.$t("invite.amountTooLow") || "低于1元,无法申请提现", icon: "none" }); return; } const availableBalance = parseFloat(this.commissionStats.availableBalance || "0"); if (amount > availableBalance) { common_vendor.index.showToast({ title: this.$t("invite.amountExceedsBalance") || "超出可提现金额", icon: "none" }); return; } const formattedAmount = Math.floor(amount * 100) / 100; this.withdrawAmount = formattedAmount.toString(); this.applyStep = 2; }, selectPaymentMethod(method) { this.paymentMethod = method; }, uploadQRCode() { common_vendor.index.chooseImage({ count: 1, success: (res) => { this.qrcodeImage = res.tempFilePaths[0]; } }); }, async submitWithdraw() { var _a; if (this.paymentMethod !== "bank" && !this.qrcodeImage) { common_vendor.index.showToast({ title: this.$t("invite.uploadQRCodeError"), icon: "none" }); return; } if (this.paymentMethod === "bank") { if (!this.bankCardNumber || !this.cardholderName || !this.bankName) { common_vendor.index.showToast({ title: this.$t("invite.bankInfoError"), icon: "none" }); return; } } let paymentDetails = {}; if (this.paymentMethod === "bank") { paymentDetails = { bankCardNumber: this.bankCardNumber, cardholderName: this.cardholderName, bankName: this.bankName, swiftCode: this.swiftCode || void 0 }; } else { try { const uploadRes = await appServer.UploadImage(this.qrcodeImage); if (uploadRes && uploadRes.code === 0 && uploadRes.data) { paymentDetails = { qrcodeUrl: uploadRes.data.url }; } else { common_vendor.index.showToast({ title: "上传收款码失败", icon: "none" }); return; } } catch (error) { console.error("上传收款码失败:", error); common_vendor.index.showToast({ title: "上传收款码失败", icon: "none" }); return; } } try { const res = await appServer.CreateWithdrawal({ amount: parseFloat(this.withdrawAmount), paymentMethod: this.paymentMethod, paymentDetails }); if (res && res.code === 0) { common_vendor.index.showToast({ title: this.$t("invite.applySuccess"), icon: "success" }); this.closeApplyModal(); this.loadData(); } else { common_vendor.index.showToast({ title: ((_a = res.error) == null ? void 0 : _a.message) || "提现申请失败", icon: "none" }); } } catch (error) { console.error("提现申请失败:", error); common_vendor.index.showToast({ title: "提现申请失败", icon: "none" }); } }, handleScroll(e) { } }, onPageScroll(e) { const scrollTop = e.scrollTop; if (scrollTop > 100) { this.navbarBgColor = "linear-gradient(135deg, #FF3B4E 0%, #FF6B7A 100%)"; } else { const opacity = scrollTop / 100; this.navbarBgColor = `rgba(255, 59, 78, ${opacity})`; } } }; if (!Array) { const _easycom_up_popup2 = common_vendor.resolveComponent("up-popup"); const _easycom_u_qrcode2 = common_vendor.resolveComponent("u-qrcode"); (_easycom_up_popup2 + _easycom_u_qrcode2)(); } const _easycom_up_popup = () => "../../node-modules/uview-plus/components/u-popup/u-popup.js"; const _easycom_u_qrcode = () => "../../node-modules/uview-plus/components/u-qrcode/u-qrcode.js"; if (!Math) { (_easycom_up_popup + _easycom_u_qrcode)(); } function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return common_vendor.e({ a: $options.pageStyle, b: common_vendor.o((...args) => $options.goBack && $options.goBack(...args)), c: common_vendor.t(_ctx.$t("invite.title")), d: $data.navbarBgColor, e: common_vendor.t(_ctx.$t("invite.rewardTitle")), f: common_vendor.t(_ctx.$t("invite.rewardDesc")), g: common_vendor.t(_ctx.$t("invite.stepsTitle")), h: common_vendor.t(_ctx.$t("invite.step1")), i: common_vendor.t(_ctx.$t("invite.step2")), j: common_vendor.t(_ctx.$t("invite.step3")), k: common_vendor.t(_ctx.$t("invite.viewDetail")), l: common_vendor.o((...args) => $options.showDetail && $options.showDetail(...args)), m: common_vendor.t(_ctx.$t("invite.generateQRCode")), n: common_vendor.o((...args) => $options.generateQRCode && $options.generateQRCode(...args)), o: common_vendor.t(_ctx.$t("invite.shareToFriend")), p: common_vendor.t(_ctx.$t("invite.withdrawRecord")), q: common_vendor.t(_ctx.$t("invite.withdrawPeriod")), r: common_vendor.o((...args) => $options.goToWithdrawDetail && $options.goToWithdrawDetail(...args)), s: common_vendor.f($data.withdrawRecords, (item, index, i0) => { return { a: common_vendor.t(item.amount), b: common_vendor.t(item.status), c: index }; }), t: common_vendor.t(_ctx.$t("common.currency")), v: common_vendor.t(_ctx.$t("invite.applyWithdraw")), w: common_vendor.o((...args) => $options.applyWithdraw && $options.applyWithdraw(...args)), x: common_vendor.t(_ctx.$t("invite.inviteRecord")), y: common_vendor.t(_ctx.$t("invite.username")), z: common_vendor.t(_ctx.$t("invite.uid")), A: common_vendor.t(_ctx.$t("invite.inviteTime")), B: common_vendor.t(_ctx.$t("invite.paid")), C: common_vendor.f($data.inviteRecords, (item, index, i0) => { return common_vendor.e({ a: common_vendor.t(item.username), b: common_vendor.t(item.uid), c: common_vendor.t(item.time), d: item.paid && item.amount }, item.paid && item.amount ? { e: common_vendor.t(item.amount) } : {}, { f: index }); }), D: $data.inviteRecords.length === 0 }, $data.inviteRecords.length === 0 ? { E: common_vendor.t(_ctx.$t("common.noData")) } : {}, { F: common_vendor.t(_ctx.$t("invite.withdrawDetail")), G: common_vendor.o((...args) => $options.closeWithdrawModal && $options.closeWithdrawModal(...args)), H: common_vendor.t(_ctx.$t("invite.time")), I: common_vendor.t(_ctx.$t("invite.amount")), J: common_vendor.t(_ctx.$t("invite.status")), K: common_vendor.f($data.withdrawDetailList, (item, index, i0) => { return { a: common_vendor.t(item.time), b: common_vendor.t(item.amount), c: common_vendor.t(item.status), d: index }; }), L: common_vendor.o($options.closeWithdrawModal), M: common_vendor.p({ show: $data.showWithdrawModal, mode: "center", round: 20, overlay: true, closeOnClickOverlay: true, bgColor: "#ffffff" }), N: common_vendor.t(_ctx.$t("invite.qrcodeTitle") || "邀请好友,赢现金"), O: $data.showQRCodeContent }, $data.showQRCodeContent ? { P: common_vendor.sr("uQrcode", "830ba560-2,830ba560-1"), Q: common_vendor.p({ val: $data.qrcodeValue, size: 200, unit: "px", ["load-make"]: true, ["using-components"]: true }) } : {}, { R: common_vendor.t(_ctx.$t("invite.shareToFriend") || "分享给好友"), S: common_vendor.t(_ctx.$t("invite.saveImage") || "保存图片"), T: common_vendor.o((...args) => $options.saveQRCodeImage && $options.saveQRCodeImage(...args)), U: common_vendor.o($options.closeQRCodeModal), V: common_vendor.o($options.onQRCodePopupOpen), W: common_vendor.p({ show: $data.showQRCodeModal, mode: "center", round: 20, overlay: true, closeOnClickOverlay: true, bgColor: "#ffffff" }), X: $data.showApplyModal }, $data.showApplyModal ? common_vendor.e({ Y: common_vendor.t(_ctx.$t("invite.withdrawApplication")), Z: common_vendor.t($data.applyStep), aa: $data.applyStep === 1 }, $data.applyStep === 1 ? { ab: common_vendor.t(_ctx.$t("invite.enterAmount")), ac: _ctx.$t("invite.enterPlaceholder"), ad: $data.withdrawAmount, ae: common_vendor.o(($event) => $data.withdrawAmount = $event.detail.value), af: common_vendor.t(_ctx.$t("common.currency")), ag: common_vendor.t(_ctx.$t("invite.amountHint")), ah: common_vendor.t(_ctx.$t("invite.nextStep")), ai: common_vendor.o((...args) => $options.nextStep && $options.nextStep(...args)) } : {}, { aj: $data.applyStep === 2 }, $data.applyStep === 2 ? common_vendor.e({ ak: common_vendor.t(_ctx.$t("invite.selectPaymentMethod")), al: common_vendor.t(_ctx.$t("invite.wechat")), am: $data.paymentMethod === "wechat" ? 1 : "", an: common_vendor.o(($event) => $options.selectPaymentMethod("wechat")), ao: common_vendor.t(_ctx.$t("invite.alipay")), ap: $data.paymentMethod === "alipay" ? 1 : "", aq: common_vendor.o(($event) => $options.selectPaymentMethod("alipay")), ar: common_vendor.t(_ctx.$t("invite.bankCard")), as: $data.paymentMethod === "bank" ? 1 : "", at: common_vendor.o(($event) => $options.selectPaymentMethod("bank")), av: $data.paymentMethod !== "bank" }, $data.paymentMethod !== "bank" ? common_vendor.e({ aw: common_vendor.t(_ctx.$t("invite.uploadQRCode")), ax: $data.qrcodeImage }, $data.qrcodeImage ? { ay: $data.qrcodeImage } : {}, { az: common_vendor.o((...args) => $options.uploadQRCode && $options.uploadQRCode(...args)) }) : {}, { aA: $data.paymentMethod === "bank" }, $data.paymentMethod === "bank" ? { aB: common_vendor.t(_ctx.$t("invite.enterBankInfo")), aC: common_vendor.t(_ctx.$t("invite.bankCardNumber")), aD: _ctx.$t("invite.enterBankCardNumber"), aE: $data.bankCardNumber, aF: common_vendor.o(($event) => $data.bankCardNumber = $event.detail.value), aG: common_vendor.t(_ctx.$t("invite.cardholderName")), aH: _ctx.$t("invite.enterCardholderName"), aI: $data.cardholderName, aJ: common_vendor.o(($event) => $data.cardholderName = $event.detail.value), aK: common_vendor.t(_ctx.$t("invite.bankName")), aL: _ctx.$t("invite.enterBankName"), aM: $data.bankName, aN: common_vendor.o(($event) => $data.bankName = $event.detail.value), aO: common_vendor.t(_ctx.$t("invite.swiftCode")), aP: common_vendor.t(_ctx.$t("invite.optional")), aQ: _ctx.$t("invite.enterSwiftCode"), aR: $data.swiftCode, aS: common_vendor.o(($event) => $data.swiftCode = $event.detail.value) } : {}, { aT: common_vendor.t(_ctx.$t("invite.applyWithdraw")), aU: common_vendor.o((...args) => $options.submitWithdraw && $options.submitWithdraw(...args)) }) : {}, { aV: common_vendor.o(() => { }), aW: common_vendor.o((...args) => $options.closeApplyModal && $options.closeApplyModal(...args)) }) : {}); } const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-830ba560"], ["__file", "F:/gitCode/uniapp/appointment_system/miniprogram/src/pages/me/invite-reward-page.vue"]]); _sfc_main.__runtimeHooks = 7; wx.createPage(MiniProgramPage);