久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

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

低代碼平臺(tái)模塊全景拆解:從拖拽畫(huà)布到流程引擎的架構(gòu)與二次開(kāi)發(fā) 簡(jiǎn)介這份文檔面向低代碼平臺(tái)開(kāi)發(fā)者、架構(gòu)設(shè)計(jì)人員及技術(shù)選型決策者系統(tǒng)梳理低代碼開(kāi)發(fā)平臺(tái)的模塊組成與功能實(shí)現(xiàn)方式幫助讀者建立從整體架構(gòu)到細(xì)節(jié)模塊的完整認(rèn)知。資源為單個(gè)docx文檔壓縮包約447KB內(nèi)容圍繞平臺(tái)核心構(gòu)成展開(kāi)前端模塊涵蓋可視化界面設(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)拆開(kāi)看從拖拽畫(huà)布到流程引擎一套系統(tǒng)到底裝了什么有個(gè)做后端的朋友吐槽說(shuō)業(yè)務(wù)部門用低代碼平臺(tái)拖了三天搞出一個(gè)帶審批流的采購(gòu)申請(qǐng)他手寫(xiě)接口加聯(lián)調(diào)花了兩周。這事聽(tīng)著像段子但拆過(guò)這類平臺(tái)源碼的人知道拖拽只是最外面那層皮真正撐住效率的是底下那套模塊化架構(gòu)——前端設(shè)計(jì)器、后端邏輯引擎、權(quán)限體系、流程引擎、表單引擎、報(bào)表大屏每一塊都得能獨(dú)立工作又能串起來(lái)。這份資源把低代碼開(kāi)發(fā)平臺(tái)的模塊組成按“包含系統(tǒng)、模塊、菜單組織操作行為”三個(gè)維度拆了一遍適合兩類人想快速理解低代碼平臺(tái)骨架的產(chǎn)品/項(xiàng)目經(jīng)理以及準(zhǔn)備基于現(xiàn)成平臺(tái)做二次開(kāi)發(fā)、需要知道從哪個(gè)模塊下手的開(kāi)發(fā)者。下面按“它是什么→怎么跑起來(lái)→怎么改”的順序把這份資料里的模塊逐個(gè)拆開(kāi)講。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ù)能力。常見(jiàn)做法是組件庫(kù)按“基礎(chǔ)組件 業(yè)務(wù)組件”分層?;A(chǔ)組件就是按鈕、輸入框、表格、日期選擇器這些業(yè)務(wù)組件則是針對(duì)特定場(chǎng)景封裝的比如審批意見(jiàn)框、數(shù)據(jù)篩選器、圖表卡片。組件庫(kù)的元數(shù)據(jù)描述很關(guān)鍵——每個(gè)組件需要聲明自己的屬性列表、事件列表、可綁定的數(shù)據(jù)源類型設(shè)計(jì)器讀取這些元數(shù)據(jù)來(lái)生成配置面板。// 組件元數(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: 可見(jiàn)性表達(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ì)器畫(huà)布本身一般用絕對(duì)定位或柵格布局來(lái)管理組件位置。絕對(duì)定位自由度高但響應(yīng)式適配麻煩柵格布局約束多但天然適配不同屏幕。我見(jiàn)過(guò)的大部分平臺(tái)選柵格布局把畫(huà)布切成 12 或 24 列組件拖進(jìn)去自動(dòng)吸附到最近的柵格線。拖拽庫(kù)常用react-dnd或vuedraggable核心邏輯是監(jiān)聽(tīng)拖拽事件、計(jì)算落點(diǎn)坐標(biāo)、更新組件樹(shù)。組件樹(shù)是設(shè)計(jì)器的核心數(shù)據(jù)結(jié)構(gòu)通常是一個(gè)嵌套的 JSON 對(duì)象。每次拖拽、刪除、修改屬性都是在操作這棵樹(shù)。保存時(shí)把這棵樹(shù)序列化存到后端運(yùn)行時(shí)再反序列化渲染。這里有個(gè)容易翻車的點(diǎn)組件樹(shù)嵌套層級(jí)深了之后屬性更新如果直接改原對(duì)象React 或 Vue 的響應(yīng)式系統(tǒng)可能檢測(cè)不到變化。常見(jiàn)解法是用不可變數(shù)據(jù)更新或者給每個(gè)節(jié)點(diǎn)分配唯一 ID通過(guò) ID 定位后重建路徑。2.2 后端模塊數(shù)據(jù)庫(kù)管理、邏輯引擎與服務(wù)集成的分層設(shè)計(jì)后端模塊要解決三個(gè)問(wèn)題數(shù)據(jù)怎么存、邏輯怎么跑、外部服務(wù)怎么接。這三塊在低代碼平臺(tái)里通常是獨(dú)立服務(wù)通過(guò)內(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)或映射到已有表。常見(jiàn)做法是維護(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ù)說(shuō)明db_type需要做一層映射把界面上的“文本”“數(shù)字”“日期”轉(zhuǎn)成具體數(shù)據(jù)庫(kù)的 VARCHAR、DECIMAL、DATETIME不同數(shù)據(jù)庫(kù)的映射規(guī)則不一樣MySQL 和 PostgreSQL 在自增主鍵、JSON 字段上的寫(xiě)法就有差異。邏輯處理模塊是低代碼平臺(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)打交道。常見(jiàn)能力包括 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)里。粗粒度只能控制菜單可見(jiàn)性細(xì)粒度要能控制到按鈕級(jí)別、數(shù)據(jù)行級(jí)別。常見(jiàn)設(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ù)說(shuō)明entity_name指定規(guī)則作用于哪個(gè)實(shí)體rule_expression的語(yǔ)法需要平臺(tái)自己定義并解析常見(jiàn)做法是支持簡(jiǎn)單的比較運(yùn)算和邏輯組合復(fù)雜場(chǎng)景直接寫(xiě) SQL 片段但要做注入過(guò)濾。數(shù)據(jù)加密模塊通常分兩塊傳輸加密靠 HTTPS存儲(chǔ)加密靠字段級(jí)加密。敏感字段如手機(jī)號(hào)、身份證號(hào)在寫(xiě)入數(shù)據(jù)庫(kù)前加密讀取時(shí)解密。加密算法選 AES-256-GCM 比較常見(jiàn)密鑰管理要么放配置中心要么用 KMS 服務(wù)。這里有個(gè)血淚經(jīng)驗(yàn)加密字段沒(méi)法直接做模糊查詢和排序如果業(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)能力比如通過(guò) 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)控件。這套東西聽(tīng)起來(lái)簡(jiǎn)單但要做到“自動(dòng)生成且可定制”需要不少設(shè)計(jì)。表單引擎的核心是表單 Schema。一個(gè)表單 Schema 描述了有哪些字段、每個(gè)字段用什么控件、校驗(yàn)規(guī)則是什么、字段之間有沒(méi)有聯(lián)動(dòng)。聯(lián)動(dòng)是難點(diǎn)選了“其他”選項(xiàng)才顯示補(bǔ)充說(shuō)明輸入框填了金額才啟用提交按鈕這些邏輯需要在 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)必須填寫(xiě)事由 }] } ] }visibleWhen字段聲明了顯示條件運(yùn)行時(shí)解析這個(gè)表達(dá)式當(dāng)amount 5000為真時(shí)才渲染reason字段。參數(shù)說(shuō)明表達(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)限通過(guò)perm_code控制沒(méi)有權(quán)限的用戶看不到按鈕。3.2 流程引擎從流程設(shè)計(jì)到審批監(jiān)控的完整鏈路流程引擎是低代碼平臺(tái)里技術(shù)含量最高的模塊之一。它要支持流程定義、流程實(shí)例、任務(wù)分配、審批流轉(zhuǎn)、超時(shí)處理、會(huì)簽加簽。流程定義一般用 BPMN 2.0 規(guī)范前端用 bpmn-js 之類的庫(kù)畫(huà)流程圖后端解析 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ù)說(shuō)明assignType決定分配策略expressionEvaluator需要支持從流程變量里取值。實(shí)際項(xiàng)目中還要處理會(huì)簽多人審批全部通過(guò)才流轉(zhuǎn)、或簽一人通過(guò)即流轉(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)、審批意見(jiàn)輸入框。審批意見(jiàn)和附件要存到任務(wù)記錄里方便追溯。3.3 報(bào)表與大屏數(shù)據(jù)可視化模塊的配置化實(shí)現(xiàn)報(bào)表模塊解決“把數(shù)據(jù)按指定格式展示和導(dǎo)出”的問(wèn)題。常見(jiàn)報(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)。大屏配置一般包括畫(huà)布尺寸、背景、組件布局、數(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ù)說(shuō)明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)存溢出。常見(jiàn)做法是分批查詢、流式寫(xiě)入。4. 避坑與排查低代碼平臺(tái)落地時(shí)最容易翻車的五個(gè)點(diǎn)4.1 組件樹(shù)更新后頁(yè)面不刷新現(xiàn)象在設(shè)計(jì)器里拖拽組件、修改屬性畫(huà)布沒(méi)有實(shí)時(shí)變化或者變化了但保存后重新打開(kāi)又恢復(fù)原樣。原因組件樹(shù)是嵌套對(duì)象直接修改深層屬性時(shí)前端框架的響應(yīng)式系統(tǒng)可能追蹤不到。另外保存時(shí)如果序列化的是舊引用存到后端的還是修改前的數(shù)據(jù)。解決統(tǒng)一用不可變更新方式操作組件樹(shù)每次修改生成新對(duì)象。給每個(gè)組件節(jié)點(diǎn)分配唯一id通過(guò)id定位節(jié)點(diǎn)后重建父級(jí)路徑。保存前打印組件樹(shù) 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ù)不要自己寫(xiě)解析器。4.3 數(shù)據(jù)權(quán)限規(guī)則導(dǎo)致查詢變慢現(xiàn)象加了數(shù)據(jù)權(quán)限后列表頁(yè)查詢從幾百毫秒變成幾秒數(shù)據(jù)量越大越慢。原因數(shù)據(jù)權(quán)限規(guī)則拼成的 WHERE 條件里如果字段沒(méi)有索引或者規(guī)則表達(dá)式里用了函數(shù)導(dǎo)致索引失效查詢性能會(huì)急劇下降。解決數(shù)據(jù)權(quán)限規(guī)則涉及的字段必須建索引。規(guī)則表達(dá)式盡量用簡(jiǎn)單的等值比較避免在字段上套函數(shù)。如果規(guī)則復(fù)雜考慮把權(quán)限過(guò)濾放到應(yīng)用層做先查主數(shù)據(jù)再過(guò)濾或者用物化視圖預(yù)計(jì)算。4.4 插件加載順序?qū)е聰U(kuò)展點(diǎn)覆蓋現(xiàn)象兩個(gè)插件都擴(kuò)展了同一個(gè)流程節(jié)點(diǎn)類型后加載的插件把先加載的覆蓋了或者插件初始化時(shí)依賴的平臺(tái)服務(wù)還沒(méi)準(zhǔn)備好。原因插件加載沒(méi)有定義優(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í)這些信息沒(méi)有注入到表單上下文?;蛘呗?lián)動(dòng)邏輯依賴的字段被權(quán)限控制隱藏了導(dǎo)致表達(dá)式求值失敗。解決表單運(yùn)行時(shí)上下文要包含當(dāng)前用戶 ID、角色、部門等信息。聯(lián)動(dòng)表達(dá)式求值前先檢查依賴字段是否可見(jiàn)不可見(jiàn)時(shí)給默認(rèn)值。發(fā)布前用不同角色的賬號(hào)做一遍回歸測(cè)試。5. 二次開(kāi)發(fā)上手從改一個(gè)組件到加一個(gè)流程節(jié)點(diǎn)拿到一份低代碼平臺(tái)的源碼想改成自己業(yè)務(wù)能用的東西我一般從最小的改動(dòng)開(kāi)始驗(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)配置面板都能串起來(lái)。改組件是最安全的入口。找到組件庫(kù)的源碼目錄通常按組件名分文件夾每個(gè)文件夾里有組件實(shí)現(xiàn)、樣式文件、元數(shù)據(jù)描述。改樣式直接改 CSS 或 Less 文件改行為改組件邏輯。改完后重新構(gòu)建組件庫(kù)設(shè)計(jì)器里拖出來(lái)看效果。這里注意組件庫(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ù)說(shuō)明config是節(jié)點(diǎn)在設(shè)計(jì)器里配置的參數(shù)集合instance.getVariables()是流程上下文變量。異常處理要注意如果短信發(fā)送失敗是重試還是跳過(guò)還是終止流程需要在節(jié)點(diǎn)配置里讓用戶選。驗(yàn)證方法上我習(xí)慣先寫(xiě)一個(gè)最小流程開(kāi)始節(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)證”的流程不跳過(guò)任何一步。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产操逼逼网| 99精品热| 丝袜视频网国产90| 台湾佬激情综合| 久操网视频| 亚洲高清男人天堂| 91骚妇| 啊啊啊啊啊啊在线观看| 狠狠躁天天躁日日躁97| 九九热精品免费视频| 国产精品96| 天天综合影院91| 五月天激情影院| 97免费在线观看视频| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 色天使大香蕉| 女人爽到高潮久久久| www.av在线视频| 东京热,男人的天堂| 二对二中文字幕。| 天天插天天射| 激情综合五月| 国产亚洲女v在线观看| 男同专区一区二区三区在线| 超碰98综合网| 99色婷婷中文字幕乱色| 青青草日逼视频| 成人国产精品三级A片| 91社区伊人| 精品久久久久成人码免| 久久久无码精品人妻二区| 青青国产在线拍揄自揄拍| 97任你吞精| 午夜小电影在线插入淫高潮| 超碰日韩人妻| 成人自拍三级在线观看| 超碰97久久| 9久久精品| 婷婷精品国产欧美精品亚洲人人爽| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠| 素人播放一区| 中文字幕91综合| 99热超碰在线| 少妇滛荡视频| 亚洲欧美日韩精品久久久一区二区| 超碰精品国产无码| 亚洲天堂一区二区久久| 国产亚洲精品av一区| 女欧美一区二三区| 国产性久久久| 性做久久久久久久| 欧美一级做a爰片免费视频| 中文字幕奈奈美被公侵犯| 黑人免费福利视频| 强奸乱伦免费网站| 欧美日韩香蕉| 新版天堂中文资源8在线| 精品九九国产无码| 日本1区2区不卡视频| 1769成人国产精品视频| 亚洲成aⅴ人片不卡无码| 国产家庭乱伦表演| 狠日操| 成人av性爱电影在线观看| 91色图| 岛国片在线视频网站| 中文字幕一区二区三区四区在线视频| 久久久久久久久久久免费精品| 欧亚乱色熟女一区二区| 第一高清av中文字幕| 激情专区综合| 天美国产三级传媒| 日本精品一区二区三| 国产乱不卡| 97中文热色| 好吊色青靑草| 亚洲AV操| 色鬼在线综合| 超碰在线人人射| 中文字幕五月婷婷免费| 人人插人人搞人人操| 大香樵伊人网| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 亚洲 欧美都市激情| 睡产熟女乱伦| 欧美九九爱| 宗合情欲网| 97在线资源| 天天操熟妇| 亚洲中文字幕av| 鸥美中出| 国产麻豆福利av在线播放| 国产AV超爽| 少妇一线天久久久久久| 97人人夜| 久久精品国产亚洲AV高级北京| 干婷婷综合网| 亚洲欧洲色情高清| 精品亚洲一区在线观看| 韩国一区二区精品亚洲| 少妇99| 天堂性色| 夜夜天天噜狠狠爱2021| 婷婷五月天补不补| 插入粉嫩少妇视频| 色视频蜜乳| 9l视频自拍9l九色成人| 日本熟妇自慰性高潮一区二区三区| 17c嫩草51久久91嫩草| 18禁的网站在线| 厕所偷拍在线| 天堂网亚洲区手机版| 在线播放成人高清免费视频| 亚洲成人免费电影| 少妇丝袜在线观看AV| 69XX一中文字幕人妻91| 99免费在线视频| 96免费视频在线| 蜜臀久久久99久久久久 | 澳门人妻久久| 欧美人妻少妇| 五月丁香激情综合网| 日本中文字幕一区| 国产一区在线观看无码AV| 超踫中文字幕| 91性感在线| 91色婷婷综合久久中文字幕二区| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 久肏视频字幕| 国产精品一区二区三区,亚洲综合| 97视频在线免费看| 亚洲欧美首页| 韩国女主播青草福利视频| 大鸡巴久久| 国模精品娜娜一二三区| 欧美高清在线| 大香蕉一线视频| 99re6在线视频精品免费完整版安卓版| www久久国产精品| 亚洲婷婷五月天| 欧美+日产+中文| 五月丁香六月婷综合成人综合 | 日韩av在线免费网站| 黄久在线| 超碰碰小说97| 中文字幕乱在线伦视频中文字幕乱码在线| 97超碰伊人| 亚洲操逼视频网站| 精品国产乱码久久久久久蜜臀| 狠狠色色| 国产精品99精品视频网站| 久久国产对白激情浪潮 | 淫淫总合网| 亚洲丝袜综合| 亚洲激情深爱文学小说网站| 久热9| 日韩精品资源| 深夜操逼网| 一起草视频在线| 女同在线视频一区| 免费αⅴ在线观看| 国产嫩草精品A88AV| 亚洲综合小说另类图欧美视频激情小说色五月天 | 日日骚精品视频| 亚洲日韩人妻中文字幕一区| 日产中文字幕2020| 屌逼麻豆| 91九色首页| 欧美一级在线观看成人| 天美一区在线| 蜜臀av中字字幕网站| 男女激烈网站最新| 啊啊啊啊免费视频| 五月开心网| 岛国免费视频在线| 好一吊区二区| 精品久久久久黄少妇| 日本东京热加勒比久久| 夜夜躁狠狠躁日日躁av| 国产精品久久久九九九| 日韩国产十八禁| 深田咏美亚洲精品福利社| 99人妻| 99色日| 亚洲国产欧美中文永久| 八戒午夜福利理论片| 亚洲天天精品| 5252色欧美在线| 亚州操逼网| 色牛aV| 久久久免费高清中文视频| 日产狠狠干| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 精品妇女一区二区三区| 欧美黄片欧美黄片xxx| 伊人操| 天天综合网合集91| 草伊人高潮喷水超碰| 国语av最新自产拍在线观看| 欧美一区二区三区另类精品| 欧美色人| 啊啊啊啊啊啊好多水| 中文字幕伊人| 加勒比五月天| 亚洲av热热色| 大香蕉免| 一区中文字幕二区日韩| 91久久精品国产| 亚洲精品日韩国产欧美| 欧美日韩岛国大片在线观看| 色婷婷视频| 无码区蜜乳| 性色A∨91| 在线电影亚洲色图| 欧美激情在线观看视频| 国产97av| 最新亚洲黄色免费电影| 久久超碰国产一区二区三区| 草草电影院| 日日超碰亚洲| 欧美综合天天| 国产女人视频三四五区| A片大香蕉在线| 97天堂| 国产后入| 人妻三级在线中文字幕| 亚洲高清无毛一区二区| 大香蕉一区二区在线观看.| 成人五月天丁香激情综合| 欧美成97爱| 色色97爱| 国产最火爆久久国产网站网站| 激情 欧美 亚洲 小说| 欧美性爱免费短视频| 麻豆天美一区二区| 黑人狂躁日本妞一区二区三区| 日本亚洲嫩草影院啪啪| 网友自拍第一页| 黑人娇小av在线播放| 亚洲综合第一页| 三级日韩一区二区三区| 伦伦成年午夜免费视频| 超碰人人干| 精品久久人妻成人网| 亚洲成人网站在线观看| 欧美人妻色| 91欧美性| 精品天堂| 欧美亚洲素人制服精品| 久久国产视频性吧 | 天美传媒AV国产在线| 亚洲瓯美色图| 欧美性Fer办公室秘书| 久操免费电影| 欧美传媒| 2018色综合天天操| 五月丁香啪啪啪| 干b在线性社区| 亚洲丰满很很操| 亚洲精品91| 囯产精品久久久久久久久久梁医生| 国产精品无码成人精品| 日韩一级欧美一级在线观看| 美女露胸露尿口| 色拍偷亚洲| 欧美激情区| 99久久亚洲精品无码毛片潘甜甜| 图片区小说区| 欧美少妇第一页| 国产丝袜高跟美女av免费观看| 亚洲做性| 国产黄片精品在线| 黄色小说亚洲| 欧成人在线| 日本一级特级毛片视频| 2018色综合天天操| av橘色网站| 国产精品毛片?v一区二区三区| 一本道综合色图| 亚洲宗合网| 一道α片欧美| 91色图片| 久久久久久久久久va| 五月丁香影院| 激情文学 亚洲图片| 97视频在线看| 天天综合日韩网| 国产日产欧产美韩系列麻豆免费| 免费福利视频中文字幕| 欧美日韩淫加| 欧美天堂在线| 欧美国产日韩高清在线| 久久草视频污视频| 国产在线视频二区| 成人网欧美风情| 国产美女91| 成人 日本A片无码8888| 国产精品久久久久久久久久久久久久久| 亚洲欧美校园| 五月天黄色激情视频| 人人噜夜夜操| 日本免费专区| 91色伦综合| 国产91影院| 青草青青久久久久久国产| 欧美97网| 女人被添高潮免费视频| 人妻另类| 亚洲熟妇无码一区二区三区| 五月天我淫我色av| 黑丝日韩av丝袜av| 淫荡少妇免费| 中文字幕视频免费| 黄片在线免费在线观看| 97伦综合| 国产后入精品| 丰满人妻一区二区三区四区| 亚洲色图久久成人| 欧美一级AAAAAAA| 亚洲最大的黄色电影网站。| 国产精品露脸在线观看| 青青草日本中文字幕| 超碰97人妻免费在线| 97 国产一区| 欧美黄色片在线播放| 色欲人妻一区二区在线| 国产精品女久久久久av爽| 青青伊人久久| 日本高清一区二区在线| 蜜臀99久久精品久久久久| 激情四射婷婷四五月天| 人人操人人舒服| 欧美亚洲厕所精品偷拍91| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 日韩乱伦视频| 97视频在线看| 日韩欧美丝袜诱惑| 99久久99九九99九九九| 色噜噜狠狠色综无码久久合欧美| 久久免费看高潮毛片韩国| 欧美日韩午夜精品一区二区三区 | 激情欧美97| 蜜桃久久久久久久| 秋霞一级视频在线观看免费| 日日爱99| 青青操视频在线| 色色色综合网| 欧美日韩免费性爱| 97在线免费看视频| 青青操视频在线| 盗摄 精品 另类 一区| 日本高清视频xxxx| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 欧美综合色站| 大香蕉综合在线| 国产无码精品久久久久久| 校园春色欧美| 丝袜综合| 熟女露脸激情自拍视频| 啊…啊…操我用力操我| 91动漫操逼视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 亚洲 欧美 手机在线观看| 97爱爱官网| 国产盗摄美女如厕大神作品在线观看| 狠狠穞A片一區二區三區| 在线综合 亚洲 欧美中文字幕| 人妻熟妇一区二区三区| 操死我了嗯嗯嗯| 人妻少妇蜜桃视频欧美一区| 国产色呦呦| 最新日日夜夜天天干干| 少妇无码999| 美女网站黄页| 啊啊啊啊啊啊啊啊啊啊在线观看| 国产精品青青草| 全球成人中文在线| 亚洲成人美女无吗| 无码精品蜜桃一区二区三区ww| 男女啪啪网站免费视频| 九t超碰| 精品少妇人妻| 精品无码人妻一区二区免费蜜桃| 久草色悠悠在线视频| 亚洲影视综合网| 日本3级一区二区免费| 日韩人妻播放| 国产无码久久高清| 插入逼91| 亚洲日韩人妻中文字幕一区| 9999久久久| 欧洲色综合| 2017天天操天天日| 午夜美女诱惑电源网| 黄站在线免费观看| 色欲久久99精品久久| 亚洲图片在线| 操逼无毒无码免费视频| 国产吹潮女在线观看| 97伪v| 秋霞鲁丝午夜无码一区二区三| 日本美女性生活久久久久久久| 激情五月天色色网| av九九| 色欧美天天| 六月婷婷五月丁香| 91 国产丝袜在线放观看| 欧美不卡在线美女| 99亚洲人人| 久久草视频污视频| WWW美腿丝袜香蕉中文| 精品美女人人干| 日本免费一区二区不卡 | 视频国产精品未满十八禁止在线观看| 国产 三级自拍| 亚洲图片偷拍视频区| 青娱乐日韩无码| 志村玲子视频一区二区| 尤物av网站| 久久水蜜臀亚洲AV无码精品| 97超碰色中文字幕| 亚洲 欧美 色图| 久久大黄片| 高清国产无码av| 精品国产人成在线| 精品久久視頻在线| 天天日天天屌天天操| 9ⅰ久久久天天| 色臀AV| 国内偷自视频区视频综合| 国产中文大片资源中文字幕| 99亚洲天堂| 婷婷久草一区二区三区| 日韩综合97P| 人妻丝袜日本| 天堂69亚洲精品中文字| 乱伦AVxx| 五月婷丁香| 久久少妇视频| 国产精选视频| 国产三区免费在线观看| 欧美日韩99精品麻豆传媒| 精品十三区| 大香蕉手机在线| 免费A片三p视频| 婷婷视频在线免费观看| 91在线免费观看处女| av2014 日韩在线中文字幕| 日韩免费a级毛片无码a∨| 欧美午夜一区二区三区| 久久e6只有精品| 日本ZZ高免费A级视频| 天天看精品动漫视频一区| 亚洲最大无码中文字幕网站| 884t在线| 日本道不卡| 午夜天堂啪啪| 熟女91网| 国产隔壁老王影院在线| 超碰在线一区二区| 伊人久久88国产女| 亚洲国产婷婷在线播放| 国产9熟妇视频网站| 五月丁香| 久久精品国产亚洲AV清纯| 青青青青草av在线观看| 亚洲操操操| 狠狠操,使劲操| 久久久久久人| 人妻无码久久一区二区三区免费| 九九热AV| 久操视频资源站公开| 黄色工厂这里只有精品| 精品二999| 天天综合亚在线| 97人人干人人操| 亚洲一区二区三区中文字幕| 亚洲 综合 第一页| 97在线欧洲| 色香阁在线| 亚洲少妇喷视频看| 精品一二三区久久AAA片| 久草视频在线视频在线视频在线观看| 日日摸天天爽夜夜欢| 91美女视频直播| 青青草中日韩在线| 91色综合色| 日韩78m视频| 国产青一二三| 夜夜福利| 99re综合伊人| 日韩三级av片| 日韩精品在线放| 色综合av综合久久| 污色区网站| 中文字幕丰满人妻日本| 欲色综合| 青草成人免费视频一COm| 老熟女91视频| 久久黄片国产一区二区| 麻豆国产视频精品观看| www久久国产精品| 欧美一二三级精品在线| 95自拍视频在线观看| 高潮的A片激情扒开一区| 一区二区三区美女超清| 欧美激情性爱视频网站| 国产熟女免费观看久久| 91成人在线免费视频| 日韩av影片在线观看| 欧美|91色综合| 中文字幕片| 久热99999| 九九九色| 91站街按摩店老熟女熟女| 国产这里只有精品| 欧美日韩中国x| 97香蕉网| 人人干人人搞人人摸| 爽 好舒服 无码刺激久久| 精品无吗久久| 婷婷超| 99色色| 蜜臀久久99精品久久久久电影| 亚洲性爱电影| 日本男人插女人的逼黄色| 女人精品内射国产99| 97精品国产97久久久| 特色a在线上| 熟妇熟女视频一区二区三区| 人人妻人人爽人人精品| 丁香久久| 欧美日韩大香蕉| 欧美天天谢综合网| 第四色奇米影视777| 69人妻精品丰满熟女区| 欧美精品99久久久**| 日韩少妇在线视频| 中文字幕精品区先锋资源| 天天躁夜夜躁狠狠躁AV| 探花一区在线| 色哟哟 日韩精品| 天天天天天天天天综合| 强奸乱伦日韩AV| 婷婷丁香人妻 | sss视频华人在线| 粉嫩av久久一区二区三区| 欧美91网站| 欧美有码激情视频一区二区三区| 东北毛片| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 亚洲精品无码久久AV| 国产AV线| 蜜桃视频一区二区三区在线观看| 国产精品久久久久中文字幕| 啪啪综合网| 亚洲电影91| 久久亚洲天堂| 丁香五月天啪啪| 欧美 日韩 亚洲 春色| 夜夜夜夜久久久久| 亚洲图片在线| 97超碰巨乳| 精品少妇一区二区三区免费观看| 免费一级黄色录像影片| 97免费视频在线| 久久禁| 超碰碰激情97+久| juliaann精品熟女一区| www久久久| 日本人人操人人操| 日本午夜操逼| 亚洲国产尤物yw在线观看| 欧美人黑A片无码免视费| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 国产乱伦一二三区| 久久亚洲AV无码专区国产精品| 天天综合91| 免费视频一二三区| 中文字幕第2页| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | aV中文麻| 欲香欲色综合天天伊人| 老鸭窝成人| 久久97视频| 亚洲中文sv| 中文字幕乱妇免费视频| 日韩精品 欧美激情| 伊人欧美大香蕉视频| 久久久女人| 97超碰超碰| A 天堂| 欧美精品成人在线播放| 十八禁的黄污污免费网站| 激情五月天插| 嫩草影院性色| 久久久久成人蜜桃精品| WWW4虎| 999 久久久| 在线洲亚线| 日本中文熟女视频| 天天视频综合在线观看视频| 99性视频| 欧美午夜色妇色鬼| 骚日日av| 少妇熟女1区2区3区| 乱伦a片视频| 国产色呦呦| 96AV久久久| wuyechaopeng| 99婷婷一区二区| 午夜性刺激视频免费观看| 亚洲自拍欧美国产首页网曝 | 91精品成人| 久久久久国产精品喷潮免费观看臀| 成人在线午夜视频一区| 亚洲三级网址久久最新| 日本欧美韩国国产在线| 午夜毛片高清免费不卡| 美国日韩黄色片| 精品美女少妇一区二区| 激情一区二区三区在线观看| 91精品国产91久久青草| 亚洲精品一二三四区| 成人性爱av| 91美女视频。| 青苹果影院男人的天堂| 国产成人午夜视频网址| 天天综合日韩网| 性性久久| 97超碰jingpin| 国产一区二区a毛片| 麻豆一区二区三区在线看 | 久久有碼| 丁香五月天啪啪| 色五月激情AV在线| 超碰色老头| 精品成人亚洲午夜电影| 日韩婷婷| 少妇贴图| 欧美熟妇乱码在线一区| 60秒免费小视频| 98久久超碰| av在线不卡一区二区三区| 一区二区精品更新提醒| 国产精品国产自产高清AV| 国产美女精品| 2017天天操天天日| 手机看片1025| 日韩精品怡红院| 老熟女91| 中文字幕人妻色偷偷久久皮| 校园激情狠狠四射| 黄色大片一区二区密桃丝袜| 可免费观看的av毛片中日美韩| 少妇超碰在线| 亚洲国产一级黄色视频| 精品一区二区三区四区外站| 97最新在线播放视频| 美女高潮国产高清| 日韩9999| 色优久久| 99国产精品视频尤物| 亚洲性刺激| 97超碰巨乳| 99热在线播放| 国产精品呦一区二区三区| 欧色网址| 97精品久久久久中文字幕| 日韩人妻精品久久久久| 日韩亚洲国产视频| 天天做天天爱夜夜爽毛片试看| 久久人人爽av亚洲精品天堂桃色 | 在线人妻熟女一区二区三区四区五区| 久久社区一区二区三区| 少妇一区二区三区| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 男女啊啊啊| 久久熟女久| 欧美三级免费伊人| 五月婷婷激情综合| 欧美成人黄网色网站| 国产精品4p在线观看| 麻豆尤物视频网| 蜜区区视频79 | 最新av在线| 超硑97精品| 人人澡人人爽人人精品| 天天综合色| 97天堂| 日韩av乱伦| 深夜激情无码| 日本午夜精品理论片A级APP发布| AV污污污污| 在线视频日韩欧美国产| 精品区国产区一区二区三区| 91成人久久 | 久久久九九| 亚洲综合伊人| 99少妇| 大香蕉中文在线| 丁香婷婷五月| 久久国产性爱| 精品区国产区一区二区三区| 久久久97| 麻豆天美国美国产| 亚洲狼狼干综合1| 日本顶级天天操狠狠操夜夜操中文字幕| 日韩欧美丝袜诱惑| 丰满少妇精品一区二区| 嗯嗯啊好爽| 操婢日韩| 激情婷婷五月天| 亚洲男人的天堂AV| 激情内射| 精品无码欧美三级| av资源在线播放天堂| 天天综合网国产| 麻豆国产成人精品| 老熟女91视频| 少妇xx精品| juliaann精品熟女一区| 亚州大图综合色图 | 久久综合五月天| 婷婷丁香五月激情啪啪| 久久婷婷在线观看视频| AV女资源| 一级啊性爱在线视频| 丁香五月天婷婷姐| 九九九成人| 久久亚洲AV无码专区首页| 日韩人体偷拍| 亚洲欧美清纯| 欧美刺激色黄片免费看| 久操 高清| 日韩兔费看黄片| 99这里有精品| 超碰人妻久久| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 成人激情无码在线视频| 嗯嗯啊啊亚欧精品| 国产91亚洲精品一区二区三区| 日韩av乱伦| 超碰 国产熟女精品一区| 国产区91柔拿会所技师| 欧美日韩国产人人| 中文字幕一区二区日韩网| 九九热精品在线| 88xx成人精品视频| 国产人伦精品一区二区三区| 久久男人天堂| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 色拍偷亚洲| 日韩久久.一级黄色片| 女人的天堂大香蕉网| Av手机版天堂网| 亚洲综合九| 国产精品亚洲免费| 中文字幕视频在线观看| 嗯啊啊啊轻点视频 | 久操免费在线| 自拍欧美| 国产情侣自拍在线播放| 97久久久久| 综合网97| 丰满人妻区一区二区三| 久久综合18p| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 九九九午夜| 天天色综合影视网| 国产av美女被艹的乱叫| 蜜桃视频一区二区三区| 色欲三区| 久插综合| 国产女同视频在线播放| 青青草吊丝| 午夜性刺激视频免费观看| 国产精品色色| 加勒比综合88| 色性综合| 免费AV中文网在线观看| 欧美性猛交美女自慰91| 欧洲精品一级二级精品综合视频综合| 九九香蕉网| 992大香蕉| www.久久| 2024黄色视频| 自拍丝袜美腿人妻| AV一起草在线| 男人的天堂在线| 国产精品宅男免费| 欧美综合色综合| 国产精品午夜高潮呻吟久久av| 久久久久久九九九九九九| 日本一区二区三区四区免费观看| 精品人妻伦一区二区三区久久| 久久亚洲AV无码专区国产精品| 99re6国产精品99re| 日韩AC| 欧美,日韩,中文,另类| 大香蕉人妻| 97超碰色| juliaann丝袜大战黑鬼| 天堂中文资源在线bt| 精品大全99999| 五月天激情网站| 亚洲本色精品一区二区久久| 中文字幕人妻色偷偷久久皮| 久久精品国产亚洲AV嘿嘿| 超碰偷拍| 91neishe| 激情无码日韩| 亚洲欧美97√| 很黄很污的免费网站| 福利操逼| 这里都是精品| 啊啊啊好舒服好爽啊啊啊视频| 密乳无码| 激情在线青青操| 无码人妻一区二区一牛影视| 国产精品视频内谢女人| 亚洲天堂人人妻| 99久久9| 91社区伊人| 欧美丝袜美女电影一二三四区| 久久久久久AⅤ无码免费肉站 | 99蜜桃臀亚洲成人在线观看| 在线观看黄色电话| 超碰99re| 中文字幕一区二区三四五区日日骚| 岛国片在线观看视频亚洲| 操一操摸一摸| 欧美 综合 亚洲| 一二三四免费视频| 亚洲中文国际强奸字幕| 欧亚日韩中文在线| 欧亚日韩三区| 欧美嫩性色| 在线精品福利免费播放| 精品国模无码| 精品制服美女中文一区二区三区| 富二代亚洲精品99| 国模少妇一区二区三区| 亚洲国产精品无码AV久久久| 欧美骚少妇| 天天综合香 ld视频| 国产一级片| 国产精品亚洲高清在线| 在线视频97| 热久久无毒不卡| 国产精品久久久蜜臀| 五月天精品| 浪人综合网| 老熟妇乱轮| 免费视频观看60秒| 伊人96在线| 中文幕97| 美女啊啊啊啊啊啊啊| 欧洲熟妇xxXx欧美老妇裸体| 在线一道啪| 91色人妻| julia中文字幕在线观看| 五月丁香色婷婷| 999岛国大片| 在线国产福利网址导航| 国产精品第一区第一页| 欧美亚州综合图片| 岛国片在线观看视频亚洲| 久久久久久久久久9| 天天日美女的B| 国产精品视频播放| 亚洲日韩青青草色月| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 美女在线H91| 超碰人妻在线| 亚洲AV无码乱码在线观看性色| 亚洲少妇综合在线播放| 99re公开精品免费视频| 国产日逼视频| 性色AV蜜色av色欲av| 97色网| 91狠狠综合网| 日韩少妇无码| 天天综合中文字幕 91| 另类小说欧美激情校园春色| 乱人乱色一区二区三区免费| 就去色综合| 欧美综合色图片| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 欧美国产视频| 操B久久| 欧美韩国你懂得在线| 99爱久久视频频| 熟妇视频一区二区三区在线观看| 人妻日日夜夜精品| 开心六月色| 人人澡综合涩| 亚州综合图片| 日韩精彩视频| 亚洲 欧美 日本 国内 首页| 婷婷丁香人妻| 亚洲性高潮| 欧美激情激情xxxx欧美专区| 20cm女自慰在线日韩欧美| 内射小黄片| 亚洲中文字幕在现观看| 国产精品视频自拍在线| 亚洲另类小说卡通动漫| 国产尤物AV尤物在线观看不卡| 久久精品国产72国产精品福利 | gogogo免费高清看中国国语| 欧美日韩色综合网| 国产亚洲日韩在线三区黑人| 成人免费福利网站国产| 亚洲精品一区中文字幕乱码| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | ,成人免费啪啪视频| 欧美日韩国产三级黄色| 97人人模人人爽人人| 欧日韩不卡视.频| 18精品一区| 麻豆伊人网| 99九九久久| 激情终合网| 美女91av| 97亚洲色图| 国内外内射高清视频| 99亚洲精品| 日韩丰满熟妇| www.狠狠干.coom| 亚州熟妇精品| 超碰色老头| 国产av强奸美女| 亚洲欧美日韩夜夜| 美日韩一卡二卡三卡免费人妻精品| 伊人网在线视频| 久9无限国产| 日日噜噜夜夜狠狠视频无| 黄片www.| 99九九久久| 亚洲一区二区av| 日韩黄片视频试看| 欧美色图天堂在线| 日日夜夜国产综合| 1024精品在线| 亚洲欧美综合区自拍另类| 日日日日日| 亚州精品丝袜-不卡成人免费| 十八禁电影伊人网| 色欲Av人妻精品一区二| 99热综合| 亚州欧美综合| 97干97色| 精品国产乱码久久久久久口爆网站| 久久久久久久一级黄色打同平台| 欧洲自拍色图gif在线| 国产三级片在线观看| 亚洲无码国产探花在线观看| 91精品丝袜久久久久久| 日日嗨AV一区二区夜夜| 在线观看亚洲成人精品| 这里都是精品| 免费福利视频中文字幕| 欧美综合站| 嗯嗯嗯啊啊在线观看| 国产一级特黄大片处女| 人人 操人人 操人人| 中亚精品极乱| 九九九九一区| 国产99久久99热这里只有精品15 | 国产精品亚洲天堂网址| 麻豆 欧美 日韩| 欧美春色| 日韩AV熟女乱伦| 青青草狠狠撸| 秋霞一集毛片观看| 亚洲天堂区| 免费视频观看60秒| 欧美日本一区二区a人| 天堂在线一区二区| 国产性爱强奸乱伦大全| 免费视频无码| 麻豆熟妇乱妇熟色A片在线看 | 亚洲成人激情小说视频| 六月婷婷综合| 九九九久| www.人人cao| 啊啊啊啊啊舒服| 国产亚洲美日韩Aⅴ中文字幕无码成人| 亚洲一本大道中文字幕无码在线| 日韩人妻精品中文字幕| 在线无码视频| 久久一二三四不卡 | 久久精品一区二区三区四区五区| 99只有精品| 欧美综合色| 18禁的网站在线| 欧美与日韩97| 亚洲日韩国产欧美综合v| 黄色一区三区| 欧美性爱十八禁| 91热情品| 三级AV入口| 中文字幕女同在线| 亞洲久久直播| 久久人妻一区二区三区高清| 乱伦1色页| 麻豆精品三区视频| 精品v日韩欧美国产| 综合情欲网| 人妻av在线| 淫荡网址| 日韩免费人妻色情网站| 大肥女高潮bbwbbwhd视频| 中文字幕一区 二 区 三 四 五 区日 日 骚| 中日韓欧美高清| 亚洲美女精品| 男女国产精品| 中文字幕丝袜美腿| 九月丁香婷婷色| 人人爽夜夜玩视频| 亚洲成人综合在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 日韩天天综合| 中文字暮97| 久久久久久一日韩字幕无码| 91影视亚洲| a级理论午夜日本| 97色香蕉| 亚州综合电影| 蜜乳AV一区二区三区四| 男人的天堂VA| 自慰白浆在线观看| 综合网 欧美| 操操操操网黑人| 岛国黄色大片网站| 精品九区| 日本一天色道久久久精品视频| 日韩精品国产一区二区| 四虎免费在线播放| 日本亚洲vr欧美不卡高清专区| 狠狠色噜噜狠狠狠狠2018| 97久久国产精品| 91久久国产综合久久| 国产精品内射婷婷一级二| 91老熟女老女人国产老太| 99操视频| 思思视频免费看网站| 97中文综合| 欧美男人一区| 久久这里是精品| 97在线视频网站| 男人久久精品| 乱精品一区字幕二区| 欧美一级A一级a爱片久久| 黄色香蕉视频网站一区| 中出在线视频| 大香交伊人网| 欧美性爱中文字幕无线码| 老妇女91| 九九九九九九九九九九九蜜桃| 女优免费一区二区永久| www.大香| 亚州欧美色图| 99热国产精品| 欧美亚洲一区二区久久久婷精品大包诱| 懂色AV蜜臀无码精品APP | 天美传媒av一区二区| 久久久久久久久久久六六| 国产熟女免费观看久久| 超碰97护士| 丰满少妇精品一区二区| 日韩钢筋无码高清啾啾啾| 午夜免费视频1000| 亚州AV无码国产精品| 日韩中文字幕国产| 久操国产在线| 蜜桃狠狠色伊人亚洲综合 | 思思在线免费视频| 久热精品在线国产| 精品人妻av区天天看片| 激情四射熟女丝袜| 亚洲国产精品久久久男人的天堂| 亚洲天堂人妻一区二区| 综合色久| 欧美很很操视频| 一区二区三区四区免费视频| 亚洲精品国产精品成人| 国内毛片四区| 99草精| 国产精品3| 黄色十八禁| 在线观看午夜婷婷久久久久清性观看| 福利风月五月天影院| 中文字幕在线日亚洲9| 欧美人妻一区| 国精精品无码一二三区水多多| 一级二级三级黑人无码| 色色色日本| 三级日韩一区二区三区| 精品久9| 欧美激情区| 久久免费9| 亚洲日韩美女丝袜美腿人妻视频| 日韩99999| 麻豆av一区二区| 青青草在线视频美女| 热久久无毒不卡| 天天在线91| 污污汅18禁网站在线永久免费观看 | 四虎永久在线精品免费网址| 亚洲精品 大香蕉| 亚洲少妇喷视频看| 国产久久一区二区午夜| 91麻豆天美国产欧美| 久久久九97| 婷婷六月天| 日韩av女优在线免费一区| 亚洲天天艹| 九九热五区| 欧洲与亚洲欧美精品中文字幕| 久操在97| 蜜桃久久精品一区二区三区| 亚洲天堂日本| nuu12国产麻豆精品| 精品无码久久| 97超碰色色| 中文字幕日韩专区精品系列| 亚洲男人天堂2012| 呦呦一区| 三级精品三级在线观看| 亚洲日本激情| 黄色视频特级毛片| 99精彩视频| 啊啊啊好湿国产一二| 欧美成人综合| 亚洲蜜臀视频精品久久| 欧美同性恋 的搜索结果 - 91n| 日韩猛交| 免费av在线播放二区| 丝袜美腿制服人妻二区中文字幕 | 国产日韩欧美中文在线播放 | 视频一区二区免费在线| 中文人妻av高清一区| 欧 美 自 拍 偷 拍| 乱伦强奸区日韩| 内射小黄片| 色综合久| 亚洲熟妇丝袜在线观看| 国产一区二区三区,在线观看观看| yazhouzaixian| 亚洲无 码A片在线观看麻豆| 亚洲av综合色区图片亚洲| 日韩国产成人自拍视频| 日韩AV片| 蜜桃久久久久久久久久久久| 欧美人妖内射| 日韩在线欧美精品一区二区| 婷婷视频在线免费观看| 亚洲精品久久久久久久久豆丁网|