Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / В vue.js2.5 vuetify v-data-table нет горизонтальны, vue.js2 vuetify / 5 сообщений из 5, страница 1 из 1
25.04.2018, 18:14
    #39636292
mstdmstd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В vue.js2.5 vuetify v-data-table нет горизонтальны, vue.js2 vuetify
Всем привет,

В Laravel 5.5/vue.js2.5/vuetify приложении я использую таблицы с данными v-data-table
и если полей много или в полях длинные строковые данные, то таблица с данными вылазиет справа и при попытке потянуть
мышкой вправо вся страница тянется вправо https://imgur.com/a/hgfzz , а не только таблица с данными.

Я взял таблицу из примера и расширил данные:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
<template>

	<v-container fluid>
		<v-flex xs12  >

			<v-data-table
					:headers="headers"
					:items="items"
					hide-actions
					class="elevation-1"
			>
				<template slot="items" slot-scope="props">
					<td>{{ props.item.name }}</td>
					<td class="text-xs-right">{{ props.item.calories }}</td>
					<td class="text-xs-right">{{ props.item.fat }}</td>
					<td class="text-xs-right">{{ props.item.carbs }}</td>
					<td class="text-xs-right">{{ props.item.protein }}</td>
					<td class="text-xs-right">{{ props.item.iron }}</td>
					<td>{{ props.item.description }}</td>
				</template>
			</v-data-table>

		</v-flex>
	</v-container>

</template>

<script>
    export default {
        data() {
            return {
                headers: [
                    {
                        text: 'Dessert (100g serving)',
                        align: 'left',
                        sortable: false,
                        value: 'name'
                    },
                    {text: 'Calories', value: 'calories'},
                    {text: 'Fat (g)', value: 'fat'},
                    {text: 'Carbs (g)', value: 'carbs'},
                    {text: 'Protein (g)', value: 'protein'},
                    {text: 'Iron (%)', value: 'iron'},
                    {text: 'Description', value: 'description'}
                ],
                items: [
                    {
                        value: false,
                        name: 'Frozen Yogurt',
                        calories: 159,
                        fat: 6.0,
                        carbs: 24,
                        protein: '4.0_Lorem_ipsum_dolor_sit_amet',
                        iron: '1%',
                        description: 'Loremipsumdolorsitametconsecteturadipiscingelit... '
                    },
                    {
                        value: false,
                        name: 'Ice cream sandwich',
                        calories: 237,
                        fat: 9.0,
                        carbs: 37,
                        protein: '4.3 Lorem  ipsum dolor sit amet',
                        iron: '1%',
                        description: 'Loremipsumdolorsitametconsecteturadipiscingelit... '
                    },
                    {
                        value: false,
                        name: 'Eclair',
                        calories: 262,
                        fat: 16.0,
                        carbs: 23,
                        protein: '6.0_Lorem_ipsum_dolor_sit_amet',
                        iron: '7%',
                        description: 'Lorem  ipsum dolor sit amet, consectetur adipiscing elit... '
                    },
                    {
                        value: false,
                        name: 'Cupcake',
                        calories: 305,
                        fat: 3.7,
                        carbs: 67,
                        protein: '4.3_Lorem_ipsum_dolor_sit_amet',
                        iron: '8%',
                        description: 'Lorem  ipsum dolor sit amet, consectetur adipiscing elit... '
                    },
                ]
            }
        }
    }
</script>



В настройках v-data-table свойств горизонтальноо скроллинга я не нашел
Возможно, дело в обрамлении этой таблицы. Я искал и делал по разному но безрезультатно.
Нужен аналог как в бутстрапе :
Код: html
1.
2.
                        <div class="table-responsive">
                            <table class="table">



А как правильно в vuetify ?
Спасибо!
...
Рейтинг: 0 / 0
26.04.2018, 09:46
    #39636582
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В vue.js2.5 vuetify v-data-table нет горизонтальны, vue.js2 vuetify
Ну, боюсь что vuetify тут непричем.

Смотри свойство CSS - overflow-x:scroll
...
Рейтинг: 0 / 0
26.04.2018, 09:47
    #39636584
Агнец за бортом
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В vue.js2.5 vuetify v-data-table нет горизонтальны, vue.js2 vuetify
И грид для мобил - очень спорно.
...
Рейтинг: 0 / 0
26.04.2018, 12:43
    #39636701
