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

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

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

前端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="width:15%; float:left; margin-right:15px;">
24             <div id="cc" class="easyui-calendar" style="width:100%;height:250px;"></div>
25         </div>
26
27         <!--表格-->
28         <table id="dg" class="easyui-datagrid" style=" width: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="width: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         });
时间: 2024-10-09 02:22:19

预约系统(十) 预约页面--首页的相关文章

录播教室预约系统(十)-客户端部门管理员重置本单位其他人员密码

录播教室预约系统(十)-客户端部门管理员重置本单位其他人员密码 客户端代码:  //发出的数据类型为int类型  ItemID为用户对应的ID             ResMessage resMessage = tcpConnnection.SendReceiveObject<ResMessage>("ReqResetPsw", "ResResetPsw", 5000, itemID);            if (resMessage.Messa

功能教室预约系统开源下载(c#源码)

这个功能教室预约系统是帮朋友做的,最近没事整理出来,供大家参考,本系统为CS结构,服务器端客户端程序. 数据基于mssql2005  .net2.0版本 通讯框架为networkcomms2.3.1 录播教室预约系统序言 录播教室预约系统(一)-数据库表 录播教室预约系统(二)-服务器端与数据库的交互 录播教室预约系统(三)-DepTable表[普通表] 录播教室预约系统(四)-ClassRoom表[带有外键的表] 录播教室预约系统(五)-用户登陆 录播教室预约系统(六)-注册新用户 录播教室预

广州美发小程序预约系统

(美发小程序预约系统请联系杨先生:136-3141-0167可加V信) 小程序自推出以来,就告诉用户它是无须安装,即用即走的一个应用,且小程序还限制了不能分享到朋友圈,这就是尽量在用户不需要的时候不出现,但是很多线下传统行业却可以借小程序连接线上,实现转型,例如:餐饮行业.美发行业等,赢在移动借此推出美发小程序预约系统,加强线上线下互动,引流更多客户. 美发小程序预约系统有什么优势? 场景一:增加品牌曝光 顾客想到附近美容院做保养,打开微信查看附近的小程序,看到离自己最近的美容院,快速浏览查看服

预约系统(四) 管理页面框架搭建easyUI

Manage控制器用于管理页面 Index视图为管理页面首页,采用easyUi的后台管理框架 Html头部调用,jquery库,easyui库,easyui.css,icon.css,语言包 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>管理页面</title>

用dedecms自定义表单创建简易自助预约系统

建站往往需要根据客户的需求来增加相应的功能,比如预约.平时用比较多的是织梦系统,那么如何用dedecms自定义表单创建简易自助预约系统呢? 进入dedecms后台,左侧菜单中依次点击“核心” - 频道类型 - 自定义表单 - [增加新的自定义表单] 点击后进入设置模版界面,这里可以不用动直接点击确定.当然名字那里可以修改成“预约”. 点击上图中 “管理” 下的铅笔图标进行编辑 进入界面后我们可以通过添加新的字段来设置我们需要的栏目比如我们可以创建,联系人.电话.性别.等相关东西 如果是创建联系人

体育馆团体预约系统UML软件工程第16周项目日志

体育馆团体预约系统 UML软件工程项目日志 June,14th ,2019 目录 一. 博客地址 1 二. 客户提交内容 1 三. 项目背景 2 四. 项目范围和前景 2 五. 沟通记录 3 六. 甲方确认结果: 6 七. 结构化需求分析概述 6 八. 涉众分析 7 九. 硬数据采样及数据分析 8 十. 过程建模 8 十一. 数据建模 9 十二. 预约系统用例分析 10 十三. 工作计划 12 十四. 本周工作日志 13 十五. 项目总进展 13 一.博客地址 https://www.cnblo

【SpringBoot + Freemarker + MySQL】 搭建实验室仪器预约系统

半年前,初学Java,使用JSP+Tomcat+MySQL搭建了一个简易的实验室仪器预约系统. 使用JSP技术搭建实验仪器预约系统 但是jsp技术过于老旧,已经被淘汰了,且系统的稳定性较差.因此近日使用 SpringBoot + Freemarker + MySQL 重构此项目.更重要的是,学习了一些css,把界面修整了一番,总算不至于太难看. 功能展示 项目地址  http://193.112.92.196:8080/ 首页 用户注册与登录 展示仪器详细信息 登录后可以进行预约 点击“我的预约

录播教室预约系统序言

大概一年多年前吧,朋友让我帮他做一个预约系统,当时刚好在学习networkcomms.net的2.3.1版本(本人当时已购买商业版),正好想测试一下networkcomms.net通讯框架的稳定性,于是便开发了此预约系统,基于networkcomms2.3.1 .部署后,系统非常的稳定,平时的cpu占有率非常的低,很少有达到5%以上的情况,当然用户数也并不多,并发数最多大概100左右,没有出现过宕机等情况. 下面将会写一系列文章,来介绍录播教室预约系统的开发,诸位朋友可以了解如何基于networ

基于SSM技术的茶馆在线预约系统-java茶馆在线预约系统

基于SSM技术的茶馆在线预约系统-java茶馆在线预约系统 1.包含源程序,数据库脚本.代码和数据库脚本都有详细注释.2.课题设计仅供参考学习使用,可以在此基础上进行扩展完善开发环境:Eclipse ,MYSQL,JDK1.7,Tomcat 7涉及技术点:MVC模式.SpringMvc.Mybatis.Spring.HTML.JavaScript.CSS.JQUERY.DWR.Ajax等系统采用Mybatis框架实现ORM对象关系映射,前台JSP实现,后台springMvc映射,使用Spring

毕至居预约系统研发需求分析

一.项目背景 在浙江大学城市学院学生公寓尚雅楼和致远楼一楼各有一处自助式公共厨房,名曰"毕至居",取自王羲之的<兰亭集序>中"群贤毕至,少长咸集",自助与分享便是这里的主题.在这里可以让拥有好厨艺的你大展身手,让热爱美食的你大饱口福,让你回味家的味道. 二.项目简介 本项目将以小程序呈现,以便利学校师生进行线上预约"毕至居"的使用为目标,为用户提供创建用户.管理预约.参与活动的功能:为管理员提供审核预约.管理"毕至居&quo