@ekzotika

Как сделать так, чтобы форма выводилась между строками таблицы?

Как сделать так, чтобы форма при нажатии определенной кнопки выводилась между строками таблицы (1 раз)?

<table class="table" ref="table">
                <thead>
                    <tr>
                        <th>City</th>
                        <th>Address</th>
                        <th>Distributor</th>
                        <th>Email</th>
                        <th>Site</th>
                        <th>State</th>
                        <th>Edit</th>
                        <th>Delete</th>
                    </tr>
                </thead>

                <tbody class="s" v-for="(items, customer) in grouped()">
                    <tr>
                        <td colspan="8" class="row-filial"><h4 class="row-filial__h">{% verbatim %}{{ customer }}{% endverbatim %}</h4><button class="btn-default row-filial__button" @click="showModalToNew(customer)"><i class="ion-plus"></i>Новый филиал</button><a @click="showModalToEditCustomer(customer)"><span class="row-filial__edit iconify" data-icon="ion-create-outline" data-inline="false"></span></a>
                                <a @click="deleteCustomer(customer)"><span class="iconify" data-icon="ion:trash" data-inline="false"></span></a></td>
                    </tr>
                    <tr v-if="isModalCustomerVisible">
                        <td colspan="8"><customer-edit-form v-if="isModalCustomerVisible" @close="isModalCustomerVisible = false">
                            <h3 slot="header">{% verbatim %}{{ header }}{% endverbatim %}</h3>

                                    <h4 slot="body">Sap</h4>
                                    <input slot="body" type="text" v-model="currentSapCustomer"/>

                                    <h4 slot="body">Sap_be</h4>
                                    <input slot="body" type="text" v-model="currentSapBeCustomer"/>

                                    <h4 slot="body">Name</h4>
                                    <input slot="body" type="text" v-model="currentNameCustomer"/>

                                    <h4 slot="body">Name_en</h4>
                                    <input slot="body" type="text" v-model="currentNameEnCustomer"/>

                            <div slot="footer" class="footer-modal-buttons">
                                <button class="footer-modal-buttons" v-if="header === 'New Customer'" @click="insertCustomer">
                                                OK
                                </button>

                                <button class="footer-modal-buttons" v-if="header === 'Edit Customer'" @click="editCustomer">
                                                OK
                                </button>

                                <button class="footer-modal-buttons__cancel" @click="closeModal">
                                                Отменить
                                </button>
                            </div>
                        </customer-edit-form></td>
                </tr>
                    <tr v-for="item in items">
                                <!--<td>{% verbatim %}{{ item.id }}{% endverbatim %}</td>-->
                                <td> {% verbatim %}{{ item.address.locality.name }}{% endverbatim %}</td>
                                <td v-if="item.address.sub_locality"> {% verbatim %}{{ item.address.sub_locality }}, {{ item.address.raw_data }}{% endverbatim %}</td>
                                <td v-if="!item.address.sub_locality">{% verbatim %}{{ item.address.raw_data }}{% endverbatim %}</td>
                                <td>{% verbatim %}{{item.distributor.name}}{% endverbatim %}</td>
                                <td v-if="item.email !== 'nan'">{% verbatim %}{{item.email}}{% endverbatim %}</td>
                                <td v-if="item.email == 'nan'"></td>
                                <td>{% verbatim %}{{item.site}}{% endverbatim %}</td>
                                <td>{% verbatim %}{{item.state.name}}{% endverbatim %}</td>
                                <td><a @click="showModalToEdit(item.id, item.address, item.email, item.site, item.customer, item.distributor, item.state)"><span class="iconify" data-icon="ion-create-outline" data-inline="false"></span></a></td>
                                <td><a @click="deleteCustomerOffice(item.id)"><span class="iconify" data-icon="ion:trash" data-inline="false"></span></a></td>
                    </tr>
                </tbody>
        </table>


Хочу, чтобы при нажатии на @click="showModalToEditCustomer(customer)" выводилась форма <customer-edit-form/>. Но если ставлю, как сейчас, то она выводится столько раз, сколько у меня сейчас for соответственно. Как сделать так, чтобы она выводилась один раз, под той строкой, куда я её поставила?
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
fallus
@fallus
Как вариант, можно так.
<tbody class="s" v-for="(items, customer, idx) in grouped()">


и <tr v-if="isModalCustomerVisible && idx === 0">
(или прям на <customer-edit-form /> повесить доп. условие idx === 0. В зависимости от того, нужно ли всю <tr> убирать или только <customer-edit-form />)

* на сколько помню, третий параметр в цикле — номер текущей итерации типо, вроде. Если так, то всё будет работать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы