163 lines
6.2 KiB
Plaintext
163 lines
6.2 KiB
Plaintext
DELIMITER //
|
|
|
|
CREATE OR REPLACE PROCEDURE zen_create_json_comps_others_view(
|
|
IN p_uuid VARCHAR(100),
|
|
IN p_FieldObject VARCHAR(100),
|
|
IN p_tblName VARCHAR(100),
|
|
IN p_FieldName VARCHAR(100),
|
|
IN p_FieldCN NVARCHAR(100),
|
|
IN p_fielddefault VARCHAR(100),
|
|
IN p_FieldDS VARCHAR(2),
|
|
IN p_FieldCheckNull VARCHAR(2),
|
|
IN p_query_type VARCHAR(1),
|
|
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_blob_data TEXT;
|
|
DECLARE v_view_blob TEXT;
|
|
DECLARE v_comps TEXT;
|
|
DECLARE v_field_df VARCHAR(800);
|
|
DECLARE v_gridType VARCHAR(100);
|
|
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_ip = '${ls:base_ip}';
|
|
SET v_db = '${ls:base_db}';
|
|
|
|
-- for View Component
|
|
SET v_view_blob = '';
|
|
SET v_gridType = 'static'; -- text(text 在 FromView 時, label 會不顯示)
|
|
|
|
IF LOCATE('date', p_FieldObject) > 0 THEN
|
|
SET v_gridType = 'static-date';
|
|
ELSEIF LOCATE('image', p_FieldObject) > 0 THEN
|
|
SET v_gridType = 'image';
|
|
SET v_view_blob = CONCAT(' "enlargeAble": true,', v_crlf);
|
|
ELSEIF p_FieldObject = 'input-file' THEN
|
|
SET v_gridType = p_FieldObject;
|
|
SET v_view_blob = CONCAT(' "disabled": true,', v_crlf);
|
|
ELSEIF p_FieldObject = 'select' THEN
|
|
SET v_gridType = 'select';
|
|
SET v_view_blob = CONCAT(
|
|
' "source": {', v_crlf,
|
|
' "method": "post",', v_crlf,
|
|
' "url": "', v_ip, '/xapi/v2/', v_db, '/get_keyvalue/8/",', v_crlf,
|
|
' "data": {', v_crlf,
|
|
' "para01": "', p_tblName, '",', v_crlf,
|
|
' "para02": "', p_FieldName, '"', v_crlf,
|
|
' },', v_crlf,
|
|
' "dataType": "form"', v_crlf,
|
|
' },', v_crlf,
|
|
' "disabled": true,', v_crlf
|
|
);
|
|
ELSEIF p_FieldObject = 'options' THEN
|
|
-- option 是特殊的 select, 但還是 select
|
|
SET v_gridType = 'select';
|
|
SET v_view_blob = zen_get_keyvalue(p_tblName, p_FieldName);
|
|
SET v_view_blob = CONCAT(' "disabled": true,', v_crlf, v_view_blob);
|
|
ELSEIF p_FieldObject = 'radios' THEN
|
|
-- option 是特殊的 select, 但還是 select
|
|
SET v_gridType = p_FieldObject;
|
|
SET v_view_blob = zen_get_keyvalue(p_tblName, p_FieldName);
|
|
SET v_view_blob = CONCAT(' "disabled": true,', v_crlf, v_view_blob);
|
|
ELSEIF p_FieldObject = 'mapping' THEN
|
|
-- mapping 是特殊的 select, 但還是 select
|
|
SET v_gridType = 'static-mapping';
|
|
SET v_view_blob = zen_get_mapping(p_tblName, p_FieldName);
|
|
SET v_view_blob = CONCAT(' "disabled": true,', v_crlf, v_view_blob);
|
|
ELSEIF p_FieldObject = 'switch' THEN
|
|
SET v_gridType = 'switch';
|
|
SET v_view_blob = CONCAT(
|
|
' "trueValue": "Y",', v_crlf,
|
|
' "falseValue": "N",', v_crlf,
|
|
' "disabled": true,', v_crlf,
|
|
v_view_blob
|
|
);
|
|
ELSEIF p_FieldObject = 'checkbox' THEN
|
|
SET v_gridType = 'checkbox';
|
|
SET v_view_blob = CONCAT(
|
|
' "trueValue": "Y",', v_crlf,
|
|
' "falseValue": "N",', v_crlf,
|
|
' "disabled": true,', v_crlf,
|
|
v_view_blob
|
|
);
|
|
ELSEIF p_FieldObject = 'textarea' THEN
|
|
SET v_gridType = 'textarea';
|
|
SET v_view_blob = CONCAT(' "disabled": true,', v_crlf, v_view_blob);
|
|
ELSEIF p_FieldObject = 'hidden' THEN
|
|
SET v_gridType = 'hidden';
|
|
ELSEIF p_FieldObject = 'progress' THEN
|
|
SET v_gridType = 'static-progress';
|
|
-- 如果是 uuid, View 時要改為 qr-code
|
|
ELSEIF p_FieldObject = 'uuid' THEN
|
|
-- 多加入 fieldfm 的判斷 20240309 Michael
|
|
IF IFNULL(p_fieldfm, '') = '' THEN
|
|
SET v_gridType = 'static';
|
|
SET v_view_blob = CONCAT(' "visible": false,', v_crlf, v_view_blob);
|
|
ELSE
|
|
SET v_gridType = p_fieldfm;
|
|
END IF;
|
|
ELSE
|
|
-- 在 view page, 應該都要加 disable
|
|
SET v_view_blob = CONCAT(' "disabled": true,', v_crlf, v_view_blob);
|
|
END IF;
|
|
|
|
-- 新增數字靠右的機制
|
|
SET v_field_df = '';
|
|
|
|
IF (p_FieldObject = 'input-number') THEN
|
|
-- 讀取設定
|
|
IF IFNULL(p_fieldfm, '') = '' THEN
|
|
SET p_fieldfm = 'd0';
|
|
END IF;
|
|
|
|
SET p_fieldfm = CONCAT('"${ls:sys@', p_fieldfm, '}"');
|
|
|
|
SET v_field_df = CONCAT(
|
|
' "align": "right",', v_crlf,
|
|
' "precision": ', p_fieldfm, ',', v_crlf
|
|
);
|
|
ELSEIF p_FieldObject = 'input-date' THEN
|
|
SET v_field_df = CONCAT(' "format": "YYYY-MM-DD",', v_crlf);
|
|
END IF;
|
|
|
|
IF p_FieldObject = 'qr-code' THEN
|
|
SET v_comps = CONCAT(
|
|
' {', v_crlf,
|
|
' "type": "', p_FieldObject, '",', v_crlf,
|
|
' "codeSize": 128,', v_crlf,
|
|
' "value": "${', p_FieldName, '}"', v_crlf,
|
|
' }'
|
|
);
|
|
ELSE
|
|
SET v_comps = CONCAT(
|
|
' {', v_crlf,
|
|
' "type": "', v_gridType, '",', v_crlf,
|
|
' "name": "', p_FieldName, '",', v_crlf,
|
|
v_field_df,
|
|
v_view_blob,
|
|
' "label": "', p_FieldCN, '"', v_crlf,
|
|
' }'
|
|
);
|
|
END IF;
|
|
|
|
UPDATE zen_wizard_jsondata SET json_view = v_comps WHERE uuid = p_uuid AND rowid = p_rowid;
|
|
END //
|
|
|
|
DELIMITER ; |