first commit
This commit is contained in:
@@ -0,0 +1,140 @@
|
||||
DELIMITER //
|
||||
|
||||
CREATE OR REPLACE PROCEDURE zen_create_json_comps_block(
|
||||
IN p_uuid VARCHAR(100),
|
||||
IN p_FunctionTag VARCHAR(100),
|
||||
IN p_code_id VARCHAR(100),
|
||||
IN p_group VARCHAR(10),
|
||||
IN p_FieldBlock SMALLINT,
|
||||
IN p_block VARCHAR(2),
|
||||
IN p_rowid INT
|
||||
)
|
||||
/*
|
||||
function : amis Wizard 產生 json UI 的核心程式(每個 Component 有各自的 json UI 定義)
|
||||
description: 本段 sp 主要是設定 input-text 中 view 部分的 json 定義(實在是太長了)
|
||||
後來發現, 除了特殊的元件要獨立的 sp 特別處理外, 一般元件可以都統一在 input-text 的 sp 加上一些判斷即可
|
||||
Build Date : 2023/12/20
|
||||
Modified : 2025/08/09 (轉換為 MariaDB 版本)
|
||||
|
||||
Modify History
|
||||
Item Who Date Modify Docs
|
||||
==== ========== ========== ================================================
|
||||
1 Michael 2023/12/20 根據 v1.0 重構
|
||||
2 Assistant 2025/08/09 轉換為 MariaDB 版本
|
||||
*/
|
||||
BEGIN
|
||||
DECLARE v_gh TEXT;
|
||||
DECLARE v_gf TEXT;
|
||||
DECLARE v_bh TEXT;
|
||||
DECLARE v_bf TEXT;
|
||||
DECLARE v_blockname NVARCHAR(100);
|
||||
DECLARE v_bTab SMALLINT;
|
||||
DECLARE v_Tab1 VARCHAR(2);
|
||||
DECLARE v_crlf VARCHAR(2);
|
||||
DECLARE v_imax_block INT;
|
||||
DECLARE v_code_para VARCHAR(100);
|
||||
|
||||
SET v_crlf = CONCAT(CHAR(13), CHAR(10));
|
||||
|
||||
-- 取得最大 FieldBlock 值
|
||||
SELECT MAX(FieldBlock) INTO v_imax_block FROM zen_wizard_jsondata WHERE uuid = p_uuid;
|
||||
|
||||
-- get code_para
|
||||
SET v_code_para = '';
|
||||
IF p_code_id IN ('SingleEntry','SingleTabs','SinglePanels') THEN
|
||||
SELECT code_para INTO v_code_para FROM zen_Wizard_template WHERE code_id = 'SingleEntry';
|
||||
-- Master-detail(支援 Tab 和 Panel 2種 UX -- 配合 Single Extend)
|
||||
ELSEIF p_code_id IN ('MasterDetailTabs','MasterDetailPanels') THEN
|
||||
SELECT code_para INTO v_code_para FROM zen_Wizard_template WHERE code_id = 'MasterDetail';
|
||||
END IF;
|
||||
|
||||
SET v_bh = '';
|
||||
SET v_bf = '';
|
||||
|
||||
-- 取得 block_name
|
||||
SELECT blockcname INTO v_blockname FROM zen_blockname WHERE menuid = p_FunctionTag AND blockno = p_FieldBlock;
|
||||
IF IFNULL(v_blockname, '') = '' THEN
|
||||
SET v_blockname = '區塊標題';
|
||||
END IF;
|
||||
|
||||
-- MD Log 允許根據 code_para 決定是 Tabs or Panel(待測試)
|
||||
IF LOCATE('Tab', p_code_id) > 0 OR LOCATE('Tab', IFNULL(v_code_para, '')) > 0 THEN
|
||||
SET v_bTab = 1;
|
||||
SET v_Tab1 = '//';
|
||||
ELSE
|
||||
SET v_bTab = 0;
|
||||
SET v_Tab1 = '';
|
||||
END IF;
|
||||
|
||||
IF p_block = 'BH' OR p_block = 'BA' THEN
|
||||
IF (p_FieldBlock = 0 AND v_bTab = 1) OR (v_bTab = 0) THEN
|
||||
SET v_Tab1 = '';
|
||||
ELSE
|
||||
SET v_Tab1 = '//';
|
||||
END IF;
|
||||
|
||||
SET v_bh = CONCAT(
|
||||
' {', v_crlf,
|
||||
' "', v_Tab1, 'type": "fieldSet",', v_crlf,
|
||||
' "title": "', v_blockname, '",', v_crlf,
|
||||
' "collapsable": true,', v_crlf,
|
||||
' "body": [', v_crlf
|
||||
);
|
||||
|
||||
IF p_FieldBlock = 1 AND v_bTab = 1 THEN
|
||||
SET v_bh = CONCAT(
|
||||
' {', v_crlf,
|
||||
' "type": "tabs",', v_crlf,
|
||||
' "mode": "line",', v_crlf,
|
||||
' "tabs": [', v_crlf,
|
||||
' {', v_crlf,
|
||||
' "title": "', v_blockname, '",', v_crlf,
|
||||
' "body": [', v_crlf
|
||||
);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
IF p_block = 'BF' OR p_block = 'BA' THEN
|
||||
SET v_bf = CONCAT(
|
||||
' ]', v_crlf,
|
||||
' }', v_crlf
|
||||
);
|
||||
|
||||
IF p_FieldBlock = v_imax_block AND v_bTab = 1 THEN
|
||||
SET v_bf = CONCAT(
|
||||
' ]', v_crlf,
|
||||
' }', v_crlf,
|
||||
' ]', v_crlf,
|
||||
' }', v_crlf
|
||||
);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
-- 加入簡易排版功能, type=group
|
||||
SET v_gh = '';
|
||||
SET v_gf = '';
|
||||
IF p_group = 'GH' THEN
|
||||
SET v_gh = CONCAT(
|
||||
'{', v_crlf,
|
||||
' "type": "group",', v_crlf,
|
||||
' "body": [', v_crlf
|
||||
);
|
||||
END IF;
|
||||
|
||||
IF p_group = 'GF' THEN
|
||||
SET v_gf = CONCAT(
|
||||
' ]', v_crlf,
|
||||
' }'
|
||||
);
|
||||
END IF;
|
||||
|
||||
-- 取得並暫存 block / group 的內容
|
||||
UPDATE zen_wizard_jsondata
|
||||
SET json_bh = v_bh,
|
||||
json_bf = v_bf,
|
||||
json_gh = v_gh,
|
||||
json_gf = v_gf
|
||||
WHERE uuid = p_uuid AND rowid = p_rowid;
|
||||
END //
|
||||
|
||||
DELIMITER ;
|
||||
Reference in New Issue
Block a user