cicd-test/vue-ui/src/App.vue

90 lines
2.3 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<main class="page">
<header class="hero">
<p class="eyebrow">Vue 3 + Vite</p>
<h1>快速上手示例</h1>
<p class="sub">
左边计数器右边简单待办直接改这里即可开始玩
</p>
</header>
<section class="grid">
<article class="card">
<header class="card__title">
<h2>计数器</h2>
<span class="tag">可组合</span>
</header>
<p class="value">{{ count }}</p>
<div class="actions">
<button class="ghost" @click="change(-1)">-1</button>
<button class="primary" @click="change(1)">+1</button>
<button class="ghost" @click="reset">重置</button>
</div>
</article>
<article class="card">
<header class="card__title">
<h2>待办清单</h2>
<span class="tag success">示例</span>
</header>
<form class="todo__form" @submit.prevent="addTodo">
<input
v-model="draft"
type="text"
placeholder="输入要做的事..."
autocomplete="off"
/>
<button class="primary" type="submit">添加</button>
</form>
<ul class="todo__list" v-if="todos.length">
<li v-for="item in todos" :key="item.id">
<label>
<input v-model="item.done" type="checkbox" />
<span :class="{ done: item.done }">{{ item.text }}</span>
</label>
<button class="ghost small" type="button" @click="removeTodo(item.id)">
删除
</button>
</li>
</ul>
<p v-else class="empty">暂无任务添加一个吧</p>
</article>
</section>
</main>
</template>
<script setup>
import { ref } from 'vue';
const count = ref(1);
const change = (delta) => {
count.value += delta;
};
const reset = () => {
count.value = 1;
};
const draft = ref('');
const todos = ref([
{ id: 1, text: '试着勾选或删除我', done: false },
{ id: 2, text: '在右上角编辑样式', done: true },
]);
const addTodo = () => {
const text = draft.value.trim();
if (!text) return;
todos.value.push({
id: Date.now(),
text,
done: false,
});
draft.value = '';
};
const removeTodo = (id) => {
todos.value = todos.value.filter((item) => item.id !== id);
};
</script>