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

ARTICLE DETAIL

資訊詳情

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

低代碼平臺(tái)模塊全景拆解:從拖拽畫布到流程引擎的架構(gòu)與二次開發(fā)

低代碼平臺(tái)模塊全景拆解:從拖拽畫布到流程引擎的架構(gòu)與二次開發(fā) 簡(jiǎn)介這份文檔面向低代碼平臺(tái)開發(fā)者、架構(gòu)設(shè)計(jì)人員及技術(shù)選型決策者系統(tǒng)梳理低代碼開發(fā)平臺(tái)的模塊組成與功能實(shí)現(xiàn)方式幫助讀者建立從整體架構(gòu)到細(xì)節(jié)模塊的完整認(rèn)知。資源為單個(gè)docx文檔壓縮包約447KB內(nèi)容圍繞平臺(tái)核心構(gòu)成展開前端模塊涵蓋可視化界面設(shè)計(jì)工具與UI組件庫(kù)后端模塊包含數(shù)據(jù)庫(kù)管理、邏輯處理與服務(wù)集成安全模塊涉及權(quán)限管理與數(shù)據(jù)加密擴(kuò)展性模塊則覆蓋插件管理與API接口。此外還從菜單組織角度切入講解實(shí)體菜單、大屏、報(bào)表、流程與表單引擎等操作行為并配有總結(jié)性論述。目前已有155人學(xué)習(xí)適合希望快速理解低代碼平臺(tái)技術(shù)分層、評(píng)估平臺(tái)能力邊界或規(guī)劃自研方案的讀者參考可作為架構(gòu)梳理與模塊拆解的基礎(chǔ)材料。1. 低代碼平臺(tái)拆開看從拖拽畫布到流程引擎一套系統(tǒng)到底裝了什么有個(gè)做后端的朋友吐槽說業(yè)務(wù)部門用低代碼平臺(tái)拖了三天搞出一個(gè)帶審批流的采購(gòu)申請(qǐng)他手寫接口加聯(lián)調(diào)花了兩周。這事聽著像段子但拆過這類平臺(tái)源碼的人知道拖拽只是最外面那層皮真正撐住效率的是底下那套模塊化架構(gòu)——前端設(shè)計(jì)器、后端邏輯引擎、權(quán)限體系、流程引擎、表單引擎、報(bào)表大屏每一塊都得能獨(dú)立工作又能串起來。這份資源把低代碼開發(fā)平臺(tái)的模塊組成按“包含系統(tǒng)、模塊、菜單組織操作行為”三個(gè)維度拆了一遍適合兩類人想快速理解低代碼平臺(tái)骨架的產(chǎn)品/項(xiàng)目經(jīng)理以及準(zhǔn)備基于現(xiàn)成平臺(tái)做二次開發(fā)、需要知道從哪個(gè)模塊下手的開發(fā)者。下面按“它是什么→怎么跑起來→怎么改”的順序把這份資料里的模塊逐個(gè)拆開講。2. 模塊全景拆解前端設(shè)計(jì)器、后端邏輯引擎與安全擴(kuò)展層怎么配合2.1 前端模塊可視化設(shè)計(jì)器與組件庫(kù)的協(xié)作方式低代碼平臺(tái)的前端不是普通的管理后臺(tái)它要同時(shí)跑兩套東西一套是給搭建者用的設(shè)計(jì)器一套是給最終用戶用的運(yùn)行時(shí)。設(shè)計(jì)器負(fù)責(zé)拖拽、配置屬性、綁定數(shù)據(jù)源運(yùn)行時(shí)負(fù)責(zé)渲染真實(shí)頁(yè)面、處理交互事件。這兩套東西共用同一個(gè)組件庫(kù)區(qū)別在于設(shè)計(jì)器模式下組件帶配置面板和拖拽手柄運(yùn)行時(shí)模式下組件只保留業(yè)務(wù)能力。常見做法是組件庫(kù)按“基礎(chǔ)組件 業(yè)務(wù)組件”分層?;A(chǔ)組件就是按鈕、輸入框、表格、日期選擇器這些業(yè)務(wù)組件則是針對(duì)特定場(chǎng)景封裝的比如審批意見框、數(shù)據(jù)篩選器、圖表卡片。組件庫(kù)的元數(shù)據(jù)描述很關(guān)鍵——每個(gè)組件需要聲明自己的屬性列表、事件列表、可綁定的數(shù)據(jù)源類型設(shè)計(jì)器讀取這些元數(shù)據(jù)來生成配置面板。// 組件元數(shù)據(jù)描述示例簡(jiǎn)化版 const ButtonMeta { name: Button, category: 基礎(chǔ)組件, props: [ { key: text, label: 按鈕文字, type: string, default: 提交 }, { key: type, label: 按鈕類型, type: select, options: [primary, default, danger], default: primary }, { key: disabled, label: 是否禁用, type: boolean, default: false } ], events: [ { key: onClick, label: 點(diǎn)擊事件 } ], dataBinding: { visible: { type: boolean, label: 可見性表達(dá)式 } } };這段元數(shù)據(jù)定義了按鈕組件在設(shè)計(jì)器里能配什么、能綁什么。props數(shù)組驅(qū)動(dòng)配置面板的渲染events決定事件面板里能選哪些觸發(fā)時(shí)機(jī)dataBinding則控制數(shù)據(jù)綁定面板的可用字段。實(shí)際項(xiàng)目中元數(shù)據(jù)通常從后端接口拉取這樣新增組件不用重新打包設(shè)計(jì)器。設(shè)計(jì)器畫布本身一般用絕對(duì)定位或柵格布局來管理組件位置。絕對(duì)定位自由度高但響應(yīng)式適配麻煩柵格布局約束多但天然適配不同屏幕。我見過的大部分平臺(tái)選柵格布局把畫布切成 12 或 24 列組件拖進(jìn)去自動(dòng)吸附到最近的柵格線。拖拽庫(kù)常用react-dnd或vuedraggable核心邏輯是監(jiān)聽拖拽事件、計(jì)算落點(diǎn)坐標(biāo)、更新組件樹。組件樹是設(shè)計(jì)器的核心數(shù)據(jù)結(jié)構(gòu)通常是一個(gè)嵌套的 JSON 對(duì)象。每次拖拽、刪除、修改屬性都是在操作這棵樹。保存時(shí)把這棵樹序列化存到后端運(yùn)行時(shí)再反序列化渲染。這里有個(gè)容易翻車的點(diǎn)組件樹嵌套層級(jí)深了之后屬性更新如果直接改原對(duì)象React 或 Vue 的響應(yīng)式系統(tǒng)可能檢測(cè)不到變化。常見解法是用不可變數(shù)據(jù)更新或者給每個(gè)節(jié)點(diǎn)分配唯一 ID通過 ID 定位后重建路徑。2.2 后端模塊數(shù)據(jù)庫(kù)管理、邏輯引擎與服務(wù)集成的分層設(shè)計(jì)后端模塊要解決三個(gè)問題數(shù)據(jù)怎么存、邏輯怎么跑、外部服務(wù)怎么接。這三塊在低代碼平臺(tái)里通常是獨(dú)立服務(wù)通過內(nèi)部 API 通信。數(shù)據(jù)庫(kù)管理模塊的核心是數(shù)據(jù)模型定義。搭建者在界面上建一個(gè)“訂單”實(shí)體選幾個(gè)字段訂單號(hào)、金額、狀態(tài)、創(chuàng)建時(shí)間后端要能自動(dòng)生成對(duì)應(yīng)的表結(jié)構(gòu)或映射到已有表。常見做法是維護(hù)一套元數(shù)據(jù)表記錄實(shí)體定義、字段定義、索引定義然后根據(jù)元數(shù)據(jù)動(dòng)態(tài)生成 SQL 或調(diào)用 ORM 框架的 Schema 同步能力。# 數(shù)據(jù)模型定義與建表邏輯簡(jiǎn)化示意 class EntityMeta: def __init__(self, name, fields): self.name name # 實(shí)體名如 order self.fields fields # 字段列表 def to_create_table_sql(self): columns [] for f in self.fields: col f{f[name]} {f[db_type]} if f.get(primary_key): col PRIMARY KEY if f.get(not_null): col NOT NULL columns.append(col) sql fCREATE TABLE IF NOT EXISTS {self.name} (\n sql ,\n .join(columns) sql \n); return sql # 使用示例 order_entity EntityMeta(order, [ {name: id, db_type: BIGINT, primary_key: True}, {name: order_no, db_type: VARCHAR(64), not_null: True}, {name: amount, db_type: DECIMAL(12,2)}, {name: status, db_type: VARCHAR(32)}, {name: created_at, db_type: DATETIME} ]) print(order_entity.to_create_table_sql())這段代碼展示了從實(shí)體元數(shù)據(jù)到建表 SQL 的轉(zhuǎn)換邏輯。fields列表里每個(gè)字段聲明了數(shù)據(jù)庫(kù)類型、是否主鍵、是否非空。實(shí)際平臺(tái)里還會(huì)處理索引、默認(rèn)值、字段注釋、外鍵關(guān)聯(lián)等。參數(shù)說明db_type需要做一層映射把界面上的“文本”“數(shù)字”“日期”轉(zhuǎn)成具體數(shù)據(jù)庫(kù)的 VARCHAR、DECIMAL、DATETIME不同數(shù)據(jù)庫(kù)的映射規(guī)則不一樣MySQL 和 PostgreSQL 在自增主鍵、JSON 字段上的寫法就有差異。邏輯處理模塊是低代碼平臺(tái)里最像“編程”的部分。它提供條件判斷、循環(huán)、變量賦值、函數(shù)調(diào)用等節(jié)點(diǎn)搭建者用連線的方式編排執(zhí)行順序。底層實(shí)現(xiàn)通常是一個(gè)流程執(zhí)行器按節(jié)點(diǎn)類型分發(fā)到不同的處理器。比如條件節(jié)點(diǎn)讀取上下文變量、判斷真假、決定走哪個(gè)分支循環(huán)節(jié)點(diǎn)遍歷數(shù)組、對(duì)每個(gè)元素執(zhí)行子流程。服務(wù)集成模塊負(fù)責(zé)和外部系統(tǒng)打交道。常見能力包括 HTTP 請(qǐng)求節(jié)點(diǎn)、消息隊(duì)列生產(chǎn)/消費(fèi)節(jié)點(diǎn)、數(shù)據(jù)庫(kù)查詢節(jié)點(diǎn)。HTTP 節(jié)點(diǎn)一般允許配置 URL、方法、請(qǐng)求頭、請(qǐng)求體模板請(qǐng)求體里可以引用流程上下文里的變量。這里有個(gè)安全考量外部 URL 不能隨便填需要做白名單或域名校驗(yàn)否則平臺(tái)就成了 SSRF 攻擊的跳板。2.3 安全與擴(kuò)展模塊權(quán)限粒度、加密策略與插件機(jī)制權(quán)限管理模塊的粒度決定了平臺(tái)能不能用在正經(jīng)業(yè)務(wù)系統(tǒng)里。粗粒度只能控制菜單可見性細(xì)粒度要能控制到按鈕級(jí)別、數(shù)據(jù)行級(jí)別。常見設(shè)計(jì)是 RBAC 加數(shù)據(jù)權(quán)限規(guī)則RBAC 管“誰(shuí)能操作哪個(gè)功能”數(shù)據(jù)權(quán)限管“誰(shuí)能看到哪些數(shù)據(jù)”。-- 權(quán)限相關(guān)核心表結(jié)構(gòu)簡(jiǎn)化 CREATE TABLE sys_role ( id BIGINT PRIMARY KEY, role_name VARCHAR(64) NOT NULL, role_code VARCHAR(64) UNIQUE NOT NULL ); CREATE TABLE sys_permission ( id BIGINT PRIMARY KEY, perm_name VARCHAR(64), perm_code VARCHAR(128) UNIQUE, -- 如 order:create, order:delete perm_type VARCHAR(32) -- menu / button / api ); CREATE TABLE sys_role_permission ( role_id BIGINT, perm_id BIGINT, PRIMARY KEY (role_id, perm_id) ); CREATE TABLE sys_data_rule ( id BIGINT PRIMARY KEY, role_id BIGINT, entity_name VARCHAR(64), -- 作用實(shí)體如 order rule_expression VARCHAR(512) -- 如 creator_id ${currentUserId} );sys_permission表里的perm_code是權(quán)限標(biāo)識(shí)前端按鈕和后端接口都靠它做校驗(yàn)。sys_data_rule表存數(shù)據(jù)權(quán)限規(guī)則rule_expression是一個(gè)表達(dá)式模板運(yùn)行時(shí)把當(dāng)前用戶 ID 等變量替換進(jìn)去拼成 SQL 的 WHERE 條件。參數(shù)說明entity_name指定規(guī)則作用于哪個(gè)實(shí)體rule_expression的語(yǔ)法需要平臺(tái)自己定義并解析常見做法是支持簡(jiǎn)單的比較運(yùn)算和邏輯組合復(fù)雜場(chǎng)景直接寫 SQL 片段但要做注入過濾。數(shù)據(jù)加密模塊通常分兩塊傳輸加密靠 HTTPS存儲(chǔ)加密靠字段級(jí)加密。敏感字段如手機(jī)號(hào)、身份證號(hào)在寫入數(shù)據(jù)庫(kù)前加密讀取時(shí)解密。加密算法選 AES-256-GCM 比較常見密鑰管理要么放配置中心要么用 KMS 服務(wù)。這里有個(gè)血淚經(jīng)驗(yàn)加密字段沒法直接做模糊查詢和排序如果業(yè)務(wù)需要按手機(jī)號(hào)搜索得額外存一個(gè)哈希列或者用數(shù)據(jù)庫(kù)的加密函數(shù)。插件管理模塊讓平臺(tái)能擴(kuò)展。插件一般是一個(gè)獨(dú)立打包的模塊聲明自己依賴的平臺(tái)版本、提供的擴(kuò)展點(diǎn)比如新增一個(gè)流程節(jié)點(diǎn)類型、新增一個(gè)表單控件、初始化邏輯。平臺(tái)啟動(dòng)時(shí)掃描插件目錄加載插件清單把擴(kuò)展點(diǎn)注冊(cè)到對(duì)應(yīng)的注冊(cè)表里。API 接口模塊則是對(duì)外暴露的 REST API允許外部系統(tǒng)調(diào)用平臺(tái)能力比如通過 API 創(chuàng)建一個(gè)流程實(shí)例、查詢表單數(shù)據(jù)。API 鑒權(quán)常用 Token 或簽名機(jī)制調(diào)用頻率需要限流。3. 菜單組織與操作行為實(shí)體、大屏、報(bào)表、流程、表單引擎的落地方式3.1 實(shí)體菜單與表單引擎數(shù)據(jù)增刪改查的自動(dòng)化生成實(shí)體菜單是低代碼平臺(tái)最基礎(chǔ)的能力。搭建者定義一個(gè)實(shí)體平臺(tái)自動(dòng)生成列表頁(yè)、新增頁(yè)、編輯頁(yè)、詳情頁(yè)。列表頁(yè)帶搜索、篩選、分頁(yè)、排序表單頁(yè)根據(jù)字段類型渲染對(duì)應(yīng)控件。這套東西聽起來簡(jiǎn)單但要做到“自動(dòng)生成且可定制”需要不少設(shè)計(jì)。表單引擎的核心是表單 Schema。一個(gè)表單 Schema 描述了有哪些字段、每個(gè)字段用什么控件、校驗(yàn)規(guī)則是什么、字段之間有沒有聯(lián)動(dòng)。聯(lián)動(dòng)是難點(diǎn)選了“其他”選項(xiàng)才顯示補(bǔ)充說明輸入框填了金額才啟用提交按鈕這些邏輯需要在 Schema 里聲明運(yùn)行時(shí)解析執(zhí)行。{ formId: purchase_apply, fields: [ { key: amount, label: 采購(gòu)金額, component: InputNumber, rules: [ { required: true, message: 金額不能為空 }, { min: 0, message: 金額不能為負(fù) } ] }, { key: reason, label: 采購(gòu)事由, component: Textarea, visibleWhen: amount 5000, rules: [{ required: true, message: 大額采購(gòu)必須填寫事由 }] } ] }visibleWhen字段聲明了顯示條件運(yùn)行時(shí)解析這個(gè)表達(dá)式當(dāng)amount 5000為真時(shí)才渲染reason字段。參數(shù)說明表達(dá)式解析可以用expr-eval這類庫(kù)把表單當(dāng)前值作為上下文傳入。校驗(yàn)規(guī)則在提交時(shí)統(tǒng)一執(zhí)行required和min是內(nèi)置規(guī)則復(fù)雜校驗(yàn)可以注冊(cè)自定義校驗(yàn)函數(shù)。實(shí)體菜單的列表頁(yè)通常支持配置列顯示、列寬、操作按鈕。操作按鈕綁定到具體的 API 或流程。比如“提交審批”按鈕觸發(fā)一個(gè)流程實(shí)例創(chuàng)建“導(dǎo)出”按鈕調(diào)用報(bào)表模塊生成 Excel。這些按鈕的權(quán)限通過perm_code控制沒有權(quán)限的用戶看不到按鈕。3.2 流程引擎從流程設(shè)計(jì)到審批監(jiān)控的完整鏈路流程引擎是低代碼平臺(tái)里技術(shù)含量最高的模塊之一。它要支持流程定義、流程實(shí)例、任務(wù)分配、審批流轉(zhuǎn)、超時(shí)處理、會(huì)簽加簽。流程定義一般用 BPMN 2.0 規(guī)范前端用 bpmn-js 之類的庫(kù)畫流程圖后端解析 BPMN XML 生成可執(zhí)行的流程模型。流程實(shí)例啟動(dòng)后引擎按流程圖推進(jìn)。每個(gè)用戶任務(wù)節(jié)點(diǎn)生成一條待辦分配給指定的人或角色。審批人提交后引擎根據(jù)連線條件決定下一步走向。這里的關(guān)鍵是條件表達(dá)式的解析和任務(wù)分配策略。// 流程節(jié)點(diǎn)推進(jìn)邏輯簡(jiǎn)化示意 public class UserTaskNodeHandler { public void execute(ProcessInstance instance, UserTaskNode node) { // 1. 解析任務(wù)分配規(guī)則 ListString assignees resolveAssignees(node, instance); // 2. 創(chuàng)建待辦任務(wù) for (String userId : assignees) { Task task new Task(); task.setInstanceId(instance.getId()); task.setNodeId(node.getId()); task.setAssignee(userId); task.setStatus(PENDING); task.setCreateTime(new Date()); taskMapper.insert(task); } // 3. 更新實(shí)例狀態(tài)為等待中 instance.setStatus(WAITING); instance.setCurrentNodeId(node.getId()); instanceMapper.updateById(instance); } private ListString resolveAssignees(UserTaskNode node, ProcessInstance instance) { String assignType node.getAssignType(); if (USER.equals(assignType)) { return Arrays.asList(node.getAssignee()); } else if (ROLE.equals(assignType)) { // 查詢?cè)摻巧滤杏脩?return userRoleMapper.findUserIdsByRoleCode(node.getRoleCode()); } else if (EXPRESSION.equals(assignType)) { // 解析表達(dá)式如 ${applyUserId} 取申請(qǐng)人 return expressionEvaluator.evalList(node.getExpression(), instance.getVariables()); } return Collections.emptyList(); } }resolveAssignees方法展示了三種任務(wù)分配方式指定用戶、指定角色、表達(dá)式動(dòng)態(tài)計(jì)算。參數(shù)說明assignType決定分配策略expressionEvaluator需要支持從流程變量里取值。實(shí)際項(xiàng)目中還要處理會(huì)簽多人審批全部通過才流轉(zhuǎn)、或簽一人通過即流轉(zhuǎn)、加簽審批人臨時(shí)增加其他人等場(chǎng)景這些邏輯會(huì)復(fù)雜很多。流程監(jiān)控頁(yè)面展示運(yùn)行中的實(shí)例、已完成實(shí)例、超時(shí)任務(wù)。超時(shí)處理一般用定時(shí)任務(wù)掃描發(fā)現(xiàn)超時(shí)任務(wù)后觸發(fā)提醒或自動(dòng)流轉(zhuǎn)。流程審批頁(yè)面需要展示審批歷史、當(dāng)前節(jié)點(diǎn)、審批意見輸入框。審批意見和附件要存到任務(wù)記錄里方便追溯。3.3 報(bào)表與大屏數(shù)據(jù)可視化模塊的配置化實(shí)現(xiàn)報(bào)表模塊解決“把數(shù)據(jù)按指定格式展示和導(dǎo)出”的問題。常見報(bào)表類型有表格報(bào)表、交叉報(bào)表、圖表報(bào)表。表格報(bào)表配置列、數(shù)據(jù)源、查詢條件交叉報(bào)表做行轉(zhuǎn)列聚合圖表報(bào)表對(duì)接 ECharts 或 Chart.js 渲染。大屏模塊是報(bào)表的加強(qiáng)版強(qiáng)調(diào)全屏展示、實(shí)時(shí)刷新、多圖表聯(lián)動(dòng)。大屏配置一般包括畫布尺寸、背景、組件布局、數(shù)據(jù)源綁定。組件布局用絕對(duì)定位因?yàn)榇笃镣ǔ0垂潭ǚ直媛试O(shè)計(jì)。數(shù)據(jù)源綁定支持靜態(tài) JSON、API 接口、數(shù)據(jù)庫(kù)查詢?nèi)N方式API 接口方式最常用大屏定時(shí)輪詢接口拿最新數(shù)據(jù)。// 大屏組件數(shù)據(jù)源配置示例 const screenConfig { width: 1920, height: 1080, components: [ { id: chart_1, type: LineChart, position: { x: 100, y: 100, w: 600, h: 400 }, dataSource: { type: api, url: /api/dashboard/order-trend, method: GET, params: { days: 7 }, refreshInterval: 60000 // 60秒刷新一次 }, options: { xField: date, yField: count, seriesField: status } } ] };refreshInterval控制輪詢頻率單位毫秒。參數(shù)說明dataSource.type為api時(shí)平臺(tái)需要代理請(qǐng)求以避免跨域同時(shí)做接口鑒權(quán)。options里的字段映射告訴圖表組件從返回?cái)?shù)據(jù)的哪個(gè)字段取 X 軸、哪個(gè)字段取 Y 軸。大屏預(yù)覽和發(fā)布是兩種模式預(yù)覽模式帶配置面板發(fā)布模式只渲染最終效果。報(bào)表導(dǎo)出通常支持 Excel 和 PDF。Excel 導(dǎo)出用 Apache POI 或 EasyExcelPDF 導(dǎo)出用 iText 或 wkhtmltopdf。導(dǎo)出時(shí)要注意大數(shù)據(jù)量分頁(yè)查詢避免一次性加載全部數(shù)據(jù)導(dǎo)致內(nèi)存溢出。常見做法是分批查詢、流式寫入。4. 避坑與排查低代碼平臺(tái)落地時(shí)最容易翻車的五個(gè)點(diǎn)4.1 組件樹更新后頁(yè)面不刷新現(xiàn)象在設(shè)計(jì)器里拖拽組件、修改屬性畫布沒有實(shí)時(shí)變化或者變化了但保存后重新打開又恢復(fù)原樣。原因組件樹是嵌套對(duì)象直接修改深層屬性時(shí)前端框架的響應(yīng)式系統(tǒng)可能追蹤不到。另外保存時(shí)如果序列化的是舊引用存到后端的還是修改前的數(shù)據(jù)。解決統(tǒng)一用不可變更新方式操作組件樹每次修改生成新對(duì)象。給每個(gè)組件節(jié)點(diǎn)分配唯一id通過id定位節(jié)點(diǎn)后重建父級(jí)路徑。保存前打印組件樹 JSON 確認(rèn)數(shù)據(jù)正確。4.2 流程條件表達(dá)式解析報(bào)錯(cuò)現(xiàn)象流程走到條件節(jié)點(diǎn)時(shí)卡住日志報(bào)表達(dá)式解析失敗或變量未定義。原因表達(dá)式里引用了流程變量中不存在的字段或者變量類型和預(yù)期不符比如字符串和數(shù)字比較。不同流程引擎對(duì)表達(dá)式的語(yǔ)法支持也有差異。解決在流程設(shè)計(jì)器里做表達(dá)式語(yǔ)法校驗(yàn)啟動(dòng)流程時(shí)初始化所有可能用到的變量并給默認(rèn)值。條件節(jié)點(diǎn)執(zhí)行前先打印上下文變量快照方便定位是哪個(gè)變量缺失。表達(dá)式求值用成熟的庫(kù)不要自己寫解析器。4.3 數(shù)據(jù)權(quán)限規(guī)則導(dǎo)致查詢變慢現(xiàn)象加了數(shù)據(jù)權(quán)限后列表頁(yè)查詢從幾百毫秒變成幾秒數(shù)據(jù)量越大越慢。原因數(shù)據(jù)權(quán)限規(guī)則拼成的 WHERE 條件里如果字段沒有索引或者規(guī)則表達(dá)式里用了函數(shù)導(dǎo)致索引失效查詢性能會(huì)急劇下降。解決數(shù)據(jù)權(quán)限規(guī)則涉及的字段必須建索引。規(guī)則表達(dá)式盡量用簡(jiǎn)單的等值比較避免在字段上套函數(shù)。如果規(guī)則復(fù)雜考慮把權(quán)限過濾放到應(yīng)用層做先查主數(shù)據(jù)再過濾或者用物化視圖預(yù)計(jì)算。4.4 插件加載順序?qū)е聰U(kuò)展點(diǎn)覆蓋現(xiàn)象兩個(gè)插件都擴(kuò)展了同一個(gè)流程節(jié)點(diǎn)類型后加載的插件把先加載的覆蓋了或者插件初始化時(shí)依賴的平臺(tái)服務(wù)還沒準(zhǔn)備好。原因插件加載沒有定義優(yōu)先級(jí)或者插件初始化時(shí)機(jī)太早平臺(tái)核心服務(wù)尚未注冊(cè)完成。解決插件清單里聲明priority和dependsOn加載器按優(yōu)先級(jí)排序并檢查依賴。插件初始化分兩階段注冊(cè)階段只注冊(cè)擴(kuò)展點(diǎn)啟動(dòng)階段才調(diào)用需要平臺(tái)服務(wù)的邏輯。擴(kuò)展點(diǎn)注冊(cè)時(shí)如果發(fā)現(xiàn)重復(fù)打印警告并保留高優(yōu)先級(jí)的。4.5 表單聯(lián)動(dòng)邏輯在運(yùn)行時(shí)失效現(xiàn)象設(shè)計(jì)器里配置的字段聯(lián)動(dòng)選 A 顯示 B在預(yù)覽時(shí)正常發(fā)布后部分用戶看不到聯(lián)動(dòng)效果。原因聯(lián)動(dòng)表達(dá)式里引用了當(dāng)前用戶信息或角色但運(yùn)行時(shí)這些信息沒有注入到表單上下文?;蛘呗?lián)動(dòng)邏輯依賴的字段被權(quán)限控制隱藏了導(dǎo)致表達(dá)式求值失敗。解決表單運(yùn)行時(shí)上下文要包含當(dāng)前用戶 ID、角色、部門等信息。聯(lián)動(dòng)表達(dá)式求值前先檢查依賴字段是否可見不可見時(shí)給默認(rèn)值。發(fā)布前用不同角色的賬號(hào)做一遍回歸測(cè)試。5. 二次開發(fā)上手從改一個(gè)組件到加一個(gè)流程節(jié)點(diǎn)拿到一份低代碼平臺(tái)的源碼想改成自己業(yè)務(wù)能用的東西我一般從最小的改動(dòng)開始驗(yàn)證整條鏈路。比如先改一個(gè) UI 組件的默認(rèn)樣式確認(rèn)前端構(gòu)建、設(shè)計(jì)器加載、運(yùn)行時(shí)渲染都正常再加一個(gè)自定義流程節(jié)點(diǎn)確認(rèn)后端插件機(jī)制、流程引擎擴(kuò)展點(diǎn)、前端節(jié)點(diǎn)配置面板都能串起來。改組件是最安全的入口。找到組件庫(kù)的源碼目錄通常按組件名分文件夾每個(gè)文件夾里有組件實(shí)現(xiàn)、樣式文件、元數(shù)據(jù)描述。改樣式直接改 CSS 或 Less 文件改行為改組件邏輯。改完后重新構(gòu)建組件庫(kù)設(shè)計(jì)器里拖出來看效果。這里注意組件庫(kù)一般有獨(dú)立的構(gòu)建命令不要和主應(yīng)用一起構(gòu)建否則每次改組件都要等整個(gè)應(yīng)用編譯。加流程節(jié)點(diǎn)需要?jiǎng)雍蠖撕颓岸藘蛇?。后端新建一個(gè)節(jié)點(diǎn)處理器類實(shí)現(xiàn)平臺(tái)定義的節(jié)點(diǎn)執(zhí)行接口在插件清單里注冊(cè)這個(gè)節(jié)點(diǎn)類型。前端在流程設(shè)計(jì)器的節(jié)點(diǎn)面板里加一個(gè)圖標(biāo)和配置表單配置表單的字段對(duì)應(yīng)后端節(jié)點(diǎn)處理器的參數(shù)。流程引擎解析 BPMN XML 時(shí)遇到自定義節(jié)點(diǎn)類型會(huì)查找注冊(cè)表找到對(duì)應(yīng)的處理器執(zhí)行。// 自定義流程節(jié)點(diǎn)處理器示例 public class SmsNotifyNodeHandler implements NodeHandler { Override public String getType() { return sms_notify; // 節(jié)點(diǎn)類型標(biāo)識(shí) } Override public void execute(ProcessInstance instance, NodeConfig config) { // 從節(jié)點(diǎn)配置里取參數(shù) String templateCode config.get(templateCode); String phoneExpr config.get(phoneExpression); // 解析手機(jī)號(hào)表達(dá)式如 ${applyUser.phone} String phone expressionEvaluator.eval(phoneExpr, instance.getVariables()); // 調(diào)用短信服務(wù)發(fā)送 smsService.send(phone, templateCode, instance.getVariables()); // 記錄執(zhí)行日志 nodeLogMapper.insert(new NodeLog(instance.getId(), getType(), SUCCESS)); // 繼續(xù)推進(jìn)到下一個(gè)節(jié)點(diǎn) processEngine.moveToNext(instance, config.getNextNodeId()); } }getType返回的字符串要和前端節(jié)點(diǎn)面板里配置的類型一致。execute方法里先解析配置參數(shù)再執(zhí)行具體業(yè)務(wù)邏輯最后調(diào)用processEngine.moveToNext推進(jìn)流程。參數(shù)說明config是節(jié)點(diǎn)在設(shè)計(jì)器里配置的參數(shù)集合instance.getVariables()是流程上下文變量。異常處理要注意如果短信發(fā)送失敗是重試還是跳過還是終止流程需要在節(jié)點(diǎn)配置里讓用戶選。驗(yàn)證方法上我習(xí)慣先寫一個(gè)最小流程開始節(jié)點(diǎn) → 自定義節(jié)點(diǎn) → 結(jié)束節(jié)點(diǎn)。啟動(dòng)流程實(shí)例看自定義節(jié)點(diǎn)是否執(zhí)行、日志是否記錄、流程是否走到結(jié)束。確認(rèn)鏈路通了再往復(fù)雜場(chǎng)景擴(kuò)展比如加條件分支、加會(huì)簽。從那以后我每次改低代碼平臺(tái)的模塊都強(qiáng)制走一遍“最小改動(dòng) → 構(gòu)建 → 設(shè)計(jì)器驗(yàn)證 → 運(yùn)行時(shí)驗(yàn)證 → 異常場(chǎng)景驗(yàn)證”的流程不跳過任何一步。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
AV性爱在线| 天天插天天插| 思思网站| 一区三区视频有限公司| 国产精产国品一二三在观看| 色色色色色色色色网站| 再綫Av免费視品| 色五月av| 91久久| 伊人网欧美在线男人天堂五月丁香| 99精品热| 婷婷色在线视频| 综合亚洲色色| 久一网站| av操B网站| 狠狠久久婷五月| WWW、日本色丁香co m| 亚洲精品a成人在线播放| 天天操天天爱天天玩| www.射伊蕉婷婷| 亚洲色色色| 91色情播放| 婷婷丁香花五月天| 日韩天堂久久| 亚洲第一成人无码A片| 狠狠干五月丁香综合网| 丁香伊人激情| 99久热这里有精品| 婷婷色色五月天| 亚洲成人在线观看av| 国产欧美va| 色欲五月婷婷| 日韩av网站在线观看| 五月丁香综合激情| 丁香五月婷婷影院| 97 A I色色| 色香蕉影院| 亚洲 在线 另类| 久久视网36| 久久久宗合视频88| www.激情五月| 蜜桃婷婷丁香综合久久开心亚洲| 甈你aaaaa| 久热在线观看视频9| 淑女丝袜bi操逼123| 久久资源综合| 人人色婷婷| 亚洲色无码A片一区二区麻豆| 夜夜夜夜夜骑撸| 色婷婷激情视频| 久久九九热视频| 六月丁香婷婷综合在线| 狠狠人人婷婷| 五月亭亭性| 激情五月无码| 婷婷五月天亚洲精品| 九九re精品视频在线观看| 国产亚洲精品久久久久苍井松| AV九九| 丁香五月激情啪啪综合| 91久久精品国产91性色TV| 人妻AV在线观看| 亚洲综合色棒| 色五月丁香六月欧美综合| 性婷婷| 五月天色导航婷婷资源婷婷| 久久久精品视频79| 欧美色小说婷婷| 99在线视频资源| 亚洲啪啪精品| 成人丁香色| 超碰av天堂| 99热欧美精品| 99综合在线| 大香蕉五月天婷婷丁香91| 久七香蕉| 去干网av| 69激情小说| 免费精品66| 情五月亚洲婷婷| 天天色天天色天天色天天色天天色天天色 | 成人网站免费sxj| 那里有AV网址| 婷婷综合网站| 色五月超碰| 亚洲AV综合网| 午夜天堂一区人妻| 99久久久久久久| 日本三级毛片| 精品无码色| 天天操天天操综合| 第五色婷婷| 另类小说五月天| 99久久婷婷五月综合| 4399在线日本A片| 99热这里是精品| 色情综合网| 日韩成人精品中文字幕| 日韩AV免费电影在线播放| 色婷婷8| 中文字幕丰满乱孑伦无码专区| 色综合99色| se99热久久一本| 丁香密臀AV激情网| 99热精品一| 色五月婷婷在线| 日韩成人电影在线播放| 婷婷五月色播天| 久re热视频| 婷婷色激情网| 丁香激情五月| 99精日本久久| 人妻性爱| 激情综合国产| 欧美成人AAA片一区国产精品 | 无码人妻丰满熟妇奶水区码| 婷婷五月综合网| 精品一二三区视频立| 天天色天天噜| 天天干天天干天天| 久久久jd| 婷婷五月天综合色| 天天日天天插| 日本一级一级一级一级| 五月天播播中文字幕 | 激情综合网激情五月天| 大香蕉伊人丁香五月| 日本天堂免费99| 婷婷丁香五月天综合网| 五月丁香777| 不卡在线中文字幕无| 99九无网码| 婷婷五月天最新综合你懂的| 丁香激情四射| 婷婷五月丁香花综合| 五月天婷婷色紫薇阁| 99综合激情久久精品久久| 九九热99热| 成人 AV播放| ss五月天激情| 五月丁香六月综合激情 | 久久久.COM| 激情亚洲色图片丁香综合| 超碰人人干| 五月丁香婷婷啪啪综合网| 可以看的av网站| 99色色| Www99热| 婷婷五月天资源| www.久久99| 婷婷五月精品| 人妻精品久久久久久| 九九av| 伊人玖玖精品| 五月婷色色| 玖色色综合| 激情五月婷婷伊人| 亚洲妇女熟BBW| 91超碰九色| 99这里都是精品6| 被强行糟蹋的女人A片| 五月色色色| 婷婷五月天国产| 色九四色| 99热66| 激情久久月| WWW,婷婷,COM| 色情婷| 六月丁香六月婷婷欧美| 五月丁香激情综合啪啪| 色欲婷婷五月天| 在线超碰91| 丁香色婷婷五月天| 久草A片| 先锋资源婷婷| 欧美六月| 久久九九视频网站| 国产精品久久久久久久久久免费| 天天天天做夜夜夜夜做| 国产激情在线观看| 五月激情小说| 丁香六月婷婷缴情欧美| 婷婷五月综合激情| 插插干干干色| 久久久一级AAA| 亚洲成人色五月婷婷综合| 色综合九九| 激情四射网| 伊人久久婷婷| 色欲日日躁| 69凹凸成人综合网| 狠婷婷五月| AV网址大全在| 天天色天天操天天射| 天搞天天天天天| 开心五月婷婷激情| 怡红院视频| 97色色综合| 久久538| 综合久久高清| AA片在线观看视频在线播放 | 天天精品视频免费观看| 99久久久免费| 色图亚洲91| 九九色热| 激情开心五月婷婷| 久大香蕉| 天天草天天舔| 大香蕉婷婷丁香视频在线| 精品人妻一区二区| 五月天综合视频网| 丁香五月婷婷六月婷| 久热一区| 人妻AV在线| 色婷五月天亚洲| 9色天堂| 黄色五月婷婷| 99热在线这里| 久久五月视频| 丁香六月激情| 九九精品婷| 五月婷婷色五月| 婷丁香久综合| 激情图片久久| 第九色区AV在线| 五月婷婷激情| 丁香五月天欧美| 婷婷婷久久久| 激情五月最新网址| 任你躁XXXXX麻豆精品| 色色色99| 色五月婷婷丁香五月| 中文字幕在线播放视频| 五月99久久| 欧美顶级少妇做爰HD| 人妻久久久| 99在线观看免费精品视频| 9999热在线| 99色综合| 色视频五月天| 狠狠色综合久久久久| 91精品综合久久久久久五月丁香| 婷婷五月天狠狠色| 天天爽天天草| 99九九视屏| 这里只有精品在线视频精品| 99久久综合网| www.91.com黄| 婷婷五月亚洲综合| 亚洲第一成人无码A片| 99热欲| 99精品偷自拍| 亚洲精品一区中文字幕乱码| 99只有精品| 色丁香婷婷| 美女五月狠狠| 五月婷婷丁香六月在线| 777久久精品| 啪啪啪丁香五月| 白人荫道BBWBBB大荫道| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 婷婷五月天影院| 狠狠色噜噜狠狠狠狠综合| 亚州视频九九99| 99热这是里只有精品| 婷婷色五月丁香六月欧美啪| 久久色情| 久久综合爱| 99视频九九热| 欧美丁香五月夫妻天| 日韩操逼小电影| 男人综合网| 婷婷色五月婷婷姐妹| 久久99视频| 啪啪综合| 五月婷婷偷| 丁香六月狠狠| 婷婷五月噜噜| 丁香婷婷月| 一本伊人色婷| 天天舔天天爽| A1片久久久| 五月丁香婷婷深深爱| 狠狠干 狠狠操| 久久伊人日日夜夜| 日日杆天天| 玖玖婷婷色五月| 五月婷婷三级| 中文字幕有多少字| 五月婷视频在线观看| 久久日婷婷| 99re免费视频| 99热精品在线观看| 五月丁香激情深爱婷婷| 丁香五月手机在线| 色综合久| 色久99| 婷婷激情五月天小说| 71在线精品视频一区| 天天色99| 国产精品一区在线观看你懂的| 色综合激情| 亚洲色综合| 香蕉久久av一区二区三区 | 免费无码毛片一区二区A片| 99热都是精品| 影音先锋AV男人站| 婷婷五月丁香综合亚洲 | 91操操操| 亚洲AV综合网| 欧美成人猛片AAAAAAA| 99精品视频播放| 五月激情婷婷国产精品久久久久久| 亚州操操| 狠狠色婷婷六月激情网| 久久婷五月| 天天爽天天操| 婷婷99丁香| ww亚洲ww在线观看| 伊人激情影院| 亚洲V国产V欧美V久久久久久| 久久九九一區| 色婷婷久久综合久色| 五月天激情无码高清| 99色视频| 丁香五月婷婷色综合| 久久在线92| 丁香无五月网| 欧美久久婷婷| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 九九在线免费观看| 91九色首页| 精品一二三区久久AAA片| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 综合久久婷婷| 亚洲黄3级片网站欧美| 99热综合在线| 婷婷五月激情图片| 美欧成人视频| 五月天激情啪啪| 99热在线只有精品| 婷婷人人操| 这里只有精品视频一区| 少妇被躁爽到高潮无码文| 久99在线| 99久久er| 三级av在线| 色五月天天在线观看资源站| 国产67194| 秋霞少妇毛片| 99热这里精品| 在线观看日韩12345区| 久久精品色| 97干视频| 五月婷婷丁香大陆免费| 五月天开心婷婷激情网站| 黄桃AV无码免费一区二区三区| 日韩综合久久| 日本3级片一区2区| 台湾无码A片一区二区| 五月天婷婷人妻| 色欲一区二区三区精品A片| 九九这里是免费的视频5| 婷婷五月综合激情免费| 婷婷激情五月天桃花网| 婷婷丁香五月综合激情小说| 人人操9| 69精品人人人人| 久99视频在线观看| 思思热在线观看| 五月天激情国产综合婷婷婷就去爱 | 婷婷五月在线观看| 国产毛片欧美毛片久久久| site:pzdcoin.com| 中字幕视频在线永久在线观看免费 | 91玖玖| 偷拍91九色| 五月丁香婷婷成人版| 噜噜在线| 婷婷五月丁香综合亚洲 | 欧美午夜乱妇午夜福利| 五月婷婷丁香综合网| 色婷婷呢狠禁久禁| 91精品久久久久久综合五月天| 五月天婷a在线| 成 久久| 婷婷在线日韩综合| 激情五月婷婷综合色播小说| 天久综合91综合首页| 婷婷五月丁香五月天| 99精品国产在热久久| 五月丁香激情婷婷综合字幕| 九九碰九九爱97超| 丁香五月综合图片在线观看| 91久久久久| 99热九九热| 激情碰碰碰| 欧美综合123区| 国产激情综合五月久久| 亚洲乱码日产精品BD| 伍月婷婷六月丁香| 九九热大香蕉| 五月天色色无码| 亚洲第一色色色色| 懂色av蜜臀av粉嫩av永陈冠希 | www色色com| 狠狠狠狠狠狠狠狠草| 成人短视频在线| 97精品综合| 婷婷五月天综合久久日美女| 99热只有这里有精品| 五月天婷爱综合| 色99在线看| 婷婷综合视频| 国产九九一区二区三区| 色婷婷五月天小说网| 综合色网站| 9精品久久999| 婷婷五月天激情网| 激情人妻综合| 婷婷五点亚洲| 狠狠色婷婷丁香六月| 色五月欧美| 久久人妻熟女一区二区| 丁香婷婷五月| 日韩淑女人妻luan伦激情精品一区二| 五月丁香六月色婷婷| 91一道本| 五月婷婷黄网站大全| 日日综合网| 日韩色色视频| 99这里有精品视频视频| 色综合开心五月深爱五月| 99干日本| av在线免费网站 | 停停综合色色| 狠狠狠狠草草| yw国产AV| 亚洲五月天婷婷在线| 五月婷婷啪啪网| 97碰碰人人视频| 99婷婷狠狠成为人免费视频| 欧美成人AAA片一区国产精品| 人妻久热| 久久九九@| 亚洲欧美999| 婷婷五月天亚洲天堂| 久久丁香五月婷婷| 五月色婷| 久热精品视频在线观| 狠狠爱婷婷爱| 九九热99视频在线| 91色九| 亚洲欧洲小视频9| 超碰人人插| 亚洲熟妇AV乱码在线观看| 九九热这里只有精品6| 丁香五婷婷| 激情综合激情综合| 超碰猛烈的性猛交| 亚洲综合1024| 少妇综合网| 79精品视频在线观看,| 另类激情综合| 99成人在线观看| 色色婷| 国产性爱亚洲是图| 国产欧美精品AAAAAA片| 精品亚洲国产成AV人片传媒| 五月天丁香婷婷网| 婷婷色色色| 色爱综合五月| 国产精品成人AV在线| 成人综合AV| 五月天啪啪视频| 成人短视频在线观看| 色情五月天小说| 天天日夜夜| 性av| 日本三级第一页| 中文字幕精品推荐免费在线观| 神马久久五月天| 成人在线观看一区| 激情五月天婷婷直播| 99久久a线观| 中文字幕色色色| 深爱五月网| 久久亚洲天堂| 综合色图区| 国产日产亚系列精品版优势| 久久五月情| 亚洲激情综| 99er这里只有精品视频| 丁香五月天的网址。| 天天日综合| 中文激情网| 亚洲色无码A片一区二区麻豆| 久久综合站| 91精产品自偷自偷综合| 五月丁香综合啪啪啪啪啪| 五月婷综合性中心| www.99日本| 五月丁香六月婷综合成人综合| http:色情日本com| 99男人天堂| 欧美美女国产日韩一区二区久| 九九色99| 91丨九色丨43老版熟女| 校园春色亚洲色| 成人av在线网址| 六月激情婷婷色| 狠狠搞亚洲| 色五月婷婷丁香五月| 7777国产盗摄农村女人| 草综合网| 久操97| 777精品久无码人妻蜜桃| 九九激情| 婷婷五月激情片| 狠狠综合网| 强壮的公次次弄得我高潮A片日本 | www色哟哟| 婷婷激情丁香五月婷婷激情丁香五月婷婷| 丁香五月激情啪啪| 欧美交换配乱吟粗大25P| 99re免费视频| 丁香五月天精品| 日本啪啪网| av首页在线| 五月激情丁香五月| 美国十月色婷婷在线观看| 三人荫蒂添的好舒服A片| 欧美色色干| wwwwww.色| 五月丁香综合| 99久久九九| 丁香五月婷婷基地| 另类亚洲电影| 婷婷五月天成人综合网| 国产真实乱对白精彩| 久操热线| 五月色婷婷影院| 97婷婷久久丁香| 丁香久久AV| 99热这里是精品| 久久久九九九 99| 天天摸日日舔狠狠添婷婷婷| 五月天综合网| WWW夜夜| 99久久久| 激情久久久| 狠狠丁香| WWW.99热| 久9热| 影音先锋一区二区三区| 狠狠色噜噜狠狠狠狠综合| 久热伊人在91| 婷婷五月色播| 中文AV在线观看| 丁香五月婷婷在线| 婷婷五月网图片区| 久热91精品| 婷婷九月狠狠色| 五月天激情视频| 性爱七区| 99热亚洲| 亚洲小视频免费看| 国产毛片欧美毛片久久久| 久久视频这里都是精品| 亚洲乱码日产精品BD| 色狠狠六月| 免费无码毛片一区二区A片| 色VA| www婷婷色| 婷婷五月天性| 操逼综合网| 婷婷五月六月丁香| 91综合色| 五月天开心网| 思思热精品免费视频| 欧美成人猛片AAAAAAA| 天插天啪天啪天啪| 99国产欧美视频| 天天爽天天| 久久超级碰碰| 99精品久久| 九九草热在线观看| 亚洲色婷婷久久99精品91| 99热免费观看| 久去色色| 午夜激情四射影院| 97碰碰视频在线观看| 久久伊人五月天| 激情五月天综合网| 婷婷五月天综合小说网| 69久久99精品久久久久婷婷| 91精品久久久久久77777| 五月婷人妻| 亚洲成人电影在线免费观看| 色在线99| 色婷婷成人影片| 国产高潮白浆一区二区| 日韩成人综合网| 在线五月色播| 久久人五月| 五月色婷婷综合| 99热99这里有免费的精品| 五月天色色色色色| 亚洲五月婷婷| 99热精品免费| 激情99。| 五月婷婷九| 亚洲操操| 狠狠色五月| 色婷婷丁香五月高清在线| 国产黄色大片| 在线播放中文字幕| xx人人xx| 日韩婷婷五月天| 91综合在线视频| 国产午夜成人AV在线播放| 亚洲六月婷婷| 天天色,天天操,天天射| 婷婷涩涩五月天| 91919191919久久成人视频| 久草狼人| 99热这里只有在线| 天天综合色丁香| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | AV大香蕉| 丁香五月777| 九九日伊人| 99热这里| 99热亚洲精品| 五月丁香久久呀| 99热18| 九九中文字幕九| 天天射影院| 91狠狠综合久久久久久| 另类视频五月天| 五月婷深深爱激情网| 久久色情| 丁香狠狠色婷婷| 日日夜夜亚洲一区| 成人无码髙潮喷水A片| 九九香蕉网| 六月激情综合| 欧美成人网99网| 678五月丁香亚洲综合| av在线资源| 丁香五月婷婷Av| 91人妻九色大屁股| 色五月亚洲| 国产毛片精品一区二区色欲黄A片| 成人av在线网站| 高清无码视频网址| 99精在线| 狠狠五月激情丁香六月| 五月天激情子轮| 亚洲综合丁香婷婷六月天| 色五月成人婷婷| 亚洲欧美成人在线| 97综合在线| 婷婷五月激情欧美| 成人电影AV在线观看| 久婷婷五月天影院| 91碰超| 黄色精品五月婷婷| 大香蕉婷婷五月天| 久久婷婷色| 久草大| 婷婷五月天色色| 黄网免费看| 超碰com| 美女黄频aⅴ视频| 97色97干| 六月丁香啪啪| 欧美激情五月天婷婷| 五月天狠狠网站| 亚洲五月天综合色| 久久99久久99精品免视看婷婷| 色综合五月在线| 五月婷在线色视频| 夜夜操激情| 99免费在线| 激情综合网五月天| 9久久婷婷国产综合精品性色| 丁香九九九九| 婷婷五月天在线观看| 久久九九99| 午夜不卡久久精品无码免费| 99久热视频在线| 9久久网| 97干在线视频| 天天草天天舔| 五月婷婷第四色| 亚洲成人高清在线| 国产精品人人做人人爽人人添| 91精品激情9| 久久aaaaa| 九九香蕉网| renrencaoav| 激情五月天婷婷丁香 | 91人人操| 99爱免费在线观看| 五月天狠狠网| 久久久久久久人妻| WWW色色色COM| 久久婷色| 26uuu亚洲欧美| 操九色| www.色五月| www.色情五月天.com| 久久激情视频| 亚洲视频伍月婷婷| 九九99久久| 秋霞九九无码| 亚洲国产婷婷色五月| 伍月婷丁香花全集| 久久人妻久久| 亚洲成人av在线观看| 色999五月色| 久久九九大香蕉电院| 影视av久久久噜噜噜噜噜三级| 精品夜夜澡人妻无码AV| 九九99热| 开心五月天激情网站| 五月婷婷六月丁香| 99玖玖精品| 亚洲俩性性爱图片久久第六页| 五月天激情国产综合婷婷| 超碰人人色| 色婷婷久久视屏| 巴基斯坦粉嫰无码视频| 99精品在线观看| 亚洲国产色婷婷| 五月天播播综合| 在线中文字幕av| 91av色色乱视频| 99热精品10| 9久国产精品| 亚洲电影中文字幕| 久久伊人日日夜夜| 另类激情综合| 五月天丁香综合| 人人妻久久妻| 丁香五月天久久| WWW色综合| 色婷婷狠狠18禁| 色综合偷拍| 婷婷五月天BBw| 国产毛片精品一区二区色欲黄A片| 国产激情AV| 亚洲色婷婷| 丁香婷婷五月综合欧美另类| 九九草热在线观看| 五月婷在线| 99er日韩| 六月丁香激情网| 日韩综合久久| 91久久精品无码一区二区三区| 中文字幕欧美精品久久| 99综合一区| 激情九月婷婷九月| 色五月婷婷视频| 开心五月天激情网| 思思视频这里是精品| 天天干夜夜想| 久99久视频| 久草A片| 国产成人综合在线| 玖玖综合色| 99自拍视频网站| 天天综合五月| 色热久| 91狠狠综合久久| 亚洲、欧美、国产另类笫二区| 色九九九九| 五月天伊人综合| 性色婷婷| 色亚洲无码| 成人va在线播放| 久久精品国产色| 亚洲精品一区无码A片| 日本狠狠爽| 免费视频在线观看的网站| 国产一级婬片毛片| 五月久久丁香| 五月天婷久精视频| 97操碰视频| 五月激情小说| 1995年关宝慧版蜘蛛女| 天天色五月婷婷91久久久久久久| 天天日,天天干,天天操| 久久婷婷内射| 99热66| 六月婷婷狠狠色在线观看| 欧美69久成人做爰视频| 亚洲综合色棒| 五月婷婷婷| 亚洲色啪| 激情五月婷婷啪啪| 九九九九无码| 亚洲午夜AV| 久久在这里有精品| 99热在线观看成人| 91久久九久久九久久九久久九久久| 91人妻人人做人碰人人爽九色| 色色com| 婷婷色五月久久| 黄页免费一级视频懂色| 国产成人+综合亚洲+天堂| 妻久久久久| 国产黄色大片| 超碰99在线| 日逼免费视频 | 六月色色| 丁香88AV五月婷婷| 26.uuu丁香五月婷婷| 久久婷婷五月国产色综合激情| 激情都市另类| 激情九九六月激情免费视频| 激情五婷精品网在线观看网址| 九九婷婷激情综合网| 九九热99熟女| 26uuu激情五月天| 成年视频免费观看| 国产婷婷色综合AV蜜臀AV| 99热手机在线精品| 色色色综合视频| 久热在线观看视频9| 激情五月天婷婷五月天| 伊人AV五月婷| 五月婷婷深深的爱| 欲求不满的人妻| 五月丁香五月综合欧美| 色综合激情| 天天综合亚洲综合网天天αⅴ| 97操在线资源| 99热久久这里只有精品| 91色逼| 99热只有这里才是精品| 六月99天天婷婷激情综合| av超碰在线| 五月激情在线| 成人午夜无码视频| 国产玖玖资源| 色婷婷丁香五月高清在线| 久大香蕉| www.99热精品99.com| 欧美性爱五月天| 超碰com| 婷婷五月天成人网站| 色热久资源| 91人操人人人操人| 丁香婷婷老司机久操| 777影视理论片大全在线观看| 操操天堂| 激情五月婷婷五月| 中文字幕性爱丰满| 婷婷五月天AV激情| 天天爽在线视频| 日韩日比视频| 国洲夜色亚热在线久久| 日本色色色色色色色色一色二色| 色婷婷www| 激情视频综合| 亚洲久久激情| 婷婷综合色五月天| w婷婷五月婷婷w| 婷婷五月 丁香六月| 91操碰| 激情九月综合| 91avse| 五月婷啪啪| 狠狠色丁香婷婷久久综合| www.色情五月天.com| WWW久久99久久99久久| 婷婷香草网| 久久久国产精品黄毛片| 五月综合视频| 少妇高潮A片无套内谢麻豆传| 久久五月丁香| 五月天激情视频| 狠狠草在线观看| 九九人人操| 亚洲综合在线视频| 超碰av在线| 思思热精品在线视频| 激情五月综合网| 777色色色| 天天弄天天操| 97人人干| 色五月情| 精品热青草| 亚洲9久久精品| 国产伊人大香蕉| 狠狠综合网| 亚洲情a| 99re在线这里只有精品视频首页| 天天操,夜夜骑| 五月婷婷开心亚州在线| 五月婷婷影| 中国无码av| 激情婷婷五月社区| 97超碰在线免费观看| 色色色热热热| 亚洲午夜视频| 激情五月影院| 内射人妻视频国内| 西西4r午夜剧场| 99热只有精品在线| 色五月天激情| 婷婷六月色丁香视频在线观看| 97婷婷丁香五月| 激情综合色播| 久久久8| 精品人妻伦一二三区久久| 青柠影视免费高清电视剧| 九月停停| 久99久热| 婷婷天天插天天爱| 婷婷五月色综合| 久草狼人| 婷婷五月花| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 色综合色五月| 少妇性按摩无码中文A片| 丁香情色五月| 超碰电影在线播放| 久久6这里只有精品| 丁香六月婷婷综合在线| 五月婷婷中文字幕| 无码成人AAAAA毛片AI换脸| 久碰久| 婷婷五月深情丁香深爱日韩| 婷婷激情五月综合丁| 99热这里只有精品在线| 五月天激情小说网| 艹色18p| 日本综合久| 亚洲激情97五月天| www夜夜| 亚州第一黄网| 久久久久久久丁香五月天婷婷| 日本激情五月天‘| 亚洲中文字幕av| 色婷婷五月综合激情中文字幕| 99资源在线视频| 午夜精品777| 日韩色久| 曰韩五月丁香色婷婷无码| 九九综合色综合| 色婷婷五月婷婷五月婷婷五月| 在线观看婷婷5月| 青草视频在线播放| 色玖玖综合网| 天天射色五月天| 久99久视频| 超级碰碰碰碰视频| 99这里只有精品在线观看| 91视频精品99| 丁香六月亚洲综合| 99免费在线视频| 97婷婷狠狠久久综合9色| 五月天婷婷青青| 亚洲中文字幕网| 停停六月 综合| 日韩婷婷五月天| 五月天激情久久| 91艹人| 天天摸天天日天天舔| 亚洲超碰在线| 久久多色| 色五月丁香婷婷久草| 综合久久激情久久| 99re思思在线视频| 男女99免费视频| 伊人九九综合| 午夜五月天| 91久久精品国产91性色TV| 视频综合网| 九九色影院| 欧美色97| 色丁香五月| 九月婷婷综合色干| 99久久99热这里只有精品| 亚洲无码色| 色丁香五月婷婷| 色五月色图| 久久精品系列| 亚洲另类日本| .comwww在线观看免费操| 婷婷丁香激情五月天色色| 国产亚洲精品AAAAAAA片| AV伊人青草丁香六月| 欧美婷婷丁香五月社区| 97se视频在线| 天天摸天天做天天爱天天爽| 五月婷婷欧洲| 五月婷婷网五月在线| 五月丁香婷婷欧美色图视频五月丁香777电影 | 五月天丁香久久综合| 婷婷丁香一月| 国产69久久久欧美黑人A片| 亚洲第一色色色| 久久婷五月天| 一本久久亚洲五月婷婷| 国产做爰视频免费播放| www.夜夜夜| 久久精品99国产精品日本| 婷婷在线五月天观看| 五月天开心网| 丁香五月天婷婷久久| 成人精品视频99在线观看免费| 五月婷婷播| 白人荫道BBWBBB大荫道| 伊人丁香花综合影院| 99综合五月免费视频色婷婷| 五月婷在线视频免费播放| 在线不卡AC| 国产婷婷五月色情综合| 探花搜索结果 - 黄上黄| 秋霞AV淫| 五月婷婷六月丁香| 99精品在线| 国产精品久久久久久妇女6080| 五月六月丁香婷婷在线观看| 丰满少妇猛烈A片免费看观看 | 五月丁香婷婷欧美| 五月婷啪啪| 97综合在线| 六月婷婷影院| 91干在线视频| 五月丁香操婷逼| 五月激情丁香久久综合网| 97在线99| 狠狠草狠狠草| 久久婷婷五月丁香网| 丁香五月婷婷五月| 激情都市五月天| 丁香五月最新网址| 成人丁香五月天| 无码激情精品色婷婷久久久久| 超碰永久在线| 天天色播| 五月丁香在线偷拍视频| 日韩AV中文字幕在线| 996热| 九九免费在线视频| 五月丁香人妻| 人人操av| 婷婷五月天美女视频| 久操干| 婷婷中文字幕| 丁香六月婷婷色XXXXX| 五月婷婷色色| 天天插操| 99热伊人| 婷婷五月天欧美图片在线播放电驴| 大香蕉狼人久久| 91五月天| 五月天婷婷丁香导航| 婷婷色五月激情| 欧美色偷偷大香| 五月天成人在线视频网站| 婷婷无码视频| 五月婷婷色情| 亚洲欧洲美女在线观| 大香蕉九九| 性生活久久人妻| 婷婷丁香五月亚洲欧美| 激情五月最新网址| 五月天婷婷综合| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 亚洲亚洲人成综合网络| 婷婷综合五月天| 啪啪五月天啪啪| 久久9久| 最新日韩AV中文字幕| 99ri在线视频| 91人碰| 特级片神马电影| 五月天激情国产综合婷婷婷就去爱| 亚洲天堂玖玖| 天天干天天干天天| 九九亚洲综合| 五月婷六月婷婷| 五月丁香婷婷AV天堂| 婷婷情色五月天| 五月婷婷激情综合拍| xxxx五月激情| 五月色婷婷中文字幕| 日本偷拍九九九| 日日干夜夜干| 五月香婷婷| 91精品久久久久、久五月天| 五月婷婷中文网| 婷婷八月激情| 99九九综合久久九九| 色婷婷AV久久| 99年操人人爽| 久操大香蕉| 婷婷五月激情网| 伊人在线视频| 99久久6| 操熟女成人网| 草AV9999| 丁香五月在线视频| 国产成人网| 99九九在线观看免费| 玖玖激情网| 4399精品一区二区| 狠狠婷婷色| 精品香蕉99久久久久网站| 丁香五月性| 日日噜噜夜夜狠狠久久丁香六月| 婷婷综合五月天| 玖玖爱综合网| 久操福利| 久久婷婷五月综合激情国产| 婷婷五月天综合在线| 丁香五月亚综合图片| 婷婷情色激情| 狠狠五月综合在线| 午夜婷婷丁香| 色99网| 五月婷婷激情综合拍| 五月天婷婷久久综合| 狠狠干五月丁香| 69午夜成人影片| 亚洲色婷婷网站| 777丁香六月青青草婷婷综合久月| 激情五月天色| 色婷丁香五月| 天天成人综合| 亚州视频九九99| 成人婷婷五月| 天天色综合综合| 五月婷婷人妻| 色噜噜狠狠一区二区三区| 99热在线观看免费精品| 色综合另类| 婷婷综合一二三| 99热99精品| 日韩成人免费电影| 久久五月丁香| av亚洲国产小电影| 97色精品视频| 中文字幕久久婷九女同| 91九色无码内射| 狠狠爱五月婷婷| 另类小说五月天| 97丁香五月天| 六月丁香婷婷六月激情综合| 深爱激情五月婷婷| 超碰人人干| 五月婷婷影| 福利视频在线播放| 超碰2021| 久久久婷婷五月亚洲97号色| 99操视频| 五月天成人伊人| 五月丁香婷爱在线| 伊人玖玖精品| 大香蕉综合| 亚洲天堂婷婷| 99精品久久久久久久| 婷婷丁五月| 色狠狠色狠狠| 日本女人久久| 五月丁香成人网| 九色视频入口91| 久久性操| 丁香花五月天| 天天操天天操天天操天天操天天操 | 欧美精品999| 免费久久这里只有精品99| 五月综合无码| 99色色网| 激情五月天福利| 超碰99在线观看| 国际国外精品欧洲南美洲专区无码不卡| 久久色这里只有精品| 激情四射五月天| ..真实国产乱子伦对白在线_欧| 超碰在线观看caop| 欧美激情五月天婷婷| 日本色色视频| www.操.com| 久碰久| 99小精品| 狠狠99| 黄急一级视频| 久久婷婷综合网| 亚洲国产色色| 激情综合网五月天| 色八月婷婷| 五月丁香六月婷婷操操操| 99自拍视频在线| 婷婷久久图片| 婷婷丁香五另类网站| 婷婷色啪| 亚洲图片 丁香婷婷| 中文字幕婷婷五月天| 日日操日日撸| 国产伦亲子伦亲子视频观看| 欧美视频五区| 深爱激情网五月天| 色婷婷成人| 日本视频99| va婷婷| 欧类av怡春院| 欧美色图天堂网| 99久久网站| 1024操逼| 激情五月天激情网| 日本系列_4页_777FP| 九九色网| 五五月五月| 婷婷婷婷婷婷婷五月丁香| 久久五月天网| 99re热免费观看视频精品| 年轻的妺妺伦理HD中文| 五月天社区| 九九大香蕉黄色影院| 婷婷综合干| 欧洲综合色| 农村熟妇高潮精品A片| 永久的网站AAAA | 五月天婷婷在线播放免费| 影音先锋女人AA鲁色资源| 人妻精品在线| 99热天堂| 亚洲成Av人片乱码色第1集| av在线色五月丁香婷区久| 1024人妻| 五月婷丁香花| 五月婷婷综合激情| 在线观看欧美| 第四色五月婷婷| 欧美色色日韩| 伊人五月天在线| 婷婷五月欧美AA片免费| 五月丁香婷庭在线| 婷婷中文字幕网站| 欧美97p| www,奇米影视| 久热最新视频| 亚洲欧洲中文日韩久久AV乱码| 人人爱干人人爱草| 色偷偷五月天| 伍月婷丁香婷| 女人天堂AV| 六月激情婷婷色| 亚洲天堂久久| 永久99免费视频网站| 无码免费人妻A片AAA毛片西瓜| 久久这里面只有精品视频| 99热精品在线| 99热99思午夜精品| av亚洲国产小电影| 亚洲小说欧美激情| 色情婷婷久久五月天| 五月成人天| 日本99视频精品免费播放|