<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      輸入搜索、分組展示選項、下拉選取,全局跳轉頁,el-select 實現 —— 后端數據處理代碼,拋磚引玉展思路

      詳細前端代碼寫于上一篇:輸入搜索、分組展示選項、下拉選取,el-select 實現:即輸入關鍵字檢索,返回分組選項,選取跳轉到相應內容頁 —— VUE項目-全局模糊檢索

      【效果圖】:分組展示選項 =>【提供界面操作體驗】

      【mybatis】:多數據表抓取數據

       
      	<select id="findNews" resultType="com.bootdo.search.vo.SearchDetail">
      		SELECT      n.cid           AS srcId,
      		            pt.id           AS typeId,
      		            pt.type_key     AS typeKey,
      		            pt.page_type    AS pageType,
      		            pt.page_name    AS srcTypeName,
      		            n.title         AS srcName,
      		            n.summary       AS alias,
      		            pt.page_path    AS srcPath
              FROM a_news n
              LEFT JOIN a_product_type pt ON n.type_id = pt.id
              WHERE n.sys_id = #{sysId} AND n.is_enabled = 0 AND (n.title LIKE #{query} OR n.summary LIKE #{query} OR n.content LIKE #{query})
              LIMIT 20
      	</select>
       
      	<select id="findProducts" resultType="com.bootdo.search.vo.SearchDetail">
              SELECT      pt.id            AS srcId,
      		            pt.page_type    AS pageType,
      		            pt.page_name    AS srcTypeName,
                          pt.type_name     AS srcName,
                          pt.type_key     AS alias,
                          pt.page_path    AS srcPath
              FROM a_product_type pt
              WHERE  pt.sys_id = #{sysId} AND pt.is_deleted = 0 AND pt.type_name LIKE #{query}
              LIMIT 20
      	</select>
       
          <select id="findItemInfos" resultType="com.bootdo.search.vo.SearchDetail">
      		SELECT      n.cid           AS srcId,
      		            pt.id           AS typeId,
      		            pt.type_key     AS typeKey,
      		            pt.page_type    AS pageType,
      		            pt.page_name    AS srcTypeName,
      		            pt.type_name    AS srcName,
      		            pt.type_name    AS alias,
      		            pt.page_path    AS srcPath
              FROM a_item_info n
              LEFT JOIN a_product_type pt ON n.type_id = pt.id
              WHERE n.sys_id = #{sysId} AND n.is_enabled = 0 AND n.content LIKE #{query}
              LIMIT 20
      	</select>

      【java】:各數據源進一步整理、合并、分組

          public List<SearchVO> search(Map<String, Object> params){
              Map<String, SearchDetail> map = new HashMap<>();
              List<SearchDetail> products = searchDao.findProducts(params);
              List<SearchDetail> itemInfos = searchDao.findItemInfos(params);
              List<SearchDetail> news = searchDao.findNews(params);
              for(SearchDetail sd : products){
                  String srcPath = sd.getSrcPath()+"?typeKey="+sd.getAlias();
                  sd.setSrcPath(srcPath);
                  map.put(srcPath, sd);
              }
              for(SearchDetail sd : itemInfos){
                  this.changePath(map, sd);
              }
              for(SearchDetail sd : news){
                  this.changePath(map, sd);
              }
              return groupSearchDetailsByTypeName(map.values());
          }
       
          private void changePath(Map<String, SearchDetail> map, SearchDetail sd){
              String srcPath = sd.getSrcPath();
              if(StringUtils.equals(srcPath, "/n")){
                  srcPath = srcPath+"/nId?showDetailNewId="+sd.getSrcId()+"&menuSearch=true";
                  sd.setSrcPath(srcPath);
              }
              if(StringUtils.equals(srcPath, "/p")){
                  srcPath = srcPath+"/pId?showDetailNewId="+sd.getSrcId()+"&menuSearch=true&typeId="+sd.getTypeId()+"&typeKey="+sd.getTypeKey();
                  sd.setSrcPath(srcPath);
              }
              map.put(srcPath, sd);
          }
       
          private List<SearchVO> groupSearchDetailsByTypeName(Collection<SearchDetail> sds) {
              // 使用 Collectors.groupingBy 按 srcTypeName(即 label)分組
              Map<Integer, List<SearchDetail>> groupedByTypeName = sds.stream()
                      .collect(Collectors.groupingBy(SearchDetail::getPageType));
       
              // 將分組后的數據轉換為 List<SearchVO>
              List<SearchVO> searchVOList = new ArrayList<>();
              for (Map.Entry<Integer, List<SearchDetail>> entry : groupedByTypeName.entrySet()) {
                  SearchVO searchVO = new SearchVO();
                  List<SearchDetail> value = entry.getValue();
                  searchVO.setLabel(value.get(0).getSrcTypeName());
                  searchVO.setOptions(value);
                  searchVOList.add(searchVO);
              }
              return searchVOList;
          }

      vue、js

      <el-row :gutter="20" style="display: flex;  border-radius: 5px;" >
      	<el-col style="margin-bottom: 7px;">
      		<lilo-group-select @change="groupSelectChange" :multiple="false" :likeQuery="true" :searchApi="'/api/list/search'" clearable placeholder="請輸入快速搜索" ></lilo-group-select>
      	</el-col>
      </el-row>
       
       
      groupSelectChange(option) {
      	console.log("下拉選項選中:"+JSON.stringify(option));
      	if(option==''|| option.srcPath=='')return;
      	// this.$router.push(option.srcPath);
      	this.$router.push(option.srcPath).catch(err => {
      		if (err.name !== 'NavigationDuplicated') {
      			// 處理其他可能的錯誤
      			console.error(err);
      		}
      		// 對于 NavigationDuplicated 錯誤,可以選擇不做任何處理
      	});
      },
      

      【效果圖】:分組展示選項 =>【提供界面操作體驗】


      詳細前端代碼寫于上一篇:輸入搜索、分組展示選項、下拉選取,el-select 實現:即輸入關鍵字檢索,返回分組選項,選取跳轉到相應內容頁 —— VUE項目-全局模糊檢索
      ————————————————

      本文同步發表于:https://blog.csdn.net/wangqingbo0829/article/details/145774974

      posted @ 2025-02-23 14:28  BGStone  閱讀(45)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品一区二区三区蜜桃麻豆| 久久人妻公开中文字幕| 日韩中文字幕av有码| 国产高清在线精品一区二区三区 | 巨胸不知火舞露双奶头无遮挡| 日本边添边摸边做边爱| 在国产线视频A在线视频| 日韩老熟女av搜索结果| 久久久亚洲欧洲日产国码606| 18分钟处破好疼哭视频在线观看| 亚亚洲视频一区二区三区| 日韩在线观看精品亚洲| 亚洲精品天堂在线观看| 精品视频一区二区福利午夜| 国产愉拍精品手机| 日本一区二区a√成人片| 五月天天天综合精品无码| 一日本道伊人久久综合影| 亚洲一级特黄大片在线播放 | 97中文字幕在线观看| 日本少妇xxx做受| 亚洲午夜精品国产电影在线观看 | 成人国产精品一区二区不卡| 韩国三级+mp4| 男人的天堂av一二三区| 午夜成人无码福利免费视频| 蜜桃视频一区二区三区四| 国产激情艳情在线看视频| 妖精视频亚州无吗高清版| 熟妇人妻av无码一区二区三区| 亚洲精品专区永久免费区| 在线精品视频一区二区三四| 中文字幕有码无码人妻在线| 日韩精品一区二区三区中文无码| 性色av无码久久一区二区三区| 在线中文字幕国产一区| 日本大片在线看黄a∨免费| 最新国产AV最新国产在钱| 国产卡一卡二卡三免费入口| 欧美丰满熟妇hdxx| 国产精品白浆在线观看免费 |