移动文件
3
.gitignore
vendored
|
|
@ -1 +1,4 @@
|
|||
/unpackage/
|
||||
/.kiro/
|
||||
node_modules
|
||||
/.vscode/
|
||||
|
|
|
|||
159
README.md
Normal file
|
|
@ -0,0 +1,159 @@
|
|||
# 海外预约系统
|
||||
|
||||
海外预约小程序系统,包含 uni-app 微信小程序前端、Node.js 后端 API 和 Vue.js 管理后台。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
project-root/
|
||||
├── miniprogram/ # uni-app 小程序前端
|
||||
│ ├── pages/ # 页面组件
|
||||
│ ├── components/ # 公共组件
|
||||
│ ├── static/ # 静态资源
|
||||
│ ├── locale/ # 国际化文件
|
||||
│ ├── utils/ # 工具函数
|
||||
│ ├── modules/ # 业务模块
|
||||
│ ├── uni_modules/ # uni-app 插件
|
||||
│ └── package.json # 前端依赖
|
||||
│
|
||||
├── backend/ # Node.js 后端
|
||||
│ ├── src/ # 源代码
|
||||
│ │ ├── controllers/ # 控制器
|
||||
│ │ ├── services/ # 业务服务
|
||||
│ │ ├── models/ # 数据模型
|
||||
│ │ ├── routes/ # 路由定义
|
||||
│ │ └── middleware/ # 中间件
|
||||
│ ├── logs/ # 日志文件
|
||||
│ ├── uploads/ # 上传文件
|
||||
│ └── package.json # 后端依赖
|
||||
│
|
||||
├── admin/ # Vue 管理后台
|
||||
│ ├── src/ # 源代码
|
||||
│ │ ├── views/ # 页面视图
|
||||
│ │ ├── stores/ # 状态管理
|
||||
│ │ ├── router/ # 路由配置
|
||||
│ │ └── utils/ # 工具函数
|
||||
│ └── package.json # 管理后台依赖
|
||||
│
|
||||
├── docs/ # 项目文档
|
||||
│ ├── guides/ # 使用指南
|
||||
│ ├── setup/ # 配置文档
|
||||
│ ├── troubleshooting/ # 问题排查
|
||||
│ └── analysis/ # 分析文档
|
||||
│
|
||||
├── docker/ # Docker 配置
|
||||
├── docker-compose.yml # Docker 编排
|
||||
├── docker-compose.dev.yml # 开发环境 Docker
|
||||
├── Makefile # 项目命令
|
||||
└── package.json # 根目录脚本
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 环境要求
|
||||
|
||||
- Node.js >= 18.0.0
|
||||
- MySQL 8.0+
|
||||
- Redis (可选,用于缓存)
|
||||
|
||||
### 安装依赖
|
||||
|
||||
```bash
|
||||
# 安装所有子项目依赖
|
||||
npm run install:all
|
||||
|
||||
# 或分别安装
|
||||
npm run miniprogram:install
|
||||
npm run backend:install
|
||||
npm run admin:install
|
||||
```
|
||||
|
||||
### 运行项目
|
||||
|
||||
#### 后端 API
|
||||
|
||||
```bash
|
||||
# 初始化数据库
|
||||
npm run backend:init-db
|
||||
|
||||
# 开发模式
|
||||
npm run backend:dev
|
||||
|
||||
# 生产模式
|
||||
npm run backend:start
|
||||
```
|
||||
|
||||
后端默认运行在 http://localhost:3000
|
||||
|
||||
#### 小程序前端
|
||||
|
||||
```bash
|
||||
# H5 开发模式
|
||||
npm run miniprogram:dev
|
||||
|
||||
# 微信小程序开发模式
|
||||
npm run miniprogram:dev:weixin
|
||||
|
||||
# 构建 H5
|
||||
npm run miniprogram:build
|
||||
|
||||
# 构建微信小程序
|
||||
npm run miniprogram:build:weixin
|
||||
```
|
||||
|
||||
#### 管理后台
|
||||
|
||||
```bash
|
||||
# 开发模式
|
||||
npm run admin:dev
|
||||
|
||||
# 构建生产版本
|
||||
npm run admin:build
|
||||
|
||||
# 预览构建结果
|
||||
npm run admin:preview
|
||||
```
|
||||
|
||||
管理后台默认运行在 http://localhost:5173
|
||||
|
||||
## Docker 部署
|
||||
|
||||
```bash
|
||||
# 开发环境
|
||||
docker-compose -f docker-compose.dev.yml up -d
|
||||
|
||||
# 生产环境
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## 可用脚本
|
||||
|
||||
| 脚本 | 说明 |
|
||||
|------|------|
|
||||
| `npm run install:all` | 安装所有子项目依赖 |
|
||||
| `npm run miniprogram:dev` | 运行小程序 H5 开发服务器 |
|
||||
| `npm run miniprogram:dev:weixin` | 运行小程序微信开发模式 |
|
||||
| `npm run backend:dev` | 运行后端开发服务器 |
|
||||
| `npm run backend:test` | 运行后端测试 |
|
||||
| `npm run admin:dev` | 运行管理后台开发服务器 |
|
||||
| `npm run admin:build` | 构建管理后台 |
|
||||
|
||||
## 文档
|
||||
|
||||
详细文档请查看 `docs/` 目录:
|
||||
|
||||
- [配置指南](docs/setup/CONFIG_GUIDE.md)
|
||||
- [微信配置](docs/setup/WECHAT_SETUP.md)
|
||||
- [登录指南](docs/guides/LOGIN_GUIDE.md)
|
||||
- [认证指南](docs/guides/AUTH_GUIDE.md)
|
||||
|
||||
## 技术栈
|
||||
|
||||
- 小程序前端: uni-app + Vue 3 + Vue I18n
|
||||
- 后端: Node.js + Express + Sequelize + MySQL
|
||||
- 管理后台: Vue 3 + Element Plus + Pinia + Vite
|
||||
- 部署: Docker + Nginx
|
||||
|
||||
## License
|
||||
|
||||
ISC
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
{"level":"info","message":"Starting database initialization...","service":"overseas-appointment-api","timestamp":"2025-12-05 23:45:28"}
|
||||
{"level":"info","message":"Found 3 migration files","service":"overseas-appointment-api","timestamp":"2025-12-05 23:45:28"}
|
||||
{"level":"info","message":"Running migration: 001-create-tables.js","service":"overseas-appointment-api","timestamp":"2025-12-05 23:45:28"}
|
||||
{"level":"info","message":"⊘ Migration skipped (duplicate key): 001-create-tables.js","service":"overseas-appointment-api","timestamp":"2025-12-05 23:45:28"}
|
||||
{"level":"info","message":"Starting database initialization...","service":"overseas-appointment-api","timestamp":"2025-12-05 23:51:02"}
|
||||
{"level":"info","message":"Found 3 migration files","service":"overseas-appointment-api","timestamp":"2025-12-05 23:51:02"}
|
||||
{"level":"info","message":"Running migration: 001-create-tables.js","service":"overseas-appointment-api","timestamp":"2025-12-05 23:51:02"}
|
||||
{"level":"info","message":"⊘ Migration skipped (duplicate key): 001-create-tables.js","service":"overseas-appointment-api","timestamp":"2025-12-05 23:51:02"}
|
||||
{"level":"info","message":"Running migration: 002-create-home-content-tables.js","service":"overseas-appointment-api","timestamp":"2025-12-05 23:51:02"}
|
||||
{"level":"info","message":"✓ Migration completed: 002-create-home-content-tables.js","service":"overseas-appointment-api","timestamp":"2025-12-05 23:51:02"}
|
||||
{"level":"info","message":"Running migration: 002-fix-login-history.js","service":"overseas-appointment-api","timestamp":"2025-12-05 23:51:02"}
|
||||
{"level":"info","message":"✓ Migration completed: 002-fix-login-history.js","service":"overseas-appointment-api","timestamp":"2025-12-05 23:51:02"}
|
||||
{"level":"info","message":"Found 2 seeder files","service":"overseas-appointment-api","timestamp":"2025-12-05 23:51:02"}
|
||||
{"level":"info","message":"Running seeder: 001-seed-categories.js","service":"overseas-appointment-api","timestamp":"2025-12-05 23:51:02"}
|
||||
{"errors":[{"instance":null,"message":"key must be unique","origin":"DB","path":"key","type":"unique violation","validatorArgs":[],"validatorKey":"not_unique","validatorName":null,"value":"airport"}],"fields":{"key":"airport"},"level":"error","message":"Database initialization failed: Validation error","name":"SequelizeUniqueConstraintError","original":{"code":"ER_DUP_ENTRY","errno":1062,"sql":"INSERT INTO `category` (`id`,`key`,`name_zh`,`name_en`,`name_pt`,`icon`,`sort_order`,`created_at`,`updated_at`) VALUES ('802e5e46-5d2d-47e2-9ee7-926726188c91','airport','机场接送','Airport Transfer','Transferência de Aeroporto','/icons/airport.png',1,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('e1b7a339-763a-44a5-9d57-efa767ed52af','train','火车票','Train Ticket','Bilhete de Trem','/icons/train.png',2,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('7dcb2121-2cad-4ecc-b107-c02148ee9c4b','high-speed-rail','高铁票','High-Speed Rail','Trem de Alta Velocidade','/icons/high-speed-rail.png',3,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('0d61dfbd-1170-4402-a268-7b6825ec8459','bus','汽车票','Bus Ticket','Bilhete de Ônibus','/icons/bus.png',4,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('e4865661-52f1-43a6-ab9e-5c9a1c0f735f','hotel','酒店预订','Hotel Booking','Reserva de Hotel','/icons/hotel.png',5,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('1cc01e13-cbb2-42a3-ae95-6bad1390533f','homestay','民宿预订','Homestay Booking','Reserva de Casa de Família','/icons/homestay.png',6,'2025-12-05 15:51:02','2025-12-05 15:51:02');","sqlMessage":"Duplicate entry 'airport' for key 'category.key'","sqlState":"23000"},"parent":{"code":"ER_DUP_ENTRY","errno":1062,"sql":"INSERT INTO `category` (`id`,`key`,`name_zh`,`name_en`,`name_pt`,`icon`,`sort_order`,`created_at`,`updated_at`) VALUES ('802e5e46-5d2d-47e2-9ee7-926726188c91','airport','机场接送','Airport Transfer','Transferência de Aeroporto','/icons/airport.png',1,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('e1b7a339-763a-44a5-9d57-efa767ed52af','train','火车票','Train Ticket','Bilhete de Trem','/icons/train.png',2,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('7dcb2121-2cad-4ecc-b107-c02148ee9c4b','high-speed-rail','高铁票','High-Speed Rail','Trem de Alta Velocidade','/icons/high-speed-rail.png',3,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('0d61dfbd-1170-4402-a268-7b6825ec8459','bus','汽车票','Bus Ticket','Bilhete de Ônibus','/icons/bus.png',4,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('e4865661-52f1-43a6-ab9e-5c9a1c0f735f','hotel','酒店预订','Hotel Booking','Reserva de Hotel','/icons/hotel.png',5,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('1cc01e13-cbb2-42a3-ae95-6bad1390533f','homestay','民宿预订','Homestay Booking','Reserva de Casa de Família','/icons/homestay.png',6,'2025-12-05 15:51:02','2025-12-05 15:51:02');","sqlMessage":"Duplicate entry 'airport' for key 'category.key'","sqlState":"23000"},"service":"overseas-appointment-api","sql":"INSERT INTO `category` (`id`,`key`,`name_zh`,`name_en`,`name_pt`,`icon`,`sort_order`,`created_at`,`updated_at`) VALUES ('802e5e46-5d2d-47e2-9ee7-926726188c91','airport','机场接送','Airport Transfer','Transferência de Aeroporto','/icons/airport.png',1,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('e1b7a339-763a-44a5-9d57-efa767ed52af','train','火车票','Train Ticket','Bilhete de Trem','/icons/train.png',2,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('7dcb2121-2cad-4ecc-b107-c02148ee9c4b','high-speed-rail','高铁票','High-Speed Rail','Trem de Alta Velocidade','/icons/high-speed-rail.png',3,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('0d61dfbd-1170-4402-a268-7b6825ec8459','bus','汽车票','Bus Ticket','Bilhete de Ônibus','/icons/bus.png',4,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('e4865661-52f1-43a6-ab9e-5c9a1c0f735f','hotel','酒店预订','Hotel Booking','Reserva de Hotel','/icons/hotel.png',5,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('1cc01e13-cbb2-42a3-ae95-6bad1390533f','homestay','民宿预订','Homestay Booking','Reserva de Casa de Família','/icons/homestay.png',6,'2025-12-05 15:51:02','2025-12-05 15:51:02');","stack":"Error\n at Query.run (F:\\work\\appointment_system\\backend\\node_modules\\sequelize\\lib\\dialects\\mysql\\query.js:52:25)\n at F:\\work\\appointment_system\\backend\\node_modules\\sequelize\\lib\\sequelize.js:315:28\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async MySQLQueryInterface.bulkInsert (F:\\work\\appointment_system\\backend\\node_modules\\sequelize\\lib\\dialects\\abstract\\query-interface.js:346:21)\n at async Object.up (F:\\work\\appointment_system\\backend\\src\\seeders\\001-seed-categories.js:79:5)\n at async initDatabase (F:\\work\\appointment_system\\backend\\src\\scripts\\initDatabase.js:52:9)","timestamp":"2025-12-05 23:51:02"}
|
||||
{"level":"info","message":"Redis client connected","service":"overseas-appointment-api","timestamp":"2025-12-15 18:08:24"}
|
||||
{"level":"info","message":"Redis client ready","service":"overseas-appointment-api","timestamp":"2025-12-15 18:08:24"}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
{"level":"error","message":"Database initialization failed: db.getConnection is not a function","service":"overseas-appointment-api","stack":"TypeError: db.getConnection is not a function\n at Object.up (F:\\work\\appointment_system\\backend\\src\\migrations\\002-create-home-content-tables.js:8:25)\n at initDatabase (F:\\work\\appointment_system\\backend\\src\\scripts\\initDatabase.js:27:25)\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)","timestamp":"2025-12-05 23:45:28"}
|
||||
{"errors":[{"instance":null,"message":"key must be unique","origin":"DB","path":"key","type":"unique violation","validatorArgs":[],"validatorKey":"not_unique","validatorName":null,"value":"airport"}],"fields":{"key":"airport"},"level":"error","message":"Database initialization failed: Validation error","name":"SequelizeUniqueConstraintError","original":{"code":"ER_DUP_ENTRY","errno":1062,"sql":"INSERT INTO `category` (`id`,`key`,`name_zh`,`name_en`,`name_pt`,`icon`,`sort_order`,`created_at`,`updated_at`) VALUES ('802e5e46-5d2d-47e2-9ee7-926726188c91','airport','机场接送','Airport Transfer','Transferência de Aeroporto','/icons/airport.png',1,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('e1b7a339-763a-44a5-9d57-efa767ed52af','train','火车票','Train Ticket','Bilhete de Trem','/icons/train.png',2,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('7dcb2121-2cad-4ecc-b107-c02148ee9c4b','high-speed-rail','高铁票','High-Speed Rail','Trem de Alta Velocidade','/icons/high-speed-rail.png',3,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('0d61dfbd-1170-4402-a268-7b6825ec8459','bus','汽车票','Bus Ticket','Bilhete de Ônibus','/icons/bus.png',4,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('e4865661-52f1-43a6-ab9e-5c9a1c0f735f','hotel','酒店预订','Hotel Booking','Reserva de Hotel','/icons/hotel.png',5,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('1cc01e13-cbb2-42a3-ae95-6bad1390533f','homestay','民宿预订','Homestay Booking','Reserva de Casa de Família','/icons/homestay.png',6,'2025-12-05 15:51:02','2025-12-05 15:51:02');","sqlMessage":"Duplicate entry 'airport' for key 'category.key'","sqlState":"23000"},"parent":{"code":"ER_DUP_ENTRY","errno":1062,"sql":"INSERT INTO `category` (`id`,`key`,`name_zh`,`name_en`,`name_pt`,`icon`,`sort_order`,`created_at`,`updated_at`) VALUES ('802e5e46-5d2d-47e2-9ee7-926726188c91','airport','机场接送','Airport Transfer','Transferência de Aeroporto','/icons/airport.png',1,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('e1b7a339-763a-44a5-9d57-efa767ed52af','train','火车票','Train Ticket','Bilhete de Trem','/icons/train.png',2,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('7dcb2121-2cad-4ecc-b107-c02148ee9c4b','high-speed-rail','高铁票','High-Speed Rail','Trem de Alta Velocidade','/icons/high-speed-rail.png',3,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('0d61dfbd-1170-4402-a268-7b6825ec8459','bus','汽车票','Bus Ticket','Bilhete de Ônibus','/icons/bus.png',4,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('e4865661-52f1-43a6-ab9e-5c9a1c0f735f','hotel','酒店预订','Hotel Booking','Reserva de Hotel','/icons/hotel.png',5,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('1cc01e13-cbb2-42a3-ae95-6bad1390533f','homestay','民宿预订','Homestay Booking','Reserva de Casa de Família','/icons/homestay.png',6,'2025-12-05 15:51:02','2025-12-05 15:51:02');","sqlMessage":"Duplicate entry 'airport' for key 'category.key'","sqlState":"23000"},"service":"overseas-appointment-api","sql":"INSERT INTO `category` (`id`,`key`,`name_zh`,`name_en`,`name_pt`,`icon`,`sort_order`,`created_at`,`updated_at`) VALUES ('802e5e46-5d2d-47e2-9ee7-926726188c91','airport','机场接送','Airport Transfer','Transferência de Aeroporto','/icons/airport.png',1,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('e1b7a339-763a-44a5-9d57-efa767ed52af','train','火车票','Train Ticket','Bilhete de Trem','/icons/train.png',2,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('7dcb2121-2cad-4ecc-b107-c02148ee9c4b','high-speed-rail','高铁票','High-Speed Rail','Trem de Alta Velocidade','/icons/high-speed-rail.png',3,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('0d61dfbd-1170-4402-a268-7b6825ec8459','bus','汽车票','Bus Ticket','Bilhete de Ônibus','/icons/bus.png',4,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('e4865661-52f1-43a6-ab9e-5c9a1c0f735f','hotel','酒店预订','Hotel Booking','Reserva de Hotel','/icons/hotel.png',5,'2025-12-05 15:51:02','2025-12-05 15:51:02'),('1cc01e13-cbb2-42a3-ae95-6bad1390533f','homestay','民宿预订','Homestay Booking','Reserva de Casa de Família','/icons/homestay.png',6,'2025-12-05 15:51:02','2025-12-05 15:51:02');","stack":"Error\n at Query.run (F:\\work\\appointment_system\\backend\\node_modules\\sequelize\\lib\\dialects\\mysql\\query.js:52:25)\n at F:\\work\\appointment_system\\backend\\node_modules\\sequelize\\lib\\sequelize.js:315:28\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async MySQLQueryInterface.bulkInsert (F:\\work\\appointment_system\\backend\\node_modules\\sequelize\\lib\\dialects\\abstract\\query-interface.js:346:21)\n at async Object.up (F:\\work\\appointment_system\\backend\\src\\seeders\\001-seed-categories.js:79:5)\n at async initDatabase (F:\\work\\appointment_system\\backend\\src\\scripts\\initDatabase.js:52:9)","timestamp":"2025-12-05 23:51:02"}
|
||||
1
miniprogram/dist/build/h5/assets/AppServer.888fd24d.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/about-us-page-f7aed867.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/air-logistics-page-d1e8e514.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/airfare-info-entry-page-c7398c8d.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/airport-transfer-page-b711a928.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/appointment-page-74908b41.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/arrow_down.807172e3.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
const o="/static/arrow_down.png";export{o as _};
|
||||
1
miniprogram/dist/build/h5/assets/arrow_right2.8bd5bd0f.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
const t="/static/arrow_right2.png";export{t as _};
|
||||
1
miniprogram/dist/build/h5/assets/aure-country-picker-e6f92922.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/aure-country-picker.01cea584.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/auth.b970b80f.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
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};
|
||||
1
miniprogram/dist/build/h5/assets/contact-us-page-1a0f8c19.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/exhibition-service-page-994a5df4.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/guide-translation-page-baab5650.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/hotel-reservation-page-7ef073e8.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/ic_back.5440bd15.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
const c="/static/ic_back.png";export{c as _};
|
||||
1
miniprogram/dist/build/h5/assets/ic_colse.a4aecbba.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
const c="/static/ic_colse.png";export{c as _};
|
||||
1
miniprogram/dist/build/h5/assets/ic_notice.f2babaad.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
const t="/static/ic_notice.png";export{t as _};
|
||||
1
miniprogram/dist/build/h5/assets/index-4ecd5ef5.css
vendored
Normal file
1
miniprogram/dist/build/h5/assets/index-9f498473.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
40
miniprogram/dist/build/h5/assets/index-a09151d6.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/insurance-consultation-page-83a2fbb4.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/invite-reward-page-c248d82e.css
vendored
Normal file
1
miniprogram/dist/build/h5/assets/login-page-103fc876.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/me-page-26588892.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/medical-consultation-page-019fcec9.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/my-appointments-page-80414920.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/notification-page-a33108be.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/pages-appointment-air-logistics-page.2de8917c.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-airfare-info-entry-page.008bdbb6.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-airport-transfer-page.db65a1bb.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-appointment-page.964e02da.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
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};
|
||||
1
miniprogram/dist/build/h5/assets/pages-appointment-exhibition-service-page.778f053d.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-guide-translation-page.92bb9fdd.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-hotel-reservation-page.97687d30.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-insurance-consultation-page.1495fef3.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-medical-consultation-page.3754f2ce.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-pet-transportation-page.bd4b9540.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-rail-ticket-page.d930e7af.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-sea-freight-page.859e51fb.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-special-needs-page.418e8462.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-travel-planning-page.855c79ad.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-unaccompanied-minor-page.8ff7a674.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-vip-lounge-page.07f6f539.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-appointment-visa-consultation-page.87cb2a6f.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-index-index.e475d22e.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-index-reserve-details-page.27657fc1.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
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};
|
||||
1
miniprogram/dist/build/h5/assets/pages-login-login-page.440b1f8e.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
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};
|
||||
1
miniprogram/dist/build/h5/assets/pages-me-about-us-page.ca5f80f5.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
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};
|
||||
1
miniprogram/dist/build/h5/assets/pages-me-contact-us-page.af455db9.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
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};
|
||||
1
miniprogram/dist/build/h5/assets/pages-me-invite-reward-page.89752fa7.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-me-me-page.d68538b6.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-me-my-appointments-page.c73dbf22.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-me-notification-page.103e4603.js
vendored
Normal file
1
miniprogram/dist/build/h5/assets/pages-me-privacy-policy-page.046daf60.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
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};
|
||||
1
miniprogram/dist/build/h5/assets/pages-me-profile-edit-page.2dfd9fda.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
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};
|
||||
1
miniprogram/dist/build/h5/assets/pages-me-user-agreement-page.6a19be09.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
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};
|
||||
1
miniprogram/dist/build/h5/assets/pages-service-detail-service-detail.7ccacd63.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
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};
|
||||
1
miniprogram/dist/build/h5/assets/pet-transportation-page-d7629c3e.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/privacy-policy-page-53be437c.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/profile-edit-page-f389f346.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/rail-ticket-page-0fb583ee.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/reserve-details-page-81847eb9.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.content[data-v-24733327]{height:100vh;display:flex;flex-direction:column;align-items:center;background-color:#f7f7f7}
|
||||
1
miniprogram/dist/build/h5/assets/sea-freight-page-c712143a.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/service-detail-fa6f2108.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/special-needs-page-ce40d7ab.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/tabbar-i18n.82cae040.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
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};
|
||||
1
miniprogram/dist/build/h5/assets/travel-planning-page-749c09fc.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/unaccompanied-minor-page-c1e89e12.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/uni.438c65d9.css
vendored
Normal file
1
miniprogram/dist/build/h5/assets/user-agreement-page-0adf17fe.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/vip-lounge-page-015c538c.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
1
miniprogram/dist/build/h5/assets/visa-consultation-page-9b4fd51e.css
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
.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}
|
||||
24
miniprogram/dist/build/h5/index.html
vendored
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
<!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>
|
||||
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |