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

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

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

      vxe-table 實現服務端篩選、分頁篩選

      vxe-table 實現服務端篩選、分頁篩選

      查看官網:https://vxetable.cn
      gitbub:https://github.com/x-extends/vxe-table
      gitee:https://gitee.com/x-extends/vxe-table

      table_filter_remote_pager

      配置 filter-config.remote 和 filter-change 與 clear-all-filter 事件,實現服務端篩選

      <template>
        <div>
          <vxe-grid v-bind="gridOptions" v-on="gridEvents"></vxe-grid>
        </div>
      </template>
      
      <script setup>
      import { ref, reactive } from 'vue'
      
      const queryFilterConfs = ref([])
      
      const pageVO = reactive({
        currentPage: 1,
        pageSize: 10,
        total: 0
      })
      
      const gridOptions = reactive({
        border: true,
        loading: false,
        height: 400,
        columnConfig: {
          resizable: true
        },
        filterConfig: {
          remote: true
        },
        pagerConfig: pageVO,
        columns: [
          { type: 'seq', width: 70 },
          { field: 'name', title: 'Name', minWidth: 300 },
          {
            field: 'role',
            title: 'Role',
            width: 240,
            filters: [
              { label: 'Develop', value: 'Develop' },
              { label: 'Test', value: 'Test' },
              { label: 'PM', value: 'PM' },
              { label: 'Designer', value: 'Designer' }
            ]
          },
          {
            field: 'sex',
            title: 'Sex',
            width: 200,
            filters: [
              { label: 'Man', value: 'Man' },
              { label: 'Women', value: 'Women' }
            ]
          },
          { field: 'age', title: 'Age', width: 200 },
          { field: 'address', title: 'Address', width: 300 }
        ],
        data: []
      })
      // 模擬后端接口
      const loadList = () => {
        const mockList = [
          { id: 10001, name: 'Test1', role: 'Develop', sex: 'Man', age: 28, num: '3.8', num2: '3.8', address: 'test abc' },
          { id: 10002, name: 'Test2', role: 'Test', sex: 'Women', age: 22, num: '511', num2: '511', address: 'Guangzhou' },
          { id: 10003, name: 'Test3', role: 'PM', sex: 'Man', age: 32, num: '12.8', num2: '12.8', address: 'Shanghai' },
          { id: 10004, name: 'Test4', role: 'Designer', sex: 'Women', age: 23, num: '103', num2: '103', address: 'test abc' },
          { id: 10005, name: 'Test5', role: 'Develop', sex: 'Women', age: 30, num: '56', num2: '56', address: 'Shanghai' },
          { id: 10006, name: 'Test6', role: 'Designer', sex: 'Women', age: 21, num: '49', num2: '49', address: 'test abc' },
          { id: 10007, name: 'Test7', role: 'Test', sex: 'Man', age: 29, num: '400.9', num2: '400.9', address: 'test abc' },
          { id: 10008, name: 'Test8', role: 'Develop', sex: 'Man', age: 48, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10009, name: 'Test9', role: 'Develop', sex: 'Man', age: 35, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10010, name: 'Test10', role: 'Develop', sex: 'Women', age: 29, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10011, name: 'Test11', role: 'Develop', sex: 'Man', age: 35, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10012, name: 'Test12', role: 'Test', sex: 'Man', age: 35, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10013, name: 'Test13', role: 'Develop', sex: 'Man', age: 23, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10014, name: 'Test14', role: 'Develop', sex: 'Women', age: 21, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10015, name: 'Test15', role: 'Develop', sex: 'Women', age: 35, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10016, name: 'Test16', role: 'Test', sex: 'Man', age: 35, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10017, name: 'Test17', role: 'Develop', sex: 'Man', age: 28, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10018, name: 'Test18', role: 'PM', sex: 'Women', age: 35, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10019, name: 'Test19', role: 'Designer', sex: 'Man', age: 35, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10020, name: 'Test20', role: 'Develop', sex: 'Man', age: 35, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10021, name: 'Test21', role: 'Designer', sex: 'Man', age: 51, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10022, name: 'Test22', role: 'PM', sex: 'Women', age: 64, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10023, name: 'Test23', role: 'PM', sex: 'Man', age: 67, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10024, name: 'Test24', role: 'Develop', sex: 'Women', age: 45, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10023, name: 'Test25', role: 'PM', sex: 'Man', age: 35, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10025, name: 'Test23', role: 'Develop', sex: 'Man', age: 59, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10026, name: 'Test26', role: 'Designer', sex: 'Women', age: 53, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10027, name: 'Test27', role: 'Develop', sex: 'Man', age: 35, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10028, name: 'Test28', role: 'Designer', sex: 'Man', age: 30, num: '5000', num2: '5000', address: 'test abc' },
          { id: 10029, name: 'Test29', role: 'Test', sex: 'Man', age: 25, num: '5000', num2: '5000', address: 'test abc' }
        ]
        gridOptions.loading = true
        const searchConfs = queryFilterConfs.value
        setTimeout(() => {
          const { pageSize, currentPage } = pageVO
          const result = searchConfs.length
            ? mockList.filter(item => {
              return searchConfs.every(fItem => {
                const callValue = item[fItem.field]
                return fItem.vals.some(val => `${callValue}`.indexOf(val) > -1)
              })
            })
            : mockList
          pageVO.total = result.length
          gridOptions.data = result.slice((currentPage - 1) * pageSize, currentPage * pageSize)
          gridOptions.loading = false
        }, 300)
      }
      const gridEvents = {
        pageChange ({ currentPage, pageSize }) {
          pageVO.currentPage = currentPage
          pageVO.pageSize = pageSize
          loadList()
        },
        filterChange ({ filterList }) {
          const searchConfs = filterList.map(item => {
            return {
              field: item.field,
              vals: item.values
            }
          })
          queryFilterConfs.value = searchConfs
          pageVO.currentPage = 1
          loadList()
        },
        clearAllFilter () {
          queryFilterConfs.value = []
          pageVO.currentPage = 1
          loadList()
        }
      }
      loadList()
      </script>
      

      https://gitee.com/x-extends/vxe-table

      posted @ 2025-07-28 15:23  可不簡單  閱讀(281)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 狠狠综合久久av一区二| 精品无码三级在线观看视频| 九九热在线视频免费观看| 国产av无码专区亚洲aⅴ| 精品一区二区三区在线观看l| 亚洲天堂av在线免费看| 国产老头多毛Gay老年男| 国产三级a三级三级| 无码精品人妻一区二区三区湄公河| 性色av一区二区三区精品| 国产精品中文第一字幕| 亚洲码亚洲码天堂码三区| 国产69精品久久久久99尤物| 中文字幕无码久久精品| 国产精品aⅴ免费视频| 亚洲精品成人7777在线观看| 国产精品黄色片| 久热中文字幕在线精品观| 国产视频精品一区 日本| 国产 浪潮av性色四虎| 国内永久福利在线视频图片 | 午夜精品福利亚洲国产| 热久在线免费观看视频| www国产亚洲精品久久网站| 国产精品一区二区传媒蜜臀| 欧美丰满熟妇xxxx性ppx人交| 日本免费人成视频在线观看| 国产午夜精品一区二区三区不卡| 一区二区三区鲁丝不卡| 一区二区丝袜美腿视频| 无码视频伊人| 亚洲日本一区二区三区在线播放| 99re6在线视频精品免费下载| 亚洲av伦理一区二区| 屏边| 熟女少妇精品一区二区| 国产综合视频一区二区三区| 久久99精品久久99日本| 国产男女猛烈无遮挡免费视频| 激情综合色区网激情五月| 国产91午夜福利精品|