预约系统(十) 预约页面--首页

预约页面的框架与管理页面的框架基本上是一样的,不做重复。

预约首页的的效果:(左面的月历选择日期可以查看到这天各个会议室的预约情况,显示在右面的表格中)

前端html:

 1 <!DOCTYPE html>
 2 
 3 <html>
 4 <head>
 5     <meta name="viewport" content="width=device-width" />
 6     <title>首页</title>
 7 
 8     <script src="~/Scripts/jquery-1.8.2.min.js"></script>   
 9     <script src="~/Scripts/jquery.easyui.min.js"></script>
10     <link href="~/Content/uimaker/icon.css" rel="stylesheet" />
11     <link href="~/Content/uimaker/easyui.css" rel="stylesheet" />
12     <script src="~/Scripts/easyui-lang-zh_CN.js"></script>
13 
14     <style type="text/css">
15         #title{ font-size:16px;color:#0E2D5F; margin-bottom:10px; }
16     </style>
17       
18 </head>
19 <body style="padding-top: 10px;">
20 
21     <div data-options="region:'center'" style="overflow: hidden;padding:10px 15px;">
22         
23         <div style="15%; float:left; margin-right:15px;">
24             <div id="cc" class="easyui-calendar" style="100%;height:250px;"></div>
25         </div>
26 
27         <!--表格-->
28         <table id="dg" class="easyui-datagrid" style=" 80%; height:450px;" data-options="method:'post',toolbar: '#tb_search',singleSelect: true">
29         </table>
30             <!--toolbar-->
31             <div id="tb_search" style="padding:2px 2px;">
32                 <div id="tb_search_title" style="100%;height:35px; text-align:center; font-size:16px;font-weight:bold;">今日会议预约</div>
33             </div>
34     </div>
35 
36 </body>
37 </html>

jquery部分:分为两个功能,一个是页面加载绑定当天的会议内容;另一个是月历选择绑定会议的内容.

页面加载绑定当天的会议内容:

 1 $(function () {
 2 
 3             //发送一个请求,获取绑定的列名,列字段,并补充相关内容
 4             $.ajax({
 5                 url: "/Home/Dynamic_Column",
 6                 success: function (data) {
 7                     if (data.length > 0) {
 8 
 9                         //动态绑定列
10                         var option1 = {}; //声明一个对象,并对对象的属性赋值  var a = {} ;  var a =new object() ;
11                         option1.columns = [[
12                               //{ field: '', title: '' }
13                         ]]
14                         var array = data.split('%');
15                         for (var i = 0; i < array.length; i++)
16                         {
17                             var temp = array[i].split('&');
18                             option1.columns[0].push({ field: temp[1], title: temp[1] });
19                         }
20                         option1.url = '/Home/Meeting_today';
21                         option1.frozenColumns = [[]];
22                         option1.frozenColumns[0].push({ field: 'Time_region', title: '时间段' });
23 
24                         //将这个对象传递给easyui datagrid的方法中
25                         $('#dg').datagrid(option1);
26                         //datagrid选择到固定的行
27                         $('#dg').datagrid({
28                             onLoadSuccess: function () {
29                                 $("#dg").datagrid("scrollTo", 24);
30                             }
31                         });
32 
33                     }
34                 }
35             })
36         })

**这里其实发送了两个请求,一个是获取动态的列,一个是获取当天会议内容。

获取动态列:控制器中的方法

 1 /// <summary>
 2         /// 返回列,列名和列的字段名
 3         /// </summary>
 4         /// <returns></returns>
 5         public ActionResult Dynamic_Column()
 6         {
 7             RoomService roomservice = new RoomService();
 8             string temp = roomservice.Return_DynamicColumn();
 9             return Content(temp);
10         }

获取动态列:BLL

1 public string Return_DynamicColumn()
2         {
3             return roomdal.Return_DynamicColumn();
4         }

