+高度な検索ページ
2.1背景
1.BaseQuery
パブリッククラスBaseQuery {
//現在のページ:デフォルト1L
プライベートロングページ= 1L;
ページ数が//デフォルト:10L
プライベートロングのpageSize = 5L;
//パブリックフィールド、意味:キーワード
プライベート文字列をKEYWORDS;
//増加gerStart()、第1のページングデータを設定するために使用されるこのページがどのように多くの
パブリックロング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>
/ ** * [ツール]タブ *合計 *行 * / publicクラスPageList <T> { プライベートロング合計;作品の//総数 プライベートリスト<T>行=新しい ArrayListを(); // このページのクエリデータ 公共PageList (合計長、リスト<T>行){ this.total =総; this.rows =行; }
5.MountingsMapper.xml
<名前空間マッパー= "cn.itsource.crm.mapper.MountingsMapper"> <SELECT ID = "のfindAll" resultTypeと= "枠。"> マウンティングSELECT * FROM </選択> <SQL ID = "wheresql"> <もしテスト=」 != NULLとキーワード= '' "> KEYWORDS <ここ> と連結などpartsname( '%'、#{キーワード}、 '%') </場所> </ IF> </ SQL> <! -高级查询、总条数- > <。SELECT ID = "queryTotal" resultTypeと= "長い"のParameterType = "MountingsQuery"> マウントからSELECT COUNT(*) <REFID = "wheresql"> </ include>の含める > </選択 !データ合計は、このページ- - > < <SELECT ID = "queryRowsは"のParameterType = "MountingsQuery" resultTypeと= "枠。"> マウントSELECT * FROM <含むREFID = "wheresql"> </ include>の リミット## {pageSizeを}、{開始} </選択> 挿入< ID = "保存"の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} SELECT * FROM </選択> </マッパー>
6.MountingsController
//高级查询 @RequestMapping(値= "/クエリ"、メソッド= 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条件お問い合わせ
結合事象:ボタンを準備1.
<EL-フォーム項目> <EL-ボタンタイプ= "主" V-上:クリック= "getMountings">查询</ EL-ボタン> </ EL-フォーム項目>
返されるデータ内の解像度の合計数を取得する要求を送信するための背景には、常に現在のページで、ページを更新
ユーザーの//リスト getMountings(){ letのパラ= { //現在のページを取得 ページ:this.page、 KEYWORDS:this.filters.keyWordsを }; //リフレッシュ効果 this.listLoading = trueに、 //NProgress.startを() ; //getUserListPage(para).then((res)=> { axios //送信要求 。このhttp.patch $( '/取付け/クエリ'、パラ).then(RES => { の//総数 この= res.data.total .total; //現在のページの合計データ this.mountings = res.data.rows。 this.listLoading = falseは、 //NProgress.done()。 }); }、
2.2.2ページング
タブストリップを準備する1
< -分页、工具条- !> <EL-COL:スパン= "24"クラス= "ツールバー"> <EL-改ページレイアウト= "PREV、ページャ、次の" @電流の変化= "handleCurrentChange":ページ-size = "5":合計= "合計"> </ EL-ページ付け> </ EL-COL>
2.コールページング方法
handleCurrentChange(ヴァルは){ //ヴァル:受信は、ページ情報所望 this.page =ヴァルと、 this.getMountings(); }