diff --git a/pages/goods-vr-ticket-order/goods-vr-ticket-order.css b/pages/goods-vr-ticket-order/goods-vr-ticket-order.css
index 0d00323d..b50767d8 100644
--- a/pages/goods-vr-ticket-order/goods-vr-ticket-order.css
+++ b/pages/goods-vr-ticket-order/goods-vr-ticket-order.css
@@ -439,4 +439,109 @@
.cp {
cursor: pointer;
+}
+
+/* =========== 观影人信息卡片 =========== */
+.viewer-card {
+ margin-top: 20rpx;
+}
+
+.viewer-card .section-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+.viewer-card .required-hint {
+ font-size: 24rpx;
+ color: #ff4d4f;
+ font-weight: 500;
+}
+
+/* 表单项 */
+.viewer-card .form-item {
+ margin-top: 24rpx;
+}
+
+.viewer-card .form-label {
+ display: flex;
+ align-items: center;
+ margin-bottom: 12rpx;
+}
+
+.viewer-card .label-text {
+ font-size: 28rpx;
+ color: #333;
+ font-weight: 500;
+}
+
+.viewer-card .required-star {
+ color: #ff4d4f;
+ margin-left: 4rpx;
+ font-size: 28rpx;
+}
+
+.viewer-card .form-content {
+ display: flex;
+ align-items: center;
+ gap: 16rpx;
+}
+
+.viewer-card .form-input {
+ flex: 1;
+ height: 80rpx;
+ padding: 0 24rpx;
+ background: #f5f5f5;
+ border-radius: 8rpx;
+ font-size: 28rpx;
+ border: 1px solid transparent;
+ transition: all 0.2s;
+}
+
+.viewer-card .form-input:focus {
+ background: #fff;
+ border-color: #1677ff;
+}
+
+/* 快速授权按钮 */
+.viewer-card .quick-fill-btn {
+ padding: 0 24rpx;
+ height: 64rpx;
+ line-height: 64rpx;
+ background: #07c160;
+ color: #fff;
+ font-size: 24rpx;
+ border-radius: 8rpx;
+ border: none;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ white-space: nowrap;
+ transition: all 0.2s;
+}
+
+.viewer-card .quick-fill-btn::after {
+ border: none;
+}
+
+.viewer-card .quick-fill-btn:active {
+ opacity: 0.8;
+}
+
+/* 提示信息 */
+.viewer-card .viewer-tip {
+ display: flex;
+ align-items: center;
+ gap: 8rpx;
+ margin-top: 24rpx;
+ padding: 16rpx;
+ background: #f9f9f9;
+ border-radius: 8rpx;
+}
+
+.viewer-card .tip-text {
+ flex: 1;
+ font-size: 24rpx;
+ color: #999;
+ line-height: 1.5;
}
\ No newline at end of file
diff --git a/pages/goods-vr-ticket-order/goods-vr-ticket-order.vue b/pages/goods-vr-ticket-order/goods-vr-ticket-order.vue
index ff61525c..dc922440 100644
--- a/pages/goods-vr-ticket-order/goods-vr-ticket-order.vue
+++ b/pages/goods-vr-ticket-order/goods-vr-ticket-order.vue
@@ -67,6 +67,82 @@
+
+
+
+
+
+
+
+ 手机号
+ *
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 姓名
+ *
+
+
+
+
+
+
+
+
+
+
+ 身份证号
+ *
+
+
+
+
+
+
+
+
+
+
+ 请确保观影人信息准确,订单支付后无法修改
+
+
+
+
+
+
+
+
+
+ ⚠
+
+
+ 当前为 H5 预览环境
+ 浏览器环境限制无法直接调用摄像头。请使用下方手动核销,或在微信小程序/APP中进行扫码。
+
+
+
+
+
+
+
+
+
+ ✎
+
+
+ ×
+
+
+
+
+
+
+
+
+
@@ -174,10 +222,18 @@ export default {
resultData: {},
// 无权限提示
showNoPermission: false,
+ // H5 手动输入核销相关
+ manualCode: '',
+ isInputFocused: false,
+ isH5: false,
};
},
onLoad(params) {
+ // #ifdef H5
+ this.isH5 = true;
+ // #endif
+
// 记录来源
if (params && params.from) {
this.sourceFrom = params.from;
@@ -301,7 +357,7 @@ export default {
// #ifdef H5
// H5 环境提示使用手机扫码
- app.globalData.showToast('请使用手机端扫码功能');
+ app.globalData.showToast('当前非小程序或APP环境,请使用手动核销');
return;
// #endif
@@ -324,6 +380,15 @@ export default {
});
},
+ // 手动输入提交核销
+ submitManualCode() {
+ if (!this.manualCode || this.manualCode.trim() === '') {
+ app.globalData.showToast('请输入有效的票码');
+ return;
+ }
+ this.processScanResult(this.manualCode.trim());
+ },
+
// 处理扫码结果
processScanResult(code) {
// 提取票码(可能包含URL等前缀)
@@ -350,6 +415,9 @@ export default {
this.resultData = res.data.data || {};
this.showResult = true;
+ // 清空 H5 手动输入框
+ this.manualCode = '';
+
// 震动反馈
uni.vibrateShort();