1.需求分析
背景管理:提供電影院的名字,位址,票價,座位的排布(含空座位),上映時間(含多個)等
前台選座管理:使用者可以選擇不通的時間,不同的座位,多個座位,選中且放棄的情況,然後支付,出現二維碼
2.思考(先提供已經完成的部分,支付部分尚未完成)

就兩個頁面,一個是表單送出(管理頁面),一個是選座頁面,後面還有支付頁面尚未完成。
部分分解:
1.座位排列的渲染。算法:背景 row*col ,在選座頁面的是通過兩層for 循環,循環 table 裡面的 tr 和td 将所有座位完成。
我這裡采用的是ejs 的模版渲染。當然可以用js 拼字元串的,循環table的
2.空座位的處理,也就是某個角落沒有座位。需要提出來,單獨處理。背景,需要配置好資料,和前端的代碼一起配合處理頁面。
思路:循環table 裡的td,求出td的所在的row 和col,然後 拼成字元串 **排**列,比對從背景傳來的字元串,這個字元串也是循環背景配置空的數組得來的。兩個字元串如果相等的話,那麼将這個座位置空(追加class)。
3.已經定過座位的位置。同樣是通過的循環td,比對背景傳來的 數組中的資料,如果相等則追加class。如圖
這裡的做法和上面的一樣,我目前還沒找到好的方法,這樣的做法是比較不妥的。最好的做法應該在循環tabel 的時候,就應該處理這些資料,而不應該先做出表格,再處理表格。
(col 不加1)
3.選座位,考慮到選多個座位,然後取消某些座位的情況。處理如下
細節做法:壓入數組,和删除數組的某個元素。 這裡的添加一個數組的remove的方法。 (col 不加1 )
4.選座位後,座位和别人沖突的處理
前端處理大部分難點就是上面的部分。下面是背景處理的部分:
背景處理:
背景處理就是存取資料庫的部分。我背景用的是 nodejs + express + mongodb。
nodejs 生成電影院資料的接口如下:
nodejs 處理選座位的接口如下:
慚愧:因為後端接口是自己寫,前端渲染資料也是自己寫的,知識有所欠缺,是以代碼就是很糟糕的說,歡迎噴啊,各位有啥好的想法和做法,也可以和我交流。