会议室预定终章

1. 会议室预定功能简介

用户登陆系统,可以预定会议室,退订,不可对其他用户预定的会议室预定

2. 会议室知识点扩充

2.1 加载框

加载框的含义是,每次数据提交会有一些效果,比如转圈等

本质利用了遮罩层

{#        模态对话框形式的加载框#}
        .hide{
            display: none;
        }
        .shade {
            position: fixed;
            z-index: 1040;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: #999;
            filter: alpha(opacity=50);
            -moz-opacity: 0.5;
            opacity: 0.5;
        }

        .loading {
            position: fixed;
            z-index: 1050;
            top: 40%;
            left: 50%;
            height: 32px;
            width: 32px;
            margin: 0 0 0 -16px;
            background: url(/static/img/loading.gif);
        }

============ body

   {#    遮罩层#}
    <!-- 遮罩层开始 -->
    <div id=‘shade‘ class=‘shade hide‘></div>
    <!-- 遮罩层结束 -->
    <!-- 加载层开始 -->
    <div id=‘loading‘ class=‘loading hide‘></div>
    <!-- 加载层结束 -->

============  只需要在数据需要刷新的时候出现,或者隐藏就可以了
  $(‘.shade,.loading‘).addClass(‘hide‘);

遮罩层模拟加载框

2.2 时间插件

时间插件指的是自己选则时间,只能大于等于今天的一个插件

{#    input时间插件#}
    <link rel="stylesheet" href="{% static ‘plugins/datetimepicker/bootstrap-datetimepicker.min.css‘ %}">

{#   input时间框#}
    <div class=‘input-group‘ style="width: 230px">
        <input type=‘text‘ class="form-control" id=‘datetimepicker11‘ placeholder="请选择日期"/>
        <span class="input-group-addon">
            <span class="glyphicon glyphicon-calendar">
            </span>
        </span>
    </div>

{#bootstrap的js#}
<script src="{% static ‘plugins/bootstrap/js/bootstrap.min.js‘ %}"></script>
{#datetimepicker的js还依赖jquery的js#}
<script src="{% static ‘plugins/datetimepicker/bootstrap-datetimepicker.min.js‘ %}"></script>
{#datetimepicker的字体#}
<script src="{% static ‘plugins/datetimepicker/bootstrap-datetimepicker.zh-CN.js‘ %}"></script>

  页面加载完自动执行#}
         $(‘#datetimepicker11‘).datetimepicker({
            minView: "month",   // 最小月,不写这个,到小时分:分钟
            language: "zh-CN",
            sideBySide: true,
            format: ‘yyyy-mm-dd‘,
            bootcssVer: 3,   //bootsrap 3格式生成小图标
            startDate: new Date(),  // 开始日期
            autoclose: true   // 页面自动关闭
         }).on(‘changeDate‘, changeDate);

时间插件

    // input选择时间,ev是input选中的时间,是个时间对象
    function changeDate(ev) {
        chose_date = ev.date.Format(‘yyyy-MM-dd‘);  // 更新了全局变量INPUT时间
         getbookinfo(chose_date)
    }

时间插件选中时间触发事件

http://www.bootcss.com/p/bootstrap-datetimepicker/

2.3 js的扩展方法

扩展方法是指给原来没有该功能,扩展一个功能出来

                给字符串扩展方法
        v = ‘aaaa’
        String.prototype.xxx = function(arg){
            return ‘888’
        }
        v.xxx = 888

        给日期扩展方法,date类型变成字符串类型
        v = new Date()
        Date.prototype.Format = function (fmt){
            对fmt进行处理,就是获取日期,拼接的
        }
        v.Format (‘yyyy-MM-dd’)            

js扩展方法

// 获取当前时间,如果用户取的是未来几天的,只需要传个参数即可
{#    d = new Date();#}
{#    d.getDate() 日期#}
{#    d.getFullYear() 年份#}
{#    d.getMonth() 月份+1#}

    // 对Date的扩展,将 Date 转化为指定格式的String
    // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
    // 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
    // 例子:
    // (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
    // (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
    Date.prototype.Format = function (fmt) {
        var o = {
            "M+": this.getMonth() + 1, //月份
            "d+": this.getDate(),      //日
            "h+": this.getHours(),     //小时
            "m+": this.getMinutes(),   //分
            "s+": this.getSeconds(),   //秒
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度
            "S": this.getMilliseconds() //毫秒
        };
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)
            if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    };

js时间扩展方法格式成字符串

2.4 js数组索引

// 在ADD中找到并删除
                var index = post_data.add[room_id].indexOf(time_id);  // 数组索引
                if(index !== -1){ // 我想取消的,如果没有这个索引返回的是-1
                     post_data.add[room_id].splice(index,1); // 插入
                }

数组

3. 数据格式

# 生成这样的数据
# data = [
#     [{‘text‘:‘海天盛宴‘,‘attrs‘:{}},{‘text‘:‘王大锤‘,‘attrs‘:{‘room_di‘:1,‘time_id‘:1,‘class‘:‘chose‘}},{‘text‘:‘‘,‘attrs‘:{‘room_di‘:1,‘time_id‘:2,‘class‘:‘‘}},],  # 表示王大锤预定
#     [{‘text‘:‘天上人间‘,‘attrs‘:{}},{‘text‘:‘egon‘,‘attrs‘:{‘room_di‘:2,‘time_id‘:1,‘class‘:‘chose‘}},{‘text‘:‘joker‘,‘attrs‘:{‘room_di‘:2,‘time_id‘:2,‘class‘:‘chose‘}},],  # 表示王大锤预定
#     [{‘text‘:‘信阳会所‘,‘attrs‘:{}},{‘text‘:‘‘,‘attrs‘:{‘room_di‘:3,‘time_id‘:1,‘class‘:‘‘}},{‘text‘:‘eva‘,‘attrs‘:{‘room_di‘:3,‘time_id‘:2,‘class‘:‘chose‘}},],  # 表示王大锤预定
# ]

这样的数据格式

原文地址:https://www.cnblogs.com/jokerbj/p/8448532.html

时间: 2024-08-30 14:31:32

会议室预定终章的相关文章

BugPhobia终章篇章:学霸在线系统Beta阶段展示

0x00 :序言 1 universe, 9 planets, 204 countries,809 islands, 7 seas, and i had the privilege to meet you. 展信安,致以BugPhobia团队的终章 即便对庆典失去兴趣和新鲜感 也选择用仪式感填补生活 就像用纸记下“一二三四”的计划 贴在学校衣柜的铁皮上 0x01 :团队成员简介 图1 BugPhobia团队终章篇章的合影 0x02 :团队项目愿景 0x0200: 学霸在线系统基本定位 网站基本定

启明星会议室预定系统更新日志-通用版

启明星会议室预定系统更新日志 V9.1更新说明 1.解决资源释放bug. bug说明:用户预定了“投影仪",在更新预定时,如果在投影仪选项里,直接删除了”投影仪“文字,这意味着用户不使用投影仪.更新成功,应该释放投影仪占用的资源.       但是目前更新成功后,该资源仍被占用,不会释放 2.增加了周查询功能,以及快速预定 V9.0更新说明 从9.0开始,启明星系统采用全新的构架,并且不在兼容早期的版本.而且,V9不再支持IE6与IE7. 除了界面上变更,V9对预定系统进行了简化.主要功能说明如

史上最简单的 SpringCloud 教程 | 终章

版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://blog.csdn.net/forezp. 目录(?)[+] 转载请标明出处: http://blog.csdn.net/forezp/article/details/70148833 本文出自方志朋的博客 错过了这一篇,你可能再也学不会 Spring Cloud 了!Spring Boot做为下一代 web 框架,Spring Cloud 作为最新最火的微服务的翘楚,你还有什么理由拒绝.赶快上船吧,老

会议室预定(可作为插件使用)

会议室预定(小项目) 该项目仍旧是用Django框架完成的,此项目的重点在于前端页面中有关预定的操作 首先建表,这里用的表较少,一共三张表,表结构如下: from django.db import models class UserInfo(models.Model): name = models.CharField(verbose_name='用户姓名', max_length=32) password = models.CharField(verbose_name='密码', max_len

会议室预定demo

关于会议室的增删改查 查: HTML: login继承django自带的admin用户认证系统 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="" method=&quo

JDBC终章- 使用 DBUtils实现增删查改- C3P0Utils数据源/QueryRunner runner连接数据源并执行sql

JDBC终章- 使用 DBUtils实现增删查改 1.数据库结构 Create Table CREATE TABLE `user` ( `id` int(3) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, `password` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 2.工程结构    

OO终章

OO终章 OO完结,这个课程比我想象得要肝,看来暑假得养老了. 感谢各位老师,各位助教带来的全新窝窝,游戏体验良好. 不过,也有遗憾,所以谁能告诉我BUG修复界面长啥样?? OO无伤过 感谢wsb,lsj,shh,xcb,hdl,zyy,lyt,xsy,wjyi,zt几位巨佬的帮助. 10198 lines,0 bugs. 第四单元总结 Project13 类图 大体上是把每个类挂在到类图下,把类的方法.属性挂在到类下,接口的属性和方法因为不涉及查询,故直接忽略. 复杂度 Method ev(G

《吊打面试官》系列-Redis终章_凛冬将至、FPX_新王登基

前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难.作为一个在互联网公司面一次拿一次offer的面霸(请允许我使用一下夸张的修辞手法),打败了无数竞争对手,每次都只能看到无数落寞的身影失望的离开,略感愧疚,在一个寂寞难耐的夜晚,我痛定思痛,决定开始写<吊打面试官>系列,希望能帮助各位读者以后面试势如破竹,对面试官进行360°的反击,吊打问你的面试官,让一同面试的同僚瞠目结舌,疯狂收割大厂offer! 絮叨 男儿

基于&lt;MediaElement&gt;的WPF视频播放器(终章)【3】

一.前言 对于<MediaElement>前两章介绍了差不多了,其实好的界面还需要UI工程师的配合,比如帮忙设计下按钮的样式等等.同样视频本身也需要吸引人,不然做的再好的播放器也没用.之后,我对代码进行了下小修改,粒子特效那部分就不再放了. 二.代码 前台代码 1 <Window 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://sche