vue динамическая b-таблица выравнивает текст справа, если столбец числовой

#javascript #vue.js

Вопрос:

Я использую динамическую b-таблицу. хотите выровнять по правому краю, если столбец числовой, иначе выровняйте по левому краю . Не могли бы вы, пожалуйста, помочь мне достичь этого ?

Комментарии:

1. Что такое b-table ?

Ответ №1:

Если вы можете указать, в каком столбце будут храниться числовые значения, вы можете привязать класс ко всему столбцу в полях ваших данных:

   data() {
    return {
      fields: [
        { key: "first", label: "Full Name", class: "left" },
        { key: "last", label: "Last Name", class: "left" },
        { key: "age", label: "Age", class: "right" }
      ],
      items: [
        { first: "John", last: "Doe", age: 42 },
        { first: "Jane", last: "Doe", age: 36 },
        { first: "Rubin", last: "Kincade", age: 73 }
      ]
    };
  }
 

Если вы не можете определить, в каком столбце будут содержаться числовые данные, в соответствии с этим документом вы можете попробовать привязать класс на основе значения ячейки:

     <b-table fixed responsive :items="items" :fields="fields">
      <template #cell()="data">
        <span :class="{ right: typeof data.value == 'number', left: typeof data.value != 'number' }">
          {{ data.value }} </span>
      </template>
    </b-table>
 

Но тогда вам нужно настроить отображение на гибкое и использовать выравнивание содержимого для установки положения в ячейке (выравнивание по тексту не будет работать), например:

 .right {
  display: flex;
  justify-content: right;
}
.left {
  display: flex;
  justify-content: left;
}
 

Надеюсь, я помог. Приятного кодирования.