使用项目和字段实现Bootstrap-vue表格的列跨度2。

huangapple go评论53阅读模式
英文:

Bootstrap-vue table with column span 2 by using items and fields

问题

我正在使用vuejs2和bootstrap vue进行项目。我被要求制作类似于这样的UI(只是UI的一个想法):

解释我卡住的部分,我想要实现一个具有跨两列的标题(就像红色部分)并在该标题下放置两个数据项(就像黄色部分)的UI。

根据bootstrap vue的文档,我知道我可以硬编码布局,但由于我必须连接到API,我希望(也必须)使用:item:fields来做。就像这样:

<b-table
  bordered
  responsive
  class="mt-2"
  :fields="tableFields"
  :items="tableData"
>
  <!--
    我如何在这里实现UI
  -->
</b-table>

我想问一下,如何使用b-table来实现这个UI?

英文:

I am doing a project with using vuejs2 and bootstrap vue. I was asked to do the ui like this (just an idea of the ui):
使用项目和字段实现Bootstrap-vue表格的列跨度2。

Explanation of the part I stuck, I want to achieve a ui that have a header with column span 2 (like red part) and put 2 data under that header (like yellow part)

From the document of bootstrap vue, I know that I can hardcode the layout, but as I have to connect to the api, I wish to use (and have to use) the :item and :fields to do. Just like this:

&lt;b-table
  bordered
  responsive
  class=&quot;mt-2&quot;
  :fields=&quot;tableFields&quot;
  :items=&quot;tableData&quot;
&gt;
  &lt;!--
    how can I do the ui in here
  --&gt;
&lt;/b-table&gt;

I would like to ask how could I achieve the ui with b-table

答案1

得分: 2

对于这个功能,需要使用scoped slots:items:fields 用于简单的表格渲染。您需要更多的布局控制。

使用 b-table 与 Vue 指令:

<template>
  <b-table responsive class="mt-2">
    <thead>
      <tr>
        <th colspan="2">特殊标题</th>
        <!-- 其他标题在这里 -->
      </tr>
    </thead>
    <tbody>
      <tr v-for="(item, index) in data" :key="index">
        <td>{{ item.field1 }}</td>
        <td>{{ item.field2 }}</td>
        <!-- 其他单元格在这里 -->
      </tr>
    </tbody>
  </b-table>
</template>
    
<script>
export default {
  data() {
    return {
      data: [
        // 您的数据放在这里
      ]
    }
  }
}
</script>

这样,您可以自定义表格的布局并更改所需的内容。

希望这有所帮助!🍀

英文:

for this feature, scoped slots needed to be used. :items and :fields are used for simple table rendering. You need more control on the layout.

Use b-table along with vue directives:

&lt;template&gt;
  &lt;b-table responsive class=&quot;mt-2&quot;&gt;
    &lt;thead&gt;
      &lt;tr&gt;
        &lt;th colspan=&quot;2&quot;&gt;Special Header&lt;/th&gt;
        &lt;!-- Other headers go here --&gt;
      &lt;/tr&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
      &lt;tr v-for=&quot;(item, index) in data&quot; :key=&quot;index&quot;&gt;
        &lt;td&gt;{{ item.field1 }}&lt;/td&gt;
        &lt;td&gt;{{ item.field2 }}&lt;/td&gt;
        &lt;!-- Other cells go here --&gt;
      &lt;/tr&gt;
    &lt;/tbody&gt;
  &lt;/b-table&gt;
&lt;/template&gt;

&lt;script&gt;
export default {
  data() {
    return {
      data: [
        // Your data goes here
      ]
    }
  }
}
&lt;/script&gt;

That way, you can customize layout of table indivually and change what you need.

Hope this helps! 🌷

huangapple
  • 本文由 发表于 2023年7月10日 11:50:30
  • 转载请务必保留本文链接:https://go.coder-hub.com/76650589.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定