first commit
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
DELIMITER //
|
||||
|
||||
CREATE OR REPLACE PROCEDURE zen_create_json_comps_cycles(
|
||||
IN p_uuid VARCHAR(100),
|
||||
IN p_FieldObject VARCHAR(100),
|
||||
IN p_FieldName VARCHAR(100),
|
||||
IN p_FieldCN NVARCHAR(100),
|
||||
IN p_rowid INT
|
||||
)
|
||||
/*
|
||||
function : amis Wizard 產生 json UI 的核心程式(每個 Component 有各自的 json UI 定義)
|
||||
description: 本段 sp 主要是設定 cycle 週期性類元件 的 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_code_id VARCHAR(600);
|
||||
DECLARE v_cnt INT;
|
||||
|
||||
DECLARE v_blob_data TEXT;
|
||||
DECLARE v_field_df TEXT;
|
||||
DECLARE v_required TEXT;
|
||||
DECLARE v_crlf VARCHAR(2);
|
||||
|
||||
DECLARE v_init_api TEXT;
|
||||
DECLARE v_pos , v_x INT;
|
||||
DECLARE v_tmp1 VARCHAR(100);
|
||||
DECLARE v_tmp2 TEXT;
|
||||
DECLARE v_tmp3 VARCHAR(1000);
|
||||
DECLARE v_frequency VARCHAR(100);
|
||||
DECLARE v_FieldWidth VARCHAR(100);
|
||||
DECLARE v_fld_date VARCHAR(20);
|
||||
DECLARE v_fld_time VARCHAR(20);
|
||||
DECLARE v_fld_last VARCHAR(10);
|
||||
|
||||
DECLARE v_visibleOn VARCHAR(100);
|
||||
DECLARE v_vKey VARCHAR(100);
|
||||
DECLARE v_vVal VARCHAR(100);
|
||||
|
||||
-- 通用寫法
|
||||
SET v_crlf = CONCAT(CHAR(13), CHAR(10));
|
||||
SET v_blob_data = '';
|
||||
SET v_field_df = '';
|
||||
SET v_required = '';
|
||||
|
||||
SET v_frequency = 'cal_repeated_flag';
|
||||
|
||||
-- Insert
|
||||
-- 以下和週期性設定元件相關 20230819 Michael
|
||||
IF p_FieldObject = 'cycle-frequency' THEN
|
||||
SET v_comps = CONCAT(
|
||||
' {', v_crlf,
|
||||
' "label": "', p_FieldCN, '",', v_crlf,
|
||||
' "type": "radios",', v_crlf,
|
||||
' "name": "', p_FieldName, '",', v_crlf,
|
||||
' "inline": true,', v_crlf,
|
||||
' "value": "none",', v_crlf,
|
||||
' "required": true,', v_crlf,
|
||||
' "options": [', v_crlf,
|
||||
' {', v_crlf,
|
||||
' "label": "不重複",', v_crlf,
|
||||
' "value": "none"', v_crlf,
|
||||
' },', v_crlf,
|
||||
' {', v_crlf,
|
||||
' "label": "每天",', v_crlf,
|
||||
' "value": "day"', v_crlf,
|
||||
' },', v_crlf,
|
||||
' {', v_crlf,
|
||||
' "label": "每週",', v_crlf,
|
||||
' "value": "week"', v_crlf,
|
||||
' },', v_crlf,
|
||||
' {', v_crlf,
|
||||
' "label": "每月",', v_crlf,
|
||||
' "value": "month"', v_crlf,
|
||||
' }', v_crlf,
|
||||
' ]', v_crlf,
|
||||
' }'
|
||||
);
|
||||
ELSEIF p_FieldObject = 'cycle-weeks' THEN
|
||||
SET v_comps = CONCAT(
|
||||
' {', v_crlf,
|
||||
' "label": "', p_FieldCN, '",', v_crlf,
|
||||
' "type": "button-group-select",', v_crlf,
|
||||
' "name": "', p_FieldName, '",', v_crlf,
|
||||
' "size": "md",', v_crlf,
|
||||
' "visibleOn": "this.', IFNULL(v_frequency, ''), ' == \\"week\\"",', v_crlf,
|
||||
' "clearable": true,', v_crlf,
|
||||
' "multiple": true,', v_crlf,
|
||||
' "extractValue": true,', v_crlf,
|
||||
' "maxLength": 7,', v_crlf,
|
||||
' "options": [', v_crlf,
|
||||
' {', v_crlf,
|
||||
' "label": "週一",', v_crlf,
|
||||
' "value": "2"', v_crlf,
|
||||
' },', v_crlf,
|
||||
' {', v_crlf,
|
||||
' "label": "週二",', v_crlf,
|
||||
' "value": "3"', v_crlf,
|
||||
' },', v_crlf,
|
||||
' {', v_crlf,
|
||||
' "label": "週三",', v_crlf,
|
||||
' "value": "4"', v_crlf,
|
||||
' },', v_crlf,
|
||||
' {', v_crlf,
|
||||
' "label": "週四",', v_crlf,
|
||||
' "value": "5"', v_crlf,
|
||||
' },', v_crlf,
|
||||
' {', v_crlf,
|
||||
' "label": "週五",', v_crlf,
|
||||
' "value": "6"', v_crlf,
|
||||
' },', v_crlf,
|
||||
' {', v_crlf,
|
||||
' "label": "週六",', v_crlf,
|
||||
' "value": "7"', v_crlf,
|
||||
' },', v_crlf,
|
||||
' {', v_crlf,
|
||||
' "label": "周日",', v_crlf,
|
||||
' "value": "1"', v_crlf,
|
||||
' }', v_crlf,
|
||||
' ]', v_crlf,
|
||||
' }'
|
||||
);
|
||||
ELSEIF p_FieldObject = 'cycle-months' THEN
|
||||
SET v_x = 1;
|
||||
SET v_tmp2 = '';
|
||||
|
||||
WHILE v_x <= 31 DO
|
||||
SET v_tmp2 = CONCAT(
|
||||
v_tmp2,
|
||||
' {', v_crlf,
|
||||
' "value": ', v_x, ',', v_crlf,
|
||||
' "label": "', IF(v_x < 10, '0', ''), v_x, '"', v_crlf,
|
||||
' }', IF(v_x = 31, '', ','), v_crlf
|
||||
);
|
||||
SET v_x = v_x + 1;
|
||||
END WHILE;
|
||||
|
||||
SET v_comps = CONCAT(
|
||||
' {', v_crlf,
|
||||
' "label": "', p_FieldCN, '",', v_crlf,
|
||||
' "type": "list-select",', v_crlf,
|
||||
' "name": "', p_FieldName, '",', v_crlf,
|
||||
' "size": "md",', v_crlf,
|
||||
' "visibleOn": "this.', IFNULL(v_frequency, ''), ' == \\"month\\"",', v_crlf,
|
||||
' "maxLength": 31,', v_crlf,
|
||||
' "clearable": true,', v_crlf,
|
||||
' "multiple": true,', v_crlf,
|
||||
' "extractValue": true,', v_crlf,
|
||||
' "options": [', v_crlf,
|
||||
v_tmp2,
|
||||
' ]', v_crlf,
|
||||
' }'
|
||||
);
|
||||
ELSEIF p_FieldObject IN ('cycle-startdate', 'cycle-enddate') THEN
|
||||
SELECT visibleOn INTO v_visibleOn FROM zen_wizard_jsondata WHERE uuid = p_uuid AND rowid = p_rowid;
|
||||
|
||||
-- 動態顯式否
|
||||
IF IFNULL(v_visibleOn, '') <> '' THEN
|
||||
SET v_pos = LOCATE(',', v_visibleOn);
|
||||
IF v_pos > 0 THEN
|
||||
SET v_vKey = SUBSTRING(v_visibleOn, 1, v_pos - 1);
|
||||
SET v_vVal = SUBSTRING(v_visibleOn, v_pos + 1, 100);
|
||||
END IF;
|
||||
END IF;
|
||||
|
||||
SET v_comps = CONCAT(
|
||||
' {', v_crlf,
|
||||
' "type": "input-date",', v_crlf,
|
||||
' "name": "', p_FieldName, '",', v_crlf,
|
||||
' "label": "', p_FieldCN, '",', v_crlf,
|
||||
' "visibleOn": "this.', v_vKey, ' != \\"', v_vVal, '\\"",', v_crlf,
|
||||
' "format": "YYYY-MM-DDTHH:mm:ss.SSSZ"', v_crlf,
|
||||
' }', v_crlf
|
||||
);
|
||||
END IF;
|
||||
|
||||
SET v_json_insert = v_comps;
|
||||
SET v_json_update = v_comps;
|
||||
SET v_json_view = v_comps;
|
||||
|
||||
-- Grid View 內如果要顯示, 應該只能用 text
|
||||
SET v_json_gridview = CONCAT(
|
||||
' {', v_crlf,
|
||||
' "type": "text",', v_crlf,
|
||||
' "name": "', p_FieldName, '",', v_crlf,
|
||||
' "label": "', p_FieldCN, '"', v_crlf,
|
||||
' }'
|
||||
);
|
||||
|
||||
-- 寫入暫存 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_gridview = v_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;
|
||||
END //
|
||||
|
||||
DELIMITER ;
|
||||
Reference in New Issue
Block a user