Динамические данные аккордеона в Vuejs - PullRequest
0 голосов
/ 12 октября 2018

Я создаю небольшое приложение в Vuejs, где у меня есть аккордеон, который получает данные о событиях каждого клика.Весь мой код состоит в следующем:

https://codeshare.io/2BjJby

В этом у меня есть функция, которая вызывается нажатием на каждую гармошку данных.Я могу получить дерево первого уровня соответствующим образом, что-то вроде этого:

test

Итак, здесь вы можете видеть, что у меня есть родитель Consultant, тогда у нас есть ребенокэлемент Design Architect тогда снова у нас есть дочерний элемент Consultant этот набор значений неверен, так как ответ, полученный от API, имеет 4 набора данных, и он отображает только один набор данных.Для отладки этого я сделал console.log(this.withRoles[name]) и в консоли я получаю 4 значения:

console

Как вы можете видеть выше console.log(this.specialisations[name]) и второеэто console.log(this.withRoles[name]), я не знаю, где я пропускаю, поэтому я поместил весь код в ссылку выше, элементы приходят из этого кода:

<div class="panel my-panel-warning" v-if="child3.id === child2.parent_id" v-for="child3 in withRoles[child2.name]">
    <div class="panel-heading">
        <a v-if="child3.parent_id==null" style="color: #ff4d0e; font-weight: bold" data-toggle="collapse" :data-parent="'#child2'+child3.id" :id="'child3'+child3.id" :href="'#with_role'+child3.id" @click="getWithSpecialisation(child3.id, child2.id, child3.name)">{{"With "+child3.name+" (0)"}}</a>
        <a v-else style="color: #0c2a52; font-weight: bold" data-toggle="collapse" :data-parent="'#child2'+child3.id" :id="'child3'+child3.id" :href="'#with_role'+child3.id" @click="getWithSpecialisation(child3.id, child2.id, child3.name)">{{"With "+child3.name+" (0)"}}</a>
    </div>
    <div class="my-panel-body">
        <div :id="'with_role'+child3.id" class="panel-collapse collapse">
            <div class="my-panel-body">
                <div class="panel my-panel-warning" v-for="child4 in withSpecialisations[child3.name]">
                    <div class="panel-heading">
                        <a v-if="child4.parent_id==null" style="color: #ff4d0e; font-weight: bold" data-toggle="collapse" :data-parent="'#child3'+child4.id" :id="'child4'+child4.id" :href="'#with_spec'+child4.id" @click="table(child4.id, child2.id, child4.name)">{{"With "+child4.name+" (0)"}}</a>
                        <a v-else style="color: #0c2a52; font-weight: bold" data-toggle="collapse" :data-parent="'#child3'+child4.id" :id="'child4'+child4.id" :href="'#with_spec'+child4.id" @click="table(child4.id, child2.id, child4.name)">{{"With "+child4.name+" (0)"}}</a>
                    </div>
                    <div class="my-panel-body">
                        .
                        .
                        .
                        .
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

И функция, которая выбирает данные:

getWithRoles(id, name) {
    axios.get('Conxn/api/industry-relationship/sub-roles?company_id='+this.company_id+'&role_id='+id, {headers: getHeader()}).then(response => {
        if(response.status === 200)
        {
            Vue.set(this.withRoles, name, response.data.with_roles)
            console.log(this.withRoles[name])
        }
    })
},

, и мой код прекрасно работает для следующего дерева, т.е.:

enter image description here

Я использую ту же концепцию, и яЯ не уверен, где я делаю ошибку, помогите мне с этим.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...