index.vue 9.37 KB
<template>
  <view class="relative w-full min-h-screen overflow-y-auto overflow-x-hidden bg-[#F9FAFB] pb-[200rpx]">
    <!-- Header Section -->
    <view class="absolute left-0 top-0 w-full h-[544rpx] z-0">
      <image class="w-full h-full" src="https://picsum.photos/seed/header/750/544" mode="aspectFill" />
      <view class="absolute inset-0 bg-gradient-to-b from-blue-600/80 to-transparent"></view>
    </view>

    <view class="relative z-10 px-[32rpx] pt-[180rpx]">
      <text class="block text-white text-[44rpx] font-bold mb-[40rpx] text-center">臻奇智荟圈</text>

      <!-- Search Bar -->
      <view
        class="flex items-center w-full h-[88rpx] bg-white/20 backdrop-blur-md rounded-full px-[32rpx] border border-white/30"
        @tap="go('/pages/search/index')"
      >
        <IconFont name="search" class="text-white/80 mr-[16rpx]" size="18" />
        <text class="text-white/80 text-[28rpx]">搜索培训资料、案例...</text>
      </view>
    </view>

    <!-- Main Content -->
    <view class="relative z-10 mt-[40rpx] px-[24rpx]">
      <!-- Grid Icons -->
      <view class="bg-white rounded-[32rpx] shadow-sm p-[40rpx] mb-[24rpx]">
        <view class="flex flex-wrap">
          <view
            class="flex flex-col items-center w-1/3 mb-[40rpx]"
            v-for="(item, index) in loopData0"
            :key="index"
            @tap="handleGridNav(item)"
          >
            <view class="w-[88rpx] h-[88rpx] rounded-[24rpx] bg-blue-50 flex items-center justify-center mb-[16rpx]">
              <IconFont :name="item.icon" class="text-blue-600" size="24" />
            </view>
            <text class="text-gray-800 text-[26rpx]">{{ item.lanhutext0 }}</text>
          </view>
        </view>
      </view>

      <!-- Hot Products -->
      <view class="bg-white rounded-[32rpx] shadow-sm p-[32rpx] mb-[24rpx]">
        <view class="flex justify-between items-center mb-[24rpx]">
          <text class="text-gray-900 text-[32rpx] font-bold">热卖产品:</text>
          <view class="flex items-center text-blue-600" @tap="go('/pages/knowledge-base/index')">
            <text class="text-[26rpx] mr-[4rpx]">查看更多</text>
            <IconFont name="rectRight" size="12" />
          </view>
        </view>

        <!-- Product Card 1 -->
        <view class="bg-gray-50 rounded-[24rpx] p-[28rpx] mb-[24rpx]">
          <text class="block text-gray-800 text-[28rpx] font-medium mb-[20rpx]">家庭财富传承保障计划(分红)</text>
          <view class="flex flex-wrap gap-[12rpx] mb-[24rpx]">
            <view class="bg-red-50 rounded-[8rpx] px-[16rpx] py-[6rpx]">
              <text class="text-red-600 text-[22rpx]">收益率3.5%</text>
            </view>
            <view class="bg-orange-50 rounded-[8rpx] px-[16rpx] py-[6rpx]">
              <text class="text-orange-600 text-[22rpx]">5年超值</text>
            </view>
            <view class="bg-green-50 rounded-[8rpx] px-[16rpx] py-[6rpx]">
              <text class="text-green-600 text-[22rpx]">保证收益万能</text>
            </view>
          </view>
          <view class="flex justify-between gap-[24rpx]">
            <nut-button
              plain
              color="#2563EB"
              class="flex-1 !h-[64rpx] !rounded-[16rpx] !text-[26rpx] !m-0 !border-blue-600"
              @tap="goToProductDetail(1)"
            >
              产品资料
            </nut-button>
            <nut-button
              color="#2563EB"
              class="flex-1 !h-[64rpx] !rounded-[16rpx] !text-[26rpx] !m-0"
              @tap="openWebView('https://https://oa-dev.onwall.cn/f/custom_form/front/#/')"
            >
              计划书
            </nut-button>
          </view>
        </view>

        <!-- Product Card 2 -->
        <view class="bg-gray-50 rounded-[24rpx] p-[28rpx]">
          <text class="block text-gray-800 text-[28rpx] font-medium mb-[20rpx]">儿童教育金储备方案(分红)</text>
          <view class="flex flex-wrap gap-[12rpx] mb-[24rpx]">
            <view class="bg-red-50 rounded-[8rpx] px-[16rpx] py-[6rpx]">
              <text class="text-red-600 text-[22rpx]">收益率4.2%</text>
            </view>
            <view class="bg-orange-50 rounded-[8rpx] px-[16rpx] py-[6rpx]">
              <text class="text-orange-600 text-[22rpx]">10年期</text>
            </view>
            <view class="bg-green-50 rounded-[8rpx] px-[16rpx] py-[6rpx]">
              <text class="text-green-600 text-[22rpx]">教育专属</text>
            </view>
          </view>
          <view class="flex justify-between gap-[24rpx]">
            <nut-button
              plain
              color="#2563EB"
              class="flex-1 !h-[64rpx] !rounded-[16rpx] !text-[26rpx] !m-0 !border-blue-600"
              @tap="goToProductDetail(2)"
            >
              产品资料
            </nut-button>
            <nut-button
              color="#2563EB"
              class="flex-1 !h-[64rpx] !rounded-[16rpx] !text-[26rpx] !m-0"
              @tap="openWebView('https://https://oa-dev.onwall.cn/f/custom_form/front/#/')"
            >
              计划书
            </nut-button>
          </view>
        </view>
      </view>

      <!-- Hot Materials -->
      <view class="bg-white rounded-[32rpx] shadow-sm p-[32rpx] mb-[48rpx]">
        <view class="flex justify-between items-center mb-[24rpx]">
          <text class="text-gray-900 text-[32rpx] font-bold">本周热门资料</text>
          <view class="flex items-center text-blue-600" @tap="go('/pages/material-list/index')">
            <text class="text-[26rpx] mr-[4rpx]">查看更多</text>
            <IconFont name="rectRight" size="12" />
          </view>
        </view>

        <!-- Material List -->
        <view class="flex flex-col gap-[32rpx]">
          <!-- Item 1 -->
          <view class="flex gap-[24rpx]">
            <image class="w-[200rpx] h-[140rpx] rounded-[12rpx] bg-gray-200"
              src="https://picsum.photos/seed/mat1/200/140" mode="aspectFill" />
            <view class="flex-1 flex flex-col justify-between py-[4rpx]">
              <text class="text-gray-800 text-[28rpx] leading-[40rpx] line-clamp-2">2024年保险市场趋势分析报告</text>
              <view class="flex justify-between items-end">
                <text class="text-gray-400 text-[24rpx]">256人学习</text>
                <text class="text-blue-600 text-[26rpx]">78%</text>
              </view>
            </view>
          </view>
          <view class="h-[2rpx] bg-gray-100"></view>
          <!-- Item 2 -->
          <view class="flex gap-[24rpx]">
            <image class="w-[200rpx] h-[140rpx] rounded-[12rpx] bg-gray-200"
              src="https://picsum.photos/seed/mat2/200/140" mode="aspectFill" />
            <view class="flex-1 flex flex-col justify-between py-[4rpx]">
              <text class="text-gray-800 text-[28rpx] leading-[40rpx] line-clamp-2">高净值客户需求分析与产品匹配</text>
              <view class="flex justify-between items-end">
                <text class="text-gray-400 text-[24rpx]">189人学习</text>
                <text class="text-blue-600 text-[26rpx]">65%</text>
              </view>
            </view>
          </view>
          <view class="h-[2rpx] bg-gray-100"></view>
          <!-- Item 3 -->
          <view class="flex gap-[24rpx]">
            <image class="w-[200rpx] h-[140rpx] rounded-[12rpx] bg-gray-200"
              src="https://picsum.photos/seed/mat3/200/140" mode="aspectFill" />
            <view class="flex-1 flex flex-col justify-between py-[4rpx]">
              <text class="text-gray-800 text-[28rpx] leading-[40rpx] line-clamp-2">保险合同条款解读与风险提示</text>
              <view class="flex justify-between items-end">
                <text class="text-gray-400 text-[24rpx]">142人学习</text>
                <text class="text-blue-600 text-[26rpx]">52%</text>
              </view>
            </view>
          </view>
        </view>
      </view>
    </view>

    <!-- Bottom Tab Bar -->
    <TabBar current="home" />
  </view>
