update scenarios page

This commit is contained in:
2026-07-26 01:31:36 +07:00
parent 48c6315697
commit a7502ab771
+38 -10
View File
@@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { useMessage } from 'naive-ui' import { useMessage } from 'naive-ui'
import { NButton, NCard, NInput, NModal } from 'naive-ui' import { NButton, NCard, NInput, NModal, NTag } from 'naive-ui'
import { ref } from 'vue' import { ref } from 'vue'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
@@ -46,13 +46,24 @@ getScenarios()
<div class="scenarios-container"> <div class="scenarios-container">
<div class="scenario-block" @click="showAddScenarioModal = true"> <div class="scenario-block" @click="showAddScenarioModal = true">
<div class="scenario-image-block scenario-image-plus">+</div> <div class="scenario-image-block scenario-image-plus">+</div>
<p class="scenario-title">Создать новый сценарий</p> <div class="scenario-content-block">
<p class="scenario-title">Создать новый сценарий</p>
</div>
</div> </div>
<div class="scenario-block" v-for="scenario in scenarios" @click="toScenarioEditor(scenario.id!)" <div class="scenario-block" v-for="scenario in scenarios" @click="toScenarioEditor(scenario.id!)"
v-bind:key="scenario.id"> v-bind:key="scenario.id">
<div class="scenario-image-block scenario-image" :style="{ backgroundImage: `url(${scenario.image})` }"></div> <div class="scenario-image-block scenario-image" :style="{ backgroundImage: `url(${scenario.image})` }"></div>
<p class="scenario-title">{{ scenario.name }}</p>
<div class="scenario-content-block">
<p class="scenario-title">{{ scenario.name }}</p>
<p class="scenario-label">
<n-tag v-if="scenario.status == 'public'" :bordered="false" type="success"
class="status-block">Опубликовано</n-tag>
<n-tag v-if="scenario.status == 'draft'" :bordered="false" type="warning" class="status-block">В
разработке</n-tag>
</p>
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -89,33 +100,40 @@ getScenarios()
} }
.scenario-block { .scenario-block {
position: relative;
margin: 10px; margin: 10px;
width: 160px; width: 160px;
height: 300px;
cursor: pointer; cursor: pointer;
border-radius: 12px;
/* background-color: #553333; */ /* background-color: #553333; */
background-color: #333;
border: 2px solid #333;
}
.scenario-content-block {
padding: 2px 10px;
} }
.scenario-block:hover { .scenario-block:hover {
color: #63e2b7; color: #63e2b7;
border: 2px solid #63e2b7;
} }
.scenario-image-block { .scenario-image-block {
background-color: #111;
height: 160px; height: 160px;
border-radius: 10px; border-radius: 10px;
} }
.scenario-image-block:hover {
color: #63e2b7;
border: 2px solid #63e2b7;
}
.scenario-image-plus { .scenario-image-plus {
font-size: 120px; font-size: 120px;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
background-color: #333; background-color: #111;
} }
.scenario-image { .scenario-image {
@@ -127,6 +145,12 @@ getScenarios()
padding: 5px 0; padding: 5px 0;
} }
.status-block {
position: absolute;
bottom: 15px;
right: 15px;
}
@media (width >=1024px) { @media (width >=1024px) {
.scenarios-container { .scenarios-container {
height: calc(100vh - 70px); height: calc(100vh - 70px);
@@ -134,11 +158,15 @@ getScenarios()
.scenario-block { .scenario-block {
width: 250px; width: 250px;
height: 400px;
} }
.scenario-image-block { .scenario-image-block {
height: 250px; height: 250px;
border-radius: 10px; }
.scenario-content-block {
padding: 4px 10px;
} }
} }
</style> </style>