获取动态列:DAL

 1 public string Return_DynamicColumn()
 2         {
 3             string sql = " select room_mc from T_room ";
 4             DataTable dt = SqlHelper.SelectSqlReturnDataTable(sql, CommandType.Text);
 5 
 6             string s3 = "";
 7             if (dt.Rows.Count > 0)
 8             {
 9                 for (int i = 0; i < dt.Rows.Count; i++)
10                 {
11                     if (i == dt.Rows.Count - 1)
12                     {
13                         s3 = s3 + "room_mc" + i + "&" + dt.Rows[i]["room_mc"].ToString();
14                     }
15                     else
16                     {
17                         s3 = s3 + "room_mc" + i + "&" + dt.Rows[i]["room_mc"].ToString() + "%";
18                     }
19                 }
20 
21             }
22             return s3;
23         }

获取当天会议内容:控制中的方法

 1   public ActionResult Meeting_today()
 2         {
 3             //
 4             string date = DateTime.Now.ToShortDateString();
 5             string[] temp = date.Split('/');
 6             if (temp[1].Length == 1)
 7             {
 8                 temp[1] = "0" + temp[1];
 9             }
10             if (temp[2].Length == 1)
11             {
12                 temp[2] = "0" + temp[2];
13             }
14             date = temp[0] + "-" + temp[1] + "-" + temp[2];
15             //List<T_Meeting_Today> list = new Hys_PlanService().ReturnMeetingToday(date);
16             //return Json(list, JsonRequestBehavior.AllowGet);
17 
18             string result = new Hys_PlanService().ReturnMeetingToday_update(date);
19             return Content(result);
20         }

获取当天会议内容:BLL

1 public string ReturnMeetingToday_update(string date)
2         {
3             return hys_PlanDal.ReturnMeetingToday_update(date);
4         }

获取当天会议内容:DAL

