211 lines
8.0 KiB
Vue
211 lines
8.0 KiB
Vue
<template>
|
||
<div>
|
||
<!---------------------------------------------->
|
||
<div class="hidden sets-part-header">
|
||
Текст
|
||
</div>
|
||
|
||
<div class="sets-item row">
|
||
<div class="sets-label label">
|
||
Интервал
|
||
</div>
|
||
<div class="col row">
|
||
<NumInput v-model="form.lineInterval" class="col-left" :min="0" :max="200" />
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sets-item row">
|
||
<div class="sets-label label">
|
||
Параграф
|
||
</div>
|
||
<div class="col row">
|
||
<NumInput v-model="form.p" class="col-left" :min="0" :max="2000" />
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sets-item row">
|
||
<div class="sets-label label">
|
||
Сдвиг
|
||
</div>
|
||
<div class="col row">
|
||
<NumInput v-model="form.textVertShift" class="col-left" :min="-100" :max="100">
|
||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||
Сдвиг текста по вертикали в процентах от размера шрифта.<br>
|
||
Отрицательное значение сдвигает вверх, положительное -<br>
|
||
вниз.
|
||
</q-tooltip>
|
||
</NumInput>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sets-item row">
|
||
<div class="sets-label label">
|
||
Скроллинг
|
||
</div>
|
||
<div class="col row">
|
||
<NumInput v-model="form.scrollingDelay" class="col-left" :min="1" :max="10000">
|
||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||
Замедление скроллинга в миллисекундах.<br>
|
||
Определяет время, за которое текст<br>
|
||
прокручивается на одну строку.
|
||
</q-tooltip>
|
||
</NumInput>
|
||
|
||
<div class="q-px-sm" />
|
||
<q-select
|
||
v-model="form.scrollingType" class="col" :options="['linear', 'ease', 'ease-in', 'ease-out', 'ease-in-out']"
|
||
dropdown-icon="la la-angle-down la-sm"
|
||
outlined dense emit-value map-options
|
||
>
|
||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||
Вид скроллинга: линейный,<br>
|
||
ускорение-замедление и пр.
|
||
</q-tooltip>
|
||
</q-select>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sets-item row">
|
||
<div class="sets-label label">
|
||
Выравнивание
|
||
</div>
|
||
<div class="col row">
|
||
<q-checkbox v-model="form.textAlignJustify" size="xs" label="По ширине" />
|
||
<q-checkbox v-model="form.wordWrap" class="q-ml-sm" size="xs" label="Перенос по слогам" />
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sets-item row">
|
||
<div class="sets-label label"></div>
|
||
<div class="col-left column justify-center text-right">
|
||
Компактность
|
||
</div>
|
||
<div class="q-px-sm" />
|
||
<NumInput v-model="form.compactTextPerc" class="col" :min="0" :max="100">
|
||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||
Степень компактности текста в процентах.<br>
|
||
Чем больше компактность, тем хуже выравнивание<br>
|
||
по правому краю.
|
||
</q-tooltip>
|
||
</NumInput>
|
||
</div>
|
||
|
||
<div class="sets-item row">
|
||
<div class="sets-label label">
|
||
Обработка
|
||
</div>
|
||
<div class="col row">
|
||
<q-checkbox v-model="form.cutEmptyParagraphs" size="xs" label="Убирать пустые строки" />
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sets-item row">
|
||
<div class="sets-label label"></div>
|
||
<div class="col-left column justify-center text-right">
|
||
Добавлять пустые
|
||
</div>
|
||
<div class="q-px-sm" />
|
||
<NumInput v-model="form.addEmptyParagraphs" class="col" :min="0" :max="2" />
|
||
</div>
|
||
|
||
<div class="sets-item row">
|
||
<div class="sets-label label">
|
||
Изображения
|
||
</div>
|
||
<div class="col row">
|
||
<q-checkbox v-model="form.showImages" size="xs" label="Показывать" />
|
||
<q-checkbox v-model="form.showInlineImagesInCenter" class="q-ml-sm" :disable="!form.showImages" size="xs" label="Инлайн в центр" @update:modelValue="needReload">
|
||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||
Выносить все изображения в центр экрана
|
||
</q-tooltip>
|
||
</q-checkbox>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sets-item row">
|
||
<div class="sets-label label"></div>
|
||
<div class="col row">
|
||
<q-checkbox v-model="form.imageFitWidth" size="xs" label="Ширина не более размера страницы" :disable="!form.showImages || form.dualPageMode" />
|
||
</div>
|
||
</div>
|
||
|
||
<div class="sets-item row">
|
||
<div class="sets-label label"></div>
|
||
<div class="col-left column justify-center text-right">
|
||
Высота не более
|
||
</div>
|
||
<div class="q-px-sm" />
|
||
<NumInput v-model="form.imageHeightLines" class="col" :min="1" :max="100" :disable="!form.showImages">
|
||
<q-tooltip :delay="1000" anchor="top middle" self="bottom middle" content-style="font-size: 80%">
|
||
Определяет высоту изображения количеством строк.<br>
|
||
В случае превышения высоты, изображение будет<br>
|
||
уменьшено с сохранением пропорций так, чтобы<br>
|
||
помещаться в указанное количество строк.
|
||
</q-tooltip>
|
||
</NumInput>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
//-----------------------------------------------------------------------------
|
||
import vueComponent from '../../../../vueComponent.js';
|
||
import NumInput from '../../../../share/NumInput.vue';
|
||
|
||
const componentOptions = {
|
||
components: {
|
||
NumInput,
|
||
},
|
||
watch: {
|
||
form: {
|
||
handler() {
|
||
this.formChanged();//no await
|
||
},
|
||
deep: true,
|
||
},
|
||
},
|
||
};
|
||
class Text {
|
||
_options = componentOptions;
|
||
_props = {
|
||
form: Object,
|
||
};
|
||
|
||
statusBarColorFiltered = '';
|
||
|
||
created() {
|
||
this.formChanged();//no await
|
||
}
|
||
|
||
mounted() {
|
||
}
|
||
|
||
async formChanged() {
|
||
this.isFormChanged = true;
|
||
try {
|
||
//
|
||
} finally {
|
||
await this.$nextTick();
|
||
this.isFormChanged = false;
|
||
}
|
||
}
|
||
|
||
needReload() {
|
||
this.$root.notify.warning('Необходимо обновить страницу (F5), чтобы изменения возымели эффект');
|
||
}
|
||
}
|
||
|
||
export default vueComponent(Text);
|
||
//-----------------------------------------------------------------------------
|
||
</script>
|
||
|
||
<style scoped>
|
||
.label {
|
||
width: 110px;
|
||
}
|
||
|
||
.col-left {
|
||
width: 145px;
|
||
}
|
||
</style>
|