99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

SpringBoot+Vue3前后端分離養(yǎng)老院管理系統(tǒng)實(shí)戰(zhàn)解析

SpringBoot+Vue3前后端分離養(yǎng)老院管理系統(tǒng)實(shí)戰(zhàn)解析 前后端分離的養(yǎng)老院管理系統(tǒng)這個(gè)選題其實(shí)挺有代表性的。養(yǎng)老院管理系統(tǒng)屬于典型的“信息管理系統(tǒng)”業(yè)務(wù)場(chǎng)景技術(shù)棧固定、模塊清晰、權(quán)限分明非常適合用來完整走一遍 SpringBoot Vue3 MyBatis MySQL 的實(shí)戰(zhàn)流程。我基于實(shí)際開發(fā)經(jīng)驗(yàn)把這個(gè)項(xiàng)目的源碼結(jié)構(gòu)、模塊設(shè)計(jì)、數(shù)據(jù)庫建模、前后端對(duì)接、本地部署啟動(dòng)以及常見問題排查完整梳理一遍希望能給正在做同類項(xiàng)目的同學(xué)提供一份可以抄作業(yè)的參考。無論你是畢業(yè)設(shè)計(jì)需要還是想快速搭建一套可用性強(qiáng)的管理后臺(tái)這篇文章都值得認(rèn)真看完。1. 項(xiàng)目整體設(shè)計(jì)與模塊拆解1.1 養(yǎng)老院管理系統(tǒng)的核心業(yè)務(wù)范疇養(yǎng)老院管理系統(tǒng)說白了就是一套“人、財(cái)、物”三位一體的信息管理平臺(tái)。這里的人不只是老人還有護(hù)工、管理人員和家屬財(cái)涉及床位費(fèi)、護(hù)理費(fèi)、餐飲費(fèi)、醫(yī)療費(fèi)用等多種計(jì)費(fèi)維度物則是床位資源、藥品庫存、設(shè)備的維護(hù)記錄。我在梳理這個(gè)項(xiàng)目時(shí)第一反應(yīng)是把它拆成幾個(gè)核心域長(zhǎng)者的基本信息管理、入住與退住流程管理、床位資源管理、護(hù)理任務(wù)與排班管理、健康檔案與生命體征記錄、收費(fèi)與退費(fèi)結(jié)算、家屬溝通記錄、系統(tǒng)用戶與角色權(quán)限。不要一上來就追求大而全的面面俱到而是先把“住得進(jìn)來、管得住人、算得清賬、陪得好老”這四件核心事做扎實(shí)。1.2 用戶角色與權(quán)限模型設(shè)計(jì)與普通電商后臺(tái)不同養(yǎng)老院系統(tǒng)的角色模型更貼近“組織架構(gòu) 崗位職責(zé)”。我建議在設(shè)計(jì)階段就劃分出超級(jí)管理員、院長(zhǎng)、護(hù)士長(zhǎng)、護(hù)理員、財(cái)務(wù)人員、社工/客服、家屬只讀或有限授權(quán)這些角色對(duì)應(yīng)的菜單權(quán)限和數(shù)據(jù)權(quán)限都不同。這個(gè)項(xiàng)目的權(quán)限設(shè)計(jì)重點(diǎn)是“數(shù)據(jù)權(quán)限”。比如護(hù)士長(zhǎng)可以看全樓的護(hù)理記錄但普通護(hù)理員只能維護(hù)自己負(fù)責(zé)樓層或自己名下老人的記錄財(cái)務(wù)人員只管費(fèi)用臺(tái)賬不應(yīng)該觸及護(hù)理錄入。在前后端分離架構(gòu)下后端負(fù)責(zé)接口鑒權(quán)前端負(fù)責(zé)菜單路由控制兩者結(jié)合才能避免低權(quán)限用戶繞過頁面直接請(qǐng)求接口。我通常的做法是后端用注解 攔截器統(tǒng)一控制接口訪問權(quán)限前端用動(dòng)態(tài)路由按角色渲染菜單雙保險(xiǎn)最穩(wěn)妥。1.3 為什么堅(jiān)持選擇前后端分離架構(gòu)項(xiàng)目標(biāo)題里明確寫了“前后端分離”這個(gè)選擇是有實(shí)際考量的。養(yǎng)老院的網(wǎng)絡(luò)環(huán)境往往并不理想局域網(wǎng)或低帶寬場(chǎng)景很常見前后端分離能夠降低單次頁面刷新帶來的服務(wù)器壓力同時(shí)方便后續(xù)把前端部署到獨(dú)立的靜態(tài)服務(wù)器后端只提供 JSON 接口天然適合未來拓展 App 或小程序端。另外前后端分離在實(shí)際開發(fā)效率上也更有優(yōu)勢(shì)。前端可以并行開發(fā)頁面邏輯后端可以專注設(shè)計(jì) API 和業(yè)務(wù)規(guī)則只要提前約定好接口文檔整個(gè)開發(fā)周期能縮短不少。缺點(diǎn)是前期的工程化配置會(huì)稍微繁瑣一些比如跨域配置、本地代理轉(zhuǎn)發(fā)、Token 鑒權(quán)方案等都需要盡早確定但項(xiàng)目跑順之后帶來的維護(hù)便利性是值得的。2. 核心技術(shù)選型與版本選擇的背后邏輯2.1 后端框架SpringBoot 版本到底選哪個(gè)這個(gè)項(xiàng)目用的是 SpringBoot這是 Java 后端最主流的基礎(chǔ)框架。很多初學(xué)者拿到一份老教程直接照著 2.x 版本的寫法去搭項(xiàng)目結(jié)果發(fā)現(xiàn)依賴下載報(bào)錯(cuò)、yml 配置自動(dòng)提示失效、啟動(dòng)失敗最后把問題歸咎于“版本太新不兼容”。實(shí)際上,SpringBoot 版本的選擇核心是“兼容性 穩(wěn)定性”。我在這個(gè)項(xiàng)目里推薦使用SpringBoot 2.7.x原因很實(shí)際2.7 是 2.x 系列的最后一個(gè)功能分支大多數(shù)社區(qū)資料、培訓(xùn)課程、第三方中間件比如 Druid、PageHelper都對(duì)它做了充分適配同時(shí)它又支持 Java 8這對(duì)大量還在使用 JDK 8 的機(jī)器非常友好。如果選 3.x 甚至更高版本一方面強(qiáng)制要求 JDK 17另一方面很多老派 MyBatis 相關(guān) starter 的命名和自動(dòng)配置方式都變了新手上手成本明顯增加。如果非要使用 SpringBoot 3.x 版本也不是不行但要注意選擇對(duì)應(yīng)的mybatis-spring-boot-starter版本并啟用jakarta命名空間。對(duì)于以“快速構(gòu)建管理系統(tǒng)”為目標(biāo)的項(xiàng)目來說我更建議穩(wěn)定優(yōu)先先把業(yè)務(wù)跑通再來升級(jí)換代。2.2 為什么選擇 MyBatis 而不是 JPA現(xiàn)在 Java 圈子做持久層主要就是 MyBatis 和 JPA 兩大派系。這個(gè)項(xiàng)目選型定的 MyBatis我的理由其實(shí)很直白管理系統(tǒng)里報(bào)表和統(tǒng)計(jì)查詢特別多像“統(tǒng)計(jì)各樓層入住率”、按月份匯總護(hù)理工時(shí)、篩選未繳費(fèi)老人名單。這類多表聯(lián)查、動(dòng)態(tài)拼接條件的 SQL用 MyBatis 的 XML 文件維護(hù)起來更加直觀可控。MyBatis 的優(yōu)勢(shì)在于“SQL 自由度”。當(dāng)一個(gè)查詢條件多達(dá)五六個(gè)維度時(shí)MyBatis 的動(dòng)態(tài) SQLif、where、foreach寫起來非常趁手而且 SQL 審計(jì)方便DBA 也樂意看。JPA 在單表 CRUD 上確實(shí)省事但涉及復(fù)雜查詢時(shí)要么寫 JPQL要么退回到原生 SQL反而繞了遠(yuǎn)路。2.3 前端選型Vue3 Element Plus 組合Vue3 現(xiàn)在已經(jīng)非常成熟如果你是從零開始做管理系統(tǒng)完全沒必要再回頭看 Vue2。Vue3 的組合式 APIComposition API帶來了更靈活的邏輯組織方式配合 Vite 的開發(fā)調(diào)試體驗(yàn)熱更新速度快到幾乎無感。管理后臺(tái)的前端組件庫我最常用的組合是Vue3 Element Plus。Element Plus 就是 Vue2 時(shí)代 Element UI 的升級(jí)版對(duì)表格、表單、彈窗、分頁、樹控件的封裝非常完善和后臺(tái)管理系統(tǒng)的頁面形態(tài)高度契合。表格的分頁、排序、多選彈窗的表單校驗(yàn)這些高頻需求都有現(xiàn)成方案寫起來比從零手搓高效得多。2.4 MySQL 數(shù)據(jù)庫選擇與存儲(chǔ)引擎MySQL 是這個(gè)項(xiàng)目的數(shù)據(jù)庫底座也是標(biāo)題里明確的技術(shù)棧成員。個(gè)人項(xiàng)目或畢業(yè)設(shè)計(jì)場(chǎng)景下使用MySQL 8.0是比較推薦的版本。相比 5.78.0 的窗口函數(shù)、公共表表達(dá)式WITH 子句、默認(rèn)字符集 utf8mb4 都更加好用而且官方持續(xù)維護(hù)安全補(bǔ)丁穩(wěn)定性和性能都有保障。數(shù)據(jù)庫默認(rèn)使用 InnoDB 存儲(chǔ)引擎事務(wù)支持和行級(jí)鎖是硬指標(biāo)。養(yǎng)老院系統(tǒng)里涉及費(fèi)用扣減、床位分配這類數(shù)據(jù)一致性敏感的操作沒有事務(wù)保障很容易出現(xiàn)并發(fā)問題。表結(jié)構(gòu)設(shè)計(jì)上嚴(yán)格遵循“一表一業(yè)務(wù)域”的原則主鍵統(tǒng)一用自增 ID 作為業(yè)務(wù)主鍵同時(shí)給外鍵關(guān)聯(lián)字段加上普通索引這些細(xì)節(jié)在后續(xù)“數(shù)據(jù)庫設(shè)計(jì)”章節(jié)我會(huì)展開講。3. 數(shù)據(jù)庫設(shè)計(jì)核心表結(jié)構(gòu)與關(guān)系分析3.1 長(zhǎng)者信息表的設(shè)計(jì)思路老人表是系統(tǒng)的核心主表我一般命名為elder字段上除了姓名、性別、身份證號(hào)、聯(lián)系電話這類基礎(chǔ)信息之外特別建議加上這些容易被忽略的字段老人緊急聯(lián)系人及電話、入住日期、床號(hào)ID、護(hù)理等級(jí)自理/半自理/全護(hù)理、健康狀態(tài)摘要、家屬ID關(guān)聯(lián)家屬表。其中“入住狀態(tài)”字段非常關(guān)鍵建議用 tinyint 標(biāo)識(shí)0表示空床/待入住1表示在住2表示已退住后續(xù)所有統(tǒng)計(jì)都基于這個(gè)字段做過濾。戶籍地址和現(xiàn)居住址也要分開存緊急聯(lián)系人的關(guān)系字段不要只存姓名最好關(guān)聯(lián)到家屬用戶表因?yàn)檫@個(gè)項(xiàng)目里家屬是有登錄入口的雖然權(quán)限受限但查看老人健康記錄、接收賬單通知都需要做關(guān)聯(lián)。3.2 床位與樓層資源管理床位管理是養(yǎng)老院特有的業(yè)務(wù)。我設(shè)計(jì)的是“房間-床位”二級(jí)結(jié)構(gòu)而不是單一的床號(hào)字段。房間表存樓層、房號(hào)、房間類型單人/雙人/多人間、房間定價(jià)床位表掛房間ID額外存床位的當(dāng)前狀態(tài)空閑/已入住/維修中。這樣一個(gè)設(shè)計(jì)帶來兩個(gè)好處一是收費(fèi)規(guī)則可以按房間類型靈活設(shè)定二是樓層和房間可以做成樹形結(jié)構(gòu)展示前端展示體驗(yàn)更好。注意床位編號(hào)和房間號(hào)不建議合并成一個(gè)字符串字段否則后續(xù)要做床位統(tǒng)計(jì)和調(diào)房操作的時(shí)候字符串拆分的痛苦會(huì)讓你想重做表。3.3 健康檔案與生命體征記錄老人健康管理需要兩張表健康檔案主表health_profile和體檢/體征記錄表vital_sign_record。檔案主表存老人的過敏史、既往病史、慢病管理方案、主治醫(yī)生建議等靜態(tài)信息體征記錄表則按時(shí)間維度存血壓、心率、血糖、體溫等動(dòng)態(tài)數(shù)據(jù)每次老人例行體檢或日常測(cè)量后追加一條記錄。這兩張表的分工要明確檔案是基線記錄是動(dòng)態(tài)變化。前端展示時(shí)健康檔案頁顯示“最新一次體征記錄 歷史趨勢(shì)圖”醫(yī)生端則看完整檔案詳情。每次測(cè)量記錄都建議帶上錄入人和記錄時(shí)間方便追溯護(hù)理責(zé)任。3.4 護(hù)理任務(wù)與排班記錄護(hù)理排班在業(yè)務(wù)上比較復(fù)雜因?yàn)轲B(yǎng)老院是按“護(hù)理等級(jí) 老人居住樓層”分配護(hù)理員。護(hù)理任務(wù)表nursing_task存儲(chǔ)每天的護(hù)理任務(wù)包括任務(wù)類型喂藥、翻身、助浴、復(fù)健等、執(zhí)行日期、執(zhí)行狀態(tài)待執(zhí)行/已完成/已跳過。nursing_schedule表則記錄護(hù)理員的排班包括排班日期、早中晚班次、負(fù)責(zé)樓層。我的建議是任務(wù)和排班分開設(shè)計(jì)。排班是“人”的安排任務(wù)是“事”的拆解。如果合并成一張表查詢邏輯會(huì)非?;靵y后續(xù)統(tǒng)計(jì)每個(gè)護(hù)理員的工作負(fù)荷也會(huì)變得很麻煩。實(shí)際項(xiàng)目里我還會(huì)加一個(gè)“老人生日提醒”功能就是從老人表里查近7天生日的數(shù)據(jù)推送給社工做活動(dòng)安排。3.5 費(fèi)用管理與收費(fèi)記錄費(fèi)用模塊我會(huì)拆成三個(gè)表fee_item費(fèi)用項(xiàng)目表床位費(fèi)、護(hù)理費(fèi)、伙食費(fèi)、醫(yī)療費(fèi)、charge_record收費(fèi)記錄表、refund_record退費(fèi)記錄表。計(jì)費(fèi)的思路是每月初自動(dòng)生成待繳賬單根據(jù)老人的房間類型定價(jià)、護(hù)理等級(jí)定價(jià)、當(dāng)月入住天數(shù)自動(dòng)計(jì)算床位費(fèi)和護(hù)理費(fèi)加上伙食費(fèi)和額外醫(yī)療消費(fèi)生成月度賬單。關(guān)于時(shí)間重疊的收費(fèi)計(jì)算說個(gè)設(shè)計(jì)機(jī)巧數(shù)據(jù)庫里存“入住日期”和“退住日期”計(jì)算當(dāng)月費(fèi)用時(shí)先處理入住日期再根據(jù)退住狀態(tài)拆月計(jì)費(fèi)。比如老人15號(hào)入住當(dāng)月只收15號(hào)之后的天數(shù)下月正常收整月。退住當(dāng)月則只收到退住當(dāng)天為止未消費(fèi)的預(yù)繳項(xiàng)走退款流程。這套規(guī)則在代碼里用一個(gè)公共計(jì)算模塊實(shí)現(xiàn)不要散落在各個(gè)業(yè)務(wù)方法中。4. 后端核心實(shí)現(xiàn)與代碼展開4.1 項(xiàng)目初始化與基礎(chǔ)配置后端工程的初始化方式我這里直接用 Spring Initializr 生成基礎(chǔ)骨架或者直接從一個(gè)已有的 clean 模板項(xiàng)目復(fù)制改造。包結(jié)構(gòu)建議按“功能模塊分包”而不是“技術(shù)分層分包”。我之前吃過按 controller/service/mapper 分包的虧項(xiàng)目小還好項(xiàng)目一大了找代碼就是災(zāi)難?,F(xiàn)在更推薦的做法是controller、service、mapper、entity、dto、vo作為頂層包下面按業(yè)務(wù)模塊再分比如controller/elder、service/charge?;A(chǔ)配置集中在application.yml中數(shù)據(jù)源建議使用 HikariCP這是 SpringBoot 默認(rèn)內(nèi)置的連接池性能表現(xiàn)優(yōu)秀不需要額外引入其他連接池組件。配置示例server: port: 8080 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/eldercare_system?useUnicodetruecharacterEncodingutf8serverTimezoneAsia/ShanghaiuseSSLfalseallowPublicKeyRetrievaltrue username: root password: 123456 hikari: maximum-pool-size: 10 minimum-idle: 5 connection-timeout: 30000 mybatis: mapper-locations: classpath:mapper/**/*.xml type-aliases-package: com.eldercare.entity configuration: map-underscore-to-camel-case: true log-impl: org.apache.ibatis.logging.stdout.StdOutImplmap-underscore-to-camel-case: true這個(gè)配置很關(guān)鍵它能讓數(shù)據(jù)庫的elder_name自動(dòng)映射到實(shí)體類的elderName少寫很多冗余的映射配置。StdOutImpl是將 SQL 打印到控制臺(tái)開發(fā)階段建議開啟排查問題的時(shí)候能看到完整的 SQL 語句和參數(shù)值。4.2 統(tǒng)一響應(yīng)體與全局異常處理后端和前端的交互格式一定要統(tǒng)一。我習(xí)慣定義一個(gè)通用返回體ResultT字段包括code狀態(tài)碼、message提示信息、data返回?cái)?shù)據(jù)、timestamp時(shí)間戳。成功時(shí) code 為 200失敗時(shí)按業(yè)務(wù)錯(cuò)誤碼區(qū)分。這樣前端只需要對(duì)返回包裝做一次統(tǒng)一攔截處理不用每個(gè)接口單獨(dú)判斷。全局異常處理用RestControllerAdvice來實(shí)現(xiàn)分別捕獲參數(shù)校驗(yàn)異常MethodArgumentNotValidException、業(yè)務(wù)異常自定義BusinessException、未登錄NotLoginException以及數(shù)據(jù)庫異常。不要在 Controller 里寫 try-catch 包業(yè)務(wù)然后把堆棧拋給前端看這種做法既不安全也沒有用戶體驗(yàn)。全局異常處理是前后端分離項(xiàng)目的底線工程。4.3 MyBatis 動(dòng)態(tài) SQL 實(shí)戰(zhàn)查詢老人列表時(shí)搜索條件往往是不固定的按姓名模糊查詢、按護(hù)理等級(jí)精確篩選、按入住狀態(tài)篩選、按樓層篩選還可能要求按入住日期范圍排序。這種場(chǎng)景就是 MyBatis 動(dòng)態(tài) SQL 的主場(chǎng)。以老人列表分頁查詢?yōu)槔齅apper XML 大致長(zhǎng)這樣select idselectElderPage resultTypecom.eldercare.entity.Elder SELECT e.*, r.floor_no, r.room_name, b.bed_no FROM elder e LEFT JOIN bed b ON e.bed_id b.id LEFT JOIN room r ON b.room_id r.id where if testkeyword ! null and keyword ! AND (e.elder_name LIKE CONCAT(%, #{keyword}, %) OR e.id_card LIKE CONCAT(%, #{keyword}, %)) /if if testcareLevel ! null AND e.care_level #{careLevel} /if if teststatus ! null AND e.status #{status} /if if testfloorNo ! null AND r.floor_no #{floorNo} /if /where ORDER BY e.create_time DESC /selectLEFT JOIN 比關(guān)聯(lián)子查詢效率更好特別是在大表場(chǎng)景下。模糊查詢使用LIKE CONCAT(%, #{keyword}, %)的方式不用手動(dòng)拼接字符串SQL 注入的防線就在這一層起作用了。4.4 登錄認(rèn)證與權(quán)限控制的落地實(shí)現(xiàn)登錄認(rèn)證我采用的是 JWTJSON Web Token方案這也是目前前后端分離項(xiàng)目最主流的做法。用戶登錄成功后后端簽發(fā)一個(gè)帶過期時(shí)間的 Token前端保存到 localStorage 或內(nèi)存中后續(xù)每次請(qǐng)求在請(qǐng)求頭Authorization字段帶上這個(gè) Token。后端用一個(gè)攔截器HandlerInterceptor統(tǒng)一校驗(yàn) Token 合法性解析出用戶ID、角色信息存入 ThreadLocal 方便后續(xù)業(yè)務(wù)代碼直接獲取當(dāng)前登錄用戶。放行白名單包括登錄接口、驗(yàn)證碼接口和文件下載接口。這里有個(gè)容易忽略的細(xì)節(jié)Token 過期前前端應(yīng)該通過響應(yīng)攔截器統(tǒng)一處理 401 狀態(tài)碼自動(dòng)跳轉(zhuǎn)到登錄頁否則用戶看到的是毫無提示的報(bào)錯(cuò)頁。角色的菜單權(quán)限我是直接用數(shù)據(jù)庫配置菜單表sys_menu存前端路由需要的名稱、路徑、組件、圖標(biāo)、排序、父ID角色菜單關(guān)聯(lián)表存可見菜單集合。登錄時(shí)一次查詢出該角色可見的菜單樹返回給前端前端動(dòng)態(tài)注冊(cè)路由這樣后端只需要校驗(yàn)接口權(quán)限前端只展示有權(quán)限的菜單入口體驗(yàn)和安全性兼顧。4.5 文件上傳與圖片預(yù)覽養(yǎng)老院系統(tǒng)里老人生病、體檢、入住合同等等這些場(chǎng)景大多需要上傳圖片或者 PDF 附件做存檔。SpringBoot 處理文件上傳使用MultipartFile接收文件存儲(chǔ)到本地目錄并給文件生成唯一的文件名圖片訪問路徑通過靜態(tài)資源映射暴露出去不要直接把用戶原始文件名保存到數(shù)據(jù)庫里因?yàn)樵嘉募赡軘y帶路徑信息、惡意字符甚至有重名覆蓋的風(fēng)險(xiǎn)。如果是集群部署建議后續(xù)把文件存儲(chǔ)切到對(duì)象存儲(chǔ)服務(wù)但在單機(jī)項(xiàng)目階段本地存儲(chǔ)完全夠用。敏感資料比如合同和身份證照片不建議在瀏覽器直接暴露原始訪問鏈接而是通過接口校驗(yàn)權(quán)限后再返回文件流這個(gè)小細(xì)節(jié)直接影響合規(guī)審計(jì)。5. 前端項(xiàng)目的工程化與關(guān)鍵頁面實(shí)現(xiàn)5.1 Vite 創(chuàng)建 Vue3 項(xiàng)目與目錄結(jié)構(gòu)我推薦直接用 Vite 創(chuàng)建項(xiàng)目這是當(dāng)前 Vue3 項(xiàng)目的最佳實(shí)踐。先執(zhí)行一句命令然后按提示選擇 Vue JavaScript 或 Vue TypeScript 模板。項(xiàng)目創(chuàng)建后前端目錄結(jié)構(gòu)我習(xí)慣按類型和功能混合組織src/ ├── api/ // 接口請(qǐng)求模塊 ├── assets/ // 靜態(tài)資源 ├── components/ // 通用組件 ├── layout/ // 布局組件 ├── router/ // 路由配置 ├── store/ // Pinia 狀態(tài)管理 ├── utils/ // 工具函數(shù) ├── views/ // 頁面視圖 ├── App.vue └── main.js組件庫安裝 Element Plus 之后在 main.js 里全局注冊(cè)全量引入即可做管理后臺(tái)不需要刻意優(yōu)化打包體積交互優(yōu)先。5.2 動(dòng)態(tài)路由與菜單權(quán)限控制Vue Router 使用addRoute方法動(dòng)態(tài)添加路由這是一套成熟的路由權(quán)限方案。用戶登錄成功后后端返回菜單集合前端根據(jù)菜單數(shù)據(jù)動(dòng)態(tài)生成普通用戶的可訪問路由表并把這些路由通過router.addRoute()注冊(cè)到路由實(shí)例中。這里需要注意順序問題刷新頁面時(shí)路由已經(jīng)動(dòng)態(tài)添加完畢但如果用戶直接刷新瀏覽器前端應(yīng)用每次都會(huì)重新執(zhí)行登錄態(tài)檢查和動(dòng)態(tài)路由加載。所以動(dòng)態(tài)路由的加載邏輯要放在全局前置守衛(wèi)中否則刷新后就找不到路由組件頁面白屏。5.3 基于 Axios 的請(qǐng)求封裝與認(rèn)證攔截前端的所有 HTTP 請(qǐng)求通過 Axios 封裝成一個(gè)模塊這樣做的好處是在請(qǐng)求攔截器里統(tǒng)一添加Authorization頭、統(tǒng)一加時(shí)間戳參數(shù)在響應(yīng)攔截器里統(tǒng)一處理錯(cuò)誤碼。比如后端返回 code 200 直接返回?cái)?shù)據(jù)體業(yè)務(wù)碼 500 彈出全局錯(cuò)誤提示401 清除登錄態(tài)并跳回登錄頁。封裝示例邏輯import axios from axios import { ElMessage } from element-plus import router from /router import { getToken, removeToken } from /utils/auth const service axios.create({ baseURL: import.meta.env.VITE_API_BASE_URL, timeout: 15000 }) service.interceptors.request.use(config { const token getToken() if (token) { config.headers[Authorization] Bearer ${token} } return config }) service.interceptors.response.use( response { const res response.data if (res.code ! 200) { ElMessage.error(res.message || 請(qǐng)求失敗) if (res.code 401) { removeToken() router.push(/login) } return Promise.reject(new Error(res.message)) } return res }, error { ElMessage.error(error.response?.data?.message || 網(wǎng)絡(luò)異常) return Promise.reject(error) } )VITE_API_BASE_URL通過 Vite 環(huán)境變量配置開發(fā)環(huán)境用代理轉(zhuǎn)發(fā)到本地后端生產(chǎn)環(huán)境直接指向網(wǎng)關(guān)地址。這里最不能省的是 401 的全局處理邏輯我在實(shí)際開發(fā)中見過太多“Token 過期后頁面卡死無反應(yīng)”的慘案根源基本都在這里。5.4 核心管理頁面實(shí)現(xiàn)思路老人管理頁面是最典型的 CRUD 頁面采用“搜索區(qū) 表格區(qū) 分頁區(qū) 彈窗表單”結(jié)構(gòu)。搜索區(qū)使用el-form的inline屬性支持姓名、護(hù)理等級(jí)、狀態(tài)的組合篩選表格區(qū)展示老人列表關(guān)鍵字段操作列放“詳情”“編輯”“入住/退住”“查看健康檔案”“記賬”這些按鈕。彈窗表單里用el-form的rules做表單校驗(yàn)提交前統(tǒng)一校驗(yàn)再調(diào)用接口。表格分頁參數(shù)和查詢參數(shù)建議用響應(yīng)式對(duì)象管理const queryParams reactive({ pageNum: 1, pageSize: 10, keyword: , careLevel: , status: })后端 PageHelper 或手寫 LIMIT 分頁都可以但不要自行拼接 SQL規(guī)范做法是 Mapper 接口傳遞Param索引參數(shù)XML 里用 LIMIT 完成分頁。5.5 ECharts 可視化大屏與統(tǒng)計(jì)數(shù)據(jù)養(yǎng)老院管理系統(tǒng)中管理者需要直觀看到關(guān)鍵運(yùn)營(yíng)指標(biāo)總床位數(shù)、在住老人數(shù)、入住率、男女比例、護(hù)理等級(jí)分布、月度費(fèi)用收入趨勢(shì)、樓層入住情況。這些圖表通過 ECharts Vue3 封裝實(shí)現(xiàn)常放在首頁作為儀表盤。ECharts 圖表組件化很關(guān)鍵避免每個(gè)圖表都獨(dú)立 init 和 setOption可以封裝一個(gè)通用的ChartCard.vue接收optionprop 和heightprop內(nèi)部完成 init、setOption、resize 監(jiān)聽。注意在組件卸載時(shí)調(diào)用dispose釋放實(shí)例否則路由切換后會(huì)出現(xiàn)內(nèi)存泄漏或圖表實(shí)例重復(fù)創(chuàng)建的問題。6. 本地部署啟動(dòng)與數(shù)據(jù)庫初始化6.1 MySQL 環(huán)境安裝與數(shù)據(jù)庫建庫如果你本地還沒有 MySQL第一步是下載對(duì)應(yīng)版本的 MySQL 并安裝。安裝完成后打開命令行或 MySQL Workbench創(chuàng)建一個(gè)專用數(shù)據(jù)庫CREATE DATABASE eldercare_system DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; USE eldercare_system;注意 mysql 8.0 默認(rèn)字符集已經(jīng)是 utf8mb4但顯式聲明還是更為穩(wěn)妥。項(xiàng)目根目錄下通常附帶sql/init.sql或eldercare_system.sql直接用source命令或者在圖形化工具中執(zhí)行全部腳本即可完成建表。執(zhí)行完初始化腳本后可以執(zhí)行SHOW TABLES;確認(rèn)表都建出來了。同時(shí)建議順便插入一條測(cè)試管理員賬號(hào)登錄后先看看頁面能不能正常拉取數(shù)據(jù)。6.2 后端啟動(dòng)與接口自測(cè)后端啟動(dòng)很簡(jiǎn)單在 IDEA 中直接運(yùn)行主啟動(dòng)類。啟動(dòng)成功后日志中會(huì)看到端口監(jiān)聽比如Tomcat started on port(s): 8080。這時(shí)候用瀏覽器訪問http://localhost:8080/api/...測(cè)試接口如果配置了 SpringDoc / Swagger也可以直接訪問 swagger-ui 頁面調(diào)試接口。我用得比較多的方式是用 Apifox 或 Postman 建一個(gè)登錄請(qǐng)求獲取 Token 后帶 Token 請(qǐng)求業(yè)務(wù)接口這樣能快速驗(yàn)證 Token 鑒權(quán)鏈路是否通暢。6.3 前端啟動(dòng)與跨域配置前端要執(zhí)行依賴安裝和啟動(dòng)命令npm install npm run dev如果依賴下載緩慢建議臨時(shí)使用國(guó)內(nèi)鏡像源配置。啟動(dòng)成功后默認(rèn)端口一般是 5173瀏覽器會(huì)自動(dòng)打開開發(fā)地址。開發(fā)環(huán)境下前后端跨域是必須處理的典型問題。我這里推薦在 Vite 配置里添加開發(fā)代理用/api前綴標(biāo)識(shí)后端接口server: { port: 5173, proxy: { /api: { target: http://localhost:8080, changeOrigin: true } } }配置代理后前端請(qǐng)求的 baseURL 即可設(shè)置為/api這個(gè)階段既避免了跨域問題也方便生產(chǎn)環(huán)境用 Nginx 或網(wǎng)關(guān)統(tǒng)一轉(zhuǎn)發(fā)接口具體地址不在前端代碼里寫死維護(hù)成本更低。6.4 生產(chǎn)環(huán)境構(gòu)建與部署思路開發(fā)調(diào)試完成之后前端構(gòu)建靜態(tài)資源使用npm run build產(chǎn)物輸出在dist目錄。部署時(shí)把dist目錄扔到 Nginx 或者任何靜態(tài)文件服務(wù)器里用 Nginx 同時(shí)承擔(dān)靜態(tài)資源服務(wù)和 API 反向代理server { listen 80; server_name yourdomain.com; location / { root /usr/share/nginx/html; index index.html; try_files $uri $uri/ /index.html; } location /api/ { proxy_pass http://localhost:8080/api/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }try_files這一行是單頁應(yīng)用歷史路由模式部署的必備配置如果漏掉用戶刷新頁面就會(huì) 404。這個(gè)坑幾乎每個(gè)前端部署都會(huì)踩一次我特意放在這里提醒。6.5 前后端聯(lián)調(diào)的關(guān)鍵節(jié)點(diǎn)梳理聯(lián)調(diào)階段最容易卡住的是字段不一致問題。聯(lián)調(diào)前先看后端的接口文檔或?qū)嶓w類明確字段名稱、類型、嵌套結(jié)構(gòu)。比如時(shí)間和日期字段在前端是否需要格式化、枚舉狀態(tài)是數(shù)字還是字符串、分頁返回對(duì)象的具體結(jié)構(gòu)這些都要在開始寫代碼前對(duì)齊。我習(xí)慣的聯(lián)調(diào)步驟是先調(diào)通登錄接口拿到 Token再用 Token 調(diào)通一個(gè)列表查詢接口驗(yàn)證分頁參數(shù)、搜索條件、數(shù)據(jù)格式無誤后再繼續(xù)推進(jìn)剩余模塊。如果一開始就把接口全部寫死到頁面里聯(lián)調(diào)發(fā)現(xiàn)問題時(shí)再逐個(gè)排查費(fèi)時(shí)費(fèi)力。7. 常見問題與排查技巧實(shí)錄7.1 數(shù)據(jù)庫連接失敗的多種可能數(shù)據(jù)庫連不上是項(xiàng)目啟動(dòng)最常見的問題。先看報(bào)錯(cuò)信息如果是Access denied for user說明用戶名或密碼不對(duì)或者該用戶沒有對(duì)應(yīng)數(shù)據(jù)庫的訪問權(quán)限如果是Communications link failure多半是數(shù)據(jù)庫服務(wù)沒啟動(dòng)或者端口不是默認(rèn)的 3306時(shí)區(qū)報(bào)錯(cuò)則在 JDBC URL 里加serverTimezoneAsia/Shanghai。如果本機(jī)裝了多個(gè)版本的 MySQL用 3306 端口沖突導(dǎo)致服務(wù)起不來這也是我踩過的坑。建議保留一個(gè)服務(wù)實(shí)例或者給不同實(shí)例指定不同的端口避免無意義的排查時(shí)間消耗。7.2 MyBatis 映射文件路徑與綁定異常啟動(dòng)時(shí)報(bào)Invalid bound statement (not found)十有八九是 Mapper 接口和 XML 文件沒有正確對(duì)應(yīng)。檢查三個(gè)點(diǎn)application.yml里mybatis.mapper-locations是否掃描到 XML 路徑XML 文件的namespace是否完整等于 Mapper 接口的全限定名XML 中的 statement id 是否與接口方法名一致。這個(gè)報(bào)錯(cuò)幾乎不會(huì)自動(dòng)消失每次排查按這個(gè)順序來就好。另外Maven 項(xiàng)目要注意 XML 文件如果在src/main/java下面修改pom.xml的resources配置讓 XML 文件打進(jìn) classpath否則運(yùn)行打包后的 Jar 會(huì)同樣報(bào)找不到映射。7.3 前端頁面空白或數(shù)據(jù)渲染異常前端頁面空白查看瀏覽器控制臺(tái)最常見的就是路由匹配不到組件也就是No match found for location說明動(dòng)態(tài)路由添加邏輯有問題——刷新后路由丟失。另一個(gè)常見情況是接口 404 或 500前端沒有做錯(cuò)誤攔截提示頁面看起來就白屏了。調(diào)試時(shí)先打開 Network 標(biāo)簽頁看具體請(qǐng)求狀態(tài)碼再逐層排查。字段渲染異常大多是變量名對(duì)不上或者后端返回的數(shù)據(jù)結(jié)構(gòu)嵌套層級(jí)深了模板里路徑寫錯(cuò)。在拿到接口真實(shí)響應(yīng)結(jié)構(gòu)后先手動(dòng)把假數(shù)據(jù)替換成真實(shí)數(shù)據(jù)結(jié)構(gòu)再調(diào)試。7.4 跨域請(qǐng)求被攔截問題本地開發(fā)時(shí)瀏覽器報(bào) CORS 錯(cuò)誤如果你已經(jīng)在前端配置了 Vite 代理那大概率是請(qǐng)求路徑?jīng)]走代理而是直接請(qǐng)求了http://localhost:8080這個(gè)完整地址導(dǎo)致沒有命中代理規(guī)則。檢查請(qǐng)求 URL 是否以/api開頭別在 Axios 的 baseURL 里硬編碼端口號(hào)。如果在后端單獨(dú)加了CrossOrigin或全局跨域配置同時(shí)前端也配置了代理兩套機(jī)制疊加反而會(huì)出問題。我的建議是開發(fā)環(huán)境只配前端代理生產(chǎn)環(huán)境用 Nginx 轉(zhuǎn)發(fā)后端盡量不要開全局跨域從源頭避免安全隱患。7.5 JWT Token 失效與登錄狀態(tài)丟失排查Token 失效跳轉(zhuǎn)邏輯沒生效優(yōu)先排查響應(yīng)攔截器的 401 判斷是否寫對(duì)。還要檢查后端是否對(duì)每個(gè)請(qǐng)求都正確校驗(yàn)了Authorization頭。以下幾點(diǎn)常見錯(cuò)誤前端 Token 存儲(chǔ)的 key 和后端解析時(shí)不一致Token 過期時(shí)間設(shè)置太短導(dǎo)致開發(fā)時(shí)頻繁掉線時(shí)間服務(wù)器時(shí)間不對(duì)導(dǎo)致 JWT 的時(shí)間戳校驗(yàn)失敗。開發(fā)階段可以把過期時(shí)間適當(dāng)調(diào)長(zhǎng)比如 24 小時(shí)避免頻繁登錄干擾開發(fā)節(jié)奏。8. 擴(kuò)展思路與項(xiàng)目復(fù)盤總結(jié)養(yǎng)老院管理系統(tǒng)的核心價(jià)值不在于代碼有多炫而在于它完整呈現(xiàn)了一個(gè)業(yè)務(wù)管理系統(tǒng)從數(shù)據(jù)庫設(shè)計(jì)、后端接口開發(fā)、前端頁面搭建到部署上線的全鏈路能力。做完這套項(xiàng)目你基本能夠掌握 Java 全棧開發(fā)的常見流程往后再接到任何類似的“某行業(yè)管理系統(tǒng)”需求都能快速遷移。擴(kuò)展方向上這個(gè)項(xiàng)目可以繼續(xù)演進(jìn)引入 Redis 做緩存把熱點(diǎn)數(shù)據(jù)查詢的響應(yīng)時(shí)間降下來接入 WebSocket 實(shí)現(xiàn)老人異常生命體征的實(shí)時(shí)告警增加移動(dòng)端 H5 或微信小程序給家屬使用引入工作流引擎處理請(qǐng)假、用章、審批等內(nèi)部流程。這些后續(xù)迭代都以當(dāng)前的基礎(chǔ)版本為底座架構(gòu)設(shè)計(jì)時(shí)留的余地越大后期演進(jìn)就越從容。我個(gè)人實(shí)際操作這個(gè)項(xiàng)目最大的體會(huì)是不要小看“管理系統(tǒng)”這四個(gè)字背后的復(fù)雜度。真正的難點(diǎn)從來不是 CRUD 怎么寫而是業(yè)務(wù)規(guī)則的梳理、表結(jié)構(gòu)的反復(fù)推敲、異常場(chǎng)景的補(bǔ)全。把這些基本功練扎實(shí)了框架和組件庫再怎么換代你都能穩(wěn)穩(wěn)接住。最后再說個(gè)實(shí)用技巧寫代碼前多花一小時(shí)把數(shù)據(jù)庫表和接口列表理清楚比寫代碼中途返工改表省下的時(shí)間要多得多。這個(gè)經(jīng)驗(yàn)適用于任何一次項(xiàng)目開發(fā)推薦你先從這次的養(yǎng)老院管理系統(tǒng)開始體會(huì)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美婷| 狠狠狠狠狠干| 色天堂操| 大香蕉婷婷| www..com色爱| 亚洲性爱电影| 老师的粉嫩小又紧水又多A片视频| 亚洲色色在线| 综合色色综合| 激情五月婷婷视频| 国产午夜一区二区三区| 天天插天天日| 亚洲无aV在线中文字幕| 亚洲精品国产A久久久久久| 久99久热只有精品国产99| 操操熟女| 啪啪综合网| 五月色导航| 色婷婷五月天| 97色97干| 五月亚洲| 婷婷丁香亚洲五月天| 97婷婷五月激情六月丁香伊人| 丁香五月婷婷av影院| 五月丁香六月婷婷久久久综合| 欧美啪啪9| 久热这里只有精品视频免费观看| 色婷婷色五月另类综合| 综合激情婷婷| 六月婷婷九月丁香| 东京热人妻一区二区三区在线| 色哟哟精品| 婷婷五月天激情综合婷婷五月天激情综合| 婷婷五月天社区| 色色色九九九五月婷婷| 亚洲精品电影| 26uuu精品国产| 色综合久久中文| 欧美三级A做爰在线观看| 操人妻视频91| 五月婷久久在线| 思思99热热热99| 亚洲啪| AV在线免费播放| 99精品女人天堂| 色九月婷婷丁香| 噢美99| www.色婷婷| 激情四射五月天偷偷看婷婷| 九月丁香婷婷综合| 色偷偷色婷婷| 99热这里只有精品国产首页| 丁香婷婷五月色成人网站| 中国丰满熟女A片免费观| 天天操中文字幕| 激情综合激情五月| α久久| 天天人人综合| 婷婷的激情五月| WWW.国产| 99精品视频免费观看近期发布| 大香蕉啪啪啪| a在线观看| 丁香婷婷五月天激情四射| 欧美va亚洲va| 大香蕉伊人丁香五月| 亚洲综合在线播放| 丁香成人视频| 欧美性猛交99久久久久99按摩 | 天天操夜夜玩!| 丁香婷婷婷婷十二月在线观看视频| 激情婷婷五月天| 婷婷综合五月天激情| 五月天综合在线网| 日韩色五月| 色五天综合| 性色五月天| 日韩在线观看亚洲| 久久婷婷啪啪视频| 高清无码入口| 国产日产亚系列精品版优势| 91欧美日韩| 丁香五月婷婷色综合| 香蕉久久国产AV一区二区| 婷婷五月天激情网| 99精品久久久久久久久| 色私五月婷婷| 激情四射五月天| 色综合大香蕉| 成人操呦av| 婷婷97狠狠干| 99九九精品| 日本久久爱| 天天婷婷色六月| 五月天婷婷成人| 天天透天天爱| 任你爽视频| 色婷婷导航| 丁香五月性| 思思精品视频| 婷婷成人在线| 色播五月婷婷综合| 五月叮香啪| 久久玖玖综合| 欧美性色A片免费免费观看的| 五月婷婷涩涩爱| 99惹 精品在线| 极品少妇婷婷五月| 综合欧美五月婷婷| 五月天婷婷激情综合| 超碰国产在线观看| 色婷婷综合久久| 色婷婷综合丁香五月天| 丁香五月天天日| 激情婷婷六月| 婷婷导航| 婷婷午夜综合| 99视频热| 九九伊人网| 伊人五月综合网| 天堂久久久久天堂网| 99热 在线播放| 狠狠人妻色综合| 久久婷出差欧美色两性综合网| 99惹精品视频| 五月天激情视频| 五月婷婷六月丁香综合在线| www.无码com| 伊人久久99| 五月婷婷插一插| 9久久狠狠的| 五月天欧美 另类小说| 99热精品网| 免费视频这里只有精品| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 色五月激情婷婷| 亚洲AV成人在线| 日韩av一区二区在线/日产精品久久久 | 婷婷射丁香| 操日本人妻视频| 99精品热视频| 色色婷婷丁香五月天| 99色啊| 六月丁香五月婷婷| tingtingseav| 日日夜夜天天爽| 99A片| 激情五月婷婷啪啪| 丁香五月天论坛| 99国产精品久久久久久久久久久| 久久香蕉网| 99九九视频| 97精品人人A片免费看| 日韩肏屄网| 热久久精品视频网站| 996er热| 97超碰色| 婷婷久久综合久色| 色五月婷婷影视| 日本九九热| 五月婷婷导航| 亚洲色五月| 五月综合激情久久| www.六月丁香看AV| 就爱日五月天| 丁香五月天激情视频| 亚洲三A| 99在线er热| 欧美色五月| 91九九精品| 激情婷婷综合五月少妇| 精品自拍99| 开心五激情网| 97操资源婷婷| 蜘蛛女侠2003满天星免费观看| 俺也去五月婷婷丁| 九九99一区| 色婷婷色综合久久精品V| 九九热只有精品6| 激情久久久| 久久五月丁香| 国产精产国品一二三在观看| 六月丁香婷婷在线波多 | 亚洲激情五月| 狠狠人妻久久久久久综合丁香| 俺去也婷婷| 色五月综合激情| 丁香色综合| 色婷婷狠狠禁18久久| 久久久久99精品成人片| 夜夜骑福利资源| 丁香五月婷婷啪啪啪| 第五婷婷伊人丁香色| 狠狠插狠狠操| 99精品网址| www好屌操| 99在线小视频| 色~性~乱~伦~噜| 人人操AV| 伊人丁香婷婷东京| 亚洲AV无码影院| 婷婷射丁香| 天天爽夜夜爽夜夜爽精品| www.操.com| 五月综合婷婷开心网| 久久精品99国产精品日本| 六月婷婷日| 665566 无码| 亚洲色婷婷| 91超碰人人操| 久久久WWW| 色丁香五月婷婷| 色五月av| 91超级碰在线视频| 五月婷婷影视| 久草婷婷网| 久久精热| 久久在这里有精品| 99手机在线精品视频| 激情小说在线视频| 五月婷婷乱| 六月婷婷最新网址| 午夜天堂一区人妻| 久久ab| 国产精产国品一二三在观看| 播五月丁香三月婷婷| 丁香五月久久| 99热九九在线| 亚洲精品第一国产综合亚AV | 色婷亚洲| 日日日日日| 夜夜爽天天日| 热99精品视频观看| 深夜男女福利刺激影院一区完整| 欧美十二区| 人人97碰| 久热AA| 五月色婷婷综合丁香精品无遮挡| 综合久| 99视频在线9| 综合久久人妻| 婷婷六月中文字幕| site:pzdcoin.com| 久久精品夜色噜噜亚洲a∨| 九九AV| 六月婷婷综合激情| 久久九九色| 天天婷婷天天| 开心婷婷五月激情网小说| 精品一二三区久久AAA片| www.婷婷,com| 丁香六月婷婷久久综合| 五月天天爽| 丁香综合伊人| 久久只有这里精品免费| 8区视频在线| 韩国97天堂| 欧美精品在线观看| 亚洲成人在线观看av| 国产无套精品一区二区| 99操| 五月丁香久久| 九九香蕉网| 五月婷婷九九热| 99精品成人无码A片观看金桔| 激情丁香九九五月综合网| 亚洲色情网站| 久久激情五月婷婷| 狼人婷婷久久| 97久久久| 可以免费观看的AV| 久热这里| 天天天天操| 色五月综合婷婷| 九九视频这里是精品五月| 色播五月丁香| 亚洲色色五月天| 9久9久9久女女女九九九一九| 伊人网色婷婷五月天| 99国产精品久久久久久久久久久| 婷婷丁香五月欧美人| www.婷婷网| 九九热a| 日本色频| 99热6这里之有精品| 久久草人妻| 人妻AV在线| 粉嫩av懂色av蜜臀av熟妇| 色偷偷色婷婷| 久久五月视频| 亚洲色色色色| 狠狠草狠狠草| 欧美99热| 综合色在线| 免费无码毛片一区二区A片 | 狠狠爱综合网| av在线观看网站| 九月婷婷激情| 九九热这里| XX色综合| 九九99免费视频| 激情婷婷网| 久久66er久久| 色五月网址| 婷婷香香五月| 丁香五月停停av| 九九热视频精品| 蜘蛛女侠2003满天星免费观看| 色噜噜五月天| 国产全是老熟女太爽了| 丁香五月婷婷www..com| 玖玖@三月天天丁香婷婷| 久久婷婷五月综合| 国产中文字幕在线视频免费观看| 激情综合无码| 亚洲激情网站| 久久五月网| 日本三级中国三级99人妇网站| 激情第四色| 色综合久久88色综合天天99| 91狠狠色丁香婷婷综合久久精品| 中文字幕成人版| 九九视频在线观看视频在线播放69| 色播五月丁香综合| 五月丁香久久网| 五月天久久婷婷婷| 亚欧州精品视频| 婷婷欧美| 成人在线高清| 【乱子伦】黄色| av操一操| 婷婷综合仓库中文| 五月开心婷婷网| 久久五月天色婷婷| 五月婷婷m| 99国产精品久久久久久久久久久| 国产午夜精品一区二区三区四区| www,婷婷五月天,com| 逼里香不卡| 五月六月婷| 五月丁香六月婷婷色日| 99ree6| 色婷婷色综合激情91| 婷丁香久综合| 色热久| 182无码| 97成人丁香婷婷| 丁香五月天AV| 五月四色激情| Va另类视频| 婷婷五月丁香久久| 久久久久网站| 丁香婷婷成人网| 久久XX| 伊人色综合久久久| tingting五月天亚洲| 久久性爱视频| 91xxxx九色| 色综合久久88色综合天天人守婷| 俺去也五月天| 婷婷九月丁香| www.zbzhongsen.com| 婷婷亚洲久久| 久草热在线视频| 欧美五月停| 99热热九九| 婷婷五月电影院| 五夜丁香| 9精品在线| 色婷婷五月天偷拍| 26UUU一区二区| 网色99| 成人片在线免费看| 可以看的av网站| 久久月天堂| 五月婷婷黄色视频| 久热9| 婷婷五月天美女| 综合一区二区三区| 91九色精品女同系列| 婷婷五月激情小说| www.五月天激情| 五月婷婷影视| 天天草比天天爽| 韩国97天堂| 九九亚洲视频| 亚洲精品久久久久AV无码| 丁香婷婷色五月| 色色婷婷五月天| 色五月婷婷视频| 五月天激情四射| 日韩啪| 五月天另类激情在线| 影音先锋秋秋五月婷婷| 婷婷五月天无码| 91丨人妻丨国产丨丝袜| Av九九| 精品激情| 大战熟女丰满人妻AV| 99re这里只有精品视频6| 五月激情天| 99热6这里之有精品| 99国产精品久久久久久久久久久| 激情五月综合| 大战熟女丰满人妻AV| 99色一| 超碰在线50| 99ri网站在线观看| 五月丁香中文字幕| 伊人网啪啪| 婷婷精品| 成年人99热| 99在线看视频| 婷婷久久五月| 99热99这里有免费的精品| 9久久狠狠的| 色无婷婷| 天天操夜夜操| 欧美啪啪五月天| www,com,五月色色| 男人天堂伊人五月丁香| 野外99热| 91丨九色丨大屁股| 五月丁香啪啪网| 他改变了拜占庭| 淫视馆av三区| 五月天偷拍| 九九色视频| 性爱五月丁香| 综合色在线| 丁香五月先锋| 色射婷婷五月天| xx久久| 成人综合网站| 天天看A片| 久久99这里只有精品视频| 丁香五月婷婷99| 99噜噜噜在线播放| 亚洲第一黄网| 99网99热| 丁香色啪综合| 久久9久| 成人片在线播放| 69五月天视频| 丁香五月婷婷亚洲综合精品| 任你爽在线视频| 91丨九色丨国产打屁股| 国产精品人人妻人人爽| 蜜乳A√| 91碰| 欧美操我| 99婷五月| 丰满少妇乱A片无码| aaa久久| 淫荡工a| 综合激情伊人影视在线| 丁香婷婷五月| 亚洲人人操BD| 色青五月天| 超碰狠狠操| 国产精品色婷婷久久久精品| 欧美碰碰碰| 国产肥白大熟妇BBBB视频| 久久精品4| 亚洲精品永久久久久久| 五月丁香婷婷成人综合网| 美女婷婷六月色| www.xtbsty.cn.com蜜乳AV| 99人妻碰碰碰久久久久| 中文字幕高清av| 最近中文字幕2019视频1| 狠狠色综合网站久久久久| 丁香五月在线播放| 日日夜夜青青草| 国产亚洲色婷婷久久99精品91| 丁香五月天激情四射网络不好 | 大香蕉AV在线| 99热这里只有精品最新网址| 亚洲色色色色| 9久热在线视频| 91综合在线| 99久久综合网| 青青草成人网| 公的粗大挺进了我的密道| 婷婷五月天色| 日本人妻A片成人免费看片| 操91| www.狠狠| Aaa久久| 婷婷丁香五月综合网| 另类在线| 中文字幕乱码亚洲精品一区 | 国外亚洲成AV人片在线观看| 七月婷婷色香综合网| 国产精品18久久久| 91九色偷拍| 中文AV网站| 丁香色情五月综合激情| 五月丁香中文| 久草视频大香蕉99| 日本玖玖在线| 丁香五月色情av| 超碰日韩成人| 五月丁香综合啪啪| 九九性视频| 狠狠操狠狠爱| 综合久久五| 色婷婷五月综合色婷婷| 国产亚洲精品久久久久久郑州 | 热99在线| 97碰碰在线看视频免费| 婷婷五月天开心网| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 色噜噜狠狠色综合日日| 三年高清大片免费观看国语| 91操女| 青青久久五月天丁香婷婷| 在线超碰精品| 九九热青青草| 激情AV| 激情综合网,婷婷五月天| 99热久草| 99热在线精品观看| 国产99久| 久热超碰| 五月婷婷六月丁香色| 九九干视频| 日韩九区| 9久久网| 丁香香蕉婷婷| 日本www五月婷婷| 这里只有精彩亚洲视频推荐| 日韩成人综合网| 久久在线视频免费观看| 99狠狠操一| 丁香六月婷婷缴情欧美| 欧美狠狠色| 日日夜夜爽| 丁香五月AV综合激情| 激情婷婷丁香五月天小说| 五月天婷婷伊人| 色久丁香五| 国产乱子轮XXX农村| 成人免费高清在线播放| 另类小说婷婷色| 99操无码视频观看| 色婷婷狠狠18yy| 九九视频网| 久久五月综合| A片试看120分钟做受图片| 大香蕉Av在线| 日日肏天天操| 婷婷99| 大香蕉网站,大香蕉综合| 在线色五月婷婷| 超碰操网| 久久激情中文| 欧美va精品va老师va| 天天做天天爱天天综合网| 日韩另类| 97婷婷狠狠| 色婷婷色五月综合| 婷婷伊人网| 久久新地此| 五月天社区| 九九视频免费| 色五月综合激情| 五月天婷婷涩涩| 五月激情婷婷色| 久99久在线| 色色97丁香婷婷五月天| 久99久热只有精品国产99| 天天插天天插天天插天天插| 2025超碰| 欧美大香蕉视频| 精品乱码久久久久| 色区久久| 亚洲午夜av| 热99精品视频| 五月天婷婷基地| 婷婷干六月综合旧址| 99热这里都是精品| 五月玖玖| 中文AV网站| 久99久热| 激情久久综合| 九月丁香亭亭| 99热免费精品| 99热观看| 最新精品视频99| 五月丁香亭亭操逼| 五月色网| 成人在线日韩欧美| 99这里有精品| 91凹凸在线| 亚洲婷婷激情综合激情999精品| 亚洲第二AV| 淑女丝袜bi操逼123| 九九精品re免费视频| 亚洲情a| 99色在线| 成人婷婷色五月天| 99精品视频免费观看近期发布| er99免费视频在线| 青草视频在线播放| 常久最新免费的色吊丝| 久久一级免费黄色片| 狠狠操狠狠| 久大香蕉| 丁香五月天色婷婷| 91久久精品无码一区二区三区| 天天弄天天操| 97久久久免费福利网址| 日本va欧美va欧美va精品| 婷色五月| 看久久性爱视频| 新激情综合| 亚洲区视频| 成人av在线网站| 超碰在线成人| 久草婷婷网| 九九在线精品| 激情五月第四色| 欧美成人一区二区三区在线视频 | 岛国av网站| 97色永久免费视频| 五月天久久久| 五月花婷婷丁香| 久婷婷色| 五月丁香啪| 很很干夜夜干| 99热思思久| 欧美综合五月天婷婷tin| 国产1区2区3区在线观| 色婷婷亚洲婷婷| 亚洲热综合网在线观看| 丁香五月婷婷Av| 天天日天天舔| 婷婷另类开心| 日本在线99| www九九热| 噜噜噜噜噜色| 五月开心婷婷中文字幕| 久久9热综合| 欧美综合激情丁香五月六月婷| 久久久97| 激情婷婷五月综合| 99热免费在线| 丁香五月在线观看综合| 99综合97| 婷婷五月天va| 日产精品久久久久久久蜜臀| 丁香婷婷五月天在线视频| 天天久久66xxx| 亚洲视频码| www.深爱激情| 狠狠五月天婷婷| 91综合色| 日韩欧美性爱| 午夜天堂一区人妻| 五月婷婷激情综合网 | 丁香婷婷成人在线播放| 怡春院天天干| 成人精品视频99在线观看免费| 综合色在线| 日本五月视频| 六月五月久久丁香| 欧美五月丁香在线| 亚洲在线操| 亚洲色五月| 99精品爱| www激情| 国产人妻777人伦精品HD| 五月丁香六月婷婷中合网| 久久AAAA片一区二区| 殴美日韩成人| 亚洲第一色色色色| 亚洲av电影网站| 91操人视频| 成人短视频在线| 99热这里只有精品免费| 婷婷情色激情| 九九婷婷五月天影视| 精品五月丁香| 婷婷五月综合婷婷| 天天骑日日爽| 五月婷无码| av网址在线| 一起草无码视频| 91热99| 97色色视频| 五月综合缴情网| 国产Va视频| 青青草搞屄视频网站| 婷婷综合欧美| 天天狠狠婷婷在线| 嫩草AV久久伊人妇女超级A| 五月婷婷丁香| 99色色热热| 99re思思| 婷婷久久99| www.夜夜爱.com| 色爱亚洲| 日本美女五月天| Www.激情| 欧美精品久久久久久视频观看| 久9热在线免费观看| 五月九九综合| 熟美女麻豆| 99啪在线| 97人人操在线| 久草五月| 丰满少妇乱A片无码| 9九色首页| 五月丁香六月激情综合| 色久天| 99ER热精品视频| 日本操B视频在线观看| 91综合视频丁香| 91在线看片| 婷婷激情五月天在线视频| www.五月天性.com| 四季日韩AV无码综合| www.99精品视频| 五月丁香婷婷激情图片| 丁香五月先锋| 日日日,com| 六月丁香婷婷在线波多 | 色99免费视频中文| 欧美影院婷婷| 国熟女视频| 色播五月网| 五月天.com| 久久人妻熟女一区二区| 精品日本视频444| 久久999久久999久久999久久| 婷婷五月天六点丁香五月| 玖玖爱导航| 大香蕉婷婷| 日本va网站| 九九热在线99| 六月天婷婷| 97综合视频在线| 久草视频一,二三四| www.婷婷,com| 无码激情精品色婷婷久久久久| 婷婷六月激情啪啪| 激情另类综合| 久热a| 色婷婷婷婷| 影音 五月 婷婷 久久| 91肏| 久久视频九九视频| 五月丁香基地| 色色激情五月天| 婷婷五月丁香性爱| 色五月激情问网站| 97欧美在线| 久久婷婷综合五月趴| 色色色欧美| 91热久| 五月婷婷久久综合| 少妇人妻综合色6699| 色婷婷丁香五月| 97精品自拍视频| 97色婷婷五月天| 青青草成人网| 色婷婷综合亚洲| 99re这里只有精品视频了| 婷婷久久综合| 人妻激情综合| wwccc久久久| 狠狠干综合网| 亚洲精品久久久无码| 五月丁香婷中文| 5月丁香婷婷激情网| 懂色av粉嫩av蜜臀av| 婷婷精品视频| 亚洲婷婷丁香| 97碰人人操| 深爱激情婷| tingtingcaobi| 婷婷五月精品中文字幕| 综合一本道| 99re8热精品免费视频| 狠狠草天天草| 激情五月影院| 成人看片网站| 九月丁香亭亭| 91人妻人人操人人爽| 99热这里只有精品中文字幕| 欧美久热| 91操碰| 97操碰在线视频| 婷婷五月天偷拍| 一本色道久久88综合日韩精品| 91操片| 91精品综合久久婷婷九色| 日日噜噜久久婷婷五月天| 丁香六月婷婷综合在线| seav天堂| 丁香六月视频免费观看| www.9操| 激情五月五月五月婷婷| 福利视频在线播放| www.色综合.com| 狠狠操天天干| 9久9久| 91婷婷搞| 97色片| 成年人丁香五月| 久久五月天合网| 婷婷五月成人| 日韩激情人伦人| 欧美特大片黄| 婷婷五月天论坛| 色婷插| 91成人性爱视频| 九九综合网色全集| 丁香蜜臀黄色婷婷五月天| 九九热啪啪| 九九热最新| 成人色五月天婷婷| 99热热热99精品丁香| 激情九九综合网| ww超碰在线| 色99自拍| 开心五月婷婷五月| 日本4399天堂中出| 99综合视频| 日韩精品999| 99热国产| 天天综合91入口| 久色| 91久久久久久| 最近中文字幕大全免费版在线| 婷婷综合色图| 亚洲色另类| 天天爽曰日爽| 99艹精品在线观看| 狠狠狠狠狠狠| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 色5月婷婷色| 五月丁香成人| 五月婷护士| 桃色五月天| 啪啪色激情五月天| 九月停停| 精品99在线| 天天爱天天做天天舔| 久久丁香婷婷色情综合| 九色91国产| www。88热在线视频免费观看| 色情成人五月天| 日韩成人综合网| 嫩BBB槡BBBB搡BBBB视频| 啪啪操操| 精品一二三区久久AAA片| 日本狠狠网| 婷婷天天舔| 久久精品系列| 91九九| 色综合婷婷| 又大又粗九一在线| 亚洲乱码w在线观看| 爱之国产色情综合| 久热爱大香蕉在线蜜臀悦色 | 做爰丰满少妇1313| 91婷婷五月天嫩女| 蜘蛛女免费观看完整版高清电影| 超碰人人操人人9| 99热只有| 综合网啪| www色中色综合| 99色婷婷视频| 婷婷五月天情色| 亚洲激情四射色| 99热只有这里才是精品| 久99久在线| 9色在线视频精品观看| 操丝袜视频影院导航| 91九色在线| 四色女婷婷| 欧美槡BBBB槡BBB少妇| 色色色欧美| 超碰69天堂| 婷婷久久综合久| 亚洲小视频免费播放| 久久久久久久久久久44| 97精品人人A片免费看| 91日韩在线| 综合视频久久| 久久综合人妻| 开心激情播播五月天| 亚洲五月综合色播| 久久五月激情网| 色情·com| 天天久久66xxx| 狠狠草网| www狠狠爱com| 91日综合欧美| 亚洲爱婷婷| 色婷婷五月天无码视频| 婷婷综合干| 婷婷日韩| 亚洲婷婷丁香五月| 五月丁香最新| 91 九色 入口| 二级黄色毛片| 久久狠狠干| 色色色色色色色色色色色色色五月天 | 丁香五月另类色婷婷麻豆| 俺去啦综合网| 婷婷五月天激情免费在线观看| 色偷偷狠狠| 丁香婷婷婷五月| 五月婷婷六月丁香在线| 激情五月天偷拍综合网| 亚洲成人超碰| www.99视频| 国产激情综合五月久久| 欧美丰满熟妇BBB久久久| 丁香色婷婷五月天| 五月婷婷综合激情| 国产亚洲精品久久久久久久久动漫| 色婷婷丁香花五月天| www.丁香黄色五月天人与| 国产做爰视频免费播放| 九九色情网站| 亚洲无码激情| 九九aV| 婷婷五月综合婷婷| 丁香婷婷六月激情文学| 欧美99热| 开心五月深爱婷婷| 色老久久| 亚洲激情四射| 久久五月天 91| 日本高清久| 99热日韩这里只有精品| 欧美婷婷五月| 九月色婷婷综合| 婷婷色五月天在线观看| 午夜成人片400| av电影在线播放| 精品人人操| 亚洲五月丁| 天天干天天干天天干天天干天天干| 99色色网| 九九这里只有精品在线视频| 婷婷五月天播| 婷婷五月情天| 五月天另类激情在线| 色综合五月天| 婷婷丁香五月在线观看91| 99爽视频| www.激情.com.| 综合九九| 69久久99精品久久久久婷婷| 无码人妻AV久久久一区二区三区| av免费在线网站| 五月色亭丁香| 久久人人妻| 精品一二三区久久AAA片| 久热婷婷在线视频| 日韩抽插操逼| 综合性爱网| 色和综合网| 久9热| 日本人人xxx| 丁香五月影院| 色你久久| 婷婷丁香五月综合激情小说| 色色色色色色网站| 久久99精品久久久| 丁香婷婷六月天| 五月伊人网| 色色综合热| 久热99| 丁香五月婷婷日本| 乱精品一区字幕二区| 99操久久| 婷婷五月天欧美| 天天色情站| 久久久WWW| 久久爱婷婷| 我淫我色婷婷五月天激情四射| 99久久婷| 六月婷婷色综合| 99在线资源视频| 草操网| 99热日本| 九九人人自拍| 丁香五月激情啪啪| 强辱丰满人妻HD中文字幕| 日韩成人av在线| 久久99精品久久久久久三级| 婷婷五月天综合久久日美女| 亚洲视频丁香网va| 99色免费观看全部| 五月天激情四射网站| 婷婷噜噜| 99久| 丁香五月婷婷激情123| 久久99视频| 五月婷视频久久| 欧美五月婷婷| 亚洲免费观看高清完整版AV线| 婷婷五月色網站| 色色五月天激情| 99色天堂| 色狠狠色| 中文字幕成人| 久久婷婷内射| 色播播婷婷| 99视频只有精品| 一本色道久久综合狠狠躁小说| 99er热精品视频| 91高潮喷水久久久久久久久| 天天日天天干天天插天天射| 久久久91精品| 五月婷婷六月综合| 看逼中文字幕| 亚洲六月婷婷| 91凹凸在线| 欧美三日本三级少妇三99| 国产无人区大片| 丁香五月在线自慰| 午夜一区| 天天色视频| 五月丁香六月日逼| 欧美性猛交99久久久久99按摩| 天天操夜夜夜拍拍拍| 开心五月婷婷| 激情五月综亚网| 69凹凸成人综合网| 中文字幕乱轮| 激情丁香久久| 中文字幕成人影视| 伊人久久五月天| www激情| 网色99| 五月丁香色色网| 丁香五月亚洲无码| 婷婷丁香五月综合久久| 五月婷婷在线视频观看| 色综合中文| 伊人激情影院| 六月婷婷天天操夜夜爽视频| 99ER热精品视频| 九九久久视频| 色婷婷狠狠久久YY| 欧美日韩成人在线| 成人五月天在线视频在线观看| 少妇伦子伦精品无吗| 99热这里只有精品最新| 很很色丁香久久停停| 国产激情视频在线观看| 免费色色色| 男女激情久久| 伊人婷婷大香蕉| 插逼综合网| 色婷婷av在线观看| 五月天激情无码专区| 欧美碰碰| 人人爽天天爽| 日日日影院| 色色色区| 亚洲妇女熟BBW| 深情五月天| 99热老司机| 懂色av粉嫩av蜜臀av| 天天干天天拍| 天天摸天天舔天天爽| 91免费试看| 九九人人操| 国产欧美性成人精品午夜| 婷婷五月av| 精品国产va久久久久| 色天使色综合| 99热一区| 天天爽天天摸天天爱| 免费AAAAA网| 美女婷婷激情亚洲| 91色逼| 婷婷丁香激情五月天色色| 一区二区传媒视频| 久9热| 丁香五月天婷婷中文字幕| 五月婷婷久久激情 | 99热在线里有精品| www.99热在线| 激情五月天影院| 欧美色色色色色| 色色色在线播放| 色五月婷婷自拍| 男人操女人高潮91视频| 另类五月激情| 九月婷婷综合八月丁香在线观看| 亚洲婷婷激情综合激情999精品| 五月婷婷激情| 婷婷精品在线| 久久午夜理论| 婷婷五月天在线看| 91操屁股| 91碰碰| 97碰在线| 色播五月天激情| 热99精品视频| 五月丁香六月婷婷a v| 亚洲小视频免费观看| 久久女人天堂| 国产成人在线不卡AV| 色婷婷第四色| 久久久久97| 久99婷婷色综合| 在线看的免费网站| 中文字幕欧美日韩VA免费视频| 久热这里只有精品6| 99热老网站| 亚洲av成人在线| 狠狠人妻色综合| 久久丁香五月| 丁香五月婷婷AV| 激情丁香六月| 99热精品在线| 日本色视| 丁香色婷婷五月天| 色色哒五月婷婷六月丁香| 97色在线| 91操片| 国产操B视频| 性爱激情小说AV五月丁香花| 91九色PORNY大屁股| 国产一级片色色| 婷婷丁香五月天激情| 综合激情在线| 五月丁香成人| 狠狠干综合网| 99九九精品视频| 欧美va亚洲va在线播放| 亭亭五月激情亚洲在线| 婷婷激情丁五月| 综合久久六月| 99综合网| 中文字幕在线免费观看视频| 色欲色香综合网| A久久| 久久性综合| 激情婷| 操操人人| xxxx五月激情| 婷婷丁香五月激情中文字幕版| 亚洲五月综合色播| 国产婷婷五月天| 色噜噜狠噜噜视频| 九九操操| 国产真人做爰视频免费| 97色 五月天丁香| 99综合成人视频在线观看| 男人的天堂五月丁香| 国产亚洲99久久精品| 婷婷爱综合| 成人五月天视频播放| 亚洲色婷婷| 婷婷五月激情网| 91狠狠色丁香婷婷综合久久狠丁香综合久久精品 | 婷婷天天色| 欧美六月| 亚洲中文字幕在线观看| se婷97| 亚洲精品亚洲人成人网| 日日干日日s| 色综合天天综合成人网| 欧美在线视频99| 国外亚洲成AV人片在线观看| 亚洲免费av观看| 色五月婷婷 成人| 日本激情综合| 久操大香蕉| 亚洲色婷婷99一9|| www色五月| 97啪啪| 亚洲人成网站999久久久综合| 国産精品| 狠狠干伊人| 伊人干综合| 精品热青草| 久久五月婷| 色噜噜狠狠插综合| 九九99久久| 五月天婷婷丁香人人操91| 久久五月天色婷婷| 五月婷婷,六月丁香| 性一交一乱一交A片久久四色| 色五月婷婷丁香婷婷| 超碰人人妻| 99在线观看亚洲| 激情五月六月婷婷| 97在线精品| 激情视频综合| 丁香五月婷婷乱| 久操热| www狠狠爱com| 开心四月婷婷在线色播播| 日本久久精品18| 久久精品熟女亚洲AV麻豆| 色婷婷久久| 欧美25p| 国产五月视频| 五月天丁香六月综合| 熟女激情五月天| 精品二区| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 日本人妻丁香婷婷久久寝取熟女五月| 婷婷五月免费视频| 丁香综合日产精品久久| 五月丁香啪啪啪| 五月天婷婷AV| 婷婷五月天久| 久久这里只有精品网| 婷婷五月天亚洲| 一起草无码| 久久机热/这里只有精品| 99在线精品免费视频| 五月丁香综合啪啪| 激情综合九月| 天堂五月婷婷| 久久婷婷综合五月趴| 日本色色色色色色色色一色二色| 99re热视频这里只有综合亚洲| 六月婷婷激情| 丁香六月婷婷色XXXXX| 婷婷四色成人综合色视| 天天干一干| 色色综合色视频| 99ri视频| 久久综合综合久久| 久久精品99久久久久久| 97婷婷五月激情六月丁香伊人| 五月婷婷激情综合拍| 精品香蕉99久久久久网站 | 伊人在线视频| 激情五月丁香五月| 久99视频在线观看| 91成人看片| 日本色久| 九九人人自拍| 色五月婷婷大香蕉| 色婷婷激情五月天| 色五月婷婷在线| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 色情五月综合婷婷| 色色影院黄大片| 狠狠操狠狠| 九艹在线| 婷婷丁香激情综合色情| 久操福利| 99热精品在线| 久热9| 六月激情婷婷| 丁香 婷婷五月| 中文字幕免费高清电视剧| 色婷婷导航| 99re热视频这里只有综合亚洲| 国产激情综合五月久久|