deploy: auto commit repo-root changes 2026-06-16 01:39:08
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
<template>
|
||||
<view class="ai-entry" :class="[`ai-entry--${size}`, `ai-entry--align-${align}`]" @tap="goAssistant">
|
||||
<text class="ai-entry__line ai-entry__line--top">AI</text>
|
||||
<text class="ai-entry__line ai-entry__line--bottom">助手</text>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
withDefaults(defineProps<{
|
||||
align?: 'left' | 'right'
|
||||
size?: 'compact' | 'regular' | 'large'
|
||||
}>(), {
|
||||
align: 'left',
|
||||
size: 'regular'
|
||||
})
|
||||
|
||||
const goAssistant = () => {
|
||||
uni.navigateTo({ url: '/pages/ai_assistant/ai_assistant' })
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.ai-entry {
|
||||
--entry-width: 64rpx;
|
||||
--entry-height: 64rpx;
|
||||
--entry-radius: 16rpx;
|
||||
--entry-top-font: 20rpx;
|
||||
--entry-bottom-font: 14rpx;
|
||||
--entry-gap: 2rpx;
|
||||
|
||||
width: var(--entry-width);
|
||||
height: var(--entry-height);
|
||||
border-radius: var(--entry-radius);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: var(--entry-gap);
|
||||
flex-shrink: 0;
|
||||
background: linear-gradient(135deg, #185dff 0%, #4f7dff 100%);
|
||||
box-shadow: 0 8rpx 20rpx rgba(24, 93, 255, 0.16);
|
||||
|
||||
&--align-right {
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
&--compact {
|
||||
--entry-width: 60rpx;
|
||||
--entry-height: 60rpx;
|
||||
--entry-radius: 18rpx;
|
||||
--entry-top-font: 18rpx;
|
||||
--entry-bottom-font: 14rpx;
|
||||
}
|
||||
|
||||
&--large {
|
||||
--entry-width: 68rpx;
|
||||
--entry-height: 68rpx;
|
||||
--entry-radius: 12rpx;
|
||||
--entry-top-font: 20rpx;
|
||||
--entry-bottom-font: 14rpx;
|
||||
}
|
||||
|
||||
&__line {
|
||||
color: #fff;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
letter-spacing: 1rpx;
|
||||
|
||||
&--top {
|
||||
font-size: var(--entry-top-font);
|
||||
}
|
||||
|
||||
&--bottom {
|
||||
font-size: var(--entry-bottom-font);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -2,8 +2,8 @@
|
||||
"name" : "世博头条",
|
||||
"appid" : "__UNI__90671D8",
|
||||
"description" : "世博头条AI分析平台",
|
||||
"versionName" : "1.0.6",
|
||||
"versionCode" : 106,
|
||||
"versionName" : "1.0.8",
|
||||
"versionCode" : 108,
|
||||
"transformPx" : false,
|
||||
/* 5+App特有相关 */
|
||||
"app-plus" : {
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<view class="match-header" :style="{ paddingTop: statusBarHeight + 'px' }">
|
||||
<view class="match-header__title">
|
||||
<text class="match-header__title-text">赛事中心</text>
|
||||
<AiAssistantEntry size="compact" />
|
||||
</view>
|
||||
<view class="topic-entry" @tap="openWorldCupCenter">
|
||||
<view class="topic-entry__badge">
|
||||
@@ -81,6 +82,7 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, ref, onMounted } from 'vue'
|
||||
import AiAssistantEntry from '@/components/ai-assistant-entry/ai-assistant-entry.vue'
|
||||
import MatchCard from '@/components/match-card/match-card.vue'
|
||||
import { getMatchList, getMatchLeagues, getSportTypes } from '@/api/match'
|
||||
import { getArticleCate } from '@/api/news'
|
||||
@@ -283,6 +285,10 @@ onMounted(() => {
|
||||
|
||||
&__title {
|
||||
padding: 16rpx 24rpx 12rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 16rpx;
|
||||
|
||||
&-text {
|
||||
font-size: 36rpx;
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
<!-- 顶部导航 -->
|
||||
<view class="navbar">
|
||||
<text class="navbar__title">加密行情</text>
|
||||
<AiAssistantEntry size="compact" />
|
||||
</view>
|
||||
|
||||
<!-- 排序 Tab + 搜索 -->
|
||||
@@ -61,6 +62,7 @@
|
||||
<script lang="ts" setup>
|
||||
import { ref, computed, onUnmounted } from 'vue'
|
||||
import { onLoad, onShow, onHide } from '@dcloudio/uni-app'
|
||||
import AiAssistantEntry from '@/components/ai-assistant-entry/ai-assistant-entry.vue'
|
||||
import { getBinanceTickers, loadCoinConfig, type CoinTicker } from '@/api/crypto'
|
||||
|
||||
const statusBarHeight = ref(0)
|
||||
@@ -172,6 +174,8 @@ $accent: #333333;
|
||||
.navbar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 16rpx;
|
||||
padding: 0 32rpx;
|
||||
height: 88rpx;
|
||||
background: $bg;
|
||||
@@ -181,6 +185,7 @@ $accent: #333333;
|
||||
font-weight: 700;
|
||||
color: $text-primary;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* 排序Tab */
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
<text class="community-header__search-icon">🔍</text>
|
||||
<text class="community-header__search-text">搜索世博头条</text>
|
||||
</view>
|
||||
<AiAssistantEntry size="large" />
|
||||
<view class="community-header__publish" @tap="goPublish">
|
||||
<text class="community-header__publish-icon">+</text>
|
||||
</view>
|
||||
@@ -69,6 +70,7 @@ import { getCommunityPosts, getTagLists, purchasePost, toggleLike } from '@/api/
|
||||
import { useAppStore } from '@/stores/app'
|
||||
import { useUserStore } from '@/stores/user'
|
||||
import { getToken } from '@/utils/auth'
|
||||
import AiAssistantEntry from '@/components/ai-assistant-entry/ai-assistant-entry.vue'
|
||||
import PostCard from '@/packages_community/components/post-card.vue'
|
||||
import SharePopup from '@/components/share-popup/share-popup.vue'
|
||||
|
||||
|
||||
@@ -10,21 +10,15 @@
|
||||
<UIcon name="search" size="28" color="#999" />
|
||||
<text class="top-bar__search-text">{{ searchPlaceholder }}</text>
|
||||
</view>
|
||||
<view class="top-bar__actions" />
|
||||
<view class="top-bar__actions">
|
||||
<AiAssistantEntry />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- Feed流内容 -->
|
||||
<scroll-view scroll-y class="feed-wrapper" :style="{ height: feedHeight + 'px' }" @scrolltolower="loadMore"
|
||||
:lower-threshold="100">
|
||||
<view class="assistant-entry" @tap="goAssistant">
|
||||
<view class="assistant-entry__icon">AI</view>
|
||||
<view class="assistant-entry__body">
|
||||
<text class="assistant-entry__title">世博头条 AI 助手</text>
|
||||
<text class="assistant-entry__desc">问资讯、赛事、社区、彩票和行情</text>
|
||||
</view>
|
||||
<u-icon name="arrow-right" size="28" color="#185dff" />
|
||||
</view>
|
||||
<!-- 频道Tab栏 -->
|
||||
<view class="channel-bar">
|
||||
<scroll-view scroll-x class="channel-bar__scroll" :scroll-left="channelScrollLeft"
|
||||
@@ -72,6 +66,7 @@ import { ref, nextTick } from 'vue'
|
||||
import { getArticleList, getArticleCate } from '@/api/news'
|
||||
import { resolveShortLink } from '@/api/share'
|
||||
import { useUserStore } from '@/stores/user'
|
||||
import AiAssistantEntry from '@/components/ai-assistant-entry/ai-assistant-entry.vue'
|
||||
import FeedCard from '@/components/feed-card/feed-card.vue'
|
||||
import FeedTranslateCard from '@/components/feed-translate-card/feed-translate-card.vue'
|
||||
import FeedVideoCard from '@/components/feed-video-card/feed-video-card.vue'
|
||||
@@ -238,10 +233,6 @@ const goChannelManage = () => {
|
||||
uni.navigateTo({ url: '/pages/channel/channel-manage' })
|
||||
}
|
||||
|
||||
const goAssistant = () => {
|
||||
uni.navigateTo({ url: '/pages/ai_assistant/ai_assistant' })
|
||||
}
|
||||
|
||||
onLoad(async (options: any) => {
|
||||
// 处理短链接跳转参数
|
||||
handleRedirect(options)
|
||||
@@ -407,61 +398,6 @@ onUnload(() => {
|
||||
gap: 16rpx;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
&__publish {
|
||||
width: 64rpx;
|
||||
height: 64rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: #e5edff;
|
||||
border-radius: 16rpx;
|
||||
}
|
||||
}
|
||||
|
||||
/* 频道Tab栏 */
|
||||
.assistant-entry {
|
||||
margin: 20rpx 24rpx 16rpx;
|
||||
padding: 22rpx 24rpx;
|
||||
border-radius: 8rpx;
|
||||
background: #fff;
|
||||
border: 1rpx solid #dbe6f5;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 18rpx;
|
||||
|
||||
&__icon {
|
||||
width: 60rpx;
|
||||
height: 60rpx;
|
||||
border-radius: 8rpx;
|
||||
background: #185dff;
|
||||
color: #fff;
|
||||
font-size: 24rpx;
|
||||
font-weight: 700;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
&__body {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
&__title {
|
||||
display: block;
|
||||
font-size: 30rpx;
|
||||
font-weight: 700;
|
||||
color: #111827;
|
||||
}
|
||||
|
||||
&__desc {
|
||||
display: block;
|
||||
margin-top: 4rpx;
|
||||
font-size: 23rpx;
|
||||
color: #6b7280;
|
||||
}
|
||||
}
|
||||
|
||||
/* 频道Tab栏 */
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
<view class="lottery-nav__content">
|
||||
<image v-if="websiteLogo" class="lottery-nav__logo" :src="websiteLogo" mode="aspectFit" />
|
||||
<text class="lottery-nav__title">彩票中心</text>
|
||||
<AiAssistantEntry size="compact" align="right" />
|
||||
</view>
|
||||
<view class="lottery-nav__right" @tap="showSharePopup = true">
|
||||
<u-icon name="share" size="36" color="#333" />
|
||||
@@ -261,6 +262,7 @@ import { onLoad, onUnload, onReachBottom } from '@dcloudio/uni-app'
|
||||
import { getLotteryAiPredict, getLotteryGameList, getLatestDrawResult, getDrawResultList } from '@/api/lottery'
|
||||
import { useUserStore } from '@/stores/user'
|
||||
import { useAppStore } from '@/stores/app'
|
||||
import AiAssistantEntry from '@/components/ai-assistant-entry/ai-assistant-entry.vue'
|
||||
import SharePopup from '@/components/share-popup/share-popup.vue'
|
||||
|
||||
const showSharePopup = ref(false)
|
||||
@@ -596,6 +598,7 @@ onReachBottom(() => {
|
||||
font-weight: bold;
|
||||
color: #0053d8;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* 一级分类Tab */
|
||||
|
||||
Reference in New Issue
Block a user