Руслан Дамирович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В vue.js2.5 vuetify v-data-table нет горизонтальны, vue.js2 vuetify
...
Рейтинг: 0 / 0
26.04.2018, 18:24
    #39636950
mstdmstd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
В vue.js2.5 vuetify v-data-table нет горизонтальны, vue.js2 vuetify
Спасибо !
Небольшой пример на основе решения в последней ссылке работает на ура.
Попытка составить более сложный список и компонент listing-header вверху(конпка Add, общая инфа о странице):

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
<template>

	<v-container fluid fill-height>

		<listing-header :show_progress_circular=!is_page_loaded :rows_count=genresList.length :current_page=1 :itemsList="genresList"
		                :header_icon="getHeaderIcon('genre')" :header_title="header_title"
		                :message=message :item_title="'row'" :right_add_button_link="true" :parent_component_key="'genres_listing'"></listing-header>

		<v-card light flat v-show="is_page_loaded">

			<v-card-title>
				Search by all fields
				<v-spacer></v-spacer>
				<v-text-field
						append-icon="search"
						label="Search"
						single-line
						hide-details
						v-model="search_string"
				></v-text-field>
			</v-card-title>

			<v-layout>
				<div class="data_table_wrapper">


					<v-data-table
							:headers="headersList"
							:items="genresList"
							:search="search_string"
							:pagination.sync="pagination"
							:rows-per-page-items="rowsPerPageItemsArray"
							class="elevation-1"
					>

						<template slot="items" slot-scope="props">
							<td>{{ props.item.id }}</td>
							<td>
								{{ props.item.name }}
								<small v-show="props.item.related_songs_count > 0">( {{ props.item.related_songs_count }} related song{{
                                    pluralize(props.item.related_songs_count, '', 's') }} )
								</small>
							</td>
							...
							<td>{{ concatStr(props.item.description, 80) }}</td>
							<td class="justify-center">{{ momentDatetime(props.item.created_at, settings_js_moment_datetime_format) }}</td>
							<td class="justify-center layout px-0">
								<v-btn icon class="mx-0" @click="editGenre(props.item.id)">
									<v-icon color="teal">edit</v-icon>
								</v-btn>
								<v-btn icon class="mx-0" @click="removeGenre(props.item.id, props.item.name)">
									<v-icon color="pink">delete</v-icon>
								</v-btn>
							</td>
						</template>
						...
					</v-data-table>

				</div>
			</v-layout>


		</v-card>
	</v-container>

</template>



И resources/assets/js/components/lib/ListingHeader.vue :
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
<template>
	<v-toolbar-title>

		<v-progress-circular indeterminate :size="40" color="amber" v-show="show_progress_circular" class="pt-1"></v-progress-circular>
		<v-icon color="teal" large>{{ header_icon }}</v-icon>
		{{ header_title }}

		<small v-show="rows_count > 0">{{ rows_count }} {{ item_title }}{{ pluralize(rows_count,'','s') }}</small>

		<div class="pull_right a_link" v-show="right_icon!= ''">
			<v-icon  color="teal" title="Refresh" @click="triggerListingHeaderRightButtonClickedEvent">{{ right_icon_class }}</v-icon>
		</div>

		<div class="pull-right" v-show="right_add_button_link">
			<v-icon color="teal" :title="right_add_button_link_title" @click="triggerListingHeaderAddRightButtonClickedEvent">fiber_new</v-icon>&nbsp;

			<span class="pull-right" v-show="right_add_button_link_2">
			&nbsp;&nbsp;<router-link :to="{ name: right_add_button_link_2, params: { id: 'new' } }" class="mb-1">{{ right_add_button_link_2_title }}
				</router-link>
			</span>
		</div>

		<v-alert type="error" :value="true" v-show="message != '' && !show_progress_circular " color="red">
			{{ message }}
		</v-alert>

	</v-toolbar-title>
</template>


В стилях:
Код: css
1.
2.
3.
4.
.data_table_wrapper {
max-width: 100%;
background-color: navy;
}



И получил что строка заголовка которая была сверху очутилась слева от таблицы(которая нормально прокручивается)
https://imgur.com/a/RMfwSPi

Подозреваю что там не очень удачная вложенность компонентов:
Код: html
1.
2.
3.
4.
5.
<v-container fluid fill-height>

	<v-card

		<v-layout


А как правильно чтобы строку заголовка отобразить вверху?
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / В vue.js2.5 vuetify v-data-table нет горизонтальны, vue.js2 vuetify / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]