search.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <template>
  2. <view class="content">
  3. <searchNav :height='search_nav_height' :searchContent='search_content' @onInput='searchOnInput' @clickSearch='searchNavClickSearch'></searchNav>
  4. <view class="" :style="{marginTop:search_nav_height + 'rpx'}">
  5. <record v-if="!is_search" :data_list='data_record_list'
  6. @clickDeleteAll='recordClickDeleteAll'
  7. @clickItem='recordClickItem'></record>
  8. <list v-else></list>
  9. </view>
  10. </view>
  11. </template>
  12. <script setup lang="ts">
  13. import searchNav from '../search/search-nav.vue'
  14. import record from '../search/search-record.vue'
  15. import list from '../search/search-list.vue'
  16. import { ref } from 'vue';
  17. import { http } from '../../framework/http';
  18. import { config } from '../../config/config';
  19. import { util } from '../../framework/util';
  20. import { SearchManager } from '../../stores/searchManager';
  21. import { search_item_data } from '../../data/data';
  22. let search_nav_height = ref(100)
  23. let search_content = ref('')
  24. let is_search = ref(false)
  25. let data_record_list = ref([])
  26. initData()
  27. function initData() {
  28. data_record_list.value = SearchManager.getList()
  29. }
  30. function recordClickDeleteAll() {
  31. if(data_record_list.value.length<=0) {
  32. return
  33. }
  34. util.showModal('清空历史记录', '', ()=>{
  35. data_record_list.value = []
  36. SearchManager.resetData(data_record_list.value)
  37. })
  38. }
  39. function recordClickItem(item:search_item_data) {
  40. search_content.value = item.name
  41. searchNavClickSearch(item.name)
  42. }
  43. function searchOnInput(r:string) {
  44. if(r.length<=0) {
  45. is_search.value = false
  46. }
  47. }
  48. function searchNavClickSearch(r:string) {
  49. // console.log('searchNavClickSearch=',r)
  50. if(r.length<=0) {
  51. util.showInfoToast('请输入搜索关键字')
  52. return
  53. }
  54. is_search.value = true
  55. data_record_list.value = SearchManager.addName(r)
  56. searchBook(r)
  57. }
  58. function searchBook(kw:string) {
  59. util.showLoading()
  60. let opt = {'kw': kw}
  61. http.DynamicRequest(config.url_confg.Dynamic.book_search, opt, (err=null,data=null)=>{
  62. util.hideLoading()
  63. if(!err&&data) {
  64. if(data.code==config.url_confg.StatesCode.SUCCESS){
  65. // console.log('data=',data)
  66. }
  67. }
  68. })
  69. }
  70. </script>
  71. <style lang="scss">
  72. .content{
  73. display: flex;
  74. flex-direction: column;
  75. }
  76. </style>