<template>
  <view class="content">
    <!-- 小程序环境使用web-view加载StPageFlip -->
    <web-view 
      :src="webviewUrl" 
      @message="handleMessage"
      class="webview-container"
    ></web-view>
    
    <!-- 控制按钮
    <view class="controls">
      <button @click="prevPage" :disabled="currentPage <= 0" class="control-btn">上一页</button>
      <text class="page-info">{{ currentPage + 1 }} / {{ totalPages }}</text>
      <button @click="nextPage" :disabled="currentPage >= totalPages - 1" class="control-btn">下一页</button>
    </view> -->
  </view>
</template>

<script>
export default {
    data() {
        return {
            // 当前页码
            currentPage: 0,
            // 总页数
            totalPages: 6,
            // webview URL - 需要部署到服务器或使用本地路径
            webviewUrl: 'https://hfllll.github.io/My/', // 请替换为实际的服务器地址
            // 本地测试可以使用: '/static/stpageflip.html'
        };
    },
    methods: {
        // 处理来自webview的消息
        handleMessage(e) {
            console.log('收到webview消息:', e.detail.data);
            const data = e.detail.data[0]; // 小程序webview消息格式
            
            if (data.type === 'pageFlip') {
                this.currentPage = data.currentPage;
                this.totalPages = data.totalPages;
            } else if (data.type === 'stateChange') {
                console.log('翻页状态变化:', data.state);
                if (data.state === 'flipping') {
                    uni.showToast({
                        title: '翻页中',
                        duration: 500,
                        icon: 'none'
                    });
                }
            }
        },
        
        // 上一页
        prevPage() {
            this.sendMessageToWebview({
                type: 'prevPage'
            });
        },
        
        // 下一页
        nextPage() {
            this.sendMessageToWebview({
                type: 'nextPage'
            });
        },
        
        // 跳转到指定页面
        turnToPage(pageNumber) {
            this.sendMessageToWebview({
                type: 'turnToPage',
                pageNumber: pageNumber
            });
        },
        
        // 向webview发送消息
        sendMessageToWebview(data) {
            // 注意：小程序向webview发送消息需要特殊处理
            // 这里只是示例，实际可能需要其他方式
            console.log('向webview发送消息:', data);
        }
    },
    
    onLoad() {
        console.log('StPageFlip翻页组件加载完成');
    }
}
</script>

<style lang="scss" scoped>
page {
    width: 100%;
    height: 100%;
}

.content {
    width: 100%;
    height: 100vh;
    position: relative;
    background: #f5f5f5;
}

.webview-container {
    width: 100%;
    height: calc(100vh - 80px);
}

.controls {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 80px;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 30px;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
    z-index: 1000;
}

.control-btn {
    padding: 12px 24px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border: none;
    border-radius: 25px;
    font-size: 16px;
    font-weight: 500;
    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
    transition: all 0.3s ease;
}

.control-btn:active {
    transform: translateY(2px);
    box-shadow: 0 2px 8px rgba(102, 126, 234, 0.3);
}

.control-btn:disabled {
    background: #bdc3c7;
    color: #7f8c8d;
    box-shadow: none;
    transform: none;
}

.page-info {
    font-size: 16px;
    font-weight: 500;
    color: #2c3e50;
    background: rgba(255, 255, 255, 0.8);
    padding: 8px 16px;
    border-radius: 20px;
    border: 1px solid #e0e0e0;
}
</style>