113 lines
3.8 KiB
Plaintext
113 lines
3.8 KiB
Plaintext
DELIMITER //
|
|
|
|
CREATE OR REPLACE PROCEDURE zen_create_json_comps_transfer(
|
|
IN p_uuid VARCHAR(100),
|
|
IN p_FieldName VARCHAR(100),
|
|
IN p_FieldCN NVARCHAR(100),
|
|
IN p_picker_tag VARCHAR(100),
|
|
IN p_code_id VARCHAR(100),
|
|
IN p_rowid INT
|
|
)
|
|
/*
|
|
function : amis Wizard 產生 json UI 的核心程式(每個 Component 有各自的 json UI 定義)
|
|
description: 本段 sp 主要是設定 transfer 的 json 定義
|
|
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_comps TEXT;
|
|
DECLARE v_json_insert TEXT;
|
|
DECLARE v_json_update TEXT;
|
|
DECLARE v_json_quickedit TEXT;
|
|
DECLARE v_json_gridview TEXT;
|
|
DECLARE v_json_view TEXT;
|
|
DECLARE v_cnt INT;
|
|
|
|
DECLARE v_blob_data TEXT;
|
|
DECLARE v_field_df TEXT;
|
|
DECLARE v_required TEXT;
|
|
DECLARE v_init_api TEXT;
|
|
DECLARE v_crlf VARCHAR(2);
|
|
DECLARE v_ip VARCHAR(100);
|
|
DECLARE v_db VARCHAR(100);
|
|
|
|
-- 通用寫法
|
|
SET v_crlf = CONCAT(CHAR(13), CHAR(10));
|
|
SET v_blob_data = '';
|
|
SET v_field_df = '';
|
|
SET v_required = '';
|
|
SET v_ip = '${ls:base_ip}';
|
|
SET v_db = '${ls:base_db}';
|
|
|
|
-- Insert
|
|
SET v_comps = CONCAT(
|
|
' {', v_crlf,
|
|
' "label": "', p_FieldCN, '選擇",', v_crlf,
|
|
' "type": "transfer",', v_crlf,
|
|
' "name": "', p_FieldName, '",', v_crlf,
|
|
' "selectMode": "tree",', v_crlf,
|
|
' "source": "${config}"', v_crlf,
|
|
' }'
|
|
);
|
|
|
|
SET v_json_insert = v_comps;
|
|
|
|
-- update: 加入判斷, 是否為 pk 欄位
|
|
SET v_json_update = v_comps;
|
|
|
|
-- view
|
|
IF LOCATE('MasterDetail', p_code_id) > 0 THEN
|
|
SET v_comps = CONCAT(
|
|
' {', v_crlf,
|
|
' "label": "', p_FieldCN, '",', v_crlf,
|
|
' "type": "static",', v_crlf,
|
|
' "name": "', p_FieldName, '"', v_crlf,
|
|
' }'
|
|
);
|
|
ELSE
|
|
SET v_comps = CONCAT(
|
|
' {', v_crlf,
|
|
' "label": "', p_FieldCN, '選擇",', v_crlf,
|
|
' "type": "transfer",', v_crlf,
|
|
' "name": "', p_FieldName, '",', v_crlf,
|
|
' "selectMode": "tree",', v_crlf,
|
|
' "disabled": true,', v_crlf,
|
|
' "source": "${config}"', v_crlf,
|
|
' }'
|
|
);
|
|
END IF;
|
|
|
|
SET v_json_view = v_comps;
|
|
|
|
-- 寫入暫存 Table (zen_wizard_jsondata)
|
|
UPDATE zen_wizard_jsondata SET json_insert = v_json_insert WHERE uuid = p_uuid AND rowid = p_rowid;
|
|
UPDATE zen_wizard_jsondata SET json_update = v_json_update WHERE uuid = p_uuid AND rowid = p_rowid;
|
|
UPDATE zen_wizard_jsondata SET json_quickedit = '' WHERE uuid = p_uuid AND rowid = p_rowid;
|
|
UPDATE zen_wizard_jsondata SET json_gridview = '' WHERE uuid = p_uuid AND rowid = p_rowid;
|
|
UPDATE zen_wizard_jsondata SET json_view = v_json_view WHERE uuid = p_uuid AND rowid = p_rowid;
|
|
|
|
-- 有其他的資料要寫入 zen_wizard_tmp
|
|
-- 要在 form 上新增 initApi 的設定(未完)
|
|
SET v_init_api = CONCAT(
|
|
' "initApi": {', v_crlf,
|
|
' "method": "post",', v_crlf,
|
|
' "url": "', v_ip, '/xapi/v2/', v_db, '/get_orgStructure/9/",', v_crlf,
|
|
' "data": {', v_crlf,
|
|
' "para01": "', IF(p_picker_tag = '', 'person', p_picker_tag), '"', v_crlf,
|
|
' },', v_crlf,
|
|
' "dataType": "form"', v_crlf,
|
|
' },', v_crlf
|
|
);
|
|
|
|
-- 更新 zen_wizard_tmp 表
|
|
UPDATE zen_wizard_tmp SET zen_value = CONCAT(zen_value, v_init_api)
|
|
WHERE uuid = p_uuid AND zen_key = 'init_api_org';
|
|
END //
|
|
|
|
DELIMITER ; |