提交 e9273e42 authored 作者: taojinlong's avatar taojinlong

Merge branch 'dev' of github.com:dataease/dataease into dev

...@@ -255,6 +255,7 @@ ...@@ -255,6 +255,7 @@
<groupId>org.seleniumhq.selenium</groupId> <groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId> <artifactId>selenium-java</artifactId>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
...@@ -408,14 +409,14 @@ ...@@ -408,14 +409,14 @@
</fileset> </fileset>
</move> </move>
<move todir="src/main/resources/static/de-app"> <copy todir="src/main/resources/static/de-app">
<fileset dir="../../dataease-app/dist/build/h5"> <fileset dir="../../dataease-app/dist/build/h5">
<exclude name="*.html"/> <exclude name="*.html"/>
</fileset> </fileset>
</move> </copy>
<move file="../../dataease-app/dist/build/h5/index.html" tofile="src/main/resources/templates/app.html" /> <copy file="../../dataease-app/dist/build/h5/index.html" tofile="src/main/resources/templates/app.html" />
</target> </target>
...@@ -433,7 +434,7 @@ ...@@ -433,7 +434,7 @@
<repository> <repository>
<id>pentaho-public</id> <id>pentaho-public</id>
<name>Pentaho Public</name> <name>Pentaho Public</name>
<url>http://nexus.pentaho.org/content/groups/omni</url> <url>https://nexus.pentaho.org/content/groups/omni</url>
<releases> <releases>
<enabled>true</enabled> <enabled>true</enabled>
<updatePolicy>always</updatePolicy> <updatePolicy>always</updatePolicy>
......
...@@ -7,10 +7,11 @@ ...@@ -7,10 +7,11 @@
s.panel_group_id as id, s.panel_group_id as id,
g.name as title, g.name as title,
s.create_time as `time` s.create_time as `time`
from panel_store s from( SELECT GET_V_AUTH_MODEL_ID_P_USE_MOBILE ( #{userId}, 'panel' ) cids ) t, panel_store s
inner join panel_group g inner join panel_group g
on s.panel_group_id = g.id on s.panel_group_id = g.id
where s.user_id = #{userId} where s.user_id = #{userId}
and FIND_IN_SET( g.id, cids )
order by s.create_time desc order by s.create_time desc
</select> </select>
......
...@@ -6,9 +6,9 @@ import org.apache.ibatis.annotations.Param; ...@@ -6,9 +6,9 @@ import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
public interface MobileDirMapper { public interface MobileDirMapper {
List<PanelEntity> query(String pid); List<PanelEntity> query(@Param("pid") String pid,@Param("userId") String userId);
List<PanelEntity> queryWithName(String name); List<PanelEntity> queryWithName(@Param("name") String name,@Param("userId") String userId);
List<String> idsWithUser(String userId); List<String> idsWithUser(String userId);
......
...@@ -3,23 +3,30 @@ ...@@ -3,23 +3,30 @@
<mapper namespace="io.dataease.base.mapper.ext.MobileDirMapper"> <mapper namespace="io.dataease.base.mapper.ext.MobileDirMapper">
<select id="query" resultType="io.dataease.mobile.entity.PanelEntity"> <select id="query" resultType="io.dataease.mobile.entity.PanelEntity">
select SELECT
id, id,
name as text, NAME AS text,
pid, pid,
node_type as `type` node_type AS `type`
from panel_group g FROM
where pid = #{pid} and g.mobile_layout = 1 panel_group g,
( SELECT GET_V_AUTH_MODEL_ID_P_USE_MOBILE ( #{userId}, 'panel' ) cids ) t
WHERE
g.pid = #{pid}
AND FIND_IN_SET( g.id, cids )
</select> </select>
<select id="queryWithName" resultType="io.dataease.mobile.entity.PanelEntity"> <select id="queryWithName" resultType="io.dataease.mobile.entity.PanelEntity">
select SELECT
id, id,
name as text, NAME AS text,
pid, pid,
node_type as `type` node_type AS `type`
from panel_group g FROM
where g.mobile_layout = 1 panel_group g,
( SELECT GET_V_AUTH_MODEL_ID_P_USE_MOBILE ( #{userId}, 'panel' ) cids ) t
WHERE
FIND_IN_SET( g.id, cids )
<if test="name != null"> <if test="name != null">
and name like CONCAT('%', #{name, jdbcType=VARCHAR}, '%') and name like CONCAT('%', #{name, jdbcType=VARCHAR}, '%')
</if> </if>
......
...@@ -5,6 +5,8 @@ import io.dataease.commons.constants.ParamConstants; ...@@ -5,6 +5,8 @@ import io.dataease.commons.constants.ParamConstants;
import io.dataease.controller.sys.response.BasicInfo; import io.dataease.controller.sys.response.BasicInfo;
import io.dataease.controller.sys.response.MailInfo; import io.dataease.controller.sys.response.MailInfo;
import io.dataease.dto.SystemParameterDTO; import io.dataease.dto.SystemParameterDTO;
import io.dataease.listener.DatasetCheckListener;
import io.dataease.listener.util.CacheUtils;
import io.dataease.service.FileService; import io.dataease.service.FileService;
import io.dataease.service.system.EmailService; import io.dataease.service.system.EmailService;
import io.dataease.service.system.SystemParameterService; import io.dataease.service.system.SystemParameterService;
...@@ -16,6 +18,7 @@ import org.springframework.http.ResponseEntity; ...@@ -16,6 +18,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
...@@ -45,7 +48,7 @@ public class SystemParameterController { ...@@ -45,7 +48,7 @@ public class SystemParameterController {
public BasicInfo basicInfo() { public BasicInfo basicInfo() {
return systemParameterService.basicInfo(); return systemParameterService.basicInfo();
} }
@GetMapping("/requestTimeOut") @GetMapping("/requestTimeOut")
public Integer RequestTimeOut() { public Integer RequestTimeOut() {
BasicInfo basicInfo = systemParameterService.basicInfo(); BasicInfo basicInfo = systemParameterService.basicInfo();
...@@ -73,19 +76,17 @@ public class SystemParameterController { ...@@ -73,19 +76,17 @@ public class SystemParameterController {
} }
@GetMapping("/base/info") @GetMapping("/base/info")
public List<SystemParameterDTO> getBaseInfo () { public List<SystemParameterDTO> getBaseInfo() {
return systemParameterService.getSystemParameterInfo(ParamConstants.Classify.BASE.getValue()); return systemParameterService.getSystemParameterInfo(ParamConstants.Classify.BASE.getValue());
} }
@GetMapping("/ui/info") @GetMapping("/ui/info")
public List<SystemParameterDTO> getDisplayInfo () { public List<SystemParameterDTO> getDisplayInfo() {
return systemParameterService.getSystemParameterInfo(ParamConstants.Classify.UI.getValue()); return systemParameterService.getSystemParameterInfo(ParamConstants.Classify.UI.getValue());
} }
@GetMapping(value="/ui/image/{imageId}", produces = {MediaType.IMAGE_JPEG_VALUE, MediaType.IMAGE_PNG_VALUE}) @GetMapping(value = "/ui/image/{imageId}", produces = {MediaType.IMAGE_JPEG_VALUE, MediaType.IMAGE_PNG_VALUE})
public ResponseEntity<byte[]> image(@PathVariable("imageId") String imageId) { public ResponseEntity<byte[]> image(@PathVariable("imageId") String imageId) {
byte[] bytes = fileService.loadFileAsBytes(imageId); byte[] bytes = fileService.loadFileAsBytes(imageId);
final HttpHeaders headers = new HttpHeaders(); final HttpHeaders headers = new HttpHeaders();
...@@ -93,12 +94,19 @@ public class SystemParameterController { ...@@ -93,12 +94,19 @@ public class SystemParameterController {
return new ResponseEntity<>(bytes, headers, HttpStatus.OK); return new ResponseEntity<>(bytes, headers, HttpStatus.OK);
} }
@PostMapping(value="/save/ui", consumes = {"multipart/form-data"}) @PostMapping(value = "/save/ui", consumes = {"multipart/form-data"})
public void saveUIInfo (@RequestPart("request") Map<String,List<SystemParameterDTO>> systemParameterMap,@RequestPart(value = "files", required = false) List<MultipartFile> bodyFiles) throws IOException { public void saveUIInfo(@RequestPart("request") Map<String, List<SystemParameterDTO>> systemParameterMap, @RequestPart(value = "files", required = false) List<MultipartFile> bodyFiles) throws IOException {
systemParameterService.saveUIInfo(systemParameterMap,bodyFiles); systemParameterService.saveUIInfo(systemParameterMap, bodyFiles);
} }
@PostMapping(value = "/checkCustomDs")
public boolean checkCustomDs() {
try {
Object cache = CacheUtils.get(DatasetCheckListener.CACHE_NAME, DatasetCheckListener.CACHE_KEY);
return cache != null && (boolean) cache;
} catch (Exception e) {
return false;
}
}
} }
...@@ -104,7 +104,7 @@ public class EmailTaskHandler extends TaskHandler implements Job { ...@@ -104,7 +104,7 @@ public class EmailTaskHandler extends TaskHandler implements Job {
@Async @Async
public void sendReport(GlobalTaskInstance taskInstance, XpackEmailTemplateDTO emailTemplateDTO, public void sendReport(GlobalTaskInstance taskInstance, XpackEmailTemplateDTO emailTemplateDTO,
SysUserEntity user) { SysUserEntity user) {
EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class); EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class);
try { try {
byte[] bytes = emailXpackService.printData(panelUrl(emailTemplateDTO.getPanelId()), tokenByUser(user), byte[] bytes = emailXpackService.printData(panelUrl(emailTemplateDTO.getPanelId()), tokenByUser(user),
...@@ -153,7 +153,7 @@ public class EmailTaskHandler extends TaskHandler implements Job { ...@@ -153,7 +153,7 @@ public class EmailTaskHandler extends TaskHandler implements Job {
private String panelUrl(String panelId) { private String panelUrl(String panelId) {
String domain = ServletUtils.domain(); String domain = ServletUtils.domain();
return domain + "/#/preview/" + panelId; return domain + "/#/previewScreenShot/" + panelId + "/true";
} }
} }
package io.dataease.listener;
import io.dataease.base.domain.DatasetTable;
import io.dataease.base.domain.DatasetTableExample;
import io.dataease.base.mapper.DatasetTableMapper;
import io.dataease.listener.util.CacheUtils;
import io.dataease.plugins.loader.ClassloaderResponsity;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
/**
* @Author gin
* @Date 2021/12/22 10:01 上午
*/
@Component
public class DatasetCheckListener implements ApplicationListener<ApplicationReadyEvent> {
private final Logger logger = LoggerFactory.getLogger(ClassloaderResponsity.class);
public static final String CACHE_NAME = "check_ds";
public static final String CACHE_KEY = "hide_custom_ds";
@Resource
private DatasetTableMapper datasetTableMapper;
@Override
public void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) {
logger.info("Start check custom dataset");
// 项目启动查找是否有'自定义数据集'
DatasetTableExample datasetTableExample = new DatasetTableExample();
datasetTableExample.createCriteria().andTypeEqualTo("custom");
List<DatasetTable> datasetTables = datasetTableMapper.selectByExampleWithBLOBs(datasetTableExample);
CacheUtils.put(CACHE_NAME, CACHE_KEY, CollectionUtils.isEmpty(datasetTables), null, null);
}
}
...@@ -40,12 +40,13 @@ public class DirService { ...@@ -40,12 +40,13 @@ public class DirService {
} }
public List<DirItemDTO> query(DirRequest request) { public List<DirItemDTO> query(DirRequest request) {
CurrentUserDto user = AuthUtils.getUser(); // CurrentUserDto user = AuthUtils.getUser();
String userId = String.valueOf(AuthUtils.getUser().getUserId());
List<PanelEntity> panelEntities = new ArrayList<>(); List<PanelEntity> panelEntities = new ArrayList<>();
if (StringUtils.isNotBlank(request.getName())) { if (StringUtils.isNotBlank(request.getName())) {
panelEntities = mobileDirMapper.queryWithName(request.getName()); panelEntities = mobileDirMapper.queryWithName(request.getName(),userId);
}else { }else {
panelEntities = mobileDirMapper.query(request.getPid()); panelEntities = mobileDirMapper.query(request.getPid(),userId);
} }
if (CollectionUtils.isEmpty(panelEntities)) return null; if (CollectionUtils.isEmpty(panelEntities)) return null;
...@@ -56,16 +57,17 @@ public class DirService { ...@@ -56,16 +57,17 @@ public class DirService {
dirItemDTO.setType(data.getType()); dirItemDTO.setType(data.getType());
return dirItemDTO; return dirItemDTO;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
return dtos;
if (user.getUserId() == 1 && StringUtils.equals("admin", user.getUsername())) { // if (user.getUserId() == 1 && StringUtils.equals("admin", user.getUsername())) {
return dtos; // return dtos;
} // }
List<String> permissions = proxy().permissions(); // List<String> permissions = proxy().permissions();
return dtos.stream().filter( // return dtos.stream().filter(
dto -> permissions.stream().anyMatch( // dto -> permissions.stream().anyMatch(
permission -> StringUtils.equals(permission, dto.getId()) // permission -> StringUtils.equals(permission, dto.getId())
) // )
).collect(Collectors.toList()); // ).collect(Collectors.toList());
} }
......
...@@ -34,7 +34,7 @@ public class XEmailTaskServer { ...@@ -34,7 +34,7 @@ public class XEmailTaskServer {
@PostMapping("/queryTasks/{goPage}/{pageSize}") @PostMapping("/queryTasks/{goPage}/{pageSize}")
public Pager<List<XpackTaskGridDTO>> queryTask(@PathVariable int goPage, @PathVariable int pageSize, public Pager<List<XpackTaskGridDTO>> queryTask(@PathVariable int goPage, @PathVariable int pageSize,
@RequestBody XpackGridRequest request) { @RequestBody XpackGridRequest request) {
EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class); EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class);
Page<Object> page = PageHelper.startPage(goPage, pageSize, true); Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
List<XpackTaskGridDTO> tasks = emailXpackService.taskGrid(request); List<XpackTaskGridDTO> tasks = emailXpackService.taskGrid(request);
...@@ -80,7 +80,7 @@ public class XEmailTaskServer { ...@@ -80,7 +80,7 @@ public class XEmailTaskServer {
String panelId = request.getPanelId(); String panelId = request.getPanelId();
String content = request.getContent(); String content = request.getContent();
String url = ServletUtils.domain() + "/#/preview/" + panelId; String url = ServletUtils.domain() + "/#/previewScreenShot/" + panelId + "/true";
String token = ServletUtils.getToken(); String token = ServletUtils.getToken();
String fileId = null; String fileId = null;
...@@ -116,7 +116,7 @@ public class XEmailTaskServer { ...@@ -116,7 +116,7 @@ public class XEmailTaskServer {
@PostMapping("/queryInstancies/{goPage}/{pageSize}") @PostMapping("/queryInstancies/{goPage}/{pageSize}")
public Pager<List<XpackTaskInstanceDTO>> instancesGrid(@PathVariable int goPage, @PathVariable int pageSize, public Pager<List<XpackTaskInstanceDTO>> instancesGrid(@PathVariable int goPage, @PathVariable int pageSize,
@RequestBody XpackGridRequest request) { @RequestBody XpackGridRequest request) {
EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class); EmailXpackService emailXpackService = SpringContextUtil.getBean(EmailXpackService.class);
Page<Object> page = PageHelper.startPage(goPage, pageSize, true); Page<Object> page = PageHelper.startPage(goPage, pageSize, true);
List<XpackTaskInstanceDTO> instances = emailXpackService.taskInstanceGrid(request); List<XpackTaskInstanceDTO> instances = emailXpackService.taskInstanceGrid(request);
......
...@@ -22,3 +22,74 @@ ALTER TABLE `panel_link`CHANGE COLUMN `user_id` `user_id` BIGINT(20) NOT NULL ,D ...@@ -22,3 +22,74 @@ ALTER TABLE `panel_link`CHANGE COLUMN `user_id` `user_id` BIGINT(20) NOT NULL ,D
ALTER TABLE `panel_group` ALTER TABLE `panel_group`
ADD COLUMN `mobile_layout` tinyint(1) NULL DEFAULT 0 COMMENT '启用移动端布局' AFTER `remark`; ADD COLUMN `mobile_layout` tinyint(1) NULL DEFAULT 0 COMMENT '启用移动端布局' AFTER `remark`;
-- ----------------------------
-- Function structure for GET_PANEL_WITH_PRIVILEGE_AND_MOBILE
-- ----------------------------
DROP FUNCTION IF EXISTS `GET_PANEL_WITH_PRIVILEGE_AND_MOBILE`;
delimiter ;;
CREATE FUNCTION `GET_PANEL_WITH_PRIVILEGE_AND_MOBILE`(userId longtext,modelType varchar(255),privilegeType varchar(255))
RETURNS longtext CHARSET utf8
READS SQL DATA
BEGIN
DECLARE oTempLeafIds longtext;
select GROUP_CONCAT(auth_source) into oTempLeafIds from (
SELECT
sys_auth.auth_source_type,
sys_auth.auth_source
FROM
sys_auth
LEFT JOIN sys_auth_detail ON sys_auth.id = sys_auth_detail.auth_id
WHERE
sys_auth_detail.privilege_type = privilegeType
and sys_auth.auth_source_type = modelType
AND (
(
sys_auth.auth_target_type = 'dept'
AND sys_auth.auth_target in ( SELECT dept_id FROM sys_user WHERE user_id = userId )
)
OR (
sys_auth.auth_target_type = 'user'
AND sys_auth.auth_target = userId
)
OR (
sys_auth.auth_target_type = 'role'
AND sys_auth.auth_target in ( SELECT role_id FROM sys_users_roles WHERE user_id = userId )
)
OR (1 = ( SELECT is_admin FROM sys_user WHERE user_id = userId ))
)
and sys_auth.auth_source in (select id from panel_group where mobile_layout='1')
GROUP BY
sys_auth.auth_source_type,
sys_auth.auth_source
having (sum( sys_auth_detail.privilege_value )> 0 or 1 = ( SELECT is_admin FROM sys_user WHERE user_id = userId ))) temp;
RETURN oTempLeafIds;
END
;;
delimiter ;
-- ----------------------------
-- Function structure for GET_V_AUTH_MODEL_ID_P_USE_MOBILE
-- ----------------------------
DROP FUNCTION IF EXISTS `GET_V_AUTH_MODEL_ID_P_USE_MOBILE`;
delimiter ;;
CREATE FUNCTION `GET_V_AUTH_MODEL_ID_P_USE_MOBILE`(userId longtext,modelType varchar(255))
RETURNS longtext CHARSET utf8
READS SQL DATA
BEGIN
DECLARE oTempLeafIds longtext;
DECLARE oTempAllIds longtext;
select GET_PANEL_WITH_PRIVILEGE_AND_MOBILE(userId,modelType,1) into oTempLeafIds;
select GROUP_CONCAT(id) into oTempAllIds from (select GET_V_AUTH_MODEL_WITH_PARENT ( oTempLeafIds ,modelType) cids) t, v_auth_model where v_auth_model.model_type=modelType and FIND_IN_SET(v_auth_model.id,cids) order by id asc;
RETURN oTempAllIds;
END
;;
delimiter ;
...@@ -182,4 +182,12 @@ export function datasetRowPermissionsList(datasetId, page, size, data, loading) ...@@ -182,4 +182,12 @@ export function datasetRowPermissionsList(datasetId, page, size, data, loading)
}) })
} }
export default { loadTable, getScene, addGroup, delGroup, addTable, delTable, groupTree } export function checkCustomDs() {
return request({
url: '/system/checkCustomDs',
method: 'post',
loading: true
})
}
export default { loadTable, getScene, addGroup, delGroup, addTable, delTable, groupTree, checkCustomDs }
...@@ -148,7 +148,11 @@ export default { ...@@ -148,7 +148,11 @@ export default {
height: '100%' height: '100%'
} }
} else { } else {
return getStyle(style, ['top', 'left', 'width', 'height', 'rotate']) if (this.terminal === 'pc') {
return getStyle(style, ['top', 'left', 'width', 'height', 'rotate'])
} else {
return getStyle(style, ['top', 'left', 'width', 'height', 'rotate', 'fontSize'])
}
} }
}, },
......
...@@ -38,11 +38,11 @@ export default { ...@@ -38,11 +38,11 @@ export default {
this.element.style.width = 1600 this.element.style.width = 1600
this.element.style.height = 300 this.element.style.height = 300
this.element.style.left = 0 this.element.style.left = 0
this.element.style.top = 0 this.element.style.top = 6000
this.element.sizex = 6 this.element.sizex = 6
this.element.sizey = 4 this.element.sizey = 4
this.element.x = 1 this.element.x = 1
this.element.y = 1 this.element.y = 200
this.element.auxiliaryMatrix = true this.element.auxiliaryMatrix = true
this.$store.commit('addComponent', { component: this.element }) this.$store.commit('addComponent', { component: this.element })
} else { } else {
......
...@@ -3,7 +3,9 @@ export const BASE_MOBILE_STYLE = { ...@@ -3,7 +3,9 @@ export const BASE_MOBILE_STYLE = {
style: { style: {
width: 1600, width: 1600,
height: 300, height: 300,
borderRadius: 5 left: 0,
top: 0,
borderRadius: 3
}, },
x: 1, x: 1,
y: 1, y: 1,
......
...@@ -28,6 +28,8 @@ export default { ...@@ -28,6 +28,8 @@ export default {
} }
const data = state.copyData.data const data = state.copyData.data
// 仪表板复制的组件默认不在移动端部署中mobileSelected = false
data.mobileSelected = false
if (!state.curComponent.auxiliaryMatrix) { if (!state.curComponent.auxiliaryMatrix) {
data.style.top += 20 data.style.top += 20
data.style.left += 20 data.style.left += 20
......
...@@ -16,6 +16,7 @@ const getters = { ...@@ -16,6 +16,7 @@ const getters = {
errorLogs: state => state.errorLog.logs, errorLogs: state => state.errorLog.logs,
sceneData: state => state.dataset.sceneData, sceneData: state => state.dataset.sceneData,
table: state => state.dataset.table, table: state => state.dataset.table,
hideCustomDs: state => state.dataset.hideCustomDs,
loadingMap: state => state.request.loadingMap, loadingMap: state => state.request.loadingMap,
currentPath: state => state.permission.currentPath, currentPath: state => state.permission.currentPath,
permissions: state => state.user.permissions, permissions: state => state.user.permissions,
......
...@@ -149,11 +149,13 @@ const data = { ...@@ -149,11 +149,13 @@ const data = {
} }
}, },
setShapeStyle({ curComponent, canvasStyleData, curCanvasScale }, { top, left, width, height, rotate }) { setShapeStyle({ curComponent, canvasStyleData, curCanvasScale }, { top, left, width, height, rotate }) {
if (top || top === 0) curComponent.style.top = (top / curCanvasScale.scalePointHeight) + 0.0000001 if (curComponent) {
if (left || left === 0) curComponent.style.left = (left / curCanvasScale.scalePointWidth) + 0.0000001 if (top || top === 0) curComponent.style.top = (top / curCanvasScale.scalePointHeight) + 0.0000001
if (width || width === 0) curComponent.style.width = (width / curCanvasScale.scalePointWidth + 0.0000001) if (left || left === 0) curComponent.style.left = (left / curCanvasScale.scalePointWidth) + 0.0000001
if (height || height === 0) curComponent.style.height = (height / curCanvasScale.scalePointHeight) + 0.0000001 if (width || width === 0) curComponent.style.width = (width / curCanvasScale.scalePointWidth + 0.0000001)
if (rotate || rotate === 0) curComponent.style.rotate = rotate if (height || height === 0) curComponent.style.height = (height / curCanvasScale.scalePointHeight) + 0.0000001
if (rotate || rotate === 0) curComponent.style.rotate = rotate
}
}, },
setShapeSingleStyle({ curComponent }, { key, value }) { setShapeSingleStyle({ curComponent }, { key, value }) {
...@@ -351,7 +353,11 @@ const data = { ...@@ -351,7 +353,11 @@ const data = {
// 移动端布局转换 // 移动端布局转换
state.componentData.forEach(item => { state.componentData.forEach(item => {
if (item.mobileSelected) { if (item.mobileSelected) {
item.style = item.mobileStyle.style item.style.width = item.mobileStyle.style.width
item.style.height = item.mobileStyle.style.height
item.style.top = item.mobileStyle.style.top
item.style.left = item.mobileStyle.style.left
item.style.borderRadius = 3
item.x = item.mobileStyle.x item.x = item.mobileStyle.x
item.y = item.mobileStyle.y item.y = item.mobileStyle.y
item.sizex = item.mobileStyle.sizex item.sizex = item.mobileStyle.sizex
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
const getDefaultState = () => { const getDefaultState = () => {
return { return {
sceneData: {}, sceneData: {},
table: {} table: {},
hideCustomDs: false
} }
} }
...@@ -14,6 +15,9 @@ const mutations = { ...@@ -14,6 +15,9 @@ const mutations = {
}, },
setTable: (state, table) => { setTable: (state, table) => {
state.table = table state.table = table
},
setHideCustomDs: (state, hideCustomDs) => {
state.hideCustomDs = hideCustomDs
} }
} }
...@@ -23,6 +27,9 @@ const actions = { ...@@ -23,6 +27,9 @@ const actions = {
}, },
setTable({ commit }, table) { setTable({ commit }, table) {
commit('setTable', table) commit('setTable', table)
},
setHideCustomDs({ commit }, hideCustomDs) {
commit('setHideCustomDs', hideCustomDs)
} }
} }
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
<el-tab-pane :label="$t('dataset.field_manage')" name="fieldEdit"> <el-tab-pane :label="$t('dataset.field_manage')" name="fieldEdit">
<field-edit :param="param" :table="table" /> <field-edit :param="param" :table="table" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane v-if="table.type !== 'union' && table.type !== 'custom' && !(table.type === 'sql' && table.mode === 0)" :label="$t('dataset.join_view')" name="joinView"> <el-tab-pane v-if="!hideCustomDs && table.type !== 'union' && table.type !== 'custom' && !(table.type === 'sql' && table.mode === 0)" :label="$t('dataset.join_view')" name="joinView">
<union-view :param="param" :table="table" /> <union-view :param="param" :table="table" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane v-if="table.mode === 1 && (table.type === 'excel' || table.type === 'db' || table.type === 'sql')" :label="$t('dataset.update_info')" name="updateInfo"> <el-tab-pane v-if="table.mode === 1 && (table.type === 'excel' || table.type === 'db' || table.type === 'sql')" :label="$t('dataset.update_info')" name="updateInfo">
...@@ -76,7 +76,7 @@ import FieldEdit from './FieldEdit' ...@@ -76,7 +76,7 @@ import FieldEdit from './FieldEdit'
export default { export default {
name: 'ViewTable', name: 'ViewTable',
components: {FieldEdit, UnionView, DatasetChartDetail, UpdateInfo, TabDataPreview }, components: { FieldEdit, UnionView, DatasetChartDetail, UpdateInfo, TabDataPreview },
props: { props: {
param: { param: {
type: Object, type: Object,
...@@ -103,10 +103,9 @@ export default { ...@@ -103,10 +103,9 @@ export default {
} }
}, },
computed: { computed: {
// tableRefresh() { hideCustomDs: function() {
// this.initTable(this.param) return this.$store.getters.hideCustomDs
// return this.$store.state.dataset.table }
// }
}, },
watch: { watch: {
'param': function() { 'param': function() {
......
...@@ -91,7 +91,7 @@ ...@@ -91,7 +91,7 @@
<svg-icon icon-class="ds-excel" class="ds-icon-excel" /> <svg-icon icon-class="ds-excel" class="ds-icon-excel" />
{{ $t('dataset.excel_data') }} {{ $t('dataset.excel_data') }}
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item :command="beforeClickAddData('custom',data)"> <el-dropdown-item v-show="!hideCustomDs" :command="beforeClickAddData('custom',data)">
<svg-icon icon-class="ds-custom" class="ds-icon-custom" /> <svg-icon icon-class="ds-custom" class="ds-icon-custom" />
{{ $t('dataset.custom_data') }} {{ $t('dataset.custom_data') }}
</el-dropdown-item> </el-dropdown-item>
...@@ -309,6 +309,9 @@ export default { ...@@ -309,6 +309,9 @@ export default {
} }
}, },
computed: { computed: {
hideCustomDs: function() {
return this.$store.getters.hideCustomDs
}
}, },
watch: { watch: {
saveStatus() { saveStatus() {
......
...@@ -26,6 +26,7 @@ import AddCustom from './add/AddCustom' ...@@ -26,6 +26,7 @@ import AddCustom from './add/AddCustom'
import AddUnion from '@/views/dataset/add/AddUnion' import AddUnion from '@/views/dataset/add/AddUnion'
import FieldEdit from './data/FieldEdit' import FieldEdit from './data/FieldEdit'
import { removeClass } from '@/utils' import { removeClass } from '@/utils'
import { checkCustomDs } from '@/api/dataset/dataset'
export default { export default {
name: 'DataSet', name: 'DataSet',
components: { DeMainContainer, DeContainer, DeAsideContainer, Group, DataHome, ViewTable, AddDB, AddSQL, AddExcel, AddCustom }, components: { DeMainContainer, DeContainer, DeAsideContainer, Group, DataHome, ViewTable, AddDB, AddSQL, AddExcel, AddCustom },
...@@ -40,11 +41,17 @@ export default { ...@@ -40,11 +41,17 @@ export default {
removeClass(document.body, 'showRightPanel') removeClass(document.body, 'showRightPanel')
}, },
created() { created() {
this.initDs()
this.$store.dispatch('app/toggleSideBarHide', true) this.$store.dispatch('app/toggleSideBarHide', true)
const routerParam = this.$router.currentRoute.params const routerParam = this.$router.currentRoute.params
this.toMsgShare(routerParam) this.toMsgShare(routerParam)
}, },
methods: { methods: {
initDs() {
checkCustomDs().then(res => {
this.$store.dispatch('dataset/setHideCustomDs', res.data)
})
},
switchComponent(c) { switchComponent(c) {
this.param = c.param this.param = c.param
switch (c.name) { switch (c.name) {
......
...@@ -71,7 +71,7 @@ export default { ...@@ -71,7 +71,7 @@ export default {
return { return {
padding: '5px', padding: '5px',
display: 'inline-block', display: 'inline-block',
width: '33.3333%' width: '33%'
} }
}, },
...mapState([ ...mapState([
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论