diff --git a/app/src/main/resources/application-local.yml b/app/src/main/resources/application-local.yml index d4943c4e..6002f7e1 100644 --- a/app/src/main/resources/application-local.yml +++ b/app/src/main/resources/application-local.yml @@ -8,8 +8,8 @@ spring: password: sql: init: - schema-locations: classpath:sql/h2/create_all_tables_ddl_v1.h2.sql - data-locations: classpath:sql/h2/init_data_for_test.sql + schema-locations: classpath:sql/h2/create_all_tables_ddl_v1.0.0.h2.sql + data-locations: classpath:sql/h2/init_data_for_test_v1.0.0.sql springdoc: api-docs: diff --git a/app/src/main/resources/sql/h2/create_all_tables_ddl_v1.h2.sql b/app/src/main/resources/sql/h2/create_all_tables_ddl_v1.0.0.h2.sql similarity index 100% rename from app/src/main/resources/sql/h2/create_all_tables_ddl_v1.h2.sql rename to app/src/main/resources/sql/h2/create_all_tables_ddl_v1.0.0.h2.sql diff --git a/app/src/main/resources/sql/h2/init_data_for_test.sql b/app/src/main/resources/sql/h2/init_data_for_test.sql deleted file mode 100644 index e7510f95..00000000 --- a/app/src/main/resources/sql/h2/init_data_for_test.sql +++ /dev/null @@ -1,178 +0,0 @@ -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (73, '2.4.2', '{\"zh_CN\":\"输入框\"}', 'ElInput', 'input', '通过鼠标或键盘输入字符', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"version\":\"2.4.2\",\"script\":\"https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs\",\"css\":\"https://unpkg.com/element-plus@2.4.2/dist/index.css\",\"dependencies\":null,\"exportName\":\"ElInput\", \"destructuring\": true}', '表单组件', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"输入框\"},\"icon\":\"input\",\"screenshot\":\"\",\"snippetName\":\"ElInput\",\"schema\":{}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"type\",\"size\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (74, '2.4.2', '{\"zh_CN\":\"按钮\"}', 'ElButton', 'button', '常用的操作按钮', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"version\":\"2.4.2\",\"script\":\"https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs\",\"css\":\"https://unpkg.com/element-plus@2.4.2/dist/index.css\",\"dependencies\":null,\"exportName\":\"ElButton\", \"destructuring\": true}', '基础组件', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"按钮\"},\"icon\":\"button\",\"screenshot\":\"\",\"snippetName\":\"ElButton\",\"schema\":{\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"按钮文本\"}}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"type\",\"size\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (75, '2.4.2', '{\"zh_CN\":\"表单\"}', 'ElForm', 'form', '表单包含 输入框, 单选框, 下拉选择, 多选框 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"version\":\"2.4.2\",\"script\":\"https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs\",\"css\":\"https://unpkg.com/element-plus@2.4.2/dist/index.css\",\"dependencies\":null,\"exportName\":\"ElForm\", \"destructuring\": true}', '表单组件', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"表单\"},\"icon\":\"form\",\"screenshot\":\"\",\"snippetName\":\"ElForm\",\"schema\":{\"children\":[{\"componentName\":\"ElFormItem\",\"props\":{\"label\":\"账号\",\"prop\":\"account\"},\"children\":[{\"componentName\":\"ElInput\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请输入账号\"}}]},{\"componentName\":\"ElFormItem\",\"props\":{\"label\":\"密码\",\"prop\":\"password\"},\"children\":[{\"componentName\":\"ElInput\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请输入密码\",\"type\":\"password\"}}]},{\"componentName\":\"ElFormItem\",\"props\":{},\"children\":[{\"componentName\":\"ElButton\",\"props\":{\"type\":\"primary\",\"style\":\"margin-right: 10px\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"提交\"}}]},{\"componentName\":\"ElButton\",\"props\":{\"type\":\"primary\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"重置\"}}]}]}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":[\"ElFormItem\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (76, '2.4.2', '{\"zh_CN\":\"表单子项\"}', 'ElFormItem', 'formItem', '表单包含 输入框, 单选框, 下拉选择, 多选框 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"version\":\"2.4.2\",\"script\":\"https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs\",\"css\":\"https://unpkg.com/element-plus@2.4.2/dist/index.css\",\"dependencies\":null,\"exportName\":\"ElFormItem\", \"destructuring\": true}', '表单组件', 'element-plus', NULL, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (77, '2.4.2', '{\"zh_CN\":\"表单\"}', 'ElTable', 'table', '用于展示多条结构类似的数据, 可对数据进行排序、筛选、对比或其他自定义操作', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"version\":\"2.4.2\",\"script\":\"https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs\",\"css\":\"https://unpkg.com/element-plus@2.4.2/dist/index.css\",\"dependencies\":null,\"exportName\":\"ElTable\", \"destructuring\": true}', '数据展示', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"表格\"},\"icon\":\"grid\",\"screenshot\":\"\",\"snippetName\":\"ElTable\",\"schema\":{\"props\":{\"data\":[{\"date\":\"2016-05-03\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"},{\"date\":\"2016-05-02\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"},{\"date\":\"2016-05-04\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"},{\"date\":\"2016-05-01\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"}],\"columns\":[{\"type\":\"index\"},{\"label\":\"Date\",\"prop\":\"date\"},{\"label\":\"Name\",\"prop\":\"name\"},{\"label\":\"Address\",\"prop\":\"address\"}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":[\"ElTableColumn\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (78, '2.4.2', '{\"zh_CN\":\"表单\"}', 'ElTableColumn', 'table', '用于展示多条结构类似的数据, 可对数据进行排序、筛选、对比或其他自定义操作', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"version\":\"2.4.2\",\"script\":\"https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs\",\"css\":\"https://unpkg.com/element-plus@2.4.2/dist/index.css\",\"dependencies\":null,\"exportName\":\"ElTableColumn\", \"destructuring\": true}', '表单组件', 'element-plus', NULL, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (79, '2.4.2', '{\"zh_CN\":\"走马灯子项\"}', 'TinyCarouselItem', 'carouselitem', '常用于一组图片或卡片轮播,当内容空间不足时,可以用走马灯的形式进行收纳,进行轮播展现。', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CarouselItem\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', '容器组件', 2, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (80, '2.4.2', '{\"zh_CN\":\"走马灯\"}', 'TinyCarousel', 'carousel', '常用于一组图片或卡片轮播,当内容空间不足时,可以用走马灯的形式进行收纳,进行轮播展现。', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Carousel\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', '容器组件', 2, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"clickCapture\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyCarouselItem\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (81, '2.4.2', '{\"zh_CN\":\"提示框\"}', 'a', 'link', '链接', '', '', '', '', 'proCode', '{}', 'component', 'basic', 7, '[{\"name\":{\"zh_CN\":\"链接\"},\"icon\":\"link\",\"screenshot\":\"\",\"snippetName\":\"a\",\"schema\":{\"componentName\":\"a\",\"children\":\"链接\"}}]', NULL, '{\"loop\":true,\"condition\":true,\"slots\":[],\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[]},\"contextMenu\":{\"actions\":[],\"disable\":[]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (82, '2.4.2', '{\"zh_CN\":\"标题\"}', '[h1, h2, h3, h4, h5, h6]', 'h16', '标题', '', '', '', '', 'proCode', '{}', 'component', 'html', 20, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (83, '2.4.2', '{\"zh_CN\":\"段落\"}', 'p', 'paragraph', '段落', '', '', '', '', 'proCode', '{}', 'component', 'basic', 30, '[{\"name\":{\"zh_CN\":\"段落\"},\"icon\":\"paragraph\",\"screenshot\":\"\",\"snippetName\":\"p\",\"schema\":{\"componentName\":\"p\",\"children\":\"TinyEngine 前端可视化设计器致力于通过友好的用户交互提升业务应用的开发效率。\"}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[]},\"contextMenu\":{\"actions\":[],\"disable\":[]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (84, '2.4.2', '{\"zh_CN\":\"输入框\"}', 'input', 'input', '输入框', '', '', '', '', 'proCode', '{}', 'component', 'html', 40, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (85, '2.4.2', '{\"zh_CN\":\"视频\"}', 'video', 'video', '视频', '', '', '', '', 'proCode', '{}', 'component', 'basic', 50, '[{\"name\":{\"zh_CN\":\"视频\"},\"icon\":\"video\",\"screenshot\":\"\",\"snippetName\":\"video\",\"schema\":{\"componentName\":\"video\",\"props\":{\"src\":\"img/webNova.jpg\",\"width\":\"200\",\"height\":\"100\",\"style\":\"border:1px solid #ccc\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[]},\"contextMenu\":{\"actions\":[],\"disable\":[]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (86, '2.4.2', '{\"zh_CN\":\"Img\"}', 'Img', 'Image', '图片', NULL, '', '', '', 'proCode', '{}', 'component', 'html', 60, NULL, NULL, NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (87, '2.4.2', '{\"zh_CN\":\"Button\"}', 'button', 'button', '按钮', NULL, '', '', '', 'proCode', '{}', 'component', 'html', 70, NULL, NULL, '{\"isContainer\":true}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (88, '2.4.2', '{\"zh_CN\":\"表格\"}', 'table', 'table', '表格', NULL, '', '', '', 'proCode', '{}', 'component', 'html', 80, NULL, NULL, NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (89, '2.4.2', '{\"zh_CN\":\"表格单元格\"}', 'td', 'td', '表格单元格', NULL, '', '', '', 'proCode', '{}', 'component', 'html', 90, NULL, NULL, NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (90, '2.4.2', '{\"zh_CN\":\"表单\"}', 'form', 'form', '表单', NULL, '', '', '', 'proCode', '{}', 'component', 'html', 100, NULL, NULL, '{\"isContainer\":true}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (91, '2.4.2', '{\"zh_CN\":\"表单标签\"}', 'label', 'label', '表单标签', NULL, '', '', '', 'proCode', '{}', 'component', 'html', 110, NULL, NULL, NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (92, '2.4.2', '{\"zh_CN\":\"按钮组\"}', 'TinyButtonGroup', 'buttonGroup', '以按钮组的方式出现,常用于多项类似操作', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"ButtonGroup\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'basic', 2, '[{\"name\":{\"zh_CN\":\"互斥按钮组\"},\"icon\":\"buttons\",\"screenshot\":\"\",\"snippetName\":\"TinyButtonGroup\",\"schema\":{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"Button1\",\"value\":\"1\"},{\"text\":\"Button2\",\"value\":\"2\"},{\"text\":\"Button3\",\"value\":\"3\"}],\"modelValue\":\"1\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (93, '2.4.2', '{\"zh_CN\":\"row\"}', 'TinyRow', 'row', '定义 Layout 的行配置信息', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Row\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 5, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (94, '2.4.2', '{\"zh_CN\":\"表单\"}', 'TinyForm', 'form', '由按钮、输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Form\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 5, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (95, '2.4.2', '{\"zh_CN\":\"表单项\"}', 'TinyFormItem', 'formitem', '由按钮、输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"FormItem\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 12, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":[\"TinyForm\"],\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label\",\"rules\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (96, '2.4.2', '{\"zh_CN\":\"col\"}', 'TinyCol', 'col', '列配置信息', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Col\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 2, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label\",\"rules\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (97, '2.4.2', '{\"zh_CN\":\"按钮\"}', 'TinyButton', 'button', '常用的操作按钮,提供包括默认按钮、图标按钮、图片按钮、下拉按钮等类型', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Button\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'basic', 2, '[{\"name\":{\"zh_CN\":\"按钮\"},\"icon\":\"button\",\"screenshot\":\"\",\"snippetName\":\"TinyButton\",\"schema\":{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"按钮文案\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"text\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (98, '2.4.2', '{\"zh_CN\":\"输入框\"}', 'TinyInput', 'input', '通过鼠标或键盘输入字符', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Input\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 1, '[{\"name\":{\"zh_CN\":\"输入框\"},\"icon\":\"input\",\"screenshot\":\"\",\"snippetName\":\"TinyInput\",\"schema\":{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"value\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (99, '2.4.2', '{\"zh_CN\":\"单选\"}', 'TinyRadio', 'radio', '用于配置不同场景的选项,在一组备选项中进行单选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Radio\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 3, '[{\"name\":{\"zh_CN\":\"单选\"},\"icon\":\"radio\",\"screenshot\":\"\",\"snippetName\":\"TinyRadio\",\"schema\":{\"componentName\":\"TinyRadio\",\"props\":{\"label\":\"1\",\"text\":\"单选文本\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"visible\",\"width\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (100, '2.4.2', '{\"zh_CN\":\"下拉框\"}', 'TinySelect', 'select', 'Select 选择器是一种通过点击弹出下拉列表展示数据并进行选择的 UI 组件', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Select\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 8, '[{\"name\":{\"zh_CN\":\"下拉框\"},\"icon\":\"select\",\"screenshot\":\"\",\"snippetName\":\"TinySelect\",\"schema\":{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"multiple\",\"options\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (101, '2.4.2', '{\"zh_CN\":\"开关\"}', 'TinySwitch', 'switch', 'Switch 在两种状态间切换选择', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Switch\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 9, '[{\"name\":{\"zh_CN\":\"开关\"},\"icon\":\"switch\",\"screenshot\":\"\",\"snippetName\":\"TinySwitch\",\"schema\":{\"componentName\":\"TinySwitch\",\"props\":{\"modelValue\":\"\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"mini\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (102, '2.4.2', '{\"zh_CN\":\"搜索框\"}', 'TinySearch', 'search', '指定条件对象进行搜索数据', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Search\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'basic', 2, '[{\"name\":{\"zh_CN\":\"搜索框\"},\"icon\":\"search\",\"screenshot\":\"\",\"snippetName\":\"TinySearch\",\"schema\":{\"componentName\":\"TinySearch\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"输入关键词\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"clearable\",\"mini\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (103, '2.4.2', '{\"zh_CN\":\"复选框\"}', 'TinyCheckbox', 'checkbox', '用于配置不同场景的选项,提供用户可在一组选项中进行多选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Checkbox\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 4, '[{\"name\":{\"zh_CN\":\"复选框\"},\"icon\":\"checkbox\",\"screenshot\":\"\",\"snippetName\":\"TinyCheckbox\",\"schema\":{\"componentName\":\"TinyCheckbox\",\"props\":{\"text\":\"复选框文案\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"border\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (104, '2.4.2', '{\"zh_CN\":\"复选按钮\"}', 'TinyCheckboxButton', 'checkboxbutton', '用于配置不同场景的选项,提供用户可在一组选项中进行多选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CheckboxButton\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 1, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"text\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (105, '2.4.2', '{\"zh_CN\":\"复选按钮组\"}', 'TinyCheckboxGroup', 'checkboxgroup', '用于配置不同场景的选项,提供用户可在一组选项中进行多选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CheckboxGroup\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 2, '[{\"name\":{\"zh_CN\":\"复选框组\"},\"icon\":\"checkboxs\",\"screenshot\":\"\",\"snippetName\":\"TinyCheckboxGroup\",\"schema\":{\"componentName\":\"TinyCheckboxGroup\",\"props\":{\"modelValue\":[\"name1\",\"name2\"],\"type\":\"checkbox\",\"options\":[{\"text\":\"复选框1\",\"label\":\"name1\"},{\"text\":\"复选框2\",\"label\":\"name2\"},{\"text\":\"复选框3\",\"label\":\"name3\"}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"type\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (106, '2.4.2', '{\"zh_CN\":\"对话框\"}', 'TinyDialogBox', 'dialogbox', '模态对话框,在浮层中显示,引导用户进行相关操作。', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"DialogBox\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'data-display', 4, '[{\"name\":{\"zh_CN\":\"对话框\"},\"icon\":\"dialogbox\",\"screenshot\":\"\",\"snippetName\":\"TinyDialogBox\",\"schema\":{\"componentName\":\"TinyDialogBox\",\"props\":{\"visible\":true,\"show-close\":true,\"title\":\"dialogBox title\"},\"children\":[{\"componentName\":\"div\"}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":true,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\".tiny-dialog-box\",\"shortcuts\":{\"properties\":[\"visible\",\"width\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (107, '2.4.2', '{\"zh_CN\":\"标签页\"}', 'TinyTabs', 'tabs', '分隔内容上有关联但属于不同类别的数据集合', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Tabs\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'navigation', 10, '[{\"name\":{\"zh_CN\":\"标签页\"},\"icon\":\"tabs\",\"screenshot\":\"\",\"snippetName\":\"TinyTabs\",\"schema\":{\"componentName\":\"TinyTabs\",\"props\":{\"modelValue\":\"first\"},\"children\":[{\"componentName\":\"TinyTabItem\",\"props\":{\"title\":\"标签页1\",\"name\":\"first\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"}}]},{\"componentName\":\"TinyTabItem\",\"props\":{\"title\":\"标签页2\",\"name\":\"second\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"}}]}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"clickCapture\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyTabItem\"],\"parentWhitelist\":[],\"descendantBlacklist\":[],\"ancestorWhitelist\":[]},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"size\",\"tab-style\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (108, '2.4.2', '{\"zh_CN\":\"tab页签\"}', 'TinyTabItem', 'tabitem', 'tab 标签页', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"TabItem\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 2, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":[\"TinyTab\"],\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"name\",\"title\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (109, '2.4.2', '{\"zh_CN\":\"面包屑\"}', 'TinyBreadcrumb', 'breadcrumb', '告诉访问者他们目前在网站中的位置以及如何返回', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Select\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'navigation', 1, '[{\"name\":{\"zh_CN\":\"面包屑\"},\"icon\":\"breadcrumb\",\"screenshot\":\"\",\"snippetName\":\"TinyBreadcrumb\",\"schema\":{\"componentName\":\"TinyBreadcrumb\",\"props\":{\"options\":[{\"to\":\"{ path: \'/\' }\",\"label\":\"首页\"},{\"to\":\"{ path: \'/breadcrumb\' }\",\"label\":\"产品\"},{\"replace\":\"true\",\"label\":\"软件\"}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"clickCapture\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyBreadcrumbItem\"],\"parentWhitelist\":[],\"descendantBlacklist\":[],\"ancestorWhitelist\":[]},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"separator\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (110, '2.4.2', '{\"zh_CN\":\"面包屑项\"}', 'TinyBreadcrumbItem', 'breadcrumb', '', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"BreadcrumbItem\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 1, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":[\"TinyBreadcrumb\"],\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"to\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (111, '2.4.2', '{\"zh_CN\":\"折叠面板\"}', 'TinyCollapse', 'collapse', '内容区可指定动态页面或自定义 html 等,支持展开收起操作', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Collapse\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'data-display', 3, '[{\"name\":{\"zh_CN\":\"折叠面板\"},\"icon\":\"collapse\",\"screenshot\":\"\",\"snippetName\":\"TinyCollapse\",\"schema\":{\"componentName\":\"TinyCollapse\",\"props\":{\"modelValue\":\"collapse1\"},\"children\":[{\"componentName\":\"TinyCollapseItem\",\"props\":{\"name\":\"collapse1\",\"title\":\"折叠项1\"},\"children\":[{\"componentName\":\"div\"}]},{\"componentName\":\"TinyCollapseItem\",\"props\":{\"name\":\"collapse2\",\"title\":\"折叠项2\"},\"children\":[{\"componentName\":\"div\"}]},{\"componentName\":\"TinyCollapseItem\",\"props\":{\"name\":\"collapse3\",\"title\":\"折叠项3\"},\"children\":[{\"componentName\":\"div\"}]}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (112, '2.4.2', '{\"zh_CN\":\"折叠面板项\"}', 'TinyCollapseItem', 'collapseitem', '内容区可指定动态页面或自定义 html 等,支持展开收起操作', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CollapseItem\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 2, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (113, '2.4.2', '{\"zh_CN\":\"表格\"}', 'TinyGrid', 'grid', '提供了非常强大数据表格功能,可以展示数据列表,可以对数据列表进行选择、编辑等', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Grid\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'table', 2, '[{\"name\":{\"zh_CN\":\"表格\"},\"icon\":\"grid\",\"screenshot\":\"\",\"snippetName\":\"tinyGrid\",\"schema\":{\"componentName\":\"TinyGrid\",\"props\":{\"editConfig\":{\"trigger\":\"click\",\"mode\":\"cell\",\"showStatus\":true},\"columns\":[{\"type\":\"index\",\"width\":60},{\"type\":\"selection\",\"width\":60},{\"field\":\"employees\",\"title\":\"员工数\"},{\"field\":\"created_date\",\"title\":\"创建日期\"},{\"field\":\"city\",\"title\":\"城市\"}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司\",\"city\":\"福州\",\"employees\":800,\"created_date\":\"2014-04-30 00:56:00\",\"boole\":false},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"employees\":300,\"created_date\":\"2016-07-08 12:36:22\",\"boole\":true}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"sortable\",\"columns\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (114, '2.4.2', '{\"zh_CN\":\"分页\"}', 'TinyPager', 'pager', '当数据量过多时,使用分页分解数据,常用于 Grid 和 Repeater 组件', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Pager\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'table', 1, '[{\"name\":{\"zh_CN\":\"分页\"},\"icon\":\"pager\",\"screenshot\":\"\",\"snippetName\":\"TinyPager\",\"schema\":{\"componentName\":\"TinyPager\",\"props\":{\"layout\":\"total, sizes, prev, pager, next\",\"total\":100,\"pageSize\":10,\"currentPage\":1}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"currentPage\",\"total\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (115, '2.4.2', '{\"zh_CN\":\"弹出编辑\"}', 'TinyPopeditor', 'popEditor', '该组件只能在弹出的面板中选择数据,不能手动输入数据;弹出面板中显示为 Tree 组件或者 Grid 组件', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"PopEditor\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'data-display', 6, '[{\"name\":{\"zh_CN\":\"弹出编辑\"},\"icon\":\"popeditor\",\"screenshot\":\"\",\"snippetName\":\"TinyPopeditor\",\"schema\":{\"componentName\":\"TinyPopeditor\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"gridOp\":{\"columns\":[{\"field\":\"id\",\"title\":\"ID\",\"width\":40},{\"field\":\"name\",\"title\":\"名称\",\"showOverflow\":\"tooltip\"},{\"field\":\"province\",\"title\":\"省份\",\"width\":80},{\"field\":\"city\",\"title\":\"城市\",\"width\":80}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司\",\"city\":\"福州\",\"province\":\"福建\"},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"province\":\"广东\"},{\"id\":\"3\",\"name\":\"RFV有限责任公司\",\"city\":\"中山\",\"province\":\"广东\"},{\"id\":\"4\",\"name\":\"TGB科技有限公司\",\"city\":\"龙岩\",\"province\":\"福建\"},{\"id\":\"5\",\"name\":\"YHN科技有限公司\",\"city\":\"韶关\",\"province\":\"广东\"},{\"id\":\"6\",\"name\":\"WSX科技有限公司\",\"city\":\"黄冈\",\"province\":\"武汉\"}]}}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"modelValue\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (116, '2.4.2', '{\"zh_CN\":\"树\"}', 'TinyTree', 'tree', '可进行展示有父子层级的数据,支持选择,异步加载等功能。但不推荐用它来展示菜单,展示菜单推荐使用树菜单', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Tree\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'data-display', 12, '[{\"name\":{\"zh_CN\":\"树\"},\"icon\":\"tree\",\"screenshot\":\"\",\"snippetName\":\"TinyTree\",\"schema\":{\"componentName\":\"TinyTree\",\"props\":{\"data\":[{\"label\":\"一级 1\",\"children\":[{\"label\":\"二级 1-1\",\"children\":[{\"label\":\"三级 1-1-1\"}]}]},{\"label\":\"一级 2\",\"children\":[{\"label\":\"二级 2-1\",\"children\":[{\"label\":\"三级 2-1-1\"}]},{\"label\":\"二级 2-2\",\"children\":[{\"label\":\"三级 2-2-1\"}]}]}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"data\",\"show-checkbox\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (117, '2.4.2', '{\"zh_CN\":\"时间线\"}', 'TinyTimeLine', 'timeline', 'TimeLine 时间线', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"TimeLine\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'navigation', 3, '[{\"name\":{\"zh_CN\":\"时间线\"},\"icon\":\"timeline\",\"screenshot\":\"\",\"snippetName\":\"TinyTimeLine\",\"schema\":{\"componentName\":\"TinyTimeLine\",\"props\":{\"active\":\"2\",\"data\":[{\"name\":\"已下单\"},{\"name\":\"运输中\"},{\"name\":\"已签收\"}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"active\",\"data\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (118, '2.4.2', '{\"zh_CN\":\"文字提示框\"}', 'TinyTooltip', 'tooltip', '动态显示提示信息,一般通过鼠标事件进行响应;提供 warning、error、info、success 四种类型显示不同类别的信', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Tooltip\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'data-display', 11, '[{\"name\":{\"zh_CN\":\"文字提示框\"},\"icon\":\"tooltip\",\"screenshot\":\"\",\"snippetName\":\"TinyTooltip\",\"schema\":{\"componentName\":\"TinyTooltip\",\"props\":{\"content\":\"Top Left 提示文字\",\"placement\":\"top-start\",\"manual\":true,\"modelValue\":true},\"children\":[{\"componentName\":\"span\",\"children\":[{\"componentName\":\"div\",\"props\":{}}]},{\"componentName\":\"Template\",\"props\":{\"slot\":\"content\"},\"children\":[{\"componentName\":\"span\",\"children\":[{\"componentName\":\"div\",\"props\":{\"placeholder\":\"提示内容\"}}]}]}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":true,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"content\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (119, '2.4.2', '{\"zh_CN\":\"提示框\"}', 'TinyPopover', 'popover', 'Popover可通过对一个触发源操作触发弹出框,支持自定义弹出内容,延迟触发和渐变动画', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Popover\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'data-display', 7, '[{\"name\":{\"zh_CN\":\"提示框\"},\"icon\":\"popover\",\"screenshot\":\"\",\"snippetName\":\"TinyPopover\",\"schema\":{\"componentName\":\"TinyPopover\",\"props\":{\"width\":200,\"title\":\"弹框标题\",\"trigger\":\"manual\",\"modelValue\":true},\"children\":[{\"componentName\":\"Template\",\"props\":{\"slot\":\"reference\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"placeholder\":\"触发源\"}}]},{\"componentName\":\"Template\",\"props\":{\"slot\":\"default\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"placeholder\":\"提示内容\"}}]}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":true,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"visible\",\"width\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (120, '2.4.2', '{\"zh_CN\":\"日期选择\"}', 'TinyDatePicker', 'datepick', '用于输入或选择日期', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"DatePicker\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 1, '[{\"name\":{\"zh_CN\":\"日期选择\"},\"icon\":\"datepick\",\"screenshot\":\"\",\"snippetName\":\"TinyDatePicker\",\"schema\":{\"componentName\":\"TinyDatePicker\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"value\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (121, '2.4.2', '{\"zh_CN\":\"数字输入框\"}', 'TinyNumeric', 'numeric', '通过鼠标或键盘输入字符', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Numeric\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 1, '[{\"name\":{\"zh_CN\":\"数字输入框\"},\"icon\":\"numeric\",\"screenshot\":\"\",\"snippetName\":\"TinyNumeric\",\"schema\":{\"componentName\":\"TinyNumeric\",\"props\":{\"allow-empty\":true,\"placeholder\":\"请输入\",\"controlsPosition\":\"right\",\"step\":1}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"value\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); - - -INSERT INTO `t_block_history` (`id`, `ref_id`, `message`, `version`, `label`, `name`, `framework`, `content`, `assets`, `build_info`, `screenshot`, `path`, `description`, `tags`, `is_official`, `public`, `is_default`, `tiny_reserved`, `mode`, `platform_id`, `app_id`, `npm_name`, `i18n`, `content_blocks`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 1, '2.0.7', '2.0.7', 'BlockTest1a', 'BlockTest1a', 'Vue', '{\"state\":{},\"methods\":{},\"componentName\":\"Block\",\"fileName\":\"BlockTest1a\",\"css\":\"\",\"props\":{},\"children\":[{\"componentName\":\"TinyGrid\",\"props\":{\"editConfig\":{\"trigger\":\"click\",\"mode\":\"cell\",\"showStatus\":true},\"columns\":[{\"type\":\"index\",\"width\":60},{\"type\":\"selection\",\"width\":60},{\"field\":\"employees\",\"title\":\"员工数\"},{\"field\":\"created_date\",\"title\":\"创建日期\"},{\"field\":\"city\",\"title\":\"城市\"}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司\",\"city\":\"福州\",\"employees\":800,\"created_date\":\"2014-04-30 00:56:00\",\"boole\":false},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"employees\":300,\"created_date\":\"2016-07-08 12:36:22\",\"boole\":true}]},\"id\":\"9f544d43\"},{\"componentName\":\"div\",\"props\":{},\"id\":\"c3be6334\"},{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"人员\"},\"children\":[{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\"},\"id\":\"6a365365\"}],\"id\":\"22464422\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"密码\"},\"children\":[{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"type\":\"password\"},\"id\":\"55297132\"}],\"id\":\"c42655f5\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"\"},\"children\":[{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"提交\",\"type\":\"primary\",\"style\":\"margin-right: 10px\"},\"id\":\"521663e5\"},{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"重置\",\"type\":\"primary\"},\"id\":\"33153f15\"}],\"id\":\"31541a46\"}],\"id\":\"35a24114\"},{\"componentName\":\"TinyCarousel\",\"props\":{\"height\":\"180px\"},\"children\":[{\"componentName\":\"TinyCarouselItem\",\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"},\"id\":\"92546616\"}],\"id\":\"1b2d445c\",\"props\":{\"title\":\"选项卡\",\"name\":\"\"}},{\"componentName\":\"TinyCarouselItem\",\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"},\"id\":\"3a145148\"}],\"id\":\"36631533\",\"props\":{\"title\":\"选项卡\",\"name\":\"\"}}],\"id\":\"52426c25\"}],\"schema\":{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"collapse\":{\"number\":6,\"text\":{\"zh_CN\":\"显示更多\"}},\"content\":[]}],\"events\":{},\"slots\":{}},\"dataSource\":{},\"dependencies\":{\"scripts\":[{\"package\":\"@opentiny/vue\",\"version\":\"\",\"components\":{\"TinyGrid\":\"Grid\",\"TinyForm\":\"Form\",\"TinyFormItem\":\"FormItem\",\"TinyInput\":\"Input\",\"TinyButton\":\"Button\",\"TinyCarousel\":\"Carousel\",\"TinyCarouselItem\":\"CarouselItem\"}}],\"styles\":[]}}', '{\"material\":[],\"scripts\":[\"https://npm.onmicrosoft.cn/@opentiny-assets/tinyengine-alpha-block-blocktest1a-993@2.0.7/js\\\\web-component.umd.js\",\"https://npm.onmicrosoft.cn/@opentiny-assets/tinyengine-alpha-block-blocktest1a-993@2.0.7/js\\\\web-component.es.js\"],\"styles\":[]}', NULL, NULL, '我的分组', '区块', '[]', 0, 1, 0, 0, NULL, 1, 1, '@opentiny-assets/tinyengine-alpha-block-blocktest1a-993', '{\"en_US\":{\"lowcode.c257d5e8\":\"search\",\"lowcode.61c8ac8c\":\"dsdsa\",\"lowcode.f53187a0\":\"test\",\"lowcode.97ad00dd\":\"createMaterial\",\"lowcode.61dcef52\":\"sadasda\",\"lowcode.45f4c42a\":\"gfdgfd\",\"lowcode.c6f5a652\":\"fsdafds\"},\"zh_CN\":{\"lowcode.c257d5e8\":\"查询\",\"lowcode.61c8ac8c\":\"地方\",\"lowcode.f53187a0\":\"测试\",\"lowcode.97ad00dd\":\"创建物料资产包\",\"lowcode.61dcef52\":\"terterere\",\"lowcode.45f4c42a\":\"gdfgdf\",\"lowcode.c6f5a652\":\"fsdaf\"}}', NULL, '1', '1', '2024-10-16 19:19:54', '2024-10-16 19:19:54', '1', '1'); - -INSERT INTO `t_block_group` (`id`, `name`, `app_id`, `platform_id`, `description`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, '我的分组', 1, 1, '区块分组', '1', '1', '2024-10-16 19:15:53', '2024-10-16 19:15:53', '1', '1'); - -INSERT INTO `t_material_history` (`id`, `ref_id`, `version`, `content`, `name`, `npm_name`, `framework`, `assets_url`, `image_url`, `description`, `material_size`, `tgz_url`, `unzip_tgz_root_path_url`, `unzip_tgz_files`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 1, '1.0.8', '{}', 'materialstwo', '@opentiny/lowcode-alpha-material-materialstwo-1505', 'Vue', '{\"material\":[\"\"],\"scripts\":[\"\",\"\"],\"styles\":[]}', NULL, '1.0.8', NULL, NULL, NULL, NULL, '1', '1', '2024-10-16 19:28:53', '2024-10-16 19:28:53', '1', '1'); - -INSERT INTO `t_tenant` (`id`, `name_cn`, `name_en`, `description`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 'public', '公共租户', 'Default tenant for new user to explore.', '1', '1', '2024-10-16 19:31:28', '2024-10-16 19:31:28'); - -INSERT INTO `r_material_history_block` (`id`, `material_history_id`, `block_history_id`) VALUES (1, 1, 1); - -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (44, 1, 73); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (45, 1, 74); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (46, 1, 75); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (47, 1, 76); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (48, 1, 77); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (49, 1, 78); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (50, 1, 79); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (51, 1, 80); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (52, 1, 81); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (53, 1, 82); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (54, 1, 83); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (55, 1, 84); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (56, 1, 85); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (57, 1, 86); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (58, 1, 87); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (59, 1, 88); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (60, 1, 89); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (61, 1, 90); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (62, 1, 91); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (63, 1, 92); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (64, 1, 93); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (65, 1, 94); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (66, 1, 95); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (67, 1, 96); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (68, 1, 97); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (69, 1, 98); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (70, 1, 99); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (71, 1, 100); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (72, 1, 101); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (73, 1, 102); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (74, 1, 103); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (75, 1, 104); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (76, 1, 105); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (77, 1, 106); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (78, 1, 107); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (79, 1, 108); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (80, 1, 109); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (81, 1, 110); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (82, 1, 111); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (83, 1, 112); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (84, 1, 113); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (85, 1, 114); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (86, 1, 115); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (87, 1, 116); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (88, 1, 117); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (89, 1, 118); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (90, 1, 119); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (91, 1, 120); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (92, 1, 121); - -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (45, 1, 73); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (46, 1, 74); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (47, 1, 75); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (48, 1, 76); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (49, 1, 77); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (50, 1, 78); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (51, 1, 79); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (52, 1, 80); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (53, 1, 81); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (54, 1, 82); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (55, 1, 83); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (56, 1, 84); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (57, 1, 85); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (58, 1, 86); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (59, 1, 87); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (60, 1, 88); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (61, 1, 89); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (62, 1, 90); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (63, 1, 91); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (64, 1, 92); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (65, 1, 93); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (66, 1, 94); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (67, 1, 95); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (68, 1, 96); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (69, 1, 97); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (70, 1, 98); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (71, 1, 99); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (72, 1, 100); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (73, 1, 101); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (74, 1, 102); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (75, 1, 103); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (76, 1, 104); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (77, 1, 105); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (78, 1, 106); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (79, 1, 107); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (80, 1, 108); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (81, 1, 109); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (82, 1, 110); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (83, 1, 111); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (84, 1, 112); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (85, 1, 113); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (86, 1, 114); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (87, 1, 115); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (88, 1, 116); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (89, 1, 117); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (90, 1, 118); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (91, 1, 119); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (92, 1, 120); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (93, 1, 121); - - - -INSERT INTO `r_material_block` (`id`, `material_id`, `block_id`) VALUES (1, 1, 1); - -INSERT INTO `t_app` (`id`, `name`, `app_website`, `platform_id`, `platform_history_id`, `publish_url`, `editor_url`, `visit_url`, `image_url`, `assets_url`, `state`, `published`, `home_page_id`, `css`, `config`, `constants`, `data_handler`, `description`, `latest`, `git_group`, `project_name`, `branch`, `is_demo`, `is_default`, `template_type`, `set_template_time`, `set_template_by`, `set_default_by`, `framework`, `global_state`, `default_lang`, `extend_config`, `data_hash`, `can_associate`, `data_source_global`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'portal-app', NULL, 1, '1', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, '{}', NULL, '{\"type\":\"JSFunction\",\"value\":\"function dataHanlder(res){\\n return res;\\n}\"}', 'demo应用', '22', NULL, NULL, 'develop', NULL, NULL, 'serviceDevelop', '2023-11-19 18:14:37', '1', '1', 'Vue', '[{\"id\":\"test2\",\"state\":{\"name1\":\"xxx1\"},\"getters\":{\"count\":{\"type\":\"JSFunction\",\"value\":\"function count() {}\"}},\"actions\":{\"actions\":{\"type\":\"JSFunction\",\"value\":\"function actions() {}\"}}},{\"id\":\"test3\",\"state\":{\"name1\":\"xxx\"},\"getters\":{\"count\":{\"type\":\"JSFunction\",\"value\":\"function count() {}\"}},\"actions\":{\"actions\":{\"type\":\"JSFunction\",\"value\":\"function actions() {}\"}}},{\"id\":\"test4\",\"state\":{\"region\":\"\",\"scenario\":\"all\",\"productId\":\"\",\"planId\":\"\",\"addEvs\":false,\"addHss\":false,\"addCbr\":false,\"period\":{\"value\":1,\"unit\":\"month\"},\"amount\":1},\"getters\":{},\"actions\":{}},{\"id\":\"test1\",\"state\":{\"name1\":\"xxx\"},\"getters\":{\"count\":{\"type\":\"JSFunction\",\"value\":\"function count() {}\"}},\"actions\":{\"actions\":{\"type\":\"JSFunction\",\"value\":\"function actions() {}\"}}}]', NULL, '{\"business\":{\"serviceName\":\"\",\"endpointName\":\"cce\",\"endpointId\":\"ee\",\"serviceId\":\"ee\",\"router\":\"ee\"},\"env\":{\"alpha\":{\"regions\":[{\"name\":\"\",\"baseUrl\":\"\",\"isDefault\":false}],\"isDefault\":true}},\"type\":\"console\"}', '8b0eba6ad055532a586f9f669108fabb', '1', '{\"dataHandler\":{\"type\":\"JSFunction\",\"value\":\"function dataHanlder(res){\\n return res;\\n}\"}}', '1', '1', '2024-10-16 23:27:10', '2024-10-16 23:27:10', '1', '1'); - -INSERT INTO `t_block` (`id`, `label`, `name`, `framework`, `content`, `assets`, `last_build_info`, `description`, `tags`, `latest_version`, `latest_history_id`, `screenshot`, `path`, `occupier_by`, `is_official`, `public`, `is_default`, `tiny_reserved`, `npm_name`, `i18n`, `platform_id`, `app_id`, `content_blocks`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'BlockTest1a', 'BlockTest1a', 'Vue', '{\"state\":{},\"methods\":{},\"componentName\":\"Block\",\"fileName\":\"BlockTest1a\",\"css\":\"\",\"props\":{},\"children\":[{\"componentName\":\"TinyGrid\",\"props\":{\"editConfig\":{\"trigger\":\"click\",\"mode\":\"cell\",\"showStatus\":true},\"columns\":[{\"type\":\"index\",\"width\":60},{\"type\":\"selection\",\"width\":60},{\"field\":\"employees\",\"title\":\"员工数\"},{\"field\":\"created_date\",\"title\":\"创建日期\"},{\"field\":\"city\",\"title\":\"城市\"}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司\",\"city\":\"福州\",\"employees\":800,\"created_date\":\"2014-04-30 00:56:00\",\"boole\":false},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"employees\":300,\"created_date\":\"2016-07-08 12:36:22\",\"boole\":true}]},\"id\":\"9f544d43\"},{\"componentName\":\"div\",\"props\":{},\"id\":\"c3be6334\"},{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"人员\"},\"children\":[{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\"},\"id\":\"6a365365\"}],\"id\":\"22464422\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"密码\"},\"children\":[{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"type\":\"password\"},\"id\":\"55297132\"}],\"id\":\"c42655f5\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"\"},\"children\":[{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"提交\",\"type\":\"primary\",\"style\":\"margin-right: 10px\"},\"id\":\"521663e5\"},{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"重置\",\"type\":\"primary\"},\"id\":\"33153f15\"}],\"id\":\"31541a46\"}],\"id\":\"35a24114\"},{\"componentName\":\"TinyCarousel\",\"props\":{\"height\":\"180px\"},\"children\":[{\"componentName\":\"TinyCarouselItem\",\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"},\"id\":\"92546616\"}],\"id\":\"1b2d445c\",\"props\":{\"title\":\"选项卡\",\"name\":\"\"}},{\"componentName\":\"TinyCarouselItem\",\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"},\"id\":\"3a145148\"}],\"id\":\"36631533\",\"props\":{\"title\":\"选项卡\",\"name\":\"\"}}],\"id\":\"52426c25\"}],\"schema\":{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"collapse\":{\"number\":6,\"text\":{\"zh_CN\":\"显示更多\"}},\"content\":[]}],\"events\":{},\"slots\":{}},\"dataSource\":{},\"dependencies\":{\"scripts\":[{\"package\":\"@opentiny/vue\",\"version\":\"\",\"components\":{\"TinyGrid\":\"Grid\",\"TinyForm\":\"Form\",\"TinyFormItem\":\"FormItem\",\"TinyInput\":\"Input\",\"TinyButton\":\"Button\",\"TinyCarousel\":\"Carousel\",\"TinyCarouselItem\":\"CarouselItem\"}}],\"styles\":[]}}', '{\"material\":[],\"scripts\":[\"https://npm.onmicrosoft.cn/@opentiny-assets/tinyengine-alpha-block-blocktest1a-993@2.0.7/js\\\\web-component.umd.js\",\"https://npm.onmicrosoft.cn/@opentiny-assets/tinyengine-alpha-block-blocktest1a-993@2.0.7/js\\\\web-component.es.js\"],\"styles\":[]}', '{\"result\":true,\"versions\":[\"@opentiny/tiny-engine-block-build@1.0.2\"],\"endTime\":\"2024/3/19 20:22:03\",\"message\":\"2.0.7\",\"filesPath\":{\"material\":[],\"scripts\":[\"https://npm.onmicrosoft.cn/@opentiny-assets/tinyengine-alpha-block-blocktest1a-993@2.0.7/js\\\\web-component.umd.js\",\"https://npm.onmicrosoft.cn/@opentiny-assets/tinyengine-alpha-block-blocktest1a-993@2.0.7/js\\\\web-component.es.js\"],\"styles\":[]},\"taskId\":184}', '区块', '[]', '2.0.7', 1, NULL, '我的分组', '1', 0, 1, 0, 0, '@opentiny-assets/tinyengine-alpha-block-blocktest1a-993', '', 1, 1, NULL, '1', '1', '2024-10-16 23:52:11', '2024-10-16 23:52:11', '1', '1'); - -INSERT INTO `t_material` (`id`, `name`, `npm_name`, `framework`, `assets_url`, `image_url`, `published`, `latest_version`, `latest_history_id`, `public`, `last_build_info`, `description`, `is_official`, `is_default`, `tiny_reserved`, `component_library_id`, `material_category_id`, `material_size`, `tgz_url`, `unzip_tgz_root_path_url`, `unzip_tgz_files`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'materialstwo', '@opentiny/lowcode-alpha-material-materialstwo-1505', 'Vue', NULL, NULL, NULL, '1.0.8', 1, 1, '{\"version\": \"1.0.8\"}', '物料包', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', '2024-10-16 23:37:14', '2024-10-16 23:37:14', '1', '1'); - -INSERT INTO `t_page` (`id`, `name`, `app_id`, `route`, `page_content`, `is_body`, `parent_id`, `group`, `depth`, `is_page`, `occupier_by`, `is_default`, `content_blocks`, `latest_version`, `latest_history_id`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'createVm', 1, 'createVm', '{\"state\":{\"dataDisk\":[1,2,3]},\"methods\":{},\"componentName\":\"Page\",\"css\":\"body {\\r\\n background-color:#eef0f5 ;\\r\\n margin-bottom: 80px;\\r\\n}\",\"props\":{},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"padding-bottom: 10px; padding-top: 10px;\"},\"id\":\"2b2cabf0\",\"children\":[{\"componentName\":\"TinyTimeLine\",\"props\":{\"active\":\"2\",\"data\":[{\"name\":\"基础配置\"},{\"name\":\"网络配置\"},{\"name\":\"高级配置\"},{\"name\":\"确认配置\"}],\"horizontal\":true,\"style\":\"border-radius: 0px;\"},\"id\":\"dd764b17\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"id\":\"30c94cc8\",\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"计费模式\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"包年/包月\",\"value\":\"1\"},{\"text\":\"按需计费\",\"value\":\"2\"}],\"modelValue\":\"1\"},\"id\":\"a8d84361\"}],\"id\":\"9f39f3e7\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"区域\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"乌兰察布二零一\",\"value\":\"1\"}],\"modelValue\":\"1\",\"style\":\"border-radius: 0px; margin-right: 10px;\"},\"id\":\"c97ccd99\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"温馨提示:页面左上角切换区域\",\"style\":\"background-color: [object Event]; color: #8a8e99; font-size: 12px;\"},\"id\":\"20923497\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"不同区域的云服务产品之间内网互不相通;请就近选择靠近您业务的区域,可减少网络时延,提高访问速度\",\"style\":\"display: block; color: #8a8e99; border-radius: 0px; font-size: 12px;\"},\"id\":\"54780a26\"}],\"id\":\"4966384d\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"可用区\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"可用区1\",\"value\":\"1\"},{\"text\":\"可用区2\",\"value\":\"2\"},{\"text\":\"可用区3\",\"value\":\"3\"}],\"modelValue\":\"1\"},\"id\":\"6184481b\"}],\"id\":\"690837bf\"}],\"id\":\"b6a425d4\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"CPU架构\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"x86计算\",\"value\":\"1\"},{\"text\":\"鲲鹏计算\",\"value\":\"2\"}],\"modelValue\":\"1\"},\"id\":\"7d33ced7\"}],\"id\":\"05ed5a79\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"区域\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; justify-content: flex-start; align-items: center;\"},\"id\":\"606edf78\",\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; align-items: center; margin-right: 10px;\"},\"id\":\"f3f98246\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"vCPUs\",\"style\":\"width: 80px;\"},\"id\":\"c287437e\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}]},\"id\":\"4c43286b\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; align-items: center; margin-right: 10px;\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"内存\",\"style\":\"width: 80px; border-radius: 0px;\"},\"id\":\"38b8fa1f\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}]},\"id\":\"cd33328e\"}],\"id\":\"2b2c678f\"},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; align-items: center;\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"规格名称\",\"style\":\"width: 80px;\"},\"id\":\"d3eb6352\"},{\"componentName\":\"TinySearch\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"输入关键词\"},\"id\":\"21cb9282\"}],\"id\":\"b8e0f35c\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"border-radius: 0px;\"},\"id\":\"5000c83e\",\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"通用计算型\",\"value\":\"1\"},{\"text\":\"通用计算增强型\",\"value\":\"2\"},{\"text\":\"内存优化型\",\"value\":\"3\"},{\"text\":\"内存优化型\",\"value\":\"4\"},{\"text\":\"磁盘增强型\",\"value\":\"5\"},{\"text\":\"超高I/O型\",\"value\":\"6\"},{\"text\":\"GPU加速型\",\"value\":\"7\"}],\"modelValue\":\"1\",\"style\":\"border-radius: 0px; margin-top: 12px;\"},\"id\":\"b8724703\"},{\"componentName\":\"TinyGrid\",\"props\":{\"editConfig\":{\"trigger\":\"click\",\"mode\":\"cell\",\"showStatus\":true},\"columns\":[{\"type\":\"radio\",\"width\":60},{\"field\":\"employees\",\"title\":\"规格名称\"},{\"field\":\"created_date\",\"title\":\"vCPUs | 内存(GiB)\",\"sortable\":true},{\"field\":\"city\",\"title\":\"CPU\",\"sortable\":true},{\"title\":\"基准 / 最大带宽\\t\",\"sortable\":true},{\"title\":\"内网收发包\",\"sortable\":true}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司\",\"city\":\"福州\",\"employees\":800,\"created_date\":\"2014-04-30 00:56:00\",\"boole\":false},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"employees\":300,\"created_date\":\"2016-07-08 12:36:22\",\"boole\":true}],\"style\":\"margin-top: 12px; border-radius: 0px;\",\"auto-resize\":true},\"id\":\"77701c25\"},{\"componentName\":\"div\",\"props\":{\"style\":\"margin-top: 12px; border-radius: 0px;\"},\"id\":\"3339838b\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"当前规格\",\"style\":\"width: 150px; display: inline-block;\"},\"id\":\"203b012b\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"通用计算型 | Si2.large.2 | 2vCPUs | 4 GiB\",\"style\":\"font-weight: 700;\"},\"id\":\"87723f52\"}]}]}],\"id\":\"657fb2fc\"}],\"id\":\"d19b15cf\"}],\"id\":\"9991228b\"},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"镜像\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"公共镜像\",\"value\":\"1\"},{\"text\":\"私有镜像\",\"value\":\"2\"},{\"text\":\"共享镜像\",\"value\":\"3\"}],\"modelValue\":\"1\"},\"id\":\"922b14cb\"},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; margin-top: 12px; border-radius: 0px;\"},\"id\":\"6b679524\",\"children\":[{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 170px; margin-right: 10px;\"},\"id\":\"4851fff7\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 340px;\"},\"id\":\"a7183eb7\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"margin-top: 12px;\"},\"id\":\"57aee314\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"请注意操作系统的语言类型。\",\"style\":\"color: #e37d29;\"},\"id\":\"56d36c27\"}]}],\"id\":\"e3b02436\"}],\"id\":\"59aebf2b\"}],\"id\":\"87ff7b99\"},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"系统盘\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex;\"},\"id\":\"cddba5b8\",\"children\":[{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 200px; margin-right: 10px;\"},\"id\":\"a97fbe15\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px; margin-right: 10px;\"},\"id\":\"1cde4c0f\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"GiB \\nIOPS上限240,IOPS突发上限5,000\",\"style\":\"color: #575d6c; font-size: 12px;\"},\"id\":\"2815d82d\"}]}],\"id\":\"50239a3a\"}],\"id\":\"e8582986\"},{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"数据盘\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin-top: 12px; display: flex;\"},\"id\":\"728c9825\",\"children\":[{\"componentName\":\"Icon\",\"props\":{\"style\":\"margin-right: 10px; width: 16px; height: 16px;\",\"name\":\"IconPanelMini\"},\"id\":\"fded6930\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 200px; margin-right: 10px;\"},\"id\":\"62734e3f\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px; margin-right: 10px;\"},\"id\":\"667c7926\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"GiB \\nIOPS上限600,IOPS突发上限5,000\",\"style\":\"color: #575d6c; font-size: 12px; margin-right: 10px;\"},\"id\":\"e7bc36d6\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px;\"},\"id\":\"1bd56dc0\"}],\"loop\":{\"type\":\"JSExpression\",\"value\":\"this.state.dataDisk\"}},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; margin-top: 12px; border-radius: 0px;\"},\"children\":[{\"componentName\":\"Icon\",\"props\":{\"name\":\"IconPlus\",\"style\":\"width: 16px; height: 16px; margin-right: 10px;\"},\"id\":\"65c89f2b\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"增加一块数据盘\",\"style\":\"font-size: 12px; border-radius: 0px; margin-right: 10px;\"},\"id\":\"cb344071\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"您还可以挂载 21 块磁盘(云硬盘)\",\"style\":\"color: #8a8e99; font-size: 12px;\"},\"id\":\"80eea996\"}],\"id\":\"e9e530ab\"}],\"id\":\"078e03ef\"}],\"id\":\"ccef886e\"}],\"id\":\"0fb7bd74\"},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-color: #ffffff; padding-top: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; position: fixed; inset: auto 0% 0% 0%; height: 80px; line-height: 80px; border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[],\"id\":\"21ed4475\"},{\"componentName\":\"TinyRow\",\"props\":{\"style\":\"border-radius: 0px; height: 100%;\"},\"children\":[{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"8\"},\"id\":\"b9d051a5\",\"children\":[{\"componentName\":\"TinyRow\",\"props\":{\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"5\",\"style\":\"display: flex;\"},\"id\":\"02352776\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"购买量\",\"style\":\"margin-right: 10px;\"},\"id\":\"0cd9ed5c\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px; margin-right: 10px;\"},\"id\":\"2f9cf442\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"台\"},\"id\":\"facd4481\"}]},{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"7\"},\"id\":\"82b6c659\",\"children\":[{\"componentName\":\"div\",\"props\":{},\"id\":\"9cd65874\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"配置费用\",\"style\":\"font-size: 12px;\"},\"id\":\"b5a0a0da\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"¥1.5776\",\"style\":\"padding-left: 10px; padding-right: 10px; color: #de504e;\"},\"id\":\"d9464214\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"/小时\",\"style\":\"font-size: 12px;\"},\"id\":\"af7cc5e6\"}]},{\"componentName\":\"div\",\"props\":{},\"id\":\"89063830\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"参考价格,具体扣费请以账单为准。\",\"style\":\"font-size: 12px; border-radius: 0px;\"},\"id\":\"d8995fbc\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"了解计费详情\",\"style\":\"font-size: 12px; color: #344899;\"},\"id\":\"b383c3e2\"}]}]}],\"id\":\"94fc0e43\"}]},{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"4\",\"style\":\"display: flex; flex-direction: row-reverse; border-radius: 0px; height: 100%; justify-content: flex-start; align-items: center;\"},\"id\":\"10b73009\",\"children\":[{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"下一步: 网络配置\",\"type\":\"danger\",\"style\":\"max-width: unset;\"},\"id\":\"0b584011\"}]}],\"id\":\"d414a473\"}],\"id\":\"e8ec029b\"}],\"fileName\":\"createVM\"}', 0, 0, 'staticPages', 0, 1, '1', 0, NULL, NULL, NULL, '1', '1', '2024-10-16 23:31:48', '2024-10-16 23:31:48', '1', '1'); - -INSERT INTO `t_user` (`id`, `username`, `email`, `enable`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`, `is_admin`, `is_public`) VALUES (1, '开发者', 'developer@lowcode.com', NULL, '1', '1', '2024-10-16 23:28:41', '2024-10-16 23:28:41', '1', '1', 1, NULL); -INSERT INTO `t_i18n_lang` (`id`, `lang`, `label`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 'zh_CN', '简体中文', '1', '1', '2024-10-17 00:01:36', '2024-10-17 00:01:36'); -INSERT INTO `t_i18n_lang` (`id`, `lang`, `label`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (2, 'en_US', '美式英文', '1', '1', '2024-10-17 00:02:03', '2024-10-17 00:02:03'); -INSERT INTO `t_platform` (`id`, `name`, `published`, `last_build_info`, `description`, `latest_version`, `latest_history_id`, `material_history_id`, `image_url`, `sort_plugins`, `sort_toolbar`, `is_default`, `prettier_opts`, `set_default_by`, `app_extend_config`, `data_hash`, `business_category_id`, `theme_id`, `platform_url`, `vscode_url`, `tenant_id`, `site_id`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 'default', 1, NULL, '专用设计器', '1.0.0', 1, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', '1', '1', '2024-11-14 22:17:39', '2024-11-14 22:17:39'); -INSERT INTO `t_platform_history` (`id`, `ref_id`, `version`, `name`, `publish_url`, `description`, `vscode_url`, `material_history_id`, `sub_count`, `material_pkg_name`, `material_version`, `image_url`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 1, '1.0.0', 'default', 'http://tinyengine.com', '默认设计器', NULL, 1, 1, '@opentiny/lowcode-alpha-material-materialstwo-1505', '1.0.8', NULL, '1', NULL, '1', '1', '1', '2024-11-14 22:20:25', '2024-11-14 22:20:25'); diff --git a/app/src/main/resources/sql/h2/init_data_for_test_v1.0.0.sql b/app/src/main/resources/sql/h2/init_data_for_test_v1.0.0.sql new file mode 100644 index 00000000..c85f64ab --- /dev/null +++ b/app/src/main/resources/sql/h2/init_data_for_test_v1.0.0.sql @@ -0,0 +1,175 @@ + +INSERT INTO `t_material_history` (`id`, `ref_id`, `version`, `content`, `name`, `npm_name`, `framework`, `assets_url`, `image_url`, `description`, `material_size`, `tgz_url`, `unzip_tgz_root_path_url`, `unzip_tgz_files`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 1, '1.0.8', '{}', 'materialstwo', '@opentiny/lowcode-alpha-material-materialstwo-1505', 'Vue', '{\"material\":[\"\"],\"scripts\":[\"\",\"\"],\"styles\":[]}', NULL, '1.0.8', NULL, NULL, NULL, NULL, '1', '1', '2024-10-16 19:28:53', '2024-10-16 19:28:53', '1', '1'); + +INSERT INTO `t_tenant` (`id`, `name_cn`, `name_en`, `description`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 'public', '公共租户', 'Default tenant for new user to explore.', '1', '1', '2024-10-16 19:31:28', '2024-10-16 19:31:28'); + +INSERT INTO `t_app` (`id`, `name`, `app_website`, `platform_id`, `platform_history_id`, `publish_url`, `editor_url`, `visit_url`, `image_url`, `assets_url`, `state`, `published`, `home_page_id`, `css`, `config`, `constants`, `data_handler`, `description`, `latest`, `git_group`, `project_name`, `branch`, `is_demo`, `is_default`, `template_type`, `set_template_time`, `set_template_by`, `set_default_by`, `framework`, `global_state`, `default_lang`, `extend_config`, `data_hash`, `can_associate`, `data_source_global`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'portal-app', NULL, 1, '1', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, '{}', NULL, '{\"type\":\"JSFunction\",\"value\":\"function dataHanlder(res){\\n return res;\\n}\"}', 'demo应用', '22', NULL, NULL, 'develop', NULL, NULL, 'serviceDevelop', '2023-11-19 18:14:37', '1', '1', 'Vue', '[{\"id\":\"test2\",\"state\":{\"name1\":\"xxx1\"},\"getters\":{\"count\":{\"type\":\"JSFunction\",\"value\":\"function count() {}\"}},\"actions\":{\"actions\":{\"type\":\"JSFunction\",\"value\":\"function actions() {}\"}}},{\"id\":\"test3\",\"state\":{\"name1\":\"xxx\"},\"getters\":{\"count\":{\"type\":\"JSFunction\",\"value\":\"function count() {}\"}},\"actions\":{\"actions\":{\"type\":\"JSFunction\",\"value\":\"function actions() {}\"}}},{\"id\":\"test4\",\"state\":{\"region\":\"\",\"scenario\":\"all\",\"productId\":\"\",\"planId\":\"\",\"addEvs\":false,\"addHss\":false,\"addCbr\":false,\"period\":{\"value\":1,\"unit\":\"month\"},\"amount\":1},\"getters\":{},\"actions\":{}},{\"id\":\"test1\",\"state\":{\"name1\":\"xxx\"},\"getters\":{\"count\":{\"type\":\"JSFunction\",\"value\":\"function count() {}\"}},\"actions\":{\"actions\":{\"type\":\"JSFunction\",\"value\":\"function actions() {}\"}}}]', NULL, '{\"business\":{\"serviceName\":\"\",\"endpointName\":\"cce\",\"endpointId\":\"ee\",\"serviceId\":\"ee\",\"router\":\"ee\"},\"env\":{\"alpha\":{\"regions\":[{\"name\":\"\",\"baseUrl\":\"\",\"isDefault\":false}],\"isDefault\":true}},\"type\":\"console\"}', '8b0eba6ad055532a586f9f669108fabb', '1', '{\"dataHandler\":{\"type\":\"JSFunction\",\"value\":\"function dataHanlder(res){\\n return res;\\n}\"}}', '1', '1', '2024-10-16 23:27:10', '2024-10-16 23:27:10', '1', '1'); + +INSERT INTO `t_material` (`id`, `name`, `npm_name`, `framework`, `assets_url`, `image_url`, `published`, `latest_version`, `latest_history_id`, `public`, `last_build_info`, `description`, `is_official`, `is_default`, `tiny_reserved`, `component_library_id`, `material_category_id`, `material_size`, `tgz_url`, `unzip_tgz_root_path_url`, `unzip_tgz_files`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'materialstwo', '@opentiny/lowcode-alpha-material-materialstwo-1505', 'Vue', NULL, NULL, NULL, '1.0.8', 1, 1, '{\"version\": \"1.0.8\"}', '物料包', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', '2024-10-16 23:37:14', '2024-10-16 23:37:14', '1', '1'); + +INSERT INTO `t_page` (`id`, `name`, `app_id`, `route`, `page_content`, `is_body`, `parent_id`, `group`, `depth`, `is_page`, `occupier_by`, `is_default`, `content_blocks`, `latest_version`, `latest_history_id`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'createVm', 1, 'createVm', '{\"state\":{\"dataDisk\":[1,2,3]},\"methods\":{},\"componentName\":\"Page\",\"css\":\"body {\\r\\n background-color:#eef0f5 ;\\r\\n margin-bottom: 80px;\\r\\n}\",\"props\":{},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"padding-bottom: 10px; padding-top: 10px;\"},\"id\":\"2b2cabf0\",\"children\":[{\"componentName\":\"TinyTimeLine\",\"props\":{\"active\":\"2\",\"data\":[{\"name\":\"基础配置\"},{\"name\":\"网络配置\"},{\"name\":\"高级配置\"},{\"name\":\"确认配置\"}],\"horizontal\":true,\"style\":\"border-radius: 0px;\"},\"id\":\"dd764b17\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"id\":\"30c94cc8\",\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"计费模式\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"包年/包月\",\"value\":\"1\"},{\"text\":\"按需计费\",\"value\":\"2\"}],\"modelValue\":\"1\"},\"id\":\"a8d84361\"}],\"id\":\"9f39f3e7\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"区域\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"乌兰察布二零一\",\"value\":\"1\"}],\"modelValue\":\"1\",\"style\":\"border-radius: 0px; margin-right: 10px;\"},\"id\":\"c97ccd99\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"温馨提示:页面左上角切换区域\",\"style\":\"background-color: [object Event]; color: #8a8e99; font-size: 12px;\"},\"id\":\"20923497\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"不同区域的云服务产品之间内网互不相通;请就近选择靠近您业务的区域,可减少网络时延,提高访问速度\",\"style\":\"display: block; color: #8a8e99; border-radius: 0px; font-size: 12px;\"},\"id\":\"54780a26\"}],\"id\":\"4966384d\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"可用区\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"可用区1\",\"value\":\"1\"},{\"text\":\"可用区2\",\"value\":\"2\"},{\"text\":\"可用区3\",\"value\":\"3\"}],\"modelValue\":\"1\"},\"id\":\"6184481b\"}],\"id\":\"690837bf\"}],\"id\":\"b6a425d4\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"CPU架构\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"x86计算\",\"value\":\"1\"},{\"text\":\"鲲鹏计算\",\"value\":\"2\"}],\"modelValue\":\"1\"},\"id\":\"7d33ced7\"}],\"id\":\"05ed5a79\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"区域\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; justify-content: flex-start; align-items: center;\"},\"id\":\"606edf78\",\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; align-items: center; margin-right: 10px;\"},\"id\":\"f3f98246\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"vCPUs\",\"style\":\"width: 80px;\"},\"id\":\"c287437e\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}]},\"id\":\"4c43286b\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; align-items: center; margin-right: 10px;\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"内存\",\"style\":\"width: 80px; border-radius: 0px;\"},\"id\":\"38b8fa1f\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}]},\"id\":\"cd33328e\"}],\"id\":\"2b2c678f\"},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; align-items: center;\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"规格名称\",\"style\":\"width: 80px;\"},\"id\":\"d3eb6352\"},{\"componentName\":\"TinySearch\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"输入关键词\"},\"id\":\"21cb9282\"}],\"id\":\"b8e0f35c\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"border-radius: 0px;\"},\"id\":\"5000c83e\",\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"通用计算型\",\"value\":\"1\"},{\"text\":\"通用计算增强型\",\"value\":\"2\"},{\"text\":\"内存优化型\",\"value\":\"3\"},{\"text\":\"内存优化型\",\"value\":\"4\"},{\"text\":\"磁盘增强型\",\"value\":\"5\"},{\"text\":\"超高I/O型\",\"value\":\"6\"},{\"text\":\"GPU加速型\",\"value\":\"7\"}],\"modelValue\":\"1\",\"style\":\"border-radius: 0px; margin-top: 12px;\"},\"id\":\"b8724703\"},{\"componentName\":\"TinyGrid\",\"props\":{\"editConfig\":{\"trigger\":\"click\",\"mode\":\"cell\",\"showStatus\":true},\"columns\":[{\"type\":\"radio\",\"width\":60},{\"field\":\"employees\",\"title\":\"规格名称\"},{\"field\":\"created_date\",\"title\":\"vCPUs | 内存(GiB)\",\"sortable\":true},{\"field\":\"city\",\"title\":\"CPU\",\"sortable\":true},{\"title\":\"基准 / 最大带宽\\t\",\"sortable\":true},{\"title\":\"内网收发包\",\"sortable\":true}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司\",\"city\":\"福州\",\"employees\":800,\"created_date\":\"2014-04-30 00:56:00\",\"boole\":false},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"employees\":300,\"created_date\":\"2016-07-08 12:36:22\",\"boole\":true}],\"style\":\"margin-top: 12px; border-radius: 0px;\",\"auto-resize\":true},\"id\":\"77701c25\"},{\"componentName\":\"div\",\"props\":{\"style\":\"margin-top: 12px; border-radius: 0px;\"},\"id\":\"3339838b\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"当前规格\",\"style\":\"width: 150px; display: inline-block;\"},\"id\":\"203b012b\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"通用计算型 | Si2.large.2 | 2vCPUs | 4 GiB\",\"style\":\"font-weight: 700;\"},\"id\":\"87723f52\"}]}]}],\"id\":\"657fb2fc\"}],\"id\":\"d19b15cf\"}],\"id\":\"9991228b\"},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"镜像\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"公共镜像\",\"value\":\"1\"},{\"text\":\"私有镜像\",\"value\":\"2\"},{\"text\":\"共享镜像\",\"value\":\"3\"}],\"modelValue\":\"1\"},\"id\":\"922b14cb\"},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; margin-top: 12px; border-radius: 0px;\"},\"id\":\"6b679524\",\"children\":[{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 170px; margin-right: 10px;\"},\"id\":\"4851fff7\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 340px;\"},\"id\":\"a7183eb7\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"margin-top: 12px;\"},\"id\":\"57aee314\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"请注意操作系统的语言类型。\",\"style\":\"color: #e37d29;\"},\"id\":\"56d36c27\"}]}],\"id\":\"e3b02436\"}],\"id\":\"59aebf2b\"}],\"id\":\"87ff7b99\"},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"系统盘\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex;\"},\"id\":\"cddba5b8\",\"children\":[{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 200px; margin-right: 10px;\"},\"id\":\"a97fbe15\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px; margin-right: 10px;\"},\"id\":\"1cde4c0f\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"GiB \\nIOPS上限240,IOPS突发上限5,000\",\"style\":\"color: #575d6c; font-size: 12px;\"},\"id\":\"2815d82d\"}]}],\"id\":\"50239a3a\"}],\"id\":\"e8582986\"},{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"数据盘\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin-top: 12px; display: flex;\"},\"id\":\"728c9825\",\"children\":[{\"componentName\":\"Icon\",\"props\":{\"style\":\"margin-right: 10px; width: 16px; height: 16px;\",\"name\":\"IconPanelMini\"},\"id\":\"fded6930\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 200px; margin-right: 10px;\"},\"id\":\"62734e3f\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px; margin-right: 10px;\"},\"id\":\"667c7926\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"GiB \\nIOPS上限600,IOPS突发上限5,000\",\"style\":\"color: #575d6c; font-size: 12px; margin-right: 10px;\"},\"id\":\"e7bc36d6\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px;\"},\"id\":\"1bd56dc0\"}],\"loop\":{\"type\":\"JSExpression\",\"value\":\"this.state.dataDisk\"}},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; margin-top: 12px; border-radius: 0px;\"},\"children\":[{\"componentName\":\"Icon\",\"props\":{\"name\":\"IconPlus\",\"style\":\"width: 16px; height: 16px; margin-right: 10px;\"},\"id\":\"65c89f2b\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"增加一块数据盘\",\"style\":\"font-size: 12px; border-radius: 0px; margin-right: 10px;\"},\"id\":\"cb344071\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"您还可以挂载 21 块磁盘(云硬盘)\",\"style\":\"color: #8a8e99; font-size: 12px;\"},\"id\":\"80eea996\"}],\"id\":\"e9e530ab\"}],\"id\":\"078e03ef\"}],\"id\":\"ccef886e\"}],\"id\":\"0fb7bd74\"},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-color: #ffffff; padding-top: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; position: fixed; inset: auto 0% 0% 0%; height: 80px; line-height: 80px; border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[],\"id\":\"21ed4475\"},{\"componentName\":\"TinyRow\",\"props\":{\"style\":\"border-radius: 0px; height: 100%;\"},\"children\":[{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"8\"},\"id\":\"b9d051a5\",\"children\":[{\"componentName\":\"TinyRow\",\"props\":{\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"5\",\"style\":\"display: flex;\"},\"id\":\"02352776\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"购买量\",\"style\":\"margin-right: 10px;\"},\"id\":\"0cd9ed5c\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px; margin-right: 10px;\"},\"id\":\"2f9cf442\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"台\"},\"id\":\"facd4481\"}]},{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"7\"},\"id\":\"82b6c659\",\"children\":[{\"componentName\":\"div\",\"props\":{},\"id\":\"9cd65874\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"配置费用\",\"style\":\"font-size: 12px;\"},\"id\":\"b5a0a0da\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"¥1.5776\",\"style\":\"padding-left: 10px; padding-right: 10px; color: #de504e;\"},\"id\":\"d9464214\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"/小时\",\"style\":\"font-size: 12px;\"},\"id\":\"af7cc5e6\"}]},{\"componentName\":\"div\",\"props\":{},\"id\":\"89063830\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"参考价格,具体扣费请以账单为准。\",\"style\":\"font-size: 12px; border-radius: 0px;\"},\"id\":\"d8995fbc\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"了解计费详情\",\"style\":\"font-size: 12px; color: #344899;\"},\"id\":\"b383c3e2\"}]}]}],\"id\":\"94fc0e43\"}]},{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"4\",\"style\":\"display: flex; flex-direction: row-reverse; border-radius: 0px; height: 100%; justify-content: flex-start; align-items: center;\"},\"id\":\"10b73009\",\"children\":[{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"下一步: 网络配置\",\"type\":\"danger\",\"style\":\"max-width: unset;\"},\"id\":\"0b584011\"}]}],\"id\":\"d414a473\"}],\"id\":\"e8ec029b\"}],\"fileName\":\"createVM\"}', 0, 0, 'staticPages', 0, 1, '1', 0, NULL, NULL, NULL, '1', '1', '2024-10-16 23:31:48', '2024-10-16 23:31:48', '1', '1'); + +INSERT INTO `t_user` (`id`, `username`, `email`, `enable`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`, `is_admin`, `is_public`) VALUES (1, '开发者', 'developer@lowcode.com', NULL, '1', '1', '2024-10-16 23:28:41', '2024-10-16 23:28:41', '1', '1', 1, NULL); + +INSERT INTO `t_i18n_lang` (`id`, `lang`, `label`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 'zh_CN', '简体中文', '1', '1', '2024-10-17 00:01:36', '2024-10-17 00:01:36'); +INSERT INTO `t_i18n_lang` (`id`, `lang`, `label`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (2, 'en_US', '美式英文', '1', '1', '2024-10-17 00:02:03', '2024-10-17 00:02:03'); + +INSERT INTO `t_platform` (`id`, `name`, `published`, `last_build_info`, `description`, `latest_version`, `latest_history_id`, `material_history_id`, `image_url`, `sort_plugins`, `sort_toolbar`, `is_default`, `prettier_opts`, `set_default_by`, `app_extend_config`, `data_hash`, `business_category_id`, `theme_id`, `platform_url`, `vscode_url`, `tenant_id`, `site_id`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 'default', 1, NULL, '专用设计器', '1.0.0', 1, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', '1', '1', '2024-11-14 22:17:39', '2024-11-14 22:17:39'); + +INSERT INTO `t_platform_history` (`id`, `ref_id`, `version`, `name`, `publish_url`, `description`, `vscode_url`, `material_history_id`, `sub_count`, `material_pkg_name`, `material_version`, `image_url`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 1, '1.0.0', 'default', 'http://tinyengine.com', '默认设计器', NULL, 1, 1, '@opentiny/lowcode-alpha-material-materialstwo-1505', '1.0.8', NULL, '1', NULL, '1', '1', '1', '2024-11-14 22:20:25', '2024-11-14 22:20:25'); + +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (1, '2.4.2', '{\"zh_CN\":\"输入框\"}', 'ElInput', 'input', '通过鼠标或键盘输入字符', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"exportName\":\"ElInput\"}', '表单组件', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"输入框\"},\"icon\":\"input\",\"screenshot\":\"\",\"snippetName\":\"ElInput\",\"schema\":{}}]', '{\"properties\":[{\"name\":\"0\",\"label\":{\"zh_CN\":\"基础属性\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"description\":{\"zh_CN\":\"绑定值\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"description\":{\"zh_CN\":\"尺寸\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"default\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"large\",\"value\":\"large\"},{\"label\":\"default\",\"value\":\"default\"},{\"label\":\"small\",\"value\":\"small\"}]}}},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"description\":{\"zh_CN\":\"类型\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"description\":{\"zh_CN\":\"输入框占位文本\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"maxlength\",\"label\":{\"text\":{\"zh_CN\":\"最大长度\"}},\"description\":{\"zh_CN\":\"最大输入长度\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"number\",\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"是否禁用\"}},\"description\":{\"zh_CN\":\"是否禁用\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定值改变时触发\"},\"description\":{\"zh_CN\":\"双向绑定值改变时触发\"}},\"onBlur\":{\"label\":{\"zh_CN\":\"输入框失去焦点时触发\"},\"description\":{\"zh_CN\":\"输入框失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"}},\"slots\":{\"prefix\":{\"label\":{\"zh_CN\":\"头部内容\"},\"description\":{\"zh_CN\":\"输入框头部内容,只对非 type=\'textarea\' 有效\"}},\"suffix\":{\"label\":{\"zh_CN\":\"尾部内容\"},\"description\":{\"zh_CN\":\"输入框尾部内容,只对非 type=\'textarea\' 有效\"}},\"prepend\":{\"label\":{\"zh_CN\":\"前置内容\"},\"description\":{\"zh_CN\":\"输入框前置内容,只对非 type=\'textarea\' 有效\"}},\"append\":{\"label\":{\"zh_CN\":\"后置内容\"},\"description\":{\"zh_CN\":\"输入框后置内容,只对非 type=\'textarea\' 有效\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"type\",\"size\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, 2, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (2, '2.4.2', '{\"zh_CN\":\"按钮\"}', 'ElButton', 'button', '常用的操作按钮', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"exportName\":\"ElButton\"}', '基础组件', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"按钮\"},\"icon\":\"button\",\"screenshot\":\"\",\"snippetName\":\"ElButton\",\"schema\":{\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"按钮文本\"}}]}}]', '{\"properties\":[{\"name\":\"0\",\"label\":{\"zh_CN\":\"基础属性\"},\"content\":[{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"description\":{\"zh_CN\":\"尺寸\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"default\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"large\",\"value\":\"large\"},{\"label\":\"default\",\"value\":\"default\"},{\"label\":\"small\",\"value\":\"small\"}]}}},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"description\":{\"zh_CN\":\"类型\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"plain\",\"label\":{\"text\":{\"zh_CN\":\"朴素按钮\"}},\"description\":{\"zh_CN\":\"是否为朴素按钮\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"text\",\"label\":{\"text\":{\"zh_CN\":\"文字按钮\"}},\"description\":{\"zh_CN\":\"是否为文字按钮\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"bg\",\"label\":{\"text\":{\"zh_CN\":\"背景颜色\"}},\"description\":{\"zh_CN\":\"是否显示文字按钮背景颜色\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"link\",\"label\":{\"text\":{\"zh_CN\":\"链接按钮\"}},\"description\":{\"zh_CN\":\"是否为链接按钮\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"round\",\"label\":{\"text\":{\"zh_CN\":\"圆角按钮\"}},\"description\":{\"zh_CN\":\"是否为圆角按钮\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"circle\",\"label\":{\"text\":{\"zh_CN\":\"圆形按钮\"}},\"description\":{\"zh_CN\":\"是否为圆形按钮\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"loading\",\"label\":{\"text\":{\"zh_CN\":\"加载中状态\"}},\"description\":{\"zh_CN\":\"是否为加载中状态\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"description\":{\"zh_CN\":\"是否禁用\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{},\"slots\":{\"default\":{\"label\":{\"zh_CN\":\"default\"},\"description\":{\"zh_CN\":\"自定义默认内容\"}},\"loading\":{\"label\":{\"zh_CN\":\"loading\"},\"description\":{\"zh_CN\":\"自定义加载中组件\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"type\",\"size\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, 2, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (3, '2.4.2', '{\"zh_CN\":\"表单\"}', 'ElForm', 'form', '表单包含 输入框, 单选框, 下拉选择, 多选框 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"exportName\":\"ElForm\"}', '表单组件', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"表单\"},\"icon\":\"form\",\"screenshot\":\"\",\"snippetName\":\"ElForm\",\"schema\":{\"children\":[{\"componentName\":\"ElFormItem\",\"props\":{\"label\":\"账号\",\"prop\":\"account\"},\"children\":[{\"componentName\":\"ElInput\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请输入账号\"}}]},{\"componentName\":\"ElFormItem\",\"props\":{\"label\":\"密码\",\"prop\":\"password\"},\"children\":[{\"componentName\":\"ElInput\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请输入密码\",\"type\":\"password\"}}]},{\"componentName\":\"ElFormItem\",\"props\":{},\"children\":[{\"componentName\":\"ElButton\",\"props\":{\"type\":\"primary\",\"style\":\"margin-right: 10px\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"提交\"}}]},{\"componentName\":\"ElButton\",\"props\":{\"type\":\"primary\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"重置\"}}]}]}]}}]', '{\"properties\":[{\"name\":\"0\",\"label\":{\"zh_CN\":\"基础属性\"},\"content\":[{\"property\":\"model\",\"label\":{\"text\":{\"zh_CN\":\"数据对象\"}},\"description\":{\"zh_CN\":\"表单数据对象\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"rules\",\"label\":{\"text\":{\"zh_CN\":\"验证规则\"}},\"description\":{\"zh_CN\":\"表单验证规则\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"inline\",\"label\":{\"text\":{\"zh_CN\":\"行内模式\"}},\"description\":{\"zh_CN\":\"行内表单模式\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"label-position\",\"label\":{\"text\":{\"zh_CN\":\"标签位置\"}},\"description\":{\"zh_CN\":\"表单域标签的位置, 当设置为 left 或 right 时,则也需要设置标签宽度属性\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"right\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"right\",\"value\":\"right\"},{\"label\":\"top\",\"value\":\"top\"}]}}},{\"property\":\"label-width\",\"label\":{\"text\":{\"zh_CN\":\"标签宽度\"}},\"description\":{\"zh_CN\":\"标签的长度,例如 \'50px\'。 作为 Form 直接子元素的 form-item 会继承该值。 可以使用 auto。\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"label-suffix\",\"label\":{\"text\":{\"zh_CN\":\"标签后缀\"}},\"description\":{\"zh_CN\":\"表单域标签的后缀\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"hide-required-asterisk\",\"label\":{\"text\":{\"zh_CN\":\"隐藏必填星号\"}},\"description\":{\"zh_CN\":\"是否隐藏必填字段标签旁边的红色星号\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"require-asterisk-position\",\"label\":{\"text\":{\"zh_CN\":\"星号位置\"}},\"description\":{\"zh_CN\":\"星号的位置\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"left\",\"widget\":{\"component\":\"ButtonGroupConfigurator\",\"props\":{\"options\":[{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"right\",\"value\":\"right\"}]}}},{\"property\":\"show-message\",\"label\":{\"text\":{\"zh_CN\":\"显示校验信息\"}},\"description\":{\"zh_CN\":\"是否显示校验错误信息\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":true,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"inline-message\",\"label\":{\"text\":{\"zh_CN\":\"行内显示校验信息\"}},\"description\":{\"zh_CN\":\"是否以行内形式展示校验信息\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"status-icon\",\"label\":{\"text\":{\"zh_CN\":\"显示校验结果图标\"}},\"description\":{\"zh_CN\":\"是否在输入框中显示校验结果反馈图标\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"validate-on-rule-change\",\"label\":{\"text\":{\"zh_CN\":\"触发验证\"}},\"description\":{\"zh_CN\":\"是否在 rules 属性改变后立即触发一次验证\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":true,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"description\":{\"zh_CN\":\"用于控制该表单内组件的尺寸\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"default\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"large\",\"value\":\"large\"},{\"label\":\"default\",\"value\":\"default\"},{\"label\":\"small\",\"value\":\"small\"}]}}},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"description\":{\"zh_CN\":\"是否禁用该表单内的所有组件。 如果设置为 true, 它将覆盖内部组件的 disabled 属性\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"scroll-to-error\",\"label\":{\"text\":{\"zh_CN\":\"滚动到错误项\"}},\"description\":{\"zh_CN\":\"当校验失败时,滚动到第一个错误表单项\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onValidate\":{\"label\":{\"zh_CN\":\"任一表单项被校验后触发\"},\"description\":{\"zh_CN\":\"任一表单项被校验后触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"slots\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":[\"ElFormItem\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, 2, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (4, '2.4.2', '{\"zh_CN\":\"表单子项\"}', 'ElFormItem', 'formItem', '表单包含 输入框, 单选框, 下拉选择, 多选框 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"exportName\":\"ElFormItem\"}', '表单组件', 'element-plus', NULL, NULL, '{\"properties\":[{\"name\":\"0\",\"label\":{\"zh_CN\":\"基础属性\"},\"content\":[{\"property\":\"prop\",\"label\":{\"text\":{\"zh_CN\":\"键名\"}},\"description\":{\"zh_CN\":\"model 的键名。 它可以是一个属性的值(如 a.b.0 或 [a\', \'b\', \'0\'])。 在定义了 validate、resetFields 的方法时,该属性是必填的\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"label\",\"label\":{\"text\":{\"zh_CN\":\"标签文本\"}},\"description\":{\"zh_CN\":\"标签文本\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"label-width\",\"label\":{\"text\":{\"zh_CN\":\"标签宽度\"}},\"description\":{\"zh_CN\":\"标签宽度,例如 \'50px\'。 可以使用 auto\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"required\",\"label\":{\"text\":{\"zh_CN\":\"必填项\"}},\"description\":{\"zh_CN\":\"是否为必填项,如不设置,则会根据校验规则确认\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"rules\",\"label\":{\"text\":{\"zh_CN\":\"验证规则\"}},\"description\":{\"zh_CN\":\"表单验证规则, 更多内容可以参考async-validator\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"error\",\"label\":{\"text\":{\"zh_CN\":\"错误信息\"}},\"description\":{\"zh_CN\":\"表单域验证错误时的提示信息。设置该值会导致表单验证状态变为 error,并显示该错误信息\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"show-message\",\"label\":{\"text\":{\"zh_CN\":\"显示错误信息\"}},\"description\":{\"zh_CN\":\"是否显示校验错误信息\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"inline-message\",\"label\":{\"text\":{\"zh_CN\":\"行内显示错误信息\"}},\"description\":{\"zh_CN\":\"是否在行内显示校验信息\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"description\":{\"zh_CN\":\"用于控制该表单内组件的尺寸\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"default\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"large\",\"value\":\"large\"},{\"label\":\"default\",\"value\":\"default\"},{\"label\":\"small\",\"value\":\"small\"}]}}},{\"property\":\"for\",\"label\":{\"text\":{\"zh_CN\":\"for\"}},\"description\":{\"zh_CN\":\"和原生标签相同能力\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"validate-status\",\"label\":{\"text\":{\"zh_CN\":\"校验状态\"}},\"description\":{\"zh_CN\":\"formItem 校验的状态\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"error\",\"value\":\"error\"},{\"label\":\"validating\",\"value\":\"validating\"},{\"label\":\"success\",\"value\":\"success\"}]}}}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{},\"slots\":{\"label\":{\"label\":{\"zh_CN\":\"label\"},\"description\":{\"zh_CN\":\"标签位置显示的内容\"}},\"error\":{\"label\":{\"zh_CN\":\"error\"},\"description\":{\"zh_CN\":\"验证错误信息的显示内容\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, 2, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (5, '2.4.2', '{\"zh_CN\":\"表单\"}', 'ElTable', 'table', '用于展示多条结构类似的数据, 可对数据进行排序、筛选、对比或其他自定义操作', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"exportName\":\"ElTable\"}', '数据展示', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"表格\"},\"icon\":\"grid\",\"screenshot\":\"\",\"snippetName\":\"ElTable\",\"schema\":{\"props\":{\"data\":[{\"date\":\"2016-05-03\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"},{\"date\":\"2016-05-02\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"},{\"date\":\"2016-05-04\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"},{\"date\":\"2016-05-01\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"}],\"columns\":[{\"type\":\"index\"},{\"label\":\"Date\",\"prop\":\"date\"},{\"label\":\"Name\",\"prop\":\"name\"},{\"label\":\"Address\",\"prop\":\"address\"}]}}}]', '{\"properties\":[{\"name\":\"0\",\"label\":{\"zh_CN\":\"基础属性\"},\"content\":[{\"property\":\"data\",\"label\":{\"text\":{\"zh_CN\":\"数据\"}},\"description\":{\"zh_CN\":\"显示的数据\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"columns\",\"label\":{\"text\":{\"zh_CN\":\"表格列配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"properties\":[{\"label\":{\"zh_CN\":\"默认分组\"},\"content\":[{\"property\":\"type\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"type\"}},\"description\":{\"text\":{\"zh_CN\":\"对应列的类型。 如果设置了selection则显示多选框; 如果设置了 index 则显示该行的索引(从 1 开始计算); 如果设置了 expand 则显示为一个可展开的按钮\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"selection\",\"value\":\"selection\"},{\"label\":\"index\",\"value\":\"index\"},{\"label\":\"expand\",\"value\":\"expand\"}]}}},{\"property\":\"index\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"index\"}},\"description\":{\"text\":{\"zh_CN\":\"如果设置了 type=index,可以通过传递 index 属性来自定义索引\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}}},{\"property\":\"label\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"label\"}},\"description\":{\"text\":{\"zh_CN\":\"显示的标题\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"column-key\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"column-key\"}},\"description\":{\"text\":{\"zh_CN\":\"column 的 key, column 的 key, 如果需要使用 filter-change 事件,则需要此属性标识是哪个 column 的筛选条件\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"prop\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"prop\"}},\"description\":{\"text\":{\"zh_CN\":\"字段名称 对应列内容的字段名, 也可以使用 property属性\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"width\",\"type\":\"number\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"width\"}},\"description\":{\"text\":{\"zh_CN\":\"对应列的宽度\"}},\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}}},{\"property\":\"min-width\",\"type\":\"number\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"min-width\"}},\"description\":{\"text\":{\"zh_CN\":\"对应列的最小宽度, 对应列的最小宽度, 与 width 的区别是 width 是固定的,min-width 会把剩余宽度按比例分配给设置了 min-width 的列\"}},\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}}},{\"property\":\"fixed\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"fixed\"}},\"description\":{\"text\":{\"zh_CN\":\"列是否固定在左侧或者右侧。 true 表示固定在左侧\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"right\",\"value\":\"right\"}]}}},{\"property\":\"sortable\",\"type\":\"boolean\",\"labelPosition\":\"left\",\"label\":{\"text\":{\"zh_CN\":\"sortable\"}},\"description\":{\"text\":{\"zh_CN\":\"对应列是否可以排序\"}},\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"sort-method\",\"type\":\"function\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"sort-method\"}},\"description\":{\"text\":{\"zh_CN\":\"指定数据按照哪个属性进行排序,仅当sortable设置为true的时候有效。 应该如同 Array.sort 那样返回一个 Number\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}}},{\"property\":\"sort-by\",\"type\":\"array\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"sort-by\"}},\"description\":{\"text\":{\"zh_CN\":\"指定数据按照哪个属性进行排序,仅当 sortable 设置为 true 且没有设置 sort-method 的时候有效。 如果 sort-by 为数组,则先按照第 1 个属性排序,如果第 1 个相等,再按照第 2 个排序,以此类推\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"sort-orders\",\"type\":\"array\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"sort-orders\"}},\"description\":{\"text\":{\"zh_CN\":\"数据在排序时所使用排序策略的轮转顺序,仅当 sortable 为 true 时有效。 需传入一个数组,随着用户点击表头,该列依次按照数组中元素的顺序进行排序\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"resizable\",\"type\":\"boolean\",\"labelPosition\":\"left\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"resizable\"}},\"description\":{\"text\":{\"zh_CN\":\"对应列是否可以通过拖动改变宽度(需要在 el-table 上设置 border 属性为真)\"}},\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"formatter\",\"type\":\"function\",\"labelPosition\":\"top\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"formatter\"}},\"description\":{\"text\":{\"zh_CN\":\"用来格式化内容\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"dataType\":\"JSFunction\"}}},{\"property\":\"show-overflow-tooltip\",\"type\":\"boolean\",\"labelPosition\":\"left\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"show-overflow-tooltip\"}},\"description\":{\"text\":{\"zh_CN\":\"当内容过长被隐藏时显示 tooltip\"}},\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"align\",\"type\":\"string\",\"labelPosition\":\"top\",\"defaultValue\":\"left\",\"label\":{\"text\":{\"zh_CN\":\"align\"}},\"description\":{\"text\":{\"zh_CN\":\"对齐方式\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"center\",\"value\":\"center\"},{\"label\":\"right\",\"value\":\"right\"}]}}},{\"property\":\"header-align\",\"type\":\"string\",\"labelPosition\":\"top\",\"defaultValue\":\"left\",\"label\":{\"text\":{\"zh_CN\":\"header-align\"}},\"description\":{\"text\":{\"zh_CN\":\"表头对齐方式, 若不设置该项,则使用表格的对齐方式\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"center\",\"value\":\"center\"},{\"label\":\"right\",\"value\":\"right\"}]}}},{\"property\":\"class-name\",\"type\":\"string\",\"labelPosition\":\"top\",\"defaultValue\":\"left\",\"label\":{\"text\":{\"zh_CN\":\"class-name\"}},\"description\":{\"text\":{\"zh_CN\":\"列的 className\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"label-class-name\",\"type\":\"string\",\"labelPosition\":\"top\",\"defaultValue\":\"left\",\"label\":{\"text\":{\"zh_CN\":\"label-class-name\"}},\"description\":{\"text\":{\"zh_CN\":\"当前列标题的自定义类名\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"selectable\",\"type\":\"function\",\"labelPosition\":\"top\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"selectable\"}},\"description\":{\"text\":{\"zh_CN\":\"仅对 type=selection 的列有效,类型为 Function,Function 的返回值用来决定这一行的 CheckBox 是否可以勾选\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}}},{\"property\":\"reserve-selection\",\"type\":\"boolean\",\"labelPosition\":\"left\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"reserve-selection\"}},\"description\":{\"text\":{\"zh_CN\":\"数据刷新后是否保留选项,仅对 type=selection 的列有效, 请注意, 需指定 row-key 来让这个功能生效。\"}},\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"filters\",\"type\":\"array\",\"labelPosition\":\"top\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"filters\"}},\"description\":{\"text\":{\"zh_CN\":\"数据刷新后是否保留选项,仅对 type=selection 的列有效, 请注意, 需指定 row-key 来让这个功能生效。\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"filter-placement\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"filter-placement\"}},\"description\":{\"text\":{\"zh_CN\":\"过滤弹出框的定位\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"filter-multiple\",\"type\":\"string\",\"labelPosition\":\"left\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"filter-multiple\"}},\"description\":{\"text\":{\"zh_CN\":\"数据过滤的选项是否多选\"}},\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"filter-method\",\"type\":\"function\",\"labelPosition\":\"top\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"filter-method\"}},\"description\":{\"text\":{\"zh_CN\":\"数据过滤使用的方法, 如果是多选的筛选项,对每一条数据会执行多次,任意一次返回 true 就会显示\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}}},{\"property\":\"filtered-value\",\"type\":\"array\",\"labelPosition\":\"top\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"filtered-value\"}},\"description\":{\"text\":{\"zh_CN\":\"选中的数据过滤项,如果需要自定义表头过滤的渲染方式,可能会需要此属性\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}}]}],\"widget\":{\"component\":\"TableColumnsConfigurator\",\"props\":{\"type\":\"object\",\"textField\":\"label\",\"language\":\"json\",\"buttonText\":\"编辑列配置\",\"title\":\"编辑列配置\",\"expand\":true}},\"description\":{\"zh_CN\":\"表格列的配置信息\"},\"labelPosition\":\"top\"},{\"property\":\"max-height\",\"label\":{\"text\":{\"zh_CN\":\"最大高度\"}},\"description\":{\"zh_CN\":\"Table 的最大高度。\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"number\",\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"height\",\"label\":{\"text\":{\"zh_CN\":\"表格高度\"}},\"description\":{\"zh_CN\":\"Table 的高度, 默认为自动高度。 这个高度会设置为 Table 的 style.height 的值,Table 的高度会受控于外部样式。\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"stripe\",\"label\":{\"text\":{\"zh_CN\":\"斑马纹\"}},\"description\":{\"zh_CN\":\"是否为斑马纹 table\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"border\",\"label\":{\"text\":{\"zh_CN\":\"纵向边框\"}},\"description\":{\"zh_CN\":\"是否带有纵向边框\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"表格尺寸\"}},\"description\":{\"zh_CN\":\"Table 的尺寸\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"default\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"large\",\"value\":\"large\"},{\"label\":\"default\",\"value\":\"default\"},{\"label\":\"small\",\"value\":\"small\"}]}}},{\"property\":\"fit\",\"label\":{\"text\":{\"zh_CN\":\"列宽自撑开\"}},\"description\":{\"zh_CN\":\"列的宽度是否自撑开\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":true,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"show-header\",\"label\":{\"text\":{\"zh_CN\":\"显示表头\"}},\"description\":{\"zh_CN\":\"是否显示表头\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":true,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"highlight-current-row\",\"label\":{\"text\":{\"zh_CN\":\"高亮当前行\"}},\"description\":{\"zh_CN\":\"是否要高亮当前行\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"current-row-key\",\"label\":{\"text\":{\"zh_CN\":\"当前行的 key\"}},\"description\":{\"zh_CN\":\"当前行的 key,只写属性\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"row-class-name\",\"label\":{\"text\":{\"zh_CN\":\"行的类名\"}},\"description\":{\"zh_CN\":\"行的 className\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"row-key\",\"label\":{\"text\":{\"zh_CN\":\"行数据的 Key\"}},\"description\":{\"zh_CN\":\"行数据的 Key,用来优化 Table 的渲染; 在使用reserve-selection功能与显示树形数据时,该属性是必填的。 类型为 String 时,支持多层访问:user.info.id,但不支持 user.info[0].id,此种情况请使用 Function\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"empty-text\",\"label\":{\"text\":{\"zh_CN\":\"空数据文本\"}},\"description\":{\"zh_CN\":\"空数据时显示的文本内容\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"table-layout\",\"label\":{\"text\":{\"zh_CN\":\"表格布局方式\"}},\"description\":{\"zh_CN\":\"设置表格单元、行和列的布局方式\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"defaultValue\":\"fixed\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"options\":[{\"label\":\"fixed\",\"value\":\"fixed\"},{\"label\":\"auto\",\"value\":\"auto\"}]}},\"device\":[]},{\"property\":\"scrollbar-always-on\",\"label\":{\"text\":{\"zh_CN\":\"显示滚动条\"}},\"description\":{\"zh_CN\":\"总是显示滚动条\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"flexible\",\"label\":{\"text\":{\"zh_CN\":\"主轴最小尺寸\"}},\"description\":{\"zh_CN\":\"确保主轴的最小尺寸,以便不超过内容\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onSelect\":{\"label\":{\"zh_CN\":\"勾选数据行的 Checkbox 时触发\"},\"description\":{\"zh_CN\":\"当用户手动勾选数据行的 Checkbox 时触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"selection\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中项\"}},{\"name\":\"row\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前行\"}}],\"returns\":{}}},\"onSelectAll\":{\"label\":{\"zh_CN\":\"勾选全选时触发\"},\"description\":{\"zh_CN\":\"当用户手动勾选全选 Checkbox 时触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"selection\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中项\"}}],\"returns\":{}}},\"onSelectionChange\":{\"label\":{\"zh_CN\":\"选择项发生变化时会触发\"},\"description\":{\"zh_CN\":\"当选择项发生变化时会触发该事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"selection\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中项\"}}],\"returns\":{}}},\"onCellMouseEnter\":{\"label\":{\"zh_CN\":\"单元格 hover 时会触发\"},\"description\":{\"zh_CN\":\"当单元格 hover 进入时会触发该事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"row\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前行\"}},{\"name\":\"column\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前列\"}},{\"name\":\"cell\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前单元格\"}},{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生事件 event\"}}],\"returns\":{}}},\"onCellMouseLeave\":{\"label\":{\"zh_CN\":\"单元格 hover 退出时会触发\"},\"description\":{\"zh_CN\":\"当单元格 hover 退出时会触发该事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"row\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前行\"}},{\"name\":\"column\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前列\"}},{\"name\":\"cell\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前单元格\"}},{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生事件 event\"}}],\"returns\":{}}}},\"slots\":{\"empty\":{\"label\":{\"zh_CN\":\"empty\"},\"description\":{\"zh_CN\":\"当数据为空时自定义的内容\"}},\"append\":{\"label\":{\"zh_CN\":\"append\"},\"description\":{\"zh_CN\":\"插入至表格最后一行之后的内容, 如果需要对表格的内容进行无限滚动操作,可能需要用到这个 slot。 若表格有合计行,该 slot 会位于合计行之上。\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":[\"ElTableColumn\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, 2, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (6, '2.4.2', '{\"zh_CN\":\"表单\"}', 'ElTableColumn', 'table', '用于展示多条结构类似的数据, 可对数据进行排序、筛选、对比或其他自定义操作', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"exportName\":\"ElTableColumn\"}', '表单组件', 'element-plus', NULL, NULL, '{\"properties\":[{\"name\":\"0\",\"label\":{\"zh_CN\":\"基础属性\"},\"content\":[],\"description\":{\"zh_CN\":\"\"}}],\"events\":{},\"slots\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, 2, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (7, '3.20.0', '{\"zh_CN\":\"走马灯子项\"}', 'TinyCarouselItem', 'carouselitem', '常用于一组图片或卡片轮播,当内容空间不足时,可以用走马灯的形式进行收纳,进行轮播展现。', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CarouselItem\"}', 'component', '容器组件', 2, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"name\",\"label\":{\"text\":{\"zh_CN\":\"名称\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"幻灯片的名字,可用作 setActiveItem 的参数\"},\"labelPosition\":\"left\"},{\"property\":\"title\",\"label\":{\"text\":{\"zh_CN\":\"标题\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"幻灯片的标题\"},\"labelPosition\":\"left\"},{\"property\":\"indicator-position\",\"label\":{\"text\":{\"zh_CN\":\"指示器位置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"ButtonGroupConfigurator\",\"props\":{\"options\":[{\"label\":\"outside\",\"value\":\"outside\"},{\"label\":\"none\",\"value\":\"none\"}]}},\"description\":{\"zh_CN\":\"指示器的位置\"},\"labelPosition\":\"left\"}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (8, '3.20.0', '{\"zh_CN\":\"走马灯\"}', 'TinyCarousel', 'carousel', '常用于一组图片或卡片轮播,当内容空间不足时,可以用走马灯的形式进行收纳,进行轮播展现。', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Carousel\"}', 'component', '容器组件', 2, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"arrow\",\"label\":{\"text\":{\"zh_CN\":\"箭头显示时机\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"options\":[{\"label\":\"总是显示\",\"value\":\"always\"},{\"label\":\"鼠标悬停时显示\",\"value\":\"hover\"},{\"label\":\"从不显示\",\"value\":\"never\"}]}},\"description\":{\"zh_CN\":\"切换箭头的显示时机\"}},{\"property\":\"autoplay\",\"label\":{\"text\":{\"zh_CN\":\"自动切换\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否自动切换\"},\"labelPosition\":\"left\"},{\"property\":\"tabs\",\"label\":{\"text\":{\"zh_CN\":\"选项卡\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"defaultValue\":\"\",\"cols\":12,\"bindState\":false,\"widget\":{\"component\":\"ContainerConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"tabs 选项卡\"},\"labelPosition\":\"none\"},{\"property\":\"height\",\"label\":{\"text\":{\"zh_CN\":\"高度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"走马灯的高度\"}},{\"property\":\"indicator-position\",\"label\":{\"text\":{\"zh_CN\":\"位置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"options\":[{\"label\":\"走马灯外部\",\"value\":\"outside\"},{\"label\":\"不显示\",\"value\":\"none\"}]}},\"description\":{\"zh_CN\":\"指示器的位置\"}},{\"property\":\"initial-index\",\"label\":{\"text\":{\"zh_CN\":\"初始索引\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"初始状态激活的幻灯片的索引,从 0 开始 \"}},{\"property\":\"interval\",\"label\":{\"text\":{\"zh_CN\":\"自动切换间隔\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"自动切换的时间间隔,单位为毫秒\"}},{\"property\":\"loop\",\"label\":{\"text\":{\"zh_CN\":\"循环显示\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否循环显示\"},\"labelPosition\":\"left\"},{\"property\":\"show-title\",\"label\":{\"text\":{\"zh_CN\":\"显示标题\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示标题\"},\"labelPosition\":\"left\"},{\"property\":\"trigger\",\"label\":{\"text\":{\"zh_CN\":\"触发方式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"options\":[{\"label\":\"点击\",\"value\":\"click\"},{\"label\":\"悬停\",\"value\":\"hover\"}]}},\"description\":{\"zh_CN\":\"指示器的触发方式,默认为 hover\"}},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"options\":[{\"label\":\"水平\",\"value\":\"horizontal\"},{\"label\":\"垂直\",\"value\":\"vertical\"},{\"label\":\"卡片\",\"value\":\"card\"}]}},\"description\":{\"zh_CN\":\"走马灯的类型\"}}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"clickCapture\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyCarouselItem\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (9, '3.20.0', '{\"zh_CN\":\"提示框\"}', 'a', 'link', '链接', '', '', '', '', 'proCode', '{}', 'component', 'basic', 7, '[{\"name\":{\"zh_CN\":\"链接\"},\"icon\":\"link\",\"screenshot\":\"\",\"snippetName\":\"a\",\"schema\":{\"componentName\":\"a\",\"children\":\"链接\"}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"children\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlTextConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"类型\"},\"labelPosition\":\"none\"},{\"property\":\"href\",\"label\":{\"text\":{\"zh_CN\":\"链接\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"指定链接的 URL\"},\"labelPosition\":\"left\"},{\"property\":\"target\",\"label\":{\"text\":{\"zh_CN\":\"打开方式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"ButtonGroupConfigurator\",\"props\":{\"options\":[{\"label\":\"当前页面\",\"value\":\"_self\"},{\"label\":\"打开新页面\",\"value\":\"_blank\"}]}},\"description\":{\"zh_CN\":\"指定链接的打开方式,例如在当前窗口中打开或在新窗口中打开。\"}},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}]}', '{\"loop\":true,\"condition\":true,\"slots\":[],\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[]},\"contextMenu\":{\"actions\":[],\"disable\":[]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (10, '3.20.0', '{\"zh_CN\":\"标题\"}', '[h1, h2, h3, h4, h5, h6]', 'h16', '标题', '', '', '', '', 'proCode', '{}', 'component', 'html', 20, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"children\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlTextConfigurator\",\"props\":{\"showRadioButton\":true}},\"description\":{\"zh_CN\":\"\"},\"labelPosition\":\"none\"},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"\"},\"labelPosition\":\"none\"}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (11, '3.20.0', '{\"zh_CN\":\"段落\"}', 'p', 'paragraph', '段落', '', '', '', '', 'proCode', '{}', 'component', 'basic', 30, '[{\"name\":{\"zh_CN\":\"段落\"},\"icon\":\"paragraph\",\"screenshot\":\"\",\"snippetName\":\"p\",\"schema\":{\"componentName\":\"p\",\"children\":\"TinyEngine 前端可视化设计器致力于通过友好的用户交互提升业务应用的开发效率。\"}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"children\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlTextConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"类型\"},\"labelPosition\":\"none\"},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[]},\"contextMenu\":{\"actions\":[],\"disable\":[]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (12, '3.20.0', '{\"zh_CN\":\"输入框\"}', 'input', 'input', '输入框', '', '', '', '', 'proCode', '{}', 'component', 'html', 40, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"checkbox\",\"value\":\"checkbox\"},{\"label\":\"color\",\"value\":\"color\"},{\"label\":\"date\",\"value\":\"date\"},{\"label\":\"button\",\"value\":\"button\"},{\"label\":\"email\",\"value\":\"email\"},{\"label\":\"file\",\"value\":\"file\"},{\"label\":\"hidden\",\"value\":\"hidden\"},{\"label\":\"image\",\"value\":\"image\"},{\"label\":\"month\",\"value\":\"month\"},{\"label\":\"number\",\"value\":\"number\"},{\"label\":\"password\",\"value\":\"password\"},{\"label\":\"radio\",\"value\":\"radio\"},{\"label\":\"range\",\"value\":\"range\"},{\"label\":\"reset\",\"value\":\"reset\"},{\"label\":\"search\",\"value\":\"search\"},{\"label\":\"submit\",\"value\":\"submit\"},{\"label\":\"text\",\"value\":\"text\"},{\"label\":\"time\",\"value\":\"time\"},{\"label\":\"week\",\"value\":\"week\"},{\"label\":\"url\",\"value\":\"url\"}]}},\"description\":{\"zh_CN\":\"类型\"}},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位符\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"占位符\"}},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{\"onBlur\":{\"label\":{\"zh_CN\":\"失去焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onFocus\":{\"label\":{\"zh_CN\":\"获取焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 获取焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onChange\":{\"label\":{\"zh_CN\":\"输入值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (13, '3.20.0', '{\"zh_CN\":\"视频\"}', 'video', 'video', '视频', '', '', '', '', 'proCode', '{}', 'component', 'basic', 50, '[{\"name\":{\"zh_CN\":\"视频\"},\"icon\":\"video\",\"screenshot\":\"\",\"snippetName\":\"video\",\"schema\":{\"componentName\":\"video\",\"props\":{\"src\":\"img/webNova.jpg\",\"width\":\"200\",\"height\":\"100\",\"style\":\"border:1px solid #ccc\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"src\",\"label\":{\"text\":{\"zh_CN\":\"资源\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"视频的 URL\"}},{\"property\":\"width\",\"label\":{\"text\":{\"zh_CN\":\"播放器宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"视频播放器的宽度\"}},{\"property\":\"height\",\"label\":{\"text\":{\"zh_CN\":\"播放器高度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"视频播放器的高度\"}},{\"property\":\"controls\",\"label\":{\"text\":{\"zh_CN\":\"显示控件\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示控件\"},\"labelPosition\":\"left\"},{\"property\":\"autoplay\",\"label\":{\"text\":{\"zh_CN\":\"马上播放\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否马上播放\"},\"labelPosition\":\"left\"},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[]},\"contextMenu\":{\"actions\":[],\"disable\":[]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (14, '3.20.0', '{\"zh_CN\":\"Img\"}', 'Img', 'Image', NULL, NULL, '', '', '', 'proCode', '{}', 'component', 'html', 60, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"src\",\"type\":\"string\",\"defaultValue\":\"\",\"bindState\":true,\"label\":{\"text\":{\"zh_CN\":\"资源\"}},\"cols\":12,\"rules\":[],\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"src路径\"}},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{},\"shortcuts\":{\"properties\":[\"src\"]},\"contentMenu\":{\"actions\":[]}}', NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (15, '3.20.0', '{\"zh_CN\":\"Button\"}', 'button', 'button', NULL, NULL, '', '', '', 'proCode', '{}', 'component', 'html', 70, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"点击时触发\"},\"description\":{\"zh_CN\":\"点击时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"shortcuts\":{\"properties\":[]},\"contentMenu\":{\"actions\":[]}}', '{\"isContainer\":true}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (16, '3.20.0', '{\"zh_CN\":\"表格\"}', 'table', 'table', NULL, NULL, '', '', '', 'proCode', '{}', 'component', 'html', 80, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"width\",\"label\":{\"text\":{\"zh_CN\":\"宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表格的宽度\"}},{\"property\":\"border\",\"label\":{\"text\":{\"zh_CN\":\"边框宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表格边框的宽度\"}},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"点击时触发\"},\"description\":{\"zh_CN\":\"点击时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"shortcuts\":{\"properties\":[]},\"contentMenu\":{\"actions\":[]}}', NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (17, '3.20.0', '{\"zh_CN\":\"表格单元格\"}', 'td', 'td', NULL, NULL, '', '', '', 'proCode', '{}', 'component', 'html', 90, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"colspan\",\"label\":{\"text\":{\"zh_CN\":\"合并列\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"单元格可横跨的列数\"}},{\"property\":\"rowspan\",\"label\":{\"text\":{\"zh_CN\":\"合并行\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"单元格可横跨的行数\"}},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"点击时触发\"},\"description\":{\"zh_CN\":\"点击时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"shortcuts\":{\"properties\":[]},\"contentMenu\":{\"actions\":[]}}', NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (18, '3.20.0', '{\"zh_CN\":\"表单\"}', 'form', 'form', NULL, NULL, '', '', '', 'proCode', '{}', 'component', 'html', 100, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"name\",\"label\":{\"text\":{\"zh_CN\":\"名称\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表单的名称\"}},{\"property\":\"action\",\"label\":{\"text\":{\"zh_CN\":\"提交地址\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"提交表单时向何处发送表单数据\"}},{\"property\":\"method\",\"label\":{\"text\":{\"zh_CN\":\"HTTP方法\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"get\",\"value\":\"get\"},{\"label\":\"post\",\"value\":\"post\"}]}},\"description\":{\"zh_CN\":\"用于发送 form-data 的 HTTP 方法\"}}]}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"点击时触发\"},\"description\":{\"zh_CN\":\"点击时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"shortcuts\":{\"properties\":[]},\"contentMenu\":{\"actions\":[]}}', '{\"isContainer\":true}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (19, '3.20.0', '{\"zh_CN\":\"表单标签\"}', 'label', 'label', NULL, NULL, '', '', '', 'proCode', '{}', 'component', 'html', 110, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"for\",\"label\":{\"text\":{\"zh_CN\":\"label绑定表单元素\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"label 绑定到哪个表单元素\"}},{\"property\":\"form\",\"label\":{\"text\":{\"zh_CN\":\"label字段所属表单\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"label 字段所属的一个或多个表单\"}}]}],\"events\":{},\"shortcuts\":{\"properties\":[]},\"contentMenu\":{\"actions\":[]}}', NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (20, '3.20.0', '{\"zh_CN\":\"按钮组\"}', 'TinyButtonGroup', 'buttonGroup', '以按钮组的方式出现,常用于多项类似操作', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"ButtonGroup\"}', 'component', 'basic', 2, '[{\"name\":{\"zh_CN\":\"互斥按钮组\"},\"icon\":\"buttons\",\"screenshot\":\"\",\"snippetName\":\"TinyButtonGroup\",\"schema\":{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"Button1\",\"value\":\"1\"},{\"text\":\"Button2\",\"value\":\"2\"},{\"text\":\"Button3\",\"value\":\"3\"}],\"modelValue\":\"1\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"data\",\"label\":{\"text\":{\"zh_CN\":\"数据\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"description\":{\"zh_CN\":\"配置按钮组数据\"}},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"大小\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"mini\",\"value\":\"mini\"},{\"label\":\"small\",\"value\":\"small\"},{\"label\":\"medium\",\"value\":\"medium\"}]}},\"description\":{\"zh_CN\":\"组件大小\"},\"labelPosition\":\"left\"},{\"property\":\"plain\",\"label\":{\"text\":{\"zh_CN\":\"朴素按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否是朴素按钮\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (21, '3.20.0', '{\"zh_CN\":\"row\"}', 'TinyRow', 'row', '定义 Layout 的行配置信息', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Row\"}', 'component', NULL, 5, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"layout\",\"label\":{\"text\":{\"zh_CN\":\"布局\"}},\"cols\":12,\"widget\":{\"component\":\"LayoutGridConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"选择布局方式\"},\"labelPosition\":\"none\"},{\"property\":\"align\",\"label\":{\"text\":{\"zh_CN\":\"子项对齐方式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"top\",\"value\":\"top\"},{\"label\":\"middle\",\"value\":\"middle\"},{\"label\":\"bottom\",\"value\":\"bottom\"}]}},\"description\":{\"zh_CN\":\"子项的副轴对齐方向,可取值:top, middle, bottom\"}},{\"property\":\"flex\",\"label\":{\"text\":{\"zh_CN\":\"flex容器\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否为flex容器\"},\"labelPosition\":\"left\"},{\"property\":\"gutter\",\"label\":{\"text\":{\"zh_CN\":\"子项间隔\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"子项的间隔的像素\"}}]}]}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (22, '3.20.0', '{\"zh_CN\":\"row\"}', 'TinyLayout', 'row', '定义 Layout 的行配置信息', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Layout\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue-runtime@~3.20/dist3/tiny-vue-pc.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'layout', 5, '[{\"name\":{\"zh_CN\":\"栅格布局\"},\"icon\":\"row\",\"screenshot\":\"\",\"snippetName\":\"TinyLayout\",\"schema\":{\"componentName\":\"TinyLayout\",\"props\":{},\"children\":[{\"componentName\":\"TinyRow\",\"props\":{\"style\":\"padding: 10px;\"},\"children\":[{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}},{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}},{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}},{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}}]},{\"componentName\":\"TinyRow\",\"props\":{\"style\":\"padding: 10px;\"},\"children\":[{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}},{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}},{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}},{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}}]}]}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"cols\",\"label\":{\"text\":{\"zh_CN\":\"总栅格数\"}},\"cols\":12,\"widget\":{\"component\":\"ButtonGroupConfigurator\",\"props\":{\"options\":[{\"label\":\"12\",\"value\":12},{\"label\":\"24\",\"value\":24}]}},\"description\":{\"zh_CN\":\"选择总栅格数\"},\"labelPosition\":\"none\"},{\"property\":\"tag\",\"label\":{\"text\":{\"zh_CN\":\"layout渲染的标签\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"定义Layout元素渲染后的标签,默认为 div\"}}]}]}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyRow\",\"TinyCol\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (23, '3.20.0', '{\"zh_CN\":\"表单\"}', 'TinyForm', 'form', '由按钮、输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Form\"}', 'component', NULL, 5, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"label-width\",\"label\":{\"text\":{\"zh_CN\":\"标签宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表单中标签占位宽度,默认为 80px\"},\"labelPosition\":\"left\"},{\"property\":\"inline\",\"label\":{\"text\":{\"zh_CN\":\"行内布局\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"行内布局模式,默认为 false\"},\"labelPosition\":\"left\"},{\"property\":\"label-align\",\"label\":{\"text\":{\"zh_CN\":\"必填标识占位\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"必填标识 * 是否占位\"},\"labelPosition\":\"left\"},{\"property\":\"label-suffix\",\"label\":{\"text\":{\"zh_CN\":\"标签后缀\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表单中标签后缀\"},\"labelPosition\":\"left\"},{\"property\":\"label-position\",\"label\":{\"text\":{\"zh_CN\":\"标签位置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"right\",\"value\":\"right\"},{\"label\":\"left \",\"value\":\"left \"},{\"label\":\"top\",\"value\":\"top\"}]}},\"description\":{\"zh_CN\":\"表单中标签的布局位置\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"校验属性\"},\"content\":[{\"property\":\"model\",\"label\":{\"text\":{\"zh_CN\":\"数据对象\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表单数据对象\"},\"labelPosition\":\"top\"},{\"property\":\"rules\",\"label\":{\"text\":{\"zh_CN\":\"校验规则\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表单验证规则\"},\"labelPosition\":\"top\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onValidate\":{\"label\":{\"zh_CN\":\"表单项被校验后触发\"},\"description\":{\"zh_CN\":\"表单项被校验后触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"function\",\"type\":\"Function\",\"defaultValue\":\"(valid) => {}\",\"description\":{\"zh_CN\":\"校验回调函数\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onInput\":{\"label\":{\"zh_CN\":\"输入值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框输入的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onBlur\":{\"label\":{\"zh_CN\":\"失去焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onFocus\":{\"label\":{\"zh_CN\":\"获取焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 获取焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClear\":{\"label\":{\"zh_CN\":\"点击清空按钮时触发\"},\"description\":{\"zh_CN\":\"点击清空按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (24, '3.20.0', '{\"zh_CN\":\"表单项\"}', 'TinyFormItem', 'formitem', '由按钮、输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"FormItem\"}', 'component', NULL, 12, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"label\",\"label\":{\"text\":{\"zh_CN\":\"标签文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"defaultValue\":\"标签\",\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"标签文本\"},\"labelPosition\":\"left\"},{\"property\":\"prop\",\"label\":{\"text\":{\"zh_CN\":\"校验字段\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表单域 model 字段,在使用 validate、resetFields 方法的情况下,该属性是必填的\"},\"labelPosition\":\"left\"},{\"property\":\"required\",\"label\":{\"text\":{\"zh_CN\":\"必填\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否必填\"},\"labelPosition\":\"left\"}]}],\"events\":{},\"slots\":{\"label\":{\"label\":{\"zh_CN\":\"字段名\"},\"description\":{\"zh_CN\":\"自定义显示字段名称\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":[\"TinyForm\"],\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label\",\"rules\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (25, '3.20.0', '{\"zh_CN\":\"col\"}', 'TinyCol', 'col', '列配置信息', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Col\"}', 'component', NULL, 2, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"span\",\"label\":{\"text\":{\"zh_CN\":\"栅格列格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"整行\",\"value\":12},{\"label\":\"6格\",\"value\":6},{\"label\":\"4格\",\"value\":4},{\"label\":\"3格\",\"value\":3},{\"label\":\"1格\",\"value\":1}]}},\"description\":{\"zh_CN\":\"当一行分为12格时,一列可占位多少格\"}},{\"property\":\"move\",\"label\":{\"text\":{\"zh_CN\":\"栅格移动格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":-12,\"max\":12}},\"description\":{\"zh_CN\":\"栅格左右移动格数(正数向右,负数向左)\"}},{\"property\":\"no\",\"label\":{\"text\":{\"zh_CN\":\"排序编号\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"max\":12}},\"description\":{\"zh_CN\":\"排序编号(row中启用order生效)\"}},{\"property\":\"offset\",\"label\":{\"text\":{\"zh_CN\":\"间隔格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":0,\"max\":12}},\"description\":{\"zh_CN\":\"栅格左侧的间隔格数\"}},{\"property\":\"xs\",\"label\":{\"text\":{\"zh_CN\":\"超小屏格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":1,\"max\":12}},\"description\":{\"zh_CN\":\"<768px 响应式栅格数\"}},{\"property\":\"sm\",\"label\":{\"text\":{\"zh_CN\":\"小屏格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":1,\"max\":12}},\"description\":{\"zh_CN\":\"≥768px 响应式栅格数\"}},{\"property\":\"md\",\"label\":{\"text\":{\"zh_CN\":\"中屏格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":1,\"max\":12}},\"description\":{\"zh_CN\":\"≥992px 响应式栅格数\"}},{\"property\":\"lg\",\"label\":{\"text\":{\"zh_CN\":\"大屏格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":1,\"max\":12}},\"description\":{\"zh_CN\":\"≥1200px 响应式栅格数\"}},{\"property\":\"xl\",\"label\":{\"text\":{\"zh_CN\":\"超大屏格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":1,\"max\":12}},\"description\":{\"zh_CN\":\"≥1920px 响应式栅格数\"}}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label\",\"rules\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (26, '3.20.0', '{\"zh_CN\":\"按钮\"}', 'TinyButton', 'button', '常用的操作按钮,提供包括默认按钮、图标按钮、图片按钮、下拉按钮等类型', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Button\"}', 'component', 'basic', 2, '[{\"name\":{\"zh_CN\":\"按钮\"},\"icon\":\"button\",\"screenshot\":\"\",\"snippetName\":\"TinyButton\",\"schema\":{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"按钮文案\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"text\",\"type\":\"string\",\"defaultValue\":\"按钮文案\",\"label\":{\"text\":{\"zh_CN\":\"按钮文字\"}},\"cols\":12,\"hidden\":false,\"required\":true,\"readOnly\":false,\"disabled\":false,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"按钮文字\"},\"labelPosition\":\"left\"},{\"property\":\"size\",\"type\":\"select\",\"label\":{\"text\":{\"zh_CN\":\"大小\"}},\"cols\":12,\"rules\":[],\"hidden\":false,\"required\":true,\"readOnly\":false,\"disabled\":false,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"large\",\"value\":\"large\"},{\"label\":\"medium\",\"value\":\"medium\"},{\"label\":\"small\",\"value\":\"small\"},{\"label\":\"mini\",\"value\":\"mini\"}]}},\"description\":{\"zh_CN\":\"按钮大小\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否被禁用\"},\"labelPosition\":\"left\"},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"primary\",\"value\":\"primary\"},{\"label\":\"success\",\"value\":\"success\"},{\"label\":\"info\",\"value\":\"info\"},{\"label\":\"warning\",\"value\":\"warning\"},{\"label\":\"danger\",\"value\":\"danger\"},{\"label\":\"text\",\"value\":\"text\"}]}},\"description\":{\"zh_CN\":\"设置不同的主题样式\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"round\",\"label\":{\"text\":{\"zh_CN\":\"圆角\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否圆角按钮\"},\"labelPosition\":\"left\"},{\"property\":\"plain\",\"label\":{\"text\":{\"zh_CN\":\"朴素按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否为朴素按钮\"},\"labelPosition\":\"left\"},{\"property\":\"reset-time\",\"label\":{\"text\":{\"zh_CN\":\"禁用时间\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置禁用时间,防止重复提交,单位毫秒\"},\"labelPosition\":\"left\"},{\"property\":\"circle\",\"label\":{\"text\":{\"zh_CN\":\"圆形按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否圆形按钮\"},\"labelPosition\":\"left\"},{\"property\":\"autofocus\",\"label\":{\"text\":{\"zh_CN\":\"自动聚焦\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否默认聚焦\"},\"labelPosition\":\"left\"},{\"property\":\"loading\",\"label\":{\"text\":{\"zh_CN\":\"加载中样式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否展示位加载中样式\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"点击事件\"},\"description\":{\"zh_CN\":\"按钮被点击时触发的回调函数\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"text\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (27, '3.20.0', '{\"zh_CN\":\"输入框\"}', 'TinyInput', 'input', '通过鼠标或键盘输入字符', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Input\"}', 'component', 'form', 1, '[{\"name\":{\"zh_CN\":\"输入框\"},\"icon\":\"input\",\"screenshot\":\"\",\"snippetName\":\"TinyInput\",\"schema\":{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定值\"},\"labelPosition\":\"left\"},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"textarea\",\"value\":\"textarea\"},{\"label\":\"text\",\"value\":\"text\"},{\"label\":\"password\",\"value\":\"password\"}]}},\"description\":{\"zh_CN\":\"设置input框的type属性\"},\"labelPosition\":\"left\"},{\"property\":\"rows\",\"label\":{\"text\":{\"zh_CN\":\"行数\"}},\"widget\":{\"component\":\"NumberConfigurator\"},\"description\":{\"zh_CN\":\"输入框行数,只对 type=\'textarea\' 有效\"},\"labelPosition\":\"left\"},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框占位文本\"},\"labelPosition\":\"left\"},{\"property\":\"clearable\",\"label\":{\"text\":{\"zh_CN\":\"清除按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示清除按钮\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"medium\",\"value\":\"medium\"},{\"label\":\"small\",\"value\":\"small\"},{\"label\":\"mini\",\"value\":\"mini\"}]}},\"description\":{\"zh_CN\":\"输入框尺寸。该属性的可选值为 medium / small / mini\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"maxlength\",\"label\":{\"text\":{\"zh_CN\":\"最大输入长度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置 input 框的maxLength\"}},{\"property\":\"autofocus\",\"label\":{\"text\":{\"zh_CN\":\"自动聚焦\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"自动获取焦点\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框改变后的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onInput\":{\"label\":{\"zh_CN\":\"输入值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框输入的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onBlur\":{\"label\":{\"zh_CN\":\"失去焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onFocus\":{\"label\":{\"zh_CN\":\"获取焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 获取焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClear\":{\"label\":{\"zh_CN\":\"点击清空按钮时触发\"},\"description\":{\"zh_CN\":\"点击清空按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"slots\":{\"prefix\":{\"label\":{\"zh_CN\":\"前置内容\"}},\"suffix\":{\"label\":{\"zh_CN\":\"后置内容\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"value\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (28, '3.20.0', '{\"zh_CN\":\"单选\"}', 'TinyRadio', 'radio', '用于配置不同场景的选项,在一组备选项中进行单选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Radio\"}', 'component', 'form', 3, '[{\"name\":{\"zh_CN\":\"单选\"},\"icon\":\"radio\",\"screenshot\":\"\",\"snippetName\":\"TinyRadio\",\"schema\":{\"componentName\":\"TinyRadio\",\"props\":{\"label\":\"1\",\"text\":\"单选文本\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"text\",\"label\":{\"text\":{\"zh_CN\":\"文本内容\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"单选框文本内容\"}},{\"property\":\"label\",\"label\":{\"text\":{\"zh_CN\":\"选中值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"props\":{}},\"description\":{\"zh_CN\":\"radio 选中时的值\"}},{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"}]},{\"label\":{\"zh_CN\":\"其他\"},\"description\":{\"zh_CN\":\"\"},\"content\":[{\"property\":\"border\",\"label\":{\"text\":{\"zh_CN\":\"显示边框\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示边框\"},\"labelPosition\":\"left\"},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"单选框的尺寸,仅在 border 为true时有效\"}},{\"property\":\"name\",\"label\":{\"text\":{\"zh_CN\":\"原生name属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生 name 属性\"}}]}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"值变化事件\"},\"description\":{\"zh_CN\":\"绑定值变化时触发的事件\"}},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前选中的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"visible\",\"width\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (29, '3.20.0', '{\"zh_CN\":\"下拉框\"}', 'TinySelect', 'select', 'Select 选择器是一种通过点击弹出下拉列表展示数据并进行选择的 UI 组件', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Select\"}', 'component', 'form', 8, '[{\"name\":{\"zh_CN\":\"下拉框\"},\"icon\":\"select\",\"screenshot\":\"\",\"snippetName\":\"TinySelect\",\"schema\":{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}]}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"},\"labelPosition\":\"left\"},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框占位文本\"},\"labelPosition\":\"left\"},{\"property\":\"clearable\",\"label\":{\"text\":{\"zh_CN\":\"清除按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示清除按钮\"},\"labelPosition\":\"left\"},{\"property\":\"searchable\",\"label\":{\"text\":{\"zh_CN\":\"下拉可搜索\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"下拉面板是否可搜索\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"options\",\"label\":{\"text\":{\"zh_CN\":\"选项数据\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"description\":{\"zh_CN\":\"配置 Select 下拉数据项\"},\"labelPosition\":\"top\"},{\"property\":\"multiple\",\"label\":{\"text\":{\"zh_CN\":\"多选\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否允许输入框输入或选择多个项\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"multiple-limit\",\"label\":{\"text\":{\"zh_CN\":\"最大可选值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"多选时用户最多可以选择的项目数,为 0 则不限制\"},\"labelPosition\":\"left\"},{\"property\":\"popper-class\",\"label\":{\"text\":{\"zh_CN\":\"下拉框类名\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置下拉框自定义的类名\"},\"labelPosition\":\"left\"},{\"property\":\"collapse-tags\",\"label\":{\"text\":{\"zh_CN\":\"多选展示\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"多选时是否将选中值按文字的形式展示\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"值改变时触发\"},\"description\":{\"zh_CN\":\"在下拉框值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"下拉框选中项的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前选中的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onBlur\":{\"label\":{\"zh_CN\":\"失去焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onFocus\":{\"label\":{\"zh_CN\":\"获取焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 获取焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClear\":{\"label\":{\"zh_CN\":\"点击清空按钮时触发\"},\"description\":{\"zh_CN\":\"点击清空按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"},\"onRemoveTag\":{\"label\":{\"zh_CN\":\"多选模式下移除tag时触发\"},\"description\":{\"zh_CN\":\"多选模式下移除tag时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"被移除Tag对应数据项的值字段\"}}],\"returns\":{}},\"defaultValue\":\"\"}},\"onBeforeMount\":\"console.log(\'table on load\'); this.options = source.data\"}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"multiple\",\"options\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (30, '3.20.0', '{\"zh_CN\":\"开关\"}', 'TinySwitch', 'switch', 'Switch 在两种状态间切换选择', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Switch\"}', 'component', 'form', 9, '[{\"name\":{\"zh_CN\":\"开关\"},\"icon\":\"switch\",\"screenshot\":\"\",\"snippetName\":\"TinySwitch\",\"schema\":{\"componentName\":\"TinySwitch\",\"props\":{\"modelValue\":\"\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否被禁用\"},\"labelPosition\":\"left\"},{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"绑定默认值\"},\"labelPosition\":\"left\"},{\"property\":\"true-value\",\"label\":{\"text\":{\"zh_CN\":\"设置打开值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置打开时的值(Boolean / String / Number)\"},\"labelPosition\":\"left\"},{\"property\":\"false-value\",\"label\":{\"text\":{\"zh_CN\":\"设置关闭值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置关闭时的值(Boolean / String / Number)\"},\"labelPosition\":\"left\"},{\"property\":\"mini\",\"label\":{\"text\":{\"zh_CN\":\"迷你尺寸\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示为 mini 模式\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"点击事件\"},\"description\":{\"zh_CN\":\"按钮被点击时触发的回调函数\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"开关的状态值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的开关状态值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"mini\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (31, '3.20.0', '{\"zh_CN\":\"搜索框\"}', 'TinySearch', 'search', '指定条件对象进行搜索数据', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Search\"}', 'component', 'basic', 2, '[{\"name\":{\"zh_CN\":\"搜索框\"},\"icon\":\"search\",\"screenshot\":\"\",\"snippetName\":\"TinySearch\",\"schema\":{\"componentName\":\"TinySearch\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"输入关键词\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"默认值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框内的默认搜索值\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否被禁用\"},\"labelPosition\":\"left\"},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框内的提示占位文本\"},\"labelPosition\":\"left\"},{\"property\":\"clearable\",\"label\":{\"text\":{\"zh_CN\":\"清空按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置显示清空图标按钮\"},\"labelPosition\":\"left\"},{\"property\":\"isEnterSearch\",\"label\":{\"text\":{\"zh_CN\":\"Enter键触发\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否在按下键盘Enter键的时候触发search事件\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"mini\",\"label\":{\"text\":{\"zh_CN\":\"迷你尺寸\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"迷你模式,配置为true时,搜索默认显示为一个带图标的圆形按钮,点击后展开\"},\"labelPosition\":\"left\"},{\"property\":\"transparent\",\"label\":{\"text\":{\"zh_CN\":\"透明模式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"配置为true时,边框变为透明且收缩后半透明显示,一般用在带有背景的场景,默认 false\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"输入完成时触发\"},\"description\":{\"zh_CN\":\"在 input 框中输入完成时触发的回调函数\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"type\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"搜索类型,默认值为 {} \"}},{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前input框中值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onSearch\":{\"label\":{\"zh_CN\":\"点击搜索按钮时触发\"},\"description\":{\"zh_CN\":\"展开状态点击搜索按钮时触发的回调函数\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"type\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"搜索类型,默认值为 {} \"}},{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前input框中值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"clearable\",\"mini\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (32, '3.20.0', '{\"zh_CN\":\"复选框\"}', 'TinyCheckbox', 'checkbox', '用于配置不同场景的选项,提供用户可在一组选项中进行多选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Checkbox\"}', 'component', 'form', 4, '[{\"name\":{\"zh_CN\":\"复选框\"},\"icon\":\"checkbox\",\"screenshot\":\"\",\"snippetName\":\"TinyCheckbox\",\"schema\":{\"componentName\":\"TinyCheckbox\",\"props\":{\"text\":\"复选框文案\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定值\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"checked\",\"label\":{\"text\":{\"zh_CN\":\"勾选\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"当前是否勾选\"},\"labelPosition\":\"left\"},{\"property\":\"text\",\"label\":{\"text\":{\"zh_CN\":\"文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"复选框的文本\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"border\",\"label\":{\"text\":{\"zh_CN\":\"边框\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示边框\"},\"labelPosition\":\"left\"},{\"property\":\"false-label\",\"label\":{\"text\":{\"zh_CN\":\"未选中的值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"没有选中时的值\"},\"labelPosition\":\"left\"},{\"property\":\"true-label\",\"label\":{\"text\":{\"zh_CN\":\"选择时的值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"选中时的值\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"勾选值改变后将触发\"},\"description\":{\"zh_CN\":\"勾选值改变后将触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"选中项的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前选中的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"border\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (33, '3.20.0', '{\"zh_CN\":\"复选按钮\"}', 'TinyCheckboxButton', 'checkboxbutton', '用于配置不同场景的选项,提供用户可在一组选项中进行多选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CheckboxButton\"}', 'component', NULL, 1, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"checked\",\"label\":{\"text\":{\"zh_CN\":\"勾选\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"当前是否勾选\"},\"labelPosition\":\"left\"},{\"property\":\"text\",\"label\":{\"text\":{\"zh_CN\":\"文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"按钮文本\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"勾选值改变后将触发\"},\"description\":{\"zh_CN\":\"勾选值改变后将触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"选中项的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前选中的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"array\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"text\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (34, '3.20.0', '{\"zh_CN\":\"复选按钮组\"}', 'TinyCheckboxGroup', 'checkboxgroup', '用于配置不同场景的选项,提供用户可在一组选项中进行多选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CheckboxGroup\"}', 'component', 'form', 2, '[{\"name\":{\"zh_CN\":\"复选框组\"},\"icon\":\"checkboxs\",\"screenshot\":\"\",\"snippetName\":\"TinyCheckboxGroup\",\"schema\":{\"componentName\":\"TinyCheckboxGroup\",\"props\":{\"modelValue\":[\"name1\",\"name2\"],\"type\":\"checkbox\",\"options\":[{\"text\":\"复选框1\",\"label\":\"name1\"},{\"text\":\"复选框2\",\"label\":\"name2\"},{\"text\":\"复选框3\",\"label\":\"name3\"}]}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"dataType\":\"Array\"}},\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"options\",\"label\":{\"text\":{\"zh_CN\":\"选项列表\"}},\"defaultValue\":[{\"label\":\"标签2\"},{\"label\":\"标签2\"}],\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"checkbox组件列表\"},\"labelPosition\":\"top\"},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"ButtonGroupConfigurator\",\"props\":{\"options\":[{\"label\":\"button\",\"value\":\"button\"},{\"label\":\"checkbox\",\"value\":\"checkbox\"}]}},\"description\":{\"zh_CN\":\"checkbox组件类型(button/checkbox),该属性的默认值为 checkbox,配合 options 属性一起使用\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"勾选值改变后将触发\"},\"description\":{\"zh_CN\":\"勾选值改变后将触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"选中项的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前选中的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"array\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"type\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (35, '3.20.0', '{\"zh_CN\":\"对话框\"}', 'TinyDialogBox', 'dialogbox', '模态对话框,在浮层中显示,引导用户进行相关操作。', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"DialogBox\"}', 'component', 'data-display', 4, '[{\"name\":{\"zh_CN\":\"对话框\"},\"icon\":\"dialogbox\",\"screenshot\":\"\",\"snippetName\":\"TinyDialogBox\",\"schema\":{\"componentName\":\"TinyDialogBox\",\"props\":{\"visible\":true,\"show-close\":true,\"title\":\"dialogBox title\"},\"children\":[{\"componentName\":\"div\"}]}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"title\",\"label\":{\"text\":{\"zh_CN\":\"标题\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"弹出框标题\"},\"labelPosition\":\"left\"},{\"property\":\"visible\",\"label\":{\"text\":{\"zh_CN\":\"显示与隐藏\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"控制弹出框显示与关闭\"},\"labelPosition\":\"left\"},{\"property\":\"width\",\"label\":{\"text\":{\"zh_CN\":\"宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"弹出框的宽度\"},\"labelPosition\":\"left\"},{\"property\":\"draggable\",\"label\":{\"text\":{\"zh_CN\":\"可拖拽\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否开启弹窗的拖拽功能,默认值为 false 。\"},\"labelPosition\":\"left\"},{\"property\":\"center\",\"label\":{\"text\":{\"zh_CN\":\"居中\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"弹出框的头部与底部内容会自动居中\"},\"labelPosition\":\"left\"},{\"property\":\"dialog-class\",\"label\":{\"text\":{\"zh_CN\":\"自定义类名\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"自定义配置弹窗类名\"},\"labelPosition\":\"left\"},{\"property\":\"append-to-body\",\"label\":{\"text\":{\"zh_CN\":\"插入到Body\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"DialogBox 本身是否插入到 body 上,嵌套的 Dialog 必须指定该属性并赋值为 true\"},\"labelPosition\":\"left\"},{\"property\":\"show-close\",\"label\":{\"text\":{\"zh_CN\":\"关闭按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示关闭按钮,默认值为 true 。\"},\"labelPosition\":\"left\"}]}],\"selector\":\".TinyDialogBox\",\"events\":{\"onClose\":{\"label\":{\"zh_CN\":\"关闭弹窗时触发\"},\"description\":{\"zh_CN\":\"Dialog 关闭的回调\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:visible\":{\"label\":{\"zh_CN\":\"双向绑定的状态改变时触发\"},\"description\":{\"zh_CN\":\"显示或隐藏的状态值,发生改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"boolean\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的显示或隐藏的状态值\"}}],\"returns\":{}},\"defaultValue\":\"\"}},\"slots\":{\"title\":{\"label\":{\"zh_CN\":\"标题区\"},\"description\":{\"zh_CN\":\"Dialog 标题区的内容\"}},\"footer\":{\"label\":{\"zh_CN\":\"按钮操作区\"},\"description\":{\"zh_CN\":\"Dialog 按钮操作区的内容\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":true,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\".tiny-dialog-box\",\"shortcuts\":{\"properties\":[\"visible\",\"width\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (36, '3.20.0', '{\"zh_CN\":\"标签页\"}', 'TinyTabs', 'tabs', '分隔内容上有关联但属于不同类别的数据集合', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Tabs\"}', 'component', 'navigation', 10, '[{\"name\":{\"zh_CN\":\"标签页\"},\"icon\":\"tabs\",\"screenshot\":\"\",\"snippetName\":\"TinyTabs\",\"schema\":{\"componentName\":\"TinyTabs\",\"props\":{\"modelValue\":\"first\"},\"children\":[{\"componentName\":\"TinyTabItem\",\"props\":{\"title\":\"标签页1\",\"name\":\"first\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"}}]},{\"componentName\":\"TinyTabItem\",\"props\":{\"title\":\"标签页2\",\"name\":\"second\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"}}]}]}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"showEditIcon\",\"label\":{\"text\":{\"zh_CN\":\"显示编辑图标\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示标题后编辑 ICON\"},\"labelPosition\":\"left\"},{\"property\":\"tabs\",\"label\":{\"text\":{\"zh_CN\":\"选项卡\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"defaultValue\":\"\",\"cols\":12,\"bindState\":false,\"widget\":{\"component\":\"ContainerConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"tabs 选项卡\"},\"labelPosition\":\"none\"},{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"绑定值,选中选项卡的 name\"},\"labelPosition\":\"left\"},{\"property\":\"with-add\",\"label\":{\"text\":{\"zh_CN\":\"标签新增\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"标签是否可增加\"},\"labelPosition\":\"left\"},{\"property\":\"with-close\",\"label\":{\"text\":{\"zh_CN\":\"可关闭\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"标签是否可关闭\"},\"labelPosition\":\"left\"},{\"property\":\"tab-style\",\"label\":{\"text\":{\"zh_CN\":\"标签页样式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"card\",\"value\":\"card\"},{\"label\":\"border-card\",\"value\":\"border-card\"}]}},\"description\":{\"zh_CN\":\"标签页样式\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"点击页签时触发事件\"},\"description\":{\"zh_CN\":\"在 Input 值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"component\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前点击的页签对象\"}},{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onEdit\":{\"label\":{\"zh_CN\":\"点击新增按钮或关闭按钮或者编辑按钮后触发\"},\"description\":{\"zh_CN\":\"点击新增按钮或关闭按钮或者编辑按钮后触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"tab\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前操作的页签对象\"}},{\"name\":\"type\",\"type\":\"String\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前操作的类型(remove || add || edit)\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClose\":{\"label\":{\"zh_CN\":\"关闭页签时触发\"},\"description\":{\"zh_CN\":\"关闭页签时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"name\",\"type\":\"String\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"页签名称\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"clickCapture\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyTabItem\"],\"parentWhitelist\":[],\"descendantBlacklist\":[],\"ancestorWhitelist\":[]},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"size\",\"tab-style\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (37, '3.20.0', '{\"zh_CN\":\"tab页签\"}', 'TinyTabItem', 'tabitem', 'tab 标签页', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"TabItem\"}', 'component', NULL, 2, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"name\",\"label\":{\"text\":{\"zh_CN\":\"唯一标识\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"唯一标识\"}},{\"property\":\"title\",\"label\":{\"text\":{\"zh_CN\":\"标题\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"标题\"}}]}],\"events\":{},\"slots\":{\"title\":{\"label\":{\"zh_CN\":\"标题\"},\"description\":{\"zh_CN\":\"自定义标题\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":[\"TinyTab\"],\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"name\",\"title\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (38, '3.20.0', '{\"zh_CN\":\"面包屑\"}', 'TinyBreadcrumb', 'breadcrumb', '告诉访问者他们目前在网站中的位置以及如何返回', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Breadcrumb\"}', 'component', 'navigation', 1, '[{\"name\":{\"zh_CN\":\"面包屑\"},\"icon\":\"breadcrumb\",\"screenshot\":\"\",\"snippetName\":\"TinyBreadcrumb\",\"schema\":{\"componentName\":\"TinyBreadcrumb\",\"props\":{\"options\":[{\"to\":\"{ path: \'/\' }\",\"label\":\"首页\"},{\"to\":\"{ path: \'/breadcrumb\' }\",\"label\":\"产品\"},{\"replace\":\"true\",\"label\":\"软件\"}]}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"separator\",\"label\":{\"text\":{\"zh_CN\":\"分隔符\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"自定义分隔符\"},\"labelPosition\":\"left\"},{\"property\":\"options\",\"label\":{\"text\":{\"zh_CN\":\"配置数据\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"description\":{\"zh_CN\":\"单独使用 Breadcrumb,通过 option 配置生成面包屑\"},\"labelPosition\":\"top\"},{\"property\":\"textField\",\"label\":{\"text\":{\"zh_CN\":\"键值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"指定面包屑的显示键值,结合 options 使用\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onSelect\":{\"label\":{\"zh_CN\":\"选择 breadcrumb 时触发\"},\"description\":{\"zh_CN\":\"选择 breadcrumb 时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"clickCapture\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyBreadcrumbItem\"],\"parentWhitelist\":[],\"descendantBlacklist\":[],\"ancestorWhitelist\":[]},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"separator\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (39, '3.20.0', '{\"zh_CN\":\"面包屑项\"}', 'TinyBreadcrumbItem', 'breadcrumb', '', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"BreadcrumbItem\"}', 'component', NULL, 1, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"to\",\"label\":{\"text\":{\"zh_CN\":\"路由跳转\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"路由跳转对象,同 vue-router 的 to\"}}]}],\"slots\":{\"default\":{\"label\":{\"zh_CN\":\"面包屑项标签\"},\"description\":{\"zh_CN\":\"面包屑项\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":[\"TinyBreadcrumb\"],\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"to\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (40, '3.20.0', '{\"zh_CN\":\"折叠面板\"}', 'TinyCollapse', 'collapse', '内容区可指定动态页面或自定义 html 等,支持展开收起操作', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Collapse\"}', 'component', 'data-display', 3, '[{\"name\":{\"zh_CN\":\"折叠面板\"},\"icon\":\"collapse\",\"screenshot\":\"\",\"snippetName\":\"TinyCollapse\",\"schema\":{\"componentName\":\"TinyCollapse\",\"props\":{\"modelValue\":\"collapse1\"},\"children\":[{\"componentName\":\"TinyCollapseItem\",\"props\":{\"name\":\"collapse1\",\"title\":\"折叠项1\"},\"children\":[{\"componentName\":\"div\"}]},{\"componentName\":\"TinyCollapseItem\",\"props\":{\"name\":\"collapse2\",\"title\":\"折叠项2\"},\"children\":[{\"componentName\":\"div\"}]},{\"componentName\":\"TinyCollapseItem\",\"props\":{\"name\":\"collapse3\",\"title\":\"折叠项3\"},\"children\":[{\"componentName\":\"div\"}]}]}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"当前激活面板\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定当前激活的面板\"}}]}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"激活面板改变时触发\"},\"description\":{\"zh_CN\":\"当前激活面板改变时触发(如果是手风琴模式,参数 activeNames 类型为string,否则为array)\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"data\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前激活面板的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前激活面板的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (41, '3.20.0', '{\"zh_CN\":\"折叠面板项\"}', 'TinyCollapseItem', 'collapseitem', '内容区可指定动态页面或自定义 html 等,支持展开收起操作', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CollapseItem\"}', 'component', NULL, 2, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"name\",\"label\":{\"text\":{\"zh_CN\":\"唯一标识符\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"唯一标识符: String | Number\"},\"labelPosition\":\"left\"},{\"property\":\"title\",\"label\":{\"text\":{\"zh_CN\":\"标题\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"面板标题\"},\"labelPosition\":\"left\"}]}],\"events\":{},\"slots\":{\"title\":{\"label\":{\"zh_CN\":\"标题\"},\"description\":{\"zh_CN\":\"自定义标题\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (42, '3.20.0', '{\"zh_CN\":\"表格\"}', 'TinyGrid', 'grid', '提供了非常强大数据表格功能,可以展示数据列表,可以对数据列表进行选择、编辑等', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Grid\"}', 'component', 'table', 2, '[{\"name\":{\"zh_CN\":\"表格\"},\"icon\":\"grid\",\"screenshot\":\"\",\"snippetName\":\"tinyGrid\",\"schema\":{\"componentName\":\"TinyGrid\",\"props\":{\"editConfig\":{\"trigger\":\"click\",\"mode\":\"cell\",\"showStatus\":true},\"columns\":[{\"type\":\"index\",\"width\":60},{\"type\":\"selection\",\"width\":60},{\"field\":\"employees\",\"title\":\"员工数\"},{\"field\":\"created_date\",\"title\":\"创建日期\"},{\"field\":\"city\",\"title\":\"城市\"}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司\",\"city\":\"福州\",\"employees\":800,\"created_date\":\"2014-04-30 00:56:00\",\"boole\":false},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"employees\":300,\"created_date\":\"2016-07-08 12:36:22\",\"boole\":true}]}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础属性\"},\"description\":{\"zh_CN\":\"基础属性\"},\"content\":[{\"property\":\"data\",\"label\":{\"text\":{\"zh_CN\":\"表格数据\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"onChange\":\"this.delProp(\'fetchData\')\",\"description\":{\"zh_CN\":\"设置表格的数据\"},\"labelPosition\":\"top\"},{\"property\":\"columns\",\"label\":{\"text\":{\"zh_CN\":\"表格列\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"properties\":[{\"label\":{\"zh_CN\":\"默认分组\"},\"content\":[{\"property\":\"title\",\"type\":\"string\",\"defaultValue\":\"\",\"label\":{\"text\":{\"zh_CN\":\"列标题\"}},\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}}},{\"property\":\"field\",\"type\":\"string\",\"defaultValue\":\"\",\"label\":{\"text\":{\"zh_CN\":\"列键值\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"sortable\",\"type\":\"boolean\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"是否排序\"}},\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"labelPosition\":\"left\"},{\"property\":\"width\",\"type\":\"string\",\"defaultValue\":\"\",\"label\":{\"text\":{\"zh_CN\":\"列宽\"}},\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}}},{\"property\":\"formatText\",\"type\":\"string\",\"defaultValue\":\"\",\"label\":{\"text\":{\"zh_CN\":\"内置渲染器\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"整数\",\"value\":\"integer\"},{\"label\":\"小数\",\"value\":\"number\"},{\"label\":\"金额\",\"value\":\"money\"},{\"label\":\"百分比\",\"value\":\"rate\"},{\"label\":\"布尔\",\"value\":\"boole\"},{\"label\":\"年月日\",\"value\":\"date\"},{\"label\":\"年月日时分\",\"value\":\"dateTime\"},{\"label\":\"时间\",\"value\":\"time\"},{\"label\":\"省略\",\"value\":\"ellipsis\"}]}}},{\"property\":\"renderer\",\"type\":\"object\",\"defaultValue\":\"\",\"label\":{\"text\":{\"zh_CN\":\"渲染函数\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"dataType\":\"JSFunction\"}}},{\"property\":\"slots\",\"type\":\"object\",\"defaultValue\":\"\",\"label\":{\"text\":{\"zh_CN\":\"插槽\"}},\"labelPosition\":\"none\",\"widget\":{\"component\":\"JsSlotConfigurator\",\"props\":{\"slots\":[\"header\",\"default\"]}}},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"列类型\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"索引列\",\"value\":\"index\"},{\"label\":\"单选列\",\"value\":\"radio\"},{\"label\":\"多选列\",\"value\":\"selection\"},{\"label\":\"展开列\",\"value\":\"expand\"}],\"clearable\":true}},\"description\":{\"zh_CN\":\"设置内置列的类型,该属性的可选值为 index(序号)/ selection(复选框)/ radio(单选框)/ expand(展开行)\"},\"labelPosition\":\"left\"},{\"property\":\"editor\",\"label\":{\"text\":{\"zh_CN\":\"编辑配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"description\":{\"zh_CN\":\"单元格编辑渲染配置项,也可以是函数 Function(h, params)\"}},{\"property\":\"filter\",\"label\":{\"text\":{\"zh_CN\":\"筛选配置\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"description\":{\"zh_CN\":\"设置表格列的筛选配置信息。默认值为 false 不配置筛选信息\"}},{\"property\":\"showOverflow\",\"label\":{\"text\":{\"zh_CN\":\"内容超出部分省略号配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"只显示省略号\",\"value\":\"ellipsis\"},{\"label\":\"显示为原生 title\",\"value\":\"title\"},{\"label\":\"显示为 tooltip 提示\",\"value\":\"tooltip\"}],\"clearable\":true}},\"description\":{\"zh_CN\":\"设置内置列的内容超出部分显示省略号配置,该属性的可选值为 ellipsis(只显示省略号)/ title(显示为原生 title)/ tooltip(显示为 tooltip 提示)\"},\"labelPosition\":\"top\"}]}],\"widget\":{\"component\":\"ArrayItemConfigurator\",\"props\":{\"type\":\"object\",\"textField\":\"title\",\"language\":\"json\",\"buttonText\":\"编辑列配置\",\"title\":\"编辑列配置\",\"expand\":true}},\"description\":{\"zh_CN\":\"表格列的配置信息\"},\"labelPosition\":\"left\"},{\"property\":\"fetchData\",\"label\":{\"text\":{\"zh_CN\":\"服务端查询\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"onChange\":\"function () { this.delProp(\'data\') } \",\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"name\":\"fetchData\",\"dataType\":\"JSExpression\"}},\"description\":{\"zh_CN\":\"服务端数据查询方法\"},\"labelPosition\":\"top\"},{\"property\":\"pager\",\"label\":{\"text\":{\"zh_CN\":\"分页配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"defaultValue\":{\"attrs\":{\"currentPage\":1}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"name\":\"pager\",\"dataType\":\"JSExpression\"}},\"description\":{\"zh_CN\":\"分页配置,需结合fetchData使用\"},\"labelPosition\":\"top\"},{\"property\":\"resizable\",\"label\":{\"text\":{\"zh_CN\":\"调整列宽\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否允许调整列宽\"},\"labelPosition\":\"left\"},{\"property\":\"row-id\",\"label\":{\"text\":{\"zh_CN\":\"行数据主键\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"placeholder\":\"比如:id\"}},\"description\":{\"zh_CN\":\"自定义行数据唯一主键的字段名(行数据必须要有唯一主键,默认自动生成)\"},\"labelPosition\":\"left\"},{\"property\":\"select-config\",\"label\":{\"text\":{\"zh_CN\":\"行复选框配置\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"dataType\":\"JSExpression\"}},\"description\":{\"zh_CN\":\"表格行数据复选框配置项\"}},{\"property\":\"edit-rules\",\"label\":{\"text\":{\"zh_CN\":\"校验规则\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表格校验规则配置项\"},\"labelPosition\":\"top\"},{\"property\":\"edit-config\",\"label\":{\"text\":{\"zh_CN\":\"编辑配置项\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表格编辑配置项\"},\"labelPosition\":\"top\"},{\"property\":\"expand-config\",\"label\":{\"text\":{\"zh_CN\":\"展开行配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"展开行配置项\"},\"labelPosition\":\"top\"},{\"property\":\"sortable\",\"label\":{\"text\":{\"zh_CN\":\"可排序\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否允许列数据排序。默认为 true 可排序\"},\"labelPosition\":\"left\"}]},{\"label\":{\"zh_CN\":\"其他\"},\"description\":{\"zh_CN\":\"其他属性\"},\"content\":[{\"property\":\"auto-resize\",\"label\":{\"text\":{\"zh_CN\":\"响应式监听\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表格属性设置 autoResize 属性开启响应式表格宽高的同时,将高度height设置为auto就可以自动跟随父容器高度。\"},\"labelPosition\":\"left\"},{\"property\":\"border\",\"label\":{\"text\":{\"zh_CN\":\"边框\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否带有纵向边框\"},\"labelPosition\":\"left\"},{\"property\":\"seq-serial\",\"label\":{\"text\":{\"zh_CN\":\"行号连续\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置行序号是否连续,开启分页时有效,该属性的默认值为 false\"},\"labelPosition\":\"left\"},{\"property\":\"highlight-current-row\",\"label\":{\"text\":{\"zh_CN\":\"高亮当前行\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"高亮当前行\"},\"labelPosition\":\"left\"},{\"property\":\"highlight-hover-row\",\"label\":{\"text\":{\"zh_CN\":\"移入行高亮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"鼠标移到行是否要高亮显示\"},\"labelPosition\":\"left\"},{\"property\":\"row-class-name\",\"label\":{\"text\":{\"zh_CN\":\"设置行高亮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"给行附加 className,也可以是函数 Function({seq, row, rowIndex, $rowIndex})\"},\"labelPosition\":\"top\"},{\"property\":\"max-height\",\"label\":{\"text\":{\"zh_CN\":\"内容最大高度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置表格内容区域(不含表格头部,底部)的最大高度。\"}},{\"property\":\"row-span\",\"label\":{\"text\":{\"zh_CN\":\"行合并\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置行合并,该属性仅适用于普通表格,不可与 tree-config 同时使用\"},\"labelPosition\":\"top\"}]}],\"events\":{\"onFilterChange\":{\"label\":{\"zh_CN\":\"筛选条件改变时触发改事件\"},\"description\":{\"zh_CN\":\"配置 remote-filter 开启服务端过滤,服务端过滤会调用表格 fetch-data 进行查询,filter-change 服务端过滤后触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"table\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"{$table,filters} 包含 table 实例对象和过滤条件的对象\"}}],\"returns\":{}},\"defaultValue\":\"function onClick(e) {}\"},\"onSortChange\":{\"label\":{\"zh_CN\":\"点击列头,执行数据排序前触发的事件\"},\"description\":{\"zh_CN\":\"配置 remote-filter 开启服务端过滤,服务端过滤会调用表格 fetch-data 进行查询,filter-change 服务端过滤后触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"table\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"{$table,filters} 包含 table 实例对象和过滤条件的对象\"}}],\"returns\":{}},\"defaultValue\":\"function onClick(e) {}\"},\"onSelectAll\":{\"label\":{\"zh_CN\":\"当手动勾选全选时触发的事件\"},\"description\":{\"zh_CN\":\"只对 type=selection 有效,当手动勾选全选时触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"table\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\" 包含 table 实例对象\"}},{\"name\":\"checked\",\"type\":\"boolean\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"勾选状态\"}},{\"name\":\"selction\",\"type\":\"Array\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"选中的表格数据数组\"}}],\"returns\":{}},\"defaultValue\":\"function onClick(e) {}\"},\"onSelectChange\":{\"label\":{\"zh_CN\":\"手动勾选并且值发生改变时触发的事件\"},\"description\":{\"zh_CN\":\"只对 type=selection 有效,当手动勾选并且值发生改变时触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"table\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\" table 实例对象\"}},{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\" 原生 Event\"}}],\"returns\":{}},\"defaultValue\":\"function onClick(e) {}\"},\"onToggleExpandChange\":{\"label\":{\"zh_CN\":\"当行展开或收起时会触发该事件\"},\"description\":{\"zh_CN\":\"当行展开或收起时会触发该事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"table\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"{$table,row,rowIndex} 包含 table 实例对象和当前行数据的对象\"}},{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\" 原生 Event\"}}],\"returns\":{}},\"defaultValue\":\"function onClick(e) {}\"},\"onCurrentChange\":{\"label\":{\"zh_CN\":\"行点击时触发\"},\"description\":{\"zh_CN\":\"行点击时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"shortcuts\":{\"properties\":[\"sortable\",\"columns\"]},\"contentMenu\":{\"actions\":[\"create symbol\"]},\"onBeforeMount\":\"console.log(\'table on load\'); this.pager = source.pager; this.fetchData = source.fetchData; this.data = source.data ;this.columns = source.columns\"}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"sortable\",\"columns\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (43, '3.20.0', '{\"zh_CN\":\"分页\"}', 'TinyPager', 'pager', '当数据量过多时,使用分页分解数据,常用于 Grid 和 Repeater 组件', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Pager\"}', 'component', 'table', 1, '[{\"name\":{\"zh_CN\":\"分页\"},\"icon\":\"pager\",\"screenshot\":\"\",\"snippetName\":\"TinyPager\",\"schema\":{\"componentName\":\"TinyPager\",\"props\":{\"layout\":\"total, sizes, prev, pager, next\",\"total\":100,\"pageSize\":10,\"currentPage\":1}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"currentPage\",\"label\":{\"text\":{\"zh_CN\":\"当前页数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"当前页数,支持 .sync 修饰符\"},\"labelPosition\":\"left\"},{\"property\":\"pageSize\",\"label\":{\"text\":{\"zh_CN\":\"每页条数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"每页显示条目个数\"},\"labelPosition\":\"left\"},{\"property\":\"pageSizes\",\"label\":{\"text\":{\"zh_CN\":\"可选每页条数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置可选择的每页显示条数\"}},{\"property\":\"total\",\"label\":{\"text\":{\"zh_CN\":\"总条数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"数据总条数\"},\"labelPosition\":\"left\"},{\"property\":\"layout\",\"label\":{\"text\":{\"zh_CN\":\"布局\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"defaultValue\":\"total,sizes,prev, pager, next\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"type\":\"textarea\"}},\"description\":{\"zh_CN\":\"组件布局,子组件名用逗号分隔\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onCurrentChange \":{\"label\":{\"zh_CN\":\"切换页码时触发\"},\"description\":{\"zh_CN\":\"切换页码时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前页的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onPrevClick \":{\"label\":{\"zh_CN\":\"点击上一页按钮时触发\"},\"description\":{\"zh_CN\":\"点击上一页按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"page\",\"type\":\"String\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前页的页码值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onNextClick\":{\"label\":{\"zh_CN\":\"点击下一页按钮时触发\"},\"description\":{\"zh_CN\":\"点击上一页按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"page\",\"type\":\"String\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前页的页码值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"currentPage\",\"total\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (44, '3.20.0', '{\"zh_CN\":\"弹出编辑\"}', 'TinyPopeditor', 'popEditor', '该组件只能在弹出的面板中选择数据,不能手动输入数据;弹出面板中显示为 Tree 组件或者 Grid 组件', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Popeditor\"}', 'component', 'data-display', 6, '[{\"name\":{\"zh_CN\":\"弹出编辑\"},\"icon\":\"popeditor\",\"screenshot\":\"\",\"snippetName\":\"TinyPopeditor\",\"schema\":{\"componentName\":\"TinyPopeditor\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"gridOp\":{\"columns\":[{\"field\":\"id\",\"title\":\"ID\",\"width\":40},{\"field\":\"name\",\"title\":\"名称\",\"showOverflow\":\"tooltip\"},{\"field\":\"province\",\"title\":\"省份\",\"width\":80},{\"field\":\"city\",\"title\":\"城市\",\"width\":80}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司\",\"city\":\"福州\",\"province\":\"福建\"},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"province\":\"广东\"},{\"id\":\"3\",\"name\":\"RFV有限责任公司\",\"city\":\"中山\",\"province\":\"广东\"},{\"id\":\"4\",\"name\":\"TGB科技有限公司\",\"city\":\"龙岩\",\"province\":\"福建\"},{\"id\":\"5\",\"name\":\"YHN科技有限公司\",\"city\":\"韶关\",\"province\":\"广东\"},{\"id\":\"6\",\"name\":\"WSX科技有限公司\",\"city\":\"黄冈\",\"province\":\"武汉\"}]}}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定值\"},\"labelPosition\":\"left\"},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框占位文本\"},\"labelPosition\":\"left\"},{\"property\":\"show-clear-btn\",\"label\":{\"text\":{\"zh_CN\":\"清除按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示清除按钮\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"width\",\"label\":{\"text\":{\"zh_CN\":\"宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置弹出面板的宽度(单位像素)\"},\"labelPosition\":\"left\"},{\"property\":\"conditions\",\"label\":{\"text\":{\"zh_CN\":\"过滤条件\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"当弹出面板配置的是表格时,设置弹出面板中的过滤条件\"},\"labelPosition\":\"top\"},{\"property\":\"grid-op\",\"label\":{\"text\":{\"zh_CN\":\"面板表格配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置弹出面板中表格组件的配置信息\"}},{\"property\":\"pager-op\",\"label\":{\"text\":{\"zh_CN\":\"分页配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置弹出编辑框中分页配置\"},\"labelPosition\":\"top\"},{\"property\":\"multi\",\"label\":{\"text\":{\"zh_CN\":\"多选\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置弹出面板中的数据是否可多选\"},\"labelPosition\":\"left\"},{\"property\":\"show-pager\",\"label\":{\"text\":{\"zh_CN\":\"启用分页\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"当 popseletor 为 grid 时才能生效,配置为 true 后还需配置 pagerOp 属性\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"选中值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中项的值\"}},{\"name\":\"value\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中对象\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前选中的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClose\":{\"label\":{\"zh_CN\":\"弹框关闭时触发的事件\"},\"description\":{\"zh_CN\":\"弹框关闭时触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"},\"onPageChange\":{\"label\":{\"zh_CN\":\"分页切换事件\"},\"description\":{\"zh_CN\":\"表格模式下分页切换事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"String\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前页码数\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"modelValue\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (45, '3.20.0', '{\"zh_CN\":\"树\"}', 'TinyTree', 'tree', '可进行展示有父子层级的数据,支持选择,异步加载等功能。但不推荐用它来展示菜单,展示菜单推荐使用树菜单', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Tree\"}', 'component', 'data-display', 12, '[{\"name\":{\"zh_CN\":\"树\"},\"icon\":\"tree\",\"screenshot\":\"\",\"snippetName\":\"TinyTree\",\"schema\":{\"componentName\":\"TinyTree\",\"props\":{\"data\":[{\"label\":\"一级 1\",\"children\":[{\"label\":\"二级 1-1\",\"children\":[{\"label\":\"三级 1-1-1\"}]}]},{\"label\":\"一级 2\",\"children\":[{\"label\":\"二级 2-1\",\"children\":[{\"label\":\"三级 2-1-1\"}]},{\"label\":\"二级 2-2\",\"children\":[{\"label\":\"三级 2-2-1\"}]}]}]}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"show-checkbox\",\"label\":{\"text\":{\"zh_CN\":\"多选\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置接口是否可以多选\"},\"labelPosition\":\"left\"},{\"property\":\"data\",\"label\":{\"text\":{\"zh_CN\":\"数据源\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"defaultValue\":[{\"label\":\"一级 1\",\"children\":[{\"label\":\"二级 1-1\"}]}],\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"可配置静态数据源和动态数据源\"},\"labelPosition\":\"top\"},{\"property\":\"node-key\",\"label\":{\"text\":{\"zh_CN\":\"唯一标识\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"节点唯一标识属性名称\"},\"labelPosition\":\"left\"},{\"property\":\"render-content\",\"label\":{\"text\":{\"zh_CN\":\"渲染函数\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"disabled\":true,\"placeholder\":\"请使用变量绑定来绑定函数\"}},\"description\":{\"zh_CN\":\"树节点的内容区的渲染函数\"}},{\"property\":\"icon-trigger-click-node\",\"label\":{\"text\":{\"zh_CN\":\"触发NodeClick事件\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"点击图标展开节点时是否触发 node-click 事件\"},\"labelPosition\":\"left\"},{\"property\":\"expand-icon\",\"label\":{\"text\":{\"zh_CN\":\"展开图标\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"节点展开图标\"},\"labelPosition\":\"top\"},{\"property\":\"shrink-icon\",\"label\":{\"text\":{\"zh_CN\":\"收缩图标\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"节点收缩的图标\"},\"labelPosition\":\"top\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"check-on-click-node\",\"label\":{\"text\":{\"zh_CN\":\"点击节点选中\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点\"},\"labelPosition\":\"left\"},{\"property\":\"filter-node-method\",\"label\":{\"text\":{\"zh_CN\":\"筛选函数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"节点筛选函数\"},\"labelPosition\":\"top\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onCheck\":{\"label\":{\"zh_CN\":\"勾选节点后的事件\"},\"description\":{\"zh_CN\":\"勾选节点后的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"data\",\"type\":\"object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中节点信息\"}},{\"name\":\"currentNode\",\"type\":\"object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"树组件目前的选中状态信息,包含 checkedNodes、checkedKeys、halfCheckedNodes、halfCheckedKeys 四个属性\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onNodeClick\":{\"label\":{\"zh_CN\":\"点击节点后的事件\"},\"description\":{\"zh_CN\":\"点击节点后的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"data\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中节点信息\"}},{\"name\":\"node\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"树组件目前的选中状态信息,包含 checkedNodes、checkedKeys、halfCheckedNodes、halfCheckedKeys 四个属性\"}},{\"name\":\"vm\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"树组件实例\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"data\",\"show-checkbox\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (46, '3.20.0', '{\"zh_CN\":\"时间线\"}', 'TinyTimeLine', 'timeline', 'TimeLine 时间线', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"TimeLine\"}', 'component', 'navigation', 3, '[{\"name\":{\"zh_CN\":\"时间线\"},\"icon\":\"timeline\",\"screenshot\":\"\",\"snippetName\":\"TinyTimeLine\",\"schema\":{\"componentName\":\"TinyTimeLine\",\"props\":{\"active\":\"2\",\"data\":[{\"name\":\"已下单\"},{\"name\":\"运输中\"},{\"name\":\"已签收\"}]}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"horizontal\",\"type\":\"Boolean\",\"defaultValue\":{\"type\":\"i18n\",\"zh_CN\":\"布局\",\"en_US\":\"layout\",\"key\":\"\"},\"label\":{\"text\":{\"zh_CN\":\"水平布局\"}},\"cols\":12,\"rules\":[],\"hidden\":false,\"required\":true,\"readOnly\":false,\"disabled\":false,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"节点和文字横向布局\"},\"labelPosition\":\"left\"},{\"property\":\"vertical\",\"type\":\"Boolean\",\"defaultValue\":{\"type\":\"i18n\",\"zh_CN\":\"垂直布局\",\"en_US\":\"layout\",\"key\":\"\"},\"label\":{\"text\":{\"zh_CN\":\"垂直布局\"}},\"cols\":12,\"rules\":[],\"hidden\":false,\"required\":true,\"readOnly\":false,\"disabled\":false,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"节点和文字垂直布局\"},\"labelPosition\":\"left\"},{\"property\":\"active\",\"label\":{\"text\":{\"zh_CN\":\"选中值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"步骤条的选中步骤值\"},\"labelPosition\":\"left\"},{\"property\":\"data\",\"label\":{\"text\":{\"zh_CN\":\"步骤条数据\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"defaultValue\":[{\"name\":\"配置基本信息\",\"status\":\"ready\"},{\"name\":\"配置报价\",\"status\":\"wait\"},{\"name\":\"完成报价\",\"status\":\"wait\"}],\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"description\":{\"zh_CN\":\"时间线步骤条数据\"},\"labelPosition\":\"top\"}]}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"节点的点击时触发\"},\"description\":{\"zh_CN\":\"节点的点击时触发的回调函数\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"type\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"点击节点的下标\"}},{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前节点对象:{ name: 节点名称, time: 时间 }\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"active\",\"data\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (47, '3.20.0', '{\"zh_CN\":\"文字提示框\"}', 'TinyTooltip', 'tooltip', '动态显示提示信息,一般通过鼠标事件进行响应;提供 warning、error、info、success 四种类型显示不同类别的信', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Tooltip\"}', 'component', 'data-display', 11, '[{\"name\":{\"zh_CN\":\"文字提示框\"},\"icon\":\"tooltip\",\"screenshot\":\"\",\"snippetName\":\"TinyTooltip\",\"schema\":{\"componentName\":\"TinyTooltip\",\"props\":{\"content\":\"Top Left 提示文字\",\"placement\":\"top-start\",\"manual\":true,\"modelValue\":true},\"children\":[{\"componentName\":\"span\",\"children\":[{\"componentName\":\"div\",\"props\":{}}]},{\"componentName\":\"Template\",\"props\":{\"slot\":\"content\"},\"children\":[{\"componentName\":\"span\",\"children\":[{\"componentName\":\"div\",\"props\":{\"placeholder\":\"提示内容\"}}]}]}]}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"placement\",\"label\":{\"text\":{\"zh_CN\":\"提示位置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"top\",\"value\":\"top\"},{\"label\":\"top-start\",\"value\":\"top-start\"},{\"label\":\"top-end\",\"value\":\"top-end\"},{\"label\":\"bottom\",\"value\":\"bottom\"},{\"label\":\"bottom-start\",\"value\":\"bottom-start\"},{\"label\":\"bottom-end\",\"value\":\"bottom-end\"},{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"left-start\",\"value\":\"left-start\"},{\"label\":\"left-end\",\"value\":\"left-end\"},{\"label\":\"right\",\"value\":\"right\"},{\"label\":\"right-start\",\"value\":\"right-start\"},{\"label\":\"right-end\",\"value\":\"right-end\"}]}},\"description\":{\"zh_CN\":\"Tooltip 的出现位置\"},\"labelPosition\":\"left\"},{\"property\":\"content\",\"label\":{\"text\":{\"zh_CN\":\"内容\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"defaultValue\":\"提示信息\",\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"显示的内容,也可以通过 slot#content 传入 DOM\"},\"labelPosition\":\"left\"},{\"property\":\"render-content\",\"label\":{\"text\":{\"zh_CN\":\"渲染函数\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"disabled\":true,\"placeholder\":\"请使用变量绑定来绑定函数\"}},\"description\":{\"zh_CN\":\"自定义渲染函数,返回需要渲染的节点内容\"}},{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"是否可见\"}},\"defaultValue\":true,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"状态是否可见\"},\"labelPosition\":\"left\"},{\"property\":\"manual\",\"label\":{\"text\":{\"zh_CN\":\"手动控制\"}},\"defaultValue\":true,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"手动控制模式,设置为 true 后,mouseenter 和 mouseleave 事件将不会生效\"},\"labelPosition\":\"left\"}]}],\"events\":{},\"slots\":{\"content\":{\"label\":{\"zh_CN\":\"提示内容\"},\"description\":{\"zh_CN\":\"自定义提示内容\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":true,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"content\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (48, '3.20.0', '{\"zh_CN\":\"提示框\"}', 'TinyPopover', 'popover', 'Popover可通过对一个触发源操作触发弹出框,支持自定义弹出内容,延迟触发和渐变动画', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Popover\"}', 'component', 'data-display', 7, '[{\"name\":{\"zh_CN\":\"提示框\"},\"icon\":\"popover\",\"screenshot\":\"\",\"snippetName\":\"TinyPopover\",\"schema\":{\"componentName\":\"TinyPopover\",\"props\":{\"width\":200,\"title\":\"弹框标题\",\"trigger\":\"manual\",\"modelValue\":true},\"children\":[{\"componentName\":\"Template\",\"props\":{\"slot\":\"reference\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"placeholder\":\"触发源\"}}]},{\"componentName\":\"Template\",\"props\":{\"slot\":\"default\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"placeholder\":\"提示内容\"}}]}]}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定,手动控制是否可见的状态值\"},\"labelPosition\":\"left\"},{\"property\":\"placement\",\"label\":{\"text\":{\"zh_CN\":\"位置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"top\",\"value\":\"top\"},{\"label\":\"top-start\",\"value\":\"top-start\"},{\"label\":\"top-end\",\"value\":\"top-end\"},{\"label\":\"bottom\",\"value\":\"bottom\"},{\"label\":\"bottom-start\",\"value\":\"bottom-start\"},{\"label\":\"bottom-end\",\"value\":\"bottom-end\"},{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"left-start\",\"value\":\"left-start\"},{\"label\":\"left-end\",\"value\":\"left-end\"},{\"label\":\"right\",\"value\":\"right\"},{\"label\":\"right-start\",\"value\":\"right-start\"},{\"label\":\"right-end\",\"value\":\"right-end\"}]}},\"description\":{\"zh_CN\":\"提示框位置\"},\"labelPosition\":\"left\"},{\"property\":\"trigger\",\"label\":{\"text\":{\"zh_CN\":\"触发方式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"click\",\"value\":\"click\"},{\"label\":\"focus\",\"value\":\"focus\"},{\"label\":\"hover\",\"value\":\"hover\"},{\"label\":\"manual\",\"value\":\"manual\"}]}},\"description\":{\"zh_CN\":\"触发方式,该属性的可选值为 click / focus / hover / manual,该属性的默认值为 click\"},\"labelPosition\":\"left\"},{\"property\":\"popper-class\",\"label\":{\"text\":{\"zh_CN\":\"自定义类\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"为 popper 添加类名\"},\"labelPosition\":\"left\"},{\"property\":\"visible-arrow\",\"label\":{\"text\":{\"zh_CN\":\"显示箭头\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示 Tooltip 箭头\"},\"labelPosition\":\"left\"},{\"property\":\"append-to-body\",\"label\":{\"text\":{\"zh_CN\":\"添加到body上\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"Popover弹窗是否添加到body上\"},\"labelPosition\":\"left\"},{\"property\":\"arrow-offset\",\"label\":{\"text\":{\"zh_CN\":\"箭头的位置偏移\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"箭头的位置偏移,该属性的默认值为 0\"}},{\"property\":\"close-delay\",\"label\":{\"text\":{\"zh_CN\":\"延迟隐藏\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"触发方式为 hover 时的隐藏延迟,单位为毫秒\"},\"labelPosition\":\"left\"},{\"property\":\"content\",\"label\":{\"text\":{\"zh_CN\":\"显示的内容\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"显示的内容,也可以通过 slot 传入 DOM\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"Popover 是否可用\"},\"labelPosition\":\"left\"},{\"property\":\"offset\",\"label\":{\"text\":{\"zh_CN\":\"位置偏移量\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"出现位置的偏移量\"},\"labelPosition\":\"left\"},{\"property\":\"open-delay\",\"label\":{\"text\":{\"zh_CN\":\"显示延迟\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"触发方式为 hover 时的显示延迟,单位为毫秒\"},\"labelPosition\":\"left\"},{\"property\":\"popper-options\",\"label\":{\"text\":{\"zh_CN\":\"弹出层参数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"popper.js 的参数\"},\"labelPosition\":\"top\"},{\"property\":\"title\",\"label\":{\"text\":{\"zh_CN\":\"标题\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"提示内容标题\"},\"labelPosition\":\"left\"},{\"property\":\"transform-origin\",\"label\":{\"text\":{\"zh_CN\":\"旋转中心点\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"组件的旋转中心点,组件的旋转中心点\"},\"labelPosition\":\"left\"},{\"property\":\"transition\",\"label\":{\"text\":{\"zh_CN\":\"渐变动画\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"该属性的默认值为 fade-in-linear\"},\"labelPosition\":\"left\"},{\"property\":\"width\",\"label\":{\"text\":{\"zh_CN\":\"宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"宽度\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"手动控制是否可见的状态值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"boolean\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的可见状态值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":true,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"visible\",\"width\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (49, '3.20.0', '{\"zh_CN\":\"日期选择\"}', 'TinyDatePicker', 'datepick', '用于输入或选择日期', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"DatePicker\"}', 'component', 'form', 1, '[{\"name\":{\"zh_CN\":\"日期选择\"},\"icon\":\"datepick\",\"screenshot\":\"\",\"snippetName\":\"TinyDatePicker\",\"schema\":{\"componentName\":\"TinyDatePicker\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定值\"},\"labelPosition\":\"left\"},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"日期\",\"value\":\"date\"},{\"label\":\"日期时间\",\"value\":\"datetime\"},{\"label\":\"周\",\"value\":\"week\"},{\"label\":\"月份\",\"value\":\"month\"},{\"label\":\"年份\",\"value\":\"year\"}]}},\"description\":{\"zh_CN\":\"设置日期框的type属性\"},\"labelPosition\":\"left\"},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框占位文本\"},\"labelPosition\":\"left\"},{\"property\":\"clearable\",\"label\":{\"text\":{\"zh_CN\":\"清除按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示清除按钮\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"readonly\",\"label\":{\"text\":{\"zh_CN\":\"只读\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否只读\"},\"labelPosition\":\"left\"},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"medium\",\"value\":\"medium\"},{\"label\":\"small\",\"value\":\"small\"},{\"label\":\"mini\",\"value\":\"mini\"}]}},\"description\":{\"zh_CN\":\"日期框尺寸。该属性的可选值为 medium / small / mini\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"maxlength\",\"label\":{\"text\":{\"zh_CN\":\"输入最大长度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置 input 框的maxLength\"}},{\"property\":\"autofocus\",\"label\":{\"text\":{\"zh_CN\":\"聚焦\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"自动获取焦点\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框改变后的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onInput\":{\"label\":{\"zh_CN\":\"输入值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框输入的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onBlur\":{\"label\":{\"zh_CN\":\"失去焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onFocus\":{\"label\":{\"zh_CN\":\"获取焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 获取焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClear\":{\"label\":{\"zh_CN\":\"点击清空按钮时触发\"},\"description\":{\"zh_CN\":\"点击清空按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"value\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (50, '3.20.0', '{\"zh_CN\":\"数字输入框\"}', 'TinyNumeric', 'numeric', '通过鼠标或键盘输入字符', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Numeric\"}', 'component', 'form', 1, '[{\"name\":{\"zh_CN\":\"数字输入框\"},\"icon\":\"numeric\",\"screenshot\":\"\",\"snippetName\":\"TinyNumeric\",\"schema\":{\"componentName\":\"TinyNumeric\",\"props\":{\"allow-empty\":true,\"placeholder\":\"请输入\",\"controlsPosition\":\"right\",\"step\":1}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定值\"},\"labelPosition\":\"left\"},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框占位文本\"},\"labelPosition\":\"left\"},{\"property\":\"allow-empty\",\"label\":{\"text\":{\"zh_CN\":\"内容可清空\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否内容可清空\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"medium\",\"value\":\"medium\"},{\"label\":\"small\",\"value\":\"small\"},{\"label\":\"mini\",\"value\":\"mini\"}]}},\"description\":{\"zh_CN\":\"输入框尺寸。该属性的可选值为 medium / small / mini\"},\"labelPosition\":\"left\"},{\"property\":\"controls\",\"label\":{\"text\":{\"zh_CN\":\"加减按钮\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否使用加减按钮\"},\"labelPosition\":\"left\"},{\"property\":\"controls-position\",\"label\":{\"text\":{\"zh_CN\":\"加减按钮位置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"左右两侧\",\"value\":\"\"},{\"label\":\"只在右侧\",\"value\":\"right\"}]}},\"description\":{\"zh_CN\":\"加减按钮位置\"}},{\"property\":\"precision\",\"label\":{\"text\":{\"zh_CN\":\"精度\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"allowEmpty\":true}},\"description\":{\"zh_CN\":\"数值精度\"},\"labelPosition\":\"left\"},{\"property\":\"step\",\"label\":{\"text\":{\"zh_CN\":\"步长\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"allowEmpty\":true}},\"description\":{\"zh_CN\":\"步长\"},\"labelPosition\":\"left\"},{\"property\":\"max\",\"label\":{\"text\":{\"zh_CN\":\"最大数值\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"allowEmpty\":true}},\"description\":{\"zh_CN\":\"可输入的最大数值\"},\"labelPosition\":\"left\"},{\"property\":\"min\",\"label\":{\"text\":{\"zh_CN\":\"最小数值\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"allowEmpty\":true}},\"description\":{\"zh_CN\":\"可输入的最大数值\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框改变后的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onInput\":{\"label\":{\"zh_CN\":\"输入值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框输入的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onBlur\":{\"label\":{\"zh_CN\":\"失去焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onFocus\":{\"label\":{\"zh_CN\":\"获取焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 获取焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClear\":{\"label\":{\"zh_CN\":\"点击清空按钮时触发\"},\"description\":{\"zh_CN\":\"点击清空按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"value\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); + +INSERT INTO `t_component_library` (`id`, `version`, `name`, `app_id`, `package`, `registry`, `framework`, `description`, `script`, `css`, `bundle`, `dependencies`, `others`, `thumbnail`, `public`, `is_started`, `is_official`, `is_default`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (1, '3.20.0', 'TinyVue组件库', NULL, '@opentiny/vue', NULL, 'Vue', NULL, 'https://unpkg.com/@opentiny/vue-runtime@~3.20/dist3/tiny-vue-pc.mjs', 'https://unpkg.com/@opentiny/vue-theme@~3.20/index.css', NULL, NULL, NULL, NULL, NULL, 1, 1, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component_library` (`id`, `version`, `name`, `app_id`, `package`, `registry`, `framework`, `description`, `script`, `css`, `bundle`, `dependencies`, `others`, `thumbnail`, `public`, `is_started`, `is_official`, `is_default`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (2, '2.4.2', 'element-plus组件库', NULL, 'element-plus', NULL, 'Vue', NULL, 'https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs', 'https://unpkg.com/element-plus@2.4.2/dist/index.css', NULL, NULL, NULL, NULL, NULL, 1, 1, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); + +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (1, 1, 1); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (2, 1, 2); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (3, 1, 3); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (4, 1, 4); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (5, 1, 5); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (6, 1, 6); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (7, 1, 7); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (8, 1, 8); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (9, 1, 9); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (10, 1, 10); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (11, 1, 11); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (12, 1, 12); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (13, 1, 13); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (14, 1, 14); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (15, 1, 15); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (16, 1, 16); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (17, 1, 17); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (18, 1, 18); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (19, 1, 19); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (20, 1, 20); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (21, 1, 21); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (22, 1, 22); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (23, 1, 23); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (24, 1, 24); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (25, 1, 25); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (26, 1, 26); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (27, 1, 27); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (28, 1, 28); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (29, 1, 29); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (30, 1, 30); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (31, 1, 31); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (32, 1, 32); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (33, 1, 33); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (34, 1, 34); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (35, 1, 35); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (36, 1, 36); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (37, 1, 37); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (38, 1, 38); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (39, 1, 39); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (40, 1, 40); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (41, 1, 41); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (42, 1, 42); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (43, 1, 43); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (44, 1, 44); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (45, 1, 45); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (46, 1, 46); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (47, 1, 47); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (48, 1, 48); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (49, 1, 49); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (50, 1, 50); + +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (1, 1, 1); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (2, 1, 2); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (3, 1, 3); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (4, 1, 4); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (5, 1, 5); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (6, 1, 6); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (7, 1, 7); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (8, 1, 8); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (9, 1, 9); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (10, 1, 10); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (11, 1, 11); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (12, 1, 12); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (13, 1, 13); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (14, 1, 14); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (15, 1, 15); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (16, 1, 16); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (17, 1, 17); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (18, 1, 18); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (19, 1, 19); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (20, 1, 20); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (21, 1, 21); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (22, 1, 22); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (23, 1, 23); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (24, 1, 24); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (25, 1, 25); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (26, 1, 26); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (27, 1, 27); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (28, 1, 28); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (29, 1, 29); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (30, 1, 30); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (31, 1, 31); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (32, 1, 32); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (33, 1, 33); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (34, 1, 34); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (35, 1, 35); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (36, 1, 36); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (37, 1, 37); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (38, 1, 38); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (39, 1, 39); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (40, 1, 40); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (41, 1, 41); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (42, 1, 42); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (43, 1, 43); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (44, 1, 44); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (45, 1, 45); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (46, 1, 46); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (47, 1, 47); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (48, 1, 48); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (49, 1, 49); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (50, 1, 50); diff --git a/app/src/main/resources/sql/h2/update_all_tables_ddl.sql b/app/src/main/resources/sql/h2/update_all_tables_ddl.sql index d041c58a..879a44c7 100644 --- a/app/src/main/resources/sql/h2/update_all_tables_ddl.sql +++ b/app/src/main/resources/sql/h2/update_all_tables_ddl.sql @@ -28,4 +28,5 @@ ALTER TABLE t_platform_history MODIFY tenant_id varchar(60) NULL; ALTER TABLE t_task_record MODIFY tenant_id varchar(60) NULL; ALTER TABLE t_user MODIFY tenant_id varchar(60) NULL; -ALTER TABLE t_component_library ADD app_id int NULL; \ No newline at end of file +ALTER TABLE t_component_library ADD app_id int NULL; + diff --git a/app/src/main/resources/sql/mysql/create_all_tables_ddl_v1.mysql.sql b/app/src/main/resources/sql/mysql/create_all_tables_ddl_v1.0.0.mysql.sql similarity index 100% rename from app/src/main/resources/sql/mysql/create_all_tables_ddl_v1.mysql.sql rename to app/src/main/resources/sql/mysql/create_all_tables_ddl_v1.0.0.mysql.sql diff --git a/app/src/main/resources/sql/mysql/init_data_for_test.sql b/app/src/main/resources/sql/mysql/init_data_for_test.sql deleted file mode 100644 index cf486610..00000000 --- a/app/src/main/resources/sql/mysql/init_data_for_test.sql +++ /dev/null @@ -1,180 +0,0 @@ -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (73, '2.4.2', '{\"zh_CN\":\"输入框\"}', 'ElInput', 'input', '通过鼠标或键盘输入字符', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"version\":\"2.4.2\",\"script\":\"https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs\",\"css\":\"https://unpkg.com/element-plus@2.4.2/dist/index.css\",\"dependencies\":null,\"exportName\":\"ElInput\", \"destructuring\": true}', '表单组件', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"输入框\"},\"icon\":\"input\",\"screenshot\":\"\",\"snippetName\":\"ElInput\",\"schema\":{}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"type\",\"size\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (74, '2.4.2', '{\"zh_CN\":\"按钮\"}', 'ElButton', 'button', '常用的操作按钮', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"version\":\"2.4.2\",\"script\":\"https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs\",\"css\":\"https://unpkg.com/element-plus@2.4.2/dist/index.css\",\"dependencies\":null,\"exportName\":\"ElButton\", \"destructuring\": true}', '基础组件', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"按钮\"},\"icon\":\"button\",\"screenshot\":\"\",\"snippetName\":\"ElButton\",\"schema\":{\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"按钮文本\"}}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"type\",\"size\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (75, '2.4.2', '{\"zh_CN\":\"表单\"}', 'ElForm', 'form', '表单包含 输入框, 单选框, 下拉选择, 多选框 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"version\":\"2.4.2\",\"script\":\"https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs\",\"css\":\"https://unpkg.com/element-plus@2.4.2/dist/index.css\",\"dependencies\":null,\"exportName\":\"ElForm\", \"destructuring\": true}', '表单组件', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"表单\"},\"icon\":\"form\",\"screenshot\":\"\",\"snippetName\":\"ElForm\",\"schema\":{\"children\":[{\"componentName\":\"ElFormItem\",\"props\":{\"label\":\"账号\",\"prop\":\"account\"},\"children\":[{\"componentName\":\"ElInput\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请输入账号\"}}]},{\"componentName\":\"ElFormItem\",\"props\":{\"label\":\"密码\",\"prop\":\"password\"},\"children\":[{\"componentName\":\"ElInput\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请输入密码\",\"type\":\"password\"}}]},{\"componentName\":\"ElFormItem\",\"props\":{},\"children\":[{\"componentName\":\"ElButton\",\"props\":{\"type\":\"primary\",\"style\":\"margin-right: 10px\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"提交\"}}]},{\"componentName\":\"ElButton\",\"props\":{\"type\":\"primary\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"重置\"}}]}]}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":[\"ElFormItem\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (76, '2.4.2', '{\"zh_CN\":\"表单子项\"}', 'ElFormItem', 'formItem', '表单包含 输入框, 单选框, 下拉选择, 多选框 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"version\":\"2.4.2\",\"script\":\"https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs\",\"css\":\"https://unpkg.com/element-plus@2.4.2/dist/index.css\",\"dependencies\":null,\"exportName\":\"ElFormItem\", \"destructuring\": true}', '表单组件', 'element-plus', NULL, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (77, '2.4.2', '{\"zh_CN\":\"表单\"}', 'ElTable', 'table', '用于展示多条结构类似的数据, 可对数据进行排序、筛选、对比或其他自定义操作', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"version\":\"2.4.2\",\"script\":\"https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs\",\"css\":\"https://unpkg.com/element-plus@2.4.2/dist/index.css\",\"dependencies\":null,\"exportName\":\"ElTable\", \"destructuring\": true}', '数据展示', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"表格\"},\"icon\":\"grid\",\"screenshot\":\"\",\"snippetName\":\"ElTable\",\"schema\":{\"props\":{\"data\":[{\"date\":\"2016-05-03\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"},{\"date\":\"2016-05-02\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"},{\"date\":\"2016-05-04\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"},{\"date\":\"2016-05-01\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"}],\"columns\":[{\"type\":\"index\"},{\"label\":\"Date\",\"prop\":\"date\"},{\"label\":\"Name\",\"prop\":\"name\"},{\"label\":\"Address\",\"prop\":\"address\"}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":[\"ElTableColumn\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (78, '2.4.2', '{\"zh_CN\":\"表单\"}', 'ElTableColumn', 'table', '用于展示多条结构类似的数据, 可对数据进行排序、筛选、对比或其他自定义操作', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"version\":\"2.4.2\",\"script\":\"https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs\",\"css\":\"https://unpkg.com/element-plus@2.4.2/dist/index.css\",\"dependencies\":null,\"exportName\":\"ElTableColumn\", \"destructuring\": true}', '表单组件', 'element-plus', NULL, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (79, '2.4.2', '{\"zh_CN\":\"走马灯子项\"}', 'TinyCarouselItem', 'carouselitem', '常用于一组图片或卡片轮播,当内容空间不足时,可以用走马灯的形式进行收纳,进行轮播展现。', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CarouselItem\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', '容器组件', 2, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (80, '2.4.2', '{\"zh_CN\":\"走马灯\"}', 'TinyCarousel', 'carousel', '常用于一组图片或卡片轮播,当内容空间不足时,可以用走马灯的形式进行收纳,进行轮播展现。', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Carousel\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', '容器组件', 2, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"clickCapture\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyCarouselItem\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (81, '2.4.2', '{\"zh_CN\":\"提示框\"}', 'a', 'link', '链接', '', '', '', '', 'proCode', '{}', 'component', 'basic', 7, '[{\"name\":{\"zh_CN\":\"链接\"},\"icon\":\"link\",\"screenshot\":\"\",\"snippetName\":\"a\",\"schema\":{\"componentName\":\"a\",\"children\":\"链接\"}}]', NULL, '{\"loop\":true,\"condition\":true,\"slots\":[],\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[]},\"contextMenu\":{\"actions\":[],\"disable\":[]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (82, '2.4.2', '{\"zh_CN\":\"标题\"}', '[h1, h2, h3, h4, h5, h6]', 'h16', '标题', '', '', '', '', 'proCode', '{}', 'component', 'html', 20, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (83, '2.4.2', '{\"zh_CN\":\"段落\"}', 'p', 'paragraph', '段落', '', '', '', '', 'proCode', '{}', 'component', 'basic', 30, '[{\"name\":{\"zh_CN\":\"段落\"},\"icon\":\"paragraph\",\"screenshot\":\"\",\"snippetName\":\"p\",\"schema\":{\"componentName\":\"p\",\"children\":\"TinyEngine 前端可视化设计器致力于通过友好的用户交互提升业务应用的开发效率。\"}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[]},\"contextMenu\":{\"actions\":[],\"disable\":[]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (84, '2.4.2', '{\"zh_CN\":\"输入框\"}', 'input', 'input', '输入框', '', '', '', '', 'proCode', '{}', 'component', 'html', 40, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (85, '2.4.2', '{\"zh_CN\":\"视频\"}', 'video', 'video', '视频', '', '', '', '', 'proCode', '{}', 'component', 'basic', 50, '[{\"name\":{\"zh_CN\":\"视频\"},\"icon\":\"video\",\"screenshot\":\"\",\"snippetName\":\"video\",\"schema\":{\"componentName\":\"video\",\"props\":{\"src\":\"img/webNova.jpg\",\"width\":\"200\",\"height\":\"100\",\"style\":\"border:1px solid #ccc\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[]},\"contextMenu\":{\"actions\":[],\"disable\":[]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (86, '2.4.2', '{\"zh_CN\":\"Img\"}', 'Img', 'Image', '图片', NULL, '', '', '', 'proCode', '{}', 'component', 'html', 60, NULL, NULL, NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (87, '2.4.2', '{\"zh_CN\":\"Button\"}', 'button', 'button', '按钮', NULL, '', '', '', 'proCode', '{}', 'component', 'html', 70, NULL, NULL, '{\"isContainer\":true}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (88, '2.4.2', '{\"zh_CN\":\"表格\"}', 'table', 'table', '表格', NULL, '', '', '', 'proCode', '{}', 'component', 'html', 80, NULL, NULL, NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (89, '2.4.2', '{\"zh_CN\":\"表格单元格\"}', 'td', 'td', '表格单元格', NULL, '', '', '', 'proCode', '{}', 'component', 'html', 90, NULL, NULL, NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:18', '1', '2024-12-09 22:56:18'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (90, '2.4.2', '{\"zh_CN\":\"表单\"}', 'form', 'form', '表单', NULL, '', '', '', 'proCode', '{}', 'component', 'html', 100, NULL, NULL, '{\"isContainer\":true}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (91, '2.4.2', '{\"zh_CN\":\"表单标签\"}', 'label', 'label', '表单标签', NULL, '', '', '', 'proCode', '{}', 'component', 'html', 110, NULL, NULL, NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (92, '2.4.2', '{\"zh_CN\":\"按钮组\"}', 'TinyButtonGroup', 'buttonGroup', '以按钮组的方式出现,常用于多项类似操作', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"ButtonGroup\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'basic', 2, '[{\"name\":{\"zh_CN\":\"互斥按钮组\"},\"icon\":\"buttons\",\"screenshot\":\"\",\"snippetName\":\"TinyButtonGroup\",\"schema\":{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"Button1\",\"value\":\"1\"},{\"text\":\"Button2\",\"value\":\"2\"},{\"text\":\"Button3\",\"value\":\"3\"}],\"modelValue\":\"1\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (93, '2.4.2', '{\"zh_CN\":\"row\"}', 'TinyRow', 'row', '定义 Layout 的行配置信息', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Row\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 5, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (94, '2.4.2', '{\"zh_CN\":\"表单\"}', 'TinyForm', 'form', '由按钮、输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Form\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 5, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (95, '2.4.2', '{\"zh_CN\":\"表单项\"}', 'TinyFormItem', 'formitem', '由按钮、输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"FormItem\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 12, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":[\"TinyForm\"],\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label\",\"rules\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (96, '2.4.2', '{\"zh_CN\":\"col\"}', 'TinyCol', 'col', '列配置信息', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Col\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 2, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label\",\"rules\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (97, '2.4.2', '{\"zh_CN\":\"按钮\"}', 'TinyButton', 'button', '常用的操作按钮,提供包括默认按钮、图标按钮、图片按钮、下拉按钮等类型', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Button\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'basic', 2, '[{\"name\":{\"zh_CN\":\"按钮\"},\"icon\":\"button\",\"screenshot\":\"\",\"snippetName\":\"TinyButton\",\"schema\":{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"按钮文案\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"text\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (98, '2.4.2', '{\"zh_CN\":\"输入框\"}', 'TinyInput', 'input', '通过鼠标或键盘输入字符', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Input\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 1, '[{\"name\":{\"zh_CN\":\"输入框\"},\"icon\":\"input\",\"screenshot\":\"\",\"snippetName\":\"TinyInput\",\"schema\":{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"value\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (99, '2.4.2', '{\"zh_CN\":\"单选\"}', 'TinyRadio', 'radio', '用于配置不同场景的选项,在一组备选项中进行单选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Radio\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 3, '[{\"name\":{\"zh_CN\":\"单选\"},\"icon\":\"radio\",\"screenshot\":\"\",\"snippetName\":\"TinyRadio\",\"schema\":{\"componentName\":\"TinyRadio\",\"props\":{\"label\":\"1\",\"text\":\"单选文本\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"visible\",\"width\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (100, '2.4.2', '{\"zh_CN\":\"下拉框\"}', 'TinySelect', 'select', 'Select 选择器是一种通过点击弹出下拉列表展示数据并进行选择的 UI 组件', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Select\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 8, '[{\"name\":{\"zh_CN\":\"下拉框\"},\"icon\":\"select\",\"screenshot\":\"\",\"snippetName\":\"TinySelect\",\"schema\":{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"multiple\",\"options\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (101, '2.4.2', '{\"zh_CN\":\"开关\"}', 'TinySwitch', 'switch', 'Switch 在两种状态间切换选择', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Switch\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 9, '[{\"name\":{\"zh_CN\":\"开关\"},\"icon\":\"switch\",\"screenshot\":\"\",\"snippetName\":\"TinySwitch\",\"schema\":{\"componentName\":\"TinySwitch\",\"props\":{\"modelValue\":\"\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"mini\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (102, '2.4.2', '{\"zh_CN\":\"搜索框\"}', 'TinySearch', 'search', '指定条件对象进行搜索数据', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Search\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'basic', 2, '[{\"name\":{\"zh_CN\":\"搜索框\"},\"icon\":\"search\",\"screenshot\":\"\",\"snippetName\":\"TinySearch\",\"schema\":{\"componentName\":\"TinySearch\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"输入关键词\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"clearable\",\"mini\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (103, '2.4.2', '{\"zh_CN\":\"复选框\"}', 'TinyCheckbox', 'checkbox', '用于配置不同场景的选项,提供用户可在一组选项中进行多选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Checkbox\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 4, '[{\"name\":{\"zh_CN\":\"复选框\"},\"icon\":\"checkbox\",\"screenshot\":\"\",\"snippetName\":\"TinyCheckbox\",\"schema\":{\"componentName\":\"TinyCheckbox\",\"props\":{\"text\":\"复选框文案\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"border\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (104, '2.4.2', '{\"zh_CN\":\"复选按钮\"}', 'TinyCheckboxButton', 'checkboxbutton', '用于配置不同场景的选项,提供用户可在一组选项中进行多选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CheckboxButton\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 1, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"text\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (105, '2.4.2', '{\"zh_CN\":\"复选按钮组\"}', 'TinyCheckboxGroup', 'checkboxgroup', '用于配置不同场景的选项,提供用户可在一组选项中进行多选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CheckboxGroup\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 2, '[{\"name\":{\"zh_CN\":\"复选框组\"},\"icon\":\"checkboxs\",\"screenshot\":\"\",\"snippetName\":\"TinyCheckboxGroup\",\"schema\":{\"componentName\":\"TinyCheckboxGroup\",\"props\":{\"modelValue\":[\"name1\",\"name2\"],\"type\":\"checkbox\",\"options\":[{\"text\":\"复选框1\",\"label\":\"name1\"},{\"text\":\"复选框2\",\"label\":\"name2\"},{\"text\":\"复选框3\",\"label\":\"name3\"}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"type\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (106, '2.4.2', '{\"zh_CN\":\"对话框\"}', 'TinyDialogBox', 'dialogbox', '模态对话框,在浮层中显示,引导用户进行相关操作。', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"DialogBox\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'data-display', 4, '[{\"name\":{\"zh_CN\":\"对话框\"},\"icon\":\"dialogbox\",\"screenshot\":\"\",\"snippetName\":\"TinyDialogBox\",\"schema\":{\"componentName\":\"TinyDialogBox\",\"props\":{\"visible\":true,\"show-close\":true,\"title\":\"dialogBox title\"},\"children\":[{\"componentName\":\"div\"}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":true,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\".tiny-dialog-box\",\"shortcuts\":{\"properties\":[\"visible\",\"width\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (107, '2.4.2', '{\"zh_CN\":\"标签页\"}', 'TinyTabs', 'tabs', '分隔内容上有关联但属于不同类别的数据集合', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Tabs\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'navigation', 10, '[{\"name\":{\"zh_CN\":\"标签页\"},\"icon\":\"tabs\",\"screenshot\":\"\",\"snippetName\":\"TinyTabs\",\"schema\":{\"componentName\":\"TinyTabs\",\"props\":{\"modelValue\":\"first\"},\"children\":[{\"componentName\":\"TinyTabItem\",\"props\":{\"title\":\"标签页1\",\"name\":\"first\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"}}]},{\"componentName\":\"TinyTabItem\",\"props\":{\"title\":\"标签页2\",\"name\":\"second\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"}}]}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"clickCapture\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyTabItem\"],\"parentWhitelist\":[],\"descendantBlacklist\":[],\"ancestorWhitelist\":[]},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"size\",\"tab-style\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (108, '2.4.2', '{\"zh_CN\":\"tab页签\"}', 'TinyTabItem', 'tabitem', 'tab 标签页', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"TabItem\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 2, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":[\"TinyTab\"],\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"name\",\"title\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (109, '2.4.2', '{\"zh_CN\":\"面包屑\"}', 'TinyBreadcrumb', 'breadcrumb', '告诉访问者他们目前在网站中的位置以及如何返回', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Select\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'navigation', 1, '[{\"name\":{\"zh_CN\":\"面包屑\"},\"icon\":\"breadcrumb\",\"screenshot\":\"\",\"snippetName\":\"TinyBreadcrumb\",\"schema\":{\"componentName\":\"TinyBreadcrumb\",\"props\":{\"options\":[{\"to\":\"{ path: \'/\' }\",\"label\":\"首页\"},{\"to\":\"{ path: \'/breadcrumb\' }\",\"label\":\"产品\"},{\"replace\":\"true\",\"label\":\"软件\"}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"clickCapture\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyBreadcrumbItem\"],\"parentWhitelist\":[],\"descendantBlacklist\":[],\"ancestorWhitelist\":[]},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"separator\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (110, '2.4.2', '{\"zh_CN\":\"面包屑项\"}', 'TinyBreadcrumbItem', 'breadcrumb', '', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"BreadcrumbItem\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 1, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":[\"TinyBreadcrumb\"],\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"to\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (111, '2.4.2', '{\"zh_CN\":\"折叠面板\"}', 'TinyCollapse', 'collapse', '内容区可指定动态页面或自定义 html 等,支持展开收起操作', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Collapse\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'data-display', 3, '[{\"name\":{\"zh_CN\":\"折叠面板\"},\"icon\":\"collapse\",\"screenshot\":\"\",\"snippetName\":\"TinyCollapse\",\"schema\":{\"componentName\":\"TinyCollapse\",\"props\":{\"modelValue\":\"collapse1\"},\"children\":[{\"componentName\":\"TinyCollapseItem\",\"props\":{\"name\":\"collapse1\",\"title\":\"折叠项1\"},\"children\":[{\"componentName\":\"div\"}]},{\"componentName\":\"TinyCollapseItem\",\"props\":{\"name\":\"collapse2\",\"title\":\"折叠项2\"},\"children\":[{\"componentName\":\"div\"}]},{\"componentName\":\"TinyCollapseItem\",\"props\":{\"name\":\"collapse3\",\"title\":\"折叠项3\"},\"children\":[{\"componentName\":\"div\"}]}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (112, '2.4.2', '{\"zh_CN\":\"折叠面板项\"}', 'TinyCollapseItem', 'collapseitem', '内容区可指定动态页面或自定义 html 等,支持展开收起操作', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CollapseItem\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', NULL, 2, NULL, NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (113, '2.4.2', '{\"zh_CN\":\"表格\"}', 'TinyGrid', 'grid', '提供了非常强大数据表格功能,可以展示数据列表,可以对数据列表进行选择、编辑等', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Grid\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'table', 2, '[{\"name\":{\"zh_CN\":\"表格\"},\"icon\":\"grid\",\"screenshot\":\"\",\"snippetName\":\"tinyGrid\",\"schema\":{\"componentName\":\"TinyGrid\",\"props\":{\"editConfig\":{\"trigger\":\"click\",\"mode\":\"cell\",\"showStatus\":true},\"columns\":[{\"type\":\"index\",\"width\":60},{\"type\":\"selection\",\"width\":60},{\"field\":\"employees\",\"title\":\"员工数\"},{\"field\":\"created_date\",\"title\":\"创建日期\"},{\"field\":\"city\",\"title\":\"城市\"}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司\",\"city\":\"福州\",\"employees\":800,\"created_date\":\"2014-04-30 00:56:00\",\"boole\":false},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"employees\":300,\"created_date\":\"2016-07-08 12:36:22\",\"boole\":true}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"sortable\",\"columns\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (114, '2.4.2', '{\"zh_CN\":\"分页\"}', 'TinyPager', 'pager', '当数据量过多时,使用分页分解数据,常用于 Grid 和 Repeater 组件', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Pager\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'table', 1, '[{\"name\":{\"zh_CN\":\"分页\"},\"icon\":\"pager\",\"screenshot\":\"\",\"snippetName\":\"TinyPager\",\"schema\":{\"componentName\":\"TinyPager\",\"props\":{\"layout\":\"total, sizes, prev, pager, next\",\"total\":100,\"pageSize\":10,\"currentPage\":1}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"currentPage\",\"total\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (115, '2.4.2', '{\"zh_CN\":\"弹出编辑\"}', 'TinyPopeditor', 'popEditor', '该组件只能在弹出的面板中选择数据,不能手动输入数据;弹出面板中显示为 Tree 组件或者 Grid 组件', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"PopEditor\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'data-display', 6, '[{\"name\":{\"zh_CN\":\"弹出编辑\"},\"icon\":\"popeditor\",\"screenshot\":\"\",\"snippetName\":\"TinyPopeditor\",\"schema\":{\"componentName\":\"TinyPopeditor\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"gridOp\":{\"columns\":[{\"field\":\"id\",\"title\":\"ID\",\"width\":40},{\"field\":\"name\",\"title\":\"名称\",\"showOverflow\":\"tooltip\"},{\"field\":\"province\",\"title\":\"省份\",\"width\":80},{\"field\":\"city\",\"title\":\"城市\",\"width\":80}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司\",\"city\":\"福州\",\"province\":\"福建\"},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"province\":\"广东\"},{\"id\":\"3\",\"name\":\"RFV有限责任公司\",\"city\":\"中山\",\"province\":\"广东\"},{\"id\":\"4\",\"name\":\"TGB科技有限公司\",\"city\":\"龙岩\",\"province\":\"福建\"},{\"id\":\"5\",\"name\":\"YHN科技有限公司\",\"city\":\"韶关\",\"province\":\"广东\"},{\"id\":\"6\",\"name\":\"WSX科技有限公司\",\"city\":\"黄冈\",\"province\":\"武汉\"}]}}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"modelValue\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (116, '2.4.2', '{\"zh_CN\":\"树\"}', 'TinyTree', 'tree', '可进行展示有父子层级的数据,支持选择,异步加载等功能。但不推荐用它来展示菜单,展示菜单推荐使用树菜单', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Tree\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'data-display', 12, '[{\"name\":{\"zh_CN\":\"树\"},\"icon\":\"tree\",\"screenshot\":\"\",\"snippetName\":\"TinyTree\",\"schema\":{\"componentName\":\"TinyTree\",\"props\":{\"data\":[{\"label\":\"一级 1\",\"children\":[{\"label\":\"二级 1-1\",\"children\":[{\"label\":\"三级 1-1-1\"}]}]},{\"label\":\"一级 2\",\"children\":[{\"label\":\"二级 2-1\",\"children\":[{\"label\":\"三级 2-1-1\"}]},{\"label\":\"二级 2-2\",\"children\":[{\"label\":\"三级 2-2-1\"}]}]}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"data\",\"show-checkbox\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (117, '2.4.2', '{\"zh_CN\":\"时间线\"}', 'TinyTimeLine', 'timeline', 'TimeLine 时间线', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"TimeLine\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'navigation', 3, '[{\"name\":{\"zh_CN\":\"时间线\"},\"icon\":\"timeline\",\"screenshot\":\"\",\"snippetName\":\"TinyTimeLine\",\"schema\":{\"componentName\":\"TinyTimeLine\",\"props\":{\"active\":\"2\",\"data\":[{\"name\":\"已下单\"},{\"name\":\"运输中\"},{\"name\":\"已签收\"}]}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"active\",\"data\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (118, '2.4.2', '{\"zh_CN\":\"文字提示框\"}', 'TinyTooltip', 'tooltip', '动态显示提示信息,一般通过鼠标事件进行响应;提供 warning、error、info、success 四种类型显示不同类别的信', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Tooltip\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'data-display', 11, '[{\"name\":{\"zh_CN\":\"文字提示框\"},\"icon\":\"tooltip\",\"screenshot\":\"\",\"snippetName\":\"TinyTooltip\",\"schema\":{\"componentName\":\"TinyTooltip\",\"props\":{\"content\":\"Top Left 提示文字\",\"placement\":\"top-start\",\"manual\":true,\"modelValue\":true},\"children\":[{\"componentName\":\"span\",\"children\":[{\"componentName\":\"div\",\"props\":{}}]},{\"componentName\":\"Template\",\"props\":{\"slot\":\"content\"},\"children\":[{\"componentName\":\"span\",\"children\":[{\"componentName\":\"div\",\"props\":{\"placeholder\":\"提示内容\"}}]}]}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":true,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"content\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (119, '2.4.2', '{\"zh_CN\":\"提示框\"}', 'TinyPopover', 'popover', 'Popover可通过对一个触发源操作触发弹出框,支持自定义弹出内容,延迟触发和渐变动画', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Popover\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'data-display', 7, '[{\"name\":{\"zh_CN\":\"提示框\"},\"icon\":\"popover\",\"screenshot\":\"\",\"snippetName\":\"TinyPopover\",\"schema\":{\"componentName\":\"TinyPopover\",\"props\":{\"width\":200,\"title\":\"弹框标题\",\"trigger\":\"manual\",\"modelValue\":true},\"children\":[{\"componentName\":\"Template\",\"props\":{\"slot\":\"reference\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"placeholder\":\"触发源\"}}]},{\"componentName\":\"Template\",\"props\":{\"slot\":\"default\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"placeholder\":\"提示内容\"}}]}]}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":true,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"visible\",\"width\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (120, '2.4.2', '{\"zh_CN\":\"日期选择\"}', 'TinyDatePicker', 'datepick', '用于输入或选择日期', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"DatePicker\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 1, '[{\"name\":{\"zh_CN\":\"日期选择\"},\"icon\":\"datepick\",\"screenshot\":\"\",\"snippetName\":\"TinyDatePicker\",\"schema\":{\"componentName\":\"TinyDatePicker\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\"}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"value\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); -INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (121, '2.4.2', '{\"zh_CN\":\"数字输入框\"}', 'TinyNumeric', 'numeric', '通过鼠标或键盘输入字符', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Numeric\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue@~3.20/runtime/tiny-vue.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'form', 1, '[{\"name\":{\"zh_CN\":\"数字输入框\"},\"icon\":\"numeric\",\"screenshot\":\"\",\"snippetName\":\"TinyNumeric\",\"schema\":{\"componentName\":\"TinyNumeric\",\"props\":{\"allow-empty\":true,\"placeholder\":\"请输入\",\"controlsPosition\":\"right\",\"step\":1}}}]', NULL, '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"value\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, '1', '1', '1', '1', '2024-12-09 22:56:19', '1', '2024-12-09 22:56:19'); - - -INSERT INTO `t_block_history` (`id`, `ref_id`, `message`, `version`, `label`, `name`, `framework`, `content`, `assets`, `build_info`, `screenshot`, `path`, `description`, `tags`, `is_official`, `public`, `is_default`, `tiny_reserved`, `mode`, `platform_id`, `app_id`, `npm_name`, `i18n`, `content_blocks`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 1, '2.0.7', '2.0.7', 'BlockTest1a', 'BlockTest1a', 'Vue', '{\"state\":{},\"methods\":{},\"componentName\":\"Block\",\"fileName\":\"BlockTest1a\",\"css\":\"\",\"props\":{},\"children\":[{\"componentName\":\"TinyGrid\",\"props\":{\"editConfig\":{\"trigger\":\"click\",\"mode\":\"cell\",\"showStatus\":true},\"columns\":[{\"type\":\"index\",\"width\":60},{\"type\":\"selection\",\"width\":60},{\"field\":\"employees\",\"title\":\"员工数\"},{\"field\":\"created_date\",\"title\":\"创建日期\"},{\"field\":\"city\",\"title\":\"城市\"}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司\",\"city\":\"福州\",\"employees\":800,\"created_date\":\"2014-04-30 00:56:00\",\"boole\":false},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"employees\":300,\"created_date\":\"2016-07-08 12:36:22\",\"boole\":true}]},\"id\":\"9f544d43\"},{\"componentName\":\"div\",\"props\":{},\"id\":\"c3be6334\"},{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"人员\"},\"children\":[{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\"},\"id\":\"6a365365\"}],\"id\":\"22464422\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"密码\"},\"children\":[{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"type\":\"password\"},\"id\":\"55297132\"}],\"id\":\"c42655f5\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"\"},\"children\":[{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"提交\",\"type\":\"primary\",\"style\":\"margin-right: 10px\"},\"id\":\"521663e5\"},{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"重置\",\"type\":\"primary\"},\"id\":\"33153f15\"}],\"id\":\"31541a46\"}],\"id\":\"35a24114\"},{\"componentName\":\"TinyCarousel\",\"props\":{\"height\":\"180px\"},\"children\":[{\"componentName\":\"TinyCarouselItem\",\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"},\"id\":\"92546616\"}],\"id\":\"1b2d445c\",\"props\":{\"title\":\"选项卡\",\"name\":\"\"}},{\"componentName\":\"TinyCarouselItem\",\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"},\"id\":\"3a145148\"}],\"id\":\"36631533\",\"props\":{\"title\":\"选项卡\",\"name\":\"\"}}],\"id\":\"52426c25\"}],\"schema\":{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"collapse\":{\"number\":6,\"text\":{\"zh_CN\":\"显示更多\"}},\"content\":[]}],\"events\":{},\"slots\":{}},\"dataSource\":{},\"dependencies\":{\"scripts\":[{\"package\":\"@opentiny/vue\",\"version\":\"\",\"components\":{\"TinyGrid\":\"Grid\",\"TinyForm\":\"Form\",\"TinyFormItem\":\"FormItem\",\"TinyInput\":\"Input\",\"TinyButton\":\"Button\",\"TinyCarousel\":\"Carousel\",\"TinyCarouselItem\":\"CarouselItem\"}}],\"styles\":[]}}', '{\"material\":[],\"scripts\":[\"https://npm.onmicrosoft.cn/@opentiny-assets/tinyengine-alpha-block-blocktest1a-993@2.0.7/js\\\\web-component.umd.js\",\"https://npm.onmicrosoft.cn/@opentiny-assets/tinyengine-alpha-block-blocktest1a-993@2.0.7/js\\\\web-component.es.js\"],\"styles\":[]}', NULL, NULL, '我的分组', '区块', '[]', 0, 1, 0, 0, NULL, 1, 1, '@opentiny-assets/tinyengine-alpha-block-blocktest1a-993', '{\"en_US\":{\"lowcode.c257d5e8\":\"search\",\"lowcode.61c8ac8c\":\"dsdsa\",\"lowcode.f53187a0\":\"test\",\"lowcode.97ad00dd\":\"createMaterial\",\"lowcode.61dcef52\":\"sadasda\",\"lowcode.45f4c42a\":\"gfdgfd\",\"lowcode.c6f5a652\":\"fsdafds\"},\"zh_CN\":{\"lowcode.c257d5e8\":\"查询\",\"lowcode.61c8ac8c\":\"地方\",\"lowcode.f53187a0\":\"测试\",\"lowcode.97ad00dd\":\"创建物料资产包\",\"lowcode.61dcef52\":\"terterere\",\"lowcode.45f4c42a\":\"gdfgdf\",\"lowcode.c6f5a652\":\"fsdaf\"}}', NULL, '1', '1', '2024-10-16 19:19:54', '2024-10-16 19:19:54', '1', '1'); - -INSERT INTO `t_block_group` (`id`, `name`, `app_id`, `platform_id`, `description`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, '我的分组', 1, 1, '区块分组', '1', '1', '2024-10-16 19:15:53', '2024-10-16 19:15:53', '1', '1'); - -INSERT INTO `r_block_group_block` VALUES (1, 1, 1); - -INSERT INTO `t_material_history` (`id`, `ref_id`, `version`, `content`, `name`, `npm_name`, `framework`, `assets_url`, `image_url`, `description`, `material_size`, `tgz_url`, `unzip_tgz_root_path_url`, `unzip_tgz_files`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 1, '1.0.8', '{}', 'materialstwo', '@opentiny/lowcode-alpha-material-materialstwo-1505', 'Vue', '{\"material\":[\"\"],\"scripts\":[\"\",\"\"],\"styles\":[]}', NULL, '1.0.8', NULL, NULL, NULL, NULL, '1', '1', '2024-10-16 19:28:53', '2024-10-16 19:28:53', '1', '1'); - -INSERT INTO `t_tenant` (`id`, `name_cn`, `name_en`, `description`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 'public', '公共租户', 'Default tenant for new user to explore.', '1', '1', '2024-10-16 19:31:28', '2024-10-16 19:31:28'); - -INSERT INTO `r_material_history_block` (`id`, `material_history_id`, `block_history_id`) VALUES (1, 1, 1); - -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (44, 1, 73); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (45, 1, 74); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (46, 1, 75); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (47, 1, 76); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (48, 1, 77); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (49, 1, 78); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (50, 1, 79); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (51, 1, 80); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (52, 1, 81); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (53, 1, 82); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (54, 1, 83); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (55, 1, 84); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (56, 1, 85); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (57, 1, 86); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (58, 1, 87); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (59, 1, 88); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (60, 1, 89); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (61, 1, 90); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (62, 1, 91); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (63, 1, 92); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (64, 1, 93); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (65, 1, 94); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (66, 1, 95); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (67, 1, 96); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (68, 1, 97); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (69, 1, 98); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (70, 1, 99); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (71, 1, 100); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (72, 1, 101); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (73, 1, 102); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (74, 1, 103); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (75, 1, 104); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (76, 1, 105); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (77, 1, 106); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (78, 1, 107); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (79, 1, 108); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (80, 1, 109); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (81, 1, 110); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (82, 1, 111); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (83, 1, 112); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (84, 1, 113); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (85, 1, 114); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (86, 1, 115); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (87, 1, 116); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (88, 1, 117); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (89, 1, 118); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (90, 1, 119); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (91, 1, 120); -INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (92, 1, 121); - -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (45, 1, 73); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (46, 1, 74); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (47, 1, 75); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (48, 1, 76); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (49, 1, 77); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (50, 1, 78); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (51, 1, 79); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (52, 1, 80); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (53, 1, 81); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (54, 1, 82); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (55, 1, 83); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (56, 1, 84); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (57, 1, 85); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (58, 1, 86); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (59, 1, 87); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (60, 1, 88); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (61, 1, 89); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (62, 1, 90); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (63, 1, 91); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (64, 1, 92); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (65, 1, 93); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (66, 1, 94); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (67, 1, 95); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (68, 1, 96); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (69, 1, 97); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (70, 1, 98); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (71, 1, 99); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (72, 1, 100); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (73, 1, 101); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (74, 1, 102); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (75, 1, 103); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (76, 1, 104); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (77, 1, 105); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (78, 1, 106); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (79, 1, 107); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (80, 1, 108); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (81, 1, 109); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (82, 1, 110); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (83, 1, 111); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (84, 1, 112); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (85, 1, 113); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (86, 1, 114); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (87, 1, 115); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (88, 1, 116); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (89, 1, 117); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (90, 1, 118); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (91, 1, 119); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (92, 1, 120); -INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (93, 1, 121); - - - -INSERT INTO `r_material_block` (`id`, `material_id`, `block_id`) VALUES (1, 1, 1); - -INSERT INTO `t_app` (`id`, `name`, `app_website`, `platform_id`, `platform_history_id`, `publish_url`, `editor_url`, `visit_url`, `image_url`, `assets_url`, `state`, `published`, `home_page_id`, `css`, `config`, `constants`, `data_handler`, `description`, `latest`, `git_group`, `project_name`, `branch`, `is_demo`, `is_default`, `template_type`, `set_template_time`, `set_template_by`, `set_default_by`, `framework`, `global_state`, `default_lang`, `extend_config`, `data_hash`, `can_associate`, `data_source_global`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'portal-app', NULL, 1, '1', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, '{}', NULL, '{\"type\":\"JSFunction\",\"value\":\"function dataHanlder(res){\\n return res;\\n}\"}', 'demo应用', '22', NULL, NULL, 'develop', NULL, NULL, 'serviceDevelop', '2023-11-19 18:14:37', '1', '1', 'Vue', '[{\"id\":\"test2\",\"state\":{\"name1\":\"xxx1\"},\"getters\":{\"count\":{\"type\":\"JSFunction\",\"value\":\"function count() {}\"}},\"actions\":{\"actions\":{\"type\":\"JSFunction\",\"value\":\"function actions() {}\"}}},{\"id\":\"test3\",\"state\":{\"name1\":\"xxx\"},\"getters\":{\"count\":{\"type\":\"JSFunction\",\"value\":\"function count() {}\"}},\"actions\":{\"actions\":{\"type\":\"JSFunction\",\"value\":\"function actions() {}\"}}},{\"id\":\"test4\",\"state\":{\"region\":\"\",\"scenario\":\"all\",\"productId\":\"\",\"planId\":\"\",\"addEvs\":false,\"addHss\":false,\"addCbr\":false,\"period\":{\"value\":1,\"unit\":\"month\"},\"amount\":1},\"getters\":{},\"actions\":{}},{\"id\":\"test1\",\"state\":{\"name1\":\"xxx\"},\"getters\":{\"count\":{\"type\":\"JSFunction\",\"value\":\"function count() {}\"}},\"actions\":{\"actions\":{\"type\":\"JSFunction\",\"value\":\"function actions() {}\"}}}]', NULL, '{\"business\":{\"serviceName\":\"\",\"endpointName\":\"cce\",\"endpointId\":\"ee\",\"serviceId\":\"ee\",\"router\":\"ee\"},\"env\":{\"alpha\":{\"regions\":[{\"name\":\"\",\"baseUrl\":\"\",\"isDefault\":false}],\"isDefault\":true}},\"type\":\"console\"}', '8b0eba6ad055532a586f9f669108fabb', '1', '{\"dataHandler\":{\"type\":\"JSFunction\",\"value\":\"function dataHanlder(res){\\n return res;\\n}\"}}', '1', '1', '2024-10-16 23:27:10', '2024-10-16 23:27:10', '1', '1'); - -INSERT INTO `t_block` (`id`, `label`, `name`, `framework`, `content`, `assets`, `last_build_info`, `description`, `tags`, `latest_version`, `latest_history_id`, `screenshot`, `path`, `occupier_by`, `is_official`, `public`, `is_default`, `tiny_reserved`, `npm_name`, `i18n`, `platform_id`, `app_id`, `content_blocks`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'BlockTest1a', 'BlockTest1a', 'Vue', '{\"state\":{},\"methods\":{},\"componentName\":\"Block\",\"fileName\":\"BlockTest1a\",\"css\":\"\",\"props\":{},\"children\":[{\"componentName\":\"TinyGrid\",\"props\":{\"editConfig\":{\"trigger\":\"click\",\"mode\":\"cell\",\"showStatus\":true},\"columns\":[{\"type\":\"index\",\"width\":60},{\"type\":\"selection\",\"width\":60},{\"field\":\"employees\",\"title\":\"员工数\"},{\"field\":\"created_date\",\"title\":\"创建日期\"},{\"field\":\"city\",\"title\":\"城市\"}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司\",\"city\":\"福州\",\"employees\":800,\"created_date\":\"2014-04-30 00:56:00\",\"boole\":false},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"employees\":300,\"created_date\":\"2016-07-08 12:36:22\",\"boole\":true}]},\"id\":\"9f544d43\"},{\"componentName\":\"div\",\"props\":{},\"id\":\"c3be6334\"},{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"人员\"},\"children\":[{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\"},\"id\":\"6a365365\"}],\"id\":\"22464422\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"密码\"},\"children\":[{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"type\":\"password\"},\"id\":\"55297132\"}],\"id\":\"c42655f5\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"\"},\"children\":[{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"提交\",\"type\":\"primary\",\"style\":\"margin-right: 10px\"},\"id\":\"521663e5\"},{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"重置\",\"type\":\"primary\"},\"id\":\"33153f15\"}],\"id\":\"31541a46\"}],\"id\":\"35a24114\"},{\"componentName\":\"TinyCarousel\",\"props\":{\"height\":\"180px\"},\"children\":[{\"componentName\":\"TinyCarouselItem\",\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"},\"id\":\"92546616\"}],\"id\":\"1b2d445c\",\"props\":{\"title\":\"选项卡\",\"name\":\"\"}},{\"componentName\":\"TinyCarouselItem\",\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"},\"id\":\"3a145148\"}],\"id\":\"36631533\",\"props\":{\"title\":\"选项卡\",\"name\":\"\"}}],\"id\":\"52426c25\"}],\"schema\":{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"collapse\":{\"number\":6,\"text\":{\"zh_CN\":\"显示更多\"}},\"content\":[]}],\"events\":{},\"slots\":{}},\"dataSource\":{},\"dependencies\":{\"scripts\":[{\"package\":\"@opentiny/vue\",\"version\":\"\",\"components\":{\"TinyGrid\":\"Grid\",\"TinyForm\":\"Form\",\"TinyFormItem\":\"FormItem\",\"TinyInput\":\"Input\",\"TinyButton\":\"Button\",\"TinyCarousel\":\"Carousel\",\"TinyCarouselItem\":\"CarouselItem\"}}],\"styles\":[]}}', '{\"material\":[],\"scripts\":[\"https://npm.onmicrosoft.cn/@opentiny-assets/tinyengine-alpha-block-blocktest1a-993@2.0.7/js\\\\web-component.umd.js\",\"https://npm.onmicrosoft.cn/@opentiny-assets/tinyengine-alpha-block-blocktest1a-993@2.0.7/js\\\\web-component.es.js\"],\"styles\":[]}', '{\"result\":true,\"versions\":[\"@opentiny/tiny-engine-block-build@1.0.2\"],\"endTime\":\"2024/3/19 20:22:03\",\"message\":\"2.0.7\",\"filesPath\":{\"material\":[],\"scripts\":[\"https://npm.onmicrosoft.cn/@opentiny-assets/tinyengine-alpha-block-blocktest1a-993@2.0.7/js\\\\web-component.umd.js\",\"https://npm.onmicrosoft.cn/@opentiny-assets/tinyengine-alpha-block-blocktest1a-993@2.0.7/js\\\\web-component.es.js\"],\"styles\":[]},\"taskId\":184}', '区块', '[]', '2.0.7', 1, NULL, '我的分组', '1', 0, 1, 0, 0, '@opentiny-assets/tinyengine-alpha-block-blocktest1a-993', '', 1, 1, NULL, '1', '1', '2024-10-16 23:52:11', '2024-10-16 23:52:11', '1', '1'); - -INSERT INTO `t_material` (`id`, `name`, `npm_name`, `framework`, `assets_url`, `image_url`, `published`, `latest_version`, `latest_history_id`, `public`, `last_build_info`, `description`, `is_official`, `is_default`, `tiny_reserved`, `component_library_id`, `material_category_id`, `material_size`, `tgz_url`, `unzip_tgz_root_path_url`, `unzip_tgz_files`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'materialstwo', '@opentiny/lowcode-alpha-material-materialstwo-1505', 'Vue', NULL, NULL, NULL, '1.0.8', 1, 1, '{\"version\": \"1.0.8\"}', '物料包', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', '2024-10-16 23:37:14', '2024-10-16 23:37:14', '1', '1'); - -INSERT INTO `t_page` (`id`, `name`, `app_id`, `route`, `page_content`, `is_body`, `parent_id`, `group`, `depth`, `is_page`, `occupier_by`, `is_default`, `content_blocks`, `latest_version`, `latest_history_id`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'createVm', 1, 'createVm', '{\"state\":{\"dataDisk\":[1,2,3]},\"methods\":{},\"componentName\":\"Page\",\"css\":\"body {\\r\\n background-color:#eef0f5 ;\\r\\n margin-bottom: 80px;\\r\\n}\",\"props\":{},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"padding-bottom: 10px; padding-top: 10px;\"},\"id\":\"2b2cabf0\",\"children\":[{\"componentName\":\"TinyTimeLine\",\"props\":{\"active\":\"2\",\"data\":[{\"name\":\"基础配置\"},{\"name\":\"网络配置\"},{\"name\":\"高级配置\"},{\"name\":\"确认配置\"}],\"horizontal\":true,\"style\":\"border-radius: 0px;\"},\"id\":\"dd764b17\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"id\":\"30c94cc8\",\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"计费模式\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"包年/包月\",\"value\":\"1\"},{\"text\":\"按需计费\",\"value\":\"2\"}],\"modelValue\":\"1\"},\"id\":\"a8d84361\"}],\"id\":\"9f39f3e7\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"区域\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"乌兰察布二零一\",\"value\":\"1\"}],\"modelValue\":\"1\",\"style\":\"border-radius: 0px; margin-right: 10px;\"},\"id\":\"c97ccd99\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"温馨提示:页面左上角切换区域\",\"style\":\"background-color: [object Event]; color: #8a8e99; font-size: 12px;\"},\"id\":\"20923497\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"不同区域的云服务产品之间内网互不相通;请就近选择靠近您业务的区域,可减少网络时延,提高访问速度\",\"style\":\"display: block; color: #8a8e99; border-radius: 0px; font-size: 12px;\"},\"id\":\"54780a26\"}],\"id\":\"4966384d\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"可用区\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"可用区1\",\"value\":\"1\"},{\"text\":\"可用区2\",\"value\":\"2\"},{\"text\":\"可用区3\",\"value\":\"3\"}],\"modelValue\":\"1\"},\"id\":\"6184481b\"}],\"id\":\"690837bf\"}],\"id\":\"b6a425d4\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"CPU架构\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"x86计算\",\"value\":\"1\"},{\"text\":\"鲲鹏计算\",\"value\":\"2\"}],\"modelValue\":\"1\"},\"id\":\"7d33ced7\"}],\"id\":\"05ed5a79\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"区域\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; justify-content: flex-start; align-items: center;\"},\"id\":\"606edf78\",\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; align-items: center; margin-right: 10px;\"},\"id\":\"f3f98246\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"vCPUs\",\"style\":\"width: 80px;\"},\"id\":\"c287437e\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}]},\"id\":\"4c43286b\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; align-items: center; margin-right: 10px;\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"内存\",\"style\":\"width: 80px; border-radius: 0px;\"},\"id\":\"38b8fa1f\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}]},\"id\":\"cd33328e\"}],\"id\":\"2b2c678f\"},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; align-items: center;\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"规格名称\",\"style\":\"width: 80px;\"},\"id\":\"d3eb6352\"},{\"componentName\":\"TinySearch\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"输入关键词\"},\"id\":\"21cb9282\"}],\"id\":\"b8e0f35c\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"border-radius: 0px;\"},\"id\":\"5000c83e\",\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"通用计算型\",\"value\":\"1\"},{\"text\":\"通用计算增强型\",\"value\":\"2\"},{\"text\":\"内存优化型\",\"value\":\"3\"},{\"text\":\"内存优化型\",\"value\":\"4\"},{\"text\":\"磁盘增强型\",\"value\":\"5\"},{\"text\":\"超高I/O型\",\"value\":\"6\"},{\"text\":\"GPU加速型\",\"value\":\"7\"}],\"modelValue\":\"1\",\"style\":\"border-radius: 0px; margin-top: 12px;\"},\"id\":\"b8724703\"},{\"componentName\":\"TinyGrid\",\"props\":{\"editConfig\":{\"trigger\":\"click\",\"mode\":\"cell\",\"showStatus\":true},\"columns\":[{\"type\":\"radio\",\"width\":60},{\"field\":\"employees\",\"title\":\"规格名称\"},{\"field\":\"created_date\",\"title\":\"vCPUs | 内存(GiB)\",\"sortable\":true},{\"field\":\"city\",\"title\":\"CPU\",\"sortable\":true},{\"title\":\"基准 / 最大带宽\\t\",\"sortable\":true},{\"title\":\"内网收发包\",\"sortable\":true}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司\",\"city\":\"福州\",\"employees\":800,\"created_date\":\"2014-04-30 00:56:00\",\"boole\":false},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"employees\":300,\"created_date\":\"2016-07-08 12:36:22\",\"boole\":true}],\"style\":\"margin-top: 12px; border-radius: 0px;\",\"auto-resize\":true},\"id\":\"77701c25\"},{\"componentName\":\"div\",\"props\":{\"style\":\"margin-top: 12px; border-radius: 0px;\"},\"id\":\"3339838b\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"当前规格\",\"style\":\"width: 150px; display: inline-block;\"},\"id\":\"203b012b\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"通用计算型 | Si2.large.2 | 2vCPUs | 4 GiB\",\"style\":\"font-weight: 700;\"},\"id\":\"87723f52\"}]}]}],\"id\":\"657fb2fc\"}],\"id\":\"d19b15cf\"}],\"id\":\"9991228b\"},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"镜像\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"公共镜像\",\"value\":\"1\"},{\"text\":\"私有镜像\",\"value\":\"2\"},{\"text\":\"共享镜像\",\"value\":\"3\"}],\"modelValue\":\"1\"},\"id\":\"922b14cb\"},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; margin-top: 12px; border-radius: 0px;\"},\"id\":\"6b679524\",\"children\":[{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 170px; margin-right: 10px;\"},\"id\":\"4851fff7\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 340px;\"},\"id\":\"a7183eb7\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"margin-top: 12px;\"},\"id\":\"57aee314\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"请注意操作系统的语言类型。\",\"style\":\"color: #e37d29;\"},\"id\":\"56d36c27\"}]}],\"id\":\"e3b02436\"}],\"id\":\"59aebf2b\"}],\"id\":\"87ff7b99\"},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"系统盘\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex;\"},\"id\":\"cddba5b8\",\"children\":[{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 200px; margin-right: 10px;\"},\"id\":\"a97fbe15\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px; margin-right: 10px;\"},\"id\":\"1cde4c0f\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"GiB \\nIOPS上限240,IOPS突发上限5,000\",\"style\":\"color: #575d6c; font-size: 12px;\"},\"id\":\"2815d82d\"}]}],\"id\":\"50239a3a\"}],\"id\":\"e8582986\"},{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"数据盘\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin-top: 12px; display: flex;\"},\"id\":\"728c9825\",\"children\":[{\"componentName\":\"Icon\",\"props\":{\"style\":\"margin-right: 10px; width: 16px; height: 16px;\",\"name\":\"IconPanelMini\"},\"id\":\"fded6930\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 200px; margin-right: 10px;\"},\"id\":\"62734e3f\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px; margin-right: 10px;\"},\"id\":\"667c7926\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"GiB \\nIOPS上限600,IOPS突发上限5,000\",\"style\":\"color: #575d6c; font-size: 12px; margin-right: 10px;\"},\"id\":\"e7bc36d6\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px;\"},\"id\":\"1bd56dc0\"}],\"loop\":{\"type\":\"JSExpression\",\"value\":\"this.state.dataDisk\"}},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; margin-top: 12px; border-radius: 0px;\"},\"children\":[{\"componentName\":\"Icon\",\"props\":{\"name\":\"IconPlus\",\"style\":\"width: 16px; height: 16px; margin-right: 10px;\"},\"id\":\"65c89f2b\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"增加一块数据盘\",\"style\":\"font-size: 12px; border-radius: 0px; margin-right: 10px;\"},\"id\":\"cb344071\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"您还可以挂载 21 块磁盘(云硬盘)\",\"style\":\"color: #8a8e99; font-size: 12px;\"},\"id\":\"80eea996\"}],\"id\":\"e9e530ab\"}],\"id\":\"078e03ef\"}],\"id\":\"ccef886e\"}],\"id\":\"0fb7bd74\"},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-color: #ffffff; padding-top: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; position: fixed; inset: auto 0% 0% 0%; height: 80px; line-height: 80px; border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[],\"id\":\"21ed4475\"},{\"componentName\":\"TinyRow\",\"props\":{\"style\":\"border-radius: 0px; height: 100%;\"},\"children\":[{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"8\"},\"id\":\"b9d051a5\",\"children\":[{\"componentName\":\"TinyRow\",\"props\":{\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"5\",\"style\":\"display: flex;\"},\"id\":\"02352776\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"购买量\",\"style\":\"margin-right: 10px;\"},\"id\":\"0cd9ed5c\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px; margin-right: 10px;\"},\"id\":\"2f9cf442\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"台\"},\"id\":\"facd4481\"}]},{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"7\"},\"id\":\"82b6c659\",\"children\":[{\"componentName\":\"div\",\"props\":{},\"id\":\"9cd65874\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"配置费用\",\"style\":\"font-size: 12px;\"},\"id\":\"b5a0a0da\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"¥1.5776\",\"style\":\"padding-left: 10px; padding-right: 10px; color: #de504e;\"},\"id\":\"d9464214\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"/小时\",\"style\":\"font-size: 12px;\"},\"id\":\"af7cc5e6\"}]},{\"componentName\":\"div\",\"props\":{},\"id\":\"89063830\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"参考价格,具体扣费请以账单为准。\",\"style\":\"font-size: 12px; border-radius: 0px;\"},\"id\":\"d8995fbc\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"了解计费详情\",\"style\":\"font-size: 12px; color: #344899;\"},\"id\":\"b383c3e2\"}]}]}],\"id\":\"94fc0e43\"}]},{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"4\",\"style\":\"display: flex; flex-direction: row-reverse; border-radius: 0px; height: 100%; justify-content: flex-start; align-items: center;\"},\"id\":\"10b73009\",\"children\":[{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"下一步: 网络配置\",\"type\":\"danger\",\"style\":\"max-width: unset;\"},\"id\":\"0b584011\"}]}],\"id\":\"d414a473\"}],\"id\":\"e8ec029b\"}],\"fileName\":\"createVM\"}', 0, 0, 'staticPages', 0, 1, '1', 0, NULL, NULL, NULL, '1', '1', '2024-10-16 23:31:48', '2024-10-16 23:31:48', '1', '1'); - -INSERT INTO `t_user` (`id`, `username`, `email`, `enable`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`, `is_admin`, `is_public`) VALUES (1, '开发者', 'developer@lowcode.com', NULL, '1', '1', '2024-10-16 23:28:41', '2024-10-16 23:28:41', '1', '1', 1, NULL); -INSERT INTO `t_i18n_lang` (`id`, `lang`, `label`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 'zh_CN', '简体中文', '1', '1', '2024-10-17 00:01:36', '2024-10-17 00:01:36'); -INSERT INTO `t_i18n_lang` (`id`, `lang`, `label`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (2, 'en_US', '美式英文', '1', '1', '2024-10-17 00:02:03', '2024-10-17 00:02:03'); -INSERT INTO `t_platform` (`id`, `name`, `published`, `last_build_info`, `description`, `latest_version`, `latest_history_id`, `material_history_id`, `image_url`, `sort_plugins`, `sort_toolbar`, `is_default`, `prettier_opts`, `set_default_by`, `app_extend_config`, `data_hash`, `business_category_id`, `theme_id`, `platform_url`, `vscode_url`, `tenant_id`, `site_id`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 'default', 1, NULL, '专用设计器', '1.0.0', 1, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', '1', '1', '2024-11-14 22:17:39', '2024-11-14 22:17:39'); -INSERT INTO `t_platform_history` (`id`, `ref_id`, `version`, `name`, `publish_url`, `description`, `vscode_url`, `material_history_id`, `sub_count`, `material_pkg_name`, `material_version`, `image_url`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 1, '1.0.0', 'default', 'http://tinyengine.com', '默认设计器', NULL, 1, 1, '@opentiny/lowcode-alpha-material-materialstwo-1505', '1.0.8', NULL, '1', NULL, '1', '1', '1', '2024-11-14 22:20:25', '2024-11-14 22:20:25'); diff --git a/app/src/main/resources/sql/mysql/init_data_for_test_v1.0.0.sql b/app/src/main/resources/sql/mysql/init_data_for_test_v1.0.0.sql new file mode 100644 index 00000000..0e38b756 --- /dev/null +++ b/app/src/main/resources/sql/mysql/init_data_for_test_v1.0.0.sql @@ -0,0 +1,175 @@ + +INSERT INTO `t_material_history` (`id`, `ref_id`, `version`, `content`, `name`, `npm_name`, `framework`, `assets_url`, `image_url`, `description`, `material_size`, `tgz_url`, `unzip_tgz_root_path_url`, `unzip_tgz_files`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 1, '1.0.8', '{}', 'materialstwo', '@opentiny/lowcode-alpha-material-materialstwo-1505', 'Vue', '{\"material\":[\"\"],\"scripts\":[\"\",\"\"],\"styles\":[]}', NULL, '1.0.8', NULL, NULL, NULL, NULL, '1', '1', '2024-10-16 19:28:53', '2024-10-16 19:28:53', '1', '1'); + +INSERT INTO `t_tenant` (`id`, `name_cn`, `name_en`, `description`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 'public', '公共租户', 'Default tenant for new user to explore.', '1', '1', '2024-10-16 19:31:28', '2024-10-16 19:31:28'); + +INSERT INTO `t_app` (`id`, `name`, `app_website`, `platform_id`, `platform_history_id`, `publish_url`, `editor_url`, `visit_url`, `image_url`, `assets_url`, `state`, `published`, `home_page_id`, `css`, `config`, `constants`, `data_handler`, `description`, `latest`, `git_group`, `project_name`, `branch`, `is_demo`, `is_default`, `template_type`, `set_template_time`, `set_template_by`, `set_default_by`, `framework`, `global_state`, `default_lang`, `extend_config`, `data_hash`, `can_associate`, `data_source_global`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'portal-app', NULL, 1, '1', NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, NULL, '{}', NULL, '{\"type\":\"JSFunction\",\"value\":\"function dataHanlder(res){\\n return res;\\n}\"}', 'demo应用', '22', NULL, NULL, 'develop', NULL, NULL, 'serviceDevelop', '2023-11-19 18:14:37', '1', '1', 'Vue', '[{\"id\":\"test2\",\"state\":{\"name1\":\"xxx1\"},\"getters\":{\"count\":{\"type\":\"JSFunction\",\"value\":\"function count() {}\"}},\"actions\":{\"actions\":{\"type\":\"JSFunction\",\"value\":\"function actions() {}\"}}},{\"id\":\"test3\",\"state\":{\"name1\":\"xxx\"},\"getters\":{\"count\":{\"type\":\"JSFunction\",\"value\":\"function count() {}\"}},\"actions\":{\"actions\":{\"type\":\"JSFunction\",\"value\":\"function actions() {}\"}}},{\"id\":\"test4\",\"state\":{\"region\":\"\",\"scenario\":\"all\",\"productId\":\"\",\"planId\":\"\",\"addEvs\":false,\"addHss\":false,\"addCbr\":false,\"period\":{\"value\":1,\"unit\":\"month\"},\"amount\":1},\"getters\":{},\"actions\":{}},{\"id\":\"test1\",\"state\":{\"name1\":\"xxx\"},\"getters\":{\"count\":{\"type\":\"JSFunction\",\"value\":\"function count() {}\"}},\"actions\":{\"actions\":{\"type\":\"JSFunction\",\"value\":\"function actions() {}\"}}}]', NULL, '{\"business\":{\"serviceName\":\"\",\"endpointName\":\"cce\",\"endpointId\":\"ee\",\"serviceId\":\"ee\",\"router\":\"ee\"},\"env\":{\"alpha\":{\"regions\":[{\"name\":\"\",\"baseUrl\":\"\",\"isDefault\":false}],\"isDefault\":true}},\"type\":\"console\"}', '8b0eba6ad055532a586f9f669108fabb', '1', '{\"dataHandler\":{\"type\":\"JSFunction\",\"value\":\"function dataHanlder(res){\\n return res;\\n}\"}}', '1', '1', '2024-10-16 23:27:10', '2024-10-16 23:27:10', '1', '1'); + +INSERT INTO `t_material` (`id`, `name`, `npm_name`, `framework`, `assets_url`, `image_url`, `published`, `latest_version`, `latest_history_id`, `public`, `last_build_info`, `description`, `is_official`, `is_default`, `tiny_reserved`, `component_library_id`, `material_category_id`, `material_size`, `tgz_url`, `unzip_tgz_root_path_url`, `unzip_tgz_files`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'materialstwo', '@opentiny/lowcode-alpha-material-materialstwo-1505', 'Vue', NULL, NULL, NULL, '1.0.8', 1, 1, '{\"version\": \"1.0.8\"}', '物料包', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', '2024-10-16 23:37:14', '2024-10-16 23:37:14', '1', '1'); + +INSERT INTO `t_page` (`id`, `name`, `app_id`, `route`, `page_content`, `is_body`, `parent_id`, `group`, `depth`, `is_page`, `occupier_by`, `is_default`, `content_blocks`, `latest_version`, `latest_history_id`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`) VALUES (1, 'createVm', 1, 'createVm', '{\"state\":{\"dataDisk\":[1,2,3]},\"methods\":{},\"componentName\":\"Page\",\"css\":\"body {\\r\\n background-color:#eef0f5 ;\\r\\n margin-bottom: 80px;\\r\\n}\",\"props\":{},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"padding-bottom: 10px; padding-top: 10px;\"},\"id\":\"2b2cabf0\",\"children\":[{\"componentName\":\"TinyTimeLine\",\"props\":{\"active\":\"2\",\"data\":[{\"name\":\"基础配置\"},{\"name\":\"网络配置\"},{\"name\":\"高级配置\"},{\"name\":\"确认配置\"}],\"horizontal\":true,\"style\":\"border-radius: 0px;\"},\"id\":\"dd764b17\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"id\":\"30c94cc8\",\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"计费模式\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"包年/包月\",\"value\":\"1\"},{\"text\":\"按需计费\",\"value\":\"2\"}],\"modelValue\":\"1\"},\"id\":\"a8d84361\"}],\"id\":\"9f39f3e7\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"区域\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"乌兰察布二零一\",\"value\":\"1\"}],\"modelValue\":\"1\",\"style\":\"border-radius: 0px; margin-right: 10px;\"},\"id\":\"c97ccd99\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"温馨提示:页面左上角切换区域\",\"style\":\"background-color: [object Event]; color: #8a8e99; font-size: 12px;\"},\"id\":\"20923497\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"不同区域的云服务产品之间内网互不相通;请就近选择靠近您业务的区域,可减少网络时延,提高访问速度\",\"style\":\"display: block; color: #8a8e99; border-radius: 0px; font-size: 12px;\"},\"id\":\"54780a26\"}],\"id\":\"4966384d\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"可用区\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"可用区1\",\"value\":\"1\"},{\"text\":\"可用区2\",\"value\":\"2\"},{\"text\":\"可用区3\",\"value\":\"3\"}],\"modelValue\":\"1\"},\"id\":\"6184481b\"}],\"id\":\"690837bf\"}],\"id\":\"b6a425d4\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"CPU架构\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"x86计算\",\"value\":\"1\"},{\"text\":\"鲲鹏计算\",\"value\":\"2\"}],\"modelValue\":\"1\"},\"id\":\"7d33ced7\"}],\"id\":\"05ed5a79\"},{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"区域\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; justify-content: flex-start; align-items: center;\"},\"id\":\"606edf78\",\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; align-items: center; margin-right: 10px;\"},\"id\":\"f3f98246\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"vCPUs\",\"style\":\"width: 80px;\"},\"id\":\"c287437e\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}]},\"id\":\"4c43286b\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; align-items: center; margin-right: 10px;\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"内存\",\"style\":\"width: 80px; border-radius: 0px;\"},\"id\":\"38b8fa1f\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}]},\"id\":\"cd33328e\"}],\"id\":\"2b2c678f\"},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; align-items: center;\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"规格名称\",\"style\":\"width: 80px;\"},\"id\":\"d3eb6352\"},{\"componentName\":\"TinySearch\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"输入关键词\"},\"id\":\"21cb9282\"}],\"id\":\"b8e0f35c\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"border-radius: 0px;\"},\"id\":\"5000c83e\",\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"通用计算型\",\"value\":\"1\"},{\"text\":\"通用计算增强型\",\"value\":\"2\"},{\"text\":\"内存优化型\",\"value\":\"3\"},{\"text\":\"内存优化型\",\"value\":\"4\"},{\"text\":\"磁盘增强型\",\"value\":\"5\"},{\"text\":\"超高I/O型\",\"value\":\"6\"},{\"text\":\"GPU加速型\",\"value\":\"7\"}],\"modelValue\":\"1\",\"style\":\"border-radius: 0px; margin-top: 12px;\"},\"id\":\"b8724703\"},{\"componentName\":\"TinyGrid\",\"props\":{\"editConfig\":{\"trigger\":\"click\",\"mode\":\"cell\",\"showStatus\":true},\"columns\":[{\"type\":\"radio\",\"width\":60},{\"field\":\"employees\",\"title\":\"规格名称\"},{\"field\":\"created_date\",\"title\":\"vCPUs | 内存(GiB)\",\"sortable\":true},{\"field\":\"city\",\"title\":\"CPU\",\"sortable\":true},{\"title\":\"基准 / 最大带宽\\t\",\"sortable\":true},{\"title\":\"内网收发包\",\"sortable\":true}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司\",\"city\":\"福州\",\"employees\":800,\"created_date\":\"2014-04-30 00:56:00\",\"boole\":false},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"employees\":300,\"created_date\":\"2016-07-08 12:36:22\",\"boole\":true}],\"style\":\"margin-top: 12px; border-radius: 0px;\",\"auto-resize\":true},\"id\":\"77701c25\"},{\"componentName\":\"div\",\"props\":{\"style\":\"margin-top: 12px; border-radius: 0px;\"},\"id\":\"3339838b\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"当前规格\",\"style\":\"width: 150px; display: inline-block;\"},\"id\":\"203b012b\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"通用计算型 | Si2.large.2 | 2vCPUs | 4 GiB\",\"style\":\"font-weight: 700;\"},\"id\":\"87723f52\"}]}]}],\"id\":\"657fb2fc\"}],\"id\":\"d19b15cf\"}],\"id\":\"9991228b\"},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"镜像\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"公共镜像\",\"value\":\"1\"},{\"text\":\"私有镜像\",\"value\":\"2\"},{\"text\":\"共享镜像\",\"value\":\"3\"}],\"modelValue\":\"1\"},\"id\":\"922b14cb\"},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; margin-top: 12px; border-radius: 0px;\"},\"id\":\"6b679524\",\"children\":[{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 170px; margin-right: 10px;\"},\"id\":\"4851fff7\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 340px;\"},\"id\":\"a7183eb7\"}]},{\"componentName\":\"div\",\"props\":{\"style\":\"margin-top: 12px;\"},\"id\":\"57aee314\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"请注意操作系统的语言类型。\",\"style\":\"color: #e37d29;\"},\"id\":\"56d36c27\"}]}],\"id\":\"e3b02436\"}],\"id\":\"59aebf2b\"}],\"id\":\"87ff7b99\"},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-radius: 4px; border-color: #fff; padding-top: 10px; padding-bottom: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; margin-bottom: 10px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"系统盘\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex;\"},\"id\":\"cddba5b8\",\"children\":[{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 200px; margin-right: 10px;\"},\"id\":\"a97fbe15\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px; margin-right: 10px;\"},\"id\":\"1cde4c0f\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"GiB \\nIOPS上限240,IOPS突发上限5,000\",\"style\":\"color: #575d6c; font-size: 12px;\"},\"id\":\"2815d82d\"}]}],\"id\":\"50239a3a\"}],\"id\":\"e8582986\"},{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyFormItem\",\"props\":{\"label\":\"数据盘\",\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin-top: 12px; display: flex;\"},\"id\":\"728c9825\",\"children\":[{\"componentName\":\"Icon\",\"props\":{\"style\":\"margin-right: 10px; width: 16px; height: 16px;\",\"name\":\"IconPanelMini\"},\"id\":\"fded6930\"},{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}],\"style\":\"width: 200px; margin-right: 10px;\"},\"id\":\"62734e3f\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px; margin-right: 10px;\"},\"id\":\"667c7926\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"GiB \\nIOPS上限600,IOPS突发上限5,000\",\"style\":\"color: #575d6c; font-size: 12px; margin-right: 10px;\"},\"id\":\"e7bc36d6\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px;\"},\"id\":\"1bd56dc0\"}],\"loop\":{\"type\":\"JSExpression\",\"value\":\"this.state.dataDisk\"}},{\"componentName\":\"div\",\"props\":{\"style\":\"display: flex; margin-top: 12px; border-radius: 0px;\"},\"children\":[{\"componentName\":\"Icon\",\"props\":{\"name\":\"IconPlus\",\"style\":\"width: 16px; height: 16px; margin-right: 10px;\"},\"id\":\"65c89f2b\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"增加一块数据盘\",\"style\":\"font-size: 12px; border-radius: 0px; margin-right: 10px;\"},\"id\":\"cb344071\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"您还可以挂载 21 块磁盘(云硬盘)\",\"style\":\"color: #8a8e99; font-size: 12px;\"},\"id\":\"80eea996\"}],\"id\":\"e9e530ab\"}],\"id\":\"078e03ef\"}],\"id\":\"ccef886e\"}],\"id\":\"0fb7bd74\"},{\"componentName\":\"div\",\"props\":{\"style\":\"border-width: 1px; border-style: solid; border-color: #ffffff; padding-top: 10px; padding-left: 10px; padding-right: 10px; box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 3px 0px; background-color: #fff; position: fixed; inset: auto 0% 0% 0%; height: 80px; line-height: 80px; border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyForm\",\"props\":{\"labelWidth\":\"80px\",\"labelPosition\":\"top\",\"inline\":false,\"label-position\":\"left \",\"label-width\":\"150px\",\"style\":\"border-radius: 0px;\"},\"children\":[],\"id\":\"21ed4475\"},{\"componentName\":\"TinyRow\",\"props\":{\"style\":\"border-radius: 0px; height: 100%;\"},\"children\":[{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"8\"},\"id\":\"b9d051a5\",\"children\":[{\"componentName\":\"TinyRow\",\"props\":{\"style\":\"border-radius: 0px;\"},\"children\":[{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"5\",\"style\":\"display: flex;\"},\"id\":\"02352776\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"购买量\",\"style\":\"margin-right: 10px;\"},\"id\":\"0cd9ed5c\"},{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\",\"style\":\"width: 120px; margin-right: 10px;\"},\"id\":\"2f9cf442\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"台\"},\"id\":\"facd4481\"}]},{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"7\"},\"id\":\"82b6c659\",\"children\":[{\"componentName\":\"div\",\"props\":{},\"id\":\"9cd65874\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"配置费用\",\"style\":\"font-size: 12px;\"},\"id\":\"b5a0a0da\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"¥1.5776\",\"style\":\"padding-left: 10px; padding-right: 10px; color: #de504e;\"},\"id\":\"d9464214\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"/小时\",\"style\":\"font-size: 12px;\"},\"id\":\"af7cc5e6\"}]},{\"componentName\":\"div\",\"props\":{},\"id\":\"89063830\",\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"参考价格,具体扣费请以账单为准。\",\"style\":\"font-size: 12px; border-radius: 0px;\"},\"id\":\"d8995fbc\"},{\"componentName\":\"Text\",\"props\":{\"text\":\"了解计费详情\",\"style\":\"font-size: 12px; color: #344899;\"},\"id\":\"b383c3e2\"}]}]}],\"id\":\"94fc0e43\"}]},{\"componentName\":\"TinyCol\",\"props\":{\"span\":\"4\",\"style\":\"display: flex; flex-direction: row-reverse; border-radius: 0px; height: 100%; justify-content: flex-start; align-items: center;\"},\"id\":\"10b73009\",\"children\":[{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"下一步: 网络配置\",\"type\":\"danger\",\"style\":\"max-width: unset;\"},\"id\":\"0b584011\"}]}],\"id\":\"d414a473\"}],\"id\":\"e8ec029b\"}],\"fileName\":\"createVM\"}', 0, 0, 'staticPages', 0, 1, '1', 0, NULL, NULL, NULL, '1', '1', '2024-10-16 23:31:48', '2024-10-16 23:31:48', '1', '1'); + +INSERT INTO `t_user` (`id`, `username`, `email`, `enable`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`, `tenant_id`, `site_id`, `is_admin`, `is_public`) VALUES (1, '开发者', 'developer@lowcode.com', NULL, '1', '1', '2024-10-16 23:28:41', '2024-10-16 23:28:41', '1', '1', 1, NULL); + +INSERT INTO `t_i18n_lang` (`id`, `lang`, `label`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 'zh_CN', '简体中文', '1', '1', '2024-10-17 00:01:36', '2024-10-17 00:01:36'); +INSERT INTO `t_i18n_lang` (`id`, `lang`, `label`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (2, 'en_US', '美式英文', '1', '1', '2024-10-17 00:02:03', '2024-10-17 00:02:03'); + +INSERT INTO `t_platform` (`id`, `name`, `published`, `last_build_info`, `description`, `latest_version`, `latest_history_id`, `material_history_id`, `image_url`, `sort_plugins`, `sort_toolbar`, `is_default`, `prettier_opts`, `set_default_by`, `app_extend_config`, `data_hash`, `business_category_id`, `theme_id`, `platform_url`, `vscode_url`, `tenant_id`, `site_id`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 'default', 1, NULL, '专用设计器', '1.0.0', 1, 1, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', '1', '1', '2024-11-14 22:17:39', '2024-11-14 22:17:39'); + +INSERT INTO `t_platform_history` (`id`, `ref_id`, `version`, `name`, `publish_url`, `description`, `vscode_url`, `material_history_id`, `sub_count`, `material_pkg_name`, `material_version`, `image_url`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `last_updated_by`, `created_time`, `last_updated_time`) VALUES (1, 1, '1.0.0', 'default', 'http://tinyengine.com', '默认设计器', NULL, 1, 1, '@opentiny/lowcode-alpha-material-materialstwo-1505', '1.0.8', NULL, '1', NULL, '1', '1', '1', '2024-11-14 22:20:25', '2024-11-14 22:20:25'); + +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (1, '2.4.2', '{\"zh_CN\":\"输入框\"}', 'ElInput', 'input', '通过鼠标或键盘输入字符', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"exportName\":\"ElInput\"}', '表单组件', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"输入框\"},\"icon\":\"input\",\"screenshot\":\"\",\"snippetName\":\"ElInput\",\"schema\":{}}]', '{\"properties\":[{\"name\":\"0\",\"label\":{\"zh_CN\":\"基础属性\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"description\":{\"zh_CN\":\"绑定值\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"description\":{\"zh_CN\":\"尺寸\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"default\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"large\",\"value\":\"large\"},{\"label\":\"default\",\"value\":\"default\"},{\"label\":\"small\",\"value\":\"small\"}]}}},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"description\":{\"zh_CN\":\"类型\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"description\":{\"zh_CN\":\"输入框占位文本\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"maxlength\",\"label\":{\"text\":{\"zh_CN\":\"最大长度\"}},\"description\":{\"zh_CN\":\"最大输入长度\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"number\",\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"是否禁用\"}},\"description\":{\"zh_CN\":\"是否禁用\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定值改变时触发\"},\"description\":{\"zh_CN\":\"双向绑定值改变时触发\"}},\"onBlur\":{\"label\":{\"zh_CN\":\"输入框失去焦点时触发\"},\"description\":{\"zh_CN\":\"输入框失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"}},\"slots\":{\"prefix\":{\"label\":{\"zh_CN\":\"头部内容\"},\"description\":{\"zh_CN\":\"输入框头部内容,只对非 type=\'textarea\' 有效\"}},\"suffix\":{\"label\":{\"zh_CN\":\"尾部内容\"},\"description\":{\"zh_CN\":\"输入框尾部内容,只对非 type=\'textarea\' 有效\"}},\"prepend\":{\"label\":{\"zh_CN\":\"前置内容\"},\"description\":{\"zh_CN\":\"输入框前置内容,只对非 type=\'textarea\' 有效\"}},\"append\":{\"label\":{\"zh_CN\":\"后置内容\"},\"description\":{\"zh_CN\":\"输入框后置内容,只对非 type=\'textarea\' 有效\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"type\",\"size\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, 2, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (2, '2.4.2', '{\"zh_CN\":\"按钮\"}', 'ElButton', 'button', '常用的操作按钮', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"exportName\":\"ElButton\"}', '基础组件', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"按钮\"},\"icon\":\"button\",\"screenshot\":\"\",\"snippetName\":\"ElButton\",\"schema\":{\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"按钮文本\"}}]}}]', '{\"properties\":[{\"name\":\"0\",\"label\":{\"zh_CN\":\"基础属性\"},\"content\":[{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"description\":{\"zh_CN\":\"尺寸\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"default\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"large\",\"value\":\"large\"},{\"label\":\"default\",\"value\":\"default\"},{\"label\":\"small\",\"value\":\"small\"}]}}},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"description\":{\"zh_CN\":\"类型\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"plain\",\"label\":{\"text\":{\"zh_CN\":\"朴素按钮\"}},\"description\":{\"zh_CN\":\"是否为朴素按钮\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"text\",\"label\":{\"text\":{\"zh_CN\":\"文字按钮\"}},\"description\":{\"zh_CN\":\"是否为文字按钮\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"bg\",\"label\":{\"text\":{\"zh_CN\":\"背景颜色\"}},\"description\":{\"zh_CN\":\"是否显示文字按钮背景颜色\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"link\",\"label\":{\"text\":{\"zh_CN\":\"链接按钮\"}},\"description\":{\"zh_CN\":\"是否为链接按钮\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"round\",\"label\":{\"text\":{\"zh_CN\":\"圆角按钮\"}},\"description\":{\"zh_CN\":\"是否为圆角按钮\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"circle\",\"label\":{\"text\":{\"zh_CN\":\"圆形按钮\"}},\"description\":{\"zh_CN\":\"是否为圆形按钮\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"loading\",\"label\":{\"text\":{\"zh_CN\":\"加载中状态\"}},\"description\":{\"zh_CN\":\"是否为加载中状态\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"description\":{\"zh_CN\":\"是否禁用\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{},\"slots\":{\"default\":{\"label\":{\"zh_CN\":\"default\"},\"description\":{\"zh_CN\":\"自定义默认内容\"}},\"loading\":{\"label\":{\"zh_CN\":\"loading\"},\"description\":{\"zh_CN\":\"自定义加载中组件\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"type\",\"size\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, 2, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (3, '2.4.2', '{\"zh_CN\":\"表单\"}', 'ElForm', 'form', '表单包含 输入框, 单选框, 下拉选择, 多选框 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"exportName\":\"ElForm\"}', '表单组件', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"表单\"},\"icon\":\"form\",\"screenshot\":\"\",\"snippetName\":\"ElForm\",\"schema\":{\"children\":[{\"componentName\":\"ElFormItem\",\"props\":{\"label\":\"账号\",\"prop\":\"account\"},\"children\":[{\"componentName\":\"ElInput\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请输入账号\"}}]},{\"componentName\":\"ElFormItem\",\"props\":{\"label\":\"密码\",\"prop\":\"password\"},\"children\":[{\"componentName\":\"ElInput\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请输入密码\",\"type\":\"password\"}}]},{\"componentName\":\"ElFormItem\",\"props\":{},\"children\":[{\"componentName\":\"ElButton\",\"props\":{\"type\":\"primary\",\"style\":\"margin-right: 10px\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"提交\"}}]},{\"componentName\":\"ElButton\",\"props\":{\"type\":\"primary\"},\"children\":[{\"componentName\":\"Text\",\"props\":{\"text\":\"重置\"}}]}]}]}}]', '{\"properties\":[{\"name\":\"0\",\"label\":{\"zh_CN\":\"基础属性\"},\"content\":[{\"property\":\"model\",\"label\":{\"text\":{\"zh_CN\":\"数据对象\"}},\"description\":{\"zh_CN\":\"表单数据对象\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"rules\",\"label\":{\"text\":{\"zh_CN\":\"验证规则\"}},\"description\":{\"zh_CN\":\"表单验证规则\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"inline\",\"label\":{\"text\":{\"zh_CN\":\"行内模式\"}},\"description\":{\"zh_CN\":\"行内表单模式\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"label-position\",\"label\":{\"text\":{\"zh_CN\":\"标签位置\"}},\"description\":{\"zh_CN\":\"表单域标签的位置, 当设置为 left 或 right 时,则也需要设置标签宽度属性\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"right\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"right\",\"value\":\"right\"},{\"label\":\"top\",\"value\":\"top\"}]}}},{\"property\":\"label-width\",\"label\":{\"text\":{\"zh_CN\":\"标签宽度\"}},\"description\":{\"zh_CN\":\"标签的长度,例如 \'50px\'。 作为 Form 直接子元素的 form-item 会继承该值。 可以使用 auto。\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"label-suffix\",\"label\":{\"text\":{\"zh_CN\":\"标签后缀\"}},\"description\":{\"zh_CN\":\"表单域标签的后缀\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"hide-required-asterisk\",\"label\":{\"text\":{\"zh_CN\":\"隐藏必填星号\"}},\"description\":{\"zh_CN\":\"是否隐藏必填字段标签旁边的红色星号\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"require-asterisk-position\",\"label\":{\"text\":{\"zh_CN\":\"星号位置\"}},\"description\":{\"zh_CN\":\"星号的位置\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"left\",\"widget\":{\"component\":\"ButtonGroupConfigurator\",\"props\":{\"options\":[{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"right\",\"value\":\"right\"}]}}},{\"property\":\"show-message\",\"label\":{\"text\":{\"zh_CN\":\"显示校验信息\"}},\"description\":{\"zh_CN\":\"是否显示校验错误信息\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":true,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"inline-message\",\"label\":{\"text\":{\"zh_CN\":\"行内显示校验信息\"}},\"description\":{\"zh_CN\":\"是否以行内形式展示校验信息\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"status-icon\",\"label\":{\"text\":{\"zh_CN\":\"显示校验结果图标\"}},\"description\":{\"zh_CN\":\"是否在输入框中显示校验结果反馈图标\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"validate-on-rule-change\",\"label\":{\"text\":{\"zh_CN\":\"触发验证\"}},\"description\":{\"zh_CN\":\"是否在 rules 属性改变后立即触发一次验证\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":true,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"description\":{\"zh_CN\":\"用于控制该表单内组件的尺寸\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"default\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"large\",\"value\":\"large\"},{\"label\":\"default\",\"value\":\"default\"},{\"label\":\"small\",\"value\":\"small\"}]}}},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"description\":{\"zh_CN\":\"是否禁用该表单内的所有组件。 如果设置为 true, 它将覆盖内部组件的 disabled 属性\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"scroll-to-error\",\"label\":{\"text\":{\"zh_CN\":\"滚动到错误项\"}},\"description\":{\"zh_CN\":\"当校验失败时,滚动到第一个错误表单项\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"device\":[]}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onValidate\":{\"label\":{\"zh_CN\":\"任一表单项被校验后触发\"},\"description\":{\"zh_CN\":\"任一表单项被校验后触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"slots\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":[\"ElFormItem\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, 2, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (4, '2.4.2', '{\"zh_CN\":\"表单子项\"}', 'ElFormItem', 'formItem', '表单包含 输入框, 单选框, 下拉选择, 多选框 等用户输入的组件。 使用表单,您可以收集、验证和提交数据。', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"exportName\":\"ElFormItem\"}', '表单组件', 'element-plus', NULL, NULL, '{\"properties\":[{\"name\":\"0\",\"label\":{\"zh_CN\":\"基础属性\"},\"content\":[{\"property\":\"prop\",\"label\":{\"text\":{\"zh_CN\":\"键名\"}},\"description\":{\"zh_CN\":\"model 的键名。 它可以是一个属性的值(如 a.b.0 或 [a\', \'b\', \'0\'])。 在定义了 validate、resetFields 的方法时,该属性是必填的\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"label\",\"label\":{\"text\":{\"zh_CN\":\"标签文本\"}},\"description\":{\"zh_CN\":\"标签文本\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"label-width\",\"label\":{\"text\":{\"zh_CN\":\"标签宽度\"}},\"description\":{\"zh_CN\":\"标签宽度,例如 \'50px\'。 可以使用 auto\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"required\",\"label\":{\"text\":{\"zh_CN\":\"必填项\"}},\"description\":{\"zh_CN\":\"是否为必填项,如不设置,则会根据校验规则确认\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"rules\",\"label\":{\"text\":{\"zh_CN\":\"验证规则\"}},\"description\":{\"zh_CN\":\"表单验证规则, 更多内容可以参考async-validator\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"error\",\"label\":{\"text\":{\"zh_CN\":\"错误信息\"}},\"description\":{\"zh_CN\":\"表单域验证错误时的提示信息。设置该值会导致表单验证状态变为 error,并显示该错误信息\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"show-message\",\"label\":{\"text\":{\"zh_CN\":\"显示错误信息\"}},\"description\":{\"zh_CN\":\"是否显示校验错误信息\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"inline-message\",\"label\":{\"text\":{\"zh_CN\":\"行内显示错误信息\"}},\"description\":{\"zh_CN\":\"是否在行内显示校验信息\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"description\":{\"zh_CN\":\"用于控制该表单内组件的尺寸\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"default\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"large\",\"value\":\"large\"},{\"label\":\"default\",\"value\":\"default\"},{\"label\":\"small\",\"value\":\"small\"}]}}},{\"property\":\"for\",\"label\":{\"text\":{\"zh_CN\":\"for\"}},\"description\":{\"zh_CN\":\"和原生标签相同能力\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"validate-status\",\"label\":{\"text\":{\"zh_CN\":\"校验状态\"}},\"description\":{\"zh_CN\":\"formItem 校验的状态\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"error\",\"value\":\"error\"},{\"label\":\"validating\",\"value\":\"validating\"},{\"label\":\"success\",\"value\":\"success\"}]}}}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{},\"slots\":{\"label\":{\"label\":{\"zh_CN\":\"label\"},\"description\":{\"zh_CN\":\"标签位置显示的内容\"}},\"error\":{\"label\":{\"zh_CN\":\"error\"},\"description\":{\"zh_CN\":\"验证错误信息的显示内容\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, 2, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (5, '2.4.2', '{\"zh_CN\":\"表单\"}', 'ElTable', 'table', '用于展示多条结构类似的数据, 可对数据进行排序、筛选、对比或其他自定义操作', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"exportName\":\"ElTable\"}', '数据展示', 'element-plus', NULL, '[{\"name\":{\"zh_CN\":\"表格\"},\"icon\":\"grid\",\"screenshot\":\"\",\"snippetName\":\"ElTable\",\"schema\":{\"props\":{\"data\":[{\"date\":\"2016-05-03\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"},{\"date\":\"2016-05-02\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"},{\"date\":\"2016-05-04\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"},{\"date\":\"2016-05-01\",\"name\":\"Tom\",\"address\":\"No. 189, Grove St, Los Angeles\"}],\"columns\":[{\"type\":\"index\"},{\"label\":\"Date\",\"prop\":\"date\"},{\"label\":\"Name\",\"prop\":\"name\"},{\"label\":\"Address\",\"prop\":\"address\"}]}}}]', '{\"properties\":[{\"name\":\"0\",\"label\":{\"zh_CN\":\"基础属性\"},\"content\":[{\"property\":\"data\",\"label\":{\"text\":{\"zh_CN\":\"数据\"}},\"description\":{\"zh_CN\":\"显示的数据\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"columns\",\"label\":{\"text\":{\"zh_CN\":\"表格列配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"properties\":[{\"label\":{\"zh_CN\":\"默认分组\"},\"content\":[{\"property\":\"type\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"type\"}},\"description\":{\"text\":{\"zh_CN\":\"对应列的类型。 如果设置了selection则显示多选框; 如果设置了 index 则显示该行的索引(从 1 开始计算); 如果设置了 expand 则显示为一个可展开的按钮\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"selection\",\"value\":\"selection\"},{\"label\":\"index\",\"value\":\"index\"},{\"label\":\"expand\",\"value\":\"expand\"}]}}},{\"property\":\"index\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"index\"}},\"description\":{\"text\":{\"zh_CN\":\"如果设置了 type=index,可以通过传递 index 属性来自定义索引\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}}},{\"property\":\"label\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"label\"}},\"description\":{\"text\":{\"zh_CN\":\"显示的标题\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"column-key\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"column-key\"}},\"description\":{\"text\":{\"zh_CN\":\"column 的 key, column 的 key, 如果需要使用 filter-change 事件,则需要此属性标识是哪个 column 的筛选条件\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"prop\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"prop\"}},\"description\":{\"text\":{\"zh_CN\":\"字段名称 对应列内容的字段名, 也可以使用 property属性\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"width\",\"type\":\"number\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"width\"}},\"description\":{\"text\":{\"zh_CN\":\"对应列的宽度\"}},\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}}},{\"property\":\"min-width\",\"type\":\"number\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"min-width\"}},\"description\":{\"text\":{\"zh_CN\":\"对应列的最小宽度, 对应列的最小宽度, 与 width 的区别是 width 是固定的,min-width 会把剩余宽度按比例分配给设置了 min-width 的列\"}},\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}}},{\"property\":\"fixed\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"fixed\"}},\"description\":{\"text\":{\"zh_CN\":\"列是否固定在左侧或者右侧。 true 表示固定在左侧\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"right\",\"value\":\"right\"}]}}},{\"property\":\"sortable\",\"type\":\"boolean\",\"labelPosition\":\"left\",\"label\":{\"text\":{\"zh_CN\":\"sortable\"}},\"description\":{\"text\":{\"zh_CN\":\"对应列是否可以排序\"}},\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"sort-method\",\"type\":\"function\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"sort-method\"}},\"description\":{\"text\":{\"zh_CN\":\"指定数据按照哪个属性进行排序,仅当sortable设置为true的时候有效。 应该如同 Array.sort 那样返回一个 Number\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}}},{\"property\":\"sort-by\",\"type\":\"array\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"sort-by\"}},\"description\":{\"text\":{\"zh_CN\":\"指定数据按照哪个属性进行排序,仅当 sortable 设置为 true 且没有设置 sort-method 的时候有效。 如果 sort-by 为数组,则先按照第 1 个属性排序,如果第 1 个相等,再按照第 2 个排序,以此类推\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"sort-orders\",\"type\":\"array\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"sort-orders\"}},\"description\":{\"text\":{\"zh_CN\":\"数据在排序时所使用排序策略的轮转顺序,仅当 sortable 为 true 时有效。 需传入一个数组,随着用户点击表头,该列依次按照数组中元素的顺序进行排序\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"resizable\",\"type\":\"boolean\",\"labelPosition\":\"left\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"resizable\"}},\"description\":{\"text\":{\"zh_CN\":\"对应列是否可以通过拖动改变宽度(需要在 el-table 上设置 border 属性为真)\"}},\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"formatter\",\"type\":\"function\",\"labelPosition\":\"top\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"formatter\"}},\"description\":{\"text\":{\"zh_CN\":\"用来格式化内容\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"dataType\":\"JSFunction\"}}},{\"property\":\"show-overflow-tooltip\",\"type\":\"boolean\",\"labelPosition\":\"left\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"show-overflow-tooltip\"}},\"description\":{\"text\":{\"zh_CN\":\"当内容过长被隐藏时显示 tooltip\"}},\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"align\",\"type\":\"string\",\"labelPosition\":\"top\",\"defaultValue\":\"left\",\"label\":{\"text\":{\"zh_CN\":\"align\"}},\"description\":{\"text\":{\"zh_CN\":\"对齐方式\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"center\",\"value\":\"center\"},{\"label\":\"right\",\"value\":\"right\"}]}}},{\"property\":\"header-align\",\"type\":\"string\",\"labelPosition\":\"top\",\"defaultValue\":\"left\",\"label\":{\"text\":{\"zh_CN\":\"header-align\"}},\"description\":{\"text\":{\"zh_CN\":\"表头对齐方式, 若不设置该项,则使用表格的对齐方式\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"center\",\"value\":\"center\"},{\"label\":\"right\",\"value\":\"right\"}]}}},{\"property\":\"class-name\",\"type\":\"string\",\"labelPosition\":\"top\",\"defaultValue\":\"left\",\"label\":{\"text\":{\"zh_CN\":\"class-name\"}},\"description\":{\"text\":{\"zh_CN\":\"列的 className\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"label-class-name\",\"type\":\"string\",\"labelPosition\":\"top\",\"defaultValue\":\"left\",\"label\":{\"text\":{\"zh_CN\":\"label-class-name\"}},\"description\":{\"text\":{\"zh_CN\":\"当前列标题的自定义类名\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"selectable\",\"type\":\"function\",\"labelPosition\":\"top\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"selectable\"}},\"description\":{\"text\":{\"zh_CN\":\"仅对 type=selection 的列有效,类型为 Function,Function 的返回值用来决定这一行的 CheckBox 是否可以勾选\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}}},{\"property\":\"reserve-selection\",\"type\":\"boolean\",\"labelPosition\":\"left\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"reserve-selection\"}},\"description\":{\"text\":{\"zh_CN\":\"数据刷新后是否保留选项,仅对 type=selection 的列有效, 请注意, 需指定 row-key 来让这个功能生效。\"}},\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"filters\",\"type\":\"array\",\"labelPosition\":\"top\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"filters\"}},\"description\":{\"text\":{\"zh_CN\":\"数据刷新后是否保留选项,仅对 type=selection 的列有效, 请注意, 需指定 row-key 来让这个功能生效。\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}},{\"property\":\"filter-placement\",\"type\":\"string\",\"labelPosition\":\"top\",\"label\":{\"text\":{\"zh_CN\":\"filter-placement\"}},\"description\":{\"text\":{\"zh_CN\":\"过滤弹出框的定位\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"filter-multiple\",\"type\":\"string\",\"labelPosition\":\"left\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"filter-multiple\"}},\"description\":{\"text\":{\"zh_CN\":\"数据过滤的选项是否多选\"}},\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"filter-method\",\"type\":\"function\",\"labelPosition\":\"top\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"filter-method\"}},\"description\":{\"text\":{\"zh_CN\":\"数据过滤使用的方法, 如果是多选的筛选项,对每一条数据会执行多次,任意一次返回 true 就会显示\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}}},{\"property\":\"filtered-value\",\"type\":\"array\",\"labelPosition\":\"top\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"filtered-value\"}},\"description\":{\"text\":{\"zh_CN\":\"选中的数据过滤项,如果需要自定义表头过滤的渲染方式,可能会需要此属性\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}}}]}],\"widget\":{\"component\":\"TableColumnsConfigurator\",\"props\":{\"type\":\"object\",\"textField\":\"label\",\"language\":\"json\",\"buttonText\":\"编辑列配置\",\"title\":\"编辑列配置\",\"expand\":true}},\"description\":{\"zh_CN\":\"表格列的配置信息\"},\"labelPosition\":\"top\"},{\"property\":\"max-height\",\"label\":{\"text\":{\"zh_CN\":\"最大高度\"}},\"description\":{\"zh_CN\":\"Table 的最大高度。\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"number\",\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"height\",\"label\":{\"text\":{\"zh_CN\":\"表格高度\"}},\"description\":{\"zh_CN\":\"Table 的高度, 默认为自动高度。 这个高度会设置为 Table 的 style.height 的值,Table 的高度会受控于外部样式。\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"stripe\",\"label\":{\"text\":{\"zh_CN\":\"斑马纹\"}},\"description\":{\"zh_CN\":\"是否为斑马纹 table\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"border\",\"label\":{\"text\":{\"zh_CN\":\"纵向边框\"}},\"description\":{\"zh_CN\":\"是否带有纵向边框\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"表格尺寸\"}},\"description\":{\"zh_CN\":\"Table 的尺寸\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"type\":\"string\",\"defaultValue\":\"default\",\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"large\",\"value\":\"large\"},{\"label\":\"default\",\"value\":\"default\"},{\"label\":\"small\",\"value\":\"small\"}]}}},{\"property\":\"fit\",\"label\":{\"text\":{\"zh_CN\":\"列宽自撑开\"}},\"description\":{\"zh_CN\":\"列的宽度是否自撑开\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":true,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"show-header\",\"label\":{\"text\":{\"zh_CN\":\"显示表头\"}},\"description\":{\"zh_CN\":\"是否显示表头\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":true,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"highlight-current-row\",\"label\":{\"text\":{\"zh_CN\":\"高亮当前行\"}},\"description\":{\"zh_CN\":\"是否要高亮当前行\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"current-row-key\",\"label\":{\"text\":{\"zh_CN\":\"当前行的 key\"}},\"description\":{\"zh_CN\":\"当前行的 key,只写属性\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"type\":\"string\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"row-class-name\",\"label\":{\"text\":{\"zh_CN\":\"行的类名\"}},\"description\":{\"zh_CN\":\"行的 className\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"row-key\",\"label\":{\"text\":{\"zh_CN\":\"行数据的 Key\"}},\"description\":{\"zh_CN\":\"行数据的 Key,用来优化 Table 的渲染; 在使用reserve-selection功能与显示树形数据时,该属性是必填的。 类型为 String 时,支持多层访问:user.info.id,但不支持 user.info[0].id,此种情况请使用 Function\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"empty-text\",\"label\":{\"text\":{\"zh_CN\":\"空数据文本\"}},\"description\":{\"zh_CN\":\"空数据时显示的文本内容\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"device\":[]},{\"property\":\"table-layout\",\"label\":{\"text\":{\"zh_CN\":\"表格布局方式\"}},\"description\":{\"zh_CN\":\"设置表格单元、行和列的布局方式\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"top\",\"defaultValue\":\"fixed\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"options\":[{\"label\":\"fixed\",\"value\":\"fixed\"},{\"label\":\"auto\",\"value\":\"auto\"}]}},\"device\":[]},{\"property\":\"scrollbar-always-on\",\"label\":{\"text\":{\"zh_CN\":\"显示滚动条\"}},\"description\":{\"zh_CN\":\"总是显示滚动条\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}},{\"property\":\"flexible\",\"label\":{\"text\":{\"zh_CN\":\"主轴最小尺寸\"}},\"description\":{\"zh_CN\":\"确保主轴的最小尺寸,以便不超过内容\"},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"labelPosition\":\"left\",\"defaultValue\":false,\"type\":\"boolean\",\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}}}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onSelect\":{\"label\":{\"zh_CN\":\"勾选数据行的 Checkbox 时触发\"},\"description\":{\"zh_CN\":\"当用户手动勾选数据行的 Checkbox 时触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"selection\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中项\"}},{\"name\":\"row\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前行\"}}],\"returns\":{}}},\"onSelectAll\":{\"label\":{\"zh_CN\":\"勾选全选时触发\"},\"description\":{\"zh_CN\":\"当用户手动勾选全选 Checkbox 时触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"selection\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中项\"}}],\"returns\":{}}},\"onSelectionChange\":{\"label\":{\"zh_CN\":\"选择项发生变化时会触发\"},\"description\":{\"zh_CN\":\"当选择项发生变化时会触发该事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"selection\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中项\"}}],\"returns\":{}}},\"onCellMouseEnter\":{\"label\":{\"zh_CN\":\"单元格 hover 时会触发\"},\"description\":{\"zh_CN\":\"当单元格 hover 进入时会触发该事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"row\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前行\"}},{\"name\":\"column\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前列\"}},{\"name\":\"cell\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前单元格\"}},{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生事件 event\"}}],\"returns\":{}}},\"onCellMouseLeave\":{\"label\":{\"zh_CN\":\"单元格 hover 退出时会触发\"},\"description\":{\"zh_CN\":\"当单元格 hover 退出时会触发该事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"row\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前行\"}},{\"name\":\"column\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前列\"}},{\"name\":\"cell\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前单元格\"}},{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生事件 event\"}}],\"returns\":{}}}},\"slots\":{\"empty\":{\"label\":{\"zh_CN\":\"empty\"},\"description\":{\"zh_CN\":\"当数据为空时自定义的内容\"}},\"append\":{\"label\":{\"zh_CN\":\"append\"},\"description\":{\"zh_CN\":\"插入至表格最后一行之后的内容, 如果需要对表格的内容进行无限滚动操作,可能需要用到这个 slot。 若表格有合计行,该 slot 会位于合计行之上。\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":[\"ElTableColumn\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, 2, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (6, '2.4.2', '{\"zh_CN\":\"表单\"}', 'ElTableColumn', 'table', '用于展示多条结构类似的数据, 可对数据进行排序、筛选、对比或其他自定义操作', '', '', '', '', 'proCode', '{\"package\":\"element-plus\",\"exportName\":\"ElTableColumn\"}', '表单组件', 'element-plus', NULL, NULL, '{\"properties\":[{\"name\":\"0\",\"label\":{\"zh_CN\":\"基础属性\"},\"content\":[],\"description\":{\"zh_CN\":\"\"}}],\"events\":{},\"slots\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"isPopper\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"inline\",\"label-width\"]},\"contextMenu\":{\"actions\":[\"copy\",\"remove\",\"insert\",\"updateAttr\",\"bindEevent\",\"createBlock\"],\"disable\":[]},\"invalidity\":[\"\"],\"clickCapture\":true,\"framework\":\"Vue\"}', 1, 'Vue', 1, 1, 0, NULL, 2, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (7, '3.20.0', '{\"zh_CN\":\"走马灯子项\"}', 'TinyCarouselItem', 'carouselitem', '常用于一组图片或卡片轮播,当内容空间不足时,可以用走马灯的形式进行收纳,进行轮播展现。', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CarouselItem\"}', 'component', '容器组件', 2, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"name\",\"label\":{\"text\":{\"zh_CN\":\"名称\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"幻灯片的名字,可用作 setActiveItem 的参数\"},\"labelPosition\":\"left\"},{\"property\":\"title\",\"label\":{\"text\":{\"zh_CN\":\"标题\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"幻灯片的标题\"},\"labelPosition\":\"left\"},{\"property\":\"indicator-position\",\"label\":{\"text\":{\"zh_CN\":\"指示器位置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"ButtonGroupConfigurator\",\"props\":{\"options\":[{\"label\":\"outside\",\"value\":\"outside\"},{\"label\":\"none\",\"value\":\"none\"}]}},\"description\":{\"zh_CN\":\"指示器的位置\"},\"labelPosition\":\"left\"}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (8, '3.20.0', '{\"zh_CN\":\"走马灯\"}', 'TinyCarousel', 'carousel', '常用于一组图片或卡片轮播,当内容空间不足时,可以用走马灯的形式进行收纳,进行轮播展现。', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Carousel\"}', 'component', '容器组件', 2, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"arrow\",\"label\":{\"text\":{\"zh_CN\":\"箭头显示时机\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"options\":[{\"label\":\"总是显示\",\"value\":\"always\"},{\"label\":\"鼠标悬停时显示\",\"value\":\"hover\"},{\"label\":\"从不显示\",\"value\":\"never\"}]}},\"description\":{\"zh_CN\":\"切换箭头的显示时机\"}},{\"property\":\"autoplay\",\"label\":{\"text\":{\"zh_CN\":\"自动切换\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否自动切换\"},\"labelPosition\":\"left\"},{\"property\":\"tabs\",\"label\":{\"text\":{\"zh_CN\":\"选项卡\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"defaultValue\":\"\",\"cols\":12,\"bindState\":false,\"widget\":{\"component\":\"ContainerConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"tabs 选项卡\"},\"labelPosition\":\"none\"},{\"property\":\"height\",\"label\":{\"text\":{\"zh_CN\":\"高度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"走马灯的高度\"}},{\"property\":\"indicator-position\",\"label\":{\"text\":{\"zh_CN\":\"位置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"options\":[{\"label\":\"走马灯外部\",\"value\":\"outside\"},{\"label\":\"不显示\",\"value\":\"none\"}]}},\"description\":{\"zh_CN\":\"指示器的位置\"}},{\"property\":\"initial-index\",\"label\":{\"text\":{\"zh_CN\":\"初始索引\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"初始状态激活的幻灯片的索引,从 0 开始 \"}},{\"property\":\"interval\",\"label\":{\"text\":{\"zh_CN\":\"自动切换间隔\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"自动切换的时间间隔,单位为毫秒\"}},{\"property\":\"loop\",\"label\":{\"text\":{\"zh_CN\":\"循环显示\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否循环显示\"},\"labelPosition\":\"left\"},{\"property\":\"show-title\",\"label\":{\"text\":{\"zh_CN\":\"显示标题\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示标题\"},\"labelPosition\":\"left\"},{\"property\":\"trigger\",\"label\":{\"text\":{\"zh_CN\":\"触发方式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"options\":[{\"label\":\"点击\",\"value\":\"click\"},{\"label\":\"悬停\",\"value\":\"hover\"}]}},\"description\":{\"zh_CN\":\"指示器的触发方式,默认为 hover\"}},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"options\":[{\"label\":\"水平\",\"value\":\"horizontal\"},{\"label\":\"垂直\",\"value\":\"vertical\"},{\"label\":\"卡片\",\"value\":\"card\"}]}},\"description\":{\"zh_CN\":\"走马灯的类型\"}}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"clickCapture\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyCarouselItem\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (9, '3.20.0', '{\"zh_CN\":\"提示框\"}', 'a', 'link', '链接', '', '', '', '', 'proCode', '{}', 'component', 'basic', 7, '[{\"name\":{\"zh_CN\":\"链接\"},\"icon\":\"link\",\"screenshot\":\"\",\"snippetName\":\"a\",\"schema\":{\"componentName\":\"a\",\"children\":\"链接\"}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"children\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlTextConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"类型\"},\"labelPosition\":\"none\"},{\"property\":\"href\",\"label\":{\"text\":{\"zh_CN\":\"链接\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"指定链接的 URL\"},\"labelPosition\":\"left\"},{\"property\":\"target\",\"label\":{\"text\":{\"zh_CN\":\"打开方式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"ButtonGroupConfigurator\",\"props\":{\"options\":[{\"label\":\"当前页面\",\"value\":\"_self\"},{\"label\":\"打开新页面\",\"value\":\"_blank\"}]}},\"description\":{\"zh_CN\":\"指定链接的打开方式,例如在当前窗口中打开或在新窗口中打开。\"}},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}]}', '{\"loop\":true,\"condition\":true,\"slots\":[],\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[]},\"contextMenu\":{\"actions\":[],\"disable\":[]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (10, '3.20.0', '{\"zh_CN\":\"标题\"}', '[h1, h2, h3, h4, h5, h6]', 'h16', '标题', '', '', '', '', 'proCode', '{}', 'component', 'html', 20, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"children\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlTextConfigurator\",\"props\":{\"showRadioButton\":true}},\"description\":{\"zh_CN\":\"\"},\"labelPosition\":\"none\"},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"\"},\"labelPosition\":\"none\"}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (11, '3.20.0', '{\"zh_CN\":\"段落\"}', 'p', 'paragraph', '段落', '', '', '', '', 'proCode', '{}', 'component', 'basic', 30, '[{\"name\":{\"zh_CN\":\"段落\"},\"icon\":\"paragraph\",\"screenshot\":\"\",\"snippetName\":\"p\",\"schema\":{\"componentName\":\"p\",\"children\":\"TinyEngine 前端可视化设计器致力于通过友好的用户交互提升业务应用的开发效率。\"}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"children\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlTextConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"类型\"},\"labelPosition\":\"none\"},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[]},\"contextMenu\":{\"actions\":[],\"disable\":[]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (12, '3.20.0', '{\"zh_CN\":\"输入框\"}', 'input', 'input', '输入框', '', '', '', '', 'proCode', '{}', 'component', 'html', 40, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"checkbox\",\"value\":\"checkbox\"},{\"label\":\"color\",\"value\":\"color\"},{\"label\":\"date\",\"value\":\"date\"},{\"label\":\"button\",\"value\":\"button\"},{\"label\":\"email\",\"value\":\"email\"},{\"label\":\"file\",\"value\":\"file\"},{\"label\":\"hidden\",\"value\":\"hidden\"},{\"label\":\"image\",\"value\":\"image\"},{\"label\":\"month\",\"value\":\"month\"},{\"label\":\"number\",\"value\":\"number\"},{\"label\":\"password\",\"value\":\"password\"},{\"label\":\"radio\",\"value\":\"radio\"},{\"label\":\"range\",\"value\":\"range\"},{\"label\":\"reset\",\"value\":\"reset\"},{\"label\":\"search\",\"value\":\"search\"},{\"label\":\"submit\",\"value\":\"submit\"},{\"label\":\"text\",\"value\":\"text\"},{\"label\":\"time\",\"value\":\"time\"},{\"label\":\"week\",\"value\":\"week\"},{\"label\":\"url\",\"value\":\"url\"}]}},\"description\":{\"zh_CN\":\"类型\"}},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位符\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"占位符\"}},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{\"onBlur\":{\"label\":{\"zh_CN\":\"失去焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onFocus\":{\"label\":{\"zh_CN\":\"获取焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 获取焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onChange\":{\"label\":{\"zh_CN\":\"输入值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (13, '3.20.0', '{\"zh_CN\":\"视频\"}', 'video', 'video', '视频', '', '', '', '', 'proCode', '{}', 'component', 'basic', 50, '[{\"name\":{\"zh_CN\":\"视频\"},\"icon\":\"video\",\"screenshot\":\"\",\"snippetName\":\"video\",\"schema\":{\"componentName\":\"video\",\"props\":{\"src\":\"img/webNova.jpg\",\"width\":\"200\",\"height\":\"100\",\"style\":\"border:1px solid #ccc\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"src\",\"label\":{\"text\":{\"zh_CN\":\"资源\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"视频的 URL\"}},{\"property\":\"width\",\"label\":{\"text\":{\"zh_CN\":\"播放器宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"视频播放器的宽度\"}},{\"property\":\"height\",\"label\":{\"text\":{\"zh_CN\":\"播放器高度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"视频播放器的高度\"}},{\"property\":\"controls\",\"label\":{\"text\":{\"zh_CN\":\"显示控件\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示控件\"},\"labelPosition\":\"left\"},{\"property\":\"autoplay\",\"label\":{\"text\":{\"zh_CN\":\"马上播放\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否马上播放\"},\"labelPosition\":\"left\"},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[]},\"contextMenu\":{\"actions\":[],\"disable\":[]}}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (14, '3.20.0', '{\"zh_CN\":\"Img\"}', 'Img', 'Image', NULL, NULL, '', '', '', 'proCode', '{}', 'component', 'html', 60, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"src\",\"type\":\"string\",\"defaultValue\":\"\",\"bindState\":true,\"label\":{\"text\":{\"zh_CN\":\"资源\"}},\"cols\":12,\"rules\":[],\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"src路径\"}},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{},\"shortcuts\":{\"properties\":[\"src\"]},\"contentMenu\":{\"actions\":[]}}', NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (15, '3.20.0', '{\"zh_CN\":\"Button\"}', 'button', 'button', NULL, NULL, '', '', '', 'proCode', '{}', 'component', 'html', 70, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"点击时触发\"},\"description\":{\"zh_CN\":\"点击时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"shortcuts\":{\"properties\":[]},\"contentMenu\":{\"actions\":[]}}', '{\"isContainer\":true}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (16, '3.20.0', '{\"zh_CN\":\"表格\"}', 'table', 'table', NULL, NULL, '', '', '', 'proCode', '{}', 'component', 'html', 80, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"width\",\"label\":{\"text\":{\"zh_CN\":\"宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表格的宽度\"}},{\"property\":\"border\",\"label\":{\"text\":{\"zh_CN\":\"边框宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表格边框的宽度\"}},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"点击时触发\"},\"description\":{\"zh_CN\":\"点击时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"shortcuts\":{\"properties\":[]},\"contentMenu\":{\"actions\":[]}}', NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (17, '3.20.0', '{\"zh_CN\":\"表格单元格\"}', 'td', 'td', NULL, NULL, '', '', '', 'proCode', '{}', 'component', 'html', 90, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"colspan\",\"label\":{\"text\":{\"zh_CN\":\"合并列\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"单元格可横跨的列数\"}},{\"property\":\"rowspan\",\"label\":{\"text\":{\"zh_CN\":\"合并行\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"单元格可横跨的行数\"}},{\"property\":\"attributes3\",\"label\":{\"text\":{\"zh_CN\":\"原生属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"HtmlAttributesConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生属性\"},\"labelPosition\":\"none\"}]}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"点击时触发\"},\"description\":{\"zh_CN\":\"点击时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"shortcuts\":{\"properties\":[]},\"contentMenu\":{\"actions\":[]}}', NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (18, '3.20.0', '{\"zh_CN\":\"表单\"}', 'form', 'form', NULL, NULL, '', '', '', 'proCode', '{}', 'component', 'html', 100, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"name\",\"label\":{\"text\":{\"zh_CN\":\"名称\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表单的名称\"}},{\"property\":\"action\",\"label\":{\"text\":{\"zh_CN\":\"提交地址\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"提交表单时向何处发送表单数据\"}},{\"property\":\"method\",\"label\":{\"text\":{\"zh_CN\":\"HTTP方法\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"get\",\"value\":\"get\"},{\"label\":\"post\",\"value\":\"post\"}]}},\"description\":{\"zh_CN\":\"用于发送 form-data 的 HTTP 方法\"}}]}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"点击时触发\"},\"description\":{\"zh_CN\":\"点击时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"shortcuts\":{\"properties\":[]},\"contentMenu\":{\"actions\":[]}}', '{\"isContainer\":true}', 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (19, '3.20.0', '{\"zh_CN\":\"表单标签\"}', 'label', 'label', NULL, NULL, '', '', '', 'proCode', '{}', 'component', 'html', 110, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"for\",\"label\":{\"text\":{\"zh_CN\":\"label绑定表单元素\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"label 绑定到哪个表单元素\"}},{\"property\":\"form\",\"label\":{\"text\":{\"zh_CN\":\"label字段所属表单\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"label 字段所属的一个或多个表单\"}}]}],\"events\":{},\"shortcuts\":{\"properties\":[]},\"contentMenu\":{\"actions\":[]}}', NULL, 1, 'Vue', 1, 1, 0, NULL, NULL, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (20, '3.20.0', '{\"zh_CN\":\"按钮组\"}', 'TinyButtonGroup', 'buttonGroup', '以按钮组的方式出现,常用于多项类似操作', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"ButtonGroup\"}', 'component', 'basic', 2, '[{\"name\":{\"zh_CN\":\"互斥按钮组\"},\"icon\":\"buttons\",\"screenshot\":\"\",\"snippetName\":\"TinyButtonGroup\",\"schema\":{\"componentName\":\"TinyButtonGroup\",\"props\":{\"data\":[{\"text\":\"Button1\",\"value\":\"1\"},{\"text\":\"Button2\",\"value\":\"2\"},{\"text\":\"Button3\",\"value\":\"3\"}],\"modelValue\":\"1\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"data\",\"label\":{\"text\":{\"zh_CN\":\"数据\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"description\":{\"zh_CN\":\"配置按钮组数据\"}},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"大小\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"mini\",\"value\":\"mini\"},{\"label\":\"small\",\"value\":\"small\"},{\"label\":\"medium\",\"value\":\"medium\"}]}},\"description\":{\"zh_CN\":\"组件大小\"},\"labelPosition\":\"left\"},{\"property\":\"plain\",\"label\":{\"text\":{\"zh_CN\":\"朴素按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否是朴素按钮\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (21, '3.20.0', '{\"zh_CN\":\"row\"}', 'TinyRow', 'row', '定义 Layout 的行配置信息', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Row\"}', 'component', NULL, 5, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"layout\",\"label\":{\"text\":{\"zh_CN\":\"布局\"}},\"cols\":12,\"widget\":{\"component\":\"LayoutGridConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"选择布局方式\"},\"labelPosition\":\"none\"},{\"property\":\"align\",\"label\":{\"text\":{\"zh_CN\":\"子项对齐方式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"top\",\"value\":\"top\"},{\"label\":\"middle\",\"value\":\"middle\"},{\"label\":\"bottom\",\"value\":\"bottom\"}]}},\"description\":{\"zh_CN\":\"子项的副轴对齐方向,可取值:top, middle, bottom\"}},{\"property\":\"flex\",\"label\":{\"text\":{\"zh_CN\":\"flex容器\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否为flex容器\"},\"labelPosition\":\"left\"},{\"property\":\"gutter\",\"label\":{\"text\":{\"zh_CN\":\"子项间隔\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"子项的间隔的像素\"}}]}]}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (22, '3.20.0', '{\"zh_CN\":\"row\"}', 'TinyLayout', 'row', '定义 Layout 的行配置信息', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Layout\",\"version\":\"3.20.0\",\"destructuring\":true,\"script\":\"https://unpkg.com/@opentiny/vue-runtime@~3.20/dist3/tiny-vue-pc.mjs\",\"css\":\"https://unpkg.com/@opentiny/vue-theme@~3.20/index.css\"}', 'component', 'layout', 5, '[{\"name\":{\"zh_CN\":\"栅格布局\"},\"icon\":\"row\",\"screenshot\":\"\",\"snippetName\":\"TinyLayout\",\"schema\":{\"componentName\":\"TinyLayout\",\"props\":{},\"children\":[{\"componentName\":\"TinyRow\",\"props\":{\"style\":\"padding: 10px;\"},\"children\":[{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}},{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}},{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}},{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}}]},{\"componentName\":\"TinyRow\",\"props\":{\"style\":\"padding: 10px;\"},\"children\":[{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}},{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}},{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}},{\"componentName\":\"TinyCol\",\"props\":{\"span\":3}}]}]}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"cols\",\"label\":{\"text\":{\"zh_CN\":\"总栅格数\"}},\"cols\":12,\"widget\":{\"component\":\"ButtonGroupConfigurator\",\"props\":{\"options\":[{\"label\":\"12\",\"value\":12},{\"label\":\"24\",\"value\":24}]}},\"description\":{\"zh_CN\":\"选择总栅格数\"},\"labelPosition\":\"none\"},{\"property\":\"tag\",\"label\":{\"text\":{\"zh_CN\":\"layout渲染的标签\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"定义Layout元素渲染后的标签,默认为 div\"}}]}]}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyRow\",\"TinyCol\"],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (23, '3.20.0', '{\"zh_CN\":\"表单\"}', 'TinyForm', 'form', '由按钮、输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Form\"}', 'component', NULL, 5, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"label-width\",\"label\":{\"text\":{\"zh_CN\":\"标签宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表单中标签占位宽度,默认为 80px\"},\"labelPosition\":\"left\"},{\"property\":\"inline\",\"label\":{\"text\":{\"zh_CN\":\"行内布局\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"行内布局模式,默认为 false\"},\"labelPosition\":\"left\"},{\"property\":\"label-align\",\"label\":{\"text\":{\"zh_CN\":\"必填标识占位\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"必填标识 * 是否占位\"},\"labelPosition\":\"left\"},{\"property\":\"label-suffix\",\"label\":{\"text\":{\"zh_CN\":\"标签后缀\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表单中标签后缀\"},\"labelPosition\":\"left\"},{\"property\":\"label-position\",\"label\":{\"text\":{\"zh_CN\":\"标签位置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"right\",\"value\":\"right\"},{\"label\":\"left \",\"value\":\"left \"},{\"label\":\"top\",\"value\":\"top\"}]}},\"description\":{\"zh_CN\":\"表单中标签的布局位置\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"校验属性\"},\"content\":[{\"property\":\"model\",\"label\":{\"text\":{\"zh_CN\":\"数据对象\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表单数据对象\"},\"labelPosition\":\"top\"},{\"property\":\"rules\",\"label\":{\"text\":{\"zh_CN\":\"校验规则\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表单验证规则\"},\"labelPosition\":\"top\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onValidate\":{\"label\":{\"zh_CN\":\"表单项被校验后触发\"},\"description\":{\"zh_CN\":\"表单项被校验后触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"function\",\"type\":\"Function\",\"defaultValue\":\"(valid) => {}\",\"description\":{\"zh_CN\":\"校验回调函数\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onInput\":{\"label\":{\"zh_CN\":\"输入值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框输入的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onBlur\":{\"label\":{\"zh_CN\":\"失去焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onFocus\":{\"label\":{\"zh_CN\":\"获取焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 获取焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClear\":{\"label\":{\"zh_CN\":\"点击清空按钮时触发\"},\"description\":{\"zh_CN\":\"点击清空按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[],\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (24, '3.20.0', '{\"zh_CN\":\"表单项\"}', 'TinyFormItem', 'formitem', '由按钮、输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"FormItem\"}', 'component', NULL, 12, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"label\",\"label\":{\"text\":{\"zh_CN\":\"标签文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"defaultValue\":\"标签\",\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"标签文本\"},\"labelPosition\":\"left\"},{\"property\":\"prop\",\"label\":{\"text\":{\"zh_CN\":\"校验字段\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表单域 model 字段,在使用 validate、resetFields 方法的情况下,该属性是必填的\"},\"labelPosition\":\"left\"},{\"property\":\"required\",\"label\":{\"text\":{\"zh_CN\":\"必填\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否必填\"},\"labelPosition\":\"left\"}]}],\"events\":{},\"slots\":{\"label\":{\"label\":{\"zh_CN\":\"字段名\"},\"description\":{\"zh_CN\":\"自定义显示字段名称\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":[\"TinyForm\"],\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label\",\"rules\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (25, '3.20.0', '{\"zh_CN\":\"col\"}', 'TinyCol', 'col', '列配置信息', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Col\"}', 'component', NULL, 2, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"span\",\"label\":{\"text\":{\"zh_CN\":\"栅格列格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"整行\",\"value\":12},{\"label\":\"6格\",\"value\":6},{\"label\":\"4格\",\"value\":4},{\"label\":\"3格\",\"value\":3},{\"label\":\"1格\",\"value\":1}]}},\"description\":{\"zh_CN\":\"当一行分为12格时,一列可占位多少格\"}},{\"property\":\"move\",\"label\":{\"text\":{\"zh_CN\":\"栅格移动格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":-12,\"max\":12}},\"description\":{\"zh_CN\":\"栅格左右移动格数(正数向右,负数向左)\"}},{\"property\":\"no\",\"label\":{\"text\":{\"zh_CN\":\"排序编号\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"max\":12}},\"description\":{\"zh_CN\":\"排序编号(row中启用order生效)\"}},{\"property\":\"offset\",\"label\":{\"text\":{\"zh_CN\":\"间隔格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":0,\"max\":12}},\"description\":{\"zh_CN\":\"栅格左侧的间隔格数\"}},{\"property\":\"xs\",\"label\":{\"text\":{\"zh_CN\":\"超小屏格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":1,\"max\":12}},\"description\":{\"zh_CN\":\"<768px 响应式栅格数\"}},{\"property\":\"sm\",\"label\":{\"text\":{\"zh_CN\":\"小屏格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":1,\"max\":12}},\"description\":{\"zh_CN\":\"≥768px 响应式栅格数\"}},{\"property\":\"md\",\"label\":{\"text\":{\"zh_CN\":\"中屏格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":1,\"max\":12}},\"description\":{\"zh_CN\":\"≥992px 响应式栅格数\"}},{\"property\":\"lg\",\"label\":{\"text\":{\"zh_CN\":\"大屏格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":1,\"max\":12}},\"description\":{\"zh_CN\":\"≥1200px 响应式栅格数\"}},{\"property\":\"xl\",\"label\":{\"text\":{\"zh_CN\":\"超大屏格数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"min\":1,\"max\":12}},\"description\":{\"zh_CN\":\"≥1920px 响应式栅格数\"}}]}],\"events\":{}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label\",\"rules\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (26, '3.20.0', '{\"zh_CN\":\"按钮\"}', 'TinyButton', 'button', '常用的操作按钮,提供包括默认按钮、图标按钮、图片按钮、下拉按钮等类型', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Button\"}', 'component', 'basic', 2, '[{\"name\":{\"zh_CN\":\"按钮\"},\"icon\":\"button\",\"screenshot\":\"\",\"snippetName\":\"TinyButton\",\"schema\":{\"componentName\":\"TinyButton\",\"props\":{\"text\":\"按钮文案\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"text\",\"type\":\"string\",\"defaultValue\":\"按钮文案\",\"label\":{\"text\":{\"zh_CN\":\"按钮文字\"}},\"cols\":12,\"hidden\":false,\"required\":true,\"readOnly\":false,\"disabled\":false,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"按钮文字\"},\"labelPosition\":\"left\"},{\"property\":\"size\",\"type\":\"select\",\"label\":{\"text\":{\"zh_CN\":\"大小\"}},\"cols\":12,\"rules\":[],\"hidden\":false,\"required\":true,\"readOnly\":false,\"disabled\":false,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"large\",\"value\":\"large\"},{\"label\":\"medium\",\"value\":\"medium\"},{\"label\":\"small\",\"value\":\"small\"},{\"label\":\"mini\",\"value\":\"mini\"}]}},\"description\":{\"zh_CN\":\"按钮大小\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否被禁用\"},\"labelPosition\":\"left\"},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"primary\",\"value\":\"primary\"},{\"label\":\"success\",\"value\":\"success\"},{\"label\":\"info\",\"value\":\"info\"},{\"label\":\"warning\",\"value\":\"warning\"},{\"label\":\"danger\",\"value\":\"danger\"},{\"label\":\"text\",\"value\":\"text\"}]}},\"description\":{\"zh_CN\":\"设置不同的主题样式\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"round\",\"label\":{\"text\":{\"zh_CN\":\"圆角\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否圆角按钮\"},\"labelPosition\":\"left\"},{\"property\":\"plain\",\"label\":{\"text\":{\"zh_CN\":\"朴素按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否为朴素按钮\"},\"labelPosition\":\"left\"},{\"property\":\"reset-time\",\"label\":{\"text\":{\"zh_CN\":\"禁用时间\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置禁用时间,防止重复提交,单位毫秒\"},\"labelPosition\":\"left\"},{\"property\":\"circle\",\"label\":{\"text\":{\"zh_CN\":\"圆形按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否圆形按钮\"},\"labelPosition\":\"left\"},{\"property\":\"autofocus\",\"label\":{\"text\":{\"zh_CN\":\"自动聚焦\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否默认聚焦\"},\"labelPosition\":\"left\"},{\"property\":\"loading\",\"label\":{\"text\":{\"zh_CN\":\"加载中样式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否展示位加载中样式\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"点击事件\"},\"description\":{\"zh_CN\":\"按钮被点击时触发的回调函数\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"text\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (27, '3.20.0', '{\"zh_CN\":\"输入框\"}', 'TinyInput', 'input', '通过鼠标或键盘输入字符', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Input\"}', 'component', 'form', 1, '[{\"name\":{\"zh_CN\":\"输入框\"},\"icon\":\"input\",\"screenshot\":\"\",\"snippetName\":\"TinyInput\",\"schema\":{\"componentName\":\"TinyInput\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定值\"},\"labelPosition\":\"left\"},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"textarea\",\"value\":\"textarea\"},{\"label\":\"text\",\"value\":\"text\"},{\"label\":\"password\",\"value\":\"password\"}]}},\"description\":{\"zh_CN\":\"设置input框的type属性\"},\"labelPosition\":\"left\"},{\"property\":\"rows\",\"label\":{\"text\":{\"zh_CN\":\"行数\"}},\"widget\":{\"component\":\"NumberConfigurator\"},\"description\":{\"zh_CN\":\"输入框行数,只对 type=\'textarea\' 有效\"},\"labelPosition\":\"left\"},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框占位文本\"},\"labelPosition\":\"left\"},{\"property\":\"clearable\",\"label\":{\"text\":{\"zh_CN\":\"清除按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示清除按钮\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"medium\",\"value\":\"medium\"},{\"label\":\"small\",\"value\":\"small\"},{\"label\":\"mini\",\"value\":\"mini\"}]}},\"description\":{\"zh_CN\":\"输入框尺寸。该属性的可选值为 medium / small / mini\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"maxlength\",\"label\":{\"text\":{\"zh_CN\":\"最大输入长度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置 input 框的maxLength\"}},{\"property\":\"autofocus\",\"label\":{\"text\":{\"zh_CN\":\"自动聚焦\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"自动获取焦点\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框改变后的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onInput\":{\"label\":{\"zh_CN\":\"输入值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框输入的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onBlur\":{\"label\":{\"zh_CN\":\"失去焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onFocus\":{\"label\":{\"zh_CN\":\"获取焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 获取焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClear\":{\"label\":{\"zh_CN\":\"点击清空按钮时触发\"},\"description\":{\"zh_CN\":\"点击清空按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"slots\":{\"prefix\":{\"label\":{\"zh_CN\":\"前置内容\"}},\"suffix\":{\"label\":{\"zh_CN\":\"后置内容\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"value\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (28, '3.20.0', '{\"zh_CN\":\"单选\"}', 'TinyRadio', 'radio', '用于配置不同场景的选项,在一组备选项中进行单选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Radio\"}', 'component', 'form', 3, '[{\"name\":{\"zh_CN\":\"单选\"},\"icon\":\"radio\",\"screenshot\":\"\",\"snippetName\":\"TinyRadio\",\"schema\":{\"componentName\":\"TinyRadio\",\"props\":{\"label\":\"1\",\"text\":\"单选文本\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"text\",\"label\":{\"text\":{\"zh_CN\":\"文本内容\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"单选框文本内容\"}},{\"property\":\"label\",\"label\":{\"text\":{\"zh_CN\":\"选中值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"props\":{}},\"description\":{\"zh_CN\":\"radio 选中时的值\"}},{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"}]},{\"label\":{\"zh_CN\":\"其他\"},\"description\":{\"zh_CN\":\"\"},\"content\":[{\"property\":\"border\",\"label\":{\"text\":{\"zh_CN\":\"显示边框\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示边框\"},\"labelPosition\":\"left\"},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"单选框的尺寸,仅在 border 为true时有效\"}},{\"property\":\"name\",\"label\":{\"text\":{\"zh_CN\":\"原生name属性\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"原生 name 属性\"}}]}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"值变化事件\"},\"description\":{\"zh_CN\":\"绑定值变化时触发的事件\"}},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前选中的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"visible\",\"width\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (29, '3.20.0', '{\"zh_CN\":\"下拉框\"}', 'TinySelect', 'select', 'Select 选择器是一种通过点击弹出下拉列表展示数据并进行选择的 UI 组件', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Select\"}', 'component', 'form', 8, '[{\"name\":{\"zh_CN\":\"下拉框\"},\"icon\":\"select\",\"screenshot\":\"\",\"snippetName\":\"TinySelect\",\"schema\":{\"componentName\":\"TinySelect\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"options\":[{\"value\":\"1\",\"label\":\"黄金糕\"},{\"value\":\"2\",\"label\":\"双皮奶\"}]}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"},\"labelPosition\":\"left\"},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框占位文本\"},\"labelPosition\":\"left\"},{\"property\":\"clearable\",\"label\":{\"text\":{\"zh_CN\":\"清除按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示清除按钮\"},\"labelPosition\":\"left\"},{\"property\":\"searchable\",\"label\":{\"text\":{\"zh_CN\":\"下拉可搜索\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"下拉面板是否可搜索\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"options\",\"label\":{\"text\":{\"zh_CN\":\"选项数据\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"description\":{\"zh_CN\":\"配置 Select 下拉数据项\"},\"labelPosition\":\"top\"},{\"property\":\"multiple\",\"label\":{\"text\":{\"zh_CN\":\"多选\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否允许输入框输入或选择多个项\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"multiple-limit\",\"label\":{\"text\":{\"zh_CN\":\"最大可选值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"多选时用户最多可以选择的项目数,为 0 则不限制\"},\"labelPosition\":\"left\"},{\"property\":\"popper-class\",\"label\":{\"text\":{\"zh_CN\":\"下拉框类名\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置下拉框自定义的类名\"},\"labelPosition\":\"left\"},{\"property\":\"collapse-tags\",\"label\":{\"text\":{\"zh_CN\":\"多选展示\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"多选时是否将选中值按文字的形式展示\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"值改变时触发\"},\"description\":{\"zh_CN\":\"在下拉框值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"下拉框选中项的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前选中的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onBlur\":{\"label\":{\"zh_CN\":\"失去焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onFocus\":{\"label\":{\"zh_CN\":\"获取焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 获取焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClear\":{\"label\":{\"zh_CN\":\"点击清空按钮时触发\"},\"description\":{\"zh_CN\":\"点击清空按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"},\"onRemoveTag\":{\"label\":{\"zh_CN\":\"多选模式下移除tag时触发\"},\"description\":{\"zh_CN\":\"多选模式下移除tag时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"被移除Tag对应数据项的值字段\"}}],\"returns\":{}},\"defaultValue\":\"\"}},\"onBeforeMount\":\"console.log(\'table on load\'); this.options = source.data\"}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"multiple\",\"options\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (30, '3.20.0', '{\"zh_CN\":\"开关\"}', 'TinySwitch', 'switch', 'Switch 在两种状态间切换选择', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Switch\"}', 'component', 'form', 9, '[{\"name\":{\"zh_CN\":\"开关\"},\"icon\":\"switch\",\"screenshot\":\"\",\"snippetName\":\"TinySwitch\",\"schema\":{\"componentName\":\"TinySwitch\",\"props\":{\"modelValue\":\"\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否被禁用\"},\"labelPosition\":\"left\"},{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"绑定默认值\"},\"labelPosition\":\"left\"},{\"property\":\"true-value\",\"label\":{\"text\":{\"zh_CN\":\"设置打开值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置打开时的值(Boolean / String / Number)\"},\"labelPosition\":\"left\"},{\"property\":\"false-value\",\"label\":{\"text\":{\"zh_CN\":\"设置关闭值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置关闭时的值(Boolean / String / Number)\"},\"labelPosition\":\"left\"},{\"property\":\"mini\",\"label\":{\"text\":{\"zh_CN\":\"迷你尺寸\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示为 mini 模式\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"点击事件\"},\"description\":{\"zh_CN\":\"按钮被点击时触发的回调函数\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"开关的状态值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的开关状态值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"mini\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (31, '3.20.0', '{\"zh_CN\":\"搜索框\"}', 'TinySearch', 'search', '指定条件对象进行搜索数据', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Search\"}', 'component', 'basic', 2, '[{\"name\":{\"zh_CN\":\"搜索框\"},\"icon\":\"search\",\"screenshot\":\"\",\"snippetName\":\"TinySearch\",\"schema\":{\"componentName\":\"TinySearch\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"输入关键词\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"默认值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框内的默认搜索值\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否被禁用\"},\"labelPosition\":\"left\"},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框内的提示占位文本\"},\"labelPosition\":\"left\"},{\"property\":\"clearable\",\"label\":{\"text\":{\"zh_CN\":\"清空按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置显示清空图标按钮\"},\"labelPosition\":\"left\"},{\"property\":\"isEnterSearch\",\"label\":{\"text\":{\"zh_CN\":\"Enter键触发\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否在按下键盘Enter键的时候触发search事件\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"mini\",\"label\":{\"text\":{\"zh_CN\":\"迷你尺寸\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"迷你模式,配置为true时,搜索默认显示为一个带图标的圆形按钮,点击后展开\"},\"labelPosition\":\"left\"},{\"property\":\"transparent\",\"label\":{\"text\":{\"zh_CN\":\"透明模式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"配置为true时,边框变为透明且收缩后半透明显示,一般用在带有背景的场景,默认 false\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"输入完成时触发\"},\"description\":{\"zh_CN\":\"在 input 框中输入完成时触发的回调函数\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"type\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"搜索类型,默认值为 {} \"}},{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前input框中值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onSearch\":{\"label\":{\"zh_CN\":\"点击搜索按钮时触发\"},\"description\":{\"zh_CN\":\"展开状态点击搜索按钮时触发的回调函数\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"type\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"搜索类型,默认值为 {} \"}},{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前input框中值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"clearable\",\"mini\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (32, '3.20.0', '{\"zh_CN\":\"复选框\"}', 'TinyCheckbox', 'checkbox', '用于配置不同场景的选项,提供用户可在一组选项中进行多选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Checkbox\"}', 'component', 'form', 4, '[{\"name\":{\"zh_CN\":\"复选框\"},\"icon\":\"checkbox\",\"screenshot\":\"\",\"snippetName\":\"TinyCheckbox\",\"schema\":{\"componentName\":\"TinyCheckbox\",\"props\":{\"text\":\"复选框文案\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定值\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"checked\",\"label\":{\"text\":{\"zh_CN\":\"勾选\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"当前是否勾选\"},\"labelPosition\":\"left\"},{\"property\":\"text\",\"label\":{\"text\":{\"zh_CN\":\"文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"复选框的文本\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"border\",\"label\":{\"text\":{\"zh_CN\":\"边框\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示边框\"},\"labelPosition\":\"left\"},{\"property\":\"false-label\",\"label\":{\"text\":{\"zh_CN\":\"未选中的值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"没有选中时的值\"},\"labelPosition\":\"left\"},{\"property\":\"true-label\",\"label\":{\"text\":{\"zh_CN\":\"选择时的值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"选中时的值\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"勾选值改变后将触发\"},\"description\":{\"zh_CN\":\"勾选值改变后将触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"选中项的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前选中的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"border\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (33, '3.20.0', '{\"zh_CN\":\"复选按钮\"}', 'TinyCheckboxButton', 'checkboxbutton', '用于配置不同场景的选项,提供用户可在一组选项中进行多选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CheckboxButton\"}', 'component', NULL, 1, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"checked\",\"label\":{\"text\":{\"zh_CN\":\"勾选\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"当前是否勾选\"},\"labelPosition\":\"left\"},{\"property\":\"text\",\"label\":{\"text\":{\"zh_CN\":\"文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"按钮文本\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"勾选值改变后将触发\"},\"description\":{\"zh_CN\":\"勾选值改变后将触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"选中项的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前选中的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"array\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"text\",\"size\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (34, '3.20.0', '{\"zh_CN\":\"复选按钮组\"}', 'TinyCheckboxGroup', 'checkboxgroup', '用于配置不同场景的选项,提供用户可在一组选项中进行多选', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CheckboxGroup\"}', 'component', 'form', 2, '[{\"name\":{\"zh_CN\":\"复选框组\"},\"icon\":\"checkboxs\",\"screenshot\":\"\",\"snippetName\":\"TinyCheckboxGroup\",\"schema\":{\"componentName\":\"TinyCheckboxGroup\",\"props\":{\"modelValue\":[\"name1\",\"name2\"],\"type\":\"checkbox\",\"options\":[{\"text\":\"复选框1\",\"label\":\"name1\"},{\"text\":\"复选框2\",\"label\":\"name2\"},{\"text\":\"复选框3\",\"label\":\"name3\"}]}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"dataType\":\"Array\"}},\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"options\",\"label\":{\"text\":{\"zh_CN\":\"选项列表\"}},\"defaultValue\":[{\"label\":\"标签2\"},{\"label\":\"标签2\"}],\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"checkbox组件列表\"},\"labelPosition\":\"top\"},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"ButtonGroupConfigurator\",\"props\":{\"options\":[{\"label\":\"button\",\"value\":\"button\"},{\"label\":\"checkbox\",\"value\":\"checkbox\"}]}},\"description\":{\"zh_CN\":\"checkbox组件类型(button/checkbox),该属性的默认值为 checkbox,配合 options 属性一起使用\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"勾选值改变后将触发\"},\"description\":{\"zh_CN\":\"勾选值改变后将触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"选中项的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前选中的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"array\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"type\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (35, '3.20.0', '{\"zh_CN\":\"对话框\"}', 'TinyDialogBox', 'dialogbox', '模态对话框,在浮层中显示,引导用户进行相关操作。', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"DialogBox\"}', 'component', 'data-display', 4, '[{\"name\":{\"zh_CN\":\"对话框\"},\"icon\":\"dialogbox\",\"screenshot\":\"\",\"snippetName\":\"TinyDialogBox\",\"schema\":{\"componentName\":\"TinyDialogBox\",\"props\":{\"visible\":true,\"show-close\":true,\"title\":\"dialogBox title\"},\"children\":[{\"componentName\":\"div\"}]}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"title\",\"label\":{\"text\":{\"zh_CN\":\"标题\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"弹出框标题\"},\"labelPosition\":\"left\"},{\"property\":\"visible\",\"label\":{\"text\":{\"zh_CN\":\"显示与隐藏\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"控制弹出框显示与关闭\"},\"labelPosition\":\"left\"},{\"property\":\"width\",\"label\":{\"text\":{\"zh_CN\":\"宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"弹出框的宽度\"},\"labelPosition\":\"left\"},{\"property\":\"draggable\",\"label\":{\"text\":{\"zh_CN\":\"可拖拽\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否开启弹窗的拖拽功能,默认值为 false 。\"},\"labelPosition\":\"left\"},{\"property\":\"center\",\"label\":{\"text\":{\"zh_CN\":\"居中\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"弹出框的头部与底部内容会自动居中\"},\"labelPosition\":\"left\"},{\"property\":\"dialog-class\",\"label\":{\"text\":{\"zh_CN\":\"自定义类名\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"自定义配置弹窗类名\"},\"labelPosition\":\"left\"},{\"property\":\"append-to-body\",\"label\":{\"text\":{\"zh_CN\":\"插入到Body\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"DialogBox 本身是否插入到 body 上,嵌套的 Dialog 必须指定该属性并赋值为 true\"},\"labelPosition\":\"left\"},{\"property\":\"show-close\",\"label\":{\"text\":{\"zh_CN\":\"关闭按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示关闭按钮,默认值为 true 。\"},\"labelPosition\":\"left\"}]}],\"selector\":\".TinyDialogBox\",\"events\":{\"onClose\":{\"label\":{\"zh_CN\":\"关闭弹窗时触发\"},\"description\":{\"zh_CN\":\"Dialog 关闭的回调\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:visible\":{\"label\":{\"zh_CN\":\"双向绑定的状态改变时触发\"},\"description\":{\"zh_CN\":\"显示或隐藏的状态值,发生改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"boolean\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的显示或隐藏的状态值\"}}],\"returns\":{}},\"defaultValue\":\"\"}},\"slots\":{\"title\":{\"label\":{\"zh_CN\":\"标题区\"},\"description\":{\"zh_CN\":\"Dialog 标题区的内容\"}},\"footer\":{\"label\":{\"zh_CN\":\"按钮操作区\"},\"description\":{\"zh_CN\":\"Dialog 按钮操作区的内容\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":true,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\".tiny-dialog-box\",\"shortcuts\":{\"properties\":[\"visible\",\"width\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (36, '3.20.0', '{\"zh_CN\":\"标签页\"}', 'TinyTabs', 'tabs', '分隔内容上有关联但属于不同类别的数据集合', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Tabs\"}', 'component', 'navigation', 10, '[{\"name\":{\"zh_CN\":\"标签页\"},\"icon\":\"tabs\",\"screenshot\":\"\",\"snippetName\":\"TinyTabs\",\"schema\":{\"componentName\":\"TinyTabs\",\"props\":{\"modelValue\":\"first\"},\"children\":[{\"componentName\":\"TinyTabItem\",\"props\":{\"title\":\"标签页1\",\"name\":\"first\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"}}]},{\"componentName\":\"TinyTabItem\",\"props\":{\"title\":\"标签页2\",\"name\":\"second\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"style\":\"margin:10px 0 0 30px\"}}]}]}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"showEditIcon\",\"label\":{\"text\":{\"zh_CN\":\"显示编辑图标\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示标题后编辑 ICON\"},\"labelPosition\":\"left\"},{\"property\":\"tabs\",\"label\":{\"text\":{\"zh_CN\":\"选项卡\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"defaultValue\":\"\",\"cols\":12,\"bindState\":false,\"widget\":{\"component\":\"ContainerConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"tabs 选项卡\"},\"labelPosition\":\"none\"},{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"绑定值,选中选项卡的 name\"},\"labelPosition\":\"left\"},{\"property\":\"with-add\",\"label\":{\"text\":{\"zh_CN\":\"标签新增\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"标签是否可增加\"},\"labelPosition\":\"left\"},{\"property\":\"with-close\",\"label\":{\"text\":{\"zh_CN\":\"可关闭\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"标签是否可关闭\"},\"labelPosition\":\"left\"},{\"property\":\"tab-style\",\"label\":{\"text\":{\"zh_CN\":\"标签页样式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"card\",\"value\":\"card\"},{\"label\":\"border-card\",\"value\":\"border-card\"}]}},\"description\":{\"zh_CN\":\"标签页样式\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"点击页签时触发事件\"},\"description\":{\"zh_CN\":\"在 Input 值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"component\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前点击的页签对象\"}},{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onEdit\":{\"label\":{\"zh_CN\":\"点击新增按钮或关闭按钮或者编辑按钮后触发\"},\"description\":{\"zh_CN\":\"点击新增按钮或关闭按钮或者编辑按钮后触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"tab\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前操作的页签对象\"}},{\"name\":\"type\",\"type\":\"String\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前操作的类型(remove || add || edit)\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClose\":{\"label\":{\"zh_CN\":\"关闭页签时触发\"},\"description\":{\"zh_CN\":\"关闭页签时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"name\",\"type\":\"String\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"页签名称\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"clickCapture\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyTabItem\"],\"parentWhitelist\":[],\"descendantBlacklist\":[],\"ancestorWhitelist\":[]},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"size\",\"tab-style\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (37, '3.20.0', '{\"zh_CN\":\"tab页签\"}', 'TinyTabItem', 'tabitem', 'tab 标签页', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"TabItem\"}', 'component', NULL, 2, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"name\",\"label\":{\"text\":{\"zh_CN\":\"唯一标识\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"唯一标识\"}},{\"property\":\"title\",\"label\":{\"text\":{\"zh_CN\":\"标题\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"标题\"}}]}],\"events\":{},\"slots\":{\"title\":{\"label\":{\"zh_CN\":\"标题\"},\"description\":{\"zh_CN\":\"自定义标题\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":[\"TinyTab\"],\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"name\",\"title\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (38, '3.20.0', '{\"zh_CN\":\"面包屑\"}', 'TinyBreadcrumb', 'breadcrumb', '告诉访问者他们目前在网站中的位置以及如何返回', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Breadcrumb\"}', 'component', 'navigation', 1, '[{\"name\":{\"zh_CN\":\"面包屑\"},\"icon\":\"breadcrumb\",\"screenshot\":\"\",\"snippetName\":\"TinyBreadcrumb\",\"schema\":{\"componentName\":\"TinyBreadcrumb\",\"props\":{\"options\":[{\"to\":\"{ path: \'/\' }\",\"label\":\"首页\"},{\"to\":\"{ path: \'/breadcrumb\' }\",\"label\":\"产品\"},{\"replace\":\"true\",\"label\":\"软件\"}]}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"separator\",\"label\":{\"text\":{\"zh_CN\":\"分隔符\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"自定义分隔符\"},\"labelPosition\":\"left\"},{\"property\":\"options\",\"label\":{\"text\":{\"zh_CN\":\"配置数据\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"description\":{\"zh_CN\":\"单独使用 Breadcrumb,通过 option 配置生成面包屑\"},\"labelPosition\":\"top\"},{\"property\":\"textField\",\"label\":{\"text\":{\"zh_CN\":\"键值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"指定面包屑的显示键值,结合 options 使用\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onSelect\":{\"label\":{\"zh_CN\":\"选择 breadcrumb 时触发\"},\"description\":{\"zh_CN\":\"选择 breadcrumb 时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"clickCapture\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":[\"TinyBreadcrumbItem\"],\"parentWhitelist\":[],\"descendantBlacklist\":[],\"ancestorWhitelist\":[]},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"separator\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (39, '3.20.0', '{\"zh_CN\":\"面包屑项\"}', 'TinyBreadcrumbItem', 'breadcrumb', '', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"BreadcrumbItem\"}', 'component', NULL, 1, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"to\",\"label\":{\"text\":{\"zh_CN\":\"路由跳转\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"路由跳转对象,同 vue-router 的 to\"}}]}],\"slots\":{\"default\":{\"label\":{\"zh_CN\":\"面包屑项标签\"},\"description\":{\"zh_CN\":\"面包屑项\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":[\"TinyBreadcrumb\"],\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"to\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (40, '3.20.0', '{\"zh_CN\":\"折叠面板\"}', 'TinyCollapse', 'collapse', '内容区可指定动态页面或自定义 html 等,支持展开收起操作', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Collapse\"}', 'component', 'data-display', 3, '[{\"name\":{\"zh_CN\":\"折叠面板\"},\"icon\":\"collapse\",\"screenshot\":\"\",\"snippetName\":\"TinyCollapse\",\"schema\":{\"componentName\":\"TinyCollapse\",\"props\":{\"modelValue\":\"collapse1\"},\"children\":[{\"componentName\":\"TinyCollapseItem\",\"props\":{\"name\":\"collapse1\",\"title\":\"折叠项1\"},\"children\":[{\"componentName\":\"div\"}]},{\"componentName\":\"TinyCollapseItem\",\"props\":{\"name\":\"collapse2\",\"title\":\"折叠项2\"},\"children\":[{\"componentName\":\"div\"}]},{\"componentName\":\"TinyCollapseItem\",\"props\":{\"name\":\"collapse3\",\"title\":\"折叠项3\"},\"children\":[{\"componentName\":\"div\"}]}]}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"当前激活面板\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定当前激活的面板\"}}]}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"激活面板改变时触发\"},\"description\":{\"zh_CN\":\"当前激活面板改变时触发(如果是手风琴模式,参数 activeNames 类型为string,否则为array)\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"data\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前激活面板的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前激活面板的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (41, '3.20.0', '{\"zh_CN\":\"折叠面板项\"}', 'TinyCollapseItem', 'collapseitem', '内容区可指定动态页面或自定义 html 等,支持展开收起操作', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"CollapseItem\"}', 'component', NULL, 2, NULL, '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"name\",\"label\":{\"text\":{\"zh_CN\":\"唯一标识符\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"唯一标识符: String | Number\"},\"labelPosition\":\"left\"},{\"property\":\"title\",\"label\":{\"text\":{\"zh_CN\":\"标题\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"面板标题\"},\"labelPosition\":\"left\"}]}],\"events\":{},\"slots\":{\"title\":{\"label\":{\"zh_CN\":\"标题\"},\"description\":{\"zh_CN\":\"自定义标题\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"label-width\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (42, '3.20.0', '{\"zh_CN\":\"表格\"}', 'TinyGrid', 'grid', '提供了非常强大数据表格功能,可以展示数据列表,可以对数据列表进行选择、编辑等', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Grid\"}', 'component', 'table', 2, '[{\"name\":{\"zh_CN\":\"表格\"},\"icon\":\"grid\",\"screenshot\":\"\",\"snippetName\":\"tinyGrid\",\"schema\":{\"componentName\":\"TinyGrid\",\"props\":{\"editConfig\":{\"trigger\":\"click\",\"mode\":\"cell\",\"showStatus\":true},\"columns\":[{\"type\":\"index\",\"width\":60},{\"type\":\"selection\",\"width\":60},{\"field\":\"employees\",\"title\":\"员工数\"},{\"field\":\"created_date\",\"title\":\"创建日期\"},{\"field\":\"city\",\"title\":\"城市\"}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司\",\"city\":\"福州\",\"employees\":800,\"created_date\":\"2014-04-30 00:56:00\",\"boole\":false},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"employees\":300,\"created_date\":\"2016-07-08 12:36:22\",\"boole\":true}]}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础属性\"},\"description\":{\"zh_CN\":\"基础属性\"},\"content\":[{\"property\":\"data\",\"label\":{\"text\":{\"zh_CN\":\"表格数据\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"onChange\":\"this.delProp(\'fetchData\')\",\"description\":{\"zh_CN\":\"设置表格的数据\"},\"labelPosition\":\"top\"},{\"property\":\"columns\",\"label\":{\"text\":{\"zh_CN\":\"表格列\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"properties\":[{\"label\":{\"zh_CN\":\"默认分组\"},\"content\":[{\"property\":\"title\",\"type\":\"string\",\"defaultValue\":\"\",\"label\":{\"text\":{\"zh_CN\":\"列标题\"}},\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}}},{\"property\":\"field\",\"type\":\"string\",\"defaultValue\":\"\",\"label\":{\"text\":{\"zh_CN\":\"列键值\"}},\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}}},{\"property\":\"sortable\",\"type\":\"boolean\",\"defaultValue\":true,\"label\":{\"text\":{\"zh_CN\":\"是否排序\"}},\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"labelPosition\":\"left\"},{\"property\":\"width\",\"type\":\"string\",\"defaultValue\":\"\",\"label\":{\"text\":{\"zh_CN\":\"列宽\"}},\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}}},{\"property\":\"formatText\",\"type\":\"string\",\"defaultValue\":\"\",\"label\":{\"text\":{\"zh_CN\":\"内置渲染器\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"整数\",\"value\":\"integer\"},{\"label\":\"小数\",\"value\":\"number\"},{\"label\":\"金额\",\"value\":\"money\"},{\"label\":\"百分比\",\"value\":\"rate\"},{\"label\":\"布尔\",\"value\":\"boole\"},{\"label\":\"年月日\",\"value\":\"date\"},{\"label\":\"年月日时分\",\"value\":\"dateTime\"},{\"label\":\"时间\",\"value\":\"time\"},{\"label\":\"省略\",\"value\":\"ellipsis\"}]}}},{\"property\":\"renderer\",\"type\":\"object\",\"defaultValue\":\"\",\"label\":{\"text\":{\"zh_CN\":\"渲染函数\"}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"dataType\":\"JSFunction\"}}},{\"property\":\"slots\",\"type\":\"object\",\"defaultValue\":\"\",\"label\":{\"text\":{\"zh_CN\":\"插槽\"}},\"labelPosition\":\"none\",\"widget\":{\"component\":\"JsSlotConfigurator\",\"props\":{\"slots\":[\"header\",\"default\"]}}},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"列类型\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"索引列\",\"value\":\"index\"},{\"label\":\"单选列\",\"value\":\"radio\"},{\"label\":\"多选列\",\"value\":\"selection\"},{\"label\":\"展开列\",\"value\":\"expand\"}],\"clearable\":true}},\"description\":{\"zh_CN\":\"设置内置列的类型,该属性的可选值为 index(序号)/ selection(复选框)/ radio(单选框)/ expand(展开行)\"},\"labelPosition\":\"left\"},{\"property\":\"editor\",\"label\":{\"text\":{\"zh_CN\":\"编辑配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"description\":{\"zh_CN\":\"单元格编辑渲染配置项,也可以是函数 Function(h, params)\"}},{\"property\":\"filter\",\"label\":{\"text\":{\"zh_CN\":\"筛选配置\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"description\":{\"zh_CN\":\"设置表格列的筛选配置信息。默认值为 false 不配置筛选信息\"}},{\"property\":\"showOverflow\",\"label\":{\"text\":{\"zh_CN\":\"内容超出部分省略号配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"只显示省略号\",\"value\":\"ellipsis\"},{\"label\":\"显示为原生 title\",\"value\":\"title\"},{\"label\":\"显示为 tooltip 提示\",\"value\":\"tooltip\"}],\"clearable\":true}},\"description\":{\"zh_CN\":\"设置内置列的内容超出部分显示省略号配置,该属性的可选值为 ellipsis(只显示省略号)/ title(显示为原生 title)/ tooltip(显示为 tooltip 提示)\"},\"labelPosition\":\"top\"}]}],\"widget\":{\"component\":\"ArrayItemConfigurator\",\"props\":{\"type\":\"object\",\"textField\":\"title\",\"language\":\"json\",\"buttonText\":\"编辑列配置\",\"title\":\"编辑列配置\",\"expand\":true}},\"description\":{\"zh_CN\":\"表格列的配置信息\"},\"labelPosition\":\"left\"},{\"property\":\"fetchData\",\"label\":{\"text\":{\"zh_CN\":\"服务端查询\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"onChange\":\"function () { this.delProp(\'data\') } \",\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"name\":\"fetchData\",\"dataType\":\"JSExpression\"}},\"description\":{\"zh_CN\":\"服务端数据查询方法\"},\"labelPosition\":\"top\"},{\"property\":\"pager\",\"label\":{\"text\":{\"zh_CN\":\"分页配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"defaultValue\":{\"attrs\":{\"currentPage\":1}},\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"name\":\"pager\",\"dataType\":\"JSExpression\"}},\"description\":{\"zh_CN\":\"分页配置,需结合fetchData使用\"},\"labelPosition\":\"top\"},{\"property\":\"resizable\",\"label\":{\"text\":{\"zh_CN\":\"调整列宽\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否允许调整列宽\"},\"labelPosition\":\"left\"},{\"property\":\"row-id\",\"label\":{\"text\":{\"zh_CN\":\"行数据主键\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"placeholder\":\"比如:id\"}},\"description\":{\"zh_CN\":\"自定义行数据唯一主键的字段名(行数据必须要有唯一主键,默认自动生成)\"},\"labelPosition\":\"left\"},{\"property\":\"select-config\",\"label\":{\"text\":{\"zh_CN\":\"行复选框配置\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"dataType\":\"JSExpression\"}},\"description\":{\"zh_CN\":\"表格行数据复选框配置项\"}},{\"property\":\"edit-rules\",\"label\":{\"text\":{\"zh_CN\":\"校验规则\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表格校验规则配置项\"},\"labelPosition\":\"top\"},{\"property\":\"edit-config\",\"label\":{\"text\":{\"zh_CN\":\"编辑配置项\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表格编辑配置项\"},\"labelPosition\":\"top\"},{\"property\":\"expand-config\",\"label\":{\"text\":{\"zh_CN\":\"展开行配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"展开行配置项\"},\"labelPosition\":\"top\"},{\"property\":\"sortable\",\"label\":{\"text\":{\"zh_CN\":\"可排序\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否允许列数据排序。默认为 true 可排序\"},\"labelPosition\":\"left\"}]},{\"label\":{\"zh_CN\":\"其他\"},\"description\":{\"zh_CN\":\"其他属性\"},\"content\":[{\"property\":\"auto-resize\",\"label\":{\"text\":{\"zh_CN\":\"响应式监听\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"表格属性设置 autoResize 属性开启响应式表格宽高的同时,将高度height设置为auto就可以自动跟随父容器高度。\"},\"labelPosition\":\"left\"},{\"property\":\"border\",\"label\":{\"text\":{\"zh_CN\":\"边框\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否带有纵向边框\"},\"labelPosition\":\"left\"},{\"property\":\"seq-serial\",\"label\":{\"text\":{\"zh_CN\":\"行号连续\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置行序号是否连续,开启分页时有效,该属性的默认值为 false\"},\"labelPosition\":\"left\"},{\"property\":\"highlight-current-row\",\"label\":{\"text\":{\"zh_CN\":\"高亮当前行\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"高亮当前行\"},\"labelPosition\":\"left\"},{\"property\":\"highlight-hover-row\",\"label\":{\"text\":{\"zh_CN\":\"移入行高亮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"鼠标移到行是否要高亮显示\"},\"labelPosition\":\"left\"},{\"property\":\"row-class-name\",\"label\":{\"text\":{\"zh_CN\":\"设置行高亮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"给行附加 className,也可以是函数 Function({seq, row, rowIndex, $rowIndex})\"},\"labelPosition\":\"top\"},{\"property\":\"max-height\",\"label\":{\"text\":{\"zh_CN\":\"内容最大高度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置表格内容区域(不含表格头部,底部)的最大高度。\"}},{\"property\":\"row-span\",\"label\":{\"text\":{\"zh_CN\":\"行合并\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置行合并,该属性仅适用于普通表格,不可与 tree-config 同时使用\"},\"labelPosition\":\"top\"}]}],\"events\":{\"onFilterChange\":{\"label\":{\"zh_CN\":\"筛选条件改变时触发改事件\"},\"description\":{\"zh_CN\":\"配置 remote-filter 开启服务端过滤,服务端过滤会调用表格 fetch-data 进行查询,filter-change 服务端过滤后触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"table\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"{$table,filters} 包含 table 实例对象和过滤条件的对象\"}}],\"returns\":{}},\"defaultValue\":\"function onClick(e) {}\"},\"onSortChange\":{\"label\":{\"zh_CN\":\"点击列头,执行数据排序前触发的事件\"},\"description\":{\"zh_CN\":\"配置 remote-filter 开启服务端过滤,服务端过滤会调用表格 fetch-data 进行查询,filter-change 服务端过滤后触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"table\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"{$table,filters} 包含 table 实例对象和过滤条件的对象\"}}],\"returns\":{}},\"defaultValue\":\"function onClick(e) {}\"},\"onSelectAll\":{\"label\":{\"zh_CN\":\"当手动勾选全选时触发的事件\"},\"description\":{\"zh_CN\":\"只对 type=selection 有效,当手动勾选全选时触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"table\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\" 包含 table 实例对象\"}},{\"name\":\"checked\",\"type\":\"boolean\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"勾选状态\"}},{\"name\":\"selction\",\"type\":\"Array\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"选中的表格数据数组\"}}],\"returns\":{}},\"defaultValue\":\"function onClick(e) {}\"},\"onSelectChange\":{\"label\":{\"zh_CN\":\"手动勾选并且值发生改变时触发的事件\"},\"description\":{\"zh_CN\":\"只对 type=selection 有效,当手动勾选并且值发生改变时触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"table\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\" table 实例对象\"}},{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\" 原生 Event\"}}],\"returns\":{}},\"defaultValue\":\"function onClick(e) {}\"},\"onToggleExpandChange\":{\"label\":{\"zh_CN\":\"当行展开或收起时会触发该事件\"},\"description\":{\"zh_CN\":\"当行展开或收起时会触发该事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"table\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"{$table,row,rowIndex} 包含 table 实例对象和当前行数据的对象\"}},{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\" 原生 Event\"}}],\"returns\":{}},\"defaultValue\":\"function onClick(e) {}\"},\"onCurrentChange\":{\"label\":{\"zh_CN\":\"行点击时触发\"},\"description\":{\"zh_CN\":\"行点击时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}},\"shortcuts\":{\"properties\":[\"sortable\",\"columns\"]},\"contentMenu\":{\"actions\":[\"create symbol\"]},\"onBeforeMount\":\"console.log(\'table on load\'); this.pager = source.pager; this.fetchData = source.fetchData; this.data = source.data ;this.columns = source.columns\"}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"sortable\",\"columns\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (43, '3.20.0', '{\"zh_CN\":\"分页\"}', 'TinyPager', 'pager', '当数据量过多时,使用分页分解数据,常用于 Grid 和 Repeater 组件', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Pager\"}', 'component', 'table', 1, '[{\"name\":{\"zh_CN\":\"分页\"},\"icon\":\"pager\",\"screenshot\":\"\",\"snippetName\":\"TinyPager\",\"schema\":{\"componentName\":\"TinyPager\",\"props\":{\"layout\":\"total, sizes, prev, pager, next\",\"total\":100,\"pageSize\":10,\"currentPage\":1}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"currentPage\",\"label\":{\"text\":{\"zh_CN\":\"当前页数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"当前页数,支持 .sync 修饰符\"},\"labelPosition\":\"left\"},{\"property\":\"pageSize\",\"label\":{\"text\":{\"zh_CN\":\"每页条数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"每页显示条目个数\"},\"labelPosition\":\"left\"},{\"property\":\"pageSizes\",\"label\":{\"text\":{\"zh_CN\":\"可选每页条数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置可选择的每页显示条数\"}},{\"property\":\"total\",\"label\":{\"text\":{\"zh_CN\":\"总条数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"数据总条数\"},\"labelPosition\":\"left\"},{\"property\":\"layout\",\"label\":{\"text\":{\"zh_CN\":\"布局\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"defaultValue\":\"total,sizes,prev, pager, next\",\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"type\":\"textarea\"}},\"description\":{\"zh_CN\":\"组件布局,子组件名用逗号分隔\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onCurrentChange \":{\"label\":{\"zh_CN\":\"切换页码时触发\"},\"description\":{\"zh_CN\":\"切换页码时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前页的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onPrevClick \":{\"label\":{\"zh_CN\":\"点击上一页按钮时触发\"},\"description\":{\"zh_CN\":\"点击上一页按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"page\",\"type\":\"String\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前页的页码值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onNextClick\":{\"label\":{\"zh_CN\":\"点击下一页按钮时触发\"},\"description\":{\"zh_CN\":\"点击上一页按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"page\",\"type\":\"String\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前页的页码值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"currentPage\",\"total\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (44, '3.20.0', '{\"zh_CN\":\"弹出编辑\"}', 'TinyPopeditor', 'popEditor', '该组件只能在弹出的面板中选择数据,不能手动输入数据;弹出面板中显示为 Tree 组件或者 Grid 组件', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Popeditor\"}', 'component', 'data-display', 6, '[{\"name\":{\"zh_CN\":\"弹出编辑\"},\"icon\":\"popeditor\",\"screenshot\":\"\",\"snippetName\":\"TinyPopeditor\",\"schema\":{\"componentName\":\"TinyPopeditor\",\"props\":{\"modelValue\":\"\",\"placeholder\":\"请选择\",\"gridOp\":{\"columns\":[{\"field\":\"id\",\"title\":\"ID\",\"width\":40},{\"field\":\"name\",\"title\":\"名称\",\"showOverflow\":\"tooltip\"},{\"field\":\"province\",\"title\":\"省份\",\"width\":80},{\"field\":\"city\",\"title\":\"城市\",\"width\":80}],\"data\":[{\"id\":\"1\",\"name\":\"GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司GFD科技有限公司\",\"city\":\"福州\",\"province\":\"福建\"},{\"id\":\"2\",\"name\":\"WWW科技有限公司\",\"city\":\"深圳\",\"province\":\"广东\"},{\"id\":\"3\",\"name\":\"RFV有限责任公司\",\"city\":\"中山\",\"province\":\"广东\"},{\"id\":\"4\",\"name\":\"TGB科技有限公司\",\"city\":\"龙岩\",\"province\":\"福建\"},{\"id\":\"5\",\"name\":\"YHN科技有限公司\",\"city\":\"韶关\",\"province\":\"广东\"},{\"id\":\"6\",\"name\":\"WSX科技有限公司\",\"city\":\"黄冈\",\"province\":\"武汉\"}]}}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定值\"},\"labelPosition\":\"left\"},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框占位文本\"},\"labelPosition\":\"left\"},{\"property\":\"show-clear-btn\",\"label\":{\"text\":{\"zh_CN\":\"清除按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示清除按钮\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"width\",\"label\":{\"text\":{\"zh_CN\":\"宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置弹出面板的宽度(单位像素)\"},\"labelPosition\":\"left\"},{\"property\":\"conditions\",\"label\":{\"text\":{\"zh_CN\":\"过滤条件\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"当弹出面板配置的是表格时,设置弹出面板中的过滤条件\"},\"labelPosition\":\"top\"},{\"property\":\"grid-op\",\"label\":{\"text\":{\"zh_CN\":\"面板表格配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置弹出面板中表格组件的配置信息\"}},{\"property\":\"pager-op\",\"label\":{\"text\":{\"zh_CN\":\"分页配置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置弹出编辑框中分页配置\"},\"labelPosition\":\"top\"},{\"property\":\"multi\",\"label\":{\"text\":{\"zh_CN\":\"多选\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置弹出面板中的数据是否可多选\"},\"labelPosition\":\"left\"},{\"property\":\"show-pager\",\"label\":{\"text\":{\"zh_CN\":\"启用分页\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"当 popseletor 为 grid 时才能生效,配置为 true 后还需配置 pagerOp 属性\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"选中值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中项的值\"}},{\"name\":\"value\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中对象\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"当前选中的值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的当前选中值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClose\":{\"label\":{\"zh_CN\":\"弹框关闭时触发的事件\"},\"description\":{\"zh_CN\":\"弹框关闭时触发的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"},\"onPageChange\":{\"label\":{\"zh_CN\":\"分页切换事件\"},\"description\":{\"zh_CN\":\"表格模式下分页切换事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"String\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前页码数\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"modelValue\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (45, '3.20.0', '{\"zh_CN\":\"树\"}', 'TinyTree', 'tree', '可进行展示有父子层级的数据,支持选择,异步加载等功能。但不推荐用它来展示菜单,展示菜单推荐使用树菜单', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Tree\"}', 'component', 'data-display', 12, '[{\"name\":{\"zh_CN\":\"树\"},\"icon\":\"tree\",\"screenshot\":\"\",\"snippetName\":\"TinyTree\",\"schema\":{\"componentName\":\"TinyTree\",\"props\":{\"data\":[{\"label\":\"一级 1\",\"children\":[{\"label\":\"二级 1-1\",\"children\":[{\"label\":\"三级 1-1-1\"}]}]},{\"label\":\"一级 2\",\"children\":[{\"label\":\"二级 2-1\",\"children\":[{\"label\":\"三级 2-1-1\"}]},{\"label\":\"二级 2-2\",\"children\":[{\"label\":\"三级 2-2-1\"}]}]}]}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"show-checkbox\",\"label\":{\"text\":{\"zh_CN\":\"多选\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置接口是否可以多选\"},\"labelPosition\":\"left\"},{\"property\":\"data\",\"label\":{\"text\":{\"zh_CN\":\"数据源\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"defaultValue\":[{\"label\":\"一级 1\",\"children\":[{\"label\":\"二级 1-1\"}]}],\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"可配置静态数据源和动态数据源\"},\"labelPosition\":\"top\"},{\"property\":\"node-key\",\"label\":{\"text\":{\"zh_CN\":\"唯一标识\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"节点唯一标识属性名称\"},\"labelPosition\":\"left\"},{\"property\":\"render-content\",\"label\":{\"text\":{\"zh_CN\":\"渲染函数\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"disabled\":true,\"placeholder\":\"请使用变量绑定来绑定函数\"}},\"description\":{\"zh_CN\":\"树节点的内容区的渲染函数\"}},{\"property\":\"icon-trigger-click-node\",\"label\":{\"text\":{\"zh_CN\":\"触发NodeClick事件\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"点击图标展开节点时是否触发 node-click 事件\"},\"labelPosition\":\"left\"},{\"property\":\"expand-icon\",\"label\":{\"text\":{\"zh_CN\":\"展开图标\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"节点展开图标\"},\"labelPosition\":\"top\"},{\"property\":\"shrink-icon\",\"label\":{\"text\":{\"zh_CN\":\"收缩图标\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"节点收缩的图标\"},\"labelPosition\":\"top\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"check-on-click-node\",\"label\":{\"text\":{\"zh_CN\":\"点击节点选中\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点\"},\"labelPosition\":\"left\"},{\"property\":\"filter-node-method\",\"label\":{\"text\":{\"zh_CN\":\"筛选函数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"节点筛选函数\"},\"labelPosition\":\"top\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onCheck\":{\"label\":{\"zh_CN\":\"勾选节点后的事件\"},\"description\":{\"zh_CN\":\"勾选节点后的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"data\",\"type\":\"object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中节点信息\"}},{\"name\":\"currentNode\",\"type\":\"object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"树组件目前的选中状态信息,包含 checkedNodes、checkedKeys、halfCheckedNodes、halfCheckedKeys 四个属性\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onNodeClick\":{\"label\":{\"zh_CN\":\"点击节点后的事件\"},\"description\":{\"zh_CN\":\"点击节点后的事件\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"data\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前选中节点信息\"}},{\"name\":\"node\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"树组件目前的选中状态信息,包含 checkedNodes、checkedKeys、halfCheckedNodes、halfCheckedKeys 四个属性\"}},{\"name\":\"vm\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"树组件实例\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"data\",\"show-checkbox\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (46, '3.20.0', '{\"zh_CN\":\"时间线\"}', 'TinyTimeLine', 'timeline', 'TimeLine 时间线', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"TimeLine\"}', 'component', 'navigation', 3, '[{\"name\":{\"zh_CN\":\"时间线\"},\"icon\":\"timeline\",\"screenshot\":\"\",\"snippetName\":\"TinyTimeLine\",\"schema\":{\"componentName\":\"TinyTimeLine\",\"props\":{\"active\":\"2\",\"data\":[{\"name\":\"已下单\"},{\"name\":\"运输中\"},{\"name\":\"已签收\"}]}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"horizontal\",\"type\":\"Boolean\",\"defaultValue\":{\"type\":\"i18n\",\"zh_CN\":\"布局\",\"en_US\":\"layout\",\"key\":\"\"},\"label\":{\"text\":{\"zh_CN\":\"水平布局\"}},\"cols\":12,\"rules\":[],\"hidden\":false,\"required\":true,\"readOnly\":false,\"disabled\":false,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"节点和文字横向布局\"},\"labelPosition\":\"left\"},{\"property\":\"vertical\",\"type\":\"Boolean\",\"defaultValue\":{\"type\":\"i18n\",\"zh_CN\":\"垂直布局\",\"en_US\":\"layout\",\"key\":\"\"},\"label\":{\"text\":{\"zh_CN\":\"垂直布局\"}},\"cols\":12,\"rules\":[],\"hidden\":false,\"required\":true,\"readOnly\":false,\"disabled\":false,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"节点和文字垂直布局\"},\"labelPosition\":\"left\"},{\"property\":\"active\",\"label\":{\"text\":{\"zh_CN\":\"选中值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"步骤条的选中步骤值\"},\"labelPosition\":\"left\"},{\"property\":\"data\",\"label\":{\"text\":{\"zh_CN\":\"步骤条数据\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"defaultValue\":[{\"name\":\"配置基本信息\",\"status\":\"ready\"},{\"name\":\"配置报价\",\"status\":\"wait\"},{\"name\":\"完成报价\",\"status\":\"wait\"}],\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{\"language\":\"json\"}},\"description\":{\"zh_CN\":\"时间线步骤条数据\"},\"labelPosition\":\"top\"}]}],\"events\":{\"onClick\":{\"label\":{\"zh_CN\":\"节点的点击时触发\"},\"description\":{\"zh_CN\":\"节点的点击时触发的回调函数\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"type\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"点击节点的下标\"}},{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"当前节点对象:{ name: 节点名称, time: 时间 }\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":false,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"active\",\"data\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (47, '3.20.0', '{\"zh_CN\":\"文字提示框\"}', 'TinyTooltip', 'tooltip', '动态显示提示信息,一般通过鼠标事件进行响应;提供 warning、error、info、success 四种类型显示不同类别的信', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Tooltip\"}', 'component', 'data-display', 11, '[{\"name\":{\"zh_CN\":\"文字提示框\"},\"icon\":\"tooltip\",\"screenshot\":\"\",\"snippetName\":\"TinyTooltip\",\"schema\":{\"componentName\":\"TinyTooltip\",\"props\":{\"content\":\"Top Left 提示文字\",\"placement\":\"top-start\",\"manual\":true,\"modelValue\":true},\"children\":[{\"componentName\":\"span\",\"children\":[{\"componentName\":\"div\",\"props\":{}}]},{\"componentName\":\"Template\",\"props\":{\"slot\":\"content\"},\"children\":[{\"componentName\":\"span\",\"children\":[{\"componentName\":\"div\",\"props\":{\"placeholder\":\"提示内容\"}}]}]}]}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"placement\",\"label\":{\"text\":{\"zh_CN\":\"提示位置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"top\",\"value\":\"top\"},{\"label\":\"top-start\",\"value\":\"top-start\"},{\"label\":\"top-end\",\"value\":\"top-end\"},{\"label\":\"bottom\",\"value\":\"bottom\"},{\"label\":\"bottom-start\",\"value\":\"bottom-start\"},{\"label\":\"bottom-end\",\"value\":\"bottom-end\"},{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"left-start\",\"value\":\"left-start\"},{\"label\":\"left-end\",\"value\":\"left-end\"},{\"label\":\"right\",\"value\":\"right\"},{\"label\":\"right-start\",\"value\":\"right-start\"},{\"label\":\"right-end\",\"value\":\"right-end\"}]}},\"description\":{\"zh_CN\":\"Tooltip 的出现位置\"},\"labelPosition\":\"left\"},{\"property\":\"content\",\"label\":{\"text\":{\"zh_CN\":\"内容\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"defaultValue\":\"提示信息\",\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"显示的内容,也可以通过 slot#content 传入 DOM\"},\"labelPosition\":\"left\"},{\"property\":\"render-content\",\"label\":{\"text\":{\"zh_CN\":\"渲染函数\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{\"disabled\":true,\"placeholder\":\"请使用变量绑定来绑定函数\"}},\"description\":{\"zh_CN\":\"自定义渲染函数,返回需要渲染的节点内容\"}},{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"是否可见\"}},\"defaultValue\":true,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"状态是否可见\"},\"labelPosition\":\"left\"},{\"property\":\"manual\",\"label\":{\"text\":{\"zh_CN\":\"手动控制\"}},\"defaultValue\":true,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"手动控制模式,设置为 true 后,mouseenter 和 mouseleave 事件将不会生效\"},\"labelPosition\":\"left\"}]}],\"events\":{},\"slots\":{\"content\":{\"label\":{\"zh_CN\":\"提示内容\"},\"description\":{\"zh_CN\":\"自定义提示内容\"}}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":true,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"disabled\",\"content\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (48, '3.20.0', '{\"zh_CN\":\"提示框\"}', 'TinyPopover', 'popover', 'Popover可通过对一个触发源操作触发弹出框,支持自定义弹出内容,延迟触发和渐变动画', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Popover\"}', 'component', 'data-display', 7, '[{\"name\":{\"zh_CN\":\"提示框\"},\"icon\":\"popover\",\"screenshot\":\"\",\"snippetName\":\"TinyPopover\",\"schema\":{\"componentName\":\"TinyPopover\",\"props\":{\"width\":200,\"title\":\"弹框标题\",\"trigger\":\"manual\",\"modelValue\":true},\"children\":[{\"componentName\":\"Template\",\"props\":{\"slot\":\"reference\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"placeholder\":\"触发源\"}}]},{\"componentName\":\"Template\",\"props\":{\"slot\":\"default\"},\"children\":[{\"componentName\":\"div\",\"props\":{\"placeholder\":\"提示内容\"}}]}]}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定,手动控制是否可见的状态值\"},\"labelPosition\":\"left\"},{\"property\":\"placement\",\"label\":{\"text\":{\"zh_CN\":\"位置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"top\",\"value\":\"top\"},{\"label\":\"top-start\",\"value\":\"top-start\"},{\"label\":\"top-end\",\"value\":\"top-end\"},{\"label\":\"bottom\",\"value\":\"bottom\"},{\"label\":\"bottom-start\",\"value\":\"bottom-start\"},{\"label\":\"bottom-end\",\"value\":\"bottom-end\"},{\"label\":\"left\",\"value\":\"left\"},{\"label\":\"left-start\",\"value\":\"left-start\"},{\"label\":\"left-end\",\"value\":\"left-end\"},{\"label\":\"right\",\"value\":\"right\"},{\"label\":\"right-start\",\"value\":\"right-start\"},{\"label\":\"right-end\",\"value\":\"right-end\"}]}},\"description\":{\"zh_CN\":\"提示框位置\"},\"labelPosition\":\"left\"},{\"property\":\"trigger\",\"label\":{\"text\":{\"zh_CN\":\"触发方式\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"click\",\"value\":\"click\"},{\"label\":\"focus\",\"value\":\"focus\"},{\"label\":\"hover\",\"value\":\"hover\"},{\"label\":\"manual\",\"value\":\"manual\"}]}},\"description\":{\"zh_CN\":\"触发方式,该属性的可选值为 click / focus / hover / manual,该属性的默认值为 click\"},\"labelPosition\":\"left\"},{\"property\":\"popper-class\",\"label\":{\"text\":{\"zh_CN\":\"自定义类\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"为 popper 添加类名\"},\"labelPosition\":\"left\"},{\"property\":\"visible-arrow\",\"label\":{\"text\":{\"zh_CN\":\"显示箭头\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示 Tooltip 箭头\"},\"labelPosition\":\"left\"},{\"property\":\"append-to-body\",\"label\":{\"text\":{\"zh_CN\":\"添加到body上\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"Popover弹窗是否添加到body上\"},\"labelPosition\":\"left\"},{\"property\":\"arrow-offset\",\"label\":{\"text\":{\"zh_CN\":\"箭头的位置偏移\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"箭头的位置偏移,该属性的默认值为 0\"}},{\"property\":\"close-delay\",\"label\":{\"text\":{\"zh_CN\":\"延迟隐藏\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"触发方式为 hover 时的隐藏延迟,单位为毫秒\"},\"labelPosition\":\"left\"},{\"property\":\"content\",\"label\":{\"text\":{\"zh_CN\":\"显示的内容\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"显示的内容,也可以通过 slot 传入 DOM\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"Popover 是否可用\"},\"labelPosition\":\"left\"},{\"property\":\"offset\",\"label\":{\"text\":{\"zh_CN\":\"位置偏移量\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"出现位置的偏移量\"},\"labelPosition\":\"left\"},{\"property\":\"open-delay\",\"label\":{\"text\":{\"zh_CN\":\"显示延迟\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"触发方式为 hover 时的显示延迟,单位为毫秒\"},\"labelPosition\":\"left\"},{\"property\":\"popper-options\",\"label\":{\"text\":{\"zh_CN\":\"弹出层参数\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CodeConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"popper.js 的参数\"},\"labelPosition\":\"top\"},{\"property\":\"title\",\"label\":{\"text\":{\"zh_CN\":\"标题\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"提示内容标题\"},\"labelPosition\":\"left\"},{\"property\":\"transform-origin\",\"label\":{\"text\":{\"zh_CN\":\"旋转中心点\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"组件的旋转中心点,组件的旋转中心点\"},\"labelPosition\":\"left\"},{\"property\":\"transition\",\"label\":{\"text\":{\"zh_CN\":\"渐变动画\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"InputConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"该属性的默认值为 fade-in-linear\"},\"labelPosition\":\"left\"},{\"property\":\"width\",\"label\":{\"text\":{\"zh_CN\":\"宽度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"宽度\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"手动控制是否可见的状态值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"boolean\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的可见状态值\"}}],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"isPopper\":true,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"visible\",\"width\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (49, '3.20.0', '{\"zh_CN\":\"日期选择\"}', 'TinyDatePicker', 'datepick', '用于输入或选择日期', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"DatePicker\"}', 'component', 'form', 1, '[{\"name\":{\"zh_CN\":\"日期选择\"},\"icon\":\"datepick\",\"screenshot\":\"\",\"snippetName\":\"TinyDatePicker\",\"schema\":{\"componentName\":\"TinyDatePicker\",\"props\":{\"placeholder\":\"请输入\",\"modelValue\":\"\"}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定值\"},\"labelPosition\":\"left\"},{\"property\":\"type\",\"label\":{\"text\":{\"zh_CN\":\"类型\"}},\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"日期\",\"value\":\"date\"},{\"label\":\"日期时间\",\"value\":\"datetime\"},{\"label\":\"周\",\"value\":\"week\"},{\"label\":\"月份\",\"value\":\"month\"},{\"label\":\"年份\",\"value\":\"year\"}]}},\"description\":{\"zh_CN\":\"设置日期框的type属性\"},\"labelPosition\":\"left\"},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框占位文本\"},\"labelPosition\":\"left\"},{\"property\":\"clearable\",\"label\":{\"text\":{\"zh_CN\":\"清除按钮\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否显示清除按钮\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"readonly\",\"label\":{\"text\":{\"zh_CN\":\"只读\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否只读\"},\"labelPosition\":\"left\"},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"medium\",\"value\":\"medium\"},{\"label\":\"small\",\"value\":\"small\"},{\"label\":\"mini\",\"value\":\"mini\"}]}},\"description\":{\"zh_CN\":\"日期框尺寸。该属性的可选值为 medium / small / mini\"},\"labelPosition\":\"left\"}]},{\"name\":\"1\",\"label\":{\"zh_CN\":\"其他\"},\"content\":[{\"property\":\"maxlength\",\"label\":{\"text\":{\"zh_CN\":\"输入最大长度\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"设置 input 框的maxLength\"}},{\"property\":\"autofocus\",\"label\":{\"text\":{\"zh_CN\":\"聚焦\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"自动获取焦点\"},\"labelPosition\":\"left\"}],\"description\":{\"zh_CN\":\"\"}}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框改变后的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onInput\":{\"label\":{\"zh_CN\":\"输入值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框输入的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onBlur\":{\"label\":{\"zh_CN\":\"失去焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onFocus\":{\"label\":{\"zh_CN\":\"获取焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 获取焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClear\":{\"label\":{\"zh_CN\":\"点击清空按钮时触发\"},\"description\":{\"zh_CN\":\"点击清空按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"value\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); +INSERT INTO `t_component` (`id`, `version`, `name`, `name_en`, `icon`, `description`, `doc_url`, `screenshot`, `tags`, `keywords`, `dev_mode`, `npm`, `group`, `category`, `priority`, `snippets`, `schema_fragment`, `configure`, `public`, `framework`, `is_official`, `is_default`, `tiny_reserved`, `component_metadata`, `library_id`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (50, '3.20.0', '{\"zh_CN\":\"数字输入框\"}', 'TinyNumeric', 'numeric', '通过鼠标或键盘输入字符', '', '', '', '', 'proCode', '{\"package\":\"@opentiny/vue\",\"exportName\":\"Numeric\"}', 'component', 'form', 1, '[{\"name\":{\"zh_CN\":\"数字输入框\"},\"icon\":\"numeric\",\"screenshot\":\"\",\"snippetName\":\"TinyNumeric\",\"schema\":{\"componentName\":\"TinyNumeric\",\"props\":{\"allow-empty\":true,\"placeholder\":\"请输入\",\"controlsPosition\":\"right\",\"step\":1}}}]', '{\"properties\":[{\"label\":{\"zh_CN\":\"基础信息\"},\"description\":{\"zh_CN\":\"基础信息\"},\"content\":[{\"property\":\"modelValue\",\"label\":{\"text\":{\"zh_CN\":\"绑定值\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"双向绑定值\"},\"labelPosition\":\"left\"},{\"property\":\"placeholder\",\"label\":{\"text\":{\"zh_CN\":\"占位文本\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"I18nConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"输入框占位文本\"},\"labelPosition\":\"left\"},{\"property\":\"allow-empty\",\"label\":{\"text\":{\"zh_CN\":\"内容可清空\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否内容可清空\"},\"labelPosition\":\"left\"},{\"property\":\"disabled\",\"label\":{\"text\":{\"zh_CN\":\"禁用\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否禁用\"},\"labelPosition\":\"left\"},{\"property\":\"size\",\"label\":{\"text\":{\"zh_CN\":\"尺寸\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"medium\",\"value\":\"medium\"},{\"label\":\"small\",\"value\":\"small\"},{\"label\":\"mini\",\"value\":\"mini\"}]}},\"description\":{\"zh_CN\":\"输入框尺寸。该属性的可选值为 medium / small / mini\"},\"labelPosition\":\"left\"},{\"property\":\"controls\",\"label\":{\"text\":{\"zh_CN\":\"加减按钮\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"CheckBoxConfigurator\",\"props\":{}},\"description\":{\"zh_CN\":\"是否使用加减按钮\"},\"labelPosition\":\"left\"},{\"property\":\"controls-position\",\"label\":{\"text\":{\"zh_CN\":\"加减按钮位置\"}},\"required\":true,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"SelectConfigurator\",\"props\":{\"options\":[{\"label\":\"左右两侧\",\"value\":\"\"},{\"label\":\"只在右侧\",\"value\":\"right\"}]}},\"description\":{\"zh_CN\":\"加减按钮位置\"}},{\"property\":\"precision\",\"label\":{\"text\":{\"zh_CN\":\"精度\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"allowEmpty\":true}},\"description\":{\"zh_CN\":\"数值精度\"},\"labelPosition\":\"left\"},{\"property\":\"step\",\"label\":{\"text\":{\"zh_CN\":\"步长\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"allowEmpty\":true}},\"description\":{\"zh_CN\":\"步长\"},\"labelPosition\":\"left\"},{\"property\":\"max\",\"label\":{\"text\":{\"zh_CN\":\"最大数值\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"allowEmpty\":true}},\"description\":{\"zh_CN\":\"可输入的最大数值\"},\"labelPosition\":\"left\"},{\"property\":\"min\",\"label\":{\"text\":{\"zh_CN\":\"最小数值\"}},\"required\":false,\"readOnly\":false,\"disabled\":false,\"cols\":12,\"widget\":{\"component\":\"NumberConfigurator\",\"props\":{\"allowEmpty\":true}},\"description\":{\"zh_CN\":\"可输入的最大数值\"},\"labelPosition\":\"left\"}]}],\"events\":{\"onChange\":{\"label\":{\"zh_CN\":\"值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框改变后的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onInput\":{\"label\":{\"zh_CN\":\"输入值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"输入框输入的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onUpdate:modelValue\":{\"label\":{\"zh_CN\":\"双向绑定的值改变时触发\"},\"description\":{\"zh_CN\":\"在 Input 输入值改变时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"value\",\"type\":\"string\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"双向绑定的值\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onBlur\":{\"label\":{\"zh_CN\":\"失去焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 失去焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onFocus\":{\"label\":{\"zh_CN\":\"获取焦点时触发\"},\"description\":{\"zh_CN\":\"在 Input 获取焦点时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[{\"name\":\"event\",\"type\":\"Object\",\"defaultValue\":\"\",\"description\":{\"zh_CN\":\"原生 event\"}}],\"returns\":{}},\"defaultValue\":\"\"},\"onClear\":{\"label\":{\"zh_CN\":\"点击清空按钮时触发\"},\"description\":{\"zh_CN\":\"点击清空按钮时触发\"},\"type\":\"event\",\"functionInfo\":{\"params\":[],\"returns\":{}},\"defaultValue\":\"\"}}}', '{\"loop\":true,\"condition\":true,\"styles\":true,\"isContainer\":true,\"isModal\":false,\"nestingRule\":{\"childWhitelist\":\"\",\"parentWhitelist\":\"\",\"descendantBlacklist\":\"\",\"ancestorWhitelist\":\"\"},\"isNullNode\":false,\"isLayout\":false,\"rootSelector\":\"\",\"shortcuts\":{\"properties\":[\"value\",\"disabled\"]},\"contextMenu\":{\"actions\":[\"create symbol\"],\"disable\":[\"copy\",\"remove\"]}}', 1, 'Vue', 1, 1, 0, NULL, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:33', '1', '2025-05-22 18:02:33'); + +INSERT INTO `t_component_library` (`id`, `version`, `name`, `app_id`, `package`, `registry`, `framework`, `description`, `script`, `css`, `bundle`, `dependencies`, `others`, `thumbnail`, `public`, `is_started`, `is_official`, `is_default`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (1, '3.20.0', 'TinyVue组件库', NULL, '@opentiny/vue', NULL, 'Vue', NULL, 'https://unpkg.com/@opentiny/vue-runtime@~3.20/dist3/tiny-vue-pc.mjs', 'https://unpkg.com/@opentiny/vue-theme@~3.20/index.css', NULL, NULL, NULL, NULL, NULL, 1, 1, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); +INSERT INTO `t_component_library` (`id`, `version`, `name`, `app_id`, `package`, `registry`, `framework`, `description`, `script`, `css`, `bundle`, `dependencies`, `others`, `thumbnail`, `public`, `is_started`, `is_official`, `is_default`, `tenant_id`, `renter_id`, `site_id`, `created_by`, `created_time`, `last_updated_by`, `last_updated_time`) VALUES (2, '2.4.2', 'element-plus组件库', NULL, 'element-plus', NULL, 'Vue', NULL, 'https://unpkg.com/element-plus@2.4.2/dist/index.full.mjs', 'https://unpkg.com/element-plus@2.4.2/dist/index.css', NULL, NULL, NULL, NULL, NULL, 1, 1, 1, NULL, NULL, NULL, '1', '2025-05-22 18:02:32', '1', '2025-05-22 18:02:32'); + +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (1, 1, 1); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (2, 1, 2); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (3, 1, 3); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (4, 1, 4); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (5, 1, 5); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (6, 1, 6); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (7, 1, 7); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (8, 1, 8); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (9, 1, 9); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (10, 1, 10); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (11, 1, 11); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (12, 1, 12); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (13, 1, 13); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (14, 1, 14); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (15, 1, 15); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (16, 1, 16); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (17, 1, 17); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (18, 1, 18); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (19, 1, 19); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (20, 1, 20); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (21, 1, 21); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (22, 1, 22); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (23, 1, 23); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (24, 1, 24); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (25, 1, 25); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (26, 1, 26); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (27, 1, 27); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (28, 1, 28); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (29, 1, 29); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (30, 1, 30); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (31, 1, 31); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (32, 1, 32); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (33, 1, 33); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (34, 1, 34); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (35, 1, 35); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (36, 1, 36); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (37, 1, 37); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (38, 1, 38); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (39, 1, 39); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (40, 1, 40); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (41, 1, 41); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (42, 1, 42); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (43, 1, 43); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (44, 1, 44); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (45, 1, 45); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (46, 1, 46); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (47, 1, 47); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (48, 1, 48); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (49, 1, 49); +INSERT INTO `r_material_history_component` (`id`, `material_history_id`, `component_id`) VALUES (50, 1, 50); + +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (1, 1, 1); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (2, 1, 2); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (3, 1, 3); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (4, 1, 4); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (5, 1, 5); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (6, 1, 6); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (7, 1, 7); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (8, 1, 8); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (9, 1, 9); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (10, 1, 10); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (11, 1, 11); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (12, 1, 12); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (13, 1, 13); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (14, 1, 14); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (15, 1, 15); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (16, 1, 16); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (17, 1, 17); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (18, 1, 18); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (19, 1, 19); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (20, 1, 20); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (21, 1, 21); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (22, 1, 22); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (23, 1, 23); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (24, 1, 24); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (25, 1, 25); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (26, 1, 26); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (27, 1, 27); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (28, 1, 28); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (29, 1, 29); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (30, 1, 30); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (31, 1, 31); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (32, 1, 32); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (33, 1, 33); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (34, 1, 34); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (35, 1, 35); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (36, 1, 36); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (37, 1, 37); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (38, 1, 38); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (39, 1, 39); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (40, 1, 40); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (41, 1, 41); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (42, 1, 42); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (43, 1, 43); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (44, 1, 44); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (45, 1, 45); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (46, 1, 46); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (47, 1, 47); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (48, 1, 48); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (49, 1, 49); +INSERT INTO `r_material_component` (`id`, `material_id`, `component_id`) VALUES (50, 1, 50); diff --git a/app/src/main/resources/sql/mysql/update_all_tables_ddl.sql b/app/src/main/resources/sql/mysql/update_all_tables_ddl.sql index d041c58a..879a44c7 100644 --- a/app/src/main/resources/sql/mysql/update_all_tables_ddl.sql +++ b/app/src/main/resources/sql/mysql/update_all_tables_ddl.sql @@ -28,4 +28,5 @@ ALTER TABLE t_platform_history MODIFY tenant_id varchar(60) NULL; ALTER TABLE t_task_record MODIFY tenant_id varchar(60) NULL; ALTER TABLE t_user MODIFY tenant_id varchar(60) NULL; -ALTER TABLE t_component_library ADD app_id int NULL; \ No newline at end of file +ALTER TABLE t_component_library ADD app_id int NULL; + diff --git a/base/src/main/java/com/tinyengine/it/common/context/LoginUserContext.java b/base/src/main/java/com/tinyengine/it/common/context/LoginUserContext.java index a0e8adbd..9c1e6c6c 100644 --- a/base/src/main/java/com/tinyengine/it/common/context/LoginUserContext.java +++ b/base/src/main/java/com/tinyengine/it/common/context/LoginUserContext.java @@ -20,31 +20,35 @@ public interface LoginUserContext { * 返回当前用户所诉的业务租户信息 * @return 租户ID */ - public String getTenantId(); + String getTenantId(); /** * 返回当前用户信息 * @return 用户ID */ - public String getLoginUserId(); + String getLoginUserId(); /** * 返回当前用户所属业务租户信息 * @return 业务租户ID */ - public String getRenterId(); + String getRenterId(); /** * 返回当前应用信息 * @return 应用ID */ - public int getAppId(); + int getAppId(); /** * 返回当前设计器信息 * @return 设计器ID */ - public int getPlatformId(); + int getPlatformId(); - public String getSiteId(); + /** + * getSiteId + * @return Strinig + */ + String getSiteId(); } diff --git a/base/src/main/java/com/tinyengine/it/common/utils/SecurityFileCheckUtil.java b/base/src/main/java/com/tinyengine/it/common/utils/SecurityFileCheckUtil.java index 444cb188..2b6e6b49 100644 --- a/base/src/main/java/com/tinyengine/it/common/utils/SecurityFileCheckUtil.java +++ b/base/src/main/java/com/tinyengine/it/common/utils/SecurityFileCheckUtil.java @@ -18,6 +18,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.File; +import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.regex.Pattern; @@ -41,7 +42,8 @@ public class SecurityFileCheckUtil { public static boolean checkPathHasCrossDir(String dirOrFileName) { if (!dirOrFileName.contains("../") && !dirOrFileName.contains("/..")) { if (!dirOrFileName.contains("..\\") && !dirOrFileName.contains("\\..")) { - return dirOrFileName.contains("./") || dirOrFileName.contains(".\\.\\") || dirOrFileName.contains("%00"); + return dirOrFileName.contains("./") || dirOrFileName.contains(".\\.\\") + || dirOrFileName.contains("%00"); } else { return true; } @@ -142,7 +144,7 @@ public static boolean filePathIsValid(String fileName) { } // 获取当前操作系统的名称 - String os = System.getProperty("os.name").toLowerCase(); + String os = System.getProperty("os.name").toLowerCase(Locale.ROOT); // 定义通用的非法字符 String illegalChars = ""; @@ -150,7 +152,8 @@ public static boolean filePathIsValid(String fileName) { if (os.contains("win")) { // 针对Windows的非法字符 illegalChars = "[<>:\"/\\|?*]"; - } else if (os.contains("nix") || os.contains("nux") || os.contains("mac")) { + } + if (os.contains("nix") || os.contains("nux") || os.contains("mac")) { // 针对Linux和macOS的非法字符(一般来说,Linux和macOS对文件名的限制较少,但有一些常见的非法字符) illegalChars = "[/]"; // Linux和macOS的路径不能包含斜杠 '/' } diff --git a/base/src/main/java/com/tinyengine/it/config/AiChatConfig.java b/base/src/main/java/com/tinyengine/it/config/AiChatConfig.java index aac487be..b72bc3fd 100644 --- a/base/src/main/java/com/tinyengine/it/config/AiChatConfig.java +++ b/base/src/main/java/com/tinyengine/it/config/AiChatConfig.java @@ -52,21 +52,25 @@ public static Map getAiChatConfig(String model, String Map ernieBotHeaders = new HashMap<>(); - config.put(Enums.FoundationModel.GPT_35_TURBO.getValue(), new AiChatConfigData( - OPENAI_API_URL + "/v1/chat/completions", createCommonRequestOption(), openaiHeaders, "openai")); + config.put(Enums.FoundationModel.GPT_35_TURBO.getValue(), + new AiChatConfigData( + OPENAI_API_URL + "/v1/chat/completions", createCommonRequestOption(), openaiHeaders, + "openai")); - config.put(Enums.FoundationModel.LOCAL_GPT.getValue(), new AiChatConfigData( - LOCAL_GPT_API_URL + "/v1/chat/completions", createCommonRequestOption(), localGptHeaders, "!openai")); + config.put(Enums.FoundationModel.LOCAL_GPT.getValue(), + new AiChatConfigData( + LOCAL_GPT_API_URL + "/v1/chat/completions", createCommonRequestOption(), localGptHeaders, + "!openai")); - config.put(Enums.FoundationModel.DEEPSEEK_V3.getValue(), new AiChatConfigData( - DEEPSEEK_V3_URL + "/chat/completions", createCommonRequestOption(), deepSeekHeaders, "DeepSeek")); + config.put(Enums.FoundationModel.DEEPSEEK_V3.getValue(), + new AiChatConfigData( + DEEPSEEK_V3_URL + "/chat/completions", createCommonRequestOption(), deepSeekHeaders, + "DeepSeek")); String ernieBotAccessToken = Enums.FoundationModel.ERNIBOT_TURBO.getValue().equals(model) ? token : null; - config.put(Enums.FoundationModel.ERNIBOT_TURBO.getValue(), - new AiChatConfigData( - "https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=" - + ernieBotAccessToken, - createCommonRequestOption(), ernieBotHeaders, "baidu")); + config.put(Enums.FoundationModel.ERNIBOT_TURBO.getValue(), new AiChatConfigData( +"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions_pro?access_token=" + + ernieBotAccessToken, createCommonRequestOption(), ernieBotHeaders, "baidu")); return config; } diff --git a/base/src/main/java/com/tinyengine/it/controller/BlockController.java b/base/src/main/java/com/tinyengine/it/controller/BlockController.java index a2cd10f0..ba6139b2 100644 --- a/base/src/main/java/com/tinyengine/it/controller/BlockController.java +++ b/base/src/main/java/com/tinyengine/it/controller/BlockController.java @@ -62,10 +62,21 @@ @RequestMapping("/material-center/api") @Tag(name = "区块") public class BlockController { + /** + * The Block service. + */ @Autowired private BlockService blockService; + + /** + * The Tenant service. + */ @Autowired private TenantMapper tenantMapper; + + /** + * The Block mapper. + */ @Autowired private BlockMapper blockMapper; @@ -75,17 +86,13 @@ public class BlockController { * @param blockParamDto blockParamDto * @return block列表信息 */ - @Operation(summary = "获取区块列表信息", - description = "获取区块列表信息", - parameters = { - @Parameter(name = "blockParamDto", description = "入参对象") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Block.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "获取区块列表信息", description = "获取区块列表信息", parameters = { + @Parameter(name = "blockParamDto", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Block.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取区块列表api") @GetMapping("/block/list") public Result> getAllBlocks(@ModelAttribute BlockParamDto blockParamDto) { @@ -101,18 +108,15 @@ public Result> getAllBlocks(@ModelAttribute BlockParamDto blockParam * @param description description * @return the integer */ - @Operation(summary = "获取区块列表满足查询条件下的条数", - description = "获取区块列表满足查询条件下的条数", - parameters = { - @Parameter(name = "nameCn", description = "nameCn区块中文名称"), - @Parameter(name = "description", description = "区块描述") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "获取区块列表满足查询条件下的条数", description = "获取区块列表满足查询条件下的条数", + parameters = { + @Parameter(name = "nameCn", description = "nameCn区块中文名称"), + @Parameter(name = "description", description = "区块描述") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取区块列表满足查询条件下的条数") @GetMapping("/block/count") public Result getCountByCondition( @@ -130,17 +134,13 @@ public Result getCountByCondition( * @param id id * @return BlockDto */ - @Operation(summary = "查询区块详情", - description = "根据id查询表t_block信息并返回", - parameters = { - @Parameter(name = "id", description = "区块Id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回区块信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Block.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "查询区块详情", description = "根据id查询表t_block信息并返回", parameters = { + @Parameter(name = "id", description = "区块Id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回区块信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Block.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取区块详情api") @GetMapping("/block/detail/{id}") public Result getBlocksById(@PathVariable Integer id) { @@ -154,17 +154,13 @@ public Result getBlocksById(@PathVariable Integer id) { * @param blockParam the blockParam * @return BlockDto */ - @Operation(summary = "创建block", - description = "创建block", - parameters = { - @Parameter(name = "blockParam", description = "入参对象") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Block.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "创建block", description = "创建block", parameters = { + @Parameter(name = "blockParam", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Block.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "区块创建api") @PostMapping("/block/create") public Result createBlocks(@Valid @RequestBody BlockParam blockParam) { @@ -178,17 +174,13 @@ public Result createBlocks(@Valid @RequestBody BlockParam blockParam) * @param id id * @return BlockDto */ - @Operation(summary = "删除blocks信息", - description = "删除blocks信息", - parameters = { - @Parameter(name = "id", description = "区块id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Block.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "删除blocks信息", description = "删除blocks信息", parameters = { + @Parameter(name = "id", description = "区块id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Block.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "删除blocks信息") @GetMapping("/block/delete/{id}") public Result deleteBlock(@PathVariable Integer id) { @@ -204,17 +196,13 @@ public Result deleteBlock(@PathVariable Integer id) { * @param blockParamDto blockParamDto * @return BlockDto */ - @Operation(summary = "生态中心区块列表分页查询", - description = "生态中心区块列表分页查询", - parameters = { - @Parameter(name = "blockParamDto", description = "入参对象") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "生态中心区块列表分页查询", description = "生态中心区块列表分页查询", parameters = { + @Parameter(name = "blockParamDto", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "生态中心区块列表分页查询api") @GetMapping("/block") public Result> find(@ModelAttribute BlockParamDto blockParamDto) { @@ -233,14 +221,11 @@ public Result> find(@ModelAttribute BlockParamDto blockParamDto) * * @return the list */ - @Operation(summary = "查找表中所有tags", - description = "查找表中所有tags", - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "查找表中所有tags", description = "查找表中所有tags", responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "查找表中所有tags") @GetMapping("/block/tags") public Result> allTags() { @@ -254,23 +239,19 @@ public Result> allTags() { * @param groupId the groupId * @return the list */ - @Operation(summary = "查找不在分组内的区块", - description = "查找不在分组内的区块", - parameters = { - @Parameter(name = "groupId", description = "分组id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Block.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "查找不在分组内的区块", description = "查找不在分组内的区块", parameters = { + @Parameter(name = "groupId", description = "分组id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Block.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "查找不在分组内的区块api") @GetMapping("/block/notgroup/{groupId}") public Result> findBlocksNotInGroup(@PathVariable Integer groupId, - @RequestParam(value = "label_contains", required = false) String label, - @RequestParam(value = "tags_contains", required = false) String[] tags, - @RequestParam(value = "createdBy", required = false) String createdBy) { + @RequestParam(value = "label_contains", required = false) String label, + @RequestParam(value = "tags_contains", required = false) String[] tags, + @RequestParam(value = "createdBy", required = false) String createdBy) { NotGroupDto notGroupDto = new NotGroupDto(); notGroupDto.setGroupId(groupId); notGroupDto.setLabel(label); @@ -287,17 +268,13 @@ public Result> findBlocksNotInGroup(@PathVariable Integer groupId * @param request request * @return the ipage */ - @Operation(summary = "获取区块列表list2", - description = "获取区块列表list2", - parameters = { - @Parameter(name = "request", description = "入参对象") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "获取区块列表list2", description = "获取区块列表list2", parameters = { + @Parameter(name = "request", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取区块列表api") @GetMapping("/block/list2") public Result> getBlocks(@RequestBody Map request) { @@ -311,14 +288,11 @@ public Result> getBlocks(@RequestBody Map request) * * @return the list */ - @Operation(summary = "获取所有租户", - description = "获取所有租户", - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Tenant.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "获取所有租户", description = "获取所有租户", responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Tenant.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取所有租户api") @GetMapping("/block/tenants") public Result> allTenant() { @@ -332,14 +306,11 @@ public Result> allTenant() { * * @return the list */ - @Operation(summary = "获取所有用户", - description = "获取所有用户", - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = User.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "获取所有用户", description = "获取所有用户", responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = User.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取所有用户api") @GetMapping("/block/users") public Result> allAuthor() { @@ -355,23 +326,18 @@ public Result> allAuthor() { * @param groupId groupId * @return the list */ - @Operation(summary = "获取区块列表", - description = "获取区块列表", - parameters = { - @Parameter(name = "appId", description = "app主键id"), - @Parameter(name = "groupId", description = "区块分组id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Block.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "获取区块列表", description = "获取区块列表", parameters = { + @Parameter(name = "appId", description = "app主键id"), + @Parameter(name = "groupId", description = "区块分组id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Block.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取区块列表") @GetMapping("/blocks") - public Result> getBlockGroups( - @Valid @RequestParam(required = false) String appId, - @RequestParam(required = false) String groupId) { + public Result> getBlockGroups(@Valid @RequestParam(required = false) String appId, + @RequestParam(required = false) String groupId) { return blockService.listNew(appId, groupId); } @@ -383,22 +349,18 @@ public Result> getBlockGroups( * @param id id * @return block dto */ - @Operation(summary = "修改区块", - description = "修改区块", - parameters = { - @Parameter(name = "blockParam", description = "入参对象"), - @Parameter(name = "id", description = "区块id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Block.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "修改区块", description = "修改区块", parameters = { + @Parameter(name = "blockParam", description = "入参对象"), + @Parameter(name = "id", description = "区块id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Block.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "区块修改api") @PostMapping("/block/update/{id}") public Result updateBlocks(@Valid @RequestBody BlockParam blockParam, @PathVariable Integer id, - @RequestParam(value = "appId", required = false) Integer appId) { + @RequestParam(value = "appId", required = false) Integer appId) { blockParam.setId(id); return blockService.updateBlockById(blockParam, appId); } @@ -410,19 +372,15 @@ public Result updateBlocks(@Valid @RequestBody BlockParam blockParam, * @param appId appId * @return the result */ - @Operation(summary = "根据lable和appId查询区块详情", - description = "根据lable和appId查询区块详情", - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Block.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "根据lable和appId查询区块详情", description = "根据lable和appId查询区块详情", responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Block.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "根据lable和appId查询区块详情api") @GetMapping("/block/label") - public Result getBlockByLabel( - @RequestParam(value = "label") String label, - @RequestParam(value = "appId") Integer appId) { + public Result getBlockByLabel(@RequestParam(value = "label") String label, + @RequestParam(value = "appId") Integer appId) { return blockService.getBlockByLabel(label, appId); } @@ -432,16 +390,12 @@ public Result getBlockByLabel( * @param blockBuildDto block * @return blcok信息 */ - @Operation(summary = "区块发布", - description = "区块发布", - parameters = { - @Parameter(name = "blockBuildDto", description = "入参对象") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Block.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} + @Operation(summary = "区块发布", description = "区块发布", parameters = { + @Parameter(name = "blockBuildDto", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Block.class))), + @ApiResponse(responseCode = "400", description = "请求失败")} ) @SystemControllerLog(description = "区块发布api") @PostMapping("/block/deploy") diff --git a/base/src/main/java/com/tinyengine/it/controller/BlockGroupController.java b/base/src/main/java/com/tinyengine/it/controller/BlockGroupController.java index 12f7dd70..f4782dae 100644 --- a/base/src/main/java/com/tinyengine/it/controller/BlockGroupController.java +++ b/base/src/main/java/com/tinyengine/it/controller/BlockGroupController.java @@ -13,11 +13,9 @@ package com.tinyengine.it.controller; import com.tinyengine.it.common.base.Result; -import com.tinyengine.it.common.context.LoginUserContext; import com.tinyengine.it.common.exception.ExceptionEnum; import com.tinyengine.it.common.exception.ServiceException; import com.tinyengine.it.common.log.SystemControllerLog; -import com.tinyengine.it.mapper.BlockGroupMapper; import com.tinyengine.it.model.entity.BlockGroup; import com.tinyengine.it.service.material.BlockGroupService; @@ -56,12 +54,11 @@ @RequestMapping("/material-center/api") @Tag(name = "区块") public class BlockGroupController { + /** + * The Block group service. + */ @Autowired private BlockGroupService blockGroupService; - @Autowired - private BlockGroupMapper blockGroupMapper; - @Autowired - private LoginUserContext loginUserContext; /** * 获取区块分组 @@ -71,25 +68,21 @@ public class BlockGroupController { * @param from from * @return the list */ - @Operation(summary = "获取区块分组", - description = "获取区块分组", - parameters = { - @Parameter(name = "ids", description = "分组ids"), - @Parameter(name = "appId", description = "appId"), - @Parameter(name = "from", description = "区分是在物料管理还是区块管理(block:在区块管理)") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "获取区块分组", description = "获取区块分组", parameters = { + @Parameter(name = "ids", description = "分组ids"), + @Parameter(name = "appId", description = "appId"), + @Parameter(name = "from", description = "区分是在物料管理还是区块管理(block:在区块管理)") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取区块分组") @GetMapping("/block-groups") public Result> getAllBlockGroups( - @RequestParam(value = "id", required = false) List ids, - @RequestParam(value = "app", required = false) Integer appId, - @RequestParam(value = "from", required = false) String from) { + @RequestParam(value = "id", required = false) List ids, + @RequestParam(value = "app", required = false) Integer appId, + @RequestParam(value = "from", required = false) String from) { List blockGroupsListResult = blockGroupService.getBlockGroupByIdsOrAppId(ids, appId, from); return Result.success(blockGroupsListResult); } @@ -101,17 +94,13 @@ public Result> getAllBlockGroups( * @param blockGroup blockGroup * @return the list */ - @Operation(summary = "创建区块分组", - description = "创建区块分组", - parameters = { - @Parameter(name = "blockGroups", description = "入参对象") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = BlockGroup.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "创建区块分组", description = "创建区块分组", parameters = { + @Parameter(name = "blockGroups", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = BlockGroup.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "创建区块分组") @PostMapping("/block-groups/create") public Result createBlockGroups(@Valid @RequestBody BlockGroup blockGroup) { @@ -125,22 +114,18 @@ public Result createBlockGroups(@Valid @RequestBody BlockGroup block * @param blockGroup blockGroup * @return the list */ - @Operation(summary = "修改区块分组", - description = "修改区块分组", - parameters = { - @Parameter(name = "id", description = "分组id"), - @Parameter(name = "blockGroups", description = "入参对象") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = BlockGroup.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "修改区块分组", description = "修改区块分组", parameters = { + @Parameter(name = "id", description = "分组id"), + @Parameter(name = "blockGroups", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = BlockGroup.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "修改区块分组") @PostMapping("/block-groups/update/{id}") public Result> updateBlockGroups(@Valid @PathVariable Integer id, - @RequestBody BlockGroup blockGroup) { + @RequestBody BlockGroup blockGroup) { blockGroup.setId(id); blockGroupService.updateBlockGroupById(blockGroup); // 页面返回数据显示 @@ -155,16 +140,12 @@ public Result> updateBlockGroups(@Valid @PathVariable Integer i * @return the list * @throws ServiceException serviceException */ - @Operation(summary = "根据id删除区块分组", - description = "根据id删除区块分组", - parameters = { - @Parameter(name = "id", description = "分组id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = BlockGroup.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} + @Operation(summary = "根据id删除区块分组", description = "根据id删除区块分组", parameters = { + @Parameter(name = "id", description = "分组id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = BlockGroup.class))), + @ApiResponse(responseCode = "400", description = "请求失败")} ) @SystemControllerLog(description = "根据id删除区块分组") @GetMapping("/block-groups/delete/{id}") diff --git a/base/src/main/java/com/tinyengine/it/controller/CanvasController.java b/base/src/main/java/com/tinyengine/it/controller/CanvasController.java index 1dcaed37..575cfc7e 100644 --- a/base/src/main/java/com/tinyengine/it/controller/CanvasController.java +++ b/base/src/main/java/com/tinyengine/it/controller/CanvasController.java @@ -55,22 +55,19 @@ public class CanvasController { * @param type the type * @return CanvasDto */ - @Operation(summary = "区块及页面锁", - description = "区块及页面锁", - parameters = { - @Parameter(name = "id", description = "页面id"), - @Parameter(name = "state", description = "状态"), - @Parameter(name = "type", description = "区分是页面还是区块") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")} + @Operation(summary = "区块及页面锁", description = "区块及页面锁", parameters = { + @Parameter(name = "id", description = "页面id"), + @Parameter(name = "state", description = "状态"), + @Parameter(name = "type", description = "区分是页面还是区块") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败")} ) @SystemControllerLog(description = "区块及页面锁") @GetMapping("apps/canvas/lock") - public Result lock(@RequestParam Integer id, @RequestParam String state, @RequestParam String type) { + public Result lock(@RequestParam Integer id, @RequestParam String state, + @RequestParam String type) { return canvasService.lockCanvas(id, state, type); } } diff --git a/base/src/main/java/com/tinyengine/it/controller/ComponentController.java b/base/src/main/java/com/tinyengine/it/controller/ComponentController.java index 5408fa3f..833e3a44 100644 --- a/base/src/main/java/com/tinyengine/it/controller/ComponentController.java +++ b/base/src/main/java/com/tinyengine/it/controller/ComponentController.java @@ -62,10 +62,12 @@ public class ComponentController { * @return result */ @Operation(summary = "上传bunled.json文件创建组件", description = "上传bunled.json文件创建组件", parameters = { - @Parameter(name = "file", description = "文件参数对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "file", description = "文件参数对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "上传bunled.json文件创建组件") @PostMapping("/component/bundle/create") public Result bundleCreateComponent(@RequestParam MultipartFile file) { @@ -84,10 +86,12 @@ public Result bundleCreateComponent(@RequestParam MultipartFile file * @return result */ @Operation(summary = "上传bunled.json文件处理自定义组件", description = "上传bunled.json文件处理自定义组件", parameters = { - @Parameter(name = "file", description = "文件参数对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "file", description = "文件参数对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "上传bunled.json文件处理自定义组件") @PostMapping("/component/bundle/split") public Result bundleSplit(@RequestParam MultipartFile file) { @@ -105,10 +109,12 @@ public Result bundleSplit(@RequestParam MultipartFile file) { * @return result */ @Operation(summary = "批量创建自定义组件", description = "批量创建自定义组件", parameters = { - @Parameter(name = "custComponentDto", description = "自定义组件对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "custComponentDto", description = "自定义组件对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "批量创建自定义组件") @PostMapping("/component/batch/create") public Result createCustComponent(@Valid @RequestBody CustComponentDto custComponentDto) { diff --git a/base/src/main/java/com/tinyengine/it/controller/ComponentLibraryController.java b/base/src/main/java/com/tinyengine/it/controller/ComponentLibraryController.java index eabc5237..e4d4ece1 100644 --- a/base/src/main/java/com/tinyengine/it/controller/ComponentLibraryController.java +++ b/base/src/main/java/com/tinyengine/it/controller/ComponentLibraryController.java @@ -32,9 +32,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.validation.Valid; import java.util.List; +import javax.validation.Valid; + /** * 组件库API * @@ -56,13 +57,11 @@ public class ComponentLibraryController { * * @return ComponentLibrary信息 all componentLibrary */ - @Operation(summary = "查询表ComponentLibrary信息列表", - description = "查询表ComponentLibrary信息列表", - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = ComponentLibrary.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Operation(summary = "查询表ComponentLibrary信息列表", description = "查询表ComponentLibrary信息列表", responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = ComponentLibrary.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "查询表ComponentLibrary信息列表") @GetMapping("/component-library/list") public Result> getAllComponentLibrary() { @@ -76,17 +75,13 @@ public Result> getAllComponentLibrary() { * @param componentLibrary the componentLibrary * @return ComponentLibrary信息 result */ - @Operation(summary = "创建ComponentLibrary", - description = "创建ComponentLibrary", - parameters = { - @Parameter(name = "ComponentLibrary", description = "ComponentLibrary入参对象") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = ComponentLibrary.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "创建ComponentLibrary", description = "创建ComponentLibrary", parameters = { + @Parameter(name = "ComponentLibrary", description = "ComponentLibrary入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = ComponentLibrary.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "创建ComponentLibrary") @PostMapping("/component-library/create") public Result createComponentLibrary(@Valid @RequestBody ComponentLibrary componentLibrary) { @@ -101,15 +96,17 @@ public Result createComponentLibrary(@Valid @RequestBody Compo * @return ComponentLibrary信息 result */ @Operation(summary = "修改单个ComponentLibrary信息", description = "修改单个ComponentLibrary信息", parameters = { - @Parameter(name = "id", description = "appId"), - @Parameter(name = "ComponentLibrary", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = ComponentLibrary.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "appId"), + @Parameter(name = "ComponentLibrary", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = ComponentLibrary.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "修改单个ComponentLibrary信息") @PostMapping("/component-library/update/{id}") - public Result updateComponentLibrary(@PathVariable Integer id, @RequestBody ComponentLibrary componentLibrary) { + public Result updateComponentLibrary(@PathVariable Integer id, + @RequestBody ComponentLibrary componentLibrary) { componentLibrary.setId(id); return componentLibraryService.updateComponentLibraryById(componentLibrary); } @@ -120,17 +117,13 @@ public Result updateComponentLibrary(@PathVariable Integer id, * @param id the id * @return ComponentLibrary信息 result */ - @Operation(summary = "删除ComponentLibrary信息", - description = "删除ComponentLibrary信息", - parameters = { - @Parameter(name = "id", description = "ComponentLibrary主键id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = ComponentLibrary.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "删除ComponentLibrary信息", description = "删除ComponentLibrary信息", parameters = { + @Parameter(name = "id", description = "ComponentLibrary主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = ComponentLibrary.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "删除ComponentLibrary信息") @DeleteMapping("/component-library/delete/{id}") public Result deleteComponentLibrary(@PathVariable Integer id) { @@ -144,11 +137,12 @@ public Result deleteComponentLibrary(@PathVariable Integer id) * @return the result */ @Operation(summary = "获取ComponentLibrary信息详情", description = "获取ComponentLibrary信息详情", parameters = { - @Parameter(name = "id", description = "appId")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = ComponentLibrary.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "appId") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = ComponentLibrary.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取ComponentLibrary信息详情") @GetMapping("/component-library/detail/{id}") public Result detail(@PathVariable Integer id) { diff --git a/base/src/main/java/com/tinyengine/it/controller/DataSourceController.java b/base/src/main/java/com/tinyengine/it/controller/DataSourceController.java index 8931ac3b..7add4ddc 100644 --- a/base/src/main/java/com/tinyengine/it/controller/DataSourceController.java +++ b/base/src/main/java/com/tinyengine/it/controller/DataSourceController.java @@ -63,11 +63,12 @@ public class DataSourceController { * @return all sources */ @Operation(summary = "获取数据源列表", description = "获取数据源列表", parameters = { - @Parameter(name = "aid", description = "appId")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Datasource.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "aid", description = "appId") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Datasource.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取数据源列表") @GetMapping("/sources/list/{aid}") public Result> getAllSources(@PathVariable Integer aid) { @@ -83,11 +84,12 @@ public Result> getAllSources(@PathVariable Integer aid) { * @return sources by id */ @Operation(summary = "获取某条数据源", description = "获取某条数据源", parameters = { - @Parameter(name = "id", description = "数据源主键id")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Datasource.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "数据源主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Datasource.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取某条数据源") @GetMapping("/sources/detail/{id}") public Result getSourcesById(@PathVariable Integer id) { @@ -102,11 +104,12 @@ public Result getSourcesById(@PathVariable Integer id) { * @return result */ @Operation(summary = "创建数据源", description = "创建数据源", parameters = { - @Parameter(name = "sources", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Datasource.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "sources", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Datasource.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "创建数据源") @PostMapping("/sources/create") public Result createSources(@Valid @RequestBody Datasource sources) { @@ -121,12 +124,13 @@ public Result createSources(@Valid @RequestBody Datasource sources) * @return result */ @Operation(summary = "修改数据源某条数据", description = "修改数据源某条数据", parameters = { - @Parameter(name = "id", description = "数据源主键id"), - @Parameter(name = "sources", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Datasource.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "数据源主键id"), + @Parameter(name = "sources", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Datasource.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "修改数据源某条数据") @PostMapping("/sources/update/{id}") public Result updateSources(@PathVariable Integer id, @RequestBody Datasource sources) { @@ -141,11 +145,12 @@ public Result updateSources(@PathVariable Integer id, @RequestBody D * @return result */ @Operation(summary = "删除数据源某条数据", description = "删除数据源某条数据", parameters = { - @Parameter(name = "id", description = "数据源主键id")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Datasource.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "数据源主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Datasource.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "删除数据源某条数据") @GetMapping("/sources/delete/{id}") public Result deleteSources(@PathVariable Integer id) { diff --git a/base/src/main/java/com/tinyengine/it/controller/I18nEntryController.java b/base/src/main/java/com/tinyengine/it/controller/I18nEntryController.java index 2375ee98..4be56b81 100644 --- a/base/src/main/java/com/tinyengine/it/controller/I18nEntryController.java +++ b/base/src/main/java/com/tinyengine/it/controller/I18nEntryController.java @@ -75,9 +75,10 @@ public class I18nEntryController { * @return 获取国际化词条列表 all i 18 n entries */ @Operation(summary = "获取国际化词条列表", description = "获取国际化词条列表", responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取国际化词条列表") @GetMapping("/i18n/entries") public Result getAllI18nEntries() { @@ -92,11 +93,12 @@ public Result getAllI18nEntries() { * @return 国际化语言详情 i 18 n entries by id */ @Operation(summary = "获取国际化语言的详情", description = "获取国际化语言的详情", parameters = { - @Parameter(name = "id", description = "I18nEntries主键id")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = I18nEntry.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "I18nEntries主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = I18nEntry.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取国际化语言的详情") @GetMapping("/i18n/entries/{id}") public Result getI18nEntriesById(@Valid @PathVariable Integer id) { @@ -111,11 +113,12 @@ public Result getI18nEntriesById(@Valid @PathVariable Integer id) * @return result */ @Operation(summary = "创建国际化多语言词条", description = "创建国际化多语言词条", parameters = { - @Parameter(name = "OperateI18nEntries", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = I18nEntry.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "OperateI18nEntries", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = I18nEntry.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "创建国际化多语言词条") @PostMapping("/i18n/entries/create") public Result> createI18nEntries(@Valid @RequestBody OperateI18nEntries operateI18nEntries) { @@ -131,11 +134,12 @@ public Result> createI18nEntries(@Valid @RequestBody OperateI18n * @return the result */ @Operation(summary = "批量创建国际化多语言词条", description = "批量创建国际化多语言词条", parameters = { - @Parameter(name = "operateI18nBatchEntries", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = I18nEntry.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "operateI18nBatchEntries", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = I18nEntry.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "批量创建国际化多语言词条") @PostMapping("/i18n/entries/batch/create") public Result> batchCreateEntries( @@ -153,15 +157,17 @@ public Result> batchCreateEntries( * @return the result */ @Operation(summary = "修改国际化单语言词条", description = "修改国际化单语言词条", parameters = { - @Parameter(name = "id", description = "I18nEntries主键id"), - @Parameter(name = "i18nEntries", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = I18nEntry.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "I18nEntries主键id"), + @Parameter(name = "i18nEntries", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = I18nEntry.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "修改国际化单语言词条") @PostMapping("/i18n/entries/update/{id}") - public Result updateI18nEntries(@PathVariable Integer id, @RequestBody I18nEntry i18nEntries) { + public Result updateI18nEntries(@PathVariable Integer id, + @RequestBody I18nEntry i18nEntries) { i18nEntries.setId(id); i18nEntryService.updateI18nEntryById(i18nEntries); I18nEntryDto i18nEntryDto = i18nEntryService.findI18nEntryById(id); @@ -175,11 +181,12 @@ public Result updateI18nEntries(@PathVariable Integer id, @Request * @return 修改成功信息 result */ @Operation(summary = "修改国际化多语言词条", description = "修改国际化多语言词条", parameters = { - @Parameter(name = "operateI18nEntries", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = I18nEntry.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "operateI18nEntries", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = I18nEntry.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "修改国际化多语言词条") @PostMapping("/i18n/entries/update") public Result> updateEntry(@Valid @RequestBody OperateI18nEntries operateI18nEntries) { @@ -197,11 +204,12 @@ public Result> updateEntry(@Valid @RequestBody OperateI18nEntrie * @throws ServiceException the service exception */ @Operation(summary = "删除多语言词条", description = "删除多语言词条", parameters = { - @Parameter(name = "iDeleteI18nEntry", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = I18nEntry.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "iDeleteI18nEntry", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = I18nEntry.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "删除多语言词条") @PostMapping("/i18n/entries/bulk/delete") public Result> deleteI18nEntries(@RequestBody DeleteI18nEntry deleteI18nEntry) @@ -220,16 +228,18 @@ public Result> deleteI18nEntries(@RequestBody DeleteI18nEntry * @throws Exception the exception */ @Operation(summary = "应用下上传单文件处理国际化词条", description = "应用下上传单文件处理国际化词条", parameters = { - @Parameter(name = "id", description = "appId"), - @Parameter(name = "filesMap", description = "文件参数对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "appId"), + @Parameter(name = "filesMap", description = "文件参数对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "应用下上传单文件处理国际化词条") @PostMapping("/apps/{id}/i18n/entries/update") public Result updateI18nSingleFile( - @PathVariable Integer id, - @RequestParam Map filesMap) throws Exception { + @PathVariable Integer id, + @RequestParam Map filesMap) throws Exception { Result result = new Result<>(); for (Map.Entry entry : filesMap.entrySet()) { @@ -253,23 +263,19 @@ public Result updateI18nSingleFile( * @return the result * @throws Exception exception */ - @Operation(summary = "应用下批量上传国际化词条文件", - description = "应用下批量上传国际化词条文件", - parameters = { - @Parameter(name = "id", description = "appId"), - @Parameter(name = "filesMap", description = "文件参数对象") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "应用下批量上传国际化词条文件", description = "应用下批量上传国际化词条文件", parameters = { + @Parameter(name = "id", description = "appId"), + @Parameter(name = "filesMap", description = "文件参数对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "应用下批量上传国际化词条文件") @PostMapping("/apps/{id}/i18n/entries/multiUpdate") public Result updateI18nMultiFile( - @PathVariable Integer id, - @RequestParam Map filesMap) throws Exception { + @PathVariable Integer id, + @RequestParam Map filesMap) throws Exception { Result result = new Result<>(); // 处理上传的文件 for (Map.Entry entry : filesMap.entrySet()) { diff --git a/base/src/main/java/com/tinyengine/it/controller/MaterialController.java b/base/src/main/java/com/tinyengine/it/controller/MaterialController.java index 374c9e98..cde9dc51 100644 --- a/base/src/main/java/com/tinyengine/it/controller/MaterialController.java +++ b/base/src/main/java/com/tinyengine/it/controller/MaterialController.java @@ -32,9 +32,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.validation.Valid; import java.util.List; +import javax.validation.Valid; + + /** * 物料历史api * @@ -56,13 +58,11 @@ public class MaterialController { * * @return Material信息 all material */ - @Operation(summary = "查询表Material信息列表", - description = "查询表Material信息列表", - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Material.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Operation(summary = "查询表Material信息列表", description = "查询表Material信息列表", responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Material.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "查询表Material信息列表") @GetMapping("/material/list") public Result> getAllMaterial() { @@ -76,17 +76,13 @@ public Result> getAllMaterial() { * @param material the material * @return Material信息 result */ - @Operation(summary = "创建Material", - description = "创建Material", - parameters = { - @Parameter(name = "Material", description = "Material入参对象") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Material.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "创建Material", description = "创建Material", parameters = { + @Parameter(name = "Material", description = "Material入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Material.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "创建Material") @PostMapping("/material/create") public Result createMaterial(@Valid @RequestBody Material material) { @@ -101,12 +97,13 @@ public Result createMaterial(@Valid @RequestBody Material material) { * @return Material信息 result */ @Operation(summary = "修改单个Material信息", description = "修改单个Material信息", parameters = { - @Parameter(name = "id", description = "appId"), - @Parameter(name = "Material", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Material.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "appId"), + @Parameter(name = "Material", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Material.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "修改单个Material信息") @PostMapping("/material/update/{id}") public Result updateMaterial(@PathVariable Integer id, @RequestBody Material material) { @@ -120,17 +117,13 @@ public Result updateMaterial(@PathVariable Integer id, @RequestBody Ma * @param id the id * @return app信息 result */ - @Operation(summary = "删除Material信息", - description = "删除Material信息", - parameters = { - @Parameter(name = "id", description = "Material主键id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Material.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "删除Material信息", description = "删除Material信息", parameters = { + @Parameter(name = "id", description = "Material主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Material.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "删除Material信息") @DeleteMapping("/material/delete/{id}") public Result deleteMaterial(@PathVariable Integer id) { @@ -144,11 +137,11 @@ public Result deleteMaterial(@PathVariable Integer id) { * @return the result */ @Operation(summary = "获取Material信息详情", description = "获取Material信息详情", parameters = { - @Parameter(name = "id", description = "appId")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Material.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "appId") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Material.class))), + @ApiResponse(responseCode = "400", description = "请求失败")}) @SystemControllerLog(description = "获取Material信息详情") @GetMapping("/material/detail/{id}") public Result detail(@PathVariable Integer id) { diff --git a/base/src/main/java/com/tinyengine/it/controller/PageController.java b/base/src/main/java/com/tinyengine/it/controller/PageController.java index 92bff43c..7f8ac710 100644 --- a/base/src/main/java/com/tinyengine/it/controller/PageController.java +++ b/base/src/main/java/com/tinyengine/it/controller/PageController.java @@ -60,6 +60,9 @@ public class PageController { @Autowired private PageService pageService; + /** + * The Page history service. + */ @Autowired private PageHistoryService pageHistoryService; @@ -70,11 +73,12 @@ public class PageController { * @return allpage */ @Operation(summary = "获取页面列表", description = "获取页面列表", parameters = { - @Parameter(name = "aid", description = "appId")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Page.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "aid", description = "appId") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Page.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取页面列表") @GetMapping("/pages/list/{aid}") public Result> getAllPage(@PathVariable Integer aid) { @@ -90,11 +94,12 @@ public Result> getAllPage(@PathVariable Integer aid) { * @throws Exception the exception */ @Operation(summary = "获取页面明细", description = "获取页面明细", parameters = { - @Parameter(name = "id", description = "page主键id")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Page.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "page主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Page.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取页面明细") @GetMapping("/pages/detail/{id}") public Result getPageById(@PathVariable Integer id) throws Exception { @@ -110,11 +115,12 @@ public Result getPageById(@PathVariable Integer id) throws Exception { * @throws Exception the exception */ @Operation(summary = "创建页面", description = "创建页面", parameters = { - @Parameter(name = "page", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Page.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "page", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Page.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "创建页面") @PostMapping("/pages/create") public Result createPage(@Valid @RequestBody Page page) throws Exception { @@ -134,13 +140,13 @@ public Result createPage(@Valid @RequestBody Page page) throws Exception { * @return result * @throws Exception the exception */ - @Operation(summary = "修改页面", description = "修改页面", - parameters = {@Parameter(name = "id", description = "页面主键id"), - @Parameter(name = "param", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Page.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Operation(summary = "修改页面", description = "修改页面", parameters = {@Parameter(name = "id", description = "页面主键id"), + @Parameter(name = "param", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Page.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "修改页面") @PostMapping("/pages/update/{id}") public Result updatePage(@RequestBody Page page) throws Exception { @@ -164,11 +170,12 @@ public Result updatePage(@RequestBody Page page) throws Exception { * @throws Exception the exception */ @Operation(summary = "删除页面", description = "删除页面", parameters = { - @Parameter(name = "id", description = "页面主键id")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Page.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "页面主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Page.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "删除页面") @GetMapping("/pages/delete/{id}") public Result deletePage(@PathVariable Integer id) throws Exception { @@ -182,10 +189,12 @@ public Result deletePage(@PathVariable Integer id) throws Exception { * @return PreviewDto result */ @Operation(summary = "查询页面预览元数据", description = "查询页面预览元数据信息并返回", parameters = { - @Parameter(name = "PreviewParam", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "PreviewParam", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "查询页面预览元数据") @GetMapping("/preview/metadata") public Result previewData(@ModelAttribute PreviewParam previewParam) { @@ -200,10 +209,12 @@ public Result previewData(@ModelAttribute PreviewParam previewParam) * @return Integer the Integer */ @Operation(summary = "页面发布", description = "页面发布", parameters = { - @Parameter(name = "PageHistory", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", schema = @Schema())), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "PageHistory", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema())), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "页面发布") @PostMapping("/pages/deploy") public Result pageDeploy(@RequestBody PageHistory pageHistory) { diff --git a/base/src/main/java/com/tinyengine/it/controller/PageHistoryController.java b/base/src/main/java/com/tinyengine/it/controller/PageHistoryController.java index 018bbed4..0a260090 100644 --- a/base/src/main/java/com/tinyengine/it/controller/PageHistoryController.java +++ b/base/src/main/java/com/tinyengine/it/controller/PageHistoryController.java @@ -68,11 +68,12 @@ public class PageHistoryController { * @return all page history */ @Operation(summary = "获取页面历史记录列表", description = "获取页面历史记录列表", parameters = { - @Parameter(name = "page", description = "page页面主键id")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PageHistory.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "page", description = "page页面主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PageHistory.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取页面历史记录列表") @GetMapping("/pages/histories") public Result> getAllPageHistory(@RequestParam Integer page) { @@ -88,11 +89,12 @@ public Result> getAllPageHistory(@RequestParam Integer page) { * @return page history */ @Operation(summary = "获取页面历史记录列表", description = "获取页面历史记录列表", parameters = { - @Parameter(name = "page", description = "page页面主键id")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PageHistory.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "page", description = "page页面主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PageHistory.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取页面历史记录列表") @PostMapping("/pages/history/published") public Result> getLatestPublishPage(@RequestBody PageQueryVo pageQueryVo) { @@ -107,11 +109,12 @@ public Result> getLatestPublishPage(@RequestBody PageQuer * @return page history by id */ @Operation(summary = "获取页面历史记录明细", description = "获取页面历史记录明细", parameters = { - @Parameter(name = "id", description = "页面历史主键id")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PageHistory.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "页面历史主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PageHistory.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取页面历史记录明细") @GetMapping("/pages/histories/detail/{historyId}") public Result getPageHistoryById(@PathVariable Integer historyId) { @@ -126,11 +129,12 @@ public Result getPageHistoryById(@PathVariable Integer historyId) { * @return result */ @Operation(summary = "创建页面历史记录", description = "创建页面历史记录", parameters = { - @Parameter(name = "pageHistory", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PageHistory.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "pageHistory", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PageHistory.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "创建页面历史记录") @PostMapping("/pages/history/create") public Result createPageHistory(@Valid @RequestBody PageHistory pageHistory) { @@ -153,11 +157,12 @@ public Result createPageHistory(@Valid @RequestBody PageHistory pag * @return result */ @Operation(summary = "删除页面历史记录", description = "删除页面历史记录", parameters = { - @Parameter(name = "id", description = "页面历史主键id")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PageHistory.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "页面历史主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PageHistory.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "删除页面历史记录") @GetMapping("/pages/histories/delete/{historyId}") public Result deletePageHistory(@PathVariable Integer historyId) { @@ -173,19 +178,19 @@ public Result deletePageHistory(@PathVariable Integer historyId) { * @param name the name * @return result */ - @Operation(summary = "根据名称查询页面历史记录", description = "根据名称查询页面历史记录", - parameters = { - @Parameter(name = "name", description = "页面名称"), - @Parameter(name = "app", description = "appId") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", + @Operation(summary = "根据名称查询页面历史记录", description = "根据名称查询页面历史记录", parameters = { + @Parameter(name = "name", description = "页面名称"), + @Parameter(name = "app", description = "appId") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PageHistory.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "根据名称查询页面历史记录") @GetMapping("/pages/histories/find") - public Result> findPageHistory(@RequestParam("name") String name, @RequestParam Integer app) { + public Result> findPageHistory(@RequestParam("name") String name, + @RequestParam Integer app) { List pageHistoryList = pageHistoryService.findPageHistoryByName(name, app); return Result.success(pageHistoryList); } diff --git a/base/src/main/java/com/tinyengine/it/controller/PageTemplateController.java b/base/src/main/java/com/tinyengine/it/controller/PageTemplateController.java index 0603e55a..78f5cae5 100644 --- a/base/src/main/java/com/tinyengine/it/controller/PageTemplateController.java +++ b/base/src/main/java/com/tinyengine/it/controller/PageTemplateController.java @@ -51,6 +51,9 @@ @RequestMapping("/material-center/api") @Tag(name = "页面模板") public class PageTemplateController { + /** + * The Page template service. + */ @Autowired private PageTemplateService pageTemplateService; @@ -61,11 +64,12 @@ public class PageTemplateController { * @return pageTemplate信息 */ @Operation(summary = "创建页面模版", description = "创建页面模版", parameters = { - @Parameter(name = "pageTemplate", description = "页面模版参数对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PageTemplate.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "pageTemplate", description = "页面模版参数对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PageTemplate.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "创建页面模版") @PostMapping("/page-template/create") public Result createPageTemplate(@Valid @RequestBody PageTemplate pageTemplate) { @@ -79,11 +83,12 @@ public Result createPageTemplate(@Valid @RequestBody PageTemplate * @return pageTemplate信息 */ @Operation(summary = "批量删除页面模版", description = "批量删除页面模版", parameters = { - @Parameter(name = "id", description = "页面模版多个主键ids")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PageTemplate.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "页面模版多个主键ids") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PageTemplate.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "批量删除页面模版") @PostMapping("/template-basic/bulk/delete") public Result deletePageTemplate(@RequestBody List id) { @@ -97,11 +102,12 @@ public Result deletePageTemplate(@RequestBody List id) { * @return PageTemplate */ @Operation(summary = "获取页面模版信息详情", description = "获取页面模版信息详情", parameters = { - @Parameter(name = "id", description = "页面模板主键id")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PageTemplate.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "页面模板主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PageTemplate.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取页面模版信息详情") @GetMapping("/template-basic/detail/{id}") public Result detail(@PathVariable Integer id) { @@ -115,19 +121,18 @@ public Result detail(@PathVariable Integer id) { * @param type name * @return PageTemplate */ - @Operation(summary = "获取页面模版信息列表", description = "获取页面模版信息列表", - parameters = { - @Parameter(name = "name", description = "模版名称"), - @Parameter(name = "type", description = "模版类型") - }, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PageTemplate.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Operation(summary = "获取页面模版信息列表", description = "获取页面模版信息列表", parameters = { + @Parameter(name = "name", description = "模版名称"), + @Parameter(name = "type", description = "模版类型") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PageTemplate.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取页面模版信息列表") @GetMapping("/template-basic/list") public Result> findAllPageTemplate(@RequestParam(required = false) String name, - @RequestParam String type) { + @RequestParam String type) { return pageTemplateService.queryAllPageTemplate(name, type); } } diff --git a/base/src/main/java/com/tinyengine/it/controller/PlatformController.java b/base/src/main/java/com/tinyengine/it/controller/PlatformController.java index 4fe4dd6d..a20b7107 100644 --- a/base/src/main/java/com/tinyengine/it/controller/PlatformController.java +++ b/base/src/main/java/com/tinyengine/it/controller/PlatformController.java @@ -32,9 +32,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.validation.Valid; import java.util.List; +import javax.validation.Valid; + + /** * 设计器api * @@ -56,13 +58,11 @@ public class PlatformController { * * @return Platform信息 all app */ - @Operation(summary = "查询表Platform信息", - description = "查询表Platform信息", - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Platform.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Operation(summary = "查询表Platform信息", description = "查询表Platform信息", responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Platform.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "查询表Platform信息") @GetMapping("/platform/list") public Result> getAllPlatform() { @@ -76,17 +76,13 @@ public Result> getAllPlatform() { * @param id the id * @return Platform信息 app by id */ - @Operation(summary = "根据id查询表Platform信息", - description = "根据id查询表Platform信息", - parameters = { - @Parameter(name = "id", description = "Platform主键id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Platform.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "根据id查询表Platform信息", description = "根据id查询表Platform信息", parameters = { + @Parameter(name = "id", description = "Platform主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Platform.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "根据id查询表Platform信息") @GetMapping("/platform/{id}") public Result getPlatformById(@PathVariable Integer id) { @@ -100,17 +96,13 @@ public Result getPlatformById(@PathVariable Integer id) { * @param platform the platform * @return Platform信息 result */ - @Operation(summary = "创建platform", - description = "创建platform", - parameters = { - @Parameter(name = "platform", description = "Platform入参对象") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Platform.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "创建platform", description = "创建platform", parameters = { + @Parameter(name = "platform", description = "Platform入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Platform.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "创建platform") @PostMapping("/platform/create") public Result createPlatform(@Valid @RequestBody Platform platform) { @@ -125,12 +117,13 @@ public Result createPlatform(@Valid @RequestBody Platform platform) { * @return Platform信息 result */ @Operation(summary = "修改单个Platform信息", description = "修改单个Platform信息", parameters = { - @Parameter(name = "id", description = "appId"), - @Parameter(name = "Platform", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Platform.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "appId"), + @Parameter(name = "Platform", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Platform.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "修改单个Platform信息") @PostMapping("/platform/update/{id}") public Result updatePlatform(@PathVariable Integer id, @RequestBody Platform platform) { @@ -144,34 +137,33 @@ public Result updatePlatform(@PathVariable Integer id, @RequestBody Pl * @param id the id * @return platform信息 result */ - @Operation(summary = "删除platform信息,与js同路由", - description = "删除platform信息,与js同路由", - parameters = { - @Parameter(name = "id", description = "Platform主键id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Platform.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "删除platform信息,与js同路由", description = "删除platform信息,与js同路由", parameters = { + @Parameter(name = "id", description = "Platform主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", + schema = @Schema(implementation = Platform.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "删除platform信息,与js同路由") @GetMapping("/platform/delete/{id}") public Result delete(@PathVariable Integer id) { return platformService.deletePlatformById(id); } - @Operation(summary = "删除platform信息", - description = "删除platform信息", - parameters = { - @Parameter(name = "id", description = "Platform主键id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = Platform.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + /** + * 删除Platform信息 + * + * @param id the id + * @return platform信息 result + */ + @Operation(summary = "删除platform信息", description = "删除platform信息", parameters = { + @Parameter(name = "id", description = "Platform主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = Platform.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "删除platform信息") @DeleteMapping("/platform/delete/{id}") public Result deletePlatform(@PathVariable Integer id) { diff --git a/base/src/main/java/com/tinyengine/it/controller/PlatformHistoryController.java b/base/src/main/java/com/tinyengine/it/controller/PlatformHistoryController.java index 96808480..f076b1c6 100644 --- a/base/src/main/java/com/tinyengine/it/controller/PlatformHistoryController.java +++ b/base/src/main/java/com/tinyengine/it/controller/PlatformHistoryController.java @@ -33,9 +33,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import javax.validation.Valid; import java.util.List; +import javax.validation.Valid; + /** * 设计器api * @@ -45,9 +46,10 @@ @RestController @RequestMapping("/platform-center/api") @Tag(name = "设计器历史") -public class PlatformHistoryController { +public class +PlatformHistoryController { /** - * The PlatformHistory service. + * The Platform history service. */ @Autowired private PlatformHistoryService platformHistoryService; @@ -57,13 +59,11 @@ public class PlatformHistoryController { * * @return PlatformHistory信息 all app */ - @Operation(summary = "查询表PlatformHistory信息", - description = "查询表PlatformHistory信息", - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PlatformHistory.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Operation(summary = "查询表PlatformHistory信息", description = "查询表PlatformHistory信息", responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PlatformHistory.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "查询表PlatformHistory信息") @GetMapping("/platform-history/list") public Result> getAllPlatformHistory() { @@ -77,17 +77,13 @@ public Result> getAllPlatformHistory() { * @param id the id * @return PlatformHistory信息 app by id */ - @Operation(summary = "根据id查询表PlatformHistory信息", - description = "根据id查询表PlatformHistory信息", - parameters = { - @Parameter(name = "id", description = "PlatformHistory主键id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PlatformHistory.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "根据id查询表PlatformHistory信息", description = "根据id查询表PlatformHistory信息", parameters = { + @Parameter(name = "id", description = "PlatformHistory主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PlatformHistory.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "根据id查询表PlatformHistory信息") @GetMapping("/platform-history/{id}") public Result getPlatformHistoryById(@PathVariable Integer id) { @@ -101,17 +97,13 @@ public Result getPlatformHistoryById(@PathVariable Integer id) * @param platformHistory the platformHistory * @return PlatformHistory信息 result */ - @Operation(summary = "创建platformHistory", - description = "创建platformHistory", - parameters = { - @Parameter(name = "platformHistory", description = "PlatformHistory入参对象") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PlatformHistory.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "创建platformHistory", description = "创建platformHistory", parameters = { + @Parameter(name = "platformHistory", description = "PlatformHistory入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PlatformHistory.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "创建platformHistory") @PostMapping("/platform-history/create") public Result createPlatformHistory(@Valid @RequestBody PlatformHistory platformHistory) { @@ -126,15 +118,17 @@ public Result createPlatformHistory(@Valid @RequestBody Platfor * @return PlatformHistory信息 result */ @Operation(summary = "修改单个PlatformHistory信息", description = "修改单个PlatformHistory信息", parameters = { - @Parameter(name = "id", description = "appId"), - @Parameter(name = "PlatformHistory", description = "入参对象")}, responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PlatformHistory.class))), - @ApiResponse(responseCode = "400", description = "请求失败")}) + @Parameter(name = "id", description = "appId"), + @Parameter(name = "PlatformHistory", description = "入参对象") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PlatformHistory.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "修改单个PlatformHistory信息") @PutMapping("/platform-history/update/{id}") - public Result updatePlatformHistory(@PathVariable Integer id, @RequestBody PlatformHistory platformHistory) { + public Result updatePlatformHistory(@PathVariable Integer id, + @RequestBody PlatformHistory platformHistory) { platformHistory.setId(id); return platformHistoryService.updatePlatformHistoryById(platformHistory); } @@ -145,17 +139,13 @@ public Result updatePlatformHistory(@PathVariable Integer id, @ * @param id the id * @return platformHistory信息 result */ - @Operation(summary = "删除platformHistory信息", - description = "删除platformHistory信息", - parameters = { - @Parameter(name = "id", description = "PlatformHistory主键id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = PlatformHistory.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "删除platformHistory信息", description = "删除platformHistory信息", parameters = { + @Parameter(name = "id", description = "PlatformHistory主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = PlatformHistory.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "删除platformHistory信息") @DeleteMapping("/platform-history/delete/{id}") public Result deletePlatformHistory(@PathVariable Integer id) { diff --git a/base/src/main/java/com/tinyengine/it/controller/TaskRecordController.java b/base/src/main/java/com/tinyengine/it/controller/TaskRecordController.java index 9d5497c6..4100b9ac 100644 --- a/base/src/main/java/com/tinyengine/it/controller/TaskRecordController.java +++ b/base/src/main/java/com/tinyengine/it/controller/TaskRecordController.java @@ -44,6 +44,9 @@ @RequestMapping("/app-center/api") @Tag(name = "任务") public class TaskRecordController { + /** + * The Task record service. + */ @Autowired private TaskRecordService taskRecordService; @@ -53,17 +56,13 @@ public class TaskRecordController { * @param id id * @return task信息 */ - @Operation(summary = "根据id查询task信息", - description = "根据id查询task信息", - parameters = { - @Parameter(name = "id", description = "task任务主键id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = TaskRecord.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "根据id查询task信息", description = "根据id查询task信息", parameters = { + @Parameter(name = "id", description = "task任务主键id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = TaskRecord.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "根据id查询task信息") @GetMapping("/tasks/status/{id}") public Result getTaskRecordById(@PathVariable Integer id) { diff --git a/base/src/main/java/com/tinyengine/it/controller/TaskRecordMaterialController.java b/base/src/main/java/com/tinyengine/it/controller/TaskRecordMaterialController.java index 5df84e8b..edde45bf 100644 --- a/base/src/main/java/com/tinyengine/it/controller/TaskRecordMaterialController.java +++ b/base/src/main/java/com/tinyengine/it/controller/TaskRecordMaterialController.java @@ -49,6 +49,9 @@ @RequestMapping("/material-center/api") @Tag(name = "任务") public class TaskRecordMaterialController { + /** + * The Task record service. + */ @Autowired private TaskRecordService taskRecordService; @@ -58,17 +61,13 @@ public class TaskRecordMaterialController { * @param id id * @return task信息 */ - @Operation(summary = "根据id查询task信息", - description = "根据id查询task信息", - parameters = { - @Parameter(name = "id", description = "任务id") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = TaskRecord.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "根据id查询task信息", description = "根据id查询task信息", parameters = { + @Parameter(name = "id", description = "任务id") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = TaskRecord.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "根据id查询task信息api") @GetMapping("/tasks/{id}") public Result getTaskRecordById(@PathVariable Integer id) { @@ -83,21 +82,18 @@ public Result getTaskRecordById(@PathVariable Integer id) { * @param uniqueIds the unique ids * @return the result */ - @Operation(summary = "获取任务状态", - description = "获取任务状态", - parameters = { - @Parameter(name = "taskTypeId", description = "任务类型id"), - @Parameter(name = "uniqueIds", description = "uniqueIds") - }, - responses = { - @ApiResponse(responseCode = "200", description = "返回信息", - content = @Content(mediaType = "application/json", - schema = @Schema(implementation = TaskRecord.class))), - @ApiResponse(responseCode = "400", description = "请求失败")} - ) + @Operation(summary = "获取任务状态", description = "获取任务状态", parameters = { + @Parameter(name = "taskTypeId", description = "任务类型id"), + @Parameter(name = "uniqueIds", description = "uniqueIds") + }, responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = TaskRecord.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) @SystemControllerLog(description = "获取任务状态api") @GetMapping("/tasks/status") - public Result> getTasksStatus(@RequestParam String taskTypeId, @RequestParam String uniqueIds) { + public Result> getTasksStatus(@RequestParam String taskTypeId, + @RequestParam String uniqueIds) { // 使用 queries 上下文支持批量查询。若未指定 taskTypeId,则默认查询物料打包任务状态 int taskTpyeIdTemp = Integer.parseInt(taskTypeId); if (taskTpyeIdTemp == 0) { diff --git a/base/src/main/java/com/tinyengine/it/controller/UserController.java b/base/src/main/java/com/tinyengine/it/controller/UserController.java index 9da9b8db..4a312201 100644 --- a/base/src/main/java/com/tinyengine/it/controller/UserController.java +++ b/base/src/main/java/com/tinyengine/it/controller/UserController.java @@ -14,9 +14,14 @@ import com.tinyengine.it.common.base.Result; import com.tinyengine.it.common.context.LoginUserContext; +import com.tinyengine.it.common.log.SystemControllerLog; import com.tinyengine.it.model.entity.User; import com.tinyengine.it.service.app.UserService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.beans.factory.annotation.Autowired; @@ -54,9 +59,21 @@ public class UserController { * * @return the result */ + @Operation(summary = "获取用户信息", description = "获取用户信息", responses = { + @ApiResponse(responseCode = "200", description = "返回信息", + content = @Content(mediaType = "application/json", schema = @Schema(implementation = User.class))), + @ApiResponse(responseCode = "400", description = "请求失败") + }) + @SystemControllerLog(description = "获取用户信息") @GetMapping("/user/me") public Result me() { - User user = userService.queryUserById(Integer.parseInt(loginUserContext.getLoginUserId())); + String loginUserId = loginUserContext.getLoginUserId(); + User user = userService.queryUserById(loginUserId); + if (user == null) { + user = new User(); + user.setId(loginUserContext.getLoginUserId()); + user.setUsername(loginUserContext.getLoginUserId()); + } return Result.success(user); } } diff --git a/base/src/main/java/com/tinyengine/it/event/PageDeleteEvent.java b/base/src/main/java/com/tinyengine/it/event/PageDeleteEvent.java new file mode 100644 index 00000000..505bbe00 --- /dev/null +++ b/base/src/main/java/com/tinyengine/it/event/PageDeleteEvent.java @@ -0,0 +1,27 @@ +/** + * Copyright (c) 2023 - present TinyEngine Authors. + * Copyright (c) 2023 - present Huawei Cloud Computing Technologies Co., Ltd. + * + * Use of this source code is governed by an MIT-style license. + * + * THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, + * BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR + * A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS. + * + */ + +package com.tinyengine.it.event; + +import com.tinyengine.it.model.entity.Page; +import org.springframework.context.ApplicationEvent; + +/** + * The Page delete event. + * + * @since 2025-05-20 + */ +public class PageDeleteEvent extends ApplicationEvent { + public PageDeleteEvent(Page page) { + super(page); + } +} diff --git a/base/src/main/java/com/tinyengine/it/gateway/ai/AiChatClient.java b/base/src/main/java/com/tinyengine/it/gateway/ai/AiChatClient.java index 017583ce..0433f3b2 100644 --- a/base/src/main/java/com/tinyengine/it/gateway/ai/AiChatClient.java +++ b/base/src/main/java/com/tinyengine/it/gateway/ai/AiChatClient.java @@ -42,6 +42,8 @@ public class AiChatClient { /** * Instantiates a new Ai chat client. + * @param model + * @param token */ public AiChatClient(String model, String token) { this.config = AiChatConfig.getAiChatConfig(model, token); diff --git a/base/src/main/java/com/tinyengine/it/mapper/BlockMapper.java b/base/src/main/java/com/tinyengine/it/mapper/BlockMapper.java index debca3cd..3ce63173 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/BlockMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/BlockMapper.java @@ -154,21 +154,13 @@ public interface BlockMapper extends BaseMapper { @Result(column = "occupier_by", property = "occupier", one = @One(select = "com.tinyengine.it.mapper.UserMapper.queryUserById")) }) - @Select("") + @Select("") List findBlocksReturn(@Param("notGroupDto") NotGroupDto notGroupDto); /** diff --git a/base/src/main/java/com/tinyengine/it/mapper/PlatformHistoryMapper.java b/base/src/main/java/com/tinyengine/it/mapper/PlatformHistoryMapper.java index 837d95e7..9ae83d0f 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/PlatformHistoryMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/PlatformHistoryMapper.java @@ -13,7 +13,6 @@ package com.tinyengine.it.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.tinyengine.it.model.entity.Platform; import com.tinyengine.it.model.entity.PlatformHistory; import org.apache.ibatis.annotations.Param; diff --git a/base/src/main/java/com/tinyengine/it/mapper/UserMapper.java b/base/src/main/java/com/tinyengine/it/mapper/UserMapper.java index 57103f3b..086715fd 100644 --- a/base/src/main/java/com/tinyengine/it/mapper/UserMapper.java +++ b/base/src/main/java/com/tinyengine/it/mapper/UserMapper.java @@ -38,7 +38,7 @@ public interface UserMapper extends BaseMapper { * @param id the id * @return the user */ - User queryUserById(@Param("id") Integer id); + User queryUserById(@Param("id") String id); /** * 根据条件查询表t_user数据 @@ -54,7 +54,7 @@ public interface UserMapper extends BaseMapper { * @param id the id * @return the integer */ - Integer deleteUserById(@Param("id") Integer id); + Integer deleteUserById(@Param("id") String id); /** * 根据主键id更新表t_user数据 diff --git a/base/src/main/java/com/tinyengine/it/model/dto/BlockParam.java b/base/src/main/java/com/tinyengine/it/model/dto/BlockParam.java index 93b4f168..2e280744 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/BlockParam.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/BlockParam.java @@ -20,6 +20,7 @@ import com.tinyengine.it.common.handler.MapTypeHandler; import com.tinyengine.it.model.entity.BlockHistory; import com.tinyengine.it.model.entity.User; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; diff --git a/base/src/main/java/com/tinyengine/it/model/dto/BundleResultDto.java b/base/src/main/java/com/tinyengine/it/model/dto/BundleResultDto.java index d5237fad..30ba98da 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/BundleResultDto.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/BundleResultDto.java @@ -14,6 +14,7 @@ import com.tinyengine.it.model.entity.Component; import com.tinyengine.it.model.entity.ComponentLibrary; + import lombok.Data; import java.util.List; diff --git a/base/src/main/java/com/tinyengine/it/model/dto/CustComponentDto.java b/base/src/main/java/com/tinyengine/it/model/dto/CustComponentDto.java index dccc870e..9894a55a 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/CustComponentDto.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/CustComponentDto.java @@ -13,6 +13,7 @@ package com.tinyengine.it.model.dto; import com.tinyengine.it.model.entity.Component; + import lombok.Data; import java.util.List; diff --git a/base/src/main/java/com/tinyengine/it/model/dto/PackagesDto.java b/base/src/main/java/com/tinyengine/it/model/dto/PackagesDto.java index 0f8b6fec..79d35ca1 100644 --- a/base/src/main/java/com/tinyengine/it/model/dto/PackagesDto.java +++ b/base/src/main/java/com/tinyengine/it/model/dto/PackagesDto.java @@ -13,6 +13,7 @@ package com.tinyengine.it.model.dto; import com.fasterxml.jackson.annotation.JsonProperty; + import lombok.Getter; import lombok.Setter; diff --git a/base/src/main/java/com/tinyengine/it/model/entity/BlockGroupBlock.java b/base/src/main/java/com/tinyengine/it/model/entity/BlockGroupBlock.java index b33e0d19..aee74387 100644 --- a/base/src/main/java/com/tinyengine/it/model/entity/BlockGroupBlock.java +++ b/base/src/main/java/com/tinyengine/it/model/entity/BlockGroupBlock.java @@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; diff --git a/base/src/main/java/com/tinyengine/it/model/entity/PlatformHistory.java b/base/src/main/java/com/tinyengine/it/model/entity/PlatformHistory.java index 1bfeab23..888fb5f0 100644 --- a/base/src/main/java/com/tinyengine/it/model/entity/PlatformHistory.java +++ b/base/src/main/java/com/tinyengine/it/model/entity/PlatformHistory.java @@ -14,12 +14,12 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.tinyengine.it.common.base.BaseEntity; + import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; /** - * * 设计器历史表 * * @since 2025-05-09 diff --git a/base/src/main/java/com/tinyengine/it/model/entity/User.java b/base/src/main/java/com/tinyengine/it/model/entity/User.java index 7c26cade..1c664c14 100644 --- a/base/src/main/java/com/tinyengine/it/model/entity/User.java +++ b/base/src/main/java/com/tinyengine/it/model/entity/User.java @@ -12,14 +12,21 @@ package com.tinyengine.it.model.entity; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; import com.tinyengine.it.common.base.BaseEntity; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; +import java.time.LocalDateTime; + /** *

* 用户权限表 @@ -32,7 +39,42 @@ @Setter @TableName("t_user") @Schema(name = "User", description = "用户权限表") -public class User extends BaseEntity { +public class User { + @Schema(name = "id", description = "主键id") + @TableId(value = "id", type = IdType.AUTO) + private String id; + + @TableField(fill = FieldFill.INSERT) + @Schema(name = "createdBy", description = "创建人") + private String createdBy; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(name = "lastUpdatedBy", description = "最后修改人") + private String lastUpdatedBy; + + @TableField(fill = FieldFill.INSERT) + @Schema(name = "createdTime", description = "创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonProperty("created_at") + private LocalDateTime createdTime; + + @TableField(fill = FieldFill.INSERT_UPDATE) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(name = "lastUpdatedTime", description = "更新时间") + @JsonProperty("updated_at") + private LocalDateTime lastUpdatedTime; + + @TableField(fill = FieldFill.INSERT) + @Schema(name = "tenantId", description = "租户ID") + private String tenantId; + + @TableField(fill = FieldFill.INSERT) + @Schema(name = "renterId", description = "业务租户ID") + private String renterId; + + @Schema(name = "siteId", description = "站点ID") + private String siteId; + @Schema(name = "username", description = "用户名") private String username; diff --git a/base/src/main/java/com/tinyengine/it/service/app/UserService.java b/base/src/main/java/com/tinyengine/it/service/app/UserService.java index 7f0df33e..e812d159 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/UserService.java +++ b/base/src/main/java/com/tinyengine/it/service/app/UserService.java @@ -37,7 +37,7 @@ public interface UserService { * @param id the id * @return the user */ - User queryUserById(@Param("id") Integer id); + User queryUserById(@Param("id") String id); /** * 根据条件查询表t_user信息 @@ -53,7 +53,7 @@ public interface UserService { * @param id the id * @return the integer */ - Integer deleteUserById(@Param("id") Integer id); + Integer deleteUserById(@Param("id") String id); /** * 根据主键id更新表t_user信息 diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/AiChatServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/AiChatServiceImpl.java index dfbf3664..804257ca 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/AiChatServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/AiChatServiceImpl.java @@ -75,29 +75,11 @@ public static int[] getStartAndEnd(String str) { @SystemServiceLog(description = "getAnswerFromAi 获取ai回答") @Override public Result> getAnswerFromAi(AiParam aiParam) { - String token = aiParam.getFoundationModel().get("token"); - if (token == null || token.isEmpty()) { - return Result.failed("The token cannot be empty"); - } - if (!Pattern.matches("^[A-Za-z0-9_.-]+$", token)) { - return Result.failed("Invalid token format"); + Result> resultData = checkParam(aiParam); + if (resultData.getData() == null) { + return resultData; } - if (aiParam.getMessages().isEmpty()) { - return Result.failed("Not passing the correct message parameter"); - } - Map foundationModel = aiParam.getFoundationModel(); - String model = aiParam.getFoundationModel().get("model"); - if (aiParam.getFoundationModel().get("model").isEmpty()) { - model = Enums.FoundationModel.GPT_35_TURBO.getValue(); - } - foundationModel.put("model", model); - aiParam.setFoundationModel(foundationModel); - Result> resultData = requestAnswerFromAi(aiParam.getMessages(), aiParam.getFoundationModel()); - // 调用接口失败时且data为null - if (!resultData.isSuccess() && resultData.getData() == null) { - return Result.failed(resultData.getCode(), resultData.getMessage()); - } Map data = resultData.getData(); if (data.isEmpty()) { return Result.failed("调用AI大模型接口未返回正确数据"); @@ -134,7 +116,7 @@ public Result> getAnswerFromAi(AiParam aiParam) { try { data = requestAnswerFromAi(aiParam.getMessages(), aiParam.getFoundationModel()).getData(); } catch (Exception e) { - throw new ServiceException(ExceptionEnum.CM001.getResultCode(), ExceptionEnum.CM001.getResultMsg()); + throw new ServiceException(ExceptionEnum.CM001.getResultCode(), e.getMessage()); } choices = (List>) data.get("choices"); message = (Map) choices.get(0).get("message"); @@ -145,12 +127,41 @@ public Result> getAnswerFromAi(AiParam aiParam) { isFinish = (String) finishReason; } } - - - String replyWithoutCode = removeCode(answerContent); // 通过二方包将页面转成schema String codes = extractCode(answerContent); + Map result = buildResult(answerContent, message); + return Result.success(result); + } + + private Result> checkParam(AiParam aiParam) { + String token = aiParam.getFoundationModel().get("token"); + if (token == null || token.isEmpty()) { + return Result.failed("The token cannot be empty"); + } + if (!Pattern.matches("^[A-Za-z0-9_.-]+$", token)) { + return Result.failed("Invalid token format"); + } + + if (aiParam.getMessages().isEmpty()) { + return Result.failed("Not passing the correct message parameter"); + } + Map foundationModel = aiParam.getFoundationModel(); + String model = aiParam.getFoundationModel().get("model"); + if (aiParam.getFoundationModel().get("model").isEmpty()) { + model = Enums.FoundationModel.GPT_35_TURBO.getValue(); + } + foundationModel.put("model", model); + aiParam.setFoundationModel(foundationModel); + Result> resultData = requestAnswerFromAi(aiParam.getMessages(), aiParam.getFoundationModel()); + // 调用接口失败时且data为null + if (!resultData.isSuccess() && resultData.getData() == null) { + return Result.failed(resultData.getCode(), resultData.getMessage()); + } + return resultData; + } + private Map buildResult(String answerContent, Map message) { + String replyWithoutCode = removeCode(answerContent); Map schema = new HashMap<>(); Map result = new HashMap<>(); AiMessages aiMessagesresult = new AiMessages(); @@ -160,11 +171,11 @@ public Result> getAnswerFromAi(AiParam aiParam) { result.put("originalResponse", aiMessagesresult); result.put("replyWithoutCode", replyWithoutCode); result.put("schema", schema); - - return Result.success(result); + return result; } - private Result> requestAnswerFromAi(List messages, Map foundationModel) { + private Result> requestAnswerFromAi(List messages, + Map foundationModel) { List aiMessages = formatMessage(messages); AiParam aiParam = new AiParam(foundationModel, aiMessages); @@ -196,7 +207,6 @@ private Result> requestAnswerFromAi(List message * @return result 返回结果 */ private Result> modelResultConvet(Map response) { - // 构建返回的 Map 结构 Map resData = new HashMap<>(response); // Copy original data @@ -214,7 +224,6 @@ private Result> modelResultConvet(Map respon resData.put("choices", choices); return Result.success(resData); - } /** @@ -256,17 +265,12 @@ public String removeCode(String content) { private List formatMessage(List messages) { AiMessages defaultWords = new AiMessages(); defaultWords.setRole("user"); - defaultWords.setContent("你是一名前端开发专家,编码时遵从以下几条要求:\n" - + "###\n" - + "1. 只使用 element-ui组件库的el-button 和 el-table组件\n" + defaultWords.setContent( + "你是一名前端开发专家,编码时遵从以下几条要求:\n" + "###\n" + "1. 只使用 element-ui组件库的el-button 和 el-table组件\n" + "2. el-table表格组件的使用方式为 " + "columns的columnData表示列数据,其中用title表示列名,field表示表格数据字段; data的tableData表示表格展示的数据。 " - + "el-table标签内不得出现子元素\n" - + "3. 使用vue2技术栈\n" - + "4. 回复中只能有一个代码块\n" - + "5. 不要加任何注释\n" - + "6. el-table标签内不得出现el-table-column\n" - + "###"); + + "el-table标签内不得出现子元素\n" + "3. 使用vue2技术栈\n" + "4. 回复中只能有一个代码块\n" + + "5. 不要加任何注释\n" + "6. el-table标签内不得出现el-table-column\n" + "###"); defaultWords.setName(messages.get(0).getName()); String role = messages.get(0).getRole(); String content = messages.get(0).getContent(); diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/CanvasServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/CanvasServiceImpl.java index 344891db..143e7d72 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/CanvasServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/CanvasServiceImpl.java @@ -44,9 +44,13 @@ public class CanvasServiceImpl implements CanvasService { @Override public Result lockCanvas(Integer id, String state, String type) { - int occupier; + String occupier; // needTODO 先试用mock数据,后续添加登录及权限后从session获取, - User user = userMapper.queryUserById(Integer.parseInt(loginUserContext.getLoginUserId())); + User user = userMapper.queryUserById(loginUserContext.getLoginUserId()); + if(user == null) { + user = new User(); + user.setId(loginUserContext.getLoginUserId()); + } CanvasDto canvasDto = new CanvasDto(); if ("page".equals(type)) { Page page = pageMapper.queryPageById(id); @@ -55,7 +59,7 @@ public Result lockCanvas(Integer id, String state, String type) { if (isCaDoIt) { Page updatePage = new Page(); updatePage.setId(id); - updatePage.setOccupierBy(String.valueOf(user.getId())); + updatePage.setOccupierBy(user.getId()); pageMapper.updatePageById(updatePage); canvasDto.setOperate("success"); canvasDto.setOccupier(user); @@ -63,12 +67,12 @@ public Result lockCanvas(Integer id, String state, String type) { } } else { Block block = blockMapper.queryBlockById(id); - occupier = Integer.parseInt(block.getOccupierBy()); + occupier = block.getOccupierBy(); Boolean isCaDoIt = isCanDoIt(occupier, user); if (isCaDoIt) { Block updateBlock = new Block(); updateBlock.setId(id); - updateBlock.setOccupierBy(String.valueOf(user.getId())); + updateBlock.setOccupierBy(user.getId()); blockMapper.updateBlockById(updateBlock); canvasDto.setOperate("success"); canvasDto.setOccupier(user); @@ -80,7 +84,7 @@ public Result lockCanvas(Integer id, String state, String type) { return Result.success(canvasDto); } - private Boolean isCanDoIt(int occupier, User user) { - return occupier == user.getId(); + private Boolean isCanDoIt(String occupier, User user) { + return occupier == null || occupier.equals(user.getId()); } } diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/I18nEntryServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/I18nEntryServiceImpl.java index 0c15e806..3e5cbfc3 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/I18nEntryServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/I18nEntryServiceImpl.java @@ -66,8 +66,10 @@ @Slf4j public class I18nEntryServiceImpl implements I18nEntryService { private static final Logger logger = LoggerFactory.getLogger(I18nEntryServiceImpl.class); + @Autowired private I18nEntryMapper i18nEntryMapper; + @Autowired private I18nLangMapper i18nLangMapper; @@ -92,8 +94,8 @@ public I18nEntryListResult findAllI18nEntry() { // 格式化词条列表 SchemaI18n messages = formatEntriesList(i18nEntriesList); List i18nLangsListTemp = i18nLangsList.stream() - .map(i18nLang -> new I18nLang(i18nLang.getLang(), i18nLang.getLabel())) - .collect(Collectors.toList()); + .map(i18nLang -> new I18nLang(i18nLang.getLang(), i18nLang.getLabel())) + .collect(Collectors.toList()); i18nEntriesListResult.setI18nLangsList(i18nLangsListTemp); i18nEntriesListResult.setMessages(messages); @@ -168,8 +170,7 @@ public List fillParam(OperateI18nEntries operateI18nEntries, Map contents = operateI18nEntries.getContents(); - contents.keySet().forEach(item -> - { + contents.keySet().forEach(item -> { int lang = langsDic.get(item); if (lang != 0) { I18nEntry i18nEntries = new I18nEntry(); @@ -180,7 +181,7 @@ public List fillParam(OperateI18nEntries operateI18nEntries, Map getEntriesParam(OperateI18nBatchEntries operateI18NEntrie * 格式化词条参数 * * @param operateI18nBatchEntries the operate i 18 n batch entries - * @param i18nLangsList the 18 n langs list + * @param i18nLangsList the 18 n langs list * @return list */ @SystemServiceLog(description = "formatEntriesParam 格式化词条参数") public List formatEntriesParam(OperateI18nBatchEntries operateI18nBatchEntries, - List i18nLangsList) { + List i18nLangsList) { Map langsDic = new HashMap<>(); List i18nEntriesListResult = new ArrayList<>(); for (I18nLang i18nLangs : i18nLangsList) { @@ -283,8 +284,8 @@ public List bulkUpdateEntries(OperateI18nEntries operateI18nEntries) List i18nEntriesList = fillParam(operateI18nEntries, langsDic); // bulkCreateEntries for (I18nEntry i18Entries : i18nEntriesList) { - i18nEntryMapper.updateByEntry(i18Entries.getContent(), i18Entries.getHost(), - i18Entries.getHostType(), i18Entries.getKey(), i18Entries.getLang()); + i18nEntryMapper.updateByEntry(i18Entries.getContent(), i18Entries.getHost(), i18Entries.getHostType(), + i18Entries.getKey(), i18Entries.getLang()); } return i18nEntriesList; } @@ -321,8 +322,7 @@ public List deleteI18nEntriesByHostAndHostTypeAndKey(DeleteI18nEnt */ @SystemServiceLog(description = "readSingleFileAndBulkCreate 上传单个国际化文件") @Override - public Result readSingleFileAndBulkCreate(MultipartFile file, int host) - throws Exception { + public Result readSingleFileAndBulkCreate(MultipartFile file, int host) throws Exception { List entriesArr = new ArrayList<>(); String contentType = file.getContentType(); @@ -385,11 +385,9 @@ public Result readFilesAndbulkCreate(String lang, MultipartFile file @SystemServiceLog(description = "bulkCreateOrUpdate 批量创建或修改") public Result bulkCreateOrUpdate(List entriesArr, int host) { List entries = new ArrayList<>(); - entriesArr.forEach(entriesItem -> - { + entriesArr.forEach(entriesItem -> { Map langEntries = entriesItem.getEntries(); - langEntries.forEach((key, value) -> - { + langEntries.forEach((key, value) -> { I18nEntry i18nEntry = new I18nEntry(); i18nEntry.setKey(key); i18nEntry.setLang(entriesItem.getLang()); @@ -397,14 +395,13 @@ public Result bulkCreateOrUpdate(List entriesArr, int h i18nEntry.setHostType("app"); i18nEntry.setContent(value.toString()); entries.add(i18nEntry); - }); }); + }); // 超大量数据更新,如上传国际化文件,不返回插入或更新的词条 FileResult result = bulkInsertOrUpdate(entries); return Result.success(result); } - /** * 超大量数据更新,如上传国际化文件,不返回插入或更新的词条 * @@ -447,7 +444,7 @@ public FileResult bulkInsertOrUpdate(List entries) { public List parseZipFileStream(MultipartFile file) throws Exception { // 校验文件流合法性 Utils.validateFileStream(file, ExceptionEnum.CM314.getResultCode(), - Arrays.asList(Enums.MimeType.ZIP.getValue(), Enums.MimeType.XZIP.getValue())); + Arrays.asList(Enums.MimeType.ZIP.getValue(), Enums.MimeType.XZIP.getValue())); List entriesItems = new ArrayList<>(); // 解压ZIP文件并处理 List fileInfos = Utils.unzip(file); @@ -471,9 +468,8 @@ public List parseZip(FileInfo fileInfo) throws ServiceException { EntriesItem entriesItem = setLang(fileInfo.getName()); // 处理 JSON 内容 try { - Map jsonData = - objectMapper.readValue(fileInfo.getContent(), new TypeReference>() { - }); + Map jsonData = objectMapper.readValue(fileInfo.getContent(), + new TypeReference>() {}); entriesItem.setEntries(Utils.flat(jsonData)); } catch (JsonProcessingException e) { log.error("JSON processing error for file: " + fileInfo.getName(), e); diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/PageHistoryServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/PageHistoryServiceImpl.java index 62736861..a8dcc883 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/PageHistoryServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/PageHistoryServiceImpl.java @@ -109,7 +109,7 @@ public Integer createPageHistory(PageHistory pageHistory) { /** * 新增表t_page_history数据 * - * @param app the app + * @param app the app * @param name the page name * @return the List */ diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/PageServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/PageServiceImpl.java index 86516212..39533e97 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/PageServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/PageServiceImpl.java @@ -20,6 +20,7 @@ import com.tinyengine.it.common.exception.ExceptionEnum; import com.tinyengine.it.common.exception.ServiceException; import com.tinyengine.it.common.log.SystemServiceLog; +import com.tinyengine.it.event.PageDeleteEvent; import com.tinyengine.it.mapper.AppExtensionMapper; import com.tinyengine.it.mapper.AppMapper; import com.tinyengine.it.mapper.BlockMapper; @@ -52,6 +53,8 @@ import org.apache.ibatis.annotations.Param; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEvent; +import org.springframework.context.ApplicationEventPublisher; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -112,7 +115,6 @@ public class PageServiceImpl implements PageService { @Autowired private AppV1ServiceImpl appV1ServiceImpl; - /** * The App extension mapper. */ @@ -143,6 +145,12 @@ public class PageServiceImpl implements PageService { @Autowired(required = false) private PostSaveHook postSaveHook; + /** + * The event publisher. + */ + @Autowired + private ApplicationEventPublisher eventPublisher; + /** * 通过appId查询page所有数据实现方法 * @@ -183,7 +191,7 @@ public Page queryPageById(@Param("id") Integer id) { if (pageInfo.getIsPage()) { // 这里不保证能成功获取区块的列表,没有区块或获取区块列表不成功返回 {} Map> blockAssets = blockServiceImpl.getBlockAssets(pageInfo.getPageContent(), - framework); + framework); pageInfo.setAssets(blockAssets); return addIsHome(pageInfo); } @@ -224,6 +232,7 @@ public Result delPage(Integer id) { if (result < 1) { return Result.failed(ExceptionEnum.CM001); } + eventPublisher.publishEvent(new PageDeleteEvent(pageResult)); return Result.success(pageResult); } @@ -425,7 +434,7 @@ public PreviewDto getPreviewMetaData(PreviewParam previewParam) { /** * Sets app home page. * - * @param appId the app id + * @param appId the app id * @param pageId the page id * @return the app home page */ @@ -530,7 +539,13 @@ public Result del(Integer id) { */ public Result checkDelete(Integer id) { // needTODO 从缓存中获取的user信息 - User user = userService.queryUserById(Integer.parseInt(loginUserContext.getLoginUserId())); + User user = userService.queryUserById(loginUserContext.getLoginUserId()); + // 逻辑不对,如果没有同步用户数据,就用登录用户的 + if(user == null) { + user = new User(); + user.setId(loginUserContext.getLoginUserId()); + user.setUsername(loginUserContext.getLoginUserId()); + } Page page = pageMapper.queryPageById(id); User occupier = page.getOccupier(); @@ -548,7 +563,7 @@ public Result checkDelete(Integer id) { * 判断是否能删除 * * @param occupier the occupier - * @param user the user + * @param user the user * @return boolean */ public boolean iCanDoIt(User occupier, User user) { @@ -578,8 +593,7 @@ public boolean protectDefaultPage(Page page) { } UpdateWrapper updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("id", subPageId) - .set("is_default", false); + updateWrapper.eq("id", subPageId).set("is_default", false); int result = pageMapper.update(null, updateWrapper); if (result < 1) { @@ -595,7 +609,6 @@ public boolean protectDefaultPage(Page page) { * @return parentId the parentId */ private String getParentPage(String parentId) { - Page page = pageMapper.queryPageById(Integer.parseInt(parentId)); if (page.getIsPage() || "0".equals(page.getParentId())) { return parentId; @@ -623,7 +636,8 @@ private int getSubPage(String parentId) { for (Page page : pageList) { if (page.getIsPage() && page.getIsDefault()) { return page.getId(); // 找到默认子页面,返回其ID - } else if (!page.getIsPage()) { + } + if (!page.getIsPage()) { // 如果不是页面,递归查找子页面 int subPageId = getSubPage(String.valueOf(page.getId())); if (subPageId > 0) { @@ -638,7 +652,7 @@ private int getSubPage(String parentId) { /** * Validate is home boolean. * - * @param param the param + * @param param the param * @param pageInfo the page info * @return the boolean */ @@ -667,16 +681,16 @@ public boolean validateIsHome(Page param, Page pageInfo) { */ public Result checkUpdate(Page page) { // 获取占用着occupier - User occupier = userService.queryUserById(Integer.parseInt(page.getOccupierBy())); + // 逻辑修改 User occupier = userService.queryUserById(Integer.parseInt(page.getOccupierBy())); // 当前页面没有被锁定就请求更新页面接口,提示无权限 - if (occupier == null) { - Result.failed("Please unlock the page before editing the page"); - } + // 逻辑修改 if (occupier == null) { + // 逻辑修改 Result.failed("Please unlock the page before editing the page"); + // 逻辑修改 } // 当页面被人锁定时,如果提交update请求的人不是当前用户,提示无权限 // needTODO 从缓存中获取登录用户信息 - User user = userService.queryUserById(1); - if (!user.getId().equals(occupier.getId())) { - Result.failed("The current page is being edited by" + occupier.getUsername()); + // 逻辑修改 User user = userService.queryUserById(1); + if (!loginUserContext.getLoginUserId().equals(page.getOccupierBy())) { + Result.failed("The current page is being edited by" + page.getOccupierBy()); } pageMapper.updatePageById(page); // 修改完返回页面还是返回dto,为了下次修改每次参数属性一致 @@ -701,7 +715,7 @@ public Result verifyParentId(String parentId) { /** * 主函数 * - * @param pid the pid + * @param pid the pid * @param target the target * @return update tree */ @@ -741,8 +755,7 @@ public TreeNodeCollection getTreeNodes(TreeNodeDto treeNodeDto) { // 获取子节点的id List childrenId = getChildrenId(pids); // 收集 id depth 信息 - List dps = - childrenId.stream().map(id -> new NodeData(id, level)).collect(Collectors.toList()); + List dps = childrenId.stream().map(id -> new NodeData(id, level)).collect(Collectors.toList()); // 使用 addAll 方法将 childrenId 追加到 range collection.getRange().addAll(childrenId); collection.getData().addAll(dps); @@ -797,8 +810,7 @@ public PreviewDto getBlockPreviewMetaData(PreviewParam previewParam) { // 拼装国际化词条 List i18ns = i18nEntryMapper.findI18nEntriesByHostandHostType(previewParam.getId(), "block"); - SchemaI18n i18n = - appService.formatI18nEntrites(i18ns, Enums.I18Belongs.BLOCK.getValue(), previewParam.getId()); + SchemaI18n i18n = appService.formatI18nEntrites(i18ns, Enums.I18Belongs.BLOCK.getValue(), previewParam.getId()); List utils = extensions.get("utils"); PreviewDto previewDto = new PreviewDto(); previewDto.setDataSource(dataSource); diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/UserServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/UserServiceImpl.java index 35107b1a..d247c784 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/UserServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/UserServiceImpl.java @@ -18,7 +18,6 @@ import lombok.extern.slf4j.Slf4j; -import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -52,7 +51,7 @@ public List queryAllUser() { * @return query result */ @Override - public User queryUserById(@Param("id") Integer id) { + public User queryUserById(String id) { return userMapper.queryUserById(id); } @@ -74,7 +73,7 @@ public List queryUserByCondition(User user) { * @return execute success data number */ @Override - public Integer deleteUserById(@Param("id") Integer id) { + public Integer deleteUserById(String id) { return userMapper.deleteUserById(id); } diff --git a/base/src/main/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImpl.java index d55fa0b0..b7f60f03 100644 --- a/base/src/main/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/app/impl/v1/AppV1ServiceImpl.java @@ -303,8 +303,8 @@ public MetaDto getMetaDto(Integer id) { List appExtensionList = appExtensionMapper.queryAppExtensionByCondition(appExtension); metaDto.setExtension(appExtensionList); - MaterialHistory materialHistory = - materialHistoryMapper.queryMaterialHistoryById(materialhistoryMsg.getMaterialHistoryId()); + MaterialHistory materialHistory = materialHistoryMapper.queryMaterialHistoryById( + materialhistoryMsg.getMaterialHistoryId()); metaDto.setMaterialHistory(materialHistory); List blockHistory = getBlockHistory(app, materialhistoryMsg); @@ -316,7 +316,7 @@ public MetaDto getMetaDto(Integer id) { /** * 查询区块历史信息 * - * @param app 应用信息 materialhistoryMsg 物料历史信息 + * @param app 应用信息 materialhistoryMsg 物料历史信息 * @param materialhistoryMsg materialhistoryMsg * @return 区块历史信息 */ @@ -352,7 +352,7 @@ private List getBlockHistory(App app, MaterialHistoryMsg materialh /** * 获取应用关联的区块及版本信息 * - * @param app appInfo 应用信息 + * @param app appInfo 应用信息 * @param materialHistoryId materialHistoryId * @return {Promise} 应用关联的区块版本控制信息 */ @@ -467,7 +467,7 @@ public List getSchemaComponentsTree(MetaDto metaDto) { Map data = Utils.convert(pageInfo); boolean isToLine = false; Map page = formatDataFields(data, resKeys, isToLine); - if (null != app.getHomePage()) { + if (app.getHomePage() != null) { page.put("isHome", String.valueOf(page.get("id")).equals(app.getHomePage().toString())); } Map schema; @@ -502,8 +502,8 @@ public List> getSchemaComponentsMap(MetaDto metaDto) { List componentLibraryList = componentLibraryMapper.queryAllComponentLibrary(); if (!componentLibraryList.isEmpty()) { List componentList = componentLibraryList.stream() - .flatMap(componentLibrary -> componentLibrary.getComponents().stream()) // 扁平化每个 List - .collect(Collectors.toList()); // 收集到一个新的 List + .flatMap(componentLibrary -> componentLibrary.getComponents().stream()) // 扁平化每个 List + .collect(Collectors.toList()); // 收集到一个新的 List components.addAll(componentList); } List> componentsSchema = getComponentSchema(components); @@ -511,10 +511,7 @@ public List> getSchemaComponentsMap(MetaDto metaDto) { List> componentsMap = new ArrayList<>(componentsSchema); componentsMap.addAll(blocksSchema); // 使用 Stream API 去重 - List> uniqueComponents = componentsMap.stream() - .distinct() - .collect(Collectors.toList()); - return uniqueComponents; + return componentsMap.stream().distinct().collect(Collectors.toList()); } // 将区块组装成schema数据 @@ -603,7 +600,7 @@ public Map> getSchemaExtensions(List app * @throws ServiceException the service exception */ public Map formatDataFields(Map data, List fields, boolean isToLine) - throws ServiceException { + throws ServiceException { // 将 fields 转换为 HashMap Map fieldsMap = new HashMap<>(); for (Object field : fields) { diff --git a/base/src/main/java/com/tinyengine/it/service/material/BlockService.java b/base/src/main/java/com/tinyengine/it/service/material/BlockService.java index 7d1e9e7c..49f13f45 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/BlockService.java +++ b/base/src/main/java/com/tinyengine/it/service/material/BlockService.java @@ -66,7 +66,7 @@ public interface BlockService { /** * 根据主键id更新表t_block信息 - * + * @param appId appId * @param blockParam the block param * @return the BlockDto */ diff --git a/base/src/main/java/com/tinyengine/it/service/material/ComponentService.java b/base/src/main/java/com/tinyengine/it/service/material/ComponentService.java index 39a8f60f..354abbd9 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/ComponentService.java +++ b/base/src/main/java/com/tinyengine/it/service/material/ComponentService.java @@ -116,6 +116,4 @@ public interface ComponentService { * @return result the result */ Result custComponentBatchCreate(CustComponentDto custComponentDto); - - } diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/BlockGroupServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/BlockGroupServiceImpl.java index 61a4480c..dfd9650f 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/BlockGroupServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/BlockGroupServiceImpl.java @@ -46,8 +46,10 @@ public class BlockGroupServiceImpl implements BlockGroupService { @Autowired private BlockGroupMapper blockGroupMapper; + @Autowired private BlockCarriersRelationMapper blockCarriersRelationMapper; + @Autowired private BlockGroupBlockMapper blockGroupBlockMapper; @@ -72,7 +74,8 @@ public List findAllBlockGroup() { */ @Override public BlockGroup findBlockGroupById(@Param("id") Integer id) { - BlockGroup blockGroupResult = blockGroupMapper.queryBlockGroupAndBlockById(id, null, loginUserContext.getLoginUserId()); + BlockGroup blockGroupResult = blockGroupMapper.queryBlockGroupAndBlockById(id, null, + loginUserContext.getLoginUserId()); // 对查询的结果的区块赋值current_version if (blockGroupResult == null || blockGroupResult.getBlocks().isEmpty()) { return blockGroupResult; @@ -82,7 +85,8 @@ public BlockGroup findBlockGroupById(@Param("id") Integer id) { queryParam.setBlockId(block.getId()); queryParam.setHostId(id); queryParam.setHostType(Enums.BlockGroup.BLOCK_GROUP.getValue()); - List blockCarriersRelations = blockCarriersRelationMapper.queryBlockCarriersRelationByCondition(queryParam); + List blockCarriersRelations + = blockCarriersRelationMapper.queryBlockCarriersRelationByCondition(queryParam); if (blockCarriersRelations.isEmpty()) { continue; } @@ -124,8 +128,11 @@ public Integer deleteBlockGroupById(@Param("id") Integer id) { public Integer updateBlockGroupById(BlockGroup blockGroup) { // 判断是对正常的分组修改,还是在分组下添加区块操作的修改 List blockList = blockGroup.getBlocks(); - List blockGroupBlocks = blockGroupBlockMapper.findBlockGroupBlockByBlockGroupId(blockGroup.getId()); - List groupBlockIds = blockGroupBlocks.stream().map(BlockGroupBlock::getBlockId).collect(Collectors.toList()); + List blockGroupBlocks = blockGroupBlockMapper.findBlockGroupBlockByBlockGroupId( + blockGroup.getId()); + List groupBlockIds = blockGroupBlocks.stream() + .map(BlockGroupBlock::getBlockId) + .collect(Collectors.toList()); String hostType = Enums.BlockGroup.BLOCK_GROUP.getValue(); // 区块列表为空,分组下无区块 @@ -178,9 +185,9 @@ public Result createBlockGroup(BlockGroup blockGroup) { /** * 根据ids或者appId获取区块信息 * - * @param ids ids + * @param ids ids * @param appId the app id - * @param from the from + * @param from the from * @return the list */ @Override @@ -189,7 +196,9 @@ public List getBlockGroupByIdsOrAppId(List ids, Integer app List blockGroupsListResult = new ArrayList<>(); String groupCreatedBy = loginUserContext.getLoginUserId(); // 获取登录用户id String blockCreatedBy = loginUserContext.getLoginUserId(); - blockCreatedBy = (Enums.BlockGroup.BLOCK.getValue()).equals(from) ? blockCreatedBy : null; // from值为block在区块管理处增加createdBy条件 + blockCreatedBy = (Enums.BlockGroup.BLOCK.getValue()).equals(from) + ? blockCreatedBy + : null; // from值为block在区块管理处增加createdBy条件 BlockGroup blockGroup = new BlockGroup(); if (ids != null) { for (int blockgroupId : ids) { @@ -214,7 +223,8 @@ public List getBlockGroupByIdsOrAppId(List ids, Integer app queryParam.setBlockId(block.getId()); queryParam.setHostId(blockGroupTemp.getId()); queryParam.setHostType(Enums.BlockGroup.BLOCK_GROUP.getValue()); - List blockCarriersRelations = blockCarriersRelationMapper.queryBlockCarriersRelationByCondition(queryParam); + List blockCarriersRelations + = blockCarriersRelationMapper.queryBlockCarriersRelationByCondition(queryParam); if (blockCarriersRelations.isEmpty()) { continue; } @@ -230,8 +240,8 @@ public List getBlockGroupByIdsOrAppId(List ids, Integer app * 根据参数处理区块分组与区块关系 * * @param groupBlockIds the groupBlockIds - * @param paramIds the paramIds - * @param groupId the groupId + * @param paramIds the paramIds + * @param groupId the groupId * @return the result */ private Integer getBlockGroupIds(List groupBlockIds, List paramIds, Integer groupId) { @@ -248,7 +258,8 @@ private Integer getBlockGroupIds(List groupBlockIds, List para BlockGroupBlock blockGroupBlock = new BlockGroupBlock(); blockGroupBlock.setBlockId(block.getId()); blockGroupBlock.setBlockGroupId(groupId); - List blockGroupBlocks = blockGroupBlockMapper.queryBlockGroupBlockByCondition(blockGroupBlock); + List blockGroupBlocks = blockGroupBlockMapper.queryBlockGroupBlockByCondition( + blockGroupBlock); if (blockGroupBlocks.isEmpty()) { return result; } diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/BlockServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/BlockServiceImpl.java index 842fa819..e35e3c41 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/BlockServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/BlockServiceImpl.java @@ -79,20 +79,28 @@ public class BlockServiceImpl implements BlockService { @Autowired private BlockMapper blockMapper; + @Autowired private UserMapper userMapper; + @Autowired private AppMapper appMapper; + @Autowired private BlockHistoryMapper blockHistoryMapper; + @Autowired private I18nEntryService i18nEntryService; + @Autowired private I18nEntryMapper i18nEntryMapper; + @Autowired private BlockGroupMapper blockGroupMapper; + @Autowired private BlockGroupBlockMapper blockGroupBlockMapper; + @Autowired private LoginUserContext loginUserContext; @@ -118,11 +126,13 @@ public BlockDto queryBlockById(@Param("id") Integer id) { if (blockDto == null) { return blockDto; } - boolean isPublished = blockDto.getLastBuildInfo() != null - && blockDto.getLastBuildInfo().get("result") instanceof Boolean - ? (Boolean) blockDto.getLastBuildInfo().get("result") : Boolean.FALSE; + boolean isPublished = + blockDto.getLastBuildInfo() != null && blockDto.getLastBuildInfo().get("result") instanceof Boolean + ? (Boolean) blockDto.getLastBuildInfo().get("result") + : Boolean.FALSE; blockDto.setIsPublished(isPublished); - List groups = blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(), loginUserContext.getLoginUserId()); + List groups = blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(), + loginUserContext.getLoginUserId()); blockDto.setGroups(groups); return blockDto; } @@ -153,6 +163,7 @@ public Integer deleteBlockById(@Param("id") Integer id) { * 根据主键id更新表t_block数据 * * @param blockParam blockParam + * @param appId * @return blockDto */ @Override @@ -187,7 +198,8 @@ public Result updateBlockById(BlockParam blockParam, Integer appId) { } // 根据区块id获取区块所在分组 - List blockGroups = blockGroupMapper.findBlockGroupByBlockId(blocks.getId(), loginUserContext.getLoginUserId()); + List blockGroups = blockGroupMapper.findBlockGroupByBlockId(blocks.getId(), + loginUserContext.getLoginUserId()); // 删除区块与分组关系 if (blockGroups != null && !blockGroups.isEmpty()) { List blockGroupIds = blockGroups.stream().map(BlockGroup::getId).collect(Collectors.toList()); @@ -263,7 +275,7 @@ public Result createBlock(BlockParam blockParam) { * Gets block assets. * * @param pageContent the page content - * @param framework the framework + * @param framework the framework * @return the block assets */ public Map> getBlockAssets(Map pageContent, String framework) { @@ -309,7 +321,7 @@ public Map> getBlockAssets(Map pageContent, /** * Gets block info. * - * @param block the block + * @param block the block * @param framework the framework * @return the block info */ @@ -319,8 +331,8 @@ public List getBlockInfo(List block, String framework) { if (block != null && !block.isEmpty()) { // 处理 blockLabelName 为数组的情况 String labelsCondition = block.stream() - .map(name -> "label = '" + name + "'") - .collect(Collectors.joining(" OR ")); + .map(name -> "label = '" + name + "'") + .collect(Collectors.joining(" OR ")); // 添加标签条件 queryWrapper.and(wrapper -> wrapper.apply(labelsCondition)); @@ -337,7 +349,7 @@ public List getBlockInfo(List block, String framework) { * Traverse blocks. * * @param content the content - * @param block the block + * @param block the block * @throws JsonProcessingException the json processing exception */ public void traverseBlocks(String content, List block) throws JsonProcessingException { @@ -451,19 +463,20 @@ public List getNotInGroupBlocks(NotGroupDto notGroupDto) { } for (BlockDto blockDto : blocksList) { - List blockGroups = blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(), loginUserContext.getLoginUserId()); + List blockGroups = blockGroupMapper.findBlockGroupByBlockId(blockDto.getId(), + loginUserContext.getLoginUserId()); blockDto.setGroups(blockGroups); } return blocksList.stream() - .filter(item -> - { + .filter(item -> { // 过滤掉未发布的 if (item.getLastBuildInfo() == null || item.getContent() == null || item.getAssets() == null) { return false; } // 组过滤 - if (item.getGroups() != null && item.getGroups().stream() - .anyMatch(group -> group != null + if (item.getGroups() != null && item.getGroups() + .stream() + .anyMatch(group -> group != null && group.getId().equals(notGroupDto.getGroupId()))) { return false; } @@ -472,8 +485,7 @@ public List getNotInGroupBlocks(NotGroupDto notGroupDto) { return true; } return item.getPublicStatus() == Enums.Scope.PUBLIC_IN_TENANTS.getValue(); - }) - .collect(Collectors.toList()); + }).collect(Collectors.toList()); } /** @@ -579,10 +591,9 @@ public IPage findBlocksByConditionPagetion(Map request) { String description = request.get("description"); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.and(wrapper -> - wrapper.like(StringUtils.isNotEmpty(nameCn), "name", nameCn) - .or() - .like(StringUtils.isNotEmpty(description), "description", description) + queryWrapper.and(wrapper -> wrapper.like(StringUtils.isNotEmpty(nameCn), "name", nameCn) + .or() + .like(StringUtils.isNotEmpty(description), "description", description) ); List blocksList = blockMapper.selectList(queryWrapper); Page page = new Page<>(1, blocksList.size()); @@ -600,8 +611,7 @@ public List getUsers(List blocksList) { Set userSet = new HashSet<>(); // 提取 createdBy 列表中的唯一值 - blocksList.forEach(item -> - { + blocksList.forEach(item -> { if (item.getCreatedBy() != null && !userSet.contains(item.getCreatedBy())) { userSet.add(String.valueOf(item.getCreatedBy())); } @@ -656,27 +666,22 @@ public Result> listNew(String appId, String groupId) { List retBlocks = new ArrayList<>(); // 合并 personalBlocks 和 appBlocks 数组 List combinedBlocks = Stream.concat(personalBlocks.stream(), appBlocks.stream()) - .collect(Collectors.toList()); + .collect(Collectors.toList()); // 遍历合并后的数组,检查是否存在具有相同 id 的元素 - combinedBlocks.forEach(block -> - { - boolean isFind = retBlocks.stream() - .anyMatch(retBlock -> Objects.equals(retBlock.getId(), block.getId())); + combinedBlocks.forEach(block -> { + boolean isFind = retBlocks.stream().anyMatch(retBlock -> Objects.equals(retBlock.getId(), block.getId())); if (!isFind) { retBlocks.add(block); } }); // 给is_published赋值 - List result = retBlocks.stream() - .map(b -> - { - boolean isPublished = b.getLastBuildInfo() != null - && b.getLastBuildInfo().get("result") instanceof Boolean - ? (Boolean) b.getLastBuildInfo().get("result") : Boolean.FALSE; - b.setIsPublished(isPublished); - return b; - }) - .collect(Collectors.toList()); + List result = retBlocks.stream().map(b -> { + boolean isPublished = b.getLastBuildInfo() != null && b.getLastBuildInfo().get("result") instanceof Boolean + ? (Boolean) b.getLastBuildInfo().get("result") + : Boolean.FALSE; + b.setIsPublished(isPublished); + return b; + }).collect(Collectors.toList()); return Result.success(result); } @@ -715,7 +720,7 @@ public int ensureBlockId(BlockDto blockDto) { /** * 判断区块版本是否存在 * - * @param id the id + * @param id the id * @param version the version * @return the id */ @@ -733,7 +738,7 @@ public boolean isHistoryExisted(Integer id, String version) { /** * 创建构建信息 * - * @param version the id + * @param version the id * @param buildTime the buildTime * @return buildInfo the buildInfo */ diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ComponentLibraryServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ComponentLibraryServiceImpl.java index 34aca33c..cea1690f 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ComponentLibraryServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ComponentLibraryServiceImpl.java @@ -102,8 +102,7 @@ public Result updateComponentLibraryById(ComponentLibrary comp if (updateResult != 1) { return Result.failed(ExceptionEnum.CM008); } - Result result = this.queryComponentLibraryById(componentLibrary.getId()); - return result; + return this.queryComponentLibraryById(componentLibrary.getId()); } /** @@ -118,7 +117,6 @@ public Result createComponentLibrary(ComponentLibrary componen if (createResult != 1) { return Result.failed(ExceptionEnum.CM008); } - Result result = this.queryComponentLibraryById(componentLibrary.getId()); - return result; + return this.queryComponentLibraryById(componentLibrary.getId()); } } diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/ComponentServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/ComponentServiceImpl.java index 6f4d32a9..1ec6d595 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/ComponentServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/ComponentServiceImpl.java @@ -36,6 +36,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.annotations.Param; +import org.checkerframework.checker.units.qual.C; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -66,7 +67,6 @@ public class ComponentServiceImpl implements ComponentService { @Autowired private ComponentLibraryMapper componentLibraryMapper; - /** * 查询表t_component所有数据 * @@ -145,7 +145,7 @@ public Result readFileAndBulkCreate(MultipartFile file) { BundleResultDto data = bundleResultDtoResult.getData(); List componentList = data.getComponentList(); List packageList = data.getPackageList(); - if (null == packageList || packageList.isEmpty()) { + if (packageList == null || packageList.isEmpty()) { return bulkCreate(componentList); } for (ComponentLibrary componentLibrary : packageList) { @@ -156,7 +156,8 @@ public Result readFileAndBulkCreate(MultipartFile file) { library.setName(componentLibrary.getName()); library.setVersion(componentLibrary.getVersion()); // 查询是否存在组件库 - List componentLibraryList = componentLibraryMapper.queryComponentLibraryByCondition(library); + List componentLibraryList = componentLibraryMapper.queryComponentLibraryByCondition( + library); int result = 0; if (!componentLibraryList.isEmpty()) { componentLibrary.setId(componentLibraryList.get(0).getId()); @@ -185,7 +186,7 @@ public Result readFileAndBulkCreate(MultipartFile file) { public Result bundleSplit(MultipartFile file) { // 检验文件 boolean isFileCheck = this.checkFile(file); - if (!isFileCheck){ + if (!isFileCheck) { return Result.failed(ExceptionEnum.CM325); } // 获取bundle.json数据 @@ -220,40 +221,7 @@ public Result parseBundle(BundleDto bundleDto) { if (components == null || components.isEmpty()) { return Result.failed(ExceptionEnum.CM009); } - List componentList = new ArrayList<>(); - for (Map comp : components) { - Component component = BeanUtil.mapToBean(comp, Component.class, true); - component.setId(null); - component.setIsDefault(true); - component.setIsOfficial(true); - component.setDevMode("proCode"); - component.setFramework(bundleDto.getFramework()); - component.setPublicStatus(1); - component.setIsTinyReserved(false); - Object schemaObject = comp.get("schema"); - if (schemaObject instanceof Map) { - component.setSchemaFragment((Map) schemaObject); - } - if (snippets == null || snippets.isEmpty()) { - componentList.add(component); - continue; - } - for (Child child : snippets) { - Snippet snippet = child.getChildren().stream() - .filter(item -> toPascalCase(comp.get("component").toString()) - .equals(toPascalCase(item.getSnippetName()))) - .findFirst() - .orElse(null); - - if (snippet != null) { - Map snippetMap = BeanUtil.beanToMap(snippet); - component.setSnippets(Arrays.asList(snippetMap)); - - component.setCategory(child.getGroup()); - } - } - componentList.add(component); - } + List componentList = buildComponentList(bundleDto,components,snippets); List> packages = bundleDto.getMaterials().getPackages(); BundleResultDto bundleList = new BundleResultDto(); @@ -288,7 +256,7 @@ public Result custComponentBatchCreate(CustComponentDto custComponen return Result.failed(ExceptionEnum.CM002); } Integer id = custComponentDto.getComponentLibraryId(); - if (null == id) { + if (id == null) { return Result.failed(ExceptionEnum.CM002); } for (Component component : componentList) { @@ -325,15 +293,15 @@ public Result bulkCreate(List componentList) { List queryComponent = findComponentByCondition(componentParam); // 查询组件库id String packageName = null; - if (null != component.getNpm() && null != component.getNpm().get("package")) { + if (component.getNpm() != null &&component.getNpm().get("package") != null) { packageName = String.valueOf(component.getNpm().get("package")); } - if (null != packageName && !packageName.isEmpty()) { + if (packageName != null && !packageName.isEmpty()) { ComponentLibrary componentLibrary = new ComponentLibrary(); componentLibrary.setPackageName(String.valueOf(component.getNpm().get("package"))); componentLibrary.setVersion(component.getVersion()); - List componentLibraryList = componentLibraryMapper - .queryComponentLibraryByCondition(componentLibrary); + List componentLibraryList = componentLibraryMapper.queryComponentLibraryByCondition( + componentLibrary); Integer componentLibraryId = null; if (!componentLibraryList.isEmpty()) { componentLibraryId = componentLibraryList.get(0).getId(); @@ -342,7 +310,6 @@ public Result bulkCreate(List componentList) { } if (queryComponent.isEmpty()) { - // 插入新记录 Integer result = createComponent(component); if (result == 1) { @@ -388,6 +355,44 @@ private String toPascalCase(String input) { return result.toString(); } + private List buildComponentList(BundleDto bundleDto, List> components, + List snippets) { + List componentList = new ArrayList<>(); + for (Map comp : components) { + Component component = BeanUtil.mapToBean(comp, Component.class, true); + component.setId(null); + component.setIsDefault(true); + component.setIsOfficial(true); + component.setDevMode("proCode"); + component.setFramework(bundleDto.getFramework()); + component.setPublicStatus(1); + component.setIsTinyReserved(false); + Object schemaObject = comp.get("schema"); + if (schemaObject instanceof Map) { + component.setSchemaFragment((Map) schemaObject); + } + if (snippets == null || snippets.isEmpty()) { + componentList.add(component); + continue; + } + for (Child child : snippets) { + Snippet snippet = child.getChildren().stream() + .filter(item -> toPascalCase(comp.get("component").toString()) + .equals(toPascalCase(item.getSnippetName()))) + .findFirst() + .orElse(null); + + if (snippet != null) { + Map snippetMap = BeanUtil.beanToMap(snippet); + component.setSnippets(Arrays.asList(snippetMap)); + + component.setCategory(child.getGroup()); + } + } + componentList.add(component); + } + return componentList; + } public boolean checkFile(MultipartFile file) { Map fileTypeMap = new HashMap<>(); fileTypeMap.put(".json", "application/json"); diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/MaterialHistoryServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/MaterialHistoryServiceImpl.java index ee56dedb..4cac2e09 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/MaterialHistoryServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/MaterialHistoryServiceImpl.java @@ -104,8 +104,7 @@ public Result updateMaterialHistoryById(MaterialHistory materia if (updateResult != 1) { return Result.failed(ExceptionEnum.CM008); } - Result result = this.findMaterialHistoryById(materialHistory.getId()); - return result; + return this.findMaterialHistoryById(materialHistory.getId()); } /** @@ -120,7 +119,6 @@ public Result createMaterialHistory(MaterialHistory materialHis if (createResult != 1) { return Result.failed(ExceptionEnum.CM008); } - Result result = this.findMaterialHistoryById(materialHistory.getId()); - return result; + return this.findMaterialHistoryById(materialHistory.getId()); } } diff --git a/base/src/main/java/com/tinyengine/it/service/material/impl/MaterialServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/material/impl/MaterialServiceImpl.java index 8ff669ca..640a495e 100644 --- a/base/src/main/java/com/tinyengine/it/service/material/impl/MaterialServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/material/impl/MaterialServiceImpl.java @@ -82,8 +82,7 @@ public Result deleteMaterialById(@Param("id") Integer id) { if (deleteResult != 1) { return Result.failed(ExceptionEnum.CM008); } - Result result = this.queryMaterialById(id); - return result; + return this.queryMaterialById(id); } @@ -99,8 +98,7 @@ public Result updateMaterialById(Material material) { if (updateResult != 1) { return Result.failed(ExceptionEnum.CM008); } - Result result = this.queryMaterialById(material.getId()); - return result; + return this.queryMaterialById(material.getId()); } /** @@ -115,7 +113,6 @@ public Result createMaterial(Material material) { if (createResult != 1) { return Result.failed(ExceptionEnum.CM008); } - Result result = this.queryMaterialById(material.getId()); - return result; + return this.queryMaterialById(material.getId()); } } diff --git a/base/src/main/java/com/tinyengine/it/service/platform/PlatformHistoryService.java b/base/src/main/java/com/tinyengine/it/service/platform/PlatformHistoryService.java index de5cc061..ef3ad33b 100644 --- a/base/src/main/java/com/tinyengine/it/service/platform/PlatformHistoryService.java +++ b/base/src/main/java/com/tinyengine/it/service/platform/PlatformHistoryService.java @@ -14,6 +14,7 @@ import com.tinyengine.it.common.base.Result; import com.tinyengine.it.model.entity.PlatformHistory; + import org.apache.ibatis.annotations.Param; import java.util.List; diff --git a/base/src/main/java/com/tinyengine/it/service/platform/impl/PlatformHistoryServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/platform/impl/PlatformHistoryServiceImpl.java index fd24b737..f3c3f777 100644 --- a/base/src/main/java/com/tinyengine/it/service/platform/impl/PlatformHistoryServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/platform/impl/PlatformHistoryServiceImpl.java @@ -17,7 +17,9 @@ import com.tinyengine.it.mapper.PlatformHistoryMapper; import com.tinyengine.it.model.entity.PlatformHistory; import com.tinyengine.it.service.platform.PlatformHistoryService; + import lombok.extern.slf4j.Slf4j; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/base/src/main/java/com/tinyengine/it/service/platform/impl/PlatformServiceImpl.java b/base/src/main/java/com/tinyengine/it/service/platform/impl/PlatformServiceImpl.java index 6046ee65..3d80bec6 100644 --- a/base/src/main/java/com/tinyengine/it/service/platform/impl/PlatformServiceImpl.java +++ b/base/src/main/java/com/tinyengine/it/service/platform/impl/PlatformServiceImpl.java @@ -73,7 +73,7 @@ public List queryPlatformByCondition(Platform platform) { * 根据主键id删除表t_platform数据 * * @param id id - * @return Result + * @return execute success data number */ @Override public Result deletePlatformById(@Param("id") Integer id) { @@ -92,7 +92,7 @@ public Result deletePlatformById(@Param("id") Integer id) { * 根据主键id更新表t_platform数据 * * @param platform platform - * @return Result + * @return execute success data number */ @Override public Result updatePlatformById(Platform platform) { @@ -111,7 +111,7 @@ public Result updatePlatformById(Platform platform) { * 新增表t_platform数据 * * @param platform platform - * @return Result + * @return execute success data number */ @Override public Result createPlatform(Platform platform) { diff --git a/base/src/main/resources/mappers/AppExtensionMapper.xml b/base/src/main/resources/mappers/AppExtensionMapper.xml index 25c567d0..05a495dd 100644 --- a/base/src/main/resources/mappers/AppExtensionMapper.xml +++ b/base/src/main/resources/mappers/AppExtensionMapper.xml @@ -22,7 +22,7 @@ AND content = #{content} - + AND app_id = #{app} @@ -34,10 +34,10 @@ AND last_updated_by = #{lastUpdatedBy} - + AND created_time = #{createdTime} - + AND last_updated_time = #{lastUpdatedTime} @@ -62,7 +62,7 @@ content = #{content}, - + app_id = #{app}, @@ -74,10 +74,10 @@ last_updated_by = #{lastUpdatedBy}, - + created_time = #{createdTime}, - + last_updated_time = #{lastUpdatedTime}, diff --git a/base/src/main/resources/mappers/AppMapper.xml b/base/src/main/resources/mappers/AppMapper.xml index 31ed64b2..f22d0038 100644 --- a/base/src/main/resources/mappers/AppMapper.xml +++ b/base/src/main/resources/mappers/AppMapper.xml @@ -22,10 +22,10 @@ AND app_website = #{appWebsite} - + AND platform_id = #{platformId} - + AND platform_history_id = #{platformHistoryId} @@ -46,10 +46,10 @@ AND state = #{state} - + AND published = #{isPublish} - + AND home_page_id = #{homePage} @@ -79,7 +79,7 @@ AND branch = #{branch} - + AND is_demo = #{isDemo} @@ -88,7 +88,7 @@ AND template_type = #{templateType} - + AND set_template_time = #{setTemplateTime} @@ -124,10 +124,10 @@ AND last_updated_by = #{lastUpdatedBy} - + AND created_time = #{createdTime} - + AND last_updated_time = #{lastUpdatedTime} @@ -149,10 +149,10 @@ app_website = #{appWebsite}, - + platform_id = #{platformId}, - + platform_history_id = #{platformHistoryId}, @@ -176,7 +176,7 @@ published = #{isPublish}, - + home_page_id = #{homePage}, @@ -215,7 +215,7 @@ template_type = #{templateType}, - + set_template_time = #{setTemplateTime}, @@ -251,10 +251,10 @@ last_updated_by = #{lastUpdatedBy}, - + created_time = #{createdTime}, - + last_updated_time = #{lastUpdatedTime}, diff --git a/base/src/main/resources/mappers/BlockCarriersRelationMapper.xml b/base/src/main/resources/mappers/BlockCarriersRelationMapper.xml index 782c40f9..4d11275f 100644 --- a/base/src/main/resources/mappers/BlockCarriersRelationMapper.xml +++ b/base/src/main/resources/mappers/BlockCarriersRelationMapper.xml @@ -12,10 +12,10 @@ - + AND host_id = #{hostId} - + AND block_id = #{blockId} @@ -39,20 +39,20 @@ AND last_updated_by = #{lastUpdatedBy} - + AND created_time = #{createdTime} - + AND last_updated_time = #{lastUpdatedTime} - + host_id = #{hostId}, - + block_id = #{blockId}, @@ -208,7 +208,7 @@ , #{hostId} , #{blockId} , #{hostType} - , #{version}, + , #{version} , #{createdBy} , #{lastUpdatedBy} , #{createdTime} diff --git a/base/src/main/resources/mappers/BlockGroupBlockMapper.xml b/base/src/main/resources/mappers/BlockGroupBlockMapper.xml index 1adf5c70..9325f744 100644 --- a/base/src/main/resources/mappers/BlockGroupBlockMapper.xml +++ b/base/src/main/resources/mappers/BlockGroupBlockMapper.xml @@ -12,20 +12,20 @@ - + AND block_id = #{blockId} - + AND block_group_id = #{blockGroupId} - + block_id = #{blockId}, - + block_group_id = #{blockGroupId}, diff --git a/base/src/main/resources/mappers/BlockGroupMapper.xml b/base/src/main/resources/mappers/BlockGroupMapper.xml index 2e1d84fc..a4c254ff 100644 --- a/base/src/main/resources/mappers/BlockGroupMapper.xml +++ b/base/src/main/resources/mappers/BlockGroupMapper.xml @@ -16,10 +16,10 @@ AND name = #{name} - + AND app_id = #{appId} - + AND platform_id = #{platformId} @@ -31,10 +31,10 @@ AND last_updated_by = #{lastUpdatedBy} - + AND created_time = #{createdTime} - + AND last_updated_time = #{lastUpdatedTime} @@ -53,10 +53,10 @@ name = #{name}, - + app_id = #{appId}, - + platform_id = #{platformId}, @@ -68,10 +68,10 @@ last_updated_by = #{lastUpdatedBy}, - + created_time = #{createdTime}, - + last_updated_time = #{lastUpdatedTime}, @@ -331,7 +331,6 @@ -