Merge branch 'v1.9' of github.com:dataease/dataease into v1.9

This commit is contained in:
taojinlong 2022-04-02 16:43:25 +08:00
commit 77a5ba4baf
21 changed files with 303 additions and 159 deletions

View File

@ -45,4 +45,7 @@ public interface ExtChartViewMapper {
void copyCacheToView(@Param("viewIds") List<String> viewIds );
int updateToCache(@Param("viewId") String viewId );
void copyCache(@Param("sourceViewId") String sourceViewId,@Param("newViewId") String newViewId);
}

View File

@ -89,6 +89,69 @@
chart_view.id = #{id}
</insert>
<insert id="copyCache">
INSERT INTO chart_view_cache (
id,
`name`,
title,
scene_id,
table_id,
`type`,
render,
result_count,
result_mode,
create_by,
create_time,
update_time,
style_priority,
chart_type,
is_plugin,
x_axis,
x_axis_ext,
y_axis,
y_axis_ext,
ext_stack,
ext_bubble,
custom_attr,
custom_style,
custom_filter,
drill_fields,
senior,
SNAPSHOT,
data_from
) SELECT
#{newViewId} as id,
`name`,
title,
scene_id,
table_id,
`type`,
render,
result_count,
result_mode,
create_by,
create_time,
update_time,
style_priority,
chart_type,
is_plugin,
x_axis,
x_axis_ext,
y_axis,
y_axis_ext,
ext_stack,
ext_bubble,
custom_attr,
custom_style,
custom_filter,
drill_fields,
senior,
SNAPSHOT,
data_from from chart_view_cache
WHERE
chart_view_cache.id = #{sourceViewId}
</insert>
<!-- <select id="searchOne" resultMap="BaseResultMapDTO">-->
<!-- select-->
<!-- id, `name`, scene_id, table_id, `type`, title, create_by, create_time, update_time,-->
@ -200,8 +263,8 @@
`custom_filter`,
`drill_fields`,
`create_by`,
`create_time`,
`update_time`,
unix_timestamp()*1000 as `create_time`,
unix_timestamp()*1000 as `update_time`,
`snapshot`,
`style_priority`,
`ext_stack`,
@ -404,4 +467,37 @@
#{viewId}
</foreach>
</update>
<update id="updateToCache">
UPDATE chart_view_cache cv,
chart_view cve
SET cv.`name` = cve.`name`,
cv.title = cve.title,
cv.scene_id = cve.scene_id,
cv.table_id = cve.table_id,
cv.`type` = cve.`type`,
cv.render = cve.render,
cv.result_count = cve.result_count,
cv.result_mode = cve.result_mode,
cv.create_by = cve.create_by,
cv.create_time = cve.create_time,
cv.update_time = cve.update_time,
cv.style_priority = cve.style_priority,
cv.chart_type = cve.chart_type,
cv.is_plugin = cve.is_plugin,
cv.x_axis = cve.x_axis,
cv.x_axis_ext = cve.x_axis_ext,
cv.y_axis = cve.y_axis,
cv.y_axis_ext = cve.y_axis_ext,
cv.ext_stack = cve.ext_stack,
cv.ext_bubble = cve.ext_bubble,
cv.custom_attr = cve.custom_attr,
cv.custom_style = cve.custom_style,
cv.custom_filter = cve.custom_filter,
cv.drill_fields = cve.drill_fields,
cv.senior = cve.senior,
cv.SNAPSHOT = cve.SNAPSHOT,
cv.data_from = cve.data_from
where cve.id = cv.id and cv.id =#{viewId}
</update>
</mapper>

View File

@ -5,8 +5,8 @@ import org.apache.ibatis.annotations.Param;
public interface ExtSysAuthMapper {
Boolean checkTreeNoManageCount(@Param("userId") Long userId , @Param("modelType") String modelType, @Param("nodeId") String nodeId);
Boolean checkTreeNoManageCount(@Param("userId") Long userId, @Param("modelType") String modelType, @Param("nodeId") String nodeId);
String copyAuth(@Param("authSource") String authSource, @Param("authSourceType") String authSourceType, @Param("authUser") String authUser);
}

