邀请新人

This commit is contained in:
18631081161 2025-12-20 15:09:50 +08:00
parent 3257210c39
commit b4949d72e3
866 changed files with 177 additions and 36789 deletions

4
.gitignore vendored
View File

@ -1,4 +1,8 @@
/unpackage/
/.kiro/
node_modules
node-modules
/.vscode/
/node_modules/
**/dist/
**/node-modules/

View File

@ -91,38 +91,62 @@ router.post('/miniprogram', authenticateUser, async (req, res) => {
await user.update({ invitationCode });
}
// 获取 access_token
const accessToken = await getAccessToken();
let dataUrl = '';
// 调用微信API生成小程序码使用 getUnlimited 接口,无数量限制)
const wxUrl = `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${accessToken}`;
const wxResponse = await axios.post(wxUrl, {
scene: `inviteCode=${invitationCode}`, // scene 参数最长32字符
page: 'pages/index/index', // 必须是已发布的小程序页面
width: width,
auto_color: false,
line_color: { r: 0, g: 0, b: 0 },
is_hyaline: false
}, {
responseType: 'arraybuffer' // 返回的是图片二进制数据
});
// 检查是否返回错误错误时返回JSON
const contentType = wxResponse.headers['content-type'];
if (contentType && contentType.includes('application/json')) {
const errorData = JSON.parse(wxResponse.data.toString());
console.error('微信小程序码生成失败:', errorData);
// 开发环境:尝试生成小程序码,失败则返回邀请码信息供前端生成普通二维码
try {
// 获取 access_token
const accessToken = await getAccessToken();
// 调用微信API生成小程序码使用 getUnlimited 接口,无数量限制)
const wxUrl = `https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${accessToken}`;
const wxResponse = await axios.post(wxUrl, {
scene: `inviteCode=${invitationCode}`, // scene 参数最长32字符
page: 'pages/index/index', // 必须是已发布的小程序页面
width: width,
auto_color: false,
line_color: { r: 0, g: 0, b: 0 },
is_hyaline: false
}, {
responseType: 'arraybuffer' // 返回的是图片二进制数据
});
// 检查是否返回错误错误时返回JSON
const contentType = wxResponse.headers['content-type'];
if (contentType && contentType.includes('application/json')) {
const errorData = JSON.parse(wxResponse.data.toString());
console.error('微信小程序码生成失败:', errorData);
// 小程序未发布,返回邀请码让前端生成普通二维码
return res.status(200).json({
code: 0,
message: 'success',
data: {
invitationCode,
qrcodeUrl: null, // 无小程序码,前端使用普通二维码
useLocalQrcode: true, // 标记使用本地二维码
qrcodeContent: `/pages/index/index?inviteCode=${invitationCode}`
}
});
}
// 转换为 base64
const base64Image = Buffer.from(wxResponse.data).toString('base64');
dataUrl = `data:image/png;base64,${base64Image}`;
} catch (wxError) {
console.error('生成小程序码异常:', wxError.message);
// 返回邀请码让前端生成普通二维码
return res.status(200).json({
code: 500,
message: errorData.errmsg || '生成小程序码失败',
data: null
code: 0,
message: 'success',
data: {
invitationCode,
qrcodeUrl: null,
useLocalQrcode: true,
qrcodeContent: `/pages/index/index?inviteCode=${invitationCode}`
}
});
}
// 转换为 base64
const base64Image = Buffer.from(wxResponse.data).toString('base64');
const dataUrl = `data:image/png;base64,${base64Image}`;
return res.status(200).json({
code: 0,
message: 'success',

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
.page[data-v-b9c450e3]{min-height:100vh;background-color:#f3f4f8}.navbar[data-v-b9c450e3]{width:100%;padding-top:3.125rem;padding-bottom:.625rem;display:flex;flex-direction:row;align-items:center;justify-content:center;position:relative}.navbar .nav-back[data-v-b9c450e3]{position:absolute;left:1rem;width:2.5rem;height:1.5625rem;display:flex;align-items:center;justify-content:center}.navbar .nav-back .back-icon[data-v-b9c450e3]{width:1.5rem;height:1.5rem}.navbar .nav-title[data-v-b9c450e3]{font-size:1.0625rem;font-weight:500;color:#333}.logo-container[data-v-b9c450e3]{display:flex;flex-direction:column;align-items:center;padding:2.5rem .9375rem 1.25rem}.logo-container .logo-box[data-v-b9c450e3]{width:9.375rem;height:9.375rem;background-color:#fff;border-radius:.625rem;display:flex;align-items:center;justify-content:center;box-shadow:0 .125rem .625rem rgba(0,0,0,.08)}.logo-container .logo-box .logo-image[data-v-b9c450e3]{width:8.125rem;height:8.125rem}.logo-container .logo-box .logo-placeholder[data-v-b9c450e3]{font-size:1.5rem;color:#ccc}.logo-container .version-text[data-v-b9c450e3]{margin-top:.9375rem;font-size:1rem;color:#333;font-weight:500}.logo-container .version-number[data-v-b9c450e3]{margin-top:.3125rem;font-size:.8125rem;color:#999}.about-image-container[data-v-b9c450e3]{padding:.625rem .9375rem}.about-image-container .about-image[data-v-b9c450e3]{width:100%;border-radius:.5rem}

View File

@ -1 +0,0 @@
.page[data-v-b194a86f]{min-height:100vh;background-color:#f3f3f3}.header[data-v-b194a86f]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-b194a86f]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-b194a86f]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}@keyframes flash-b194a86f{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-b194a86f]{animation:flash-b194a86f .5s ease-in-out 3}

View File

@ -1 +0,0 @@
.page[data-v-f8d84083]{min-height:100vh;background-color:#f3f3f3}.header[data-v-f8d84083]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-f8d84083]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-f8d84083]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}.date-item[data-v-f8d84083]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:2.5rem;padding:0 .3125rem;box-sizing:border-box}.date-text[data-v-f8d84083]{font-size:.875rem;color:#333}.date-placeholder[data-v-f8d84083]{color:#c0c4cc}@keyframes flash-f8d84083{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-f8d84083]{animation:flash-f8d84083 .5s ease-in-out 3}.person-row[data-v-f8d84083]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding:.625rem .3125rem}.person-info[data-v-f8d84083]{display:flex;flex-direction:column}.person-title[data-v-f8d84083]{font-size:.875rem;color:#333;font-weight:500}.person-desc[data-v-f8d84083]{font-size:.75rem;color:#999;margin-top:.1875rem}.person-counter[data-v-f8d84083]{display:flex;flex-direction:row;align-items:center}.counter-btn[data-v-f8d84083]{width:1.5625rem;height:1.5625rem;display:flex;align-items:center;justify-content:center;background-color:#bfbfbf;border-radius:.25rem}.counter-icon[data-v-f8d84083]{font-size:.875rem;font-weight:700;line-height:1.5625rem;text-align:center;color:#fff}.counter-value[data-v-f8d84083]{font-size:.875rem;color:#333;min-width:2.5rem;text-align:center}

View File

@ -1 +0,0 @@
.page[data-v-95af1012]{min-height:100vh;background-color:#f3f3f3}.header[data-v-95af1012]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-95af1012]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-95af1012]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}.date-item[data-v-95af1012]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:2.5rem;padding:0 .3125rem;box-sizing:border-box}.date-text[data-v-95af1012]{font-size:.875rem;color:#333}.date-placeholder[data-v-95af1012]{color:#c0c4cc}@keyframes flash-95af1012{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-95af1012]{animation:flash-95af1012 .5s ease-in-out 3}.counter-row[data-v-95af1012]{display:flex;flex-direction:row;align-items:center;padding:.625rem .3125rem}.counter-btn[data-v-95af1012]{width:1.5625rem;height:1.5625rem;display:flex;align-items:center;justify-content:center;background-color:#bfbfbf;border-radius:.25rem}.counter-icon[data-v-95af1012]{font-size:.875rem;font-weight:700;line-height:1.5625rem;text-align:center;color:#fff}.counter-value[data-v-95af1012]{font-size:.875rem;color:#333;min-width:2.5rem;text-align:center}

View File

@ -1 +0,0 @@
.content[data-v-d074112a]{display:flex;height:100vh;background-color:#f3f4f8;flex-direction:column;overflow:hidden}.header-title[data-v-d074112a]{width:100%;margin-top:3.75rem;font-size:.9375rem;text-align:center}.divider[data-v-d074112a]{width:100%;height:.0625rem;background-color:#e0e0e0;margin-top:1rem}.divider-vertical[data-v-d074112a]{width:.0625rem;background-color:#e0e0e0}.main-container[data-v-d074112a]{display:flex;flex-direction:row;flex:1;height:calc(100vh - 4.8125rem);overflow:hidden}.category-sidebar[data-v-d074112a]{display:flex;flex-direction:column;width:6.8125rem;min-width:6.8125rem;background-color:#f7f7f7;overflow-y:auto}.category-item[data-v-d074112a]{display:flex;flex-direction:row;align-items:center;justify-content:center;width:100%;min-height:2.75rem;padding:.5rem .375rem;position:relative;background:#F7F7F7;color:#000;transition:all .3s ease;box-sizing:border-box}.category-item-active[data-v-d074112a]{background:linear-gradient(to right,#E5FBFF,#77F6F4);color:#00a0bc}.category-indicator[data-v-d074112a]{width:.1875rem;height:.9375rem;border-radius:.625rem;background-color:#00a0bc;position:absolute;left:.375rem}.category-text[data-v-d074112a]{font-size:.875rem;text-align:center;word-break:break-word;line-height:1.4;flex:1}.service-list[data-v-d074112a]{display:flex;flex-direction:column;flex:1;overflow-y:auto;padding-bottom:2.5rem}.loading-container[data-v-d074112a],.empty-container[data-v-d074112a]{display:flex;align-items:center;justify-content:center;padding:3.125rem 0;width:100%}.loading-text[data-v-d074112a],.empty-text[data-v-d074112a]{font-size:.875rem;color:#999}.service-items[data-v-d074112a]{display:flex;flex-direction:column;width:100%}.service-item[data-v-d074112a]{display:flex;flex-direction:column;width:14.625rem;margin:1.25rem auto 0;cursor:pointer;transition:transform .2s}.service-item[data-v-d074112a]:active{transform:scale(.98)}.service-image-wrapper[data-v-d074112a]{width:100%;height:5.625rem;border-radius:.3125rem;overflow:hidden;background-color:#f0f0f0}.service-image[data-v-d074112a]{width:100%;height:100%}.service-image-placeholder[data-v-d074112a]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e0e0e0 0%,#f5f5f5 100%)}.placeholder-icon[data-v-d074112a]{font-size:1.875rem;opacity:.5}.service-title[data-v-d074112a]{font-size:.875rem;margin-top:.375rem;color:#333;font-weight:500}

View File

@ -1 +0,0 @@
const o="/static/arrow_down.png";export{o as _};

View File

@ -1 +0,0 @@
const t="/static/arrow_right2.png";export{t as _};

View File

@ -1 +0,0 @@
.picker-display[data-v-4ff0715a]{display:flex;align-items:center;padding:.625rem 1rem;border-radius:.375rem;background:#fff;cursor:pointer}.flag[data-v-4ff0715a]{width:1.125rem;margin-right:.375rem}.code[data-v-4ff0715a]{font-size:.875rem}.arrow[data-v-4ff0715a]{margin-left:auto;color:#bbb;font-size:.9375rem}.popup-mask[data-v-4ff0715a]{position:fixed;z-index:9999;left:0;right:0;top:0;bottom:0;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center}.popup-panel[data-v-4ff0715a]{background:#fff;box-shadow:0 -.25rem 1rem rgba(0,0,0,.1);display:flex;flex-direction:column;overflow:hidden;transform:translateY(100%);opacity:1}.popup-panel--bottom[data-v-4ff0715a]{position:relative}.popup-panel--bottom.popup-panel--show[data-v-4ff0715a]{transform:translateY(0)}.popup-panel--top[data-v-4ff0715a]{position:absolute;top:0;left:0;transform:translateY(-100%)}.popup-panel--top.popup-panel--show[data-v-4ff0715a]{transform:translateY(0)}.popup-panel--left[data-v-4ff0715a]{position:absolute;left:0;top:0;height:100vh;width:80vw;transform:translate(-100%)}.popup-panel--left.popup-panel--show[data-v-4ff0715a]{transform:translate(0)}.popup-panel--right[data-v-4ff0715a]{position:absolute;right:0;top:0;height:100vh;width:80vw;transform:translate(100%)}.popup-panel--right.popup-panel--show[data-v-4ff0715a]{transform:translate(0)}.popup-header[data-v-4ff0715a]{height:3.125rem;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;border-bottom:.03125rem solid #eee;font-size:.875rem}.title[data-v-4ff0715a]{font-size:.875rem}.cancel[data-v-4ff0715a]{color:#222;font-size:.875rem}.popup-search[data-v-4ff0715a]{padding:.625rem 1rem;background:#fafafa}.search-input[data-v-4ff0715a]{height:2.125rem;padding:0 .625rem;border-radius:.375rem;font-size:.875rem;background:#eeeeee;border:none;outline:none}.popup-list[data-v-4ff0715a]{flex:1;min-height:0;background:#fff}.popup-item[data-v-4ff0715a]{display:flex;align-items:center;padding:.75rem 1rem;border-bottom:.03125rem solid #f4f4f4;font-size:.9375rem;cursor:pointer}.safe-area-bottom-height[data-v-4ff0715a]{height:env(safe-area-inset-bottom)}.popup-item .flag[data-v-4ff0715a]{width:1.5rem;margin-right:.5625rem}.popup-item .name[data-v-4ff0715a]{flex:1;font-size:.875rem;color:#222}.popup-item .code[data-v-4ff0715a]{color:#222;font-size:.875rem}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{z as o,D as n,v as e,m as s,n as t,u as a,a3 as r}from"./index-a09151d6.js";import{A as l}from"./AppServer.888fd24d.js";function i(){return!!o("token")}function c(){try{const n=o("user");if(n)return JSON.parse(n)}catch(n){console.error("获取用户信息失败:",n)}return null}function u(){return c()}function g(o){try{if(o){const s=JSON.stringify(o);n("user",s);const t=e();t&&t.globalData&&(t.globalData.user=o)}}catch(s){throw console.error("保存用户信息失败:",s),s}}function f(o,s,t){try{if(console.log("保存认证信息:",{token:o?"exists":"missing",refreshToken:s?"exists":"missing",user:t?"exists":"missing"}),o&&(n("token",o),console.log("Token 已保存")),s&&(n("refreshToken",s),console.log("RefreshToken 已保存")),t){const o=JSON.stringify(t);n("user",o),console.log("用户信息已保存:",o)}const a=e();a&&a.globalData&&(a.globalData.token=o,a.globalData.user=t,a.globalData.loginTime=Date.now(),console.log("全局数据已更新")),console.log("认证信息保存成功")}catch(a){throw console.error("保存认证信息失败:",a),a}}function k(o=!0){return!!i()||(o&&s({title:"请先登录",icon:"none",duration:1500}),setTimeout(()=>{t({url:"/pages/login/login-page"})},o?1e3:0),!1)}async function D(){try{const o=new l;await o.Logout()}catch(o){console.error("登出接口调用失败:",o)}finally{!function(){r("token"),r("refreshToken"),r("user");const o=e();o&&o.globalData&&(o.globalData.token="",o.globalData.user=null)}(),a({url:"/pages/index/index"})}}export{g as a,u as b,c as g,i,D as l,k as r,f as s};

View File

@ -1 +0,0 @@
.page[data-v-28f49f3e]{min-height:100vh;background-color:#f3f4f8}.navbar[data-v-28f49f3e]{width:100%;padding-top:3.125rem;padding-bottom:.625rem;display:flex;flex-direction:row;align-items:center;justify-content:center;position:relative}.navbar .nav-back[data-v-28f49f3e]{position:absolute;left:1rem;width:2.5rem;height:1.5625rem;display:flex;align-items:center;justify-content:center}.navbar .nav-back .back-icon[data-v-28f49f3e]{width:1.5rem;height:1.5rem}.navbar .nav-title[data-v-28f49f3e]{font-size:1.0625rem;font-weight:500;color:#333}.qr-container[data-v-28f49f3e]{display:flex;justify-content:center;padding:1.875rem .9375rem}.qr-container .qr-box[data-v-28f49f3e]{width:18.75rem;height:18.75rem;background-color:#fff;border-radius:.625rem;display:flex;align-items:center;justify-content:center;padding:1.25rem;box-shadow:0 .125rem .625rem rgba(0,0,0,.08)}.qr-container .qr-box .qr-image[data-v-28f49f3e]{width:100%;height:100%}.qr-container .qr-box .qr-placeholder[data-v-28f49f3e]{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.qr-container .qr-box .qr-placeholder .placeholder-text[data-v-28f49f3e]{font-size:.875rem;color:#999}

View File

@ -1 +0,0 @@
.page[data-v-346730d6]{min-height:100vh;background-color:#f3f3f3}.header[data-v-346730d6]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-346730d6]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-346730d6]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}@keyframes flash-346730d6{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-346730d6]{animation:flash-346730d6 .5s ease-in-out 3}

View File

@ -1 +0,0 @@
.page[data-v-f8efa3f9]{min-height:100vh;background-color:#f3f3f3}.header[data-v-f8efa3f9]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-f8efa3f9]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-f8efa3f9]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}.date-item[data-v-f8efa3f9]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:2.5rem;padding:0 .3125rem;box-sizing:border-box}.date-text[data-v-f8efa3f9]{font-size:.875rem;color:#333}.date-placeholder[data-v-f8efa3f9]{color:#c0c4cc}@keyframes flash-f8efa3f9{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-f8efa3f9]{animation:flash-f8efa3f9 .5s ease-in-out 3}

View File

@ -1 +0,0 @@
.page[data-v-209f5882]{min-height:100vh;background-color:#f3f3f3}.header[data-v-209f5882]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-209f5882]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-209f5882]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}.date-item[data-v-209f5882]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:2.5rem;padding:0 .3125rem;box-sizing:border-box}.date-text[data-v-209f5882]{font-size:.875rem;color:#333}.date-placeholder[data-v-209f5882]{color:#c0c4cc}@keyframes flash-209f5882{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-209f5882]{animation:flash-209f5882 .5s ease-in-out 3}.person-row[data-v-209f5882]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding:.625rem .3125rem}.person-info[data-v-209f5882]{display:flex;flex-direction:column}.person-title[data-v-209f5882]{font-size:.875rem;color:#333;font-weight:500}.person-desc[data-v-209f5882]{font-size:.75rem;color:#999;margin-top:.1875rem}.person-counter[data-v-209f5882]{display:flex;flex-direction:row;align-items:center}.counter-btn[data-v-209f5882]{width:1.5625rem;height:1.5625rem;display:flex;align-items:center;justify-content:center;background-color:#bfbfbf;border-radius:.25rem}.counter-icon[data-v-209f5882]{font-size:.875rem;font-weight:700;line-height:1.5625rem;text-align:center;color:#fff}.counter-value[data-v-209f5882]{font-size:.875rem;color:#333;min-width:2.5rem;text-align:center}

View File

@ -1 +0,0 @@
const c="/static/ic_back.png";export{c as _};

View File

@ -1 +0,0 @@
const c="/static/ic_colse.png";export{c as _};

View File

@ -1 +0,0 @@
const t="/static/ic_notice.png";export{t as _};

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
.content[data-v-d420ee0b]{display:flex;min-height:100vh;background-color:#f3f4f8;flex-direction:column;overflow-y:auto}.swiper[data-v-d420ee0b]{width:100%;height:12.46688rem}.swiper-img[data-v-d420ee0b]{width:100%;height:100%}.service-text[data-v-d420ee0b]{font-size:.81031rem;margin-top:.25rem;font-weight:500;width:100%;text-align:center;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.4}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
.page[data-v-82efdc94]{min-height:100vh;background-color:#f3f3f3}.header[data-v-82efdc94]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-82efdc94]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-82efdc94]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}@keyframes flash-82efdc94{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-82efdc94]{animation:flash-82efdc94 .5s ease-in-out 3}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
.login-container[data-v-f67ad6c1]{display:flex;flex-direction:column;height:100vh;background-color:#f5f5f5}.header-row[data-v-f67ad6c1]{width:100%;margin-top:3.125rem;padding-bottom:.625rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.back-button[data-v-f67ad6c1]{width:2.5rem;height:1.5625rem;margin-left:1rem;display:flex;align-items:center;justify-content:center}.back-icon[data-v-f67ad6c1]{width:1.5rem;height:1.5rem}.logo-section[data-v-f67ad6c1]{display:flex;justify-content:center;padding:30px 20px 20px;flex:0 0 auto}.logo-section .logo-box[data-v-f67ad6c1]{width:140px;height:140px;border:2px solid #17a2b8;border-radius:16px;display:flex;align-items:center;justify-content:center;background-color:#fff;box-shadow:0 2px 8px rgba(23,162,184,.1);overflow:hidden}.logo-section .logo-box .logo-image[data-v-f67ad6c1]{width:100%;height:100%}.logo-section .logo-box .logo-text[data-v-f67ad6c1]{font-size:36px;color:#17a2b8;font-weight:600}.main-content[data-v-f67ad6c1]{flex:1;display:flex;flex-direction:column;justify-content:flex-end;padding:0 20px 40px}.login-button[data-v-f67ad6c1]{width:100%;height:50px;background-color:#17a2b8;color:#fff;border-radius:10px;font-size:16px;font-weight:600;border:none;margin-bottom:20px;box-shadow:0 3px 10px rgba(23,162,184,.2);transition:all .3s ease;display:flex;align-items:center;justify-content:center;line-height:50px;padding:0;text-align:center}.login-button[data-v-f67ad6c1]:active{background-color:#138496;box-shadow:0 2px 6px rgba(23,162,184,.15)}.login-button[data-v-f67ad6c1]:after{border:none}.agreement-section[data-v-f67ad6c1]{display:flex;align-items:center;justify-content:center}.agreement-section .agreement-label[data-v-f67ad6c1]{display:flex;align-items:center;font-size:13px;color:#666;line-height:1.8}.agreement-section .agreement-label .check-icon[data-v-f67ad6c1]{width:1.125rem;height:1.125rem;margin-right:.375rem;flex-shrink:0}.agreement-section .agreement-label .agreement-text[data-v-f67ad6c1]{padding-top:1px}.agreement-section .agreement-label .link-text[data-v-f67ad6c1]{color:#17a2b8;text-decoration:underline;font-weight:500}

View File

@ -1 +0,0 @@
.content[data-v-147d367c]{display:flex;height:100vh;background-color:#f3f4f8;flex-direction:column}.stats-row[data-v-147d367c]{display:flex;flex-direction:row;width:90%;margin:1.40625rem auto 0;justify-content:space-between;align-items:flex-start;min-height:3.125rem}.stats-item[data-v-147d367c]{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;flex:1;min-width:0;padding:0 .375rem}.stats-number[data-v-147d367c]{font-size:1.5rem;font-weight:700;color:#333;line-height:1.2}.stats-label[data-v-147d367c]{font-size:.75rem;color:#767676;margin-top:.375rem;text-align:center;word-wrap:break-word;word-break:break-word;white-space:normal;line-height:1.4;max-width:100%;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:visible}.stats-divider[data-v-147d367c]{width:.03125rem;height:1.875rem;background-color:#e0e0e0;flex-shrink:0;margin:.25rem .5rem 0}.unread-badge[data-v-147d367c]{min-width:1.125rem;height:1.125rem;padding:0 .375rem;background-color:#ff3b30;border-radius:.5625rem;font-size:.6875rem;color:#fff;display:flex;align-items:center;justify-content:center;margin-left:auto;margin-right:.625rem}.language-picker[data-v-147d367c]{background:white;border-radius:.625rem .625rem 0 0}.language-picker .picker-header[data-v-147d367c]{display:flex;align-items:center;justify-content:space-between;padding:1.25rem .9375rem .625rem;border-bottom:1px solid #f0f0f0}.language-picker .picker-header .picker-title[data-v-147d367c]{font-size:1.125rem;font-weight:700;color:#333}.language-picker .language-list[data-v-147d367c]{padding:.625rem 0}.language-picker .language-list .language-item[data-v-147d367c]{display:flex;align-items:center;justify-content:space-between;padding:.9375rem}.language-picker .language-list .language-item.active[data-v-147d367c]{background-color:#f8f9fa}.language-picker .language-list .language-item.active .language-name[data-v-147d367c]{color:#007aff;font-weight:500}.language-picker .language-list .language-item .language-name[data-v-147d367c]{font-size:1rem;color:#333}

View File

@ -1 +0,0 @@
.page[data-v-cffcea11]{min-height:100vh;background-color:#f3f3f3}.header[data-v-cffcea11]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-cffcea11]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-cffcea11]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}.date-item[data-v-cffcea11]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:2.5rem;padding:0 .3125rem;box-sizing:border-box}.date-text[data-v-cffcea11]{font-size:.875rem;color:#333}.date-placeholder[data-v-cffcea11]{color:#c0c4cc}@keyframes flash-cffcea11{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-cffcea11]{animation:flash-cffcea11 .5s ease-in-out 3}

View File

@ -1 +0,0 @@
.content[data-v-ba9e0216]{height:100vh;display:flex;flex-direction:column;background-color:#f5f7fa}.header[data-v-ba9e0216]{background-color:#fff}.header .status-bar[data-v-ba9e0216]{width:100%;background-color:#fff}.header .header-content[data-v-ba9e0216]{display:flex;align-items:center;justify-content:space-between;padding:.625rem 1rem}.header .back-button[data-v-ba9e0216]{width:1.875rem;height:1.875rem;display:flex;align-items:center;justify-content:center}.header .back-icon[data-v-ba9e0216]{width:1.25rem;height:1.25rem}.header .header-title[data-v-ba9e0216]{font-size:1.0625rem;font-weight:600;color:#333;flex:1;text-align:center}.header .header-placeholder[data-v-ba9e0216]{width:1.875rem}.tab-container[data-v-ba9e0216]{display:flex;flex-direction:row;padding:.75rem 1rem;background-color:#fff}.tab-item[data-v-ba9e0216]{padding:.4375rem 1.125rem;margin-right:.75rem;border-radius:1.125rem;border:.0625rem solid #E0E0E0;background-color:#fff}.tab-item.active[data-v-ba9e0216]{background-color:#e5fbff;border-color:#00a0bc}.tab-text[data-v-ba9e0216]{font-size:.875rem;color:#666}.tab-text.active[data-v-ba9e0216]{color:#00a0bc;font-weight:500}.appointment-list[data-v-ba9e0216]{flex:1;height:0;width:21.4375rem;margin:.75rem auto}.appointment-item[data-v-ba9e0216]{background-color:#fff;border-radius:.75rem;padding:1rem;margin-bottom:.75rem;box-shadow:0 .125rem .625rem rgba(0,0,0,.05)}.item-title[data-v-ba9e0216]{font-size:1rem;font-weight:600;color:#333;margin-bottom:.75rem}.item-row[data-v-ba9e0216]{display:flex;align-items:center;margin-bottom:.5rem}.item-icon[data-v-ba9e0216]{width:1.125rem;height:1.125rem;margin-right:.625rem}.item-text[data-v-ba9e0216]{font-size:.875rem;color:#666}.item-footer[data-v-ba9e0216]{display:flex;justify-content:space-between;align-items:center;margin-top:.75rem;padding-top:.75rem;border-top:.03125rem solid #F0F0F0}.view-detail[data-v-ba9e0216]{font-size:.875rem;color:#00a0bc}.status-text[data-v-ba9e0216]{font-size:.875rem;font-weight:500}.status-in-progress[data-v-ba9e0216]{color:#00a0bc}.status-completed[data-v-ba9e0216]{color:#ff6b6b}.status-cancelled[data-v-ba9e0216]{color:#999}.loading-more[data-v-ba9e0216]{padding:1.25rem;display:flex;justify-content:center}.loading-text[data-v-ba9e0216]{font-size:.8125rem;color:#999}.empty-state[data-v-ba9e0216]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:6.25rem}.empty-icon[data-v-ba9e0216]{font-size:3.75rem;opacity:.3;margin-bottom:.9375rem}.no-data[data-v-ba9e0216]{font-size:.875rem;color:#999}.detail-mask[data-v-ba9e0216]{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:999}.detail-popup[data-v-ba9e0216]{width:85%;max-height:70vh;background-color:#fff;border-radius:.75rem;overflow:hidden}.popup-header[data-v-ba9e0216]{display:flex;align-items:center;justify-content:center;padding:1.125rem 1rem;border-bottom:.03125rem solid #F0F0F0;background-color:#fff;position:relative}.popup-title[data-v-ba9e0216]{font-size:1.0625rem;font-weight:600;color:#333}.popup-close[data-v-ba9e0216]{position:absolute;right:1rem;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center}.close-icon[data-v-ba9e0216]{width:1.125rem;height:1.125rem}.popup-content[data-v-ba9e0216]{max-height:60vh;padding:0 1.25rem 1.25rem}.detail-item[data-v-ba9e0216]{padding:.875rem 0;border-bottom:.03125rem solid #F5F5F5}.detail-item[data-v-ba9e0216]:last-child{border-bottom:none}.detail-label[data-v-ba9e0216]{font-size:.9375rem;font-weight:600;color:#333;display:block;margin-bottom:.375rem}.detail-value[data-v-ba9e0216]{font-size:.875rem;color:#666;display:block;line-height:1.6;word-break:break-all;white-space:pre-wrap}

View File

@ -1 +0,0 @@
.content[data-v-a192f984]{height:100vh;display:flex;flex-direction:column;background-color:#f3f3f3}.header-row[data-v-a192f984]{width:100%;margin-top:3.125rem;padding-bottom:.625rem;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.back-button[data-v-a192f984]{width:2.5rem;height:1.5625rem;margin-left:1rem;display:flex;align-items:center;justify-content:center}.back-icon[data-v-a192f984]{width:1.5rem;height:1.5rem}.title[data-v-a192f984]{font-size:1.125rem;font-weight:500;color:#333}.mark-read-btn[data-v-a192f984]{width:2.5rem;margin-right:1rem;display:flex;justify-content:flex-end}.mark-read-text[data-v-a192f984]{font-size:.75rem;color:#00a0bc}.tab-container[data-v-a192f984]{display:flex;flex-direction:row;padding:0 .75rem .75rem}.tab-item[data-v-a192f984]{flex:1;display:flex;align-items:center;justify-content:center;padding:.5rem 0;position:relative;margin:0 .25rem;border-radius:1.5625rem;border:.0625rem solid transparent}.tab-item.active[data-v-a192f984]{background-color:#e5fbff;border-color:#00a0bc}.tab-text[data-v-a192f984]{font-size:.8125rem;color:#666}.tab-text.active[data-v-a192f984]{color:#00a0bc;font-weight:500}.badge[data-v-a192f984]{position:absolute;top:.25rem;right:.125rem;min-width:1rem;height:1rem;padding:0 .25rem;background-color:#ff3b30;border-radius:.5rem;font-size:.625rem;color:#fff;display:flex;align-items:center;justify-content:center}.notification-list[data-v-a192f984]{flex:1;height:0}.notification-item[data-v-a192f984]{width:21.4375rem;background-color:#fff;border-radius:.625rem;padding:1.125rem 1rem;margin:0 auto .75rem;box-shadow:0 .0625rem .5rem rgba(0,0,0,.08);box-sizing:border-box}.notification-item.unread[data-v-a192f984]{background-color:#fff}.item-header[data-v-a192f984]{display:flex;flex-direction:row;align-items:center;margin-bottom:.5rem}.item-title[data-v-a192f984]{font-size:1rem;font-weight:500;color:#333;flex:1}.unread-dot[data-v-a192f984]{width:.375rem;height:.375rem;background-color:#ff3b30;border-radius:50%;margin-left:.5rem;flex-shrink:0}.item-content[data-v-a192f984]{font-size:.875rem;color:#666;line-height:1.7;display:block;margin-bottom:.5rem}.item-time[data-v-a192f984]{font-size:.75rem;color:#999;display:block}.loading-more[data-v-a192f984]{padding:1.25rem;display:flex;justify-content:center}.loading-text[data-v-a192f984]{font-size:.8125rem;color:#999}.empty-state[data-v-a192f984]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:6.25rem}.empty-icon[data-v-a192f984]{width:6.25rem;height:6.25rem;opacity:.3;margin-bottom:1.25rem}.no-data[data-v-a192f984]{font-size:.875rem;color:#999}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{_ as e,z as a,m as t,C as s,n as i,a as r,s as n,o,c,w as l,i as g,e as d,f as u,t as p,b as m,d as h,F as y,h as v,A as f,B as _,g as k}from"./index-a09151d6.js";import{u as x}from"./tabbar-i18n.82cae040.js";import{A as C}from"./AppServer.888fd24d.js";import{i as S}from"./auth.b970b80f.js";const I=e({data:()=>({currentIndex:0,currentCategoryKey:null,categories:[],services:[],loading:!1,currentLanguage:"zh"}),onLoad(){this.currentLanguage=a("language")||"zh",this.loadCategories()},onShow(){x(this),this.checkUnreadNotifications()},methods:{async loadCategories(){try{const e=new C,a=await e.GetCategories({language:this.currentLanguage});console.log("分类列表响应:",a),0===a.code&&a.data?(this.categories=a.data.categories||a.data||[],this.categories.length>0&&(this.currentIndex=0,this.currentCategoryKey=this.categories[0].key,this.loadServices(this.currentCategoryKey))):(console.error("获取分类失败:",a.message),t({title:a.message||"获取分类失败",icon:"none"}))}catch(e){console.error("加载分类异常:",e),t({title:"加载分类失败",icon:"none"})}},async loadServices(e){this.loading=!0;try{const a=new C,t={language:this.currentLanguage};e&&(t.categoryKey=e);const s=await a.GetServices(t);console.log("服务列表响应:",s),0===s.code&&s.data?this.services=s.data.services||s.data||[]:(console.error("获取服务失败:",s.message),this.services=[])}catch(a){console.error("加载服务异常:",a),this.services=[]}finally{this.loading=!1}},clickType(e,a){this.currentIndex=e,this.currentCategoryKey=a,this.loadServices(a)},getCategoryName:e=>e&&e.name||"",getServiceName:e=>e&&e.title||"",getImageUrl(e){if(!e)return"";if(e.startsWith("http"))return e;return`${s.API_BASE_URL||"http://localhost:3000"}${e}`},goToServiceDetail(e){const a={flight:"airfare-info-entry-page",hotel:"hotel-reservation-page",lounge:"vip-lounge-page",airport_transfer:"airport-transfer-page",unaccompanied_minor:"unaccompanied-minor-page",rail_ticket:"rail-ticket-page",medical_consultation:"medical-consultation-page",special_passenger:"special-needs-page",pet_transportation:"pet-transportation-page",guide_translation:"guide-translation-page",visa_consultation:"visa-consultation-page",exhibition_service:"exhibition-service-page",air_logistics:"air-logistics-page",sea_freight:"sea-freight-page",travel_planning:"travel-planning-page",insurance_consultation:"insurance-consultation-page"}[e.serviceType];if(a){const t=this.getServiceName(e);i({url:`/pages/appointment/${a}?id=${e.id}&title=${encodeURIComponent(t)}`})}else t({title:this.$t("common.serviceNotAvailable")||"该服务暂未开放预约",icon:"none"})},handleImageError(e){console.error("图片加载失败:",e.image),e.image=null},async checkUnreadNotifications(){if(S())try{const e=new C,a=await e.GetNotificationUnreadCount();if(0===a.code&&a.data){const e=a.data.all||0;e>0?n({index:2,text:e>99?"99+":String(e)}):r({index:2})}}catch(e){console.error("检查未读通知失败:",e)}else r({index:2})}}},[["render",function(e,a,t,s,i,r){const n=g,x=v,C=k;return o(),c(n,{class:"content"},{default:l(()=>[d(n,{class:"header-title"},{default:l(()=>[u(p(e.$t("appointment.allServices")),1)]),_:1}),d(n,{class:"divider"}),d(n,{class:"main-container"},{default:l(()=>[d(n,{class:"category-sidebar"},{default:l(()=>[(o(!0),m(y,null,h(i.categories,(e,a)=>(o(),c(n,{class:f(["category-item",{"category-item-active":i.currentIndex===a}]),key:e.key,onClick:t=>r.clickType(a,e.key)},{default:l(()=>[i.currentIndex===a?(o(),c(n,{key:0,class:"category-indicator"})):_("",!0),d(x,{class:"category-text"},{default:l(()=>[u(p(r.getCategoryName(e)),1)]),_:2},1024)]),_:2},1032,["onClick","class"]))),128))]),_:1}),d(n,{class:"divider-vertical"}),d(n,{class:"service-list"},{default:l(()=>[i.loading?(o(),c(n,{key:0,class:"loading-container"},{default:l(()=>[d(x,{class:"loading-text"},{default:l(()=>[u(p(e.$t("common.loading")||"加载中..."),1)]),_:1})]),_:1})):i.services.length>0?(o(),c(n,{key:1,class:"service-items"},{default:l(()=>[(o(!0),m(y,null,h(i.services,e=>(o(),c(n,{class:"service-item",key:e.key,onClick:a=>r.goToServiceDetail(e)},{default:l(()=>[d(n,{class:"service-image-wrapper"},{default:l(()=>[e.image?(o(),c(C,{key:0,src:r.getImageUrl(e.image),class:"service-image",mode:"aspectFill",onError:a=>r.handleImageError(e)},null,8,["src","onError"])):(o(),c(n,{key:1,class:"service-image-placeholder"},{default:l(()=>[d(x,{class:"placeholder-icon"},{default:l(()=>[u("📷")]),_:1})]),_:1}))]),_:2},1024),d(x,{class:"service-title"},{default:l(()=>[u(p(r.getServiceName(e)),1)]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})):(o(),c(n,{key:2,class:"empty-container"},{default:l(()=>[d(x,{class:"empty-text"},{default:l(()=>[u(p(e.$t("common.noData")||"暂无服务"),1)]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-d074112a"]]);export{I as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{_ as e,r as t,C as a,l as i,n as o,m as r,o as s,c as n,w as l,i as c,e as d,f as p,t as g,g as h,h as m}from"./index-a09151d6.js";import{_ as u}from"./ic_back.5440bd15.js";const f=e({data:()=>({id:"",title:"",detailImage:"",serviceType:"",loading:!0}),onLoad(e){this.id=e.id||"",this.title=decodeURIComponent(e.title||""),this.serviceType=decodeURIComponent(e.serviceType||""),this.id?this.loadHotServiceDetail():this.loading=!1},methods:{async loadHotServiceDetail(){var e;try{t({url:a.API_BASE_URL+"/api/v1/home/hot-services",method:"GET",header:{"Accept-Language":(null==(e=this.$i18n)?void 0:e.locale)||"zh"},success:e=>{if(200===e.statusCode&&0===e.data.code){const t=e.data.data.find(e=>e.id==this.id);t&&t.detail_image&&(this.detailImage=a.getImageUrl(t.detail_image))}this.loading=!1},fail:e=>{console.error("加载热门服务详情失败:",e),this.loading=!1}})}catch(i){console.error("加载热门服务详情失败:",i),this.loading=!1}},handleImageError(e){console.error("详情图片加载失败:",e),this.detailImage=""},back(){i({delta:1,animationType:"slide-out-right",animationDuration:300})},toEntry(){const e={flight:"airfare-info-entry-page",hotel:"hotel-reservation-page",lounge:"vip-lounge-page",airport_transfer:"airport-transfer-page",unaccompanied_minor:"unaccompanied-minor-page",rail_ticket:"rail-ticket-page",medical_consultation:"medical-consultation-page",special_passenger:"special-needs-page",pet_transportation:"pet-transportation-page",guide_translation:"guide-translation-page",visa_consultation:"visa-consultation-page",exhibition_service:"exhibition-service-page",air_logistics:"air-logistics-page",sea_freight:"sea-freight-page",travel_planning:"travel-planning-page",insurance_consultation:"insurance-consultation-page"}[this.serviceType];e?o({url:"/pages/appointment/"+e+"?id="+this.id+"&title="+encodeURIComponent(this.title)}):r({title:"该服务暂未开放预约",icon:"none"})}}},[["render",function(e,t,a,i,o,r){const f=h,_=c,y=m;return s(),n(_,{class:"content"},{default:l(()=>[d(_,{class:"row",style:{width:"100%","margin-top":"100rpx","align-items":"center","justify-content":"space-between"}},{default:l(()=>[d(_,{class:"center",style:{width:"50rpx",height:"50rpx","margin-left":"32rpx"}},{default:l(()=>[d(f,{src:u,onClick:r.back,style:{width:"48rpx",height:"48rpx"},mode:""},null,8,["onClick"])]),_:1}),d(y,{style:{"font-size":"30rpx"}},{default:l(()=>[p(g(o.title),1)]),_:1}),d(_,{style:{width:"50rpx","margin-right":"32rpx"}})]),_:1}),d(_,{class:"",style:{width:"100%",flex:"1","overflow-y":"auto","margin-top":"28rpx"}},{default:l(()=>[o.detailImage?(s(),n(f,{key:0,src:o.detailImage,style:{width:"100%"},mode:"widthFix",onError:r.handleImageError},null,8,["src","onError"])):(s(),n(_,{key:1,class:"center",style:{width:"100%",height:"400rpx","background-color":"#f5f5f5"}},{default:l(()=>[d(y,{style:{color:"#999"}},{default:l(()=>[p(g(o.loading?e.$t("common.loading"):"暂无详情图片"),1)]),_:1})]),_:1}))]),_:1}),d(_,{class:"center",onClick:t[0]||(t[0]=e=>r.toEntry()),style:{width:"600rpx",height:"92rpx","background-color":"#1DB6D1",position:"fixed",bottom:"54rpx","border-radius":"10rpx","font-size":"32rpx",color:"white"}},{default:l(()=>[p(g(e.$t("reserveDetails.reserve")),1)]),_:1})]),_:1})}],["__scopeId","data-v-24733327"]]);export{f as default};

View File

@ -1 +0,0 @@
import{_ as e,k as o,l as a,m as s,p as t,q as i,u as n,n as l,C as c,o as r,c as g,w as d,v as u,i as h,e as m,f,t as p,x as k,g as T,h as _,y as L}from"./index-a09151d6.js";import{A as C}from"./AppServer.888fd24d.js";import{s as y}from"./auth.b970b80f.js";import{_ as b}from"./ic_back.5440bd15.js";const x=e({data:()=>({isLoading:!1,agreeToTerms:!1,statusBarHeight:0,appLogo:""}),onLoad(){const e=o();this.statusBarHeight=e.statusBarHeight||0,this.loadConfig()},methods:{back(){a({delta:1})},async handleWechatLogin(){if(!this.isLoading)if(this.agreeToTerms){this.isLoading=!0;try{const e=await this.getWechatLoginCode();if(console.log("微信登录 code:",e),!e||!e.code)return s({title:this.$t("login.wechatLoginFailed"),icon:"none"}),void(this.isLoading=!1);const o=new C,a=await o.WechatLogin(e.code);if(console.log("登录接口返回:",a),!a)return console.error("登录接口无响应"),s({title:this.$t("login.loginFailed"),icon:"none"}),void(this.isLoading=!1);if(0!==a.code)return console.error("登录失败code:",a.code,"message:",a.message),s({title:a.message||this.$t("login.loginFailed"),icon:"none"}),void(this.isLoading=!1);if(!a.data||!a.data.token)return console.error("Token 数据缺失:",a.data),s({title:this.$t("login.loginFailed"),icon:"none"}),void(this.isLoading=!1);console.log("登录成功,保存认证信息");const t="Bearer "+a.data.token;y(t,a.data.refreshToken,a.data.user),s({title:this.$t("login.loginSuccess")||"登录成功",icon:"success",duration:1500}),setTimeout(()=>{this.redirectToHome()},500)}catch(e){console.error("登录异常:",e),console.error("错误堆栈:",e.stack),s({title:this.$t("login.loginError")+": "+(e.message||""),icon:"none",duration:3e3})}finally{this.isLoading=!1}}else s({title:this.$t("login.mustAgreeToTerms"),icon:"none"})},getWechatLoginCode:()=>new Promise((e,o)=>{t({provider:"weixin",success:o=>{e(o)},fail:e=>{console.error("uni.login 失败:",e),o(e)}})}),redirectToHome(){const e=u();e.globalData&&(e.globalData.shouldRefresh=!0,e.globalData.loginTime=Date.now()),i({url:"/pages/index/index",success:()=>{console.log("登录成功,已跳转到首页")},fail:e=>{console.error("跳转首页失败:",e),n({url:"/pages/index/index"})}})},toggleAgreement(){this.agreeToTerms=!this.agreeToTerms},goToUserAgreement(){l({url:"/pages/me/user-agreement-page"})},goToPrivacyPolicy(){l({url:"/pages/me/privacy-policy-page"})},async loadConfig(){try{const e=await c.getPublicConfig();e.app_logo&&(this.appLogo=c.getImageUrl(e.app_logo))}catch(e){console.error("加载配置失败:",e)}}}},[["render",function(e,o,a,s,t,i){const n=T,l=h,c=_,u=L;return r(),g(l,{class:"login-container"},{default:d(()=>[m(l,{class:"header-row"},{default:d(()=>[m(l,{class:"back-button",onClick:i.back},{default:d(()=>[m(n,{src:b,class:"back-icon"})]),_:1},8,["onClick"]),m(c,{class:"title"},{default:d(()=>[f(p(e.$t("login.title")),1)]),_:1}),m(l,{class:"back-button",onClick:e.markAllRead},null,8,["onClick"])]),_:1}),m(l,{class:"logo-section"},{default:d(()=>[m(l,{class:"logo-box"},{default:d(()=>[t.appLogo?(r(),g(n,{key:0,src:t.appLogo,class:"logo-image",mode:"aspectFit"},null,8,["src"])):(r(),g(c,{key:1,class:"logo-text"},{default:d(()=>[f("LOGO")]),_:1}))]),_:1})]),_:1}),m(l,{class:"main-content"},{default:d(()=>[m(u,{class:"login-button",onClick:i.handleWechatLogin,loading:t.isLoading},{default:d(()=>[f(p(e.$t("login.oneClickLogin")),1)]),_:1},8,["onClick","loading"]),m(l,{class:"agreement-section"},{default:d(()=>[m(l,{class:"agreement-label",onClick:i.toggleAgreement},{default:d(()=>[m(n,{src:t.agreeToTerms?"/static/ic_checked.png":"/static/ic_check.png",class:"check-icon"},null,8,["src"]),m(c,{class:"agreement-text"},{default:d(()=>[f(p(e.$t("login.agreeToTerms"))+" ",1),m(c,{class:"link-text",onClick:k(i.goToUserAgreement,["stop"])},{default:d(()=>[f(p(e.$t("login.userAgreement")),1)]),_:1},8,["onClick"]),f(" "+p(e.$t("login.and"))+" ",1),m(c,{class:"link-text",onClick:k(i.goToPrivacyPolicy,["stop"])},{default:d(()=>[f(p(e.$t("login.privacyPolicy")),1)]),_:1},8,["onClick"])]),_:1})]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-f67ad6c1"]]);export{x as default};

View File

@ -1 +0,0 @@
import{_ as a,l as s,C as o,o as e,c as t,w as l,i as c,e as i,f as n,t as g,B as p,g as r,h as d}from"./index-a09151d6.js";import{_ as u}from"./ic_back.5440bd15.js";const m=a({data:()=>({appLogo:"",appName:"",aboutUsImage:"",version:"1.0.0",loading:!0}),onLoad(){this.loadConfig()},methods:{goBack(){s()},async loadConfig(){try{this.loading=!0;const a=await o.getPublicConfig();a.app_logo&&(this.appLogo=o.getImageUrl(a.app_logo)),a.app_name&&(this.appName=a.app_name),a.about_us_image&&(this.aboutUsImage=o.getImageUrl(a.about_us_image))}catch(a){console.error("加载配置失败:",a)}finally{this.loading=!1}}}},[["render",function(a,s,o,m,_,f){const b=r,h=c,k=d;return e(),t(h,{class:"page"},{default:l(()=>[i(h,{class:"navbar"},{default:l(()=>[i(h,{class:"nav-back",onClick:f.goBack},{default:l(()=>[i(b,{src:u,class:"back-icon",mode:"aspectFit"})]),_:1},8,["onClick"]),i(k,{class:"nav-title"},{default:l(()=>[n(g(a.$t("me.about")),1)]),_:1})]),_:1}),i(h,{class:"logo-container"},{default:l(()=>[i(h,{class:"logo-box"},{default:l(()=>[_.appLogo?(e(),t(b,{key:0,src:_.appLogo,class:"logo-image",mode:"aspectFit"},null,8,["src"])):(e(),t(k,{key:1,class:"logo-placeholder"},{default:l(()=>[n("LOGO")]),_:1}))]),_:1}),i(k,{class:"version-text"},{default:l(()=>[n(g(_.appName),1)]),_:1}),i(k,{class:"version-number"},{default:l(()=>[n("v"+g(_.version),1)]),_:1})]),_:1}),_.aboutUsImage?(e(),t(h,{key:0,class:"about-image-container"},{default:l(()=>[i(b,{src:_.aboutUsImage,class:"about-image",mode:"widthFix"},null,8,["src"])]),_:1})):p("",!0)]),_:1})}],["__scopeId","data-v-b9c450e3"]]);export{m as default};

View File

@ -1 +0,0 @@
import{_ as a,l as s,C as e,o as t,c,w as l,i as o,e as r,f as n,t as i,g as d,h as g}from"./index-a09151d6.js";import{_ as m}from"./ic_back.5440bd15.js";const f=a({data:()=>({qrImageUrl:"",loading:!0}),onLoad(){this.loadQrImage()},methods:{goBack(){s()},async loadQrImage(){try{this.loading=!0;const a=await e.getPublicConfig();a.contact_qr_image&&(this.qrImageUrl=e.getImageUrl(a.contact_qr_image))}catch(a){console.error("加载二维码失败:",a)}finally{this.loading=!1}}}},[["render",function(a,s,e,f,_,u){const q=d,h=o,k=g;return t(),c(h,{class:"page"},{default:l(()=>[r(h,{class:"navbar"},{default:l(()=>[r(h,{class:"nav-back",onClick:u.goBack},{default:l(()=>[r(q,{src:m,class:"back-icon",mode:"aspectFit"})]),_:1},8,["onClick"]),r(k,{class:"nav-title"},{default:l(()=>[n(i(a.$t("me.contactUs")),1)]),_:1})]),_:1}),r(h,{class:"qr-container"},{default:l(()=>[r(h,{class:"qr-box"},{default:l(()=>[_.qrImageUrl?(t(),c(q,{key:0,src:_.qrImageUrl,class:"qr-image",mode:"aspectFit"},null,8,["src"])):(t(),c(h,{key:1,class:"qr-placeholder"},{default:l(()=>[r(k,{class:"placeholder-text"},{default:l(()=>[n(i(_.loading?"加载中...":"暂无二维码"),1)]),_:1})]),_:1}))]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-28f49f3e"]]);export{f as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{_ as a,l as t,C as s,o as c,c as n,w as o,i as e,e as l,f as i,t as d,g as r,h as f}from"./index-a09151d6.js";import{_}from"./ic_back.5440bd15.js";const u=a({data:()=>({content:"",loading:!0}),onLoad(){this.loadContent()},methods:{goBack(){t()},async loadContent(){try{this.loading=!0;const a=await s.getPublicConfig();this.content=a.privacy_policy||""}catch(a){console.error("加载隐私政策失败:",a)}finally{this.loading=!1}}}},[["render",function(a,t,s,u,g,y){const k=r,p=e,m=f;return c(),n(p,{class:"page"},{default:o(()=>[l(p,{class:"navbar"},{default:o(()=>[l(p,{class:"nav-back",onClick:y.goBack},{default:o(()=>[l(k,{src:_,class:"back-icon",mode:"aspectFit"})]),_:1},8,["onClick"]),l(m,{class:"nav-title"},{default:o(()=>[i(d(a.$t("me.privacyPolicy")),1)]),_:1})]),_:1}),l(p,{class:"content-container"},{default:o(()=>[l(p,{class:"content-box"},{default:o(()=>[g.loading?(c(),n(m,{key:0,class:"loading-text"},{default:o(()=>[i("加载中...")]),_:1})):g.content?(c(),n(m,{key:2,class:"content-text"},{default:o(()=>[i(d(g.content),1)]),_:1})):(c(),n(m,{key:1,class:"empty-text"},{default:o(()=>[i("暂无内容")]),_:1}))]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-177ac736"]]);export{u as default};

View File

@ -1 +0,0 @@
import{_ as a,k as e,C as s,$ as t,L as o,m as l,M as r,l as n,o as c,c as i,w as d,i as f,e as m,a1 as u,f as h,t as v,h as g,g as p,a2 as k,y as _}from"./index-a09151d6.js";import{A as y}from"./AppServer.888fd24d.js";import{b as I,a as U}from"./auth.b970b80f.js";const b=a({data:()=>({statusBarHeight:0,userInfo:{},form:{avatar:"",nickname:""},saving:!1}),onLoad(){const a=e();this.statusBarHeight=a.statusBarHeight||0,this.loadUserInfo()},methods:{loadUserInfo(){const a=I();a&&(this.userInfo=a,this.form={avatar:s.getImageUrl(a.avatar)||"",nickname:a.nickname||""}),this.fetchUserProfile()},async fetchUserProfile(){try{const a=new y,e=await a.GetUserProfile();0===e.code&&e.data&&(this.userInfo=e.data,this.form={avatar:s.getImageUrl(e.data.avatar)||"",nickname:e.data.nickname||""},U(e.data))}catch(a){console.error("获取用户信息失败:",a)}},chooseAvatar(){t({count:1,sizeType:["compressed"],sourceType:["album","camera"],success:a=>{const e=a.tempFilePaths[0];this.uploadAvatar(e)}})},async uploadAvatar(a){o({title:"上传中...",mask:!0});try{const e=new y,t=await e.UploadImage(a);if(0!==t.code||!t.data)throw new Error(t.message||"上传失败");this.form.avatar=s.getImageUrl(t.data.url),l({title:"头像上传成功",icon:"success"})}catch(e){console.error("上传头像失败:",e),l({title:"上传失败",icon:"none"})}finally{r()}},async handleSave(){if(this.form.nickname&&this.form.nickname.trim()){this.saving=!0;try{const a=new y,e={nickname:this.form.nickname.trim(),avatar:this.form.avatar},s=await a.UpdateUserProfile(e);if(0!==s.code)throw new Error(s.message||"保存失败");{const a={...this.userInfo,...e};U(a),l({title:"保存成功",icon:"success"}),setTimeout(()=>{this.goBack()},1e3)}}catch(a){console.error("保存失败:",a),l({title:a.message||"保存失败",icon:"none"})}finally{this.saving=!1}}else l({title:"请输入昵称",icon:"none"})},goBack(){n()}}},[["render",function(a,e,s,t,o,l){const r=f,n=g,y=p,I=k,U=_;return c(),i(r,{class:"container"},{default:d(()=>[m(r,{class:"header"},{default:d(()=>[m(r,{class:"status-bar",style:u({height:o.statusBarHeight+"px"})},null,8,["style"]),m(r,{class:"header-content"},{default:d(()=>[m(r,{class:"back-button",onClick:l.goBack},{default:d(()=>[m(n,{class:"back-icon"},{default:d(()=>[h("")]),_:1})]),_:1},8,["onClick"]),m(n,{class:"header-title"},{default:d(()=>[h(v(a.$t("profile.title")||"个人资料"),1)]),_:1}),m(r,{class:"header-placeholder"})]),_:1})]),_:1}),m(r,{class:"content"},{default:d(()=>[m(r,{class:"avatar-section"},{default:d(()=>[m(r,{class:"avatar-wrapper"},{default:d(()=>[m(y,{src:o.form.avatar||"/static/default-avatar.png",class:"avatar",mode:"aspectFill",onClick:l.chooseAvatar},null,8,["src","onClick"]),m(r,{class:"avatar-edit-icon"},{default:d(()=>[m(n,{class:"edit-icon"},{default:d(()=>[h("✏️")]),_:1})]),_:1})]),_:1})]),_:1}),m(r,{class:"form-section"},{default:d(()=>[m(r,{class:"form-item"},{default:d(()=>[m(n,{class:"form-label"},{default:d(()=>[h(v(a.$t("profile.nickname")||"昵称"),1)]),_:1}),m(I,{modelValue:o.form.nickname,"onUpdate:modelValue":e[0]||(e[0]=a=>o.form.nickname=a),class:"form-input",placeholder:a.$t("profile.nicknamePlaceholder")||"请输入昵称",maxlength:"20"},null,8,["modelValue","placeholder"])]),_:1}),m(r,{class:"form-item readonly"},{default:d(()=>[m(n,{class:"form-label"},{default:d(()=>[h("UID")]),_:1}),m(n,{class:"form-value"},{default:d(()=>[h(v(o.userInfo.uid||"-"),1)]),_:1})]),_:1})]),_:1}),m(r,{class:"button-section"},{default:d(()=>[m(U,{class:"save-button",onClick:l.handleSave,loading:o.saving,disabled:o.saving},{default:d(()=>[h(v(a.$t("common.save")||"保存"),1)]),_:1},8,["onClick","loading","disabled"])]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-9ea70e68"]]);export{b as default};

View File

@ -1 +0,0 @@
import{_ as a,l as t,C as e,o as s,c as n,w as o,i as c,e as l,f as d,t as i,g as r,h as f}from"./index-a09151d6.js";import{_ as u}from"./ic_back.5440bd15.js";const _=a({data:()=>({content:"",loading:!0}),onLoad(){this.loadContent()},methods:{goBack(){t()},async loadContent(){try{this.loading=!0;const a=await e.getPublicConfig();this.content=a.user_agreement||""}catch(a){console.error("加载用户协议失败:",a)}finally{this.loading=!1}}}},[["render",function(a,t,e,_,g,k){const m=r,b=c,h=f;return s(),n(b,{class:"page"},{default:o(()=>[l(b,{class:"navbar"},{default:o(()=>[l(b,{class:"nav-back",onClick:k.goBack},{default:o(()=>[l(m,{src:u,class:"back-icon",mode:"aspectFit"})]),_:1},8,["onClick"]),l(h,{class:"nav-title"},{default:o(()=>[d(i(a.$t("me.userAgreement")),1)]),_:1})]),_:1}),l(b,{class:"content-container"},{default:o(()=>[l(b,{class:"content-box"},{default:o(()=>[g.loading?(s(),n(h,{key:0,class:"loading-text"},{default:o(()=>[d("加载中...")]),_:1})):g.content?(s(),n(h,{key:2,class:"content-text"},{default:o(()=>[d(i(g.content),1)]),_:1})):(s(),n(h,{key:1,class:"empty-text"},{default:o(()=>[d("暂无内容")]),_:1}))]),_:1})]),_:1})]),_:1})}],["__scopeId","data-v-fd3ffbc1"]]);export{_ as default};

View File

@ -1 +0,0 @@
import{_ as e,z as a,m as s,l as t,C as r,n as i,o,c as l,w as c,i as n,e as d,f as g,t as u,h as m,g as v,y as h}from"./index-a09151d6.js";import{A as f}from"./AppServer.888fd24d.js";const p=e({data:()=>({serviceKey:"",service:null,loading:!1,currentLanguage:"zh"}),onLoad(e){e.key?(this.serviceKey=e.key,this.currentLanguage=a("language")||"zh",this.loadServiceDetail()):(s({title:"服务Key缺失",icon:"none"}),setTimeout(()=>{t()},1500))},methods:{async loadServiceDetail(){this.loading=!0;try{const e=new f,a=await e.GetServiceByKey(this.serviceKey,this.currentLanguage);console.log("服务详情响应:",a),0===a.code&&a.data?this.service=a.data:(console.error("获取服务详情失败:",a.message),s({title:a.message||"获取服务详情失败",icon:"none"}),this.service=null)}catch(e){console.error("加载服务详情异常:",e),s({title:"加载失败",icon:"none"}),this.service=null}finally{this.loading=!1}},getServiceName:e=>e&&e.title||"",getServiceDescription:e=>e&&e.description||"",getImageUrl(e){if(!e)return"";if(e.startsWith("http"))return e;return`${r.API_BASE_URL||"http://localhost:3000"}${e}`},handleBook(){this.service&&i({url:`/pages/booking-form/booking-form?serviceId=${this.serviceId}`})},handleImageError(){console.error("图片加载失败:",this.service.image),this.service.image=null}}},[["render",function(e,a,s,t,r,i){const f=m,p=n,_=v,y=h;return o(),l(p,{class:"container"},{default:c(()=>[r.loading?(o(),l(p,{key:0,class:"loading-container"},{default:c(()=>[d(f,{class:"loading-text"},{default:c(()=>[g(u(e.$t("common.loading")||"加载中..."),1)]),_:1})]),_:1})):r.service?(o(),l(p,{key:1,class:"content"},{default:c(()=>[d(p,{class:"service-image-wrapper"},{default:c(()=>[r.service.image?(o(),l(_,{key:0,src:i.getImageUrl(r.service.image),class:"service-image",mode:"aspectFill",onError:i.handleImageError},null,8,["src","onError"])):(o(),l(p,{key:1,class:"service-image-placeholder"},{default:c(()=>[d(f,{class:"placeholder-icon"},{default:c(()=>[g("📷")]),_:1}),d(f,{class:"placeholder-text"},{default:c(()=>[g("暂无图片")]),_:1})]),_:1}))]),_:1}),d(p,{class:"service-info"},{default:c(()=>[d(f,{class:"service-name"},{default:c(()=>[g(u(i.getServiceName(r.service)),1)]),_:1}),d(f,{class:"service-description"},{default:c(()=>[g(u(i.getServiceDescription(r.service)),1)]),_:1})]),_:1}),d(p,{class:"action-bar"},{default:c(()=>[d(y,{class:"book-button",onClick:i.handleBook},{default:c(()=>[g(u(e.$t("appointment.bookNow")||"立即预约"),1)]),_:1},8,["onClick"])]),_:1})]),_:1})):(o(),l(p,{key:2,class:"error-container"},{default:c(()=>[d(f,{class:"error-text"},{default:c(()=>[g(u(e.$t("common.loadFailed")||"加载失败"),1)]),_:1}),d(y,{class:"retry-button",onClick:i.loadServiceDetail},{default:c(()=>[g(u(e.$t("common.retry")||"重试"),1)]),_:1},8,["onClick"])]),_:1}))]),_:1})}],["__scopeId","data-v-851e2374"]]);export{p as default};

View File

@ -1 +0,0 @@
.page[data-v-5b1bc6dd]{min-height:100vh;background-color:#f3f3f3}.header[data-v-5b1bc6dd]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-5b1bc6dd]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-5b1bc6dd]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}.date-item[data-v-5b1bc6dd]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:2.5rem;padding:0 .3125rem;box-sizing:border-box}.date-text[data-v-5b1bc6dd]{font-size:.875rem;color:#333}.date-placeholder[data-v-5b1bc6dd]{color:#c0c4cc}@keyframes flash-5b1bc6dd{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-5b1bc6dd]{animation:flash-5b1bc6dd .5s ease-in-out 3}

View File

@ -1 +0,0 @@
.page[data-v-177ac736]{height:100vh;background-color:#f3f4f8;display:flex;flex-direction:column;overflow:hidden}.navbar[data-v-177ac736]{width:100%;padding-top:3.125rem;padding-bottom:.625rem;display:flex;flex-direction:row;align-items:center;justify-content:center;position:relative;background-color:#fff;flex-shrink:0}.navbar .nav-back[data-v-177ac736]{position:absolute;left:1rem;width:2.5rem;height:1.5625rem;display:flex;align-items:center;justify-content:center}.navbar .nav-back .back-icon[data-v-177ac736]{width:1.5rem;height:1.5rem}.navbar .nav-title[data-v-177ac736]{font-size:1.0625rem;font-weight:500;color:#333}.content-container[data-v-177ac736]{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.content-box[data-v-177ac736]{padding:.9375rem;background-color:#fff;margin:.625rem;border-radius:.5rem;min-height:6.25rem}.content-text[data-v-177ac736]{font-size:.875rem;color:#333;line-height:1.8;white-space:pre-wrap;word-break:break-all}.loading-text[data-v-177ac736],.empty-text[data-v-177ac736]{font-size:.875rem;color:#999;text-align:center;display:block;padding:1.875rem 0}

View File

@ -1 +0,0 @@
.container[data-v-9ea70e68]{min-height:100vh;background-color:#f5f5f5}.header[data-v-9ea70e68]{background-color:#fff;border-bottom:1px solid #eee}.header .status-bar[data-v-9ea70e68]{width:100%;background-color:#fff}.header .header-content[data-v-9ea70e68]{display:flex;align-items:center;justify-content:space-between;padding:0 16px}.header .back-button[data-v-9ea70e68]{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.header .back-icon[data-v-9ea70e68]{font-size:44px;color:#333;font-weight:300}.header .header-title[data-v-9ea70e68]{font-size:18px;font-weight:600;color:#333;flex:1;text-align:center}.header .header-placeholder[data-v-9ea70e68]{width:40px}.content[data-v-9ea70e68]{padding-bottom:1.25rem}.avatar-section[data-v-9ea70e68]{display:flex;justify-content:center;padding:1.875rem 0;background-color:#fff;margin-bottom:.625rem}.avatar-section .avatar-wrapper[data-v-9ea70e68]{position:relative;width:5rem;height:5rem}.avatar-section .avatar[data-v-9ea70e68]{width:100%;height:100%;border-radius:50%;background-color:#e0e0e0}.avatar-section .avatar-edit-icon[data-v-9ea70e68]{position:absolute;bottom:0;right:0;width:1.5rem;height:1.5rem;background-color:#17a2b8;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid #fff}.avatar-section .avatar-edit-icon .edit-icon[data-v-9ea70e68]{font-size:.625rem}.form-section[data-v-9ea70e68]{background-color:#fff;margin-bottom:.625rem}.form-item[data-v-9ea70e68]{display:flex;align-items:center;padding:.875rem 1rem;border-bottom:1px solid #f0f0f0}.form-item[data-v-9ea70e68]:last-child{border-bottom:none}.form-item.readonly .form-value[data-v-9ea70e68]{color:#999}.form-item .form-label[data-v-9ea70e68]{width:5rem;font-size:.875rem;color:#333;flex-shrink:0}.form-item .form-input[data-v-9ea70e68],.form-item .form-value[data-v-9ea70e68]{flex:1;font-size:.875rem;color:#333;text-align:right}.button-section[data-v-9ea70e68]{padding:1.25rem 1rem}.save-button[data-v-9ea70e68]{width:100%;height:2.75rem;line-height:2.75rem;background:linear-gradient(135deg,#17a2b8 0%,#138496 100%);color:#fff;border-radius:1.375rem;font-size:1rem;font-weight:600;text-align:center;border:none;box-shadow:0 4px 12px rgba(23,162,184,.3)}.save-button[data-v-9ea70e68]:after{border:none}.save-button[disabled][data-v-9ea70e68]{opacity:.6}

View File

@ -1 +0,0 @@
.page[data-v-909bb00e]{min-height:100vh;background-color:#f3f3f3}.header[data-v-909bb00e]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-909bb00e]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-909bb00e]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}.date-item[data-v-909bb00e]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:2.5rem;padding:0 .3125rem;box-sizing:border-box}.date-text[data-v-909bb00e]{font-size:.875rem;color:#333}.date-placeholder[data-v-909bb00e]{color:#c0c4cc}@keyframes flash-909bb00e{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-909bb00e]{animation:flash-909bb00e .5s ease-in-out 3}.person-row[data-v-909bb00e]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding:.625rem .3125rem}.person-info[data-v-909bb00e]{display:flex;flex-direction:column}.person-title[data-v-909bb00e]{font-size:.875rem;color:#333;font-weight:500}.person-counter[data-v-909bb00e]{display:flex;flex-direction:row;align-items:center}.counter-btn[data-v-909bb00e]{width:1.5625rem;height:1.5625rem;display:flex;align-items:center;justify-content:center;background-color:#bfbfbf;border-radius:.25rem}.counter-icon[data-v-909bb00e]{font-size:.875rem;font-weight:700;line-height:1.5625rem;text-align:center;color:#fff}.counter-value[data-v-909bb00e]{font-size:.875rem;color:#333;min-width:2.5rem;text-align:center}

View File

@ -1 +0,0 @@
.content[data-v-24733327]{height:100vh;display:flex;flex-direction:column;align-items:center;background-color:#f7f7f7}

View File

@ -1 +0,0 @@
.page[data-v-575f8784]{min-height:100vh;background-color:#f3f3f3}.header[data-v-575f8784]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-575f8784]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-575f8784]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}@keyframes flash-575f8784{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-575f8784]{animation:flash-575f8784 .5s ease-in-out 3}

View File

@ -1 +0,0 @@
.container[data-v-851e2374]{display:flex;flex-direction:column;min-height:100vh;background-color:#f5f5f5}.loading-container[data-v-851e2374],.error-container[data-v-851e2374]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6.25rem 1.25rem}.loading-text[data-v-851e2374],.error-text[data-v-851e2374]{font-size:.875rem;color:#999;margin-bottom:1.25rem}.retry-button[data-v-851e2374]{width:6.25rem;height:2.1875rem;line-height:2.1875rem;background-color:#17a2b8;color:#fff;border-radius:1.09375rem;font-size:.875rem;text-align:center}.content[data-v-851e2374]{display:flex;flex-direction:column;flex:1;padding-bottom:3.75rem}.service-image-wrapper[data-v-851e2374]{width:100%;height:12.5rem;background-color:#f0f0f0;position:relative}.service-image[data-v-851e2374]{width:100%;height:100%}.service-image-placeholder[data-v-851e2374]{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#e0e0e0 0%,#f5f5f5 100%)}.placeholder-icon[data-v-851e2374]{font-size:3.125rem;opacity:.5;margin-bottom:.625rem}.placeholder-text[data-v-851e2374]{font-size:.875rem;color:#999}.service-info[data-v-851e2374]{display:flex;flex-direction:column;padding:1.25rem;background-color:#fff}.service-name[data-v-851e2374]{font-size:1.125rem;font-weight:600;color:#333;margin-bottom:.9375rem}.service-description[data-v-851e2374]{font-size:.875rem;color:#666;line-height:1.6}.action-bar[data-v-851e2374]{position:fixed;bottom:0;left:0;right:0;padding:.625rem 1.25rem;background-color:#fff;box-shadow:0 -.0625rem .3125rem rgba(0,0,0,.05);z-index:100}.book-button[data-v-851e2374]{width:100%;height:2.5rem;line-height:2.5rem;background:linear-gradient(135deg,#17a2b8 0%,#138496 100%);color:#fff;border-radius:1.25rem;font-size:1rem;font-weight:600;text-align:center;border:none}.book-button[data-v-851e2374]:after{border:none}

View File

@ -1 +0,0 @@
.page[data-v-e68dfe5e]{min-height:100vh;background-color:#f3f3f3}.header[data-v-e68dfe5e]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-e68dfe5e]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-e68dfe5e]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}.date-item[data-v-e68dfe5e]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:2.5rem;padding:0 .3125rem;box-sizing:border-box}.date-text[data-v-e68dfe5e]{font-size:.875rem;color:#333}.date-placeholder[data-v-e68dfe5e]{color:#c0c4cc}@keyframes flash-e68dfe5e{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-e68dfe5e]{animation:flash-e68dfe5e .5s ease-in-out 3}

View File

@ -1 +0,0 @@
import{J as t,K as e}from"./index-a09151d6.js";const n=["pages/index/index","pages/appointment/appointment-page","pages/me/me-page"],a=a=>{if(a&&a.$t&&(()=>{const t=e();if(0===t.length)return!1;const a=t[t.length-1].route||"";return n.includes(a)})())try{t({index:0,text:a.$t("tabbar.home")}),t({index:1,text:a.$t("tabbar.appointment")}),t({index:2,text:a.$t("tabbar.me")})}catch(r){console.error("更新 TabBar 国际化失败:",r)}};export{a as u};

View File

@ -1 +0,0 @@
.page[data-v-4336bb8e]{min-height:100vh;background-color:#f3f3f3}.header[data-v-4336bb8e]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-4336bb8e]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-4336bb8e]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}.date-item[data-v-4336bb8e]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:2.5rem;padding:0 .3125rem;box-sizing:border-box}.date-text[data-v-4336bb8e]{font-size:.875rem;color:#333}.date-placeholder[data-v-4336bb8e]{color:#c0c4cc}@keyframes flash-4336bb8e{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-4336bb8e]{animation:flash-4336bb8e .5s ease-in-out 3}.person-row[data-v-4336bb8e]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding:.625rem .3125rem}.person-info[data-v-4336bb8e]{display:flex;flex-direction:column}.person-title[data-v-4336bb8e]{font-size:.875rem;color:#333;font-weight:500}.person-desc[data-v-4336bb8e]{font-size:.75rem;color:#999;margin-top:.1875rem}.person-counter[data-v-4336bb8e]{display:flex;flex-direction:row;align-items:center}.counter-btn[data-v-4336bb8e]{width:1.5625rem;height:1.5625rem;display:flex;align-items:center;justify-content:center;background-color:#bfbfbf;border-radius:.25rem}.counter-icon[data-v-4336bb8e]{font-size:.875rem;font-weight:700;line-height:1.5625rem;text-align:center;color:#fff}.counter-value[data-v-4336bb8e]{font-size:.875rem;color:#333;min-width:2.5rem;text-align:center}

View File

@ -1 +0,0 @@
.page[data-v-3d5b1747]{min-height:100vh;background-color:#f3f3f3}.header[data-v-3d5b1747]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-3d5b1747]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-3d5b1747]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}.date-item[data-v-3d5b1747]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:2.5rem;padding:0 .3125rem;box-sizing:border-box}.date-text[data-v-3d5b1747]{font-size:.875rem;color:#333}.date-placeholder[data-v-3d5b1747]{color:#c0c4cc}@keyframes flash-3d5b1747{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-3d5b1747]{animation:flash-3d5b1747 .5s ease-in-out 3}.person-row[data-v-3d5b1747]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding:.625rem .3125rem}.person-info[data-v-3d5b1747]{display:flex;flex-direction:column}.person-title[data-v-3d5b1747]{font-size:.875rem;color:#333;font-weight:500}.person-desc[data-v-3d5b1747]{font-size:.75rem;color:#999;margin-top:.1875rem}.person-counter[data-v-3d5b1747]{display:flex;flex-direction:row;align-items:center}.counter-btn[data-v-3d5b1747]{width:1.5625rem;height:1.5625rem;display:flex;align-items:center;justify-content:center;background-color:#bfbfbf;border-radius:.25rem}.counter-icon[data-v-3d5b1747]{font-size:.875rem;font-weight:700;line-height:1.5625rem;text-align:center;color:#fff}.counter-value[data-v-3d5b1747]{font-size:.875rem;color:#333;min-width:2.5rem;text-align:center}

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
.page[data-v-fd3ffbc1]{height:100vh;background-color:#f3f4f8;display:flex;flex-direction:column;overflow:hidden}.navbar[data-v-fd3ffbc1]{width:100%;padding-top:3.125rem;padding-bottom:.625rem;display:flex;flex-direction:row;align-items:center;justify-content:center;position:relative;background-color:#fff;flex-shrink:0}.navbar .nav-back[data-v-fd3ffbc1]{position:absolute;left:1rem;width:2.5rem;height:1.5625rem;display:flex;align-items:center;justify-content:center}.navbar .nav-back .back-icon[data-v-fd3ffbc1]{width:1.5rem;height:1.5rem}.navbar .nav-title[data-v-fd3ffbc1]{font-size:1.0625rem;font-weight:500;color:#333}.content-container[data-v-fd3ffbc1]{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.content-box[data-v-fd3ffbc1]{padding:.9375rem;background-color:#fff;margin:.625rem;border-radius:.5rem;min-height:6.25rem}.content-text[data-v-fd3ffbc1]{font-size:.875rem;color:#333;line-height:1.8;white-space:pre-wrap;word-break:break-all}.loading-text[data-v-fd3ffbc1],.empty-text[data-v-fd3ffbc1]{font-size:.875rem;color:#999;text-align:center;display:block;padding:1.875rem 0}

View File

@ -1 +0,0 @@
.page[data-v-1868c1b3]{min-height:100vh;background-color:#f3f3f3}.header[data-v-1868c1b3]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-1868c1b3]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-1868c1b3]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}.date-item[data-v-1868c1b3]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;height:2.5rem;padding:0 .3125rem;box-sizing:border-box}.date-text[data-v-1868c1b3]{font-size:.875rem;color:#333}.date-placeholder[data-v-1868c1b3]{color:#c0c4cc}@keyframes flash-1868c1b3{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-1868c1b3]{animation:flash-1868c1b3 .5s ease-in-out 3}.person-row[data-v-1868c1b3]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding:.625rem .3125rem}.person-info[data-v-1868c1b3]{display:flex;flex-direction:column}.person-title[data-v-1868c1b3]{font-size:.875rem;color:#333;font-weight:500}.person-desc[data-v-1868c1b3]{font-size:.75rem;color:#999;margin-top:.1875rem}.person-counter[data-v-1868c1b3]{display:flex;flex-direction:row;align-items:center}.counter-btn[data-v-1868c1b3]{width:1.5625rem;height:1.5625rem;display:flex;align-items:center;justify-content:center;background-color:#bfbfbf;border-radius:.25rem}.counter-icon[data-v-1868c1b3]{font-size:.875rem;font-weight:700;line-height:1.5625rem;text-align:center;color:#fff}.counter-value[data-v-1868c1b3]{font-size:.875rem;color:#333;min-width:2.5rem;text-align:center}

View File

@ -1 +0,0 @@
.page[data-v-749747de]{min-height:100vh;background-color:#f3f3f3}.header[data-v-749747de]{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;padding-top:2.75rem;padding-bottom:.625rem;background-color:#f3f3f3;position:fixed;top:0;left:0;z-index:100}.scroll-content[data-v-749747de]{padding-top:4.375rem;background-color:#f3f3f3;min-height:100vh}.content[data-v-749747de]{display:flex;flex-direction:column;align-items:center;background-color:#f3f3f3;min-height:100%}@keyframes flash-749747de{0%{background-color:#f3f3f3}50%{background-color:#f66}to{background-color:#f3f3f3}}.flash-animation[data-v-749747de]{animation:flash-749747de .5s ease-in-out 3}

View File

@ -1,24 +0,0 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<link rel="stylesheet" href="/assets/uni.438c65d9.css">
<meta charset="UTF-8" />
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>appointment_system</title>
<!--preload-links-->
<!--app-context-->
<script type="module" crossorigin src="/assets/index-a09151d6.js"></script>
<link rel="stylesheet" href="/assets/index-4ecd5ef5.css">
</head>
<body>
<div id="app"><!--app-html--></div>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 475 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 605 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 479 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 435 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 667 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 981 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 469 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Some files were not shown because too many files have changed in this diff Show More