如何在vue-good-table内动态生成的输入下方插入弹出/下拉菜单?

时间:2018-10-31 20:15:43

标签: javascript vue.js

正如标题所示,我想在单个列的“过滤器”输入下插入一个下拉菜单或弹出窗口,如下所示,并用红色圆圈圈出(我对删除部分的恶意表示歉意-这是一个拥有专有信息的企业级应用程序) :

A portion of the table showing the column filter inputs

我想要的功能是能够单击输入,并在其下方具有一个下拉/弹出窗口显示,其中包含两个附加输入和一个范围滑块。

使用这些规范创建下拉菜单/弹出窗口不是问题。我遇到的问题是,这些列过滤器输入是由vue-good-table插件动态生成的。

我已经成功地添加了Flatpickr日期选择器,通过定位输入的占位符属性来过滤表中其他位置的输入,如下面的代码和图片所示:

            addDatepickers() {
                let inputs = [
                    'input[placeholder="Filter Received"]',
                    'input[placeholder="Filter Effective"]',
                    'input[placeholder="Filter Need By Date"]'
                ];
                inputs.forEach(function (input) {
                    flatPickr(input, {
                        dateFormat: "m-d-Y",
                        mode: "range",
                        allowInput: true
                    });
                });
            },

picture of section of table showing flatpickr successfully displayed below column filter input, triggered on click

上面的功能运行良好,主要是因为我能够调用Flatpickr插件作为一个函数,并将其传递给以列过滤器输入为目标的forEach。

尝试处理弹出/下拉功能时,它似乎不太方便。据我所知,弹出/下拉菜单可能需要是标准的HTML标记(我认为如果没有特别的笨拙/笨拙,就无法将其传递给forEach)。

我对Vue还是很陌生-因此,我敢肯定,有些可能性我被忽略了。我希望与大家见面,希望有人可能遇到过类似的问题,并且找到了一种解决问题的优雅方法。

如前所述,我正在使用的表插件是vue-good-table。我没有在他们的文档或问题中找到针对此特定用例的解决方案。同样,通过Vue的文档,我发现了点点滴滴可能会有所帮助,但是我至今仍无法将它们组合起来以找到解决方案。

供参考:

https://xaksis.github.io/vue-good-table/guide/ https://github.com/xaksis/vue-good-table/issues/453

编辑:包括以下codeandbox,其中包含一个功能/设置几乎与我正在生产的产品相同的表:

https://codesandbox.io/s/73vpxn13z6

0 个答案:

没有答案