first commit
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
DELIMITER //
|
||||
|
||||
CREATE OR REPLACE PROCEDURE zen_create_json_prepare_aside(
|
||||
IN p_uuid VARCHAR(100),
|
||||
IN p_aside_setup VARCHAR(100)
|
||||
)
|
||||
/*
|
||||
功能 : amis Wizard 產生 json UI 的核心程式(每個 Component 有各自的 json UI 定義)
|
||||
描述: 本段 sp 主要是設定 aside 中的 json 定義
|
||||
建立日期 : 2023/12/20
|
||||
|
||||
修改歷史
|
||||
項目 誰 日期 修改說明
|
||||
==== ========== ========== ================================================
|
||||
1 Michael 2023/12/20 根據 v1.0 重構
|
||||
*/
|
||||
BEGIN
|
||||
DECLARE v_aside_setup_id VARCHAR(100);
|
||||
DECLARE v_aside_field VARCHAR(100);
|
||||
DECLARE v_aside_filter VARCHAR(600);
|
||||
DECLARE v_aside_setup_data TEXT;
|
||||
DECLARE v_ip VARCHAR(100);
|
||||
DECLARE v_db VARCHAR(100);
|
||||
DECLARE v_pos INT;
|
||||
DECLARE v_crlf VARCHAR(2);
|
||||
|
||||
SET v_crlf = CONCAT(CHAR(13), CHAR(10));
|
||||
SET v_ip = '${ls:base_ip}';
|
||||
SET v_db = '${ls:base_db}';
|
||||
|
||||
/*
|
||||
如果 zen_function.aside_setup 有設定, 程式就要加入下面這一段(@aside_setup@)
|
||||
zen_function.aside_setup 的內容, 必須等於關聯 table 的欄位名稱(左方關聯的欄位)
|
||||
zen_function.aside_field 的內容, 是 右方主 table 的欄位名稱(和左方關聯的欄位)
|
||||
例如在 pbi 的 aside 是關聯 pms_sprint.sprintid, 就必須設定 aside_setup=sprintid, 右方資料 pbi, 關聯欄位是 aside_field=sprintid(通常會一樣, 但如果不同, 也可以分別設定)
|
||||
basperson 的 aside 是關聯 basdepartment.departmentid, 就必須設定 departmentid
|
||||
*/
|
||||
-- 去除 @aside_setup 中的 tag
|
||||
SET v_pos = LOCATE('.',p_aside_setup);
|
||||
IF v_pos > 0 THEN
|
||||
SET v_aside_setup_id = SUBSTRING(p_aside_setup,v_pos+1,LENGTH(p_aside_setup));
|
||||
ELSE
|
||||
SET v_aside_setup_id = p_aside_setup;
|
||||
END IF;
|
||||
|
||||
SET v_aside_setup_data = '';
|
||||
IF IFNULL(p_aside_setup,'') <> '' THEN
|
||||
SET v_aside_setup_data = CONCAT(
|
||||
' "asideResizor": true,', v_crlf,
|
||||
' "asideMinWidth": 150,', v_crlf,
|
||||
' "asideMaxWidth": 400,', v_crlf,
|
||||
' "aside": {', v_crlf,
|
||||
' "type": "form",', v_crlf,
|
||||
' "className": "bg-green-100",', v_crlf,
|
||||
' "wrapWithPanel": false,', v_crlf,
|
||||
' "target": "dataList",', v_crlf,
|
||||
' "submitOnInit": true,', v_crlf,
|
||||
' "body": [{', v_crlf,
|
||||
' "type": "input-tree",', v_crlf,
|
||||
' "initiallyOpen": true,', v_crlf,
|
||||
' "heightAuto": true,', v_crlf,
|
||||
' "name": "',v_aside_setup_id,'",', v_crlf,
|
||||
' "inputClassName": "no-border h-full",', v_crlf,
|
||||
' "submitOnChange": true,', v_crlf,
|
||||
' "selectFirst": false,', v_crlf,
|
||||
' "source": {', v_crlf,
|
||||
' "method": "post",', v_crlf,
|
||||
' "url": "',v_ip,'/xapi/v2/',v_db,'/get_treedata/6/",', v_crlf,
|
||||
' "data": {', v_crlf,
|
||||
' "para01": "',p_aside_setup,'"', v_crlf,
|
||||
' },', v_crlf,
|
||||
' "dataType": "form"', v_crlf,
|
||||
' }', v_crlf,
|
||||
' }]', v_crlf,
|
||||
' },');
|
||||
|
||||
IF IFNULL(v_aside_field,'') = '' THEN
|
||||
SET v_aside_field = v_aside_setup_id;
|
||||
END IF;
|
||||
|
||||
SET v_aside_filter = CONCAT(
|
||||
'"_id_": "${',v_aside_setup_id,'}",', v_crlf,
|
||||
' "_field_": "',v_aside_field,'",');
|
||||
|
||||
-- 寫入暫存表
|
||||
INSERT INTO zen_wizard_tmp (uuid,zen_key,zen_value,create_date) VALUES (p_uuid,'aside_setup',v_aside_setup_data,NOW());
|
||||
INSERT INTO zen_wizard_tmp (uuid,zen_key,zen_value,create_date) VALUES (p_uuid,'aside_filter',v_aside_filter,NOW());
|
||||
ELSE
|
||||
-- 沒有資料也要填空白
|
||||
INSERT INTO zen_wizard_tmp (uuid,zen_key,zen_value,create_date) VALUES (p_uuid,'aside_setup','',NOW());
|
||||
INSERT INTO zen_wizard_tmp (uuid,zen_key,zen_value,create_date) VALUES (p_uuid,'aside_filter','',NOW());
|
||||
END IF;
|
||||
END //
|
||||
|
||||
DELIMITER ;
|
||||
Reference in New Issue
Block a user