mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-06-08 19:17:40 +08:00
fix: 修改可见范围
This commit is contained in:
@@ -36,7 +36,6 @@ echo "👉 Pull base images (for image-based services)..."
|
|||||||
docker compose -f "$compose_file" --env-file "$env_file" pull --ignore-pull-failures
|
docker compose -f "$compose_file" --env-file "$env_file" pull --ignore-pull-failures
|
||||||
|
|
||||||
echo "👉 Build images (staging)..."
|
echo "👉 Build images (staging)..."
|
||||||
# 前端 + OpenSearch 都是自建镜像;--pull 更新其基础镜像
|
|
||||||
docker compose -f "$compose_file" --env-file "$env_file" \
|
docker compose -f "$compose_file" --env-file "$env_file" \
|
||||||
build --pull \
|
build --pull \
|
||||||
--build-arg NUXT_ENV=staging \
|
--build-arg NUXT_ENV=staging \
|
||||||
|
|||||||
@@ -161,8 +161,8 @@ services:
|
|||||||
condition: service_started
|
condition: service_started
|
||||||
websocket-service:
|
websocket-service:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
opensearch:
|
# opensearch:
|
||||||
condition: service_healthy
|
# condition: service_healthy
|
||||||
command: >
|
command: >
|
||||||
sh -c "apt-get update && apt-get install -y --no-install-recommends curl &&
|
sh -c "apt-get update && apt-get install -y --no-install-recommends curl &&
|
||||||
mvn clean spring-boot:run -Dmaven.test.skip=true"
|
mvn clean spring-boot:run -Dmaven.test.skip=true"
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<BasePopup v-if="isRestricted" :visible="true" @close="closeRestrictedPopup">
|
<BasePopup v-if="isRestricted" :visible="true" @close="closeRestrictedPopup">
|
||||||
<div class="restricted-content">
|
<div class="restricted-content">
|
||||||
<Lock class="restricted-icon" />
|
<lock class="restricted-icon" />
|
||||||
|
|
||||||
<template v-if="visibleScope === 'ONLY_ME'">
|
<template v-if="visibleScope === 'ONLY_ME'">
|
||||||
<p>这是一篇私密文章,仅作者本人及管理员可见</p>
|
<p>这是一篇私密文章,仅作者本人及管理员可见</p>
|
||||||
<div class="restricted-actions">
|
<div class="restricted-actions">
|
||||||
@@ -16,8 +15,8 @@
|
|||||||
<NuxtLink to="/login" class="restricted-button" v-if="!loggedIn">登录</NuxtLink>
|
<NuxtLink to="/login" class="restricted-button" v-if="!loggedIn">登录</NuxtLink>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</div></BasePopup
|
</div>
|
||||||
>
|
</BasePopup>
|
||||||
<div class="post-page-container">
|
<div class="post-page-container">
|
||||||
<div v-if="isWaitingFetchingPost" class="loading-container">
|
<div v-if="isWaitingFetchingPost" class="loading-container">
|
||||||
<l-hatch size="28" stroke="4" speed="3.5" color="var(--primary-color)"></l-hatch>
|
<l-hatch size="28" stroke="4" speed="3.5" color="var(--primary-color)"></l-hatch>
|
||||||
@@ -104,7 +103,9 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="post-time">{{ postTime }}</div>
|
<div class="post-time">{{ postTime }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div v-if="isRestricted" v-for="n in 3" :key="n" class="info-content-text skeleton"></div>
|
||||||
<div
|
<div
|
||||||
|
v-else
|
||||||
class="info-content-text"
|
class="info-content-text"
|
||||||
v-html="renderMarkdown(postContent)"
|
v-html="renderMarkdown(postContent)"
|
||||||
@click="handleContentClick"
|
@click="handleContentClick"
|
||||||
@@ -161,7 +162,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="isFetchingComments" class="loading-container">
|
<div v-if="isFetchingComments || isRestricted" class="loading-container">
|
||||||
<l-hatch size="28" stroke="4" speed="3.5" color="var(--primary-color)"></l-hatch>
|
<l-hatch size="28" stroke="4" speed="3.5" color="var(--primary-color)"></l-hatch>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="comments-container">
|
<div v-else class="comments-container">
|
||||||
@@ -184,25 +185,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- <div class="post-page-scroller-container">
|
|
||||||
<div class="scroller">
|
|
||||||
<div v-if="isWaitingFetchingPost" class="scroller-time">loading...</div>
|
|
||||||
<div v-else class="scroller-time">{{ scrollerTopTime }}</div>
|
|
||||||
<div class="scroller-middle">
|
|
||||||
<input
|
|
||||||
type="range"
|
|
||||||
class="scroller-range"
|
|
||||||
:max="totalPosts"
|
|
||||||
:min="1"
|
|
||||||
v-model.number="currentIndex"
|
|
||||||
@input="onSliderInput"
|
|
||||||
/>
|
|
||||||
<div class="scroller-index">{{ currentIndex }}/{{ totalPosts }}</div>
|
|
||||||
</div>
|
|
||||||
<div v-if="isWaitingFetchingPost" class="scroller-time">loading...</div>
|
|
||||||
<div v-else class="scroller-time">{{ lastReplyTime }}</div>
|
|
||||||
</div>
|
|
||||||
</div> -->
|
|
||||||
<vue-easy-lightbox
|
<vue-easy-lightbox
|
||||||
:visible="lightboxVisible"
|
:visible="lightboxVisible"
|
||||||
:index="lightboxIndex"
|
:index="lightboxIndex"
|
||||||
@@ -1043,6 +1025,35 @@ onMounted(async () => {
|
|||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.skeleton {
|
||||||
|
background-color: #eee;
|
||||||
|
border-radius: 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
height: 20px;
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.skeleton::before {
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
right: 0;
|
||||||
|
background: linear-gradient(90deg, #eee 0%, #f5f5f7 40%, #e0e0e0 100%);
|
||||||
|
transform: translateX(-100%);
|
||||||
|
animation: skeleton-shimmer 1.5s infinite linear;
|
||||||
|
z-index: 1;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
@keyframes skeleton-shimmer {
|
||||||
|
100% {
|
||||||
|
transform: translateX(100%);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.user-avatar-container {
|
.user-avatar-container {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
|
|||||||
Reference in New Issue
Block a user