Files
medical-mall/unpackage/cache/.app-android/sourcemap/pages/mall/consumer/bank-cards/add.kt.map

1 line
7.5 KiB
Plaintext

{"version":3,"sources":["pages/mall/consumer/bank-cards/add.uvue","pages/user/terms.uvue","uni_modules/ak-req/ak-req.uts"],"sourcesContent":["<template>\r\n <view class=\"add-card-page\">\r\n <view class=\"form-container\">\r\n <view class=\"form-item\">\r\n <text class=\"label\">持卡人</text>\r\n <input class=\"input\" type=\"text\" v-model=\"form.holder_name\" placeholder=\"请输入持卡人姓名\" />\r\n </view>\r\n <view class=\"form-item\">\r\n <text class=\"label\">卡号</text>\r\n <input class=\"input\" type=\"number\" v-model=\"form.card_no\" placeholder=\"请输入银行卡号\" @input=\"detectBank\" maxlength=\"19\" />\r\n </view>\r\n <view class=\"form-item\">\r\n <text class=\"label\">银行</text>\r\n <input class=\"input\" type=\"text\" v-model=\"form.bank_name\" placeholder=\"自动识别或手动输入\" />\r\n </view>\r\n <view class=\"form-item\">\r\n <text class=\"label\">手机号</text>\r\n <input class=\"input\" type=\"number\" v-model=\"form.phone\" placeholder=\"银行预留手机号\" maxlength=\"11\" />\r\n </view>\r\n \r\n <view class=\"form-item switch-item\">\r\n <text class=\"label\">设为默认卡</text>\r\n <switch :checked=\"form.is_default\" @change=\"onSwitchChange\" color=\"#ff5000\" />\r\n </view>\r\n </view>\r\n \r\n <view class=\"action-section\">\r\n <button class=\"submit-btn\" :class=\"{ disabled: loading }\" :disabled=\"loading\" @click=\"submit\">确认添加</button>\r\n </view>\r\n </view>\r\n</template>\r\n\r\n<script setup lang=\"uts\">\r\nimport { ref, reactive } from 'vue'\r\nimport { supabaseService } from '@/utils/supabaseService.uts'\r\n\r\ntype BankCardForm = {\r\n holder_name: string\r\n card_no: string\r\n bank_name: string\r\n phone: string\r\n is_default: boolean\r\n}\r\n\r\nconst loading = ref(false)\r\nconst form = reactive({\r\n holder_name: '',\r\n card_no: '',\r\n bank_name: '',\r\n phone: '',\r\n is_default: false\r\n} as BankCardForm)\r\n\r\nconst onSwitchChange = (e: UniSwitchChangeEvent) => {\r\n form.is_default = e.detail.value\r\n}\r\n\r\n// 模拟卡号识别\r\nconst detectBank = (e: any) => {\r\n const val = form.card_no\r\n if (val.length >= 6) {\r\n if (val.startsWith('6222')) form.bank_name = '中国工商银行'\r\n else if (val.startsWith('6227')) form.bank_name = '中国建设银行'\r\n else if (val.startsWith('6225')) form.bank_name = '招商银行'\r\n else if (val.startsWith('6228')) form.bank_name = '中国农业银行'\r\n // else form.bank_name = '' \r\n }\r\n}\r\n\r\nconst submit = async () => {\r\n if (form.holder_name == '' || form.card_no == '' || form.bank_name == '') {\r\n uni.showToast({ title: '请完善卡片信息', icon: 'none' })\r\n return\r\n }\r\n \r\n loading.value = true\r\n \r\n try {\r\n const cardData = new UTSJSONObject()\r\n cardData.set('holder_name', form.holder_name)\r\n cardData.set('bank_name', form.bank_name)\r\n cardData.set('card_no', form.card_no) // Also save full card no if needed, or just last4\r\n // 截取后4位\r\n const last4 = form.card_no.length > 4 ? form.card_no.slice(-4) : form.card_no\r\n cardData.set('card_no_last4', last4)\r\n cardData.set('phone', form.phone)\r\n cardData.set('is_default', form.is_default)\r\n // 简单推定为储蓄卡\r\n cardData.set('card_type', 'debit') \r\n \r\n const success = await supabaseService.addBankCard(cardData)\r\n if (success) {\r\n uni.showToast({ title: '添加成功' })\r\n setTimeout(() => {\r\n uni.navigateBack()\r\n }, 1000)\r\n } else {\r\n uni.showToast({ title: '添加失败', icon: 'none' })\r\n }\r\n } catch (e) {\r\n console.error(e)\r\n uni.showToast({ title: '系统错误', icon: 'none' })\r\n } finally {\r\n loading.value = false\r\n }\r\n}\r\n</script>\r\n\r\n<style>\r\n.add-card-page {\r\n background-color: #f5f5f5;\r\n flex: 1;\r\n}\r\n\r\n.form-container {\r\n background-color: #fff;\r\n padding: 0 15px;\r\n}\r\n\r\n.form-item {\r\n display: flex;\r\n align-items: center;\r\n padding: 15px 0;\r\n border-bottom: 1px solid #eee;\r\n}\r\n\r\n.form-item:last-child {\r\n border-bottom: none;\r\n}\r\n\r\n.label {\r\n width: 80px;\r\n font-size: 15px;\r\n color: #333;\r\n}\r\n\r\n.input {\r\n flex: 1;\r\n font-size: 15px;\r\n}\r\n\r\n.switch-item {\r\n justify-content: space-between;\r\n}\r\n\r\n.action-section {\r\n padding: 30px 15px;\r\n}\r\n\r\n.submit-btn {\r\n background-color: #ff5000;\r\n color: #fff;\r\n border-radius: 25px;\r\n font-size: 16px;\r\n}\r\n\r\n.submit-btn.disabled {\r\n opacity: 0.6;\r\n}\r\n</style>\r\n",null,null],"names":[],"mappings":"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"}