mirror of
https://github.com/dataease/dataease.git
synced 2025-02-24 19:42:56 +08:00
Merge branch 'dev-v2' into pr@dev-v2_dzz
This commit is contained in:
commit
486688f52f
@ -0,0 +1,41 @@
|
||||
package io.dataease.visualization.server;
|
||||
|
||||
import io.dataease.api.visualization.VisualizationWatermarkApi;
|
||||
import io.dataease.api.visualization.request.VisualizationWatermarkRequest;
|
||||
import io.dataease.api.visualization.vo.VisualizationWatermarkVO;
|
||||
import io.dataease.utils.BeanUtils;
|
||||
import io.dataease.visualization.dao.auto.entity.VisualizationWatermark;
|
||||
import io.dataease.visualization.dao.auto.mapper.VisualizationWatermarkMapper;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @author : WangJiaHao
|
||||
* @date : 2024/1/10 16:59
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/watermark")
|
||||
public class VisualizationWatermarkService implements VisualizationWatermarkApi {
|
||||
|
||||
private final static String DEFAULT_ID ="system_default";
|
||||
|
||||
@Resource
|
||||
private VisualizationWatermarkMapper watermarkMapper;
|
||||
|
||||
@Override
|
||||
public VisualizationWatermarkVO getWatermarkInfo() {
|
||||
VisualizationWatermark watermark = watermarkMapper.selectById(DEFAULT_ID);
|
||||
VisualizationWatermarkVO watermarkVO = new VisualizationWatermarkVO();
|
||||
return BeanUtils.copyBean(watermarkVO,watermark);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveWatermarkInfo(VisualizationWatermarkRequest watermarkRequest) {
|
||||
VisualizationWatermark watermark = new VisualizationWatermark();
|
||||
BeanUtils.copyBean(watermark,watermarkRequest);
|
||||
watermark.setId(DEFAULT_ID);
|
||||
watermarkMapper.updateById(watermark);
|
||||
}
|
||||
}
|
@ -0,0 +1,177 @@
|
||||
ALTER TABLE `QRTZ_BLOB_TRIGGERS` COMMENT = '自定义触发器存储(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_CALENDARS` COMMENT = 'Quartz日历(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_CRON_TRIGGERS` COMMENT = 'CronTrigger存储(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_FIRED_TRIGGERS` COMMENT = '存储已经触发的trigger相关信息(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_JOB_DETAILS` COMMENT = '存储jobDetails信息(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_LOCKS` COMMENT = 'Quartz锁表,为多个节点调度提供分布式锁(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_PAUSED_TRIGGER_GRPS` COMMENT = '存放暂停掉的触发器(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_SCHEDULER_STATE` COMMENT = '存储所有节点的scheduler(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_SIMPLE_TRIGGERS` COMMENT = 'SimpleTrigger存储(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_SIMPROP_TRIGGERS` COMMENT = '存储CalendarIntervalTrigger和DailyTimeIntervalTrigger两种类型的触发器(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_TRIGGERS` COMMENT = '存储定义的trigger(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `area` COMMENT = '地图区域表';
|
||||
ALTER TABLE `core_area_custom` COMMENT = '自定义地图区域信息表';
|
||||
ALTER TABLE `core_chart_view` COMMENT = '组件视图表';
|
||||
ALTER TABLE `core_dataset_group` COMMENT = '数据集分组表';
|
||||
ALTER TABLE `core_dataset_table` COMMENT = 'table数据集';
|
||||
ALTER TABLE `core_dataset_table_field` COMMENT = 'table数据集表字段';
|
||||
ALTER TABLE `core_dataset_table_sql_log` COMMENT = 'table数据集查询sql日志';
|
||||
ALTER TABLE `core_datasource` COMMENT = '数据源表';
|
||||
ALTER TABLE `core_datasource_task` COMMENT = '数据源定时同步任务';
|
||||
ALTER TABLE `core_datasource_task_log` COMMENT = '数据源定时同步任务执行日志';
|
||||
ALTER TABLE `core_de_engine` COMMENT = '数据引擎';
|
||||
ALTER TABLE `core_driver` COMMENT = '驱动';
|
||||
ALTER TABLE `core_driver_jar` COMMENT = '驱动详情';
|
||||
ALTER TABLE `core_menu` COMMENT = '路由菜单';
|
||||
ALTER TABLE `core_opt_recent` COMMENT = '可视化资源表';
|
||||
ALTER TABLE `core_rsa` COMMENT = 'rsa 密钥表';
|
||||
ALTER TABLE `core_store` COMMENT = '用户收藏表';
|
||||
ALTER TABLE `core_sys_setting` COMMENT = '系统设置表';
|
||||
ALTER TABLE `data_visualization_info` COMMENT = '可视化大屏信息表';
|
||||
ALTER TABLE `de_standalone_version` COMMENT = '数据库版本变更记录表';
|
||||
ALTER TABLE `license` COMMENT = '企业版许可证信息表';
|
||||
ALTER TABLE `per_api_key` COMMENT = 'API Key 密钥表';
|
||||
ALTER TABLE `per_auth_busi_role` COMMENT = '角色资源权限配置';
|
||||
ALTER TABLE `per_auth_busi_user` COMMENT = '用户资源权限配置';
|
||||
ALTER TABLE `per_auth_menu` COMMENT = '菜单资源权限配置';
|
||||
ALTER TABLE `per_busi_resource` COMMENT = '企业资源';
|
||||
ALTER TABLE `per_dataset_column_permissions` COMMENT = '数据集列权限';
|
||||
ALTER TABLE `per_dataset_row_permissions_tree` COMMENT = '数据集行权限';
|
||||
ALTER TABLE `per_embedded_instance` COMMENT = '嵌入式应用';
|
||||
ALTER TABLE `per_menu_resource` COMMENT = '菜单资源';
|
||||
ALTER TABLE `per_org` COMMENT = '组织机构';
|
||||
ALTER TABLE `per_role` COMMENT = '角色';
|
||||
ALTER TABLE `per_sys_setting` COMMENT = '系统设置表';
|
||||
ALTER TABLE `per_user` COMMENT = '用户表';
|
||||
ALTER TABLE `per_user_role` COMMENT = '用户角色表';
|
||||
ALTER TABLE `visualization_background` COMMENT = '边框背景表';
|
||||
ALTER TABLE `visualization_background_image` COMMENT = '背景图';
|
||||
ALTER TABLE `visualization_link_jump` COMMENT = '跳转记录表';
|
||||
ALTER TABLE `visualization_link_jump_info` COMMENT = '跳转配置表';
|
||||
ALTER TABLE `visualization_link_jump_target_view_info` COMMENT = '跳转目标仪表板视图字段配置表';
|
||||
ALTER TABLE `visualization_linkage` COMMENT = '联动记录表';
|
||||
ALTER TABLE `visualization_linkage_field` COMMENT = '联动字段';
|
||||
ALTER TABLE `visualization_subject` COMMENT = '主题表';
|
||||
ALTER TABLE `visualization_template_extend_data` COMMENT = '模板视图明细信息表';
|
||||
ALTER TABLE `xpack_setting_authentication` COMMENT = '认证设置';
|
||||
ALTER TABLE `xpack_share` COMMENT = '公共链接';
|
||||
|
||||
ALTER TABLE `core_dataset_group`
|
||||
MODIFY COLUMN `qrtz_instance` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'Quartz 实例 ID' AFTER `create_time`;
|
||||
|
||||
ALTER TABLE `core_dataset_table_field`
|
||||
MODIFY COLUMN `size` int(0) NULL DEFAULT NULL COMMENT '字段长度(允许为空,默认0)' AFTER `type`,
|
||||
MODIFY COLUMN `date_format` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '时间字段类型' AFTER `accuracy`;
|
||||
|
||||
ALTER TABLE `core_datasource_task`
|
||||
MODIFY COLUMN `extra_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '额外数据' AFTER `last_exec_status`;
|
||||
|
||||
ALTER TABLE `core_datasource_task_log`
|
||||
MODIFY COLUMN `trigger_type` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新频率类型' AFTER `create_time`;
|
||||
|
||||
ALTER TABLE `core_driver_jar`
|
||||
MODIFY COLUMN `trans_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '替换后的 jar 包名称' AFTER `driver_class`,
|
||||
MODIFY COLUMN `is_trans_name` tinyint(1) NULL DEFAULT NULL COMMENT '是否将上传 jar 包替换了名称(1-是,0-否)' AFTER `trans_name`;
|
||||
|
||||
ALTER TABLE `core_rsa`
|
||||
MODIFY COLUMN `aes_key` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'AES 加密算法的 key' AFTER `create_time`;
|
||||
|
||||
ALTER TABLE `data_visualization_info`
|
||||
MODIFY COLUMN `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键' FIRST;
|
||||
|
||||
ALTER TABLE `de_standalone_version`
|
||||
MODIFY COLUMN `installed_rank` int(0) NOT NULL COMMENT '执行顺序(主键)' FIRST,
|
||||
MODIFY COLUMN `version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '版本' AFTER `installed_rank`,
|
||||
MODIFY COLUMN `description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '描述' AFTER `version`,
|
||||
MODIFY COLUMN `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '类型' AFTER `description`,
|
||||
MODIFY COLUMN `script` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '脚本名称' AFTER `type`,
|
||||
MODIFY COLUMN `checksum` int(0) NULL DEFAULT NULL COMMENT '脚本内容一致性校验码' AFTER `script`,
|
||||
MODIFY COLUMN `installed_by` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '执行用户' AFTER `checksum`,
|
||||
MODIFY COLUMN `installed_on` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '执行时间' AFTER `installed_by`,
|
||||
MODIFY COLUMN `execution_time` int(0) NOT NULL COMMENT '执行时长' AFTER `installed_on`,
|
||||
MODIFY COLUMN `success` tinyint(1) NOT NULL COMMENT '状态(1-成功,0-失败)' AFTER `execution_time`;
|
||||
|
||||
ALTER TABLE `license`
|
||||
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `update_time` bigint(0) NULL DEFAULT NULL COMMENT '更新时间' AFTER `id`,
|
||||
MODIFY COLUMN `license` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT 'license' AFTER `update_time`,
|
||||
MODIFY COLUMN `f2c_license` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT 'F2C License' AFTER `license`;
|
||||
|
||||
ALTER TABLE `per_dataset_column_permissions`
|
||||
MODIFY COLUMN `update_time` bigint(0) NULL DEFAULT NULL COMMENT '更新时间' AFTER `white_list_user`;
|
||||
|
||||
ALTER TABLE `per_dataset_row_permissions_tree`
|
||||
MODIFY COLUMN `update_time` bigint(0) NULL DEFAULT NULL COMMENT '更新时间' AFTER `white_list_dept`;
|
||||
|
||||
ALTER TABLE `per_user`
|
||||
MODIFY COLUMN `pwd` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码' AFTER `account`;
|
||||
|
||||
ALTER TABLE `visualization_background`
|
||||
MODIFY COLUMN `id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '名称' AFTER `id`,
|
||||
MODIFY COLUMN `classification` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '分类名' AFTER `name`,
|
||||
MODIFY COLUMN `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '内容' AFTER `classification`,
|
||||
MODIFY COLUMN `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注' AFTER `content`,
|
||||
MODIFY COLUMN `sort` int(0) NULL DEFAULT NULL COMMENT '排序' AFTER `remark`,
|
||||
MODIFY COLUMN `upload_time` bigint(0) NULL DEFAULT NULL COMMENT '上传时间' AFTER `sort`,
|
||||
MODIFY COLUMN `base_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所在目录地址' AFTER `upload_time`,
|
||||
MODIFY COLUMN `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '图片url' AFTER `base_url`;
|
||||
|
||||
ALTER TABLE `visualization_background_image`
|
||||
MODIFY COLUMN `id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '名称' AFTER `id`,
|
||||
MODIFY COLUMN `classification` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '分类名' AFTER `name`,
|
||||
MODIFY COLUMN `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '内容' AFTER `classification`,
|
||||
MODIFY COLUMN `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注' AFTER `content`,
|
||||
MODIFY COLUMN `sort` int(0) NULL DEFAULT NULL COMMENT '排序' AFTER `remark`,
|
||||
MODIFY COLUMN `upload_time` bigint(0) NULL DEFAULT NULL COMMENT '上传时间' AFTER `sort`,
|
||||
MODIFY COLUMN `base_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所在目录地址' AFTER `upload_time`,
|
||||
MODIFY COLUMN `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '图片url' AFTER `base_url`;
|
||||
|
||||
ALTER TABLE `visualization_link_jump`
|
||||
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `copy_from` bigint(0) NULL DEFAULT NULL COMMENT '复制来源' AFTER `checked`,
|
||||
MODIFY COLUMN `copy_id` bigint(0) NULL DEFAULT NULL COMMENT '复制来源ID' AFTER `copy_from`;
|
||||
|
||||
ALTER TABLE `visualization_link_jump_info`
|
||||
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `copy_from` bigint(0) NULL DEFAULT NULL COMMENT '复制来源' AFTER `attach_params`,
|
||||
MODIFY COLUMN `copy_id` bigint(0) NULL DEFAULT NULL COMMENT '复制来源ID' AFTER `copy_from`;
|
||||
|
||||
ALTER TABLE `visualization_link_jump_target_view_info`
|
||||
MODIFY COLUMN `target_id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `link_jump_info_id` bigint(0) NULL DEFAULT NULL COMMENT 'visualization_link_jump_info 表的 ID' AFTER `target_id`,
|
||||
MODIFY COLUMN `target_view_id` bigint(0) NULL DEFAULT NULL COMMENT '目标视图ID' AFTER `source_field_active_id`,
|
||||
MODIFY COLUMN `target_field_id` bigint(0) NULL DEFAULT NULL COMMENT '目标字段ID' AFTER `target_view_id`,
|
||||
MODIFY COLUMN `copy_from` bigint(0) NULL DEFAULT NULL COMMENT '复制来源' AFTER `target_field_id`,
|
||||
MODIFY COLUMN `copy_id` bigint(0) NULL DEFAULT NULL COMMENT '复制来源ID' AFTER `copy_from`;
|
||||
|
||||
ALTER TABLE `visualization_linkage`
|
||||
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `dv_id` bigint(0) NULL DEFAULT NULL COMMENT '联动大屏/仪表板ID' AFTER `id`,
|
||||
MODIFY COLUMN `ext1` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '扩展字段1' AFTER `linkage_active`,
|
||||
MODIFY COLUMN `ext2` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '扩展字段2' AFTER `ext1`,
|
||||
MODIFY COLUMN `copy_from` bigint(0) NULL DEFAULT NULL COMMENT '复制来源' AFTER `ext2`,
|
||||
MODIFY COLUMN `copy_id` bigint(0) NULL DEFAULT NULL COMMENT '复制来源ID' AFTER `copy_from`;
|
||||
|
||||
ALTER TABLE `visualization_linkage_field`
|
||||
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `copy_from` bigint(0) NULL DEFAULT NULL COMMENT '复制来源' AFTER `update_time`,
|
||||
MODIFY COLUMN `copy_id` bigint(0) NULL DEFAULT NULL COMMENT '复制来源ID' AFTER `copy_from`;
|
||||
|
||||
ALTER TABLE `visualization_subject`
|
||||
MODIFY COLUMN `create_num` int(0) NOT NULL DEFAULT 0 COMMENT '创建序号' AFTER `cover_url`;
|
||||
|
||||
ALTER TABLE `visualization_template_category`
|
||||
MODIFY COLUMN `template_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '模版类型 system 系统内置 self 用户自建' AFTER `snapshot`;
|
||||
|
||||
ALTER TABLE `visualization_template_extend_data`
|
||||
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `dv_id` bigint(0) NULL DEFAULT NULL COMMENT '模板ID' AFTER `id`,
|
||||
MODIFY COLUMN `view_id` bigint(0) NULL DEFAULT NULL COMMENT '视图ID' AFTER `dv_id`,
|
||||
MODIFY COLUMN `view_details` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '视图详情' AFTER `view_id`,
|
||||
MODIFY COLUMN `copy_from` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '复制来源' AFTER `view_details`,
|
||||
MODIFY COLUMN `copy_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '复制来源ID' AFTER `copy_from`;
|
||||
|
||||
ALTER TABLE `core_opt_recent`
|
||||
MODIFY COLUMN `resource_type` int(0) NOT NULL COMMENT '资源类型 1-可视化资源 2-仪表板 3-数据大屏 4-数据集 5-数据源 6-模板' AFTER `uid`;
|
@ -0,0 +1,12 @@
|
||||
|
||||
DROP TABLE IF EXISTS `visualization_watermark`;
|
||||
CREATE TABLE `visualization_watermark` (
|
||||
`id` varchar(50) NOT NULL COMMENT '主键',
|
||||
`version` varchar(255) DEFAULT NULL COMMENT '版本号',
|
||||
`setting_content` longtext COMMENT '设置内容',
|
||||
`create_by` varchar(255) DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` bigint(13) DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) COMMENT='仪表板水印设置表';
|
||||
|
||||
INSERT INTO `visualization_watermark` (`id`, `version`, `setting_content`, `create_by`, `create_time`) VALUES ('system_default', '1.0', '{\"enable\":false,\"enablePanelCustom\":true,\"type\":\"custom\",\"content\":\"水印\",\"watermark_color\":\"#DD1010\",\"watermark_x_space\":12,\"watermark_y_space\":36,\"watermark_fontsize\":15}', 'admin', NULL);
|
@ -0,0 +1,177 @@
|
||||
ALTER TABLE `QRTZ_BLOB_TRIGGERS` COMMENT = '自定义触发器存储(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_CALENDARS` COMMENT = 'Quartz日历(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_CRON_TRIGGERS` COMMENT = 'CronTrigger存储(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_FIRED_TRIGGERS` COMMENT = '存储已经触发的trigger相关信息(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_JOB_DETAILS` COMMENT = '存储jobDetails信息(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_LOCKS` COMMENT = 'Quartz锁表,为多个节点调度提供分布式锁(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_PAUSED_TRIGGER_GRPS` COMMENT = '存放暂停掉的触发器(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_SCHEDULER_STATE` COMMENT = '存储所有节点的scheduler(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_SIMPLE_TRIGGERS` COMMENT = 'SimpleTrigger存储(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_SIMPROP_TRIGGERS` COMMENT = '存储CalendarIntervalTrigger和DailyTimeIntervalTrigger两种类型的触发器(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `QRTZ_TRIGGERS` COMMENT = '存储定义的trigger(开源作业调度框架Quartz)';
|
||||
ALTER TABLE `area` COMMENT = '地图区域表';
|
||||
ALTER TABLE `core_area_custom` COMMENT = '自定义地图区域信息表';
|
||||
ALTER TABLE `core_chart_view` COMMENT = '组件视图表';
|
||||
ALTER TABLE `core_dataset_group` COMMENT = '数据集分组表';
|
||||
ALTER TABLE `core_dataset_table` COMMENT = 'table数据集';
|
||||
ALTER TABLE `core_dataset_table_field` COMMENT = 'table数据集表字段';
|
||||
ALTER TABLE `core_dataset_table_sql_log` COMMENT = 'table数据集查询sql日志';
|
||||
ALTER TABLE `core_datasource` COMMENT = '数据源表';
|
||||
ALTER TABLE `core_datasource_task` COMMENT = '数据源定时同步任务';
|
||||
ALTER TABLE `core_datasource_task_log` COMMENT = '数据源定时同步任务执行日志';
|
||||
ALTER TABLE `core_de_engine` COMMENT = '数据引擎';
|
||||
ALTER TABLE `core_driver` COMMENT = '驱动';
|
||||
ALTER TABLE `core_driver_jar` COMMENT = '驱动详情';
|
||||
ALTER TABLE `core_menu` COMMENT = '路由菜单';
|
||||
ALTER TABLE `core_opt_recent` COMMENT = '可视化资源表';
|
||||
ALTER TABLE `core_rsa` COMMENT = 'rsa 密钥表';
|
||||
ALTER TABLE `core_store` COMMENT = '用户收藏表';
|
||||
ALTER TABLE `core_sys_setting` COMMENT = '系统设置表';
|
||||
ALTER TABLE `data_visualization_info` COMMENT = '可视化大屏信息表';
|
||||
ALTER TABLE `de_standalone_version` COMMENT = '数据库版本变更记录表';
|
||||
ALTER TABLE `license` COMMENT = '企业版许可证信息表';
|
||||
ALTER TABLE `per_api_key` COMMENT = 'API Key 密钥表';
|
||||
ALTER TABLE `per_auth_busi_role` COMMENT = '角色资源权限配置';
|
||||
ALTER TABLE `per_auth_busi_user` COMMENT = '用户资源权限配置';
|
||||
ALTER TABLE `per_auth_menu` COMMENT = '菜单资源权限配置';
|
||||
ALTER TABLE `per_busi_resource` COMMENT = '企业资源';
|
||||
ALTER TABLE `per_dataset_column_permissions` COMMENT = '数据集列权限';
|
||||
ALTER TABLE `per_dataset_row_permissions_tree` COMMENT = '数据集行权限';
|
||||
ALTER TABLE `per_embedded_instance` COMMENT = '嵌入式应用';
|
||||
ALTER TABLE `per_menu_resource` COMMENT = '菜单资源';
|
||||
ALTER TABLE `per_org` COMMENT = '组织机构';
|
||||
ALTER TABLE `per_role` COMMENT = '角色';
|
||||
ALTER TABLE `per_sys_setting` COMMENT = '系统设置表';
|
||||
ALTER TABLE `per_user` COMMENT = '用户表';
|
||||
ALTER TABLE `per_user_role` COMMENT = '用户角色表';
|
||||
ALTER TABLE `visualization_background` COMMENT = '边框背景表';
|
||||
ALTER TABLE `visualization_background_image` COMMENT = '背景图';
|
||||
ALTER TABLE `visualization_link_jump` COMMENT = '跳转记录表';
|
||||
ALTER TABLE `visualization_link_jump_info` COMMENT = '跳转配置表';
|
||||
ALTER TABLE `visualization_link_jump_target_view_info` COMMENT = '跳转目标仪表板视图字段配置表';
|
||||
ALTER TABLE `visualization_linkage` COMMENT = '联动记录表';
|
||||
ALTER TABLE `visualization_linkage_field` COMMENT = '联动字段';
|
||||
ALTER TABLE `visualization_subject` COMMENT = '主题表';
|
||||
ALTER TABLE `visualization_template_extend_data` COMMENT = '模板视图明细信息表';
|
||||
ALTER TABLE `xpack_setting_authentication` COMMENT = '认证设置';
|
||||
ALTER TABLE `xpack_share` COMMENT = '公共链接';
|
||||
|
||||
ALTER TABLE `core_dataset_group`
|
||||
MODIFY COLUMN `qrtz_instance` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'Quartz 实例 ID' AFTER `create_time`;
|
||||
|
||||
ALTER TABLE `core_dataset_table_field`
|
||||
MODIFY COLUMN `size` int(0) NULL DEFAULT NULL COMMENT '字段长度(允许为空,默认0)' AFTER `type`,
|
||||
MODIFY COLUMN `date_format` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '时间字段类型' AFTER `accuracy`;
|
||||
|
||||
ALTER TABLE `core_datasource_task`
|
||||
MODIFY COLUMN `extra_data` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '额外数据' AFTER `last_exec_status`;
|
||||
|
||||
ALTER TABLE `core_datasource_task_log`
|
||||
MODIFY COLUMN `trigger_type` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新频率类型' AFTER `create_time`;
|
||||
|
||||
ALTER TABLE `core_driver_jar`
|
||||
MODIFY COLUMN `trans_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '替换后的 jar 包名称' AFTER `driver_class`,
|
||||
MODIFY COLUMN `is_trans_name` tinyint(1) NULL DEFAULT NULL COMMENT '是否将上传 jar 包替换了名称(1-是,0-否)' AFTER `trans_name`;
|
||||
|
||||
ALTER TABLE `core_rsa`
|
||||
MODIFY COLUMN `aes_key` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'AES 加密算法的 key' AFTER `create_time`;
|
||||
|
||||
ALTER TABLE `data_visualization_info`
|
||||
MODIFY COLUMN `id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键' FIRST;
|
||||
|
||||
ALTER TABLE `de_standalone_version`
|
||||
MODIFY COLUMN `installed_rank` int(0) NOT NULL COMMENT '执行顺序(主键)' FIRST,
|
||||
MODIFY COLUMN `version` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '版本' AFTER `installed_rank`,
|
||||
MODIFY COLUMN `description` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '描述' AFTER `version`,
|
||||
MODIFY COLUMN `type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '类型' AFTER `description`,
|
||||
MODIFY COLUMN `script` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '脚本名称' AFTER `type`,
|
||||
MODIFY COLUMN `checksum` int(0) NULL DEFAULT NULL COMMENT '脚本内容一致性校验码' AFTER `script`,
|
||||
MODIFY COLUMN `installed_by` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '执行用户' AFTER `checksum`,
|
||||
MODIFY COLUMN `installed_on` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '执行时间' AFTER `installed_by`,
|
||||
MODIFY COLUMN `execution_time` int(0) NOT NULL COMMENT '执行时长' AFTER `installed_on`,
|
||||
MODIFY COLUMN `success` tinyint(1) NOT NULL COMMENT '状态(1-成功,0-失败)' AFTER `execution_time`;
|
||||
|
||||
ALTER TABLE `license`
|
||||
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `update_time` bigint(0) NULL DEFAULT NULL COMMENT '更新时间' AFTER `id`,
|
||||
MODIFY COLUMN `license` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT 'license' AFTER `update_time`,
|
||||
MODIFY COLUMN `f2c_license` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT 'F2C License' AFTER `license`;
|
||||
|
||||
ALTER TABLE `per_dataset_column_permissions`
|
||||
MODIFY COLUMN `update_time` bigint(0) NULL DEFAULT NULL COMMENT '更新时间' AFTER `white_list_user`;
|
||||
|
||||
ALTER TABLE `per_dataset_row_permissions_tree`
|
||||
MODIFY COLUMN `update_time` bigint(0) NULL DEFAULT NULL COMMENT '更新时间' AFTER `white_list_dept`;
|
||||
|
||||
ALTER TABLE `per_user`
|
||||
MODIFY COLUMN `pwd` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '密码' AFTER `account`;
|
||||
|
||||
ALTER TABLE `visualization_background`
|
||||
MODIFY COLUMN `id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '名称' AFTER `id`,
|
||||
MODIFY COLUMN `classification` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '分类名' AFTER `name`,
|
||||
MODIFY COLUMN `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '内容' AFTER `classification`,
|
||||
MODIFY COLUMN `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注' AFTER `content`,
|
||||
MODIFY COLUMN `sort` int(0) NULL DEFAULT NULL COMMENT '排序' AFTER `remark`,
|
||||
MODIFY COLUMN `upload_time` bigint(0) NULL DEFAULT NULL COMMENT '上传时间' AFTER `sort`,
|
||||
MODIFY COLUMN `base_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所在目录地址' AFTER `upload_time`,
|
||||
MODIFY COLUMN `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '图片url' AFTER `base_url`;
|
||||
|
||||
ALTER TABLE `visualization_background_image`
|
||||
MODIFY COLUMN `id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '名称' AFTER `id`,
|
||||
MODIFY COLUMN `classification` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '分类名' AFTER `name`,
|
||||
MODIFY COLUMN `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '内容' AFTER `classification`,
|
||||
MODIFY COLUMN `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注' AFTER `content`,
|
||||
MODIFY COLUMN `sort` int(0) NULL DEFAULT NULL COMMENT '排序' AFTER `remark`,
|
||||
MODIFY COLUMN `upload_time` bigint(0) NULL DEFAULT NULL COMMENT '上传时间' AFTER `sort`,
|
||||
MODIFY COLUMN `base_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所在目录地址' AFTER `upload_time`,
|
||||
MODIFY COLUMN `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '图片url' AFTER `base_url`;
|
||||
|
||||
ALTER TABLE `visualization_link_jump`
|
||||
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `copy_from` bigint(0) NULL DEFAULT NULL COMMENT '复制来源' AFTER `checked`,
|
||||
MODIFY COLUMN `copy_id` bigint(0) NULL DEFAULT NULL COMMENT '复制来源ID' AFTER `copy_from`;
|
||||
|
||||
ALTER TABLE `visualization_link_jump_info`
|
||||
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `copy_from` bigint(0) NULL DEFAULT NULL COMMENT '复制来源' AFTER `attach_params`,
|
||||
MODIFY COLUMN `copy_id` bigint(0) NULL DEFAULT NULL COMMENT '复制来源ID' AFTER `copy_from`;
|
||||
|
||||
ALTER TABLE `visualization_link_jump_target_view_info`
|
||||
MODIFY COLUMN `target_id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `link_jump_info_id` bigint(0) NULL DEFAULT NULL COMMENT 'visualization_link_jump_info 表的 ID' AFTER `target_id`,
|
||||
MODIFY COLUMN `target_view_id` bigint(0) NULL DEFAULT NULL COMMENT '目标视图ID' AFTER `source_field_active_id`,
|
||||
MODIFY COLUMN `target_field_id` bigint(0) NULL DEFAULT NULL COMMENT '目标字段ID' AFTER `target_view_id`,
|
||||
MODIFY COLUMN `copy_from` bigint(0) NULL DEFAULT NULL COMMENT '复制来源' AFTER `target_field_id`,
|
||||
MODIFY COLUMN `copy_id` bigint(0) NULL DEFAULT NULL COMMENT '复制来源ID' AFTER `copy_from`;
|
||||
|
||||
ALTER TABLE `visualization_linkage`
|
||||
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `dv_id` bigint(0) NULL DEFAULT NULL COMMENT '联动大屏/仪表板ID' AFTER `id`,
|
||||
MODIFY COLUMN `ext1` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '扩展字段1' AFTER `linkage_active`,
|
||||
MODIFY COLUMN `ext2` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '扩展字段2' AFTER `ext1`,
|
||||
MODIFY COLUMN `copy_from` bigint(0) NULL DEFAULT NULL COMMENT '复制来源' AFTER `ext2`,
|
||||
MODIFY COLUMN `copy_id` bigint(0) NULL DEFAULT NULL COMMENT '复制来源ID' AFTER `copy_from`;
|
||||
|
||||
ALTER TABLE `visualization_linkage_field`
|
||||
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `copy_from` bigint(0) NULL DEFAULT NULL COMMENT '复制来源' AFTER `update_time`,
|
||||
MODIFY COLUMN `copy_id` bigint(0) NULL DEFAULT NULL COMMENT '复制来源ID' AFTER `copy_from`;
|
||||
|
||||
ALTER TABLE `visualization_subject`
|
||||
MODIFY COLUMN `create_num` int(0) NOT NULL DEFAULT 0 COMMENT '创建序号' AFTER `cover_url`;
|
||||
|
||||
ALTER TABLE `visualization_template_category`
|
||||
MODIFY COLUMN `template_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '模版类型 system 系统内置 self 用户自建' AFTER `snapshot`;
|
||||
|
||||
ALTER TABLE `visualization_template_extend_data`
|
||||
MODIFY COLUMN `id` bigint(0) NOT NULL COMMENT '主键' FIRST,
|
||||
MODIFY COLUMN `dv_id` bigint(0) NULL DEFAULT NULL COMMENT '模板ID' AFTER `id`,
|
||||
MODIFY COLUMN `view_id` bigint(0) NULL DEFAULT NULL COMMENT '视图ID' AFTER `dv_id`,
|
||||
MODIFY COLUMN `view_details` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '视图详情' AFTER `view_id`,
|
||||
MODIFY COLUMN `copy_from` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '复制来源' AFTER `view_details`,
|
||||
MODIFY COLUMN `copy_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '复制来源ID' AFTER `copy_from`;
|
||||
|
||||
ALTER TABLE `core_opt_recent`
|
||||
MODIFY COLUMN `resource_type` int(0) NOT NULL COMMENT '资源类型 1-可视化资源 2-仪表板 3-数据大屏 4-数据集 5-数据源 6-模板' AFTER `uid`;
|
@ -0,0 +1,12 @@
|
||||
|
||||
DROP TABLE IF EXISTS `visualization_watermark`;
|
||||
CREATE TABLE `visualization_watermark` (
|
||||
`id` varchar(50) NOT NULL COMMENT '主键',
|
||||
`version` varchar(255) DEFAULT NULL COMMENT '版本号',
|
||||
`setting_content` longtext COMMENT '设置内容',
|
||||
`create_by` varchar(255) DEFAULT NULL COMMENT '创建人',
|
||||
`create_time` bigint(13) DEFAULT NULL COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) COMMENT='仪表板水印设置表';
|
||||
|
||||
INSERT INTO `visualization_watermark` (`id`, `version`, `setting_content`, `create_by`, `create_time`) VALUES ('system_default', '1.0', '{\"enable\":false,\"enablePanelCustom\":true,\"type\":\"custom\",\"content\":\"水印\",\"watermark_color\":\"#DD1010\",\"watermark_x_space\":12,\"watermark_y_space\":36,\"watermark_fontsize\":15}', 'admin', NULL);
|
@ -1,4 +1,5 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export const searchRoleApi = (keyword: string) =>
|
||||
request.post({ url: '/role/query', data: { keyword } })
|
||||
export const watermarkSave = params => request.post({ url: '/watermark/save', data: params })
|
||||
|
||||
export const watermarkFind = () => request.get({ url: 'watermark/find' })
|
||||
|
BIN
core/core-frontend/src/assets/img/watermark-demo-dark.png
Normal file
BIN
core/core-frontend/src/assets/img/watermark-demo-dark.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 166 KiB |
BIN
core/core-frontend/src/assets/img/watermark-demo-light.png
Normal file
BIN
core/core-frontend/src/assets/img/watermark-demo-light.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 217 KiB |
@ -2131,5 +2131,24 @@ export default {
|
||||
template_manage: {
|
||||
name_already_exists_type: '分类名称已存在',
|
||||
the_same_category: '同一分类下,该模板名称已存在'
|
||||
},
|
||||
watermark: {
|
||||
support_params: '当前支持的参数:',
|
||||
enable: '启用水印',
|
||||
enable_panel_custom: '允许仪表板单独打开或者关闭水印',
|
||||
content: '水印内容',
|
||||
custom_content: '自定义公式',
|
||||
account: '账号',
|
||||
nick_name: '昵称',
|
||||
ip: 'IP',
|
||||
now: '当前时间',
|
||||
watermark_color: '水印颜色',
|
||||
watermark_font_size: '水印字号',
|
||||
watermark_space: '水印间距',
|
||||
horizontal: '横向间距',
|
||||
vertical: '纵向间距',
|
||||
reset: '重置',
|
||||
preview: '预览',
|
||||
save: '保存'
|
||||
}
|
||||
}
|
||||
|
33
core/core-frontend/src/views/watermark/ParamsTips.vue
Normal file
33
core/core-frontend/src/views/watermark/ParamsTips.vue
Normal file
@ -0,0 +1,33 @@
|
||||
<template>
|
||||
<div class="tips-class">
|
||||
<el-tooltip class="item" effect="dark" placement="bottom">
|
||||
<template #content>
|
||||
<div>
|
||||
<span>{{ t('watermark.support_params') }}</span
|
||||
><br />
|
||||
<span>${username}-{{ t('watermark.account') }}</span
|
||||
><br />
|
||||
<span>${nickName}-{{ t('watermark.nick_name') }}</span
|
||||
><br />
|
||||
<span>${time}-{{ t('watermark.now') }}</span
|
||||
><br />
|
||||
<span>${ip}-IP</span><br />
|
||||
</div>
|
||||
</template>
|
||||
<span><i class="el-icon-warning" /></span>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { useI18n } from '@/hooks/web/useI18n'
|
||||
const { t } = useI18n()
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.tips-class {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
z-index: 10;
|
||||
}
|
||||
</style>
|
304
core/core-frontend/src/views/watermark/index.vue
Normal file
304
core/core-frontend/src/views/watermark/index.vue
Normal file
@ -0,0 +1,304 @@
|
||||
<template xmlns:el-col="http://www.w3.org/1999/html">
|
||||
<p class="router-title">水印管理</p>
|
||||
<el-row class="watermark-table__content">
|
||||
<el-row class="watermark-main-outer">
|
||||
<el-col class="main-col-left" :span="12">
|
||||
<el-form ref="watermarkForm" :model="state.watermarkForm" label-width="120px" size="middle">
|
||||
<el-form-item :label="t('watermark.enable')" style="text-align: left">
|
||||
<el-switch
|
||||
size="middle"
|
||||
v-model="state.watermarkForm.enable"
|
||||
@change="enableChange"
|
||||
></el-switch>
|
||||
</el-form-item>
|
||||
<el-form-item label="" style="text-align: left">
|
||||
<el-checkbox
|
||||
:disabled="!state.watermarkForm.enable"
|
||||
v-model="state.watermarkForm.enablePanelCustom"
|
||||
></el-checkbox>
|
||||
{{ t('watermark.enable_panel_custom') }}
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('watermark.content')" style="text-align: left">
|
||||
<el-select :disabled="!state.watermarkForm.enable" v-model="state.watermarkForm.type">
|
||||
<el-option :label="t('watermark.custom_content')" value="custom" />
|
||||
<el-option :label="t('watermark.account')" value="userName" />
|
||||
<el-option :label="t('watermark.nick_name')" value="nickName" />
|
||||
<el-option :label="t('watermark.ip')" value="ip" />
|
||||
<el-option :label="t('watermark.now')" value="time" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
label=""
|
||||
v-show="state.watermarkForm.type === 'custom'"
|
||||
style="text-align: left"
|
||||
>
|
||||
<params-tips></params-tips>
|
||||
<el-input
|
||||
:disabled="!state.watermarkForm.enable"
|
||||
v-model="state.watermarkForm.content"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 4, maxRows: 4 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item :label="t('watermark.watermark_color')" style="text-align: left">
|
||||
<el-color-picker
|
||||
:disabled="!state.watermarkForm.enable"
|
||||
v-model="state.watermarkForm.watermark_color"
|
||||
:predefine="state.predefineColors"
|
||||
size="middle"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('watermark.watermark_font_size')" style="text-align: left">
|
||||
<el-input-number
|
||||
:disabled="!state.watermarkForm.enable"
|
||||
v-model="state.watermarkForm.watermark_fontsize"
|
||||
:min="12"
|
||||
:max="32"
|
||||
size="middle"
|
||||
/>
|
||||
px
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('watermark.horizontal')" style="text-align: left">
|
||||
<el-input-number
|
||||
:disabled="!state.watermarkForm.enable"
|
||||
v-model="state.watermarkForm.watermark_x_space"
|
||||
:min="10"
|
||||
:max="400"
|
||||
/>
|
||||
px
|
||||
</el-form-item>
|
||||
<el-form-item :label="t('watermark.vertical')" style="text-align: left">
|
||||
<el-input-number
|
||||
:disabled="!state.watermarkForm.enable"
|
||||
v-model="state.watermarkForm.watermark_y_space"
|
||||
:min="10"
|
||||
:max="400"
|
||||
/>
|
||||
px
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-row style="margin-left: 53px; text-align: left">
|
||||
<el-button size="middle" type="i" @click="cancel">{{ t('watermark.reset') }} </el-button>
|
||||
<el-button size="middle" type="info" @click="preview"
|
||||
>{{ t('watermark.preview') }}
|
||||
</el-button>
|
||||
<el-button type="primary" size="middle" @click="save"
|
||||
>{{ t('watermark.save') }}
|
||||
</el-button>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :span="12" style="height: 100%">
|
||||
<div
|
||||
id="watermark-demo"
|
||||
style="position: relative; width: 100%; height: 100%; padding: 20px"
|
||||
>
|
||||
<div class="demo-preview">
|
||||
<img style="height: 100%" src="@/assets/img/watermark-demo-light.png" />
|
||||
</div>
|
||||
<div class="demo-preview" style="margin-top: 15px">
|
||||
<img style="height: 100%" src="@/assets/img/watermark-demo-dark.png" />
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-row>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { onMounted, reactive, ref } from 'vue'
|
||||
import { watermarkFind, watermarkSave } from '@/api/watermark'
|
||||
import { ElMessage } from 'element-plus-secondary/es'
|
||||
import { personInfoApi } from '@/api/user'
|
||||
import { getNow, watermark } from '@/components/watermark/watermark'
|
||||
import { useI18n } from '@/hooks/web/useI18n'
|
||||
const { t } = useI18n()
|
||||
|
||||
const state = reactive({
|
||||
userLoginInfo: {
|
||||
username: '',
|
||||
nickName: '',
|
||||
ip: ''
|
||||
},
|
||||
cmOption: {
|
||||
tabSize: 2,
|
||||
styleActiveLine: true,
|
||||
lineNumbers: true,
|
||||
line: true,
|
||||
mode: 'text/x-textile',
|
||||
theme: 'solarized',
|
||||
hintOptions: {
|
||||
// 自定义提示选项
|
||||
completeSingle: false // 当匹配只有一项的时候是否自动补全
|
||||
}
|
||||
},
|
||||
watermarkFormSource: null,
|
||||
predefineColors: [
|
||||
'#ff4500',
|
||||
'#ff8c00',
|
||||
'#ffd700',
|
||||
'#90ee90',
|
||||
'#00ced1',
|
||||
'#1e90ff',
|
||||
'#c71585',
|
||||
'#999999',
|
||||
'#000000',
|
||||
'#FFFFFF'
|
||||
],
|
||||
watermarkForm: {
|
||||
enable: false,
|
||||
enablePanelCustom: false,
|
||||
type: 'userName',
|
||||
content: '${time}-${ip}-${nickName}',
|
||||
watermark_color: '#999999',
|
||||
watermark_x_space: 100,
|
||||
watermark_y_space: 100,
|
||||
watermark_fontsize: 20
|
||||
}
|
||||
})
|
||||
|
||||
const enableChange = val => {
|
||||
initWatermark()
|
||||
}
|
||||
|
||||
const preview = () => {
|
||||
initWatermark()
|
||||
}
|
||||
|
||||
const cancel = () => {
|
||||
state.watermarkForm = { ...state.watermarkFormSource }
|
||||
const params = {
|
||||
settingContent: JSON.stringify(state.watermarkForm)
|
||||
}
|
||||
watermarkSave(params).then(rsp => {
|
||||
//ignore
|
||||
})
|
||||
initWatermark()
|
||||
}
|
||||
|
||||
const save = () => {
|
||||
const params = {
|
||||
settingContent: JSON.stringify(state.watermarkForm)
|
||||
}
|
||||
watermarkSave(params).then(rsp => {
|
||||
ElMessage.success('保存成功')
|
||||
})
|
||||
}
|
||||
|
||||
const findData = callback => {
|
||||
watermarkFind().then(rsp => {
|
||||
callback(rsp)
|
||||
})
|
||||
}
|
||||
|
||||
const findUserData = callback => {
|
||||
personInfoApi().then(rsp => {
|
||||
callback(rsp)
|
||||
})
|
||||
}
|
||||
|
||||
const initData = () => {
|
||||
findData(res => {
|
||||
state.watermarkForm = JSON.parse(res.data.settingContent)
|
||||
state.watermarkFormSource = { ...state.watermarkForm }
|
||||
initWatermark()
|
||||
})
|
||||
}
|
||||
|
||||
const initWatermark = () => {
|
||||
let watermark_txt
|
||||
let watermark_width = 120
|
||||
if (state.watermarkForm.type === 'custom') {
|
||||
watermark_txt = state.watermarkForm.content
|
||||
watermark_txt = watermark_txt.replaceAll('${ip}', state.userLoginInfo.ip)
|
||||
watermark_txt = watermark_txt.replaceAll('${username}', state.userLoginInfo.name)
|
||||
watermark_txt = watermark_txt.replaceAll('${nickName}', state.userLoginInfo.account)
|
||||
watermark_txt = watermark_txt.replaceAll('${time}', getNow())
|
||||
watermark_width = watermark_txt.length * state.watermarkForm.watermark_fontsize * 0.75
|
||||
watermark_width = watermark_width > 350 ? 350 : watermark_width
|
||||
} else if (state.watermarkForm.type === 'nickName') {
|
||||
watermark_txt = state.userLoginInfo.account
|
||||
} else if (state.watermarkForm.type === 'ip') {
|
||||
watermark_txt = state.userLoginInfo.ip
|
||||
watermark_width = watermark_txt.length * state.watermarkForm.watermark_fontsize + 30
|
||||
} else if (state.watermarkForm.type === 'time') {
|
||||
watermark_txt = getNow()
|
||||
watermark_width = 200
|
||||
} else {
|
||||
watermark_txt = state.userLoginInfo.name
|
||||
}
|
||||
const settings = {
|
||||
watermark_enable: state.watermarkForm.enable,
|
||||
watermark_txt: watermark_txt,
|
||||
watermark_width: watermark_width,
|
||||
watermark_color: state.watermarkForm.watermark_color,
|
||||
watermark_x_space: state.watermarkForm.watermark_x_space,
|
||||
watermark_y_space: state.watermarkForm.watermark_y_space,
|
||||
watermark_fontsize: state.watermarkForm.watermark_fontsize + 'px'
|
||||
}
|
||||
// 清理历史水印
|
||||
const historyWatermarkDom = document.getElementById('de-watermark-server')
|
||||
if (historyWatermarkDom) {
|
||||
historyWatermarkDom.remove()
|
||||
}
|
||||
if (state.watermarkForm.enable) {
|
||||
watermark(settings, 'watermark-demo')
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
findUserData(res => {
|
||||
state.userLoginInfo = res.data
|
||||
initData()
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.demo-preview {
|
||||
height: calc(50vh - 130px);
|
||||
width: 100%;
|
||||
float: left;
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.main-col-left {
|
||||
overflow-y: auto;
|
||||
min-width: 240px;
|
||||
padding-right: 20px;
|
||||
padding-top: 20px;
|
||||
height: 100%;
|
||||
border-right: 1px solid gainsboro;
|
||||
}
|
||||
|
||||
.watermark-main-outer {
|
||||
border: 1px solid gainsboro;
|
||||
height: calc(100vh - 180px);
|
||||
min-width: 800px;
|
||||
min-height: 500px;
|
||||
overflow-y: hidden;
|
||||
}
|
||||
|
||||
.router-title {
|
||||
color: #1f2329;
|
||||
font-feature-settings: 'clig' off, 'liga' off;
|
||||
font-family: PingFang SC;
|
||||
font-size: 20px;
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
line-height: 28px;
|
||||
}
|
||||
.watermark-table__content {
|
||||
padding: 24px;
|
||||
width: 100%;
|
||||
background: var(--ContentBG, #ffffff);
|
||||
height: calc(100% - 40px) !important;
|
||||
box-sizing: border-box;
|
||||
margin-top: 12px;
|
||||
overflow-x: auto;
|
||||
border-radius: 4px;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,27 @@
|
||||
package io.dataease.api.visualization;
|
||||
|
||||
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
|
||||
import io.dataease.api.visualization.request.VisualizationSubjectRequest;
|
||||
import io.dataease.api.visualization.request.VisualizationWatermarkRequest;
|
||||
import io.dataease.api.visualization.vo.VisualizationSubjectVO;
|
||||
import io.dataease.api.visualization.vo.VisualizationWatermarkVO;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Tag(name = "可视化管理:水印")
|
||||
@ApiSupport(order = 994)
|
||||
public interface VisualizationWatermarkApi {
|
||||
|
||||
|
||||
@ResponseBody
|
||||
@GetMapping("/find")
|
||||
VisualizationWatermarkVO getWatermarkInfo();
|
||||
|
||||
@ResponseBody
|
||||
@PostMapping("/save")
|
||||
void saveWatermarkInfo(@RequestBody VisualizationWatermarkRequest watermarkRequest);
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package io.dataease.api.visualization.request;
|
||||
|
||||
import io.dataease.api.visualization.vo.VisualizationWatermarkVO;
|
||||
|
||||
/**
|
||||
* @author : WangJiaHao
|
||||
* @date : 2024/1/10 17:02
|
||||
*/
|
||||
public class VisualizationWatermarkRequest extends VisualizationWatermarkVO {
|
||||
}
|
Loading…
Reference in New Issue
Block a user