forked from github/dataease
Merge branch 'dev' into pr@dev@fix_batch_operation
This commit is contained in:
commit
bfcf491c0e
@ -378,7 +378,7 @@
|
||||
<configuration>
|
||||
<encoding>UTF-8</encoding>
|
||||
<nonFilteredFileExtensions>
|
||||
<nonFilteredFileExtension>xls</nonFilteredFileExtension>
|
||||
<nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
|
||||
</nonFilteredFileExtensions>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
@ -15,9 +15,9 @@ public class HttpClientConfig {
|
||||
private Map<String, String> header = new HashMap<>();
|
||||
|
||||
// 设置连接超时时间,单位毫秒
|
||||
private int connectTimeout = 5000;
|
||||
private int connectTimeout = 30000;
|
||||
// 设置从connect Manager获取Connection 超时时间,单位毫秒。这个属性是新加的属性,因为目前版本是可以共享连接池的
|
||||
private int connectionRequestTimeout = 5000;
|
||||
private int connectionRequestTimeout = 30000;
|
||||
// 请求获取数据的超时时间,单位毫秒。 如果访问一个接口,多少时间内无法返回数据,就直接放弃此次调用
|
||||
private int socketTimeout = 60000;
|
||||
|
||||
|
@ -67,7 +67,12 @@ public class DataSetTableTaskController {
|
||||
@PostMapping("list/{goPage}/{pageSize}")
|
||||
public Pager<List<DataSetTaskDTO>> list(@RequestBody DatasetTableTask datasetTableTask, @PathVariable int goPage, @PathVariable int pageSize) {
|
||||
Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
|
||||
return PageUtils.setPageInfo(page, dataSetTableTaskService.list(datasetTableTask));
|
||||
Pager<List<DataSetTaskDTO>> listPager = PageUtils.setPageInfo(page, dataSetTableTaskService.list(datasetTableTask));
|
||||
List<DataSetTaskDTO> listObject = listPager.getListObject();
|
||||
for (DataSetTaskDTO dto : listObject) {
|
||||
dataSetTableTaskLogService.lastExecStatus(dto);
|
||||
}
|
||||
return listPager;
|
||||
}
|
||||
|
||||
@ApiOperation("分页查询")
|
||||
|
@ -14,4 +14,6 @@ public class TemplateCategory {
|
||||
private String name;
|
||||
|
||||
private String slug;
|
||||
|
||||
private Integer priority;
|
||||
}
|
||||
|
@ -0,0 +1,14 @@
|
||||
package io.dataease.ext;
|
||||
|
||||
import io.dataease.plugins.common.base.domain.PanelAppTemplateWithBLOBs;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface ExtPanelAppTemplateMapper {
|
||||
|
||||
List<PanelAppTemplateWithBLOBs> queryBaseInfo(@Param("nodeType") String nodeType , @Param("pid") String pid);
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="io.dataease.ext.ExtPanelAppTemplateMapper">
|
||||
<select id="queryBaseInfo" resultType="io.dataease.plugins.common.base.domain.PanelAppTemplateWithBLOBs">
|
||||
select id, `name`, node_type, `level`, pid, version, icon, update_time, update_user, create_time,
|
||||
create_user,snapshot,datasource_info from panel_app_template
|
||||
where 1=1
|
||||
<if test="pid != null">
|
||||
and pid = #{pid}
|
||||
</if>
|
||||
<if test="nodeType != null">
|
||||
and node_type = #{nodeType}
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
@ -3,15 +3,15 @@
|
||||
<mapper namespace="io.dataease.ext.HomeMapper">
|
||||
|
||||
<select id="queryStore" resultType="io.dataease.mobile.dto.HomeItemDTO">
|
||||
select
|
||||
s.panel_group_id as id,
|
||||
g.name as title,
|
||||
s.create_time as `time`
|
||||
select
|
||||
s.panel_group_id as id,
|
||||
g.name as title,
|
||||
s.create_time as `time`
|
||||
from( SELECT GET_V_AUTH_MODEL_ID_P_USE_MOBILE ( #{userId}, 'panel' ) cids ) t, panel_store s
|
||||
inner join panel_group g
|
||||
on s.panel_group_id = g.id
|
||||
on s.panel_group_id = g.id
|
||||
where s.user_id = #{userId}
|
||||
and FIND_IN_SET( g.id, cids )
|
||||
and FIND_IN_SET( g.id, cids )
|
||||
<if test="lastTime != null">
|
||||
and #{lastTime} > s.create_time
|
||||
</if>
|
||||
@ -20,25 +20,32 @@
|
||||
|
||||
<select id="queryShare" resultType="io.dataease.mobile.dto.HomeItemShareDTO">
|
||||
select
|
||||
distinct(s.panel_group_id) as id,
|
||||
g.name as title,
|
||||
s.create_time as `time`,
|
||||
u.nick_name,
|
||||
u.user_id
|
||||
distinct(s.panel_group_id) as id,
|
||||
g.name as title,
|
||||
s.create_time as `time`,
|
||||
u.nick_name,
|
||||
u.user_id
|
||||
from panel_share s
|
||||
inner join panel_group g
|
||||
on s.panel_group_id = g.id
|
||||
on s.panel_group_id = g.id
|
||||
left join sys_user u on u.username = IFNULL(s.granter,g.create_by)
|
||||
where
|
||||
g.mobile_layout = 1 and (
|
||||
( s.target_id = #{userId} and s.type = 0 ) or
|
||||
( s.target_id = #{deptId} and s.type = 2 ) or
|
||||
( s.target_id in
|
||||
<foreach collection="roleIds" item="roleId" open='(' separator=',' close=')'>
|
||||
#{roleId}
|
||||
</foreach>
|
||||
and s.type = 1 )
|
||||
)
|
||||
g.mobile_layout = 1 and (
|
||||
( s.target_id = #{userId} and s.type = 0 )
|
||||
<if test="deptId != null">
|
||||
or ( s.target_id = #{deptId} and s.type = 2 )
|
||||
</if>
|
||||
|
||||
<if test="roleIds != null">
|
||||
or
|
||||
( s.target_id in
|
||||
<foreach collection="roleIds" item="roleId" open='(' separator=',' close=')'>
|
||||
#{roleId}
|
||||
</foreach>
|
||||
and s.type = 1 )
|
||||
</if>
|
||||
|
||||
)
|
||||
<if test="lastTime != null">
|
||||
and #{lastTime} > s.create_time
|
||||
</if>
|
||||
@ -46,6 +53,4 @@
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
|
@ -11,7 +11,9 @@ import io.dataease.mobile.dto.HomeItemDTO;
|
||||
import io.dataease.mobile.dto.HomeItemShareDTO;
|
||||
import io.dataease.ext.HomeMapper;
|
||||
import io.dataease.mobile.dto.HomeRequest;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@ -47,7 +49,10 @@ public class HomeService {
|
||||
List<Long> roleIds = user.getRoles().stream().map(CurrentRoleDto::getId).collect(Collectors.toList());
|
||||
|
||||
param.put("deptId", deptId);
|
||||
param.put("roleIds", roleIds);
|
||||
if (CollectionUtils.isNotEmpty(roleIds)) {
|
||||
param.put("roleIds", roleIds);
|
||||
}
|
||||
|
||||
if (null != request.getLastTime()) {
|
||||
param.put("lastTime", request.getLastTime());
|
||||
}
|
||||
|
@ -34,6 +34,8 @@ import java.util.stream.Collectors;
|
||||
@Service("apiProvider")
|
||||
public class ApiProvider extends Provider {
|
||||
|
||||
private static String path = "['%s']";
|
||||
|
||||
@Resource
|
||||
private SystemParameterService systemParameterService;
|
||||
|
||||
@ -198,10 +200,10 @@ public class ApiProvider extends Provider {
|
||||
handleStr(apiDefinition, response, fields, rootPath);
|
||||
}
|
||||
for (JSONObject field : fields) {
|
||||
if(field.containsKey("children") && CollectionUtils.isNotEmpty(field.getJSONArray("children"))){
|
||||
if (field.containsKey("children") && CollectionUtils.isNotEmpty(field.getJSONArray("children"))) {
|
||||
field.put("disabled", false);
|
||||
}
|
||||
if(field.containsKey("children") && CollectionUtils.isEmpty(field.getJSONArray("children"))){
|
||||
if (field.containsKey("children") && CollectionUtils.isEmpty(field.getJSONArray("children"))) {
|
||||
field.put("disabled", true);
|
||||
}
|
||||
}
|
||||
@ -238,14 +240,14 @@ public class ApiProvider extends Provider {
|
||||
array.add(StringUtils.isNotEmpty(jsonObject.getString(s)) ? jsonObject.getString(s) : "");
|
||||
o.put("value", array);
|
||||
}
|
||||
o.put("jsonPath", rootPath + "." + s);
|
||||
o.put("jsonPath", rootPath + "." + String.format(path, s));
|
||||
setProperty(apiDefinition, o, s);
|
||||
if (!hasItem(apiDefinition, fields, o)) {
|
||||
fields.add(o);
|
||||
}
|
||||
} else if (StringUtils.isNotEmpty(value) && value.startsWith("{")) {
|
||||
List<JSONObject> children = new ArrayList<>();
|
||||
handleStr(apiDefinition, jsonObject.getString(s), children, rootPath + "." + s);
|
||||
handleStr(apiDefinition, jsonObject.getString(s), children, rootPath + "." + String.format(path, s));
|
||||
JSONObject o = new JSONObject();
|
||||
o.put("children", children);
|
||||
o.put("childrenDataType", "OBJECT");
|
||||
@ -256,7 +258,7 @@ public class ApiProvider extends Provider {
|
||||
}
|
||||
} else {
|
||||
JSONObject o = new JSONObject();
|
||||
o.put("jsonPath", rootPath + "." + s);
|
||||
o.put("jsonPath", rootPath + "." + String.format(path, s));
|
||||
setProperty(apiDefinition, o, s);
|
||||
JSONArray array = new JSONArray();
|
||||
array.add(StringUtils.isNotEmpty(jsonObject.getString(s)) ? jsonObject.getString(s) : "");
|
||||
|
@ -89,8 +89,8 @@ public class JdbcProvider extends DefaultJdbcProvider {
|
||||
}
|
||||
DatabaseMetaData databaseMetaData = connection.getMetaData();
|
||||
String tableNamePattern = datasourceRequest.getTable();
|
||||
if(datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.mysql.name())){
|
||||
if(databaseMetaData.getDriverMajorVersion() < 8){
|
||||
if (datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.mysql.name())) {
|
||||
if (databaseMetaData.getDriverMajorVersion() < 8) {
|
||||
tableNamePattern = String.format(MySQLConstants.KEYWORD_TABLE, tableNamePattern);
|
||||
}
|
||||
}
|
||||
@ -98,29 +98,36 @@ public class JdbcProvider extends DefaultJdbcProvider {
|
||||
while (resultSet.next()) {
|
||||
String tableName = resultSet.getString("TABLE_NAME");
|
||||
String database;
|
||||
if (datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.pg.name()) ||datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.ck.name()) || datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.impala.name())) {
|
||||
String schema = resultSet.getString("TABLE_SCHEM");
|
||||
if (datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.pg.name()) || datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.ck.name())
|
||||
|| datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.impala.name())) {
|
||||
database = resultSet.getString("TABLE_SCHEM");
|
||||
} else {
|
||||
database = resultSet.getString("TABLE_CAT");
|
||||
}
|
||||
if(datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.pg.name())){
|
||||
if (tableName.equals(datasourceRequest.getTable()) && database.equalsIgnoreCase(getDsSchema(datasourceRequest))) {
|
||||
TableField tableField = getTableFiled(resultSet, datasourceRequest);
|
||||
list.add(tableField);
|
||||
}
|
||||
}else {
|
||||
if (database != null) {
|
||||
if (tableName.equals(datasourceRequest.getTable()) && database.equalsIgnoreCase(getDatabase(datasourceRequest))) {
|
||||
TableField tableField = getTableFiled(resultSet, datasourceRequest);
|
||||
list.add(tableField);
|
||||
}
|
||||
} else {
|
||||
if (tableName.equals(datasourceRequest.getTable())) {
|
||||
TableField tableField = getTableFiled(resultSet, datasourceRequest);
|
||||
list.add(tableField);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.pg.name())) {
|
||||
if (tableName.equals(datasourceRequest.getTable()) && database.equalsIgnoreCase(getDsSchema(datasourceRequest))) {
|
||||
TableField tableField = getTableFiled(resultSet, datasourceRequest);
|
||||
list.add(tableField);
|
||||
}
|
||||
} else if (datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.sqlServer.name())) {
|
||||
if (tableName.equals(datasourceRequest.getTable()) && database.equalsIgnoreCase(getDatabase(datasourceRequest)) && schema.equalsIgnoreCase(getDsSchema(datasourceRequest))) {
|
||||
TableField tableField = getTableFiled(resultSet, datasourceRequest);
|
||||
list.add(tableField);
|
||||
}
|
||||
} else {
|
||||
if (database != null) {
|
||||
if (tableName.equals(datasourceRequest.getTable()) && database.equalsIgnoreCase(getDatabase(datasourceRequest))) {
|
||||
TableField tableField = getTableFiled(resultSet, datasourceRequest);
|
||||
list.add(tableField);
|
||||
}
|
||||
} else {
|
||||
if (tableName.equals(datasourceRequest.getTable())) {
|
||||
TableField tableField = getTableFiled(resultSet, datasourceRequest);
|
||||
list.add(tableField);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
resultSet.close();
|
||||
@ -165,9 +172,9 @@ public class JdbcProvider extends DefaultJdbcProvider {
|
||||
} else {
|
||||
String size = resultSet.getString("COLUMN_SIZE");
|
||||
if (size == null) {
|
||||
if(dbType.equals("JSON") && datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.mysql.name())){
|
||||
if (dbType.equals("JSON") && datasourceRequest.getDatasource().getType().equalsIgnoreCase(DatasourceTypes.mysql.name())) {
|
||||
tableField.setFieldSize(65535);
|
||||
}else {
|
||||
} else {
|
||||
tableField.setFieldSize(1);
|
||||
}
|
||||
|
||||
@ -176,7 +183,7 @@ public class JdbcProvider extends DefaultJdbcProvider {
|
||||
}
|
||||
}
|
||||
}
|
||||
if(StringUtils.isNotEmpty(tableField.getFieldType()) && tableField.getFieldType().equalsIgnoreCase("DECIMAL")){
|
||||
if (StringUtils.isNotEmpty(tableField.getFieldType()) && tableField.getFieldType().equalsIgnoreCase("DECIMAL")) {
|
||||
tableField.setAccuracy(Integer.valueOf(resultSet.getString("DECIMAL_DIGITS")));
|
||||
}
|
||||
return tableField;
|
||||
@ -746,16 +753,16 @@ public class JdbcProvider extends DefaultJdbcProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkConfiguration(Datasource datasource)throws Exception{
|
||||
if (StringUtils.isEmpty(datasource.getConfiguration())){
|
||||
public void checkConfiguration(Datasource datasource) throws Exception {
|
||||
if (StringUtils.isEmpty(datasource.getConfiguration())) {
|
||||
throw new Exception("Datasource configuration is empty");
|
||||
}
|
||||
try {
|
||||
JdbcConfiguration jdbcConfiguration = new Gson().fromJson(datasource.getConfiguration(), JdbcConfiguration.class);
|
||||
if(jdbcConfiguration.getQueryTimeout() < 0){
|
||||
throw new Exception("Querytimeout cannot be less than zero." );
|
||||
if (jdbcConfiguration.getQueryTimeout() < 0) {
|
||||
throw new Exception("Querytimeout cannot be less than zero.");
|
||||
}
|
||||
}catch (Exception e){
|
||||
} catch (Exception e) {
|
||||
throw new Exception("Invalid configuration: " + e.getMessage());
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ public class DataSetTableService {
|
||||
datasetTableTask.setTableId(datasetTable.getId());
|
||||
datasetTableTask.setRate(ScheduleType.SIMPLE.toString());
|
||||
datasetTableTask.setType("all_scope");
|
||||
datasetTableTask.setName(datasetTable.getName() + " 更新设置");
|
||||
datasetTableTask.setName(datasetTable.getName() + " 更新设置-" + System.currentTimeMillis());
|
||||
datasetTableTask.setEnd("0");
|
||||
datasetTableTask.setStatus(TaskStatus.Underway.name());
|
||||
datasetTableTask.setStartTime(System.currentTimeMillis());
|
||||
|
@ -10,6 +10,7 @@ import io.dataease.controller.request.dataset.DataSetTableRequest;
|
||||
import io.dataease.controller.request.panel.PanelAppTemplateApplyRequest;
|
||||
import io.dataease.controller.request.panel.PanelAppTemplateRequest;
|
||||
import io.dataease.controller.request.panel.PanelGroupRequest;
|
||||
import io.dataease.ext.ExtPanelAppTemplateMapper;
|
||||
import io.dataease.plugins.common.base.domain.*;
|
||||
import io.dataease.plugins.common.base.mapper.PanelAppTemplateMapper;
|
||||
import io.dataease.plugins.common.constants.DatasetType;
|
||||
@ -19,6 +20,7 @@ import io.dataease.service.dataset.DataSetGroupService;
|
||||
import io.dataease.service.dataset.DataSetTableFieldsService;
|
||||
import io.dataease.service.dataset.DataSetTableService;
|
||||
import io.dataease.service.datasource.DatasourceService;
|
||||
import io.dataease.service.staticResource.StaticResourceService;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.pentaho.di.core.util.UUIDUtil;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
@ -31,6 +33,8 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static io.dataease.commons.constants.StaticResourceConstants.UPLOAD_URL_PREFIX;
|
||||
|
||||
/**
|
||||
* Author: wangjiahao
|
||||
* Date: 2022/9/8
|
||||
@ -40,6 +44,8 @@ import java.util.Map;
|
||||
public class PanelAppTemplateService {
|
||||
private static Gson gson = new Gson();
|
||||
|
||||
@Resource
|
||||
private ExtPanelAppTemplateMapper extPanelAppTemplateMapper;
|
||||
@Resource
|
||||
private PanelAppTemplateMapper panelAppTemplateMapper;
|
||||
@Resource
|
||||
@ -59,16 +65,11 @@ public class PanelAppTemplateService {
|
||||
private PanelViewService panelViewService;
|
||||
@Resource
|
||||
private DataSetGroupService dataSetGroupService;
|
||||
@Resource
|
||||
private StaticResourceService staticResourceService;
|
||||
|
||||
public List<PanelAppTemplateWithBLOBs> list(PanelAppTemplateRequest request) {
|
||||
PanelAppTemplateExample example = new PanelAppTemplateExample();
|
||||
if (StringUtils.isNotEmpty(request.getPid())) {
|
||||
example.createCriteria().andPidEqualTo(request.getPid());
|
||||
}
|
||||
if (StringUtils.isNotEmpty(request.getNodeType())) {
|
||||
example.createCriteria().andNodeTypeEqualTo(request.getNodeType());
|
||||
}
|
||||
return panelAppTemplateMapper.selectByExampleWithBLOBs(example);
|
||||
return extPanelAppTemplateMapper.queryBaseInfo(request.getNodeType(),request.getPid());
|
||||
}
|
||||
|
||||
public void save(PanelAppTemplateRequest request) {
|
||||
@ -80,6 +81,12 @@ public class PanelAppTemplateService {
|
||||
if (StringUtils.isEmpty(requestTemplate.getNodeType())) {
|
||||
requestTemplate.setNodeType("template");
|
||||
}
|
||||
if(StringUtils.isNotEmpty(request.getSnapshot())){
|
||||
//Store static resource into the server
|
||||
String snapshotName = "app-template-" + request.getId() + ".jpeg";
|
||||
staticResourceService.saveSingleFileToServe(snapshotName, request.getSnapshot().replace("data:image/jpeg;base64,", ""));
|
||||
requestTemplate.setSnapshot("/" + UPLOAD_URL_PREFIX + '/' + snapshotName);
|
||||
}
|
||||
panelAppTemplateMapper.insertSelective(requestTemplate);
|
||||
}
|
||||
|
||||
@ -90,6 +97,12 @@ public class PanelAppTemplateService {
|
||||
request.setUpdateTime(System.currentTimeMillis());
|
||||
PanelAppTemplateWithBLOBs requestTemplate = new PanelAppTemplateWithBLOBs();
|
||||
BeanUtils.copyBean(requestTemplate, request);
|
||||
//Store static resource into the server
|
||||
if(StringUtils.isNotEmpty(request.getSnapshot())){
|
||||
String snapshotName = "app-template-" + request.getId() + ".jpeg";
|
||||
staticResourceService.saveSingleFileToServe(snapshotName, request.getSnapshot().replace("data:image/jpeg;base64,", ""));
|
||||
requestTemplate.setSnapshot("/" + UPLOAD_URL_PREFIX + '/' + snapshotName);
|
||||
}
|
||||
panelAppTemplateMapper.updateByPrimaryKeySelective(requestTemplate);
|
||||
}
|
||||
|
||||
@ -180,11 +193,26 @@ public class PanelAppTemplateService {
|
||||
public Map<String, String> applyDatasetField(List<DatasetTableField> datasetTableFieldsInfo, Map<String, String> datasetsRealMap) {
|
||||
Map<String, String> datasetFieldsRealMap = new HashMap<>();
|
||||
for (DatasetTableField datasetTableField : datasetTableFieldsInfo) {
|
||||
String oldId = datasetTableField.getId();
|
||||
datasetTableField.setTableId(datasetsRealMap.get(datasetTableField.getTableId()));
|
||||
datasetTableField.setId(null);
|
||||
DatasetTableField newTableField = dataSetTableFieldsService.save(datasetTableField);
|
||||
datasetFieldsRealMap.put(oldId, newTableField.getId());
|
||||
if(datasetTableField.getExtField()!=2){
|
||||
String oldId = datasetTableField.getId();
|
||||
datasetTableField.setTableId(datasetsRealMap.get(datasetTableField.getTableId()));
|
||||
datasetTableField.setId(null);
|
||||
DatasetTableField newTableField = dataSetTableFieldsService.save(datasetTableField);
|
||||
datasetFieldsRealMap.put(oldId, newTableField.getId());
|
||||
}
|
||||
}
|
||||
//数据集计算字段替换
|
||||
for (DatasetTableField datasetTableField : datasetTableFieldsInfo) {
|
||||
if(datasetTableField.getExtField()==2){
|
||||
String oldId = datasetTableField.getId();
|
||||
datasetTableField.setTableId(datasetsRealMap.get(datasetTableField.getTableId()));
|
||||
datasetTableField.setId(null);
|
||||
datasetFieldsRealMap.forEach((k, v) -> {
|
||||
datasetTableField.setOriginName(datasetTableField.getOriginName().replaceAll(k, v));
|
||||
});
|
||||
DatasetTableField newTableField = dataSetTableFieldsService.save(datasetTableField);
|
||||
datasetFieldsRealMap.put(oldId, newTableField.getId());
|
||||
}
|
||||
}
|
||||
return datasetFieldsRealMap;
|
||||
}
|
||||
|
@ -11,6 +11,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Author: wangjiahao
|
||||
@ -20,19 +21,26 @@ import java.util.List;
|
||||
@Service
|
||||
public class PanelGroupExtendDataService {
|
||||
|
||||
private final static String transDataKey = "data" + "s";
|
||||
|
||||
@Resource
|
||||
private PanelGroupExtendDataMapper panelGroupExtendDataMapper;
|
||||
|
||||
public ChartViewDTO getChartDataInfo(String viewId,ChartViewDTO view){
|
||||
public ChartViewDTO getChartDataInfo(String viewId, ChartViewDTO view) {
|
||||
Gson gson = new Gson();
|
||||
PanelGroupExtendDataExample extendDataExample = new PanelGroupExtendDataExample();
|
||||
extendDataExample.createCriteria().andViewIdEqualTo(viewId);
|
||||
List<PanelGroupExtendData> extendDataList = panelGroupExtendDataMapper.selectByExampleWithBLOBs(extendDataExample);
|
||||
if(CollectionUtils.isNotEmpty(extendDataList)){
|
||||
ChartViewDTO chartViewTemplate = gson.fromJson(extendDataList.get(0).getViewDetails(),ChartViewDTO.class);
|
||||
List<PanelGroupExtendData> extendDataList = panelGroupExtendDataMapper.selectByExampleWithBLOBs(extendDataExample);
|
||||
if (CollectionUtils.isNotEmpty(extendDataList)) {
|
||||
ChartViewDTO chartViewTemplate = gson.fromJson(extendDataList.get(0).getViewDetails(), ChartViewDTO.class);
|
||||
Map<String, Object> dataInfo = chartViewTemplate.getData();
|
||||
if (dataInfo.get(transDataKey) != null) {
|
||||
dataInfo.put("data", dataInfo.get(transDataKey));
|
||||
dataInfo.remove(transDataKey);
|
||||
}
|
||||
view.setData(chartViewTemplate.getData());
|
||||
}else{
|
||||
DataEaseException.throwException("模板缓存数据中未获取指定视图数据:"+viewId);
|
||||
} else {
|
||||
DataEaseException.throwException("模板缓存数据中未获取指定视图数据:" + viewId);
|
||||
}
|
||||
return view;
|
||||
}
|
||||
|
@ -40,6 +40,7 @@ import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.poi.hssf.usermodel.*;
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.pentaho.di.core.util.UUIDUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@ -621,9 +622,9 @@ public class PanelGroupService {
|
||||
List<String[]> details = request.getDetails();
|
||||
Integer[] excelTypes = request.getExcelTypes();
|
||||
details.add(0, request.getHeader());
|
||||
HSSFWorkbook wb = new HSSFWorkbook();
|
||||
Workbook wb = new XSSFWorkbook();
|
||||
//明细sheet
|
||||
HSSFSheet detailsSheet = wb.createSheet("数据");
|
||||
Sheet detailsSheet = wb.createSheet("数据");
|
||||
|
||||
//给单元格设置样式
|
||||
CellStyle cellStyle = wb.createCellStyle();
|
||||
@ -641,11 +642,11 @@ public class PanelGroupService {
|
||||
|
||||
if (CollectionUtils.isNotEmpty(details)) {
|
||||
for (int i = 0; i < details.size(); i++) {
|
||||
HSSFRow row = detailsSheet.createRow(i);
|
||||
Row row = detailsSheet.createRow(i);
|
||||
String[] rowData = details.get(i);
|
||||
if (rowData != null) {
|
||||
for (int j = 0; j < rowData.length; j++) {
|
||||
HSSFCell cell = row.createCell(j);
|
||||
Cell cell = row.createCell(j);
|
||||
if (i == 0) {// 头部
|
||||
cell.setCellValue(rowData[j]);
|
||||
cell.setCellStyle(cellStyle);
|
||||
@ -669,14 +670,14 @@ public class PanelGroupService {
|
||||
}
|
||||
if (StringUtils.isNotEmpty(snapshot)) {
|
||||
//截图sheet 1px ≈ 2.33dx ≈ 0.48 dy 8*24 个单元格
|
||||
HSSFSheet snapshotSheet = wb.createSheet("图表");
|
||||
Sheet snapshotSheet = wb.createSheet("图表");
|
||||
short reDefaultRowHeight = (short) Math.round(request.getSnapshotHeight() * 3.5 / 8);
|
||||
int reDefaultColumnWidth = (int) Math.round(request.getSnapshotWidth() * 0.25 / 24);
|
||||
snapshotSheet.setDefaultColumnWidth(reDefaultColumnWidth);
|
||||
snapshotSheet.setDefaultRowHeight(reDefaultRowHeight);
|
||||
|
||||
//画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)i
|
||||
HSSFPatriarch patriarch = snapshotSheet.createDrawingPatriarch();
|
||||
Drawing patriarch = snapshotSheet.createDrawingPatriarch();
|
||||
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, reDefaultColumnWidth, reDefaultColumnWidth, (short) 0, 0, (short) 8, 24);
|
||||
anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_DO_RESIZE);
|
||||
patriarch.createPicture(anchor, wb.addPicture(Base64Utils.decodeFromString(snapshot.replace(DATA_URL_TITLE, "")), HSSFWorkbook.PICTURE_TYPE_JPEG));
|
||||
|
@ -17,6 +17,7 @@ import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -76,7 +77,7 @@ public class TemplateMarketService {
|
||||
String resultStr = marketGet(basicInfo.getTemplateMarketUlr()+CATEGORIES_API,basicInfo.getTemplateAccessKey());
|
||||
List<TemplateCategory> categories = JSONObject.parseObject(resultStr).getJSONArray("data").toJavaList(TemplateCategory.class);
|
||||
if(CollectionUtils.isNotEmpty(categories)){
|
||||
return categories.stream().map(TemplateCategory :: getName).collect(Collectors.toList());
|
||||
return categories.stream().sorted(Comparator.comparing(TemplateCategory::getPriority)).map(TemplateCategory :: getName).collect(Collectors.toList());
|
||||
}else{
|
||||
return null;
|
||||
}
|
||||
|
@ -136,7 +136,7 @@ INSERT INTO `sys_auth` (`id`, `auth_source`, `auth_source_type`, `auth_target`,
|
||||
DROP FUNCTION IF EXISTS `GET_V_AUTH_MODEL_WITH_CHILDREN`;
|
||||
delimiter ;;
|
||||
CREATE FUNCTION `GET_V_AUTH_MODEL_WITH_CHILDREN`(parentId longtext,modelType varchar(255))
|
||||
RETURNS longtext CHARSET utf8mb4
|
||||
RETURNS longtext CHARSET utf8mb4 COLLATE utf8mb4_general_ci
|
||||
READS SQL DATA
|
||||
BEGIN
|
||||
|
||||
@ -176,7 +176,7 @@ delimiter ;
|
||||
DROP FUNCTION IF EXISTS `GET_V_AUTH_MODEL_WITH_PARENT`;
|
||||
delimiter ;;
|
||||
CREATE FUNCTION `GET_V_AUTH_MODEL_WITH_PARENT`(childrenId longtext,modelType varchar(255))
|
||||
RETURNS longtext CHARSET utf8mb4
|
||||
RETURNS longtext CHARSET utf8mb4 COLLATE utf8mb4_general_ci
|
||||
READS SQL DATA
|
||||
BEGIN
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
Binary file not shown.
BIN
backend/src/main/resources/excel/user.xlsx
Normal file
BIN
backend/src/main/resources/excel/user.xlsx
Normal file
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
\u4E2A\u4EBA\u4FE1\u606F=Personal Information
|
||||
\u4EEA\u8868\u677F=Dashboard
|
||||
\u6A21\u677F\u5E02\u573A=Template Market
|
||||
\u5E94\u7528\u5E02\u573A=App Market
|
||||
\u5E94\u7528=Application
|
||||
\u5E94\u7528\u7BA1\u7406=Applications
|
||||
\u4FEE\u6539\u5BC6\u7801=Change Password
|
||||
\u521B\u5EFA\u7528\u6237=Create User
|
||||
|
@ -1,7 +1,7 @@
|
||||
\u4E2A\u4EBA\u4FE1\u606F=\u4E2A\u4EBA\u4FE1\u606F
|
||||
\u4EEA\u8868\u677F=\u4EEA\u8868\u677F
|
||||
\u6A21\u677F\u5E02\u573A=\u6A21\u677F\u5E02\u573A
|
||||
\u5E94\u7528\u5E02\u573A=\u5E94\u7528\u5E02\u573A
|
||||
\u5E94\u7528=\u5E94\u7528
|
||||
\u5E94\u7528\u7BA1\u7406=\u5E94\u7528\u7BA1\u7406
|
||||
\u4FEE\u6539\u5BC6\u7801=\u4FEE\u6539\u5BC6\u7801
|
||||
\u521B\u5EFA\u7528\u6237=\u521B\u5EFA\u7528\u6237
|
||||
|
@ -1,7 +1,7 @@
|
||||
\u4E2A\u4EBA\u4FE1\u606F=\u500B\u4EBA\u4FE1\u606F
|
||||
\u4EEA\u8868\u677F=\u5100\u8868\u677F
|
||||
\u6A21\u677F\u5E02\u573A=\u6A21\u677F\u5E02\u5834
|
||||
\u5E94\u7528\u5E02\u573A=\u5E94\u7528\u5E02\u5834
|
||||
\u5E94\u7528=\u5E94\u7528
|
||||
\u5E94\u7528\u7BA1\u7406=\u5E94\u7528\u7BA1\u7406
|
||||
\u4FEE\u6539\u5BC6\u7801=\u4FEE\u6539\u5BC6\u78BC
|
||||
\u521B\u5EFA\u7528\u6237=\u5275\u5EFA\u7528\u6236
|
||||
|
@ -16,10 +16,13 @@ export function proxyInitPanelData(panelId, proxy, callback) {
|
||||
name: response.data.name,
|
||||
privileges: response.data.privileges,
|
||||
proxy: proxy.userId,
|
||||
sourcePanelName: response.data.sourcePanelName,
|
||||
status: response.data.status,
|
||||
createBy: response.data.createBy,
|
||||
createTime: response.data.createTime,
|
||||
creatorName: response.data.creatorName,
|
||||
updateBy: response.data.updateBy,
|
||||
updateName: response.data.updateName,
|
||||
updateTime: response.data.updateTime
|
||||
})
|
||||
// 刷新联动信息
|
||||
|
@ -34,7 +34,7 @@
|
||||
:style="{'height': panelHeight + 'px'}"
|
||||
>
|
||||
<Preview
|
||||
:component-data="componentData"
|
||||
:component-data="mainCanvasComponentData"
|
||||
:canvas-style-data="canvasStyleData"
|
||||
:panel-info="panelInfo"
|
||||
:show-position="showPosition"
|
||||
@ -85,6 +85,8 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
componentData: [],
|
||||
canvasId: 'canvas-main',
|
||||
visible: false,
|
||||
placement: 'bottom',
|
||||
transition: 'el-zoom-in-top',
|
||||
@ -100,6 +102,9 @@ export default {
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
mainCanvasComponentData() {
|
||||
return this.componentData.filter(item => item.canvasId === this.canvasId)
|
||||
},
|
||||
popperClass() {
|
||||
const _c = 'el-view-select-popper ' + this.popoverClass
|
||||
return this.disabled ? _c + ' disabled ' : _c
|
||||
@ -148,6 +153,7 @@ export default {
|
||||
panelDataPrepare(JSON.parse(response.data.panelData), JSON.parse(response.data.panelStyle), rsp => {
|
||||
this.viewLoaded = true
|
||||
this.componentData = rsp.componentData
|
||||
this.$store.commit('setPreviewComponentData', this.componentData)
|
||||
this.canvasStyleData = rsp.componentStyle
|
||||
this.loadOptions()
|
||||
})
|
||||
|
@ -262,12 +262,22 @@ export default {
|
||||
this._updateH()
|
||||
this.$nextTick(() => {
|
||||
on(document, 'mouseup', this._popoverHideFun)
|
||||
this.bindScroll()
|
||||
})
|
||||
},
|
||||
beforeDestroy() {
|
||||
off(document, 'mouseup', this._popoverHideFun)
|
||||
this.unbindScroll()
|
||||
},
|
||||
methods: {
|
||||
bindScroll() {
|
||||
window.onmousewheel = this._popoverHideFun
|
||||
on(document, 'DOMMouseScroll', this._popoverHideFun)
|
||||
},
|
||||
unbindScroll() {
|
||||
window.onmousewheel = null
|
||||
off(document, 'DOMMouseScroll', this._popoverHideFun)
|
||||
},
|
||||
showPopover() {
|
||||
this.$nextTick(() => {
|
||||
this.$refs.input.focus()
|
||||
|
@ -6,6 +6,7 @@
|
||||
<div
|
||||
id="main-attr"
|
||||
style="position: relative;"
|
||||
@mousedown="mouseDown"
|
||||
>
|
||||
<div
|
||||
v-if="attrShow('textAlign')"
|
||||
@ -658,6 +659,9 @@ export default {
|
||||
},
|
||||
|
||||
methods: {
|
||||
mouseDown(e) {
|
||||
e.stopPropagation()
|
||||
},
|
||||
init() {
|
||||
if (this.styleInfo['opacity']) {
|
||||
this.innerOpacity = this.styleInfo['opacity'] * 100
|
||||
|
@ -173,7 +173,7 @@
|
||||
:append-to-body="true"
|
||||
:destroy-on-close="true"
|
||||
>
|
||||
<UserViewMobileDialog
|
||||
<user-view-mobile-dialog
|
||||
v-if="mobileChartDetailsVisible"
|
||||
:canvas-style-data="canvasStyleData"
|
||||
:chart="showChartInfo"
|
||||
@ -211,10 +211,11 @@ import DeRichTextView from '@/components/canvas/custom-component/DeRichTextView'
|
||||
import Vue from 'vue'
|
||||
import { formatterItem, valueFormatter } from '@/views/chart/chart/formatter'
|
||||
import UserViewDialog from '@/components/canvas/custom-component/UserViewDialog'
|
||||
import UserViewMobileDialog from '@/components/canvas/custom-component/UserViewMobileDialog'
|
||||
|
||||
export default {
|
||||
name: 'UserView',
|
||||
components: { UserViewDialog, DeRichTextView, LabelNormalText, PluginCom, ChartComponentS2, EditBarView, ChartComponent, TableNormal, LabelNormal, DrillPath, ChartComponentG2 },
|
||||
components: { UserViewMobileDialog, UserViewDialog, DeRichTextView, LabelNormalText, PluginCom, ChartComponentS2, EditBarView, ChartComponent, TableNormal, LabelNormal, DrillPath, ChartComponentG2 },
|
||||
props: {
|
||||
canvasId: {
|
||||
type: String,
|
||||
@ -817,7 +818,6 @@ export default {
|
||||
this.showChartInfo = this.chart
|
||||
this.showChartTableInfo = tableChart
|
||||
this.showChartInfoType = params.openType
|
||||
this.chartDetailsVisible = true
|
||||
if (this.terminal === 'pc') {
|
||||
this.chartDetailsVisible = true
|
||||
} else {
|
||||
|
@ -108,6 +108,8 @@ export default {
|
||||
Vue.set(newView, 'needAdaptor', needAdaptor)
|
||||
newView.id = uuid.v1()
|
||||
newView.propValue.viewId = res.data
|
||||
newView['canvasId'] = 'canvas-main'
|
||||
newView['canvasPid'] = '0'
|
||||
if (newView.filters && newView.filters.length) {
|
||||
newView.filters = []
|
||||
}
|
||||
|
@ -231,6 +231,10 @@ export function imgUrlTrans(url) {
|
||||
}
|
||||
}
|
||||
|
||||
export function getNowCanvasComponentData(canvasId) {
|
||||
return store.state.componentData.filter(item => item.canvasId === canvasId)
|
||||
export function getNowCanvasComponentData(canvasId, showPosition) {
|
||||
if (showPosition && (showPosition.includes('email-task') || showPosition.includes('multiplexing'))) {
|
||||
return store.state.previewComponentData.filter(item => item.canvasId === canvasId)
|
||||
} else {
|
||||
return store.state.componentData.filter(item => item.canvasId === canvasId)
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<button
|
||||
class="de-button"
|
||||
type="button"
|
||||
:disabled="buttonDisabled || loading"
|
||||
:class="[
|
||||
type ? 'de-button--' + type : '',
|
||||
|
@ -24,7 +24,7 @@
|
||||
<span>{{ $t('denumberrange.split_placeholder') }}</span>
|
||||
<el-form-item
|
||||
prop="max"
|
||||
style="padding-right: 0px;width: calc(50% - 6px) !important;"
|
||||
style="padding-right: 0px;width: calc(50% - 4px) !important;"
|
||||
>
|
||||
<el-input
|
||||
ref="de-number-range-max"
|
||||
|
@ -3,6 +3,10 @@
|
||||
class="de-tabs-div"
|
||||
:class="headClass"
|
||||
>
|
||||
<div
|
||||
v-if="maskShow"
|
||||
class="frame-mask edit-mask"
|
||||
/>
|
||||
<dataease-tabs
|
||||
v-model="activeTabName"
|
||||
type="card"
|
||||
@ -76,6 +80,7 @@
|
||||
:canvas-id="element.id+'-'+item.name"
|
||||
:panel-info="panelInfo"
|
||||
:in-screen="true"
|
||||
:show-position="showPosition"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@ -197,7 +202,7 @@
|
||||
</el-dialog>
|
||||
|
||||
<text-attr
|
||||
v-if="showAttr && curComponent.canvasId !== 'canvas-main'"
|
||||
v-if="showAttr && curComponent.canvasId === activeCanvasId"
|
||||
:canvas-id="curComponent.canvasId"
|
||||
:scroll-left="scrollLeft"
|
||||
:scroll-top="scrollTop"
|
||||
@ -293,6 +298,12 @@ export default {
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
activeCanvasId() {
|
||||
return this.element.id + '-' + this.activeTabName
|
||||
},
|
||||
maskShow() {
|
||||
return Boolean(this.$store.state.dragComponentInfo)
|
||||
},
|
||||
titleStyle() {
|
||||
return {
|
||||
fontSize: (this.element.style.fontSize || 16) + 'px'
|
||||
@ -344,16 +355,32 @@ export default {
|
||||
'pcComponentData'
|
||||
]),
|
||||
fontColor() {
|
||||
return this.element && this.element.style && this.element.style.headFontColor || 'none'
|
||||
if (this.element && this.element.style && this.element.style.headFontColor && typeof this.element.style.headFontColor === 'string') {
|
||||
return this.element.style.headFontColor
|
||||
} else {
|
||||
return 'none'
|
||||
}
|
||||
},
|
||||
activeColor() {
|
||||
return this.element && this.element.style && this.element.style.headFontActiveColor || 'none'
|
||||
if (this.element && this.element.style && this.element.style.headFontActiveColor && typeof this.element.style.headFontActiveColor === 'string') {
|
||||
return this.element.style.headFontActiveColor
|
||||
} else {
|
||||
return 'none'
|
||||
}
|
||||
},
|
||||
borderColor() {
|
||||
return this.element && this.element.style && this.element.style.headBorderColor || 'none'
|
||||
if (this.element && this.element.style && this.element.style.headBorderColor && typeof this.element.style.headBorderColor === 'string') {
|
||||
return this.element.style.headBorderColor
|
||||
} else {
|
||||
return 'none'
|
||||
}
|
||||
},
|
||||
borderActiveColor() {
|
||||
return this.element && this.element.style && this.element.style.headBorderActiveColor || 'none'
|
||||
if (this.element && this.element.style && this.element.style.headBorderActiveColor && typeof this.element.style.headBorderActiveColor === 'string') {
|
||||
return this.element.style.headBorderActiveColor
|
||||
} else {
|
||||
return 'none'
|
||||
}
|
||||
},
|
||||
titleValid() {
|
||||
return !!this.textarea && !!this.textarea.trim()
|
||||
@ -431,7 +458,7 @@ export default {
|
||||
if (this.mobileLayoutStatus) {
|
||||
return this.pcComponentData.filter(item => item.canvasId === tabCanvasId)
|
||||
} else {
|
||||
return getNowCanvasComponentData(tabCanvasId)
|
||||
return getNowCanvasComponentData(tabCanvasId, this.showPosition)
|
||||
}
|
||||
},
|
||||
setContentThemeStyle() {
|
||||
@ -642,20 +669,40 @@ export default {
|
||||
.canvas_move_in {
|
||||
border-color: blueviolet;
|
||||
}
|
||||
::v-deep .el-tabs__nav{
|
||||
|
||||
::v-deep .el-tabs__nav {
|
||||
width: 100%;
|
||||
}
|
||||
.tab-head-left ::v-deep .el-tabs__nav{
|
||||
|
||||
.tab-head-left ::v-deep .el-tabs__nav {
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
.tab-head-right ::v-deep .el-tabs__nav{
|
||||
|
||||
.tab-head-right ::v-deep .el-tabs__nav {
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
}
|
||||
.tab-head-center ::v-deep .el-tabs__nav{
|
||||
|
||||
.tab-head-center ::v-deep .el-tabs__nav {
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.frame-mask {
|
||||
display: flex;
|
||||
opacity: 0;
|
||||
position:absolute;
|
||||
top:0px;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.edit-mask{
|
||||
left: 0px;
|
||||
height: 100%!important;
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
@ -24,8 +24,7 @@ const dialogPanel = {
|
||||
const drawPanel = {
|
||||
type: 'custom',
|
||||
style: {
|
||||
width: 500,
|
||||
// height: 45.5,
|
||||
width: 300,
|
||||
height: 90,
|
||||
fontSize: 14,
|
||||
fontWeight: 500,
|
||||
|
@ -2629,6 +2629,7 @@ export default {
|
||||
'I18N_USER_TEMPLATE_ERROR': 'Template file error',
|
||||
'i18n_max_user_import_size': 'File size exceeds 10M',
|
||||
app_template: {
|
||||
execution_time: 'Execution time',
|
||||
app_manager: 'Application management',
|
||||
app_upload: 'Upload app',
|
||||
no_apps: 'No apps',
|
||||
|
@ -2630,6 +2630,7 @@ export default {
|
||||
'I18N_USER_TEMPLATE_ERROR': '模版錯誤',
|
||||
'i18n_max_user_import_size': '文件最大不能超過10M',
|
||||
app_template: {
|
||||
execution_time: '执行时间',
|
||||
app_manager: '應用管理',
|
||||
app_upload: '上傳應用',
|
||||
no_apps: '暫無應用',
|
||||
|
@ -2630,6 +2630,7 @@ export default {
|
||||
'I18N_USER_TEMPLATE_ERROR': '模版错误',
|
||||
'i18n_max_user_import_size': '文件最大不能超过10M',
|
||||
app_template: {
|
||||
execution_time: '执行时间',
|
||||
app_manager: '应用管理',
|
||||
app_upload: '上传应用',
|
||||
no_apps: '暂无应用',
|
||||
|
@ -152,7 +152,8 @@ const data = {
|
||||
width: 0,
|
||||
height: 0
|
||||
},
|
||||
previewVisible: false
|
||||
previewVisible: false,
|
||||
previewComponentData: []
|
||||
},
|
||||
mutations: {
|
||||
...animation.mutations,
|
||||
@ -189,6 +190,14 @@ const data = {
|
||||
state.canvasStyleData = style
|
||||
},
|
||||
|
||||
setComponentFromList(state, playload) {
|
||||
state.componentData.some((ele, index) => {
|
||||
if (ele.id !== playload.id) return false
|
||||
state.componentData.splice(index, 1, playload)
|
||||
return true
|
||||
})
|
||||
},
|
||||
|
||||
setCurComponent(state, { component, index }) {
|
||||
// 当前视图操作状态置空
|
||||
if (component) {
|
||||
@ -242,7 +251,9 @@ const data = {
|
||||
setComponentData(state, componentData = []) {
|
||||
Vue.set(state, 'componentData', componentData)
|
||||
},
|
||||
|
||||
setPreviewComponentData(state, previewComponentData = []) {
|
||||
Vue.set(state, 'previewComponentData', previewComponentData)
|
||||
},
|
||||
setComponentViewsData(state, componentViewsData = {}) {
|
||||
Vue.set(state, 'componentViewsData', componentViewsData)
|
||||
},
|
||||
@ -639,6 +650,13 @@ const data = {
|
||||
},
|
||||
addCurMultiplexingComponent(state, { component, componentId }) {
|
||||
if (componentId) {
|
||||
if (component.type === 'custom-button' && component.serviceName === 'buttonSureWidget') {
|
||||
const copyComponent = deepCopy(component)
|
||||
copyComponent.options.attrs.customRange = false
|
||||
copyComponent.options.attrs.filterIds = []
|
||||
state.curMultiplexingComponents[componentId] = copyComponent
|
||||
return
|
||||
}
|
||||
state.curMultiplexingComponents[componentId] = component
|
||||
}
|
||||
},
|
||||
|
@ -19,7 +19,10 @@
|
||||
style="cursor: default;display: block;"
|
||||
>
|
||||
<div style="padding:6px 4px 0;margin: 0;">
|
||||
<chart-title-update :chart-info="chartInfo" />
|
||||
<chart-title-update
|
||||
:title-class="title_class"
|
||||
:chart-info="chartInfo"
|
||||
/>
|
||||
<title-remark
|
||||
v-if="remarkCfg.show"
|
||||
style="text-shadow: none!important;margin-left: 4px;"
|
||||
|
@ -19,7 +19,10 @@
|
||||
style="cursor: default;display: block;"
|
||||
>
|
||||
<div style="padding:6px 4px 0;margin: 0;">
|
||||
<chart-title-update :chart-info="chartInfo" />
|
||||
<chart-title-update
|
||||
:title-class="title_class"
|
||||
:chart-info="chartInfo"
|
||||
/>
|
||||
<title-remark
|
||||
v-if="remarkCfg.show"
|
||||
style="text-shadow: none!important;margin-left: 4px;"
|
||||
@ -480,13 +483,13 @@ export default {
|
||||
height:100%;
|
||||
}
|
||||
.table-dom-info-drill{
|
||||
height:calc(100% - 36px - 12px);
|
||||
height:calc(100% - 36px - 24px);
|
||||
}
|
||||
.table-dom-info-drill-pull{
|
||||
height:calc(100% - 12px);
|
||||
height:calc(100% - 24px);
|
||||
}
|
||||
.table-dom-normal-drill{
|
||||
height:calc(100% - 12px);
|
||||
height:calc(100% - 24px);
|
||||
}
|
||||
.table-page{
|
||||
display: flex;
|
||||
@ -504,6 +507,7 @@ export default {
|
||||
font-size: 12px;
|
||||
color: #606266;
|
||||
white-space:nowrap;
|
||||
padding-left: 8px;
|
||||
}
|
||||
.page-style ::v-deep .el-input__inner{
|
||||
height: 24px;
|
||||
|
@ -1,17 +1,33 @@
|
||||
<template>
|
||||
<el-input
|
||||
<div
|
||||
v-if="chartTitleEditer"
|
||||
ref="chartTitle"
|
||||
v-model.lazy="chartTitleUpdate"
|
||||
v-clickoutside="lostFocus"
|
||||
clearable
|
||||
type="text"
|
||||
class="chart-input-title"
|
||||
@blur="changeEditStatus"
|
||||
/>
|
||||
class="ipnut-wrap"
|
||||
>
|
||||
<input
|
||||
ref="chartTitle"
|
||||
v-model="chartTitleUpdate"
|
||||
type="text"
|
||||
:style="inputStyle"
|
||||
class="chart-input-title"
|
||||
@blur="changeEditStatus"
|
||||
>
|
||||
<i
|
||||
v-if="showClose"
|
||||
class="el-icon-circle-close"
|
||||
@mousedown.prevent
|
||||
@click="chartTitleUpdate = ''"
|
||||
/>
|
||||
</div>
|
||||
<p
|
||||
v-else
|
||||
style="overflow: hidden;white-space: pre;text-overflow: ellipsis;display: inline;min-width: 30px"
|
||||
style="
|
||||
overflow: hidden;
|
||||
white-space: pre;
|
||||
text-overflow: ellipsis;
|
||||
display: inline;
|
||||
min-width: 30px;
|
||||
"
|
||||
@click.stop="handleTitleEditer"
|
||||
>{{ chart.title }}</p>
|
||||
</template>
|
||||
@ -32,13 +48,18 @@ export default {
|
||||
chartInfo: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
titleClass: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
chartTitleEditer: false,
|
||||
chartTitleUpdate: '',
|
||||
chart: {}
|
||||
chart: {},
|
||||
showClose: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@ -48,6 +69,10 @@ export default {
|
||||
...mapState(['mobileLayoutStatus', 'previewVisible']),
|
||||
panelInfo() {
|
||||
return this.$store.state.panel.panelInfo
|
||||
},
|
||||
inputStyle() {
|
||||
const { fontSize, color, fontWeight, fontStyle, fontFamily } = this.titleClass
|
||||
return { fontSize, color, fontWeight, fontStyle, fontFamily, height: fontSize }
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -58,6 +83,9 @@ export default {
|
||||
},
|
||||
immediate: true,
|
||||
deep: true
|
||||
},
|
||||
chartTitleUpdate(val) {
|
||||
this.showClose = !!val
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@ -274,13 +302,17 @@ export default {
|
||||
},
|
||||
lostFocus() {
|
||||
this.chartTitleEditer = false
|
||||
this.showClose = false
|
||||
},
|
||||
handleTitleEditer() {
|
||||
if (
|
||||
this.mainActiveName !== 'PanelEdit' ||
|
||||
this.mobileLayoutStatus ||
|
||||
this.previewVisible
|
||||
) { return }
|
||||
) {
|
||||
return
|
||||
}
|
||||
this.showClose = true
|
||||
this.chartTitleEditer = true
|
||||
this.chartTitleUpdate = this.chart.title
|
||||
this.$nextTick(() => {
|
||||
@ -322,15 +354,38 @@ export default {
|
||||
? JSON.parse(chartView.customFilter)
|
||||
: {}
|
||||
chartView.senior = chartView.senior ? JSON.parse(chartView.senior) : {}
|
||||
chartView.customStyle.text.title = this.chartTitleUpdate
|
||||
|
||||
this.$store.commit('recordViewEdit', {
|
||||
viewId: this.chart.id,
|
||||
hasEdit: true
|
||||
})
|
||||
const view = JSON.parse(JSON.stringify(chartView))
|
||||
view.xaxis = JSON.stringify(chartView.xaxis)
|
||||
view.viewFields = JSON.stringify(chartView.viewFields)
|
||||
view.xaxisExt = JSON.stringify(chartView.xaxisExt)
|
||||
view.yaxis = JSON.stringify(chartView.yaxis)
|
||||
view.yaxisExt = JSON.stringify(chartView.yaxisExt)
|
||||
view.extStack = JSON.stringify(chartView.extStack)
|
||||
view.drillFields = JSON.stringify(chartView.drillFields)
|
||||
view.extBubble = JSON.stringify(chartView.extBubble)
|
||||
view.customAttr = JSON.stringify(chartView.customAttr)
|
||||
view.customStyle = JSON.stringify(chartView.customStyle)
|
||||
view.customFilter = JSON.stringify(chartView.customFilter)
|
||||
view.senior = JSON.stringify(chartView.senior)
|
||||
view.title = this.chartTitleUpdate
|
||||
view.name = this.chartTitleUpdate
|
||||
view.stylePriority = chartView.stylePriority
|
||||
const viewSave = this.buildParam(chartView, true, 'chart', false, false)
|
||||
if (!viewSave) return
|
||||
viewEditSave(this.panelInfo.id, viewSave).then(() => {
|
||||
this.chart.title = this.chartTitleUpdate
|
||||
bus.$emit('aside-set-title', this.chart.title)
|
||||
})
|
||||
this.$store.commit('recordViewEdit', {
|
||||
viewId: this.chart.id,
|
||||
hasEdit: true
|
||||
bus.$emit('view-in-cache', {
|
||||
type: 'styleChange',
|
||||
viewId: chartView.id,
|
||||
viewInfo: view
|
||||
})
|
||||
})
|
||||
}
|
||||
@ -339,7 +394,17 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
::v-deep.chart-input-title {
|
||||
.ipnut-wrap {
|
||||
min-width: 20%;
|
||||
max-width: 50%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
i {
|
||||
cursor: pointer;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
.chart-input-title {
|
||||
word-break: break-word;
|
||||
font: 12px / 1.231 -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Arial,
|
||||
'Microsoft YaHei', 'PingFang SC', sans-serif, 'Segoe UI Symbol';
|
||||
@ -352,31 +417,16 @@ export default {
|
||||
line-height: 26px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background: transparent;
|
||||
position: relative;
|
||||
outline: none;
|
||||
z-index: 5;
|
||||
color: #182b50;
|
||||
font-weight: 400;
|
||||
font-family: inherit;
|
||||
border: none;
|
||||
background: transparent;
|
||||
border-width: 0px 0px 1px;
|
||||
border-image: initial;
|
||||
border-bottom: 1px solid rgb(200, 203, 204);
|
||||
z-index: 2;
|
||||
height: 21px;
|
||||
min-width: 20%;
|
||||
max-width: 50%;
|
||||
.el-input__inner {
|
||||
height: 21px;
|
||||
font-size: 12px;
|
||||
color: #182b50;
|
||||
font-weight: 400;
|
||||
font-family: inherit;
|
||||
border-radius: 0;
|
||||
border: none;
|
||||
line-height: 21px;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.el-input__suffix {
|
||||
.el-input__icon {
|
||||
line-height: 21px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
@ -11,7 +11,10 @@
|
||||
style="cursor: default;display: block;"
|
||||
>
|
||||
<div>
|
||||
<chart-title-update :chart-info="chartInfo" />
|
||||
<chart-title-update
|
||||
:title-class="title_class"
|
||||
:chart-info="chartInfo"
|
||||
/>
|
||||
<title-remark
|
||||
v-if="chart.render && chart.render === 'antv' && remarkCfg.show"
|
||||
style="text-shadow: none!important;margin-left: 4px;"
|
||||
|
@ -18,7 +18,10 @@
|
||||
style="cursor: default;display: block;"
|
||||
>
|
||||
<div>
|
||||
<chart-title-update :chart-info="chartInfo" />
|
||||
<chart-title-update
|
||||
:title-class="title_class"
|
||||
:chart-info="chartInfo"
|
||||
/>
|
||||
<title-remark
|
||||
v-if="chart.render && chart.render === 'antv' && remarkCfg.show"
|
||||
style="text-shadow: none!important;margin-left: 4px;"
|
||||
|
@ -50,8 +50,10 @@
|
||||
|
||||
<template
|
||||
slot="header"
|
||||
slot-scope="scope"
|
||||
>
|
||||
<el-input
|
||||
:id="scope.$index"
|
||||
v-model="keyWord"
|
||||
size="mini"
|
||||
placeholder="输入关键字搜索"
|
||||
|
@ -1854,11 +1854,11 @@ export default {
|
||||
},
|
||||
|
||||
methods: {
|
||||
setTitle(val) {
|
||||
this.chart.name = val
|
||||
this.chart.title = val
|
||||
this.view.name = val
|
||||
this.view.title = val
|
||||
setTitle(title) {
|
||||
this.view.customStyle.text = { ...this.view.customStyle.text, title }
|
||||
this.view.title = title
|
||||
this.view.name = title
|
||||
this.calcStyle()
|
||||
},
|
||||
resetChartData() {
|
||||
this.getChart(this.param.id)
|
||||
|
@ -26,6 +26,7 @@
|
||||
@onChangeSplitForm="onChangeSplitForm"
|
||||
@onTextChange="onTextChange"
|
||||
@onLegendChange="onLegendChange"
|
||||
@onMarginChange="onMarginChange"
|
||||
/>
|
||||
<el-row v-else>
|
||||
<div class="view-selected-message-class">
|
||||
@ -99,6 +100,9 @@ export default {
|
||||
onLegendChange(val) {
|
||||
this.batchOptChange('customStyle', 'legend', val)
|
||||
},
|
||||
onMarginChange(val) {
|
||||
this.batchOptChange('customStyle', 'margin', val)
|
||||
},
|
||||
batchOptChange(custom, property, value) {
|
||||
this.$store.commit('setChangeProperties', {
|
||||
'custom': custom,
|
||||
|
@ -270,12 +270,12 @@ export default {
|
||||
}
|
||||
.info-title {
|
||||
font-size: 12px;
|
||||
color: var(--deTextPrimary, #1f2329);
|
||||
margin-bottom: 4px !important;
|
||||
color: var(--deTextSecondary, #646a73);
|
||||
}
|
||||
.info-content {
|
||||
font-size: 14px;
|
||||
color: var(--deTextSecondary, #646a73);
|
||||
color: var(--deTextPrimary, #1f2329);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -211,16 +211,16 @@
|
||||
/>
|
||||
</span>
|
||||
</span>
|
||||
<el-input
|
||||
v-if="scope.row.deType === 1"
|
||||
v-model="scope.row.dateFormat"
|
||||
:placeholder="$t('dataset.date_format')"
|
||||
size="small"
|
||||
class="input-type"
|
||||
:disabled="!hasDataPermission('manage', param.privileges)"
|
||||
@blur="saveEdit(scope.row)"
|
||||
@keyup.enter.native="saveEdit(scope.row)"
|
||||
/>
|
||||
<!-- <el-input-->
|
||||
<!-- v-if="scope.row.deType === 1"-->
|
||||
<!-- v-model="scope.row.dateFormat"-->
|
||||
<!-- :placeholder="$t('dataset.date_format')"-->
|
||||
<!-- size="small"-->
|
||||
<!-- class="input-type"-->
|
||||
<!-- :disabled="!hasDataPermission('manage', param.privileges)"-->
|
||||
<!-- @blur="saveEdit(scope.row)"-->
|
||||
<!-- @keyup.enter.native="saveEdit(scope.row)"-->
|
||||
<!-- />-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
@ -548,16 +548,16 @@
|
||||
/>
|
||||
</span>
|
||||
</span>
|
||||
<el-input
|
||||
v-if="scope.row.deType === 1"
|
||||
v-model="scope.row.dateFormat"
|
||||
:placeholder="$t('dataset.date_format')"
|
||||
size="small"
|
||||
class="input-type"
|
||||
:disabled="!hasDataPermission('manage', param.privileges)"
|
||||
@blur="saveEdit(scope.row)"
|
||||
@keyup.enter.native="saveEdit(scope.row)"
|
||||
/>
|
||||
<!-- <el-input-->
|
||||
<!-- v-if="scope.row.deType === 1"-->
|
||||
<!-- v-model="scope.row.dateFormat"-->
|
||||
<!-- :placeholder="$t('dataset.date_format')"-->
|
||||
<!-- size="small"-->
|
||||
<!-- class="input-type"-->
|
||||
<!-- :disabled="!hasDataPermission('manage', param.privileges)"-->
|
||||
<!-- @blur="saveEdit(scope.row)"-->
|
||||
<!-- @keyup.enter.native="saveEdit(scope.row)"-->
|
||||
<!-- />-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
|
@ -172,6 +172,7 @@ export default {
|
||||
this.currentPage.show = parseInt(this.form.row)
|
||||
this.currentPage.pageSize = parseInt(this.form.row)
|
||||
this.currentPage.page = 1
|
||||
this.$refs.setCount?.doClose()
|
||||
this.$emit('reSearch', { form: this.form, page: this.currentPage })
|
||||
},
|
||||
pageChange(val) {
|
||||
|
@ -3,10 +3,12 @@
|
||||
<el-row style="margin: 6px 0 16px 0">
|
||||
<el-col :span="12">
|
||||
<deBtn
|
||||
v-if="hasDataPermission('manage', param.privileges)"
|
||||
secondary
|
||||
icon="el-icon-plus"
|
||||
@click="() => addTask()"
|
||||
>{{ $t('dataset.add_task') }}</deBtn>
|
||||
|
||||
</el-col>
|
||||
<el-col
|
||||
style="text-align: right"
|
||||
@ -66,8 +68,15 @@
|
||||
v-if="scope.row.lastExecStatus"
|
||||
:class="[`de-${scope.row.lastExecStatus}-pre`, 'de-status']"
|
||||
>{{
|
||||
$t(`dataset.${scope.row.lastExecStatus.toLocaleLowerCase()}`)
|
||||
}}
|
||||
$t(`dataset.${scope.row.lastExecStatus.toLocaleLowerCase()}`)
|
||||
}}
|
||||
<svg-icon
|
||||
v-if="scope.row.lastExecStatus === 'Error'"
|
||||
style="cursor: pointer;"
|
||||
icon-class="icon-maybe"
|
||||
class="field-icon-location"
|
||||
@click="showErrorMassage(scope.row.msg)"
|
||||
/>
|
||||
</span>
|
||||
<span v-else>-</span>
|
||||
</template>
|
||||
@ -926,7 +935,7 @@ export default {
|
||||
getIncrementalConfig() {
|
||||
post('/dataset/table/incrementalConfig', { tableId: this.table.id }).then(response => {
|
||||
this.incrementalConfig = response.data
|
||||
if (this.incrementalConfig.incrementalAdd.length === 0 && this.incrementalConfig.incrementalDelete.length === 0) {
|
||||
if (this.incrementalConfig?.incrementalAdd?.length === 0 && this.incrementalConfig?.incrementalDelete?.length === 0) {
|
||||
this.incrementalUpdateType = 'incrementalAdd'
|
||||
this.sql = ''
|
||||
return
|
||||
|
@ -8,6 +8,7 @@
|
||||
<span
|
||||
class="title-text"
|
||||
style="line-height: 26px"
|
||||
:title="table.name"
|
||||
>
|
||||
{{ table.name }}
|
||||
</span>
|
||||
@ -396,6 +397,11 @@ export default {
|
||||
font-weight: 500;
|
||||
margin-right: 8px;
|
||||
color: var(--deTextPrimary, #1f2329);
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
max-width: 50%;
|
||||
}
|
||||
|
||||
.de-tag {
|
||||
|
@ -41,7 +41,7 @@ import DeMainContainer from '@/components/dataease/DeMainContainer'
|
||||
import DeContainer from '@/components/dataease/DeContainer'
|
||||
import DeAsideContainer from '@/components/dataease/DeAsideContainer'
|
||||
import { findOne } from '@/api/panel/panel'
|
||||
import { deepCopy, getNowCanvasComponentData, panelDataPrepare } from '@/components/canvas/utils/utils'
|
||||
import { deepCopy, panelDataPrepare } from '@/components/canvas/utils/utils'
|
||||
import Preview from '@/components/canvas/components/Editor/Preview'
|
||||
import MultiplexingView from '@/views/panel/ViewSelect/multiplexingView'
|
||||
import { DEFAULT_COMMON_CANVAS_STYLE_STRING } from '@/views/panel/panel'
|
||||
@ -75,7 +75,7 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
mainCanvasComponentData() {
|
||||
return getNowCanvasComponentData(this.canvasId)
|
||||
return this.componentData.filter(item => item.canvasId === this.canvasId)
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -105,6 +105,7 @@ export default {
|
||||
_this.componentData = rsp.componentData
|
||||
_this.canvasStyleData = rsp.componentStyle
|
||||
_this.selectedPanel = params
|
||||
_this.$store.commit('setPreviewComponentData', _this.componentData)
|
||||
})
|
||||
})
|
||||
} else if (params.showType === 'view') {
|
||||
|
@ -65,7 +65,7 @@
|
||||
append-to-body
|
||||
class="de-dialog-form"
|
||||
width="600px"
|
||||
destroy-on-close="true"
|
||||
:destroy-on-close="true"
|
||||
>
|
||||
<el-form
|
||||
ref="templateEditForm"
|
||||
|
@ -8,7 +8,7 @@
|
||||
:style="classImg"
|
||||
>
|
||||
<img
|
||||
:src="model.snapshot"
|
||||
:src="imgSrc"
|
||||
alt=""
|
||||
>
|
||||
</div>
|
||||
@ -82,8 +82,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { imgUrlTrans } from '@/components/canvas/utils/utils'
|
||||
export default {
|
||||
props: {
|
||||
showPosition: {
|
||||
@ -101,6 +101,9 @@ export default {
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
imgSrc() {
|
||||
return imgUrlTrans(this.model.snapshot)
|
||||
},
|
||||
classBackground() {
|
||||
return {
|
||||
width: this.width + 'px',
|
||||
|
@ -13,7 +13,7 @@
|
||||
class="market-main"
|
||||
>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-col :span="12">
|
||||
<span class="title-left">{{ $t('app_template.app_manager') }}</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -54,7 +54,7 @@
|
||||
width="80%"
|
||||
top="5vh"
|
||||
class="market-dialog-css"
|
||||
append-to-body="true"
|
||||
:append-to-body="true"
|
||||
:destroy-on-close="true"
|
||||
>
|
||||
<el-form
|
||||
|
@ -137,7 +137,7 @@
|
||||
show-overflow-tooltip
|
||||
prop="applyTime"
|
||||
sortable="custom"
|
||||
:label="'应用时间'"
|
||||
:label="$t('app_template.execution_time')"
|
||||
>
|
||||
<template #default="scope">
|
||||
<span>{{ scope.row.applyTime | timestampFormatDate }}</span>
|
||||
|
@ -1154,6 +1154,7 @@ export default {
|
||||
this.$store.commit('setComponentWithId', this.currentFilterCom)
|
||||
this.$store.commit('recordSnapshot', 'sureFilter')
|
||||
this.$store.commit('setCurComponent', { component: this.currentFilterCom, index: this.curComponentIndex })
|
||||
this.$store.commit('setComponentFromList', this.currentFilterCom)
|
||||
bus.$emit('reset-default-value', this.currentFilterCom.id)
|
||||
this.closeFilter()
|
||||
},
|
||||
|
@ -239,7 +239,7 @@ export default {
|
||||
watch: {
|
||||
'childViews.datasetParams': {
|
||||
handler(newName, oldName) {
|
||||
if (this.attrs.parameters.length > 0 && this.attrs.parameters[0].indexOf('|DE|') === -1) {
|
||||
if (this.attrs.parameters?.length && this.attrs.parameters[0].indexOf('|DE|') === -1) {
|
||||
const parameters = []
|
||||
for (var i = 0; i < this.attrs.parameters.length; i++) {
|
||||
if (this.attrs.parameters[i].indexOf('|DE|') === -1) {
|
||||
|
@ -13,7 +13,7 @@
|
||||
class="market-main"
|
||||
>
|
||||
<el-row>
|
||||
<el-col span="12">
|
||||
<el-col :span="12">
|
||||
<span class="title-left">{{ $t('panel.template_market') }}</span>
|
||||
</el-col>
|
||||
<el-col span="12">
|
||||
@ -23,7 +23,7 @@
|
||||
size="small"
|
||||
class="title-right"
|
||||
:placeholder="$t('panel.enter_template_name_tips')"
|
||||
clearable="true"
|
||||
:clearable="true"
|
||||
/>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -88,7 +88,7 @@
|
||||
:visible.sync="folderSelectShow"
|
||||
width="600px"
|
||||
class="market-dialog-css"
|
||||
append-to-body="true"
|
||||
:append-to-body="true"
|
||||
:destroy-on-close="true"
|
||||
>
|
||||
<el-form
|
||||
|
@ -692,7 +692,7 @@ export default {
|
||||
return newArr
|
||||
},
|
||||
setType() {
|
||||
this.form.type = this.params.type
|
||||
this.$set(this.form, 'type', this.params.type)
|
||||
this.form.configuration = {
|
||||
initialPoolSize: 5,
|
||||
extraParams: '',
|
||||
|
@ -67,20 +67,19 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="foot">
|
||||
<el-button
|
||||
class="btn normal"
|
||||
<div class="de-foot">
|
||||
<deBtn
|
||||
secondary
|
||||
@click="reset"
|
||||
>{{
|
||||
$t("commons.reset")
|
||||
}}</el-button>
|
||||
<el-button
|
||||
}}</deBtn>
|
||||
<deBtn
|
||||
type="primary"
|
||||
class="btn"
|
||||
@click="search"
|
||||
>{{
|
||||
$t("commons.adv_search.search")
|
||||
}}</el-button>
|
||||
}}</deBtn>
|
||||
</div>
|
||||
</el-drawer>
|
||||
</template>
|
||||
|
@ -255,7 +255,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
showError() {
|
||||
const errKeys = ['WecomError', 'DingtalkError', 'LarkError']
|
||||
const errKeys = ['WecomError', 'DingtalkError', 'LarkError', 'LarksuiteError']
|
||||
errKeys.forEach(key => {
|
||||
const msg = Cookies.get(key)
|
||||
if (msg) {
|
||||
|
Loading…
Reference in New Issue
Block a user