****

  1 /// <summary>
  2         /// 根据日期生成当天的会议室预约情况!
  3         /// </summary>
  4         /// <param name="date"></param>
  5         /// <returns></returns>
  6         public string ReturnMeetingToday_update(string date)
  7         {
  8             string sql = " select room_mc from T_room ";
  9             DataTable dt_0 = SqlHelper.SelectSqlReturnDataTable(sql, CommandType.Text);
 10 
 11             #region 生成DataTable
 12             DataTable tblDatas = new DataTable("Datas");
 13             DataColumn dc = null;
 14             dc = tblDatas.Columns.Add("Time_region", Type.GetType("System.String"));
 15             for (int i = 0; i < dt_0.Rows.Count; i++)
 16             {
 17                 dc = tblDatas.Columns.Add(dt_0.Rows[i]["room_mc"].ToString(), Type.GetType("System.String"));
 18             }
 19 
 20             string[] temp_0 = new string[48]{
 21                 "00:00-00:30","00:30-01:00","01:00-01:30","01:30-02:00","02:00-02:30","02:30-03:00","03:00-03:30","03:30-04:00","04:00-04:30",
 22                 "04:30-05:00","05:00-05:30","05:30-06:00","06:00-06:30","06:30-07:00","07:00-07:30","07:30-08:00","08:00-08:30","08:30-09:00",
 23                 "09:00-09:30","09:30-10:00","10:00-10:30","10:30-11:00","11:00-11:30","11:30-12:00","12:00-12:30","12:30-13:00","13:00-13:30",
 24                 "13:30-14:00","14:00-14:30","14:30-15:00","15:00-15:30","15:30-16:00","16:00-16:30","16:30-17:00","17:00-17:30","17:30-18:00",
 25                 "18:00-18:30","18:30-19:00","19:00-19:30","19:30-20:00","20:00-20:30","20:30-21:00","21:00-21:30","21:30-22:00","22:00-22:30",
 26                 "22:30-23:00","23:00-23:30","23:30-24:00"
 27             };
 28             foreach (string t in temp_0)
 29             {
 30                 DataRow newRow;
 31                 newRow = tblDatas.NewRow();
 32                 newRow["Time_region"] = t;
 33                 for (int j = 0; j < dt_0.Rows.Count; j++)
 34                 {
 35                     newRow[dt_0.Rows[j]["room_mc"].ToString()] = "";
 36                 }
 37                 tblDatas.Rows.Add(newRow);
 38             }
 39             #endregion
 40 
 41             string[] arrays = new string[49]{
 42                 "00:00","00:30","01:00","01:30","02:00","02:30","03:00","03:30","04:00","04:30","05:00","05:30","06:00","06:30","07:00","07:30","08:00","08:30","09:00","09:30","10:00","10:30","11:00","11:30","12:00","12:30","13:00","13:30","14:00","14:30","15:00","15:30","16:00","16:30","17:00","17:30","18:00","18:30","19:00","19:30","20:00","20:30","21:00","21:30","22:00","22:30","23:00","23:30","24:00"
 43             };
 44             //
 45             DataTable dt = Returndt_today(date);
 46             if(dt.Rows.Count>0)
 47             {
 48                 for (int i = 0; i < dt.Rows.Count; i++)
 49                 {
 50                     string hyz = dt.Rows[i]["hys"].ToString();
 51                     string temp_begin = dt.Rows[i]["time_begin"].ToString();
 52                     string temp_end = dt.Rows[i]["time_end"].ToString();
 53                     string hyzt = dt.Rows[i]["hyzt"].ToString() + "--" + dt.Rows[i]["yyr"].ToString();
 54                     foreach (DataColumn column in tblDatas.Columns)
 55                     {
 56                         if (column.ColumnName == hyz)
 57                         {
 58                             int a = Array.IndexOf(arrays, temp_begin);
 59                             int b = Array.IndexOf(arrays, temp_end);
 60                             string[] temp = arrays.Skip(a).Take(b - a + 1).ToArray();
 61                             for (int j = 0; j < temp.Length - 1; j++)
 62                             {
 63                                 #region 时间段
 64                                 string t = temp[j] + "-" + temp[j + 1];
 65                                 if (t == "00:00-00:30") { tblDatas.Rows[0][column] = hyzt; }
 66                                 else if (t == "00:30-01:00") { tblDatas.Rows[1][column] = hyzt; }
 67                                 else if (t == "01:00-01:30") { tblDatas.Rows[2][column] = hyzt; }
 68                                 else if (t == "01:30-02:00") { tblDatas.Rows[3][column] = hyzt; }
 69                                 else if (t == "02:00-02:30") { tblDatas.Rows[4][column] = hyzt; }
 70                                 else if (t == "02:30-03:00") { tblDatas.Rows[5][column] = hyzt; }
 71                                 else if (t == "03:00-03:30") { tblDatas.Rows[6][column] = hyzt; }
 72                                 else if (t == "03:30-04:00") { tblDatas.Rows[7][column] = hyzt; }
 73                                 else if (t == "04:00-04:30") { tblDatas.Rows[8][column] = hyzt; }
 74                                 else if (t == "04:30-05:00") { tblDatas.Rows[9][column] = hyzt; }
 75                                 else if (t == "05:00-05:30") { tblDatas.Rows[10][column] = hyzt; }
 76                                 else if (t == "05:30-06:00") { tblDatas.Rows[11][column] = hyzt; }
 77                                 else if (t == "06:00-06:30") { tblDatas.Rows[12][column] = hyzt; }
 78                                 else if (t == "06:30-07:00") { tblDatas.Rows[13][column] = hyzt; }
 79                                 else if (t == "07:00-07:30") { tblDatas.Rows[14][column] = hyzt; }
 80                                 else if (t == "07:30-08:00") { tblDatas.Rows[15][column] = hyzt; }
 81                                 else if (t == "08:00-08:30") { tblDatas.Rows[16][column] = hyzt; }
 82                                 else if (t == "08:30-09:00") { tblDatas.Rows[17][column] = hyzt; }
 83                                 else if (t == "09:00-09:30") { tblDatas.Rows[18][column] = hyzt; }
 84                                 else if (t == "09:30-10:00") { tblDatas.Rows[19][column] = hyzt; }
 85                                 else if (t == "10:00-10:30") { tblDatas.Rows[20][column] = hyzt; }
 86                                 else if (t == "10:30-11:00") { tblDatas.Rows[21][column] = hyzt; }
 87                                 else if (t == "11:00-11:30") { tblDatas.Rows[22][column] = hyzt; }
 88                                 else if (t == "11:30-12:00") { tblDatas.Rows[23][column] = hyzt; }
 89                                 else if (t == "12:00-12:30") { tblDatas.Rows[24][column] = hyzt; }
 90                                 else if (t == "12:30-13:00") { tblDatas.Rows[25][column] = hyzt; }
 91                                 else if (t == "13:00-13:30") { tblDatas.Rows[26][column] = hyzt; }
 92                                 else if (t == "13:30-14:00") { tblDatas.Rows[27][column] = hyzt; }
 93                                 else if (t == "14:00-14:30") { tblDatas.Rows[28][column] = hyzt; }
 94                                 else if (t == "14:30-15:00") { tblDatas.Rows[29][column] = hyzt; }
 95                                 else if (t == "15:00-15:30") { tblDatas.Rows[30][column] = hyzt; }
 96                                 else if (t == "15:30-16:00") { tblDatas.Rows[31][column] = hyzt; }
 97                                 else if (t == "16:00-16:30") { tblDatas.Rows[32][column] = hyzt; }
 98                                 else if (t == "16:30-17:00") { tblDatas.Rows[33][column] = hyzt; }
 99                                 else if (t == "17:00-17:30") { tblDatas.Rows[34][column] = hyzt; }
100                                 else if (t == "17:30-18:00") { tblDatas.Rows[35][column] = hyzt; }
101                                 else if (t == "18:00-18:30") { tblDatas.Rows[36][column] = hyzt; }
102                                 else if (t == "18:30-19:00") { tblDatas.Rows[37][column] = hyzt; }
103                                 else if (t == "19:00-19:30") { tblDatas.Rows[38][column] = hyzt; }
104                                 else if (t == "19:30-20:00") { tblDatas.Rows[39][column] = hyzt; }
105                                 else if (t == "20:00-20:30") { tblDatas.Rows[40][column] = hyzt; }
106                                 else if (t == "20:30-21:00") { tblDatas.Rows[41][column] = hyzt; }
107                                 else if (t == "21:00-21:30") { tblDatas.Rows[42][column] = hyzt; }
108                                 else if (t == "21:30-22:00") { tblDatas.Rows[43][column] = hyzt; }
109                                 else if (t == "22:00-22:30") { tblDatas.Rows[44][column] = hyzt; }
110                                 else if (t == "22:30-23:00") { tblDatas.Rows[45][column] = hyzt; }
111                                 else if (t == "23:00-23:30") { tblDatas.Rows[46][column] = hyzt; }
112                                 else if (t == "23:30-24:00") { tblDatas.Rows[47][column] = hyzt; }
113                                 #endregion
114                             }
115                         }
116                     }
117                 }
118             }
119             string result = DataTableToJson(tblDatas);
120             return result;
121         }
122 
123 
124 
125         /// <summary>
126         /// DataTableToJson
127         /// </summary>
128         /// <param name="table"></param>
129         /// <returns></returns>
130         public static string DataTableToJson(DataTable table)
131         {
132             var JsonString = new StringBuilder();
133             if (table.Rows.Count > 0)
134             {
135                 JsonString.Append("[");
136                 for (int i = 0; i < table.Rows.Count; i++)
137                 {
138                     JsonString.Append("{");
139                     for (int j = 0; j < table.Columns.Count; j++)
140                     {
141                         if (j < table.Columns.Count - 1)
142                         {
143                             JsonString.Append(""" + table.Columns[j].ColumnName.ToString() + "":" + """ + table.Rows[i][j].ToString() + "",");
144                         }
145                         else if (j == table.Columns.Count - 1)
146                         {
147                             JsonString.Append(""" + table.Columns[j].ColumnName.ToString() + "":" + """ + table.Rows[i][j].ToString() + """);
148                         }
149                     }
150                     if (i == table.Rows.Count - 1)
151                     {
152                         JsonString.Append("}");
153                     }
154                     else
155                     {
156                         JsonString.Append("},");
157                     }
158                 }
159                 JsonString.Append("]");
160             }
161             return JsonString.ToString();
162         }

月历选择绑定会议的内容,后台的方法相类似,只不过js部分的不同:

 1 $('#cc').calendar({
 2             onSelect: function (date) {
 3                 //获取当天的日期和选择之后的日期格式
 4                 var myDate = new Date();
 5                 var date_today = myDate.getFullYear() + "-" + (myDate.getMonth() + 1) + "-" + myDate.getDate();
 6                 var date_other = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate()
 7                 //alert(date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate());
 8                 $('#dg').datagrid('loadData', { total: 0, rows: [] });
 9 
10                 if (date_today == date_other) {
11                     //日期为今天
12                     $("#tb_search_title").html("今日会议预约");
13                     //绑定数据
14                     //$("#dg").datagrid('loadData', []);
15                     $('#dg').datagrid({
16                         frozenColumns: [[
17                            { field: 'Time_region', title: '时间段' }
18                         ]]
19                     });
20                     $.ajax({
21                         url: "/Home/Dynamic_Column",
22                         success: function (data) {
23                             if (data.length > 0) {
24                                 var option1 = {};
25                                 option1.columns = [[
26                                       //{ field: '', title: '' }
27                                 ]]
28                                 var array = data.split('%');
29                                 for (var i = 0; i < array.length; i++) {
30                                     var temp = array[i].split('&');
31                                     option1.columns[0].push({ field: temp[1], title: temp[1] });
32                                 }
33                                 option1.url = '/Home/Meeting_today';
34                                 $('#dg').datagrid(option1);
35                                 //初始化表格绑定...
36                                 $('#dg').datagrid({
37                                     //url: '/Home/Meeting_today',
38                                     //columns:option1,
39                                     onLoadSuccess: function () {
40                                         $("#dg").datagrid("scrollTo", 24);
41                                     }
42                                 });
43                             }
44                         }
45                     })
46                 } else {
47                     //日期不为今天
48                     $("#tb_search_title").html(date_other + " 会议预约");
49                     //绑定数据
50                     //$("#dg").datagrid('loadData', []);
51                     //$("#dg").datagrid("loadData", { total: 0, rows: [] });
52                     $('#dg').datagrid({
53                         frozenColumns: [[
54                            { field: 'Time_region', title: '时间段' }
55                         ]]
56                     });
57                     $.ajax({
58                         url: "/Home/Dynamic_Column",
59                         success: function (data) {
60                             if (data.length > 0) {
61                                 var option1 = {};
62                                 option1.columns = [[
63                                       //{ field: '', title: '' }
64                                 ]]
65                                 var array = data.split('%');
66                                 for (var i = 0; i < array.length; i++) {
67                                     var temp = array[i].split('&');
68                                     option1.columns[0].push({ field: temp[1], title: temp[1] });
69                                 }
70                                 option1.url = '/Home/Meeting_otherDay';
71                                 option1.queryParams = { date: date_other };
72                                 //option1.queryParams[0].push({ date: date_other });
73                                 $('#dg').datagrid(option1);
74                                 //初始化表格绑定...
75                                 $('#dg').datagrid({
76                                     //url: '/Home/Meeting_otherDay',
77                                     //queryParams: {
78                                     //    date: date_other
79                                     //},
80 
81                                     //columns:option1,
82                                     onLoadSuccess: function () {
83                                         $("#dg").datagrid("scrollTo", 24);
84                                     }
85                                 });
86                             }
87                         }
88                     })
89                 }
90             }
91         });
原文地址:https://www.cnblogs.com/youguess/p/7210888.html