forked from github/dataease
Merge pull request #2190 from dataease/pr@dev@refactor_panel
fix: 直接复制tab组件内部视图依然是软连接问题
This commit is contained in:
commit
e34f45dffa
@ -5,10 +5,7 @@ import io.dataease.auth.annotation.DePermission;
|
||||
import io.dataease.auth.annotation.DePermissionProxy;
|
||||
import io.dataease.commons.constants.DePermissionType;
|
||||
import io.dataease.commons.constants.ResourceAuthLevel;
|
||||
import io.dataease.controller.request.chart.ChartCalRequest;
|
||||
import io.dataease.controller.request.chart.ChartExtRequest;
|
||||
import io.dataease.controller.request.chart.ChartViewCacheRequest;
|
||||
import io.dataease.controller.request.chart.ChartViewRequest;
|
||||
import io.dataease.controller.request.chart.*;
|
||||
import io.dataease.controller.response.ChartDetail;
|
||||
import io.dataease.dto.chart.ChartViewDTO;
|
||||
import io.dataease.plugins.common.base.domain.ChartViewCacheWithBLOBs;
|
||||
@ -23,6 +20,7 @@ import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Author gin
|
||||
@ -112,6 +110,13 @@ public class ChartViewController {
|
||||
return chartViewService.chartCopy(id, panelId);
|
||||
}
|
||||
|
||||
@DePermission(type = DePermissionType.PANEL, level = ResourceAuthLevel.PANNEL_LEVEL_MANAGE, paramIndex = 1)
|
||||
@ApiOperation("批量复制")
|
||||
@PostMapping("chartBatchCopy/{panelId}")
|
||||
public Map<String,String> chartBatchCopy(@RequestBody ChartCopyBatchRequest request, @PathVariable String panelId) {
|
||||
return chartViewService.chartBatchCopy(request,panelId);
|
||||
}
|
||||
|
||||
@ApiIgnore
|
||||
@GetMapping("searchAdviceSceneId/{panelId}")
|
||||
public String searchAdviceSceneId(@PathVariable String panelId) {
|
||||
|
@ -0,0 +1,20 @@
|
||||
package io.dataease.controller.request.chart;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Author: wangjiahao
|
||||
* Date: 2022/4/26
|
||||
* Description:
|
||||
*/
|
||||
@Data
|
||||
public class ChartCopyBatchRequest {
|
||||
|
||||
private String panelId;
|
||||
|
||||
private Map<String,String> sourceAndTargetIds;
|
||||
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package io.dataease.service.chart;
|
||||
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import io.dataease.auth.entity.SysUserEntity;
|
||||
@ -1024,13 +1025,35 @@ public class ChartViewService {
|
||||
return chartViewMapper.selectByPrimaryKey(id);
|
||||
}
|
||||
|
||||
public String chartCopy(String id, String panelId) {
|
||||
public String chartCopy(String sourceViewId,String newViewId, String panelId) {
|
||||
extChartViewMapper.chartCopy(newViewId, sourceViewId, panelId);
|
||||
extChartViewMapper.copyCache(sourceViewId, newViewId);
|
||||
extPanelGroupExtendDataMapper.copyExtendData(sourceViewId, newViewId, panelId);
|
||||
chartViewCacheService.refreshCache(newViewId);
|
||||
return newViewId;
|
||||
}
|
||||
|
||||
public String chartCopy(String sourceViewId, String panelId) {
|
||||
String newChartId = UUID.randomUUID().toString();
|
||||
extChartViewMapper.chartCopy(newChartId, id, panelId);
|
||||
extChartViewMapper.copyCache(id, newChartId);
|
||||
extPanelGroupExtendDataMapper.copyExtendData(id, newChartId, panelId);
|
||||
chartViewCacheService.refreshCache(newChartId);
|
||||
return newChartId;
|
||||
return chartCopy(sourceViewId,newChartId,panelId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Description Copy a set of views with a given source ID and target ID
|
||||
* @param request
|
||||
* @param panelId
|
||||
* @return
|
||||
*/
|
||||
public Map<String,String> chartBatchCopy(ChartCopyBatchRequest request,String panelId){
|
||||
Assert.notNull(panelId,"panelId should not be null");
|
||||
Map<String,String> sourceAndTargetIds = request.getSourceAndTargetIds();
|
||||
if(sourceAndTargetIds != null && !sourceAndTargetIds.isEmpty()){
|
||||
for(Map.Entry<String,String> entry:sourceAndTargetIds.entrySet()){
|
||||
chartCopy(entry.getKey(),entry.getValue(),panelId);
|
||||
}
|
||||
}
|
||||
return request.getSourceAndTargetIds();
|
||||
}
|
||||
|
||||
public String searchAdviceSceneId(String panelId) {
|
||||
|
@ -27,6 +27,14 @@ export function chartCopy(id, panelId) {
|
||||
loading: false
|
||||
})
|
||||
}
|
||||
export function chartBatchCopy(params, panelId) {
|
||||
return request({
|
||||
url: '/chart/view/chartBatchCopy/' + panelId,
|
||||
method: 'post',
|
||||
data: params,
|
||||
loading: false
|
||||
})
|
||||
}
|
||||
export function chartGroupTree(data) {
|
||||
return request({
|
||||
url: '/chart/group/tree',
|
||||
|
@ -2,7 +2,7 @@ import store from '@/store/index'
|
||||
import toast from '@/components/canvas/utils/toast'
|
||||
import generateID from '@/components/canvas/utils/generateID'
|
||||
import { deepCopy } from '@/components/canvas/utils/utils'
|
||||
import { chartCopy } from '@/api/chart/chart'
|
||||
import { chartBatchCopy, chartCopy } from '@/api/chart/chart'
|
||||
import { uuid } from 'vue-uuid'
|
||||
|
||||
export default {
|
||||
@ -53,6 +53,19 @@ export default {
|
||||
newView.propValue.viewId = res.data
|
||||
store.commit('addComponent', { component: newView })
|
||||
})
|
||||
} if (data.type === 'de-tabs') {
|
||||
const sourceAndTargetIds = {}
|
||||
const newCop = deepCopy(data)
|
||||
newCop.options.tabList.forEach((item) => {
|
||||
if (item.content && item.content.type === 'view') {
|
||||
const newViewId = uuid.v1()
|
||||
sourceAndTargetIds[item.content.propValue.viewId] = newViewId
|
||||
item.content.propValue.viewId = newViewId
|
||||
}
|
||||
})
|
||||
chartBatchCopy({ 'sourceAndTargetIds': sourceAndTargetIds }, state.panel.panelInfo.id).then((rsp) => {
|
||||
store.commit('addComponent', { component: newCop })
|
||||
})
|
||||
} else {
|
||||
const newCop = deepCopy(data)
|
||||
newCop.id = uuid.v1()
|
||||
|
Loading…
Reference in New Issue
Block a user