반응형
스토어 게터를 기준으로 조건부로 b-테이블 열 표시/숨기기
사용자가 관리자인지 여부에 따라 테이블 열 'first_name'을 표시/숨깁니다.
내 테이블은 다음과 같습니다.
<b-table
striped
hover
small
stacked="sm"
selectable
select-mode="single"
show-empty
:items="allProducts"
:fields="productsFieldsForBTable"
:busy="isLoading"
primary-key="id"
>
<template slot="actions" slot-scope="data">
<select v-model="data.selected">
<option v-for="user in users" :key="user.id" :value="user.id">{{user.first_name}}</option>
</select>
</template>
</b-table>
다음은 productsFieldsFor상점 게터의 BT 테이블.
productsFieldsForBTable: () => {
return [
{
key: 'product_name',
sortable: true,
},
{
key: 'buying_price',
sortable: true,
},
{
key: 'notes',
sortable: true,
},
{
key: 'first_name',
label: 'User',
sortable: true,
},
// A virtual column for additional action buttons
{ key: 'actions', label: 'Actions' }
]
}
스토어 게터에는 열을 숨기거나 표시하는 데 사용할 isAdmin 플래그가 있습니다.
어떤 구문을 사용해야 하는지, 조건을 어디서 확인해야 하는지 잘 모르겠습니다.(b-table 태그 또는 계산 중?)
업데이트됨 -
스토어 자체에서 isAdmin 값에 액세스하려면 어떻게 해야 합니까?아래 표시된 바와 같이 입력기:
getters: {isAdmin: (상태, getters) => {returngeters.isLogged&&state.user.role === 'Admin'에서, ...
if(getter.isAdmin){ // how to access getters' isAdmin here? // this.$store.getters.isAdmin is not working here.
fields.push({
key: 'first_name',
label: 'User',
sortable: true
})
}
맵을 사용할 수 있습니다. Vuex 및 맵의 GettersproductFieldsForBTable
사용자 구성 요소에 대한 계산된 속성입니다.그런 다음 줄에 배열을 반환하는 대신 다음과 같은 작업을 수행합니다.
productsFieldsForBTable: (state, getters) => {
var fields = [
{
key: 'product_name',
sortable: true,
},
{
key: 'buying_price',
sortable: true,
},
{
key: 'notes',
sortable: true,
},
{
key: 'first_name',
label: 'User',
sortable: true,
},
// A virtual column for additional action buttons
{ key: 'actions', label: 'Actions' }
]
if(getters.isAdmin){
fields.push({
key: 'admin_field',
sortable: true,
})
}
return fields
}
관리 필드가 테이블 끝에 있는 것을 원하지 않는 경우에는 항상 다음을 수행할 수 있습니다.splice
대신 기능합니다.push
다음과 같은 방법으로 관리 항목을 작업 앞에 배치할 수 있습니다.
var index = 4 // index you want to insert the new column at
fields.splice(index, 0, { key: 'admin_field', sortable: true })
언급URL : https://stackoverflow.com/questions/56776083/conditionally-show-hide-b-table-column-based-on-store-getters
반응형
'programing' 카테고리의 다른 글
파이썬에서 모니터 해상도를 얻으려면 어떻게 해야 합니까? (0) | 2023.06.18 |
---|---|
여러 열을 함께 붙여넣기 (0) | 2023.06.18 |
Excel에서 대문자 분할 (0) | 2023.06.18 |
구체화된 보기를 항상 최신 상태로 유지하려면 어떻게 해야 합니까? (0) | 2023.06.18 |
C - time_t를 YYY-MM-DD 형식의 문자열로 변환 HH:MM:SS (0) | 2023.06.18 |