View File

@ -14,4 +14,8 @@
select if(CHECK_TREE_NO_MANAGE_PRIVILEGE(#{userId},#{modelType},#{nodeId})>0,1,0)
</select>
<select id="copyAuth" resultType="String">
select copy_auth(#{authSource},#{authSourceType},#{authUser})
</select>
</mapper>

View File

@ -0,0 +1,16 @@
package io.dataease.commons.constants;
/**
* Author: wangjiahao
* Date: 2022/4/2
* Description:
*/
public class SysAuthConstants {
public final static String AUTH_SOURCE_TYPE_PANEL = "panel";
public final static String AUTH_SOURCE_TYPE_DATASET = "dataset";
public final static String AUTH_SOURCE_TYPE_DATASOURCE = "link";
}

View File

@ -13,6 +13,7 @@ import io.dataease.controller.request.chart.ChartViewCacheRequest;
import io.dataease.controller.request.chart.ChartViewRequest;
import io.dataease.controller.response.ChartDetail;
import io.dataease.dto.chart.ChartViewDTO;
import io.dataease.service.chart.ChartViewCacheService;
import io.dataease.service.chart.ChartViewService;
import io.dataease.service.panel.PanelViewService;
import io.swagger.annotations.Api;
@ -34,8 +35,9 @@ import java.util.List;
public class ChartViewController {
@Resource
private ChartViewService chartViewService;
@Resource
private PanelViewService panelViewService;
private ChartViewCacheService chartViewCacheService;
@DePermission(type = DePermissionType.PANEL, level = ResourceAuthLevel.PANNEL_LEVEL_MANAGE)
@ApiOperation("保存")
@ -150,7 +152,7 @@ public class ChartViewController {
@ApiOperation("重置视图缓存")
@PostMapping("/resetViewCache/{id}/{panelId}")
public void resetViewCache(@PathVariable String id, @PathVariable String panelId) {
chartViewService.resetViewCache(id);
chartViewCacheService.refreshCache(id);
}
}

View File

@ -0,0 +1,28 @@
package io.dataease.service.chart;
import io.dataease.base.mapper.ChartViewCacheMapper;
import io.dataease.base.mapper.ext.ExtChartViewMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/**
* Author: wangjiahao
* Date: 2022/4/2
* Description:
*/
@Service
public class ChartViewCacheService {
@Resource
private ExtChartViewMapper extChartViewMapper;
@Transactional
public void refreshCache(String viewId){
if(extChartViewMapper.updateToCache(viewId)==0){
extChartViewMapper.copyToCache(viewId);
}
}
}

View File

@ -97,6 +97,8 @@ public class ChartViewService {
private PanelGroupExtendDataService extendDataService;
@Resource
private ExtPanelGroupExtendDataMapper extPanelGroupExtendDataMapper;
@Resource
private ChartViewCacheService chartViewCacheService;
//默认使用非公平
@ -130,7 +132,7 @@ public class ChartViewService {
chartView.setUpdateTime(timestamp);
chartViewMapper.insertSelective(chartView);
// 新建的视图也存入缓存表中
extChartViewMapper.copyToCache(chartView.getId());
chartViewCacheService.refreshCache(chartView.getId());
PanelView newPanelView = new PanelView();
newPanelView.setId(UUIDUtil.getUUIDAsString());
@ -154,27 +156,6 @@ public class ChartViewService {
});
}
// // 直接保存统一到缓存表
// public ChartViewWithBLOBs save(ChartViewRequest chartView) {
// checkName(chartView);
// long timestamp = System.currentTimeMillis();
// chartView.setUpdateTime(timestamp);
// if (ObjectUtils.isEmpty(chartView.getId())) {
// chartView.setId(UUID.randomUUID().toString());
// chartView.setCreateBy(AuthUtils.getUser().getUsername());
// chartView.setCreateTime(timestamp);
// chartView.setUpdateTime(timestamp);
// chartViewMapper.insertSelective(chartView);
// } else {
// chartViewMapper.updateByPrimaryKeySelective(chartView);
// }
// Optional.ofNullable(chartView.getId()).ifPresent(id -> {
// CacheUtils.remove(JdbcConstants.VIEW_CACHE_KEY, id);
// });
// return getOneWithPermission(chartView.getId());
// }
public List<ChartViewDTO> list(ChartViewRequest chartViewRequest) {
chartViewRequest.setUserId(String.valueOf(AuthUtils.getUser().getUserId()));
return extChartViewMapper.search(chartViewRequest);
@ -268,7 +249,7 @@ public class ChartViewService {
//仪表板编辑页面 从缓存表中取数据 缓存表中没有数据则进行插入
result = extChartViewMapper.searchOneFromCache(id);
if (result == null) {
extChartViewMapper.copyToCache(id);
chartViewCacheService.refreshCache(id);
result = extChartViewMapper.searchOneFromCache(id);
}
} else {
@ -1047,8 +1028,9 @@ public class ChartViewService {
public String chartCopy(String id, String panelId) {
String newChartId = UUID.randomUUID().toString();
extChartViewMapper.chartCopy(newChartId, id, panelId);
extChartViewMapper.copyCache(id,newChartId);
extPanelGroupExtendDataMapper.copyExtendData(id,newChartId,panelId);
extChartViewMapper.copyToCache(newChartId);
chartViewCacheService.refreshCache(id);
return newChartId;
}
@ -1082,9 +1064,4 @@ public class ChartViewService {
extChartViewMapper.deleteCacheWithPanel(panelId);
}
public void resetViewCache(String viewId) {
extChartViewMapper.deleteViewCache(viewId);
extChartViewMapper.copyToCache(viewId);
}
}

View File

@ -7,6 +7,7 @@ import io.dataease.base.mapper.DatasetGroupMapper;
import io.dataease.base.mapper.ext.ExtDataSetGroupMapper;
import io.dataease.commons.constants.AuthConstants;
import io.dataease.commons.constants.DePermissionType;
import io.dataease.commons.constants.SysAuthConstants;
import io.dataease.commons.utils.AuthUtils;
import io.dataease.commons.utils.BeanUtils;
import io.dataease.commons.utils.TreeUtils;
@ -54,8 +55,10 @@ public class DataSetGroupService {
datasetGroup.setCreateBy(AuthUtils.getUser().getUsername());
datasetGroup.setCreateTime(System.currentTimeMillis());
datasetGroupMapper.insert(datasetGroup);
String userName = AuthUtils.getUser().getUsername();
// 清理权限缓存
CacheUtils.removeAll(AuthConstants.USER_PERMISSION_CACHE_NAME);
sysAuthService.copyAuth(datasetGroup.getId(), SysAuthConstants.AUTH_SOURCE_TYPE_DATASET);
} else {
datasetGroupMapper.updateByPrimaryKeySelective(datasetGroup);
}

View File

@ -33,6 +33,7 @@ import io.dataease.provider.datasource.JdbcProvider;
import io.dataease.provider.DDLProvider;
import io.dataease.provider.QueryProvider;
import io.dataease.service.engine.EngineService;
import io.dataease.service.sys.SysAuthService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
@ -102,6 +103,8 @@ public class DataSetTableService {
private PermissionService permissionService;
@Resource
private EngineService engineService;
@Resource
private SysAuthService sysAuthService;
private static boolean isUpdatingDatasetTableStatus = false;
private static final String lastUpdateTime = "${__last_update_time__}";
@ -261,6 +264,10 @@ public class DataSetTableService {
datasetTable.setCreateBy(AuthUtils.getUser().getUsername());
datasetTable.setCreateTime(System.currentTimeMillis());
int insert = datasetTableMapper.insert(datasetTable);
// 清理权限缓存
CacheUtils.removeAll(AuthConstants.USER_PERMISSION_CACHE_NAME);
sysAuthService.copyAuth(datasetTable.getId(), SysAuthConstants.AUTH_SOURCE_TYPE_DATASET);
// 添加表成功后获取当前表字段和类型抽象到dataease数据库
if (insert == 1) {
saveTableField(datasetTable);

View File

@ -11,6 +11,7 @@ import io.dataease.base.mapper.DatasourceMapper;
import io.dataease.base.mapper.ext.ExtDataSourceMapper;
import io.dataease.base.mapper.ext.query.GridExample;
import io.dataease.commons.constants.DePermissionType;
import io.dataease.commons.constants.SysAuthConstants;
import io.dataease.commons.exception.DEException;
import io.dataease.commons.model.AuthURD;
import io.dataease.commons.utils.AuthUtils;
@ -34,6 +35,7 @@ import io.dataease.provider.datasource.ApiProvider;
import io.dataease.provider.datasource.DatasourceProvider;
import io.dataease.service.dataset.DataSetGroupService;
import io.dataease.service.message.DeMsgutil;
import io.dataease.service.sys.SysAuthService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
@ -57,6 +59,8 @@ public class DatasourceService {
private DataSetGroupService dataSetGroupService;
@Resource
private CommonThreadPool commonThreadPool;
@Resource
private SysAuthService sysAuthService;
private static List<String> dsTypes = Arrays.asList("TiDB", "StarRocks", "excel", "mysql", "hive", "impala", "mariadb", "ds_doris", "pg", "sqlServer", "oracle", "mongo", "ck", "db2", "es", "redshift", "api");
@DeCleaner(DePermissionType.DATASOURCE)
@ -73,6 +77,7 @@ public class DatasourceService {
checkAndUpdateDatasourceStatus(datasource);
datasourceMapper.insertSelective(datasource);
handleConnectionPool(datasource, "add");
sysAuthService.copyAuth(datasource.getId(), SysAuthConstants.AUTH_SOURCE_TYPE_DATASOURCE);
return datasource;
}

View File

@ -6,10 +6,7 @@ import io.dataease.auth.annotation.DeCleaner;
import io.dataease.base.domain.*;
import io.dataease.base.mapper.*;
import io.dataease.base.mapper.ext.*;
import io.dataease.commons.constants.AuthConstants;
import io.dataease.commons.constants.CommonConstants;
import io.dataease.commons.constants.DePermissionType;
import io.dataease.commons.constants.PanelConstants;
import io.dataease.commons.constants.*;
import io.dataease.commons.utils.AuthUtils;
import io.dataease.commons.utils.LogUtil;
import io.dataease.commons.utils.TreeUtils;
@ -31,6 +28,7 @@ import io.dataease.service.dataset.DataSetTableService;
import io.dataease.service.sys.SysAuthService;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.pentaho.di.core.util.UUIDUtil;
import org.slf4j.Logger;
@ -94,7 +92,6 @@ public class PanelGroupService {
@Resource
private ExtPanelGroupExtendDataMapper extPanelGroupExtendDataMapper;
public List<PanelGroupDTO> tree(PanelGroupRequest panelGroupRequest) {
String userId = String.valueOf(AuthUtils.getUser().getUserId());
panelGroupRequest.setUserId(userId);
@ -110,22 +107,21 @@ public class PanelGroupService {
}
@DeCleaner(DePermissionType.PANEL)
// @Transactional
public PanelGroup saveOrUpdate(PanelGroupRequest request) {
String userName = AuthUtils.getUser().getUsername();
String panelId = request.getId();
if(StringUtils.isNotEmpty(panelId)){
panelViewService.syncPanelViews(request);
}
if (StringUtils.isEmpty(panelId)) {
// 新建
if (StringUtils.isEmpty(panelId)) { // 新建
checkPanelName(request.getName(), request.getPid(), PanelConstants.OPT_TYPE_INSERT, null, request.getNodeType());
panelId = newPanel(request);
panelGroupMapper.insert(request);
// 清理权限缓存
clearPermissionCache();
} else if ("toDefaultPanel".equals(request.getOptType())) {
sysAuthService.copyAuth(panelId, SysAuthConstants.AUTH_SOURCE_TYPE_PANEL);
} else if ("toDefaultPanel".equals(request.getOptType())) { // 转存为默认仪表板
panelId = UUID.randomUUID().toString();
// 转存为默认仪表板
PanelGroupWithBLOBs newDefaultPanel = panelGroupMapper.selectByPrimaryKey(request.getId());
newDefaultPanel.setPanelType(PanelConstants.PANEL_TYPE_SYSTEM);
newDefaultPanel.setNodeType(PanelConstants.PANEL_NODE_TYPE_PANEL);
@ -139,10 +135,12 @@ public class PanelGroupService {
panelGroupMapper.insertSelective(newDefaultPanel);
// 清理权限缓存
clearPermissionCache();
sysAuthService.copyAuth(panelId, SysAuthConstants.AUTH_SOURCE_TYPE_PANEL);
} else if ("copy".equals(request.getOptType())) {
panelId = this.panelGroupCopy(request, null, true);
// 清理权限缓存
clearPermissionCache();
sysAuthService.copyAuth(panelId, SysAuthConstants.AUTH_SOURCE_TYPE_PANEL);
} else if ("move".equals(request.getOptType())) {
PanelGroupWithBLOBs panelInfo = panelGroupMapper.selectByPrimaryKey(request.getId());
if (panelInfo.getPid().equalsIgnoreCase(request.getPid())) {
@ -447,5 +445,4 @@ public class PanelGroupService {
CacheUtils.removeAll(AuthConstants.DEPT_PANEL_NAME);
}
}

View File

@ -20,4 +20,9 @@ public class SysAuthService {
}
}
public void copyAuth(String authSource,String authSourceType){
String userName = AuthUtils.getUser().getUsername();
extSysAuthMapper.copyAuth(authSource,authSourceType,userName);
}
}

View File

@ -101,9 +101,7 @@ ADD COLUMN `copy_from` varchar(255) NULL COMMENT '复制来源' AFTER `update_ti
ADD COLUMN `copy_id` varchar(255) NULL COMMENT '复制ID' AFTER `copy_from`;
-- ----------------------------
-- Function structure for copy_auth
-- ----------------------------
DROP FUNCTION IF EXISTS `copy_auth`;
delimiter ;;
CREATE FUNCTION `copy_auth`(authSource varchar(255),authSourceType varchar(255),authUser varchar(255))
@ -197,7 +195,7 @@ SELECT
FROM
sys_auth
WHERE
auth_source IN (
auth_source = (
SELECT
pid
FROM
@ -206,7 +204,9 @@ WHERE
id = authSource
AND model_type = authSourceType
)
AND auth_source_type = authSourceType;
AND auth_source_type = authSourceType
and concat(auth_target,'-',auth_target_type) !=CONCAT(userId,'-','user');
INSERT INTO sys_auth_detail (
id,
auth_id,
@ -250,6 +250,28 @@ END
;;
delimiter ;
-- ----------------------------
-- Function structure for delete_auth_source
-- ----------------------------
DROP FUNCTION IF EXISTS `delete_auth_source`;
delimiter ;;
CREATE FUNCTION `delete_auth_source`(authSource varchar(255),authSourceType varchar(255))
RETURNS varchar(255) CHARSET utf8mb4
READS SQL DATA
BEGIN
delete from sys_auth_detail where auth_id in (
select id from sys_auth where sys_auth.auth_source=authSource and sys_auth.auth_source_type=authSourceType
);
delete from sys_auth where sys_auth.auth_source=authSource and sys_auth.auth_source_type=authSourceType;
RETURN 'success';
END
;;
delimiter ;
INSERT INTO `my_plugin`(`plugin_id`, `name`, `store`, `free`, `cost`, `category`, `descript`, `version`, `install_type`, `creator`, `load_mybatis`, `release_time`, `install_time`, `module_name`, `icon`) VALUES (3, '选项卡插件', 'default', 0, 20000, 'panel', '选项卡插件', '1.0-SNAPSHOT', NULL, 'fit2cloud-chenyw', 0, NULL, NULL, 'dataease-extensions-tabs-backend', NULL);
ALTER TABLE `panel_link_jump_info`
@ -336,3 +358,8 @@ CREATE TABLE `panel_outer_params_target_view_info` (
SET FOREIGN_KEY_CHECKS = 1;
update `my_plugin` set `name` = 'X-Pack默认插件' where `plugin_id` = 1;
update `my_plugin` set `module_name` = 'view-bubblemap-backend' where `plugin_id` = 2;
DROP TRIGGER `new_auth_panel`;
DROP TRIGGER `new_auth_dataset_group`;
DROP TRIGGER `new_auth_dataset_table`;
DROP TRIGGER `new_auth_link`;

View File

@ -244,8 +244,6 @@ export default {
'picture-add': [
'borderStyle',
'borderWidth',
'borderRadius',
'opacity',
'borderColor',
'hyperlinks'
],
@ -254,15 +252,12 @@ export default {
'fontSize',
'fontWeight',
'letterSpacing',
'color',
'backgroundColor'
'color'
],
// tab
'de-tabs': [
'borderStyle',
'borderWidth',
'borderRadius',
'opacity',
'borderColor',
'deTabStyle'
],
@ -270,20 +265,14 @@ export default {
'rect-shape': [
'borderStyle',
'borderWidth',
'borderRadius',
'opacity',
'borderColor',
'backgroundColor'
'borderColor'
],
//
'de-show-date': [
'textAlign',
'fontSize',
'fontWeight',
'opacity',
'borderRadius',
'color',
'backgroundColor',
'date-format',
'time_margin',
'padding'
@ -295,10 +284,7 @@ export default {
'fontSize',
'fontWeight',
'letterSpacing',
'opacity',
'borderRadius',
'color',
'backgroundColor',
'hyperlinks'
],
'de-video': [
@ -405,9 +391,9 @@ export default {
this.innerOpacity = this.styleInfo['opacity'] * 100
}
if (this.curComponent.type === 'v-text') {
this.mainWidthOffset = 600
this.mainWidthOffset = 400
} else if (this.curComponent.type === 'de-show-date') {
this.mainWidthOffset = 600
this.mainWidthOffset = 350
} else {
this.mainWidthOffset = document.getElementById('main-attr').offsetWidth - 50
}

View File

@ -264,7 +264,7 @@ export default {
return this.canvasStyleData.panel.resultCount
},
innerPadding() {
return this.element.commonBackground.innerPadding || 0
return this.element.commonBackground && this.element.commonBackground.innerPadding || 0
},
...mapState([
'canvasStyleData',
@ -758,9 +758,11 @@ export default {
this.chart.customStyle = param.viewInfo.customStyle
this.chart.senior = param.viewInfo.senior
this.chart.title = param.viewInfo.title
this.chart.stylePriority = param.viewInfo.stylePriority
this.sourceCustomAttrStr = this.chart.customAttr
this.sourceCustomStyleStr = this.chart.customStyle
this.mergeScale()
this.mergeStyle()
}
}
}

View File

@ -208,9 +208,7 @@ const list = [
letterSpacing: 0,
textAlign: 'center',
color: '#000000',
verticalAlign: 'middle',
backgroundColor: '#ffffff',
borderRadius: 0
verticalAlign: 'middle'
},
hyperlinks: HYPERLINKS,
x: 1,
@ -255,8 +253,7 @@ const list = [
mobileStyle: BASE_MOBILE_STYLE,
style: {
width: 300,
height: 200,
borderRadius: ''
height: 200
},
x: 1,
y: 1,
@ -296,9 +293,7 @@ const list = [
height: 200,
borderStyle: 'solid',
borderWidth: 0,
borderColor: '#000000',
backgroundColor: '#ffffff',
borderRadius: 0
borderColor: '#000000'
},
x: 1,
y: 1,
@ -317,8 +312,7 @@ const list = [
mobileStyle: BASE_MOBILE_STYLE,
style: {
width: 300,
height: 200,
borderRadius: ''
height: 200
},
x: 1,
y: 36,
@ -341,9 +335,7 @@ const list = [
height: 200,
borderStyle: 'solid',
borderWidth: 0,
borderColor: '#000000',
backgroundColor: '#ffffff',
borderRadius: 0
borderColor: '#000000'
},
options: {
tabList: [{
@ -377,10 +369,8 @@ const list = [
textAlign: 'center',
color: '#000000',
verticalAlign: 'middle',
backgroundColor: '#ffffff',
borderStyle: 'solid',
borderColor: '#000000',
borderRadius: 0,
time_margin: 0,
padding: 10
},
@ -408,8 +398,7 @@ const list = [
mobileStyle: BASE_MOBILE_STYLE,
style: {
width: 400,
height: 200,
borderRadius: ''
height: 200
},
frameLinks: FRAMELINKS,
x: 1,
@ -430,8 +419,7 @@ const list = [
hyperlinks: HYPERLINKS,
style: {
width: 400,
height: 200,
borderRadius: ''
height: 200
},
x: 1,
y: 1,
@ -450,8 +438,7 @@ const list = [
mobileStyle: BASE_MOBILE_STYLE,
style: {
width: 400,
height: 200,
borderRadius: ''
height: 200
},
videoLinks: VIDEOLINKS,
x: 1,
@ -471,8 +458,7 @@ const list = [
mobileStyle: BASE_MOBILE_STYLE,
style: {
width: 400,
height: 200,
borderRadius: ''
height: 200
},
streamMediaLinks: STREAMMEDIALINKS,
x: 1,

View File

@ -142,7 +142,7 @@
</el-select>
</el-form-item>
<el-form-item v-show="chart.type" :label="$t('chart.space_split')" class="form-item">
<el-input-number v-model="sizeForm.spaceSplit" min="0" size="mini" @change="changeBarSizeCase" />
<el-input-number v-model="sizeForm.spaceSplit" :min="0" size="mini" @change="changeBarSizeCase" />
</el-form-item>
</el-form>

View File

@ -168,7 +168,7 @@
</el-select>
</el-form-item>
<el-form-item v-show="chart.type" :label="$t('chart.space_split')" class="form-item">
<el-input-number v-model="sizeForm.spaceSplit" min="0" size="mini" @change="changeBarSizeCase" />
<el-input-number v-model="sizeForm.spaceSplit" :min="0" size="mini" @change="changeBarSizeCase" />
</el-form-item>
</el-form>

View File

@ -1749,6 +1749,7 @@ export default {
view.customFilter = JSON.stringify(this.view.customFilter)
view.senior = JSON.stringify(this.view.senior)
view.title = this.view.title
view.stylePriority = this.view.stylePriority
// view.data = this.data
this.chart = view

View File

@ -46,7 +46,6 @@
<svg-icon icon-class="panel" class="ds-icon-scene" />
</span>
<span v-else>
<svg-icon :icon-class="data.modelInnerType" style="width: 14px;height: 14px" />
<svg-icon :icon-class="data.isPlugin ? ('/api/pluginCommon/staticInfo/' + data.modelInnerType + '/svg') : data.modelInnerType" style="width: 14px;height: 14px" />
</span>
<span style="margin-left: 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;" :title="data.name">{{ data.name }}</span>