平台公告
优惠券新人首单立减 30 元,下单时使用券码 NEW30 夏季特惠空调深度清洗 5 折起,提前 3 天预约免排队 停业通知9月15日(周一)全员培训,全天暂停接单 新增服务9 大品牌空调深度清洗:含翅片+滤网+风轮 服务保障所有师傅均通过身份证+技能双认证,放心下单 优惠券新人首单立减 30 元,下单时使用券码 NEW30 夏季特惠空调深度清洗 5 折起,提前 3 天预约免排队 停业通知9月15日(周一)全员培训,全天暂停接单 新增服务9 大品牌空调深度清洗:含翅片+滤网+风轮 服务保障所有师傅均通过身份证+技能双认证,放心下单
欢迎使用快修通专业维修服务 📞 客服热线:--

专业上门维修服务
价格透明 · 30分钟响应

家电 · 水电 · 清洗 · 电动车 · 一站搞定

价格透明 30分钟响应 持证师傅 先行赔付 30天质保
27
服务项目
100%
持证师傅
¥20
上门费
30天
售后质保

🛠️ 30 秒提交维修需求

🔧 家电
💡 水电
🧽 清洗
🛵 电动车
提交即同意《用户协议》 · 严格保护隐私
💰

明码标价

价格透明公示

30分钟响应

急速上门服务

👷

持证师傅

100% 实名认证

🛡️

先行赔付

无忧售后保障

30天质保

所有服务有保障

🤖 AI 智能

AI 智能问价

用自然语言描述故障,AI 立即给出价格区间和师傅推荐

👋 您好,我是快修通 AI 价格顾问

告诉我哪里坏了,AI 帮你分析原因、给出价格参考。

空调不制冷 冰箱结冰 频繁跳闸 洗衣机不进水 油烟机不吸烟 热水器故障
服务品类

4 大品类 · 27 个服务项目

覆盖家庭常见维修需求,一键下单,专业师傅上门

明码标价

服务项目 · 价格透明

价格公示,先报价后维修,绝不乱加价

全部
家电维修
水电电路
清洗保养
电动车维修
加载中...
🎁 优惠

限时优惠券

新老用户专享,领券下单更优惠

加载中...
服务流程

4 步完成服务 · 全程透明

从下单到完工,全流程可视可控

1
在线下单
选择服务 · 填写信息
2
客服报价
30 分钟内联系报价
3
师傅上门
约定时间 · 专业服务
4
评价支付
满意后再付款
立即下单

📝 提交维修需求

30 分钟内有专业师傅联系您,明码报价后再上门

提交即表示同意 《用户协议和隐私政策》
订单查询

📋 查询订单进度

输入下单手机号,一键查看订单进度

⭐ 真实评价

用户真实评价

每一条评价都是师傅服务质量的真实反馈

加载中...
// ===== 会员体系(与小程序同步)===== const Member = { get phone() { return localStorage.getItem('kxt_phone') || '' }, get name() { return localStorage.getItem('kxt_name') || '' }, save(p, n) { localStorage.setItem('kxt_phone', p); localStorage.setItem('kxt_name', n || '') }, clear() { localStorage.removeItem('kxt_phone'); localStorage.removeItem('kxt_name') } } function openMember() { if (Member.phone) { showMemberPanel() } else { showLoginForm() } } function showLoginForm() { $('modalTitle').textContent = '👤 登录 / 注册' $('modalBody').innerHTML = `
手机号即账号,首次登录自动注册,与微信小程序数据互通
` $('modalMask').style.display = 'flex' } async function doMemberLogin() { const phone = $('mbPhone').value.trim(), name = $('mbName').value.trim() if (!/^1\d{10}$/.test(phone)) { toast('手机号格式错误'); return } try { const r = await fetch(API + '/api/user/register', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ phone, name }) }) const d = await r.json() if (d.ok) { Member.save(phone, name || d.user.name) toast(d.isNew ? '注册成功,已自动登录' : '欢迎回来') showMemberPanel() fillMemberForm() } else toast(d.error || '登录失败') } catch { toast('网络错误') } } async function showMemberPanel() { $('modalTitle').textContent = '👤 用户中心' $('modalBody').innerHTML = '
加载中...
' $('modalMask').style.display = 'flex' let m = null try { const r = await fetch(API + '/api/member/info', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ phone: Member.phone }) }) const d = await r.json() if (d.ok) m = d.member } catch {} const lv = { normal: '普通会员', silver: '银卡会员', gold: '金卡会员' }[(m && m.level) || 'normal'] $('modalBody').innerHTML = `
${escapeHtml(Member.name || '会员')} · ${lv}
${Member.phone}
¥${((m && m.balance) || 0).toFixed(2)}
余额
${(m && m.points) || 0}
积分
${(m && m.inviteCode) || '--'}
邀请码
` } function memberLogout() { Member.clear(); closeModal(); updateMemberNav(); toast('已退出') } function fillMemberForm() { if (Member.phone) { const op = $('orderPhone'); if (op && !op.value) op.value = Member.phone const on = $('orderName'); if (on && !on.value && Member.name) on.value = Member.name const qp = $('queryPhone'); if (qp && !qp.value) qp.value = Member.phone } } function updateMemberNav() { const el = document.querySelectorAll('#memberNav') el.forEach(a => a.textContent = Member.phone ? '👤 ' + (Member.name || '用户中心') : '👤 登录/注册') } // ===== 余额充值(真实扫码支付,后台确认到账)===== let _rechargeAmount = 100, _rechargeRecordId = '' function showRecharge() { _rechargeAmount = 100 $('modalTitle').textContent = '💰 余额充值' $('modalBody').innerHTML = `
${[50,100,200,500].map(a=>``).join('')}
` } async function doRecharge() { const bonus = _rechargeAmount >= 500 ? 80 : _rechargeAmount >= 200 ? 20 : _rechargeAmount >= 100 ? 5 : 0 try { const r = await fetch(API + '/api/member/recharge', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ phone: Member.phone, amount: _rechargeAmount, bonus, payMethod: 'wechat' }) }) const d = await r.json() if (!d.ok) { toast(d.error || '充值失败'); return } _rechargeRecordId = d.recordId const qr = d.payQr ? (d.payQr.startsWith('http') ? d.payQr : API + d.payQr) : API + '/images/payqr.png' $('modalTitle').textContent = '💰 扫码支付 ¥' + _rechargeAmount + (bonus ? '(送¥' + bonus + ')' : '') $('modalBody').innerHTML = `
收款码
微信扫码支付,支付完成后点击下方按钮
` } catch { toast('网络错误') } } async function confirmRecharge() { if (_rechargeRecordId) { try { await fetch(API + '/api/member/recharge/confirm', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ recordId: _rechargeRecordId }) }) } catch {} } _rechargeRecordId = '' toast('已提交,商家确认后到账') showMemberPanel() } // ===== 每日签到 ===== async function doCheckin(btn) { try { const r = await fetch(API + '/api/member/checkin', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ phone: Member.phone }) }) const d = await r.json() if (d.ok) { toast('签到成功 +5 积分'); btn.textContent = '✅ 已签到'; btn.disabled = true; showMemberPanel() } else { toast(d.error || '今日已签到'); btn.textContent = '✅ 已签到'; btn.disabled = true } } catch { toast('网络错误') } } updateMemberNav(); fillMemberForm();