当前位置:首页 > VUE

vue实现预约页面

2026-01-07 00:11:04VUE

Vue 预约页面实现步骤

准备工作
安装Vue CLI创建项目,确保已配置好开发环境。使用vue create appointment-page初始化项目,选择默认配置或手动配置。

页面结构设计
src/views目录下创建Appointment.vue文件,设计基础模板:

<template>
  <div class="appointment-container">
    <h1>预约服务</h1>
    <form @submit.prevent="handleSubmit">
      <!-- 表单内容将在此添加 -->
    </form>
  </div>
</template>

表单字段实现
添加常用预约字段,使用v-model进行双向绑定:

<div class="form-group">
  <label for="name">姓名</label>
  <input type="text" id="name" v-model="formData.name" required>
</div>
<div class="form-group">
  <label for="phone">联系电话</label>
  <input type="tel" id="phone" v-model="formData.phone" required>
</div>
<div class="form-group">
  <label for="date">预约日期</label>
  <input type="date" id="date" v-model="formData.date" required>
</div>

时间选择组件
集成第三方日期时间选择器(如vue-datepicker):

npm install vue-datepicker --save

在组件中引入:

vue实现预约页面

<script>
import Datepicker from 'vue-datepicker';
export default {
  components: { Datepicker },
  data() {
    return {
      timeOptions: ['09:00', '10:00', '11:00', '14:00', '15:00']
    }
  }
}
</script>

表单验证
使用Vuelidate进行验证:

npm install vuelidate --save

配置验证规则:

import { required, minLength, numeric } from 'vuelidate/lib/validators'
export default {
  validations: {
    formData: {
      name: { required },
      phone: { required, numeric, minLength: minLength(11) },
      date: { required }
    }
  }
}

提交逻辑处理
实现表单提交方法:

vue实现预约页面

methods: {
  handleSubmit() {
    this.$v.$touch();
    if (!this.$v.$invalid) {
      axios.post('/api/appointments', this.formData)
        .then(response => {
          alert('预约成功');
        })
        .catch(error => {
          console.error(error);
        });
    }
  }
}

样式优化
添加CSS样式增强用户体验:

.appointment-container {
  max-width: 600px;
  margin: 0 auto;
  padding: 20px;
}
.form-group {
  margin-bottom: 15px;
}
.error-message {
  color: red;
  font-size: 12px;
}

响应式处理
使用Vue的响应式特性动态显示可选时间:

<div v-if="formData.date">
  <label>选择时间</label>
  <select v-model="formData.time">
    <option v-for="time in availableTimes" :key="time">{{ time }}</option>
  </select>
</div>

最终整合
将所有部分组合成完整组件,确保表单提交后重置字段:

data() {
  return {
    formData: {
      name: '',
      phone: '',
      date: '',
      time: ''
    },
    availableTimes: []
  }
},
methods: {
  resetForm() {
    this.formData = {
      name: '',
      phone: '',
      date: '',
      time: ''
    };
    this.$v.$reset();
  }
}

标签: 页面vue
分享给朋友:

相关文章

vue实现按钮刷新

vue实现按钮刷新

Vue 实现按钮刷新功能 在 Vue 中实现按钮刷新功能可以通过多种方式实现,具体取决于刷新需求是局部刷新还是全局刷新。以下是几种常见的方法: 使用 window.location.reload()…

vue实现压缩上传文件

vue实现压缩上传文件

压缩上传文件的实现方法 在Vue中实现文件压缩和上传功能,可以通过以下步骤完成。该方法结合了前端文件压缩库和HTTP请求,确保文件在上传前被有效压缩。 安装必要的依赖 需要使用compressorj…

vue实现点击页面切换

vue实现点击页面切换

实现点击页面切换功能 在Vue中实现点击页面切换功能,可以通过路由跳转或组件动态渲染两种方式完成。以下是具体实现方法: 使用Vue Router实现页面跳转 安装Vue Router后,在项目中配置…

vue文件实现页面跳转

vue文件实现页面跳转

Vue文件实现页面跳转的方法 在Vue项目中,页面跳转可以通过Vue Router实现。以下是几种常见的实现方式: 声明式导航 使用<router-link>组件实现跳转,适合模板中使用…

vue实现自定义登录

vue实现自定义登录

实现自定义登录的基本步骤 在Vue中实现自定义登录功能通常需要结合前端和后端技术。以下是一个基本的实现流程: 创建登录表单组件 使用Vue的单文件组件创建一个登录表单,包含用户名和密码输入框以及提交…

vue实现选中单元格

vue实现选中单元格

Vue 实现选中单元格的方法 基础实现思路 在 Vue 中实现选中单元格功能,通常可以通过动态绑定 class 或 style 来实现。以下是一个基于表格的简单实现示例: <templ…