📦
{{stats.orderCount||0}}
总订单
📅
{{stats.todayOrders||0}}
今日订单
📋
{{stats.productCount||0}}
产品总数
🏪 业务概览
🎫
景区门票
{{stats.scenicCount||0}} / {{stats.scenicOrder||0}}单
🏨
酒店预订
{{stats.hotelCount||0}} / {{stats.hotelOrder||0}}单
🚌
旅游线路
{{stats.tourCount||0}} / {{stats.tourOrder||0}}单
🧑✈️
导游预订
{{stats.guideCount||0}} / {{stats.guideOrder||0}}单
📝
旅游攻略
{{stats.articleCount||0}} 篇
⚡ 快速入口
🎫 景区管理
🏨 酒店管理
🚌 线路管理
🧑✈️ 导游管理
📝 攻略管理
📦 订单中心
+ 新建页面
{{ p.page_name }}
📌
{{ p.page_key }}
▲
▼
{{ comp.icon }}
{{ comp.name }}
{{ comp.desc }}
{{ comp.icon }}
{{ comp.name }}
{{ comp.desc }}
‹
{{ mpCurrentPage ? mpCurrentPage.navigation_title || mpCurrentPage.page_name : mpConfig.mp_name || '开心行星' }}
📅 每日签到今日未签到 ›
🔔 消息中心›
💬 联系客服›
❓ 帮助中心›
✍️ 意见反馈›
🆘
— 自定义内容 —
{{ getSectionTypeLabel(section.section_type) }}
拖入组件到此处(广告图、轮播等)
{{ getSectionTypeLabel(section.section_type) }}
加载中...
拖入组件到此处
— 内置商品列表(goods.js渲染) —
{{item.name}}
{{item.summary}}
距您 {{item._distance}}
¥
{{item._min_price||0}}
起
¥{{item._orig_price}}
查看详情
●
{{ tp.menu_title || tp.page_name }}
📄 页面配置 删除此页
{{ getSectionTypeLabel(mpSections[mpActiveIdx].section_type) }}
💾 保存
🗑 删除
点击画布中的组件进行配置
✅
小程序源码已生成
文件大小:{{ (mpDownloadSize/1024).toFixed(1) }} KB
📥 下载源码包
下载后解压,用微信开发者工具打开,上传至微信公众平台提交审核
{{ mpGenError || '生成失败' }}
🏷️ 基本信息
📱 微信小程序绑定
onSensitiveInput('mp_original_id', v)" placeholder="如 gh_xxxxxxxxxxxx" style="width:300px">
onSensitiveInput('mp_appid', v)" placeholder="微信公众平台获取" style="width:300px">
onSensitiveInput('mp_app_secret', v)" placeholder="微信公众平台获取" style="width:300px">
💰 微信支付配置
onSensitiveInput('pay_appid', v)" placeholder="通常与小程序AppID一致" style="width:300px">
onSensitiveInput('pay_app_secret', v)" placeholder="微信商户平台获取" style="width:300px">
onSensitiveInput('pay_key', v)" placeholder="商户平台设置的32位密钥" style="width:300px">
onSensitiveInput('pay_mchid', v)" placeholder="微信支付商户号" style="width:300px">
onSensitiveInput('pay_apikey', v)" placeholder="APIv3密钥" style="width:300px">
✅ 已上传:{{ mpSettings._pay_cert_display }}
未上传 apiclient_cert.pem
✅ 已上传:{{ mpSettings._pay_key_display }}
未上传 apiclient_key.pem
📞 客服信息
🎨 品牌 & 版权设置
👤 个人中心(「我的」页面)配置
影响小程序端 pages/user/user 页面
模块一:顶部信息区
模块二:核心资产区
模块三:核心服务区
模块四:辅助功能区
💾 保存设置
景区列表
新增景区
{{s.row.code}}
{{s.row.open_time}} - {{s.row.close_time}}
无
{{s.row.is_use?'启用':'禁用'}}
{{ s.row.detail_template==='show'?'歌舞':(s.row.detail_template==='concert'?'演唱会':'景区') }}
编辑
复制
装修
删除
所属景区:
新增入园门
{{s.row.code}}
{{s.row.is_use?'启用':'禁用'}}
编辑
复制
删除
所属景区:
新增票型
{{s.row.ticket_code}}
¥{{Number(s.row.price).toFixed(2)}}
{{s.row.age_min>0?s.row.age_min+'岁':'不限'}} - {{s.row.age_max>0?s.row.age_max+'岁':'不限'}}
不限
{{s.row.is_use?'启用':'禁用'}}
编辑
复制
删除
🏔️ 景区
时段模板:
{{slotTemplateTimes.join('、')}}
暂无时段
📅 初始化/补全时段
🔄 刷新
📅 日期范围:
共 {{slotDateList.length}} 天
📭
暂无时段库存
请点击「📅 初始化/补全时段」生成时段数据
{{row.date.slice(5)}}
{{getDayOfWeek(row.date)}}
{{cell.timeStart}}-{{cell.timeEnd}}
库存:{{cell.total_stock}}
(已售{{cell.sold_count}})
√
✗
{{cell.timeStart}}-{{cell.timeEnd}}
— 未生成 —
刷新
¥{{Number(s.row.total_price).toFixed(2)}}
{{s.row.status==='paid'?'已支付':s.row.status==='used'?'已核销':s.row.status==='refunding'?'退款审核':s.row.status==='refunded'?'已退':'已取消'}}
核销
退票
确认退款
-
验票:
🔍 查询
{{s.row.time_start||s.row.time_slot}} - {{s.row.time_end||''}}
{{s.row.quantity}}张
{{s.row.status==='paid'?'已支付':s.row.status==='used'?'已核销':s.row.status}}
核销
✓ 已核销
未找到可核销订单
总订单
{{ scenicDashboard.totals.orders||0 }}
总营收
¥{{ (scenicDashboard.totals.revenue||0).toFixed(2) }}
今日订单
{{ scenicDashboard.today.orders||0 }}
今日营收
¥{{ (scenicDashboard.today.revenue||0).toFixed(2) }}
🔥 热门票种 TOP5
#{{i+1}} {{ t.name||'未命名' }}
{{ t.count }}单 ¥{{ (t.revenue||0).toFixed(0) }}
暂无数据
⏰ 入园高峰时段
🕐 {{ t.time_slot }}
{{ t.count }}张
暂无数据
是否展示附近推荐
至
{{scenicSpotFormId?'景区: '+scenicSpotForm.name:'请先保存景区后再添加公告'}}
新增公告
{{s.row.is_use?'启用':'禁用'}}
编辑
删除
暂无公告
选择该门票对应的详情页展示模板
取消
保存
取消
保存
取消
保存
购买后N天内有效
每人限购
最小
岁
最大
岁
(0=不限)
关闭后小程序仅展示,不可在线预订
未成年人票型下单时需填写监护人信息
取消
保存
2时段 (上午/下午)
4时段
5时段
自定义
取消
生成
取消
保存
📦 可选组件
{{ comp.icon }} {{ comp.name }}
{{ comp.desc }}
{{ detailDecorateSpot.name||'门票详情' }}
⚙️ 全局设置
📞 景区电话:{{ detailDecorateSpot.phone || '未设置' }}
{{ opt.label }}
🔧 组件属性
{{ getRecommendSpotName(sid) }}
✕
该组件暂无属性配置
取消
👁️ 预览
💾 保存装修
←
{{ detailDecorateSpot.name||'商品详情' }}
⋯
🏠首页
💬客服
📞电话
💭聊天
🛒购物车
{{ detailDecorateConfig.cart_text || '加入购物车' }}
{{ detailDecorateConfig.buy_text || '立即购买' }}
关闭
🏨 酒店管理
🛏️ 房型配置
📦 库存管理
📋 订单管理
酒店列表
新增酒店
{{s.row.is_use?'启用':'禁用'}}
编辑
删除
所属酒店:
新增房型
¥{{Number(s.row.base_price).toFixed(0)}}
{{s.row.is_use?'启用':'禁用'}}
编辑
删除
房型:
日期:
📅 批量生成
✓ 一键全部启用
✗ 一键全部禁用
{{s.row.booked_rooms}} / {{s.row.total_rooms}}
{{s.row.price_adjust ? (s.row.price_adjust>0?'+':'')+s.row.price_adjust : '-'}}
编辑
删除
刷新
{{s.row.check_in_date}} ~ {{s.row.check_out_date}}
¥{{Number(s.row.total_price).toFixed(0)}}
{{s.row.status==='paid'?'已支付':s.row.status==='checked_in'?'已入住':s.row.status==='checked_out'?'已退房':'已取消'}}
入住
取消
-
取消
保存
取消
保存
取消
生成
取消
保存
🗺️ 线路管理
💰 价格配置
📅 出发排期
📋 订单管理
线路列表
新增线路
{{s.row.status===1?'启用':'停用'}}
编辑
删除
新增价格
¥{{s.row.original_price}}
¥{{s.row.price}}
编辑
删除
请先选择线路
批量生成
{{s.row.total_stock}}
{{s.row.sold_count}}
{{s.row.total_stock - s.row.sold_count}}
{{s.row.status===1?'启用':'停用'}}
编辑
删除
请先选择线路
刷新
成人{{s.row.adults}} 儿童{{s.row.children}} 老人{{s.row.elders}}
¥{{Number(s.row.total_price).toFixed(0)}}
{{s.row.status==='paid'?'已支付':'已取消'}}
取消
-
取消
保存
取消
保存
取消
保存
取消
生成
🧑✈️ 导游管理
💰 价格配置
📅 可约排期
📋 订单管理
+ 添加导游
{{scope.row.gender==='male'?'男':scope.row.gender==='female'?'女':''}}
{{scope.row.level||'-'}}
{{scope.row.status===1?'上架':'下架'}}
编辑
删除
取消
保存
+ 添加价格
{{ { day_tour:'全天导览', half_day:'半天导览', transfer:'接送导游', custom:'定制行程' }[scope.row.service_type] || scope.row.service_type }}
¥{{ Number(scope.row.original_price).toFixed(0) }}
¥{{ Number(scope.row.price).toFixed(0) }}
编辑
删除
取消
保存
批量生成排期
{{ { morning:'上午', afternoon:'下午', evening:'晚上', all_day:'全天' }[scope.row.time_slot] || scope.row.time_slot }}
{{ scope.row.status===1?'可约':scope.row.status===0?'已满':'休息' }}
删除
¥{{ Number(scope.row.total_price).toFixed(0) }}
{{ { paid:'已支付', used:'已核销', cancelled:'已取消', refunded:'已退款' }[scope.row.status] }}
核销
取消
📦 订单管理中心
🔄 刷新
💰 收款退款汇总
📥 导出Excel
{{orderQuickStats.all||0}}
全部
{{orderQuickStats.pending||0}}
待付款
{{orderQuickStats.paid||0}}
待使用
{{orderQuickStats.refunding||0}}
退款中
{{orderQuickStats.used||0}}
已核销
{{orderQuickStats.cancelled||0}}
已取消
今日收款
¥{{(orderQuickStats.received/10000).toFixed(1)}}w
今日退款
¥{{(orderQuickStats.refunded/10000).toFixed(1)}}w
搜索
重置
共 {{orderList.total}} 条 | 金额合计 ¥{{Number(orderList.total_amount||0).toLocaleString()}}
下单:
~
预约入园日:
~
筛选
{{row.order_no}}
{{ {scenic:'🎫',hotel:'🏨',tour:'🚌',guide:'🧑✈️'}[row.business_type] }}
{{row.product_name}}
{{row.quantity}}
¥{{ Number(row.total_price).toFixed(0) }}
{{row.contact_name||'-'}}
👤{{row.user_name}} 未关联
{{row.visitor_phone||row.contact_phone||'-'}}
{{row.contact_idcard||'-'}}
{{row.book_date||'-'}}
{{ {pending:'待付',paid:'已付',used:'核销',cancelled:'取消',refunding:'退款中',refunded:'已退'}[row.status] }}
{{row.create_time}}
暂无订单数据
📋 订单详情
#{{orderDetail?.order_no}}
订单状态
{{ {pending:'待付款',paid:'已付款',used:'已核销',cancelled:'已取消',refunding:'退款中',refunded:'已退款'}[orderDetail.status] }}
¥{{ Number(orderDetail.total_price).toFixed(2) }}
订单金额
📋
出票核心信息
📋 一键复制
电话:{{orderDetail.contact_phone || orderDetail.visitor_phone || '-'}}
线路名称:{{orderDetail.spot_name || orderDetail.product_name || '-'}}
票型:{{orderDetail.ticket_type_name || '-'}}
预约日期:{{orderDetail.date || orderDetail.book_date || '-'}}
入园时段:{{orderDetail.time_slot || orderDetail.slot_desc || '-'}}
姓名:{{orderDetail.visitor_name || orderDetail.contact_name || '-'}}
证件号码:{{orderDetail.visitor_idcard || orderDetail.contact_idcard || '-'}}
监护人姓名:{{orderDetail.guardian_name}}
监护人身份证:{{orderDetail.guardian_idcard}}
监护人手机:{{orderDetail.guardian_phone}}
电话:{{orderDetail.contact_phone || '-'}}
酒店名称:{{orderDetail.hotel_name || orderDetail.product_name || '-'}}
房型:{{orderDetail.room_type_name || '-'}}
入住日期:{{orderDetail.check_in_date || '-'}}
离店日期:{{orderDetail.check_out_date || '-'}}
姓名:{{orderDetail.contact_name || orderDetail.visitor_name || '-'}}
证件号码:{{orderDetail.contact_idcard || orderDetail.visitor_idcard || '-'}}
电话:{{orderDetail.contact_phone || '-'}}
线路名称:{{orderDetail.route_name || orderDetail.product_name || '-'}}
出发日期:{{orderDetail.departure_date || orderDetail.book_date || '-'}}
姓名:{{orderDetail.contact_name || orderDetail.visitor_name || '-'}}
证件号码:{{orderDetail.id_number || orderDetail.contact_idcard || '-'}}
电话:{{orderDetail.contact_phone || '-'}}
导游名称:{{orderDetail.guide_name || orderDetail.product_name || '-'}}
服务日期:{{orderDetail.service_date || orderDetail.book_date || '-'}}
姓名:{{orderDetail.contact_name || orderDetail.visitor_name || '-'}}
🛒 商品信息
业务类型
{{ {scenic:'🎫 景区门票',hotel:'🏨 酒店预订',tour:'🚌 旅游线路',guide:'🧑✈️ 导游服务'}[orderDetail.business_type] }}
商品名称
{{orderDetail.product_name || orderDetail.spot_name || orderDetail.hotel_name || orderDetail.route_name || orderDetail.guide_name || '-'}}
票型
{{orderDetail.ticket_type_name || '-'}}
数量
{{orderDetail.quantity || orderDetail.rooms || (orderDetail.adults+orderDetail.children+orderDetail.elders) || orderDetail.people_count || 1}}
单价
¥{{ Number((orderDetail.total_price/(orderDetail.quantity||1)).toFixed(2)) || Number(orderDetail.total_price).toFixed(2) }}/{{ {scenic:'张',hotel:'间',tour:'人',guide:'人'}[orderDetail.business_type] || '份' }}
金额
¥{{ Number(orderDetail.total_price).toFixed(2) }}
核销码
{{orderDetail.verify_code || '-'}}
预约日期
{{orderDetail.date || orderDetail.book_date || orderDetail.check_in_date || orderDetail.departure_date || orderDetail.service_date || '-'}}
入园时段
{{orderDetail.time_slot || orderDetail.slot_desc || '-'}}
入园大门
{{orderDetail.gate_name || '-'}}
入住-离店
{{orderDetail.check_in_date}} ~ {{orderDetail.check_out_date}}
房型
{{orderDetail.room_type_name || '-'}}
入住人数
{{orderDetail.guests || 0}}人
成人/儿童/老人
{{orderDetail.adults||0}}/{{orderDetail.children||0}}/{{orderDetail.elders||0}}
👤 游客/联系人
姓名
{{orderDetail.visitor_name || orderDetail.contact_name || '-'}}
电话
{{orderDetail.contact_phone || orderDetail.visitor_phone || '-'}}
证件类型
{{orderDetail.idcard_type==='idcard'?'身份证':(orderDetail.idcard_type||'身份证')}}
证件号码
{{orderDetail.visitor_idcard || orderDetail.contact_idcard || orderDetail.id_number || '-'}}
备注
{{orderDetail.remark || '-'}}
🛡️ 监护人信息
姓名
{{orderDetail.guardian_name}}
身份证号
{{orderDetail.guardian_idcard}}
手机号
{{orderDetail.guardian_phone}}
⏰ 时间信息
下单时间
{{orderDetail.create_time || orderDetail.created_at || '-'}}
更新时间
{{orderDetail.update_time || orderDetail.updated_at || '-'}}
退款时间
{{orderDetail.refund_time}}
-
💸 退款信息
退款金额
¥{{ Number(orderDetail.refund_amount || orderDetail.total_price).toFixed(2) }}
(部分退款,订单总额 ¥{{Number(orderDetail.total_price).toFixed(2)}})
退款原因
{{orderDetail.refund_reason || '后台管理员退款'}}
退款时间
{{orderDetail.refund_time || '-'}}
变更状态:
标记已付款
直接核销
取消订单
核销
取消订单
发起退款
发起退款
确认退款
撤销退款
恢复为已付款
✅ 已退款完结
📝 状态流转日志
{{log.from_status}}
创建
→
{{log.to_status}}
操作人: {{log.operator||'system'}}
{{log.remark||''}}
{{log.created_at}}
暂无状态变更记录
关闭
订单 {{refundTargetOrder?.order_no}} | 总额 ¥{{ Number(refundTargetOrder?.total_price || 0).toFixed(2) }}
— 确认退款
— 发起退款申请
支持部分退款,金额不能超过订单总额。默认全额退款。
取消
{{refundTargetStatus==='refunded'?'确认退款':'发起退款'}} ¥{{ (Number(refundAmountInput)||0).toFixed(2) }}
~
查询
{{s.row.received_count}}
¥{{Number(s.row.received).toLocaleString()}}
{{s.row.refunded_count}}
¥{{Number(s.row.refunded).toLocaleString()}}
¥{{Number(s.row.revenue).toLocaleString()}}
总收款: ¥{{Number(revenueData.summary.totalReceived).toLocaleString()}} ({{revenueData.summary.totalReceivedCount}}笔)
总退款: ¥{{Number(revenueData.summary.totalRefunded).toLocaleString()}} ({{revenueData.summary.totalRefundedCount}}笔)
净收入: ¥{{Number(revenueData.summary.totalRevenue).toLocaleString()}}
暂无数据,请选择日期范围后查询
📝 攻略列表
✅ 内容审核
🏷️ 标签管理
💬 评论管理
无
{{s.row.status===2?'已发布':s.row.status===1?'待审核':s.row.status===3?'已驳回':'草稿'}}
👁 {{s.row.view_count}} 👍 {{s.row.like_count}} 💬 {{s.row.comment_count}} ⭐ {{s.row.collect_count}}
🔥荐
📌顶
编辑
{{s.row.is_recommended?'取消推荐':'推荐'}}
删除
待审核攻略
刷新
{{s.row.content_type===2?'PGC':'UGC'}}
✅ 通过
通过并推荐
❌ 驳回
查看
标签库
新增标签
{{s.row.tag_type===2?'官方标签':'用户标签'}}
{{s.row.status?'启用':'禁用'}}
编辑
删除
🖼
取消
保存
用户标签
官方标签
取消
保存
搜索
{{ s.row.openid || '-' }}
👤
{{ s.row.nickname || '-' }}
{{ s.row.name || s.row.real_name || '-' }}
{{ fmtTime(s.row.create_time) }}
{{ fmtTime(s.row.last_login_time) || '-' }}
{{ s.row.remark || '-' }}
{{ s.row.is_blocked?'已拉黑':(s.row.status?'正常':'禁用') }}
更多
👤
{{ userDetail.user.nickname || userDetail.user.name || '未设置' }}
ID: {{ userDetail.user.id }}
姓名: {{ userDetail.user.real_name || userDetail.user.name || '-' }}
手机: {{ userDetail.user.phone || '-' }}
注册时间: {{ fmtTime(userDetail.user.create_time) }}
{{ userDetail.user.is_blocked?'已拉黑':'正常' }}
{{ userDetail.user.is_blocked?'取消拉黑':'拉黑' }}
📊 个人中心数据
{{ userDetail.stats ? userDetail.stats.orderCount : '-' }}
📦 订单数
{{ userDetail.stats ? '¥'+(userDetail.stats.orderAmount||0).toFixed(2) : '-' }}
💰 消费总额
{{ userDetail.user.integral_current || 0 }}
⭐ 积分
{{ userDetail.user.balance || 0 }}
💳 余额
{{ userDetail.stats ? userDetail.stats.favoriteCount : '-' }}
❤️ 收藏
{{ userDetail.stats ? userDetail.stats.commentCount : '-' }}
💬 评价
{{ userDetail.stats ? userDetail.stats.totalTrips : '-' }}
🗺️ 行程
{{ userDetail.stats ? userDetail.stats.travelerCount : '-' }}
👥 常用旅客
积分管理(当前:{{ userDetail.user.integral_current || 0 }})
+10
+50
+100
-10
-50
确定
积分变动记录
{{ s.row.amount>0?'+':'' }}{{ s.row.amount }}
{{ fmtTime(s.row.create_time) }}
关闭
👤
{{ s.row.nickname || '-' }}
{{ s.row.name || s.row.real_name || '-' }}
{{ s.row.remark || '-' }}
{{ fmtTime(s.row.create_time) }}
取消拉黑
{{fmtTime(scope.row[col.prop])}}
¥{{Number(scope.row[col.prop]).toFixed(2)}}
{{scope.row[col.prop]? '是':'否'}}
{{scope.row[col.prop]===1?'启用':'禁用'}}
{{roleLabel(scope.row[col.prop])}}
{{scope.row[col.prop]}}
编辑
删除