<template> <view> <form @submit.prevent="submitForm"> <view> <label>类型:</label> <select v-model="formData.type"> <option value="income">收入</option> <option value="outcome">支出</option> </select> </view> <view> <label>金额:</label> <input type="number" v-model="formData.amount" /> </view> <view> <label>日期:</label> <input type="date" v-model="formData.date" /> </view> <button type="submit">记一笔</button> </form> </view> </template> <script setup> import { ref } from 'vue'; const formData = ref({ type: '', amount: '', date: new Date() }); function submitForm() { // 提交表单 console.log(formData.value); } </script>将代码完善,添加样式

时间: 2023-11-16 09:53:56 浏览: 45
<> <div class="form-wrapper"> <form @submit.prevent="submitForm"> <div class="form-item"> <label>类型:</label> <select v-model="formData.type"> <option value="income">收入</option> <option value="outcome">支出</option> </select> </div> <div class="form-item"> <label>金额:</label> <input type="number" v-model="formData.amount" /> </div> <div class="form-item"> <label>日期:</label> <input type="date" v-model="formData.date" /> </div> <button type="submit">记一笔</button> </form> </div> </template> <style scoped> .form-wrapper { max-width: 400px; margin: 0 auto; } .form-item { margin-bottom: 20px; } label { display: inline-block; width: 60px; text-align: right; margin-right: 10px; } </style> <script setup> import { ref } from 'vue'; const formData = ref({ type: '', amount: '', date: new Date(), }); function submitForm() { // 提交表单 console.log(formData.value); } </script> 在上面的代码中,我添加了一个 "form-wrapper" 的 div 包裹整个表单,用于设置表单最大宽度和居中对齐。我还添加了一个 "form-item" 的 div 包裹每个表单项,用于设置表单项之间的间距。最后,我添加了一些基本的样式用于对齐和布局。

相关推荐

<template> <form @submit.prevent="saveStore"> <label for="platformName">平台名称:</label> <input type="text" id="platformName" v-model="store.platformName" required> <button @click="showNewForm">新增平台</button> <New v-if="showNew" @close="hideNewForm" @save="saveNewPlatform" /> <router-view></router-view> <label for="storeCode">门店编号:</label> <input type="text" id="storeCode" v-model="store.storeCode" required> <label for="authorizationCode">授权编号:</label> <input type="text" id="authorizationCode" v-model="store.authorizationCode" required> <label for="authorizationKey">授权密钥:</label> <input type="text" id="authorizationKey" v-model="store.authorizationKey" required> <label for="memberPrice">会员价开关:</label> <el-switch id="memberPrice" v-model="memberPrice" /> <label for="specialPrice">特价开关:</label> <el-switch id="specialPrice" v-model="specialPrice" /> <label for="unitConversion">单位转换开关:</label> <el-switch id="unitConversion" v-model="unitConversion" /> <button type="submit">{{ isEditing ? '更新门店' : '提交' }}</button> </form> </template> <script> import { createRouter, createWebHistory } from 'vue-router'; import { ref } from 'vue' import New from './New.vue' export default { components: { New, }, data() { return { showNew: false, store: { platformName: '', storeCode: '', authorizationCode: '', authorizationKey: '', memberPrice: false, specialPrice: false, unitConversion: false, }, isEditing: false, }; }, methods: { showNewForm() { this.showNew = true; }, hideNewForm() { this.showNew = false; }, saveNewPlatform(platform) { // TODO: 处理保存平台数据的逻辑 console.log(platform); }, saveStore() { // 添加/编辑门店的逻辑 if (this.isEditing) { // 编辑门店 // ... } else { // 添加门店 // ... } }, addPlatform() { // 新增平台的逻辑 // ... }, }, }; </script>为什么这里面的switch要在输入框中输入内容才能触发,直接点击不能转换

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="vue.js"></script> </head> <body> 图书管理系统 <label>id: </label><input type="text" class="form-control" v-model="id" disabled> <label>name: </label><input type="text" class="form-control" v-model="name" onchange="onchange(id)"> <input type="button" value="添加" class="btn btn-primary" @click. ="add" :disable="isEditable"> id name time {{book.id}} {{book.name}} {{book.time}} 删除 <script src="vue.js"></script> <script> let app = new Vue({ el: '#app', data: { id:0, name:'', books:[ {'id':1,'name':'Vue.js入门','time':new Date()} ], isEditable:true }, mounted(){ this.id=this.books.length+1 console.log(this.id) }, method:{ onchange(){ if (this.name!=''){ this.isEditable=false }else{ this.isEditable=true } }, add(){ this.books.push({'id':this.id,'name':this.name,'time':new Date()}) this.id++ this.name='' }, del(id){ let index=this.books.findIndex((item)=>{ if(item.id==id){ return true } }) this.books.splice(index,1) } } }) </script> </body> </html> 补充代码

<template> 学生签到系统 <input type="text" v-model="student.S_id" placeholder="请输入学号"> <input type="text" v-model="student.S_pwd" placeholder="请输入密码"> 登录 班级尚未开启签到 <button @click="close">取消</button> </template> <script> import qs from "qs" import axios from "axios"; export default { name: "Login", data(){ return{ //弹窗 show:false, student:{ S_id:null, S_pwd:null, } } }, methods: { close() { this.show = false; // 隐藏弹出窗口 }, Login() { let param = qs.stringify(this.student); axios.post('/xx/students/login', param).then((response) => { //获取当前学生的班级信息并传入sessionStorage,参数为S_class sessionStorage.setItem('classInfo', response.data.data.s_class); //获取当前学生的id信息并传入sessionStorage sessionStorage.setItem('studentId', this.student.S_id); //弹窗 if (response.data.msg === "账号或密码错误"){ this.show = true; } if (response.data.code == 200) { this.$router.push({"path": "/signLog"}) } }).catch((error) => { console.log(error); }); } } } </script> <style scoped> .wrapper > h2{ text-align: center; margin: 40px 0px; } .content{ padding: 8px; } .form-item { margin-bottom: 20px; } .form-item > input{ width: 100%; height: 40px; padding: 4px; outline: none; border: 1px solid rebeccapurple; box-sizing: border-box; } .form-item > a{ display: inline-block; width: 100%; height: 40px; background-color: sandybrown; text-align: center; line-height: 40px; } .form-item > 这段代码要怎么样实现弹窗

最新推荐

recommend-type

ansys maxwell

ansys maxwell
recommend-type

matlab基于不确定性可达性优化的自主鲁棒操作.zip

matlab基于不确定性可达性优化的自主鲁棒操作.zip
recommend-type

pytest-2.8.0.zip

文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
recommend-type

信息安全课程实验C++实现DES等算法源代码

信息安全课程实验C++实现DES等算法源代码
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依