thainv-dev: Fix Ui
This commit is contained in:
@@ -40,7 +40,7 @@ img {
|
|||||||
}
|
}
|
||||||
|
|
||||||
div[layout="TYPE:Detail-LAYOUT:image"] {
|
div[layout="TYPE:Detail-LAYOUT:image"] {
|
||||||
& p,& figure.align-center-image, & #sub, & #title, & #intro, & #breakcrumb, & #navigation__bottom {
|
& p,& figure.align-center-image, & #sub, & #title, & #intro, & #breadcrumb, & #navigation__bottom {
|
||||||
@apply lg:max-w-640px mx-auto;
|
@apply lg:max-w-640px mx-auto;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ const drop = (e: any) => {
|
|||||||
<div>
|
<div>
|
||||||
<nuxt-link :to="`bai-viet/${parseData?.slug}`"
|
<nuxt-link :to="`bai-viet/${parseData?.slug}`"
|
||||||
v-if="!LAYOUT_PARSE['HIDE'] || !LAYOUT_PARSE['HIDE'].includes('title')"
|
v-if="!LAYOUT_PARSE['HIDE'] || !LAYOUT_PARSE['HIDE'].includes('title')"
|
||||||
class="line-clamp hover:text-primary-600"
|
class="line-clamp hover:text-primary-600 font-bold font-archivo"
|
||||||
:style="[
|
:style="[
|
||||||
LAYOUT_PARSE['fontSizeTitle'] && `font-size: ${LAYOUT_PARSE['fontSizeTitle']}px`,
|
LAYOUT_PARSE['fontSizeTitle'] && `font-size: ${LAYOUT_PARSE['fontSizeTitle']}px`,
|
||||||
LAYOUT_PARSE['fontWeightTitle'] && `font-weight: ${LAYOUT_PARSE['fontWeightTitle']}`,
|
LAYOUT_PARSE['fontWeightTitle'] && `font-weight: ${LAYOUT_PARSE['fontWeightTitle']}`,
|
||||||
|
|||||||
+5
-5
@@ -54,9 +54,9 @@ onMounted(async () => {
|
|||||||
clickElement("author", "author", "data-code");
|
clickElement("author", "author", "data-code");
|
||||||
|
|
||||||
let detailEmagazine = document.querySelector('div[layout="ARTICLE_DETAIL_EMAGAZINE"]');
|
let detailEmagazine = document.querySelector('div[layout="ARTICLE_DETAIL_EMAGAZINE"]');
|
||||||
let breakcrumb = document.querySelector('div[layout="BREADCRUM_DEFAULT"]');
|
let breadcrumb = document.querySelector('div[layout="BREADCRUM_DEFAULT"]');
|
||||||
if (detailEmagazine && breakcrumb) {
|
if (detailEmagazine && breadcrumb) {
|
||||||
breakcrumb.classList.add("lg:max-w-640px", "mx-auto");
|
breadcrumb.classList.add("lg:max-w-640px", "mx-auto");
|
||||||
}
|
}
|
||||||
|
|
||||||
document.documentElement.style.setProperty("--step", '0');
|
document.documentElement.style.setProperty("--step", '0');
|
||||||
@@ -93,10 +93,10 @@ async function copyLink() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
console.log(currentArticle.value,'currentArtice')
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div id="breakcrumb" class="flex justify-between items-center my-3 font-arial">
|
<div id="breadcrumb" class="flex justify-between items-center my-3 font-arial">
|
||||||
<ul class="flex gap-6 items-center text-md">
|
<ul class="flex gap-6 items-center text-md">
|
||||||
<template v-for="(category, index) in currentCategoryTree" :key="index">
|
<template v-for="(category, index) in currentCategoryTree" :key="index">
|
||||||
<li class="first:text-primary-600 hover:text-primary-600 font-medium relative after:absolute after:content-['\003E'] last:after:content-[''] after:right--4 after:text-gray-3">
|
<li class="first:text-primary-600 hover:text-primary-600 font-medium relative after:absolute after:content-['\003E'] last:after:content-[''] after:right--4 after:text-gray-3">
|
||||||
|
|||||||
@@ -41,9 +41,9 @@ onMounted(async () => {
|
|||||||
clickElement("author", "author", "data-code");
|
clickElement("author", "author", "data-code");
|
||||||
|
|
||||||
let detailEmagazine = document.querySelector('div[layout="ARTICLE_DETAIL_EMAGAZINE"]');
|
let detailEmagazine = document.querySelector('div[layout="ARTICLE_DETAIL_EMAGAZINE"]');
|
||||||
let breakcrumb = document.querySelector('div[layout="BREADCRUM_DEFAULT"]');
|
let breadcrumb = document.querySelector('div[layout="BREADCRUM_DEFAULT"]');
|
||||||
if (detailEmagazine && breakcrumb) {
|
if (detailEmagazine && breadcrumb) {
|
||||||
breakcrumb.classList.add("lg:max-w-640px", "mx-auto");
|
breadcrumb.classList.add("lg:max-w-640px", "mx-auto");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -80,7 +80,7 @@ async function copyLink() {
|
|||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
<div class="content" v-if="currentArticle">
|
<div class="content" v-if="currentArticle">
|
||||||
<div id="breakcrumb" class="flex justify-between items-center my-3">
|
<div id="breadcrumb" class="flex justify-between items-center my-3">
|
||||||
<ul class="flex gap-6 items-center text-md">
|
<ul class="flex gap-6 items-center text-md">
|
||||||
<template v-for="(category, index) in currentCategoryTree" :key="index">
|
<template v-for="(category, index) in currentCategoryTree" :key="index">
|
||||||
<li class="font-semibold relative after:absolute after:content-['\003E'] last:after:content-[''] after:right--4 after:text-gray-3">
|
<li class="font-semibold relative after:absolute after:content-['\003E'] last:after:content-[''] after:right--4 after:text-gray-3">
|
||||||
|
|||||||
+5
-4
@@ -41,9 +41,9 @@ onMounted(async () => {
|
|||||||
clickElement("author", "author", "data-code");
|
clickElement("author", "author", "data-code");
|
||||||
|
|
||||||
let detailEmagazine = document.querySelector('div[layout="ARTICLE_DETAIL_EMAGAZINE"]');
|
let detailEmagazine = document.querySelector('div[layout="ARTICLE_DETAIL_EMAGAZINE"]');
|
||||||
let breakcrumb = document.querySelector('div[layout="BREADCRUM_DEFAULT"]');
|
let breadcrumb = document.querySelector('div[layout="BREADCRUM_DEFAULT"]');
|
||||||
if (detailEmagazine && breakcrumb) {
|
if (detailEmagazine && breadcrumb) {
|
||||||
breakcrumb.classList.add("lg:max-w-640px", "mx-auto");
|
breadcrumb.classList.add("lg:max-w-640px", "mx-auto");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -115,6 +115,7 @@ const updateVolume = (num?: number) => {
|
|||||||
if(num) {
|
if(num) {
|
||||||
volume.value += num
|
volume.value += num
|
||||||
}
|
}
|
||||||
|
// console.log('1231321')
|
||||||
audioPlayer.value.volume = volume.value;
|
audioPlayer.value.volume = volume.value;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -220,7 +221,7 @@ const durationComputed = computed(() => {
|
|||||||
</div>
|
</div>
|
||||||
<div class="md:inline-flex hidden items-center gap-2 ml--10px h9 text-primary-600 rounded-8px text-28px cursor-pointer hover:bg-primary-100">
|
<div class="md:inline-flex hidden items-center gap-2 ml--10px h9 text-primary-600 rounded-8px text-28px cursor-pointer hover:bg-primary-100">
|
||||||
<Icon @click="updateVolume(-0.1)" name="material-symbols:volume-mute"></Icon>
|
<Icon @click="updateVolume(-0.1)" name="material-symbols:volume-mute"></Icon>
|
||||||
<input v-if="isVolume" class="accent-primary-600 h-1 w-12 lg:w-20 cursor-pointer" type="range" v-model="volume" @input="updateVolume" min="0.1" max="1" step="0.1" />
|
<input v-if="isVolume" class="accent-primary-600 h-1 w-12 lg:w-20 cursor-pointer" type="range" v-model="volume" @input="updateVolume()" min="0.1" max="1" step="0.1" />
|
||||||
<Icon @click="updateVolume(0.1)" name="material-symbols:volume-up"></Icon>
|
<Icon @click="updateVolume(0.1)" name="material-symbols:volume-up"></Icon>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import {
|
|||||||
const _props = defineProps<{
|
const _props = defineProps<{
|
||||||
settings: any;
|
settings: any;
|
||||||
component?: any;
|
component?: any;
|
||||||
|
content?: any
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const definedDynamicComponent: Record<string, any> = {
|
const definedDynamicComponent: Record<string, any> = {
|
||||||
@@ -26,8 +27,9 @@ const GET_PROPS = computed(() => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<component :is="definedDynamicComponent[getCurrentComponent]" v-bind="GET_PROPS()" />
|
<component :is="definedDynamicComponent[getCurrentComponent]" v-bind="{...GET_PROPS(), content: _props.content}" />
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -16,8 +16,8 @@ const _props = defineProps<{
|
|||||||
dataQuery?: string;
|
dataQuery?: string;
|
||||||
layout?: string;
|
layout?: string;
|
||||||
label?: string;
|
label?: string;
|
||||||
|
content?: any
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const SETTING_OPTIONS = {
|
const SETTING_OPTIONS = {
|
||||||
MAX_ELEMENT: 5,
|
MAX_ELEMENT: 5,
|
||||||
TEMPLATE: "Article",
|
TEMPLATE: "Article",
|
||||||
@@ -102,6 +102,8 @@ const mapActivesToItems = (index: number) => {
|
|||||||
|
|
||||||
return output[index + 1] || {};
|
return output[index + 1] || {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const CONTENT_PARSE = computed(() => JSON.parse(_props.content))
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import { Dynamic_Section, Dynamic_Category, Dynamic_Collection, Dynamic_Navigati
|
|||||||
const _props = defineProps<{
|
const _props = defineProps<{
|
||||||
settings: any;
|
settings: any;
|
||||||
component?: any;
|
component?: any;
|
||||||
|
content?: any
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const definedDynamicComponent: Record<string, any> = {
|
const definedDynamicComponent: Record<string, any> = {
|
||||||
@@ -35,5 +36,5 @@ const GET_PROPS = computed(() => {
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<!-- <component :is="definedDynamicComponent[getCurrentComponent]" v-bind="{ ...(GET_PROPS()), component: _props.component, settings: _props.settings }" /> -->
|
<!-- <component :is="definedDynamicComponent[getCurrentComponent]" v-bind="{ ...(GET_PROPS()), component: _props.component, settings: _props.settings }" /> -->
|
||||||
<component :is="definedDynamicComponent[getCurrentComponent]" v-bind="{ ...GET_PROPS(), component: _props.component, settings: _props.settings }" />
|
<component :is="definedDynamicComponent[getCurrentComponent]" v-bind="{ ...GET_PROPS(), component: _props.component, settings: _props.settings, content: _props.content }" />
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ const findDataPosition = computed(() => {
|
|||||||
v-if="findDataPosition && findDataPosition?.id"
|
v-if="findDataPosition && findDataPosition?.id"
|
||||||
:settings="findDataPosition.settings"
|
:settings="findDataPosition.settings"
|
||||||
:component="findDataPosition"
|
:component="findDataPosition"
|
||||||
|
:content="findDataPosition.content"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="props.type === defineTypeRecusive.SECTION">
|
<template v-else-if="props.type === defineTypeRecusive.SECTION">
|
||||||
|
|||||||
Reference in New Issue
Block a user