{"version":3,"file":"index.99b2eb4b.mjs","sources":["../../../../pages/search/index.vue"],"sourcesContent":["<template>\n  <NuxtLayout>\n\n    <div>\n      <div class=\"search_row\">\n        <div class=\"search_row_box\">\n          <el-input\n            v-model=\"map.value\"\n            class=\"search_input\"\n            placeholder=\"请输入内容...\"\n            @keyup.enter=\"getList\"\n          ></el-input>\n          <el-button type=\"primary\" class=\"search_btn\" @click=\"getList\">\n            <i class=\"iconfont icon-icon_Search\"></i>\n            <span class=\"font16\">搜索</span>\n          </el-button>\n        </div>\n      </div>\n      <div class=\"search_history_row\">\n        <div class=\"white_space\"></div>\n        <div class=\"search_history_row_box\" v-if=\"map.searchHistory.length > 0\">\n          <div class=\"historys\">\n            <template v-for=\"(item,index) in map.searchHistory\">\n              <div v-if=\"index < 10\" :key=\"index\" @click=\"clickHistory(item)\">{{item}}</div>\n            </template>\n          </div>\n          <div class=\"delete\" @click=\"deleteHistory\">\n            <el-icon><delete /></el-icon>\n            <span>删除</span>\n          </div>\n        </div>\n      </div>\n      <div class=\"content_box\">\n        <div class=\"category_list\">\n          <span\n            class=\"items\"\n            v-for=\"(i, index) in map.tabList\"\n            :key=\"index\"\n            :class=\"{ active: map.tab === i.tabType }\"\n            @click=\"clickItem(i.tabType)\"\n            >{{ i.name }}</span\n          >\n        </div>\n        <div v-loading=\"ctrl.loading\" >\n          <template v-if=\"map.tab === 1\">\n            <index-course class=\"box_layout\" :visible=\"map.list.length > 0\" :componentInfo=\"{config:{showType:1},data:map.list}\"></index-course>\n          </template>\n          <template v-if=\"map.tab === 2\">\n            <index-grade class=\"box_layout\" :componentInfo=\"{config:{},data:map.list}\"></index-grade>\n          </template>\n          <template v-if=\"map.tab === 3\">\n            <teacher-list :list=\"map.list\"></teacher-list>\n          </template>\n          <template v-if=\"map.tab === 4\">\n            <article-list :list=\"map.list\"></article-list>\n          </template>\n        </div>\n      </div>\n      <div class=\"pagination\" v-if=\"page.totalPage > 1\">\n        <el-pagination\n          background layout=\"total, prev, pager, next, jumper\"\n          :total=\"page.totalCount\"\n          v-model:currentPage=\"page.pageCurrent\"\n          v-model:pageSize=\"page.pageSize\"\n          @current-change=\"handleCurrentChange\"\n        >\n        </el-pagination>\n      </div>\n    </div>\n  </NuxtLayout>\n</template>\n\n<script setup>\nimport { teacherSearch } from \"@/api/teacher.js\";\nimport { courseSearch } from \"@/api/course.js\";\nimport { articleSearch } from \"@/api/article.js\";\nimport { gradeSearch } from \"@/api/grade.js\";\nimport { getStore, setStore } from \"@/utils/storage\";\nimport {Delete} from \"@element-plus/icons-vue\";\nimport cookie from \"@/utils/cookies\";\n\nlet cookieData = cookie.getShop()\nuseHead({\n  title: \"搜索结果-\" + cookieData.shopName,\n});\nconst route = useRoute();\nconst map = reactive({\n  value: \"\",\n  tab: 1,\n  list: [],\n  searchHistory: [],\n  tabList: [\n    {\n      name: \"课程\",\n      tabType: 1,\n    },\n    {\n      name: \"班级\",\n      tabType: 2,\n    },\n    {\n      name: \"讲师\",\n      tabType: 3,\n    },\n    {\n      name: \"资讯\",\n      tabType: 4,\n    },\n  ],\n});\nconst page = reactive({\n  totalCount: 0,\n  pageCurrent: 1,\n  pageSize: 20,\n  totalPage: 1\n});\nconst ctrl = reactive({\n  loading: false,\n});\n\nwatch(\n  route,(newValue, oldValue) => {\n    map.value = newValue.params.value;\n    getList();\n  }\n);\nconst handleCurrentChange = (v) => {\n  page.pageCurrent = v\n  document.querySelector('#app').scrollTop = 0\n  getList(false)\n}\nconst clickItem = (d) => {\n  map.tab = d;\n  getList();\n};\nconst clickHistory = (d) => {\n  map.value = d\n  getList()\n}\nconst deleteHistory = () => {\n  map.searchHistory = []\n  setStore('searchHistory',map.searchHistory)\n}\nconst getCoursePage = () => {\n  ctrl.loading = true;\n  courseSearch({\n    pageCurrent: page.pageCurrent,\n    pageSize: page.pageSize,\n    searchContent: map.value,\n  })\n    .then((res) => {\n      if (res) {\n        map.list = res.list || [];\n        page.pageCurrent = res.pageCurrent;\n        page.totalCount = res.totalCount;\n        page.totalPage = res.totalPage;\n      }\n      ctrl.loading = false;\n    })\n    .catch(() => {\n      ctrl.loading = false;\n    });\n};\nconst getGradePage = () => {\n  ctrl.loading = true;\n  gradeSearch({\n    pageCurrent: page.pageCurrent,\n    pageSize: page.pageSize,\n    searchContent: map.value,\n  })\n    .then((res) => {\n      if (res) {\n        map.list = res.list || [];\n        page.pageCurrent = res.pageCurrent;\n        page.totalCount = res.totalCount;\n        page.totalPage = res.totalPage;\n      }\n      ctrl.loading = false;\n    })\n    .catch(() => {\n      ctrl.loading = false;\n    });\n};\nconst getTeacherPgae = () => {\n  ctrl.loading = true;\n  teacherSearch({\n    pageCurrent: page.pageCurrent,\n    pageSize: page.pageSize,\n    searchContent: map.value,\n  })\n    .then((res) => {\n      if (res) {\n        map.list = res.list || [];\n        page.pageCurrent = res.pageCurrent;\n        page.totalCount = res.totalCount;\n        page.totalPage = res.totalPage;\n      }\n      ctrl.loading = false;\n    })\n    .catch(() => {\n      ctrl.loading = false;\n    });\n};\nconst getArticlePage = () => {\n  ctrl.loading = true;\n  const d = {\n    pageCurrent: page.pageCurrent,\n    pageSize: page.pageSize,\n    searchContent: map.value,\n  }\n  articleSearch(d)\n    .then((res) => {\n      if (res) {\n        map.list = res.list || [];\n        page.pageCurrent = res.pageCurrent;\n        page.totalCount = res.totalCount;\n        page.totalPage = res.totalPage;\n      }\n      ctrl.loading = false;\n    })\n    .catch(() => {\n      ctrl.loading = false;\n    });\n};\nconst getList = (bool = true) => {\n  if(bool) {\n    page.pageCurrent = 1;\n    page.pageSize = 20;\n    map.list = [];\n  }\n  if(map.value) {\n    if(map.searchHistory.indexOf(map.value) > -1) {\n      const index = map.searchHistory.indexOf(map.value)\n      map.searchHistory.splice(index, 1)\n      map.searchHistory.unshift(map.value)\n    } else {\n      map.searchHistory.unshift(map.value)\n    }\n    setStore('searchHistory', map.searchHistory)\n  }\n  if (map.tab === 1) {\n    getCoursePage();\n  }\n  if( map.tab === 2){\n    getGradePage()\n  }\n  if (map.tab === 3) {\n    getTeacherPgae();\n  }\n  if (map.tab === 4) {\n    getArticlePage();\n  }\n};\nonMounted(() => {\n  map.value = route.params.value;\n  map.tab = route.query.tab ? +route.query.tab : 1;\n  if(!getStore('searchHistory')) {\n    setStore('searchHistory', [])\n  } else {\n    map.searchHistory = JSON.parse(getStore('searchHistory'))\n  }\n  getList();\n});\n</script>\n\n<style lang=\"scss\" scoped>\n.box_layout{\n  margin-top: -20px;\n}\n.search_row {\n  position: fixed;\n  top: 66px;\n  background: #fff;\n  width: 100%;\n  z-index: 100;\n}\n.search_row_box {\n  width: 1020px;\n  margin: auto;\n  display: flex;\n  justify-content: space-between;\n  padding-top: 10px;\n  margin-bottom: 10px;\n  .search_input {\n    width: 880px;\n    height: 50px;\n    font-size: 14px;\n    :deep(.el-input__inner) {\n      height: 50px;\n      line-height: 50px;\n      padding-left: 15px;\n    }\n  }\n  .search_btn {\n    width: 130px;\n    height: 50px;\n    .icon-icon_Search {\n      font-size: 20px;\n      margin-right: 5px;\n    }\n  }\n}\n.search_history_row {\n  width: 100%;\n  background: #fff;\n  .white_space {\n    height: 80px;\n    background: #fff;\n    width: 100%;\n  }\n}\n.search_history_row_box {\n  width: 1020px;\n  margin: auto;\n  display: flex;\n  column-gap: 10px;\n}\n.historys {\n  width: 880px;\n  div {\n    padding: 5px 10px;\n    background: #F6F8FB;\n    border-radius: 5px;\n    display: inline-block;\n    margin: 0 10px 10px 0;\n    cursor: pointer;\n  }\n}\n.delete {\n  padding: 0px 10px;\n  height: 30px;\n  line-height: 30px;\n  display: flex;\n  align-items: center;\n  column-gap: 2px;\n  color: #F61818;\n  background: #F6F8FB;\n  border-radius: 5px;\n  cursor: pointer;\n}\n.content_box {\n  width: 1200px;\n  margin: auto;\n}\n.category_list {\n  margin-top: 20px;\n  background: #fff;\n  padding: 10px;\n  border-radius: 5px;\n  padding-bottom: 0;\n  margin-bottom: 20px;\n  .items {\n    display: inline-block;\n    margin-right: 20px;\n    margin-bottom: 5px;\n    padding: 1px 10px;\n    padding-bottom: 10px;\n    border-radius: 5px;\n    font-size: 16px;\n    cursor: pointer;\n  }\n  .active {\n    color: #2256f6;\n    background: #fff;\n    position: relative;\n    &::after {\n      content: \"\";\n      position: absolute;\n      width: 20px;\n      height: 3px;\n      background: #2256f6;\n      bottom: 0px;\n      left: 0;\n      right: 0;\n      margin: auto;\n    }\n  }\n}\n.pagination {\n  text-align: center;\n  margin-bottom: 30px;\n}\n</style>\n"],"names":["cookieData","cookie","getShop","useHead","title","shopName","route","useRoute","map","reactive","value","tab","list","searchHistory","tabList","name","tabType","page","totalCount","pageCurrent","pageSize","totalPage","ctrl","loading","watch","newValue","oldValue","params","handleCurrentChange","v","document","querySelector","scrollTop","getList","deleteHistory","setStore","bool","indexOf","index","splice","unshift","courseSearch","searchContent","then","res","catch","gradeSearch","teacherSearch","d","articleSearch","onMounted","query","getStore","JSON","parse"],"mappings":"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"}