DEBUG 取消选中某项
This commit is contained in:
parent
7fb1a52102
commit
667bdb0a67
@ -44,10 +44,11 @@ div.container.mx-auto.py-24.flex.gap-8(
|
|||||||
aside.w-64.py-2.flex.flex-col.gap-8(class="<sm:hidden")
|
aside.w-64.py-2.flex.flex-col.gap-8(class="<sm:hidden")
|
||||||
div
|
div
|
||||||
span.font-bold # TAG
|
span.font-bold # TAG
|
||||||
ul.flex.flex-wrap.gap-2.py-1
|
ul.flex.flex-wrap.gap-2.py-1(v-if="!tagPending")
|
||||||
|
// v-for="item in ['vue','react','node']" :key="item"
|
||||||
li.bg-gray-400.bg-opacity-10.px-2.rounded-md.cursor-pointer.overflow-clip(
|
li.bg-gray-400.bg-opacity-10.px-2.rounded-md.cursor-pointer.overflow-clip(
|
||||||
class="hover:text-pink-500"
|
class="hover:text-pink-500"
|
||||||
v-for="item in ['vue','react','node']" :key="item"
|
v-for="item in tags" :key="item"
|
||||||
) {{ item }}
|
) {{ item }}
|
||||||
div.flex.flex-col.gap-2
|
div.flex.flex-col.gap-2
|
||||||
span.font-bold # 归档
|
span.font-bold # 归档
|
||||||
@ -93,17 +94,24 @@ div.container.mx-auto.py-24.flex.gap-8(
|
|||||||
v-model="comments.edit.email",
|
v-model="comments.edit.email",
|
||||||
placeholder="邮箱",
|
placeholder="邮箱",
|
||||||
@click.stop
|
@click.stop
|
||||||
)
|
)
|
||||||
textarea.w-full.min-h-sm.px-6.py-4.transition-all.duration-150.outline-none(
|
textarea.w-full.min-h-sm.px-6.py-4.transition-all.duration-150.outline-none(
|
||||||
v-model="comments.edit.content",
|
v-model="comments.edit.content",
|
||||||
placeholder="写点什么呢",
|
placeholder="写点什么呢",
|
||||||
@keydown.ctrl.enter.prevent="comments.submit()"
|
@keydown.ctrl.enter.prevent="comments.submit()"
|
||||||
@click.stop
|
@click.stop
|
||||||
)
|
)
|
||||||
|
// 选中时显示操作项
|
||||||
|
div.fixed.bottom-0.left-0.right-0(v-if="select_items.length")
|
||||||
|
button {{ select_items.length === 1 ? '删除' : '批量删除' }} (Delete)
|
||||||
|
button(v-if="select_items.length === 1") 编辑(E)
|
||||||
|
button 取消(Esc)
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
const { data, pending } = useFetch("/api/blog", { immediate: true });
|
const { data: tags, pending: tagPending } = useFetch("/api/tag", { immediate: true })
|
||||||
|
const { data, pending } = useFetch("/api/blog", { immediate: true })
|
||||||
|
|
||||||
const content = ref("");
|
const content = ref("");
|
||||||
const account = useState("account");
|
const account = useState("account");
|
||||||
const editor = ref({
|
const editor = ref({
|
||||||
@ -247,7 +255,8 @@ const __select_item = (item) => {
|
|||||||
|
|
||||||
// 取消选中某项(无选项时, 恢复显示视焦外的元素)
|
// 取消选中某项(无选项时, 恢复显示视焦外的元素)
|
||||||
const __unselect_item = (item) => {
|
const __unselect_item = (item) => {
|
||||||
select_items.value = select_items.value.filter(i => i !== item);
|
console.log('取消选中:', item)
|
||||||
|
select_items.value.splice(select_items.value.indexOf(item))
|
||||||
if (select_items.value.length === 0) {
|
if (select_items.value.length === 0) {
|
||||||
document.querySelectorAll('header.header, .create-blog').forEach((item) => {
|
document.querySelectorAll('header.header, .create-blog').forEach((item) => {
|
||||||
item.classList.remove('opacity-0');
|
item.classList.remove('opacity-0');
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
export default defineEventHandler(async event => {
|
export default defineEventHandler(async event => {
|
||||||
const tags = useStorage('tags')
|
const blogs = useStorage('blog')
|
||||||
|
|
||||||
if (event.node.req.method === 'GET') {
|
if (event.node.req.method === 'GET') {
|
||||||
return await tags.getKeys().then(keys => {
|
return [...new Set(
|
||||||
return Promise.all(keys.map(async key => {
|
(await blogs.getKeys().then(keys => {
|
||||||
return tags.getItem(key).then(data => data)
|
return Promise.all(keys.map(async key => {
|
||||||
}))
|
return blogs.getItem(key).then(data => {
|
||||||
})
|
return data.tags || []
|
||||||
|
})
|
||||||
|
}))
|
||||||
|
})).flat()
|
||||||
|
)]
|
||||||
}
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user