首页 前端知识 vue.js制作学习计划表案例

vue.js制作学习计划表案例

2024-04-03 12:04:01 前端知识 前端哥 1129 173 我要收藏

通俗易懂,完成“学习计划表”用于对学习计划进行管理,包括对学习计划进行添加、删除、修改等操作。

一. 初始页面效果展示

二.添加学习计划页面效果展示

 三.修改学习计划完成状态的页面效果展示

四.删除学习计划 

当学习计划处于“已完成”状态时,学生可以对学习计划进行删除操作,否则不能进行删除操作。

在html案例引入样式:

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.c
ss" rel="stylesheet"/>
复制

新建 llk.vue文件

在llk.vue文件中写入代码:

<template>
<div class="card">
<!-- 标题区域 -->
<div class="card-header">学习计划表</div>
<!-- 提交区域 -->
<div class="card-body">
<form @submit.prevent="add">
<div class="row g-4">
<!-- 学习科目 -->
<div class="col-auto">
<div class="input-group mb-3">
<span class="input-group-text" id="basic-addon1">学习科目</span>
<input type="text" class="form-control" placeholder="请输入学习科目" v-model.trim="subject" />
</div>
</div>
<!-- 学习任务 -->
<div class="col-auto">
<div class="input-group mb-3">
<span class="input-group-text" id="basic-addon1">学习内容</span>
<textarea class="form-control" v-model.trim="content" placeholder="请输入学习内容" :style="{ height: '32px' }"></textarea>
</div>
</div>
<!-- 学习地点 -->
<div class="col-auto">
<div class="input-group mb-3">
<span class="input-group-text" id="basic-addon1">学习地点</span>
<select class="form-select form-select-sm" v-model="selectedOption">
<option v-for="option in options" :value="option.place" :key="option.placeCode">
{{ option.place }}
</option>
</select>
</div>
</div>
<!-- 添加按钮 -->
<div class="col-auto">
<button type="submit" class="btn btn-primary">添加</button>
</div>
</div>
</form>
</div>
</div>
<table class="table table-striped table-hover table-bordered">
<thead>
<tr>
<th scope="col">序号</th>
<th scope="col">学习科目</th>
<th scope="col">学习内容</th>
<th scope="col">学习地点</th>
<th scope="col">完成状态</th>
<th scope="col">操作</th>
</tr>
</thead>
<tbody>
<tr v-for="item in list" :key="item.id">
<td>{{ item.id }}</td>
<td>{{ item.subject }}</td>
<td>{{ item.content }}</td>
<td>{{ item.place }}</td>
<td>
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" role="switch" id="'cb' + item.id"
v-model="item.status" />
<label class="form-check-label" for="'cb' + item.id" v-if="item.status">已完成</label>
<label class="form-check-label" for="'cb' + item.id" v-else>未完成</label>
</div>
</td>
<td>
<a href="javascript:;" @click="remove(item.id)">删除</a>
</td>
</tr>
</tbody>
</table>
</template>
<script setup>
import {
ref
} from 'vue'
const list = ref([{
id: '1',
subject: 'Vue.js 前端实战开发',
content: '学习指令,例如 v-if、v-for、v-model 等',
place: '自习室',
status: false,
}, ])
let remove = (id, status) => {
if (status) {
list.value = list.value.filter(item => item.id !== id)
} else {
alert('请完成该学习计划后再进行删除操作!')
}
}
let subject = ref('')
let content = ref('')
let nextId = ref('')
let selectedOption = ref('自习室')
let options = ref([
{
placeCode: 0,
place: '自习室',
},
{
placeCode: 1,
place: '图书馆',
},
{
placeCode: 2,
place: '宿舍',
},
])
let add = () => {
if (subject.value === '') {
alert('学习科目为必填项!')
return
}
nextId.value = Math.max(...list.value.map(item => item.id)) + 1
const obj = {
id: nextId.value,
subject: subject.value,
content: content.value,
place: selectedOption.value,
status: false,
}
list.value.push(obj)
subject.value = ''
content.value = ''
selectedOption.value = '自习室'
}
</script>
<style>
</style>
复制

找到main.js文件修改 成自己新建的名字

 

运行结果:

输入科目学习内容,选择学习地点进行添加

 

今天就分享到这里,感谢预览~ 

转载请注明出处或者链接地址:https://www.qianduange.cn//article/4432.html
标签
评论
还可以输入200
共0条数据,当前/页
发布的文章

java解析超大json文件数据

2024-04-19 21:04:10

头歌-JavaScript基础

2024-04-19 21:04:54

C#Json序列化及反序列化

2024-04-19 21:04:40

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!