+ 고급 검색 페이지
2.1 배경
1.BaseQuery
공공 클래스 BaseQuery {
// 현재 페이지 : 기본 1L
개인 긴 페이지 = 1L;
페이지 // 기본의 수 : 10L
개인 긴 pageSize가 = 5L;
// 공공 분야, 의미 : 키워드
개인 문자열 키워드를;
// 증가 gerStart ()는,이 페이지는 얼마나 많은 첫 번째 페이징 데이터를 설정하는 데 사용
공공 긴 getStart () {
반환 ( .은이 페이지 - . 1) * . 다음은이 pageSize로서을;
}
.....
}
2.IBaseService <T>
// 고급 질의 및 페이징
PageList 쿼리 ( BaseQuery BaseQuery);
3.BaseServiceImpl <T>
@ 페이징 쿼리 : 조각의 총 수,이 페이지의 데이터는 @Override 공공 PageList 쿼리 (BaseQuery BaseQuery) { //이 페이지의 데이터 행 목록 <T> = baseMapper.queryRows 행 (BaseQuery) 에서 System.out.println ( "- ------- --- BaseServiceImpl 층 "); //이의 총 개수 체크 아웃 긴 총 = baseMapper.queryTotal (BaseQuery를) 새로운 새로운 PageList (총 행을 반환); }
-
basic_util ----> PageList <T>
/ ** * 도구 탭 * 전체 * 행 * / 공용 클래스 PageList <T> { 개인 긴 총, 조각 // 총 개인 목록 <T> 행 = 새로운 ArrayList를 (); // 이 페이지 쿼리 데이터 공개 PageList (총 긴, 목록 <T> 행) { this.total = 총; this.rows = 행; }
5.MountingsMapper.xml
<공간 매퍼 = "cn.itsource.crm.mapper.MountingsMapper"> <SELECT ID = "findall은"resultType = "마운팅"> 마운팅 *에서 선택 </ 선택> <SQL ID = "wheresql"> <하는지 테스트 = " ! = null이 키워드와 키워드 = '' '>! <어디에> 와 같은 partsname CONCAT ('% '# {키워드},'% ') </ 여기서> </> 만약 </ SQL> <! -高级查询,总条数-> <SELECT ID = "queryTotal"resultType = "긴"parameterType = "MountingsQuery"> 마운팅에서 선택 수 (*) <REFID = "wheresql"> </ 포함> 포함 > </ 선택 >! - 데이터 총 페이지 - <을 <SELECT ID = "queryRows"parameterType = "MountingsQuery"resultType = "마운팅"> 마운팅 *에서 선택 </ include> 혹은 <REFID = "wheresql"등> 한계 번호가 시작 {}, # {pageSize가} </ 선택> <삽입 식 parameterType = "마운팅", "저장"> 마운팅 (partsname, 가격, NUM, warnnum, 문맥 CreateTime 더)에 삽입 된 값 (# {partsname}, # {가격}, # {NUM}, # {warnnum} # {상황}, # {CreateTime 더}) </ 삽입> <삭제 ID =이 parameterType = "긴"을 "삭제"> ID = # {ID가} 마운팅에서 삭제 </ 삭제> <업데이트 ID = "갱신"parameterType = "마운팅"> 업데이트 마운팅 세트 , partsname = # {partsname을} 가격 = # {가격} NUM = {# NUM} warnnum = {# warnnum} 컨텍스트 = {# 컨텍스트} CreateTime 더 = #} {CreateTime 더 ID = # {ID} </ 업데이트> "긴"<SELECT ID = "loadById"= parameterType resultType = "마운팅"> 마운팅 ID = # {ID}로부터 선택 * <선택 /> </ 매퍼>
6.MountingsController
//高级查询 @RequestMapping (값 = "/ 질의"METHOD = RequestMethod.PATCH) @ResponseBody 공개 PageList 쿼리 (@RequestBody MountingsQuery mountingsQuery) { 에서 System.out.println ( "进入高级查询"); 에서 System.out.println (mountingsQuery); PageList pageList = mountingsService.query (mountingsQuery); (개체 행 : pageList.getRows ())에 대한 { 에서 System.out.println (행); } pageList를 반환; }
2.2 프런트 엔드
2.2.1 조건 문의
바인딩 이벤트 : 버튼을 준비하십시오
<엘 형식 항목> <엘 버튼 타입 = "차"V-에 : 클릭 = "getMountings">查询</ 엘 버튼> </ 엘 형식 항목>
반환 된 데이터의 내부 고해상도의 총 수를 얻기 위해 요청을 보낼 2. 배경은 항상 현재 페이지, 페이지를 새로 고침입니다
사용자의 // 목록 getMountings () { 송출 파라 = { // 현재 페이지 얻을 페이지 : this.page, 키워드 : this.filters.keyWords을 }; // 새로 고침 효과 this.listLoading = true로; //NProgress.start을 () ; //getUserListPage(para).then((res) => { Axios의 // 전송 요청 .이 http.patch $ ( '/ 마운팅 / 쿼리', 파라) 그 때는 (RES => { 의 // 총 이 = res.data.total .total; // 현재 페이지 전체 데이터 this.mountings = res.data.rows; this.listLoading = 거짓; //NProgress.done (); }); },
2.2.2 페이징
탭 스트립을 준비하십시오
<-分页,工具条! -> <엘 - COL : 스팬 = "24"클래스 = "도구 모음"> <엘 매김 레이아웃 = "이전, 호출기, 다음"@ 현재의 변화 = "handleCurrentChange"페이지 - 크기 = "5"총 = "총"> </ 엘 매김> </ EL-COL>
페이징 메서드를 호출합니다
handleCurrentChange (발)는 { // 브로 : 수신 페이지 정보 요구 ; this.page 브로 = ()을 this.getMountings; }