95 lines
3.9 KiB
Plaintext
95 lines
3.9 KiB
Plaintext
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 ; |