| <template> | |
|   <view class="page__view"> | |
| 
 | |
|     <!-- 导航栏 --> | |
| 		<navbar title="搜索结果" leftClick @leftClick="$utils.navigateBack" bgColor="transparent" color="#191919" /> | |
| 
 | |
|     <!-- 搜索栏 --> | |
|     <view :class="['flex', 'search', isFocusSearch ? 'is-focus' : '']" > | |
|       <uv-search  | |
|         v-model="keyword"  | |
|         placeholder="输入关键词搜索"  | |
|         color="#181818" | |
|         bgColor="transparent"  | |
|         :showAction="isFocusSearch" | |
|         @custom="search"  | |
|         @search="search" | |
|         @focus="isFocusSearch = true" | |
|         @blur="isFocusSearch = false" | |
|       > | |
|         <template #prefix> | |
|           <image class="search-icon" src="/static/image/icon-search-dark.png" mode="widthFix"></image> | |
|         </template> | |
|       </uv-search> | |
|     </view> | |
|  | |
|     <view class="main"> | |
|       <sortBar v-model="queryParams.sort" @change="onSortChange"></sortBar> | |
|        | |
|       <view v-if="list.length" class="list"> | |
|       	<recordsView :list="list"></recordsView> | |
|       </view> | |
|       <template v-else> | |
|         <uv-empty mode="list"></uv-empty> | |
|       </template> | |
|     </view> | |
| 
 | |
|   </view> | |
| </template> | |
| 
 | |
| <script> | |
| 	import mixinsList from '@/mixins/list.js' | |
| 
 | |
| 	import sortBar from './sortBar.vue' | |
| 	import recordsView from '@/components/growing/recordsView.vue' | |
| 
 | |
|   export default { | |
| 		mixins: [mixinsList], | |
| 		components: { | |
|       sortBar, | |
|       recordsView, | |
|     }, | |
|     data() { | |
|       return { | |
| 				keyword: '', | |
| 				isFocusSearch: false, | |
| 				queryParams: { | |
| 					pageNo: 1, | |
| 					pageSize: 10, | |
| 					title: '', | |
|           sort: 'comprehensive', | |
| 				}, | |
|         // todo | |
|         mixinsListApi: '', | |
|       } | |
|     }, | |
|     onLoad({ search }) { | |
|       if (search) { | |
|         this.keyword = search | |
| 				this.queryParams.title = search | |
| 			} | |
|        | |
|       this.getData() | |
|     }, | |
|     methods: { | |
|       // todo: delete | |
|       getData() { | |
|         this.list = [ | |
|           { | |
|             id: '001', | |
|             name: '新疆天山行7/9日丨醉美伊犁&吐鲁番双套餐', | |
|             image: [ | |
|               '/pages_order/static/temp-38.png', | |
|               '/pages_order/static/temp-38.png', | |
|               '/pages_order/static/temp-38.png', | |
|             ], | |
|             createTime: '2025-07-12', | |
|           }, | |
|           { | |
|             id: '002', | |
|             name: '仙踪新昌·韩妃江古道|邂逅“江南小桂林”', | |
|             image: [ | |
|               '/pages_order/static/temp-38.png', | |
|               '/pages_order/static/temp-38.png', | |
|               '/pages_order/static/temp-38.png', | |
|             ], | |
|             createTime: '2025-06-18', | |
|           }, | |
|           { | |
|             id: '003', | |
|             name: '山水石窟·大佛寺|江南佛窟造像,新昌山水轻徒', | |
|             image: [ | |
|               '/pages_order/static/temp-38.png', | |
|               '/pages_order/static/temp-38.png', | |
|               '/pages_order/static/temp-38.png', | |
|             ], | |
|             createTime: '2025-06-15', | |
|           }, | |
|         ] | |
|       }, | |
|       search() { | |
|         this.queryParams.pageNo = 1 | |
|         this.queryParams.pageSize = 10 | |
| 				this.queryParams.title = this.keyword | |
|         this.getData() | |
|       }, | |
|       onSortChange(sort) { | |
|         console.log('onSortChange', sort) | |
|       }, | |
|     }, | |
|   } | |
| </script> | |
| 
 | |
| <style scoped lang="scss"> | |
| 
 | |
| 	.search { | |
| 		$h: 64rpx; | |
| 		$radius: 32rpx; | |
| 		$borderWidth: 4rpx; | |
| 
 | |
|     margin: 24rpx 32rpx 0 32rpx; | |
|     width: calc(100% - 32rpx * 2); | |
| 		height: $h; | |
| 		position: relative; | |
| 		border-radius: $radius; | |
| 
 | |
| 		&-icon { | |
| 			margin: 0 13rpx 0 26rpx; | |
| 			width: 30rpx; | |
| 			height: auto; | |
| 		} | |
| 
 | |
| 		/deep/ .uv-search__content { | |
| 			padding: 12rpx 0; | |
|       background: #FFFFFF !important; | |
|       border-color: #CFEFFF !important; | |
| 			border: 4rpx solid transparent; | |
| 		} | |
| 
 | |
|     &.is-focus { | |
|       /deep/ .uv-search__action { | |
|         padding: 19rpx 24rpx; | |
|         font-size: 26rpx; | |
|         font-weight: 500; | |
|         line-height: 1; | |
|         color: #FFFFFF; | |
|         background: #00A9FF; | |
|         border-radius: 32rpx; | |
|       } | |
|     } | |
|   } | |
| 
 | |
|   .main { | |
|     margin-top: 24rpx; | |
|     padding: 0 32rpx 100rpx 32rpx; | |
|   } | |
|    | |
|   .content { | |
|     margin-top: 24rpx; | |
|     display: grid; | |
|     grid-template-columns: repeat(2, 1fr); | |
|     gap: 16rpx; | |
|   } | |
| 
 | |
| </style> |