+高度な検索ページ

+高度な検索ページ

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(合計行)を返します; 
    }
  1. 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(); 
            }



おすすめ

転載: www.cnblogs.com/htq29study/p/12080159.html