</template>

<script setup>
import { ref, shallowRef } from 'vue';
import Taro, { useShareAppMessage } from '@tarojs/taro';
import { useGo } from '@/hooks/useGo';
import TabBar from '@/components/TabBar.vue';
import IconFont from '@/components/IconFont.vue';

// Grid navigation data with routes
const loopData0 = shallowRef([
  { icon: 'order', lanhutext0: '计划书', route: '/pages/plan/index' },
  { icon: 'my', lanhutext0: '入职相关', route: '/pages/onboarding/index' },
  { icon: 'cart', lanhutext0: '签单相关', route: '/pages/signing/index' },
  { icon: 'home', lanhutext0: '家办相关', route: '/pages/family-office/index' },
  { icon: 'category', lanhutext0: '产品知识库', route: '/pages/knowledge-base/index' },
  { icon: 'star', lanhutext0: '工具箱', route: null }, // 待开发
]);

// Navigation
const go = useGo();

// Handle grid navigation click
const handleGridNav = (item) => {
  if (!item.route) {
    Taro.showToast({
      title: '功能开发中',
      icon: 'none',
      duration: 2000
    });
    return;
  }

  go(item.route);
};

// 跳转到产品详情页
const goToProductDetail = (productId) => {
  go('/pages/product-detail/index', {
    id: productId
  });
};

// Open webview with URL
const openWebView = (url) => {
  go('/pages/webview/index', {
    url: encodeURIComponent(url)
  });
};

useShareAppMessage(() => {
  return {
    title: '臻奇智荟圈',
    path: '/pages/index/index'
  };
});
</script>