vue+element展示时间面板,显示可选和禁用的时间

vue+element实现时间选择

最近有个需求,客户A在预约18号技师时,要根据18号技师的服务时间,自动展示哪些时间段可以预约,哪些时间段18号技师正在服务,而正在服务的时间段,客户A是不能预约的,页面效果如下:(灰色为禁选,白色为可选择,蓝色为选中)
在这里插入图片描述
在网上找了半天,也没有找到合适的日期插件,但又要实现这个效果,只能自己造一个了。
我的实现思路:
先将时间段(我的是从8点到夜里0点,每半个小时一个值)放入数组,页面使用button按钮,通过vue的v-for循环显示和赋值,根据条件对每个按钮设置颜色,是否禁用。

HTML部分
<div>
    <span v-for="(item,index) in timeList" :key="index">
       <span style="padding-left: 5px">
          <el-button size="medium" style="width: 80px" :type="item.type" :disabled="item.flag"
                     @click="selectTime(index,item.time)">{{item.time}}</el-button>
        </span>
           <!--每5个一行-->
        <span v-if="(index+1)%5==0">
          <br>
        </span>
    </span>
 </div>
数据格式

type:控制按钮样式(element按钮样式,info为禁用状态,primary为选中状态," "为可选状态)
time:按钮显示的时间
flag:判断按钮是否禁用

timeList= [
          {'type': '', "time": "8:00", 'flag': false},
          {'type': '', "time": "8:30", 'flag': false},
          {'type': '', "time": "9:00", 'flag': false},
          {'type': 'primary', "time": "9:30", 'flag': false},
          {'type': 'info', "time": "10:00", 'flag': true},
        ]
按钮选择事件
 参数为索引,和时间值
 selectTime(index, time) {
        //先查询是否有已经选则的时间,有的话先取消原来的,再赋值新选中的
        let oldIndex;
        //没有时返回-1
        oldIndex = this.timeList.findIndex((item) => {
          return item.type === 'primary';
        });
        //有已经选中的值,取消
        if (oldIndex > -1) {
          this.timeList[oldIndex].type = '';
        }
        //根据索引和时间对选择的时间修改样式
        let obj = {};
        obj = this.timeList.find((item) => {
          return item.time === time;
        });
        this.timeList[index].type = 'primary';
      }
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现Java配合Element实现Excel导入功能,可以按照以下步骤进行操作: 1. 添加Element依赖:在你的Java项目中,首先需要添加Element的相关依赖。你可以在项目的pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.webjars.npm</groupId> <artifactId>element-ui</artifactId> <version>2.15.1</version> </dependency> ``` 或者你也可以直接下载Element的压缩包,将其中的CSS和JS文件引入到你的项目中。 2. 创建上传组件:使用Element提供的上传组件,用于选择并上传Excel文件。你可以在HTML文件中添加以下代码: ```html <el-upload :action="uploadUrl" :file-list="fileList" :on-change="handleUpload"> <el-button slot="trigger" size="small" type="primary">选择文件</el-button> <el-button style="margin-left: 10px;" size="small" type="success" @click="handleImport">导入</el-button> </el-upload> ``` 其中,`uploadUrl` 是上传文件的后端接口地址,`fileList` 是存放已选择文件的数组。`handleUpload` 方法用于监听文件选择事件,`handleImport` 方法用于执行导入操作。 3. 后端处理:在后端使用Java代码处理上传的Excel文件。你可以使用Apache POI库来读取Excel文件内容。以下是一个简单的示例代码: ```java @PostMapping("/upload") public String uploadFile(@RequestParam("file") MultipartFile file) { try (InputStream inputStream = file.getInputStream()) { Workbook workbook = WorkbookFactory.create(inputStream); Sheet sheet = workbook.getSheetAt(0); // 遍历行 for (Row row : sheet) { // 遍历单元格 for (Cell cell : row) { // 处理单元格数据 String value = cell.toString(); System.out.print(value + "\t"); } System.out.println(); } return "success"; } catch (IOException | EncryptedDocumentException | InvalidFormatException e) { e.printStackTrace(); return "error"; } } ``` 在这个示例中,我们使用`WorkbookFactory`来创建Workbook对象,然后获取第一个Sheet,并遍历行和单元格来处理数据。你可以根据实际需求进行更详细的处理。 这样,你就可以使用Java配合Element实现Excel导入功能了。记得在前端页面中调用后端的上传接口,并根据需要对Excel数据进行进一步处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值