Browse Source

美化搜索框样式,添加搜索图标和清除功能

pull/1/head
徐飞洋 3 months ago
parent
commit
1aff32e327
  1. 18
      pages/buyer/index.js
  2. 8
      pages/buyer/index.wxml
  3. 66
      pages/buyer/index.wxss
  4. 10
      pages/seller/index.js
  5. 3
      pages/seller/index.wxml
  6. 61
      pages/seller/index.wxss

18
pages/buyer/index.js

@ -1067,6 +1067,24 @@ Page({
});
},
// 清除搜索
clearSearch() {
this.setData({
searchKeyword: '',
page: 1,
hasMoreData: true,
selectedCategory: '全部'
}, () => {
// 重新加载第一页数据
this.loadGoods().then(() => {
console.log('清除搜索后数据加载完成');
}).catch(err => {
console.error('清除搜索后数据加载失败:', err);
this.fallbackToLocalStorageWithPagination();
});
});
},
// 搜索输入处理
onSearchInput(e) {
const searchKeyword = e.detail.value

8
pages/buyer/index.wxml

@ -1,15 +1,17 @@
<view class="container" style="align-items: flex-start; padding: 20rpx; width: 100%; max-width: 100vw; overflow-x: hidden; position: relative; box-sizing: border-box;">
<!-- 搜索框 -->
<view style="position: fixed; top: 0; left: 0; right: 0; padding: 20rpx; background-color: white; z-index: 100; box-shadow: 0 2rpx 10rpx rgba(0,0,0,0.1); box-sizing: border-box;">
<view style="width: 90%; display: flex; border: 1rpx solid #ddd; border-radius: 40rpx; overflow: hidden; margin: 0 auto;">
<view class="search-container">
<view class="search-box">
<view class="search-icon">🔍</view>
<input
style="width: 100%; padding: 20rpx 30rpx;"
class="search-input"
placeholder="搜索商品名称或品种"
bindinput="onSearchInput"
bindconfirm="searchGoods"
value="{{searchKeyword}}"
/>
<view wx:if="searchKeyword" class="clear-icon" bindtap="clearSearch">✕</view>
</view>
</view>

66
pages/buyer/index.wxss

@ -4,6 +4,72 @@
background-color: #f5f5f5;
}
/* 搜索框样式 */
.search-container {
position: fixed;
top: 0;
left: 0;
right: 0;
padding: 20rpx;
background-color: white;
z-index: 100;
box-shadow: 0 2rpx 16rpx rgba(0, 0, 0, 0.08);
box-sizing: border-box;
}
.search-box {
width: 90%;
display: flex;
align-items: center;
background-color: #f8f9fa;
border: 2rpx solid #e9ecef;
border-radius: 50rpx;
padding: 0 20rpx;
margin: 0 auto;
transition: all 0.3s ease;
}
.search-box:focus-within {
border-color: #07c160;
box-shadow: 0 0 0 4rpx rgba(7, 193, 96, 0.1);
background-color: white;
}
.search-icon {
font-size: 28rpx;
color: #999;
margin-right: 16rpx;
}
.search-input {
flex: 1;
padding: 24rpx 0;
font-size: 28rpx;
color: #333;
background-color: transparent;
border: none;
outline: none;
}
.search-input::placeholder {
color: #ccc;
}
.clear-icon {
font-size: 24rpx;
color: #999;
padding: 8rpx;
border-radius: 50%;
background-color: #e9ecef;
cursor: pointer;
transition: all 0.2s ease;
}
.clear-icon:hover {
background-color: #dee2e6;
color: #666;
}
.title {
font-size: 36rpx;
font-weight: bold;

10
pages/seller/index.js

@ -237,6 +237,16 @@ Page({
});
},
// 清除搜索
clearSearch() {
this.setData({
searchKeyword: ''
}, () => {
// 重新加载所有数据
this.loadSupplies();
});
},
// 处理搜索输入
onSearchInput(e) {
this.setData({

3
pages/seller/index.wxml

@ -23,14 +23,15 @@
<!-- 搜索框 -->
<view class="search-container">
<view class="search-box">
<view class="search-icon">🔍</view>
<input
class="search-input"
placeholder="搜索货源名称或品种"
bindinput="onSearchInput"
bindconfirm="searchSupplies"
value="{{searchKeyword}}"
style="width: 100%;"
/>
<view wx:if="searchKeyword" class="clear-icon" bindtap="clearSearch">✕</view>
</view>
</view>

61
pages/seller/index.wxss

@ -23,6 +23,67 @@ button {
background-color: #fafafa;
}
/* 搜索框样式 */
.search-container {
position: relative;
padding: 20rpx 0;
z-index: 10;
box-sizing: border-box;
}
.search-box {
width: 90%;
display: flex;
align-items: center;
background-color: #f8f9fa;
border: 2rpx solid #e9ecef;
border-radius: 50rpx;
padding: 0 20rpx;
margin: 0 auto;
transition: all 0.3s ease;
}
.search-box:focus-within {
border-color: #07c160;
box-shadow: 0 0 0 4rpx rgba(7, 193, 96, 0.1);
background-color: white;
}
.search-icon {
font-size: 28rpx;
color: #999;
margin-right: 16rpx;
}
.search-input {
flex: 1;
padding: 24rpx 0;
font-size: 28rpx;
color: #333;
background-color: transparent;
border: none;
outline: none;
}
.search-input::placeholder {
color: #ccc;
}
.clear-icon {
font-size: 24rpx;
color: #999;
padding: 8rpx;
border-radius: 50%;
background-color: #e9ecef;
cursor: pointer;
transition: all 0.2s ease;
}
.clear-icon:hover {
background-color: #dee2e6;
color: #666;
}
/* 页面标题栏 */
.title-bar {
display: flex;

Loading…
Cancel
Save