ag-grid-vue表格的一些問題總結(二)

對一繼續補充

1.cellStyle如果有兩個及其以上的值三個條件

第一種方式----最新上傳文件的樣式如下:

     {
          headerName: '最新文件上傳人員',
          field: 'UploadPersonnel',
          tooltipField: 'UploadPersonnel',
          sortable: true,
          cellStyle: function (params) {
            // return {
            //   color: params.value === '魯迅' ? '#88d068' : '#ff3366',
            //   background: params.value === '朱自清' ? '#88d068' : '#ff3366'
            // }
            const dic = { 魯迅: '#5676FC', 朱自清: '#2C9CFA', 錢鍾書: '#88D068' }
            return { color: '#fff', background: dic[params.value] }
          }
        },

第二種方式----文件狀態的樣式如下:

      {
          headerName: '文件狀態',
          field: 'status',
          tooltipField: 'status',
          sortable: true,
          cellStyle: function (params) {
            let color = '#25262e'
            if (params.value === '草稿') {
              color = '#b4b61a'
            } else if (params.value === '打印') {
              color = '#3a65ff'
            } else if (params.value === '訂裝') {
              color = '#1AB66C'
            } else if (params.value === '出售') {
              color = '#DC143C'
            }
            return { color: color }
          }
        },

2.是否出售有兩個變量

後臺傳值1或者0,前臺顯示是或否:

{
      headerName: '是否出售',
      field: 'yesno',
      tooltipField: 'yesno',
      sortable: true,
      tooltipValueGetter: function (params) {
        return params.value === '1' ? '是' : '否'
      },
      valueFormatter: function (params) {
        return params.value === '1' ? '是' : '否'
      }
    }

3.aggrid自帶的篩選器(一般在項目上不常用)

自帶篩選
具體代碼如下:

<!-- 第一步 加入這句話 :grid-options="gridOptions"-->
    <ag-grid-vue
            style="height: 400px;"
            :accented-sort="true"
            :row-height="30"
            :header-height="30"
            :column-defs="col"
            :row-data="tableList"
            class="ag-theme-balham"
            row-selection="multiple"
            :context="context"
            :default-col-def="defaultColDef"
            :grid-options="gridOptions"
            :suppress-no-rows-overlay="true"
            :enable-browser-tooltips="true"
            @grid-ready="onGridReady"
          >
      </ag-grid-vue>
//第二步 floatingFilter: true顯示篩選器, filter: true 開啓刷選
data () {
    return {
      context: { componentParent: this },
      gridApi: null,
      gridOptions: {
        // turn on floating filters
        floatingFilter: true // 篩選器
      },
       defaultColDef: {
        sortable: true,
        resizable: true,
        width: 150,
        menuTabs: [],
        editable: true, // 單元格可編輯
        filter: true // 開啓刷選
      }
    }
  }

4.外來的篩選器(過濾器)ps:重頭戲來咯

外來的過濾器
話不多說直接上代碼:

<!-- 搜索框-->
    <el-input
      v-model="key"
      placeholder="請輸入過濾器名稱..."
      @change="externalFilterChanged(key)"
    />
//在data中定義key: ''
//監聽key的變化,改變就調用externalFilterChanged方法
watch: {
    key: {
      handler: function (newVal, oldVal) {
        this.externalFilterChanged()
      },
      immediate: true
    }
  },
methods: {
  externalFilterChanged (newValue) {
      // ageType = newValue
      this.getData()// 這裏代表的是表格原本的值
      const newArr = []
      this.gridApi.onFilterChanged()
      const keys = this.key
      if (keys !== '') {
      // 這裏是循環遍歷把搜索框中內容同表格數據對比,
      // 包含的化重新組成數據賦值給tableList
        this.tableList.forEach(element => {
          if (element.UploadTime.includes(keys)) {
            newArr.push(element)
            this.tableList = newArr
          }
        })
        // 不包含就重新獲取
      } else {
        return this.getData()
      }
    }
}

下圖是執行結果:
結果
不懂可以評論,看到後一定回答。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章