first commit

This commit is contained in:
DATAEXPRESS\4734
2026-02-06 14:44:08 +08:00
commit 3b3e190726
42 changed files with 5385 additions and 0 deletions
+155
View File
@@ -0,0 +1,155 @@
DELIMITER //
CREATE OR REPLACE PROCEDURE zen_create_json_comps_others_quickedit(
IN p_uuid VARCHAR(100),
IN p_FunctionTag VARCHAR(100),
IN p_FieldObject VARCHAR(100),
IN p_tblName VARCHAR(100),
IN p_pk VARCHAR(100),
IN p_FieldName VARCHAR(100),
IN p_FieldCN NVARCHAR(100),
IN p_query_type VARCHAR(1),
IN p_picker_tag VARCHAR(100),
IN p_FieldSH VARCHAR(1),
IN p_required VARCHAR(100),
IN p_fieldfm VARCHAR(100),
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_comps TEXT;
DECLARE v_ip VARCHAR(200);
DECLARE v_db VARCHAR(200);
DECLARE v_tmp2, v_tmp3 VARCHAR(800);
DECLARE v_gridType VARCHAR(100);
DECLARE v_blob_data TEXT;
DECLARE v_field_df TEXT;
DECLARE v_crlf VARCHAR(2);
DECLARE v_qEdit TEXT;
DECLARE v_cnt INT;
SET v_crlf = CONCAT(CHAR(13), CHAR(10));
SET v_ip = '${ls:base_ip}';
SET v_db = '${ls:base_db}';
-- for SingleGrid (Use quitEdit to Edit)
-- PK 不得編輯, 要判斷 required
SET v_qEdit = '';
-- 检查是否为PK字段
SELECT COUNT(*) INTO v_cnt FROM (
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(p_pk, ',', numbers.n), ',', -1) AS col
FROM (
SELECT 1 AS n UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL
SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL
SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10
) numbers
WHERE numbers.n <= LENGTH(p_pk) - LENGTH(REPLACE(p_pk, ',', '')) + 1
) AS split_pk
WHERE col = p_FieldName;
IF v_cnt <= 0 THEN
SET v_gridType = 'text';
IF (p_FieldObject = 'select' OR p_FieldObject = 'options-add' OR p_FieldObject = 'options') THEN
SET v_gridType = 'text';
SET v_qEdit = zen_get_keyvalue(p_tblName, p_FieldName);
-- 新增允許臨時再前端新增輸入的選項 2022-10-01 Michael
IF p_FieldObject = 'options-add' THEN
SET v_qEdit = CONCAT(
' "creatable": true,', v_crlf,
' "addControls": [', v_crlf,
' {', v_crlf,
' "type": "text",', v_crlf,
' "name": "label",', v_crlf,
' "label": "選項標題"', v_crlf,
' },', v_crlf,
' {', v_crlf,
' "type": "text",', v_crlf,
' "name": "value",', v_crlf,
' "label": "選項值"', v_crlf,
' }', v_crlf,
' ],', v_crlf,
v_qEdit
);
END IF;
-- option 是特殊的 select, 但還是 select
SET p_FieldObject = 'select';
ELSEIF (p_FieldObject = 'radios') THEN
SET v_gridType = 'text';
SET v_qEdit = zen_get_keyvalue(p_tblName, p_FieldName);
ELSEIF (p_FieldObject = 'picker') THEN
-- 待測試 2023/03/17(在 quickEdit 模式時,也能開窗查詢)
SET v_gridType = 'text';
SET v_qEdit = zen_picker(p_picker_tag, p_FieldName, p_FieldCN, 'R', v_ip, v_db, p_FunctionTag);
ELSEIF (p_FieldObject = 'input-number') THEN
SET v_gridType = 'text';
-- 讀取設定
IF IFNULL(p_fieldfm, '') = '' THEN
SET p_fieldfm = 'd0';
END IF;
SET p_fieldfm = CONCAT('"${ls:sys@', p_fieldfm, '}"');
SET v_qEdit = CONCAT(
' "align": "right",', v_crlf,
' "precision": ', p_fieldfm, ','
);
ELSEIF (p_FieldObject = 'input-datetime') THEN
SET v_qEdit = CONCAT(v_qEdit, ' "format": "YYYY-MM-DD HH:mm:ss.SSS",', v_crlf);
SET v_gridType = 'static-date';
ELSEIF (p_FieldObject = 'input-date') THEN
SET v_qEdit = CONCAT(v_qEdit, ' "format": "YYYY-MM-DD",', v_crlf);
SET v_gridType = 'static-date';
ELSEIF (p_FieldObject = 'checkbox') THEN
SET v_qEdit = CONCAT(v_qEdit,
' "inputClassName": "p-0 w-6",', v_crlf,
' "trueValue": "Y",', v_crlf,
' "falseValue": "N",', v_crlf
);
SET v_gridType = 'text';
END IF;
SET v_qEdit = CONCAT(
' "quickEdit": {', v_crlf,
' "type": "', p_FieldObject, '",', v_crlf,
p_required,
v_qEdit, v_crlf,
' "mode": "inline"', v_crlf,
' },', v_crlf
);
ELSE
-- pk 設為唯獨
SET v_gridType = 'text';
END IF;
IF p_FieldSH = 'Y' THEN
SET v_comps = CONCAT(
' {', v_crlf,
' "type": "', v_gridType, '",', v_crlf,
' "name": "', p_FieldName, '",', v_crlf,
v_qEdit,
' "label": "', p_FieldCN, '"', v_crlf,
' }'
);
END IF;
UPDATE zen_wizard_jsondata SET json_quickedit = v_comps WHERE uuid = p_uuid AND rowid = p_rowid;
END //
DELIMITER ;