feat: 添加刷新功能并优化UI样式

This commit is contained in:
yangzhe 2025-11-26 13:50:27 +08:00
parent 4d7bf1da84
commit a6616427fd
6 changed files with 109 additions and 14 deletions

View File

@ -2,7 +2,30 @@
<u-popup v-model="showPopup" width="550rpx">
<view class="drawer-container">
<view class="drawer-header">
<text class="drawer-title" @click="handleCreateConversation">
<view class="header-top">
<view class="header-tabs">
<u-tabs
:list="tabList"
:is-scroll="false"
:current="currentTab"
@change="changeTab"
bg-color="transparent"
active-color="#4F6AFF"
inactive-color="#505866"
bar-width="80"
font-size="32"
:bold="true"
></u-tabs>
</view>
<view class="header-icon" @click="handleHistoryClick">
<u-icon name="clock" size="40" color="#333333"></u-icon>
</view>
</view>
<view
class="drawer-title header-bottom"
@click="handleCreateConversation"
>
<u-icon
class="drawer-title-icon"
name="plus"
@ -10,7 +33,7 @@
color="#666666"
></u-icon>
新建对话
</text>
</view>
</view>
<scroll-view
scroll-y
@ -94,6 +117,15 @@ export default {
currentActiveIndex: -1,
activeItemId: "", // ID
scrollToView: "", // scroll-into-view
tabList: [
{
name: "AI咨询",
},
{
name: "人工咨询",
},
],
currentTab: 0,
};
},
watch: {
@ -120,6 +152,12 @@ export default {
},
},
methods: {
//
handleHistoryClick() {
uni.navigateTo({
url: "/pages/home/history/history",
});
},
//
handleSettingsClick() {
uni.navigateTo({
@ -164,6 +202,9 @@ export default {
handleCreateConversation() {
this.$emit("create-conversation");
},
changeTab(index) {
this.currentTab = index;
},
},
};
</script>
@ -177,9 +218,24 @@ export default {
background-color: #ffffff;
.drawer-header {
padding: 0 32rpx;
height: 140rpx;
line-height: 120rpx;
.header-top {
height: 80rpx;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20rpx;
.header-tabs {
width: 300rpx;
}
.header-icon {
width: 40rpx;
height: 40rpx;
}
}
.header-bottom {
padding: 16rpx 32rpx;
}
.drawer-title {
font-family: DouyinSans;
@ -195,7 +251,7 @@ export default {
.chat-history-list {
flex: 1;
height: calc(100vh - 360rpx);
height: calc(100vh - 420rpx);
padding-bottom: 20rpx;
.chat-day {
@ -213,7 +269,7 @@ export default {
.chat-item {
padding: 24rpx 30rpx;
border-radius: 16rpx;
margin-bottom: 4rpx;
// margin-bottom: 4rpx;
position: relative;
overflow: hidden;

View File

@ -22,7 +22,11 @@
<view class="qa-section">
<view class="qa-header">
<text class="qa-title">大家都在问</text>
<view class="more-link">
<view class="more-link" @click="handleRefresh">
<image
class="icon-refresh"
src="/static/common/images/icon-refresh.png"
></image>
<text class="more-text">换一批</text>
</view>
</view>
@ -743,6 +747,21 @@ export default {
}, 300);
});
},
//
handleRefresh() {
console.log("刷新问题");
this.$u.api.GetHotQuestions({}).then((res) => {
if (res.succeed) {
console.log("GetHotQuestions.....", res.data);
const res = {
enrollment: [], //
orientation: [], //
};
}
});
},
},
};
</script>
@ -793,9 +812,15 @@ export default {
}
.qa-section {
background-color: #ffffff;
background-image: url("@/static/common/images/hot-question-bg1.png");
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: 0 0;
// background-attachment: fixed;
// background-color: #ffffff;
border-radius: 16rpx;
padding: 30rpx;
padding-top: 0rpx;
margin-bottom: 32rpx;
.qa-header {
@ -805,15 +830,27 @@ export default {
margin-bottom: 30rpx;
.qa-title {
font-size: 32rpx;
font-weight: 500;
color: #333;
font-family: DouyinSans;
font-weight: bold;
font-size: 36rpx;
color: #5255e6;
line-height: 36px;
background: linear-gradient(-56deg, #4d50dd 0%, #3e6aff 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.more-link {
display: flex;
align-items: center;
.icon-refresh {
width: 36rpx;
height: 36rpx;
margin-right: 8rpx;
}
.more-text {
font-size: 26rpx;
color: #999;
color: #333;
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

4
types/global.d.ts vendored
View File

@ -2,6 +2,8 @@
export {};
; declare global {
var __VLS_PROPS_FALLBACK: Record<string, unknown>;
const __VLS_directiveBindingRestFields: { instance: null, oldValue: null, modifiers: any, dir: any };
const __VLS_unref: typeof import('vue').unref;
const __VLS_placeholder: any;
@ -35,7 +37,7 @@ export {};
attrs?: any;
slots?: T extends { $slots: infer Slots } ? Slots : Record<string, any>;
emit?: T extends { $emit: infer Emit } ? Emit : {};
props?: (T extends { $props: infer Props } ? Props : {}) & Record<string, unknown>;
props?: typeof props;
expose?: (exposed: T) => void;
};
};