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

This commit is contained in:
taojinlong 2022-05-28 21:58:06 +08:00
commit 2d1793f3f5
13 changed files with 70 additions and 84 deletions

View File

@ -7,8 +7,10 @@ import io.dataease.auth.annotation.DePermissions;
import io.dataease.commons.constants.DePermissionType;
import io.dataease.commons.constants.ResourceAuthLevel;
import io.dataease.commons.constants.SysLogConstants;
import io.dataease.commons.utils.DeLogUtils;
import io.dataease.controller.dataset.request.DeleteGroupRequest;
import io.dataease.controller.request.dataset.DataSetGroupRequest;
import io.dataease.dto.SysLogDTO;
import io.dataease.dto.dataset.DataSetGroupDTO;
import io.dataease.plugins.common.base.domain.DatasetGroup;
import io.dataease.service.dataset.DataSetGroupService;
@ -60,15 +62,12 @@ public class DataSetGroupController {
@DePermission(type = DePermissionType.DATASET, level = ResourceAuthLevel.DATASET_LEVEL_MANAGE)
@ApiOperation("删除")
@PostMapping("/delete")
@DeLog(
operatetype = SysLogConstants.OPERATE_TYPE.DELETE,
sourcetype = SysLogConstants.SOURCE_TYPE.DATASET,
positionIndex = 0,positionKey = "pid",
value = "id"
)
public void tree(@RequestBody DeleteGroupRequest request) throws Exception {
dataSetGroupService.delete(request.getId());
@PostMapping("/delete/{id}")
public void delete(@PathVariable String id) throws Exception {
DatasetGroup datasetGroup = dataSetGroupService.getScene(id);
SysLogDTO sysLogDTO = DeLogUtils.buildLog(SysLogConstants.OPERATE_TYPE.DELETE, SysLogConstants.SOURCE_TYPE.DATASET, id, datasetGroup.getPid(), null, null);
dataSetGroupService.delete(id);
DeLogUtils.save(sysLogDTO);
}
@ApiIgnore

View File

@ -4,7 +4,8 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.dataease.auth.annotation.DeLog;
import io.dataease.auth.annotation.DePermission;
import io.dataease.commons.constants.SysLogConstants;
import io.dataease.controller.datasource.request.DeleteDsRequest;
import io.dataease.commons.utils.DeLogUtils;
import io.dataease.dto.SysLogDTO;
import io.dataease.plugins.common.base.domain.Datasource;
import io.dataease.commons.constants.DePermissionType;
import io.dataease.commons.constants.ResourceAuthLevel;
@ -14,13 +15,12 @@ import io.dataease.controller.datasource.request.UpdataDsRequest;
import io.dataease.controller.request.DatasourceUnionRequest;
import io.dataease.controller.request.datasource.ApiDefinition;
import io.dataease.dto.datasource.DBTableDTO;
import io.dataease.plugins.common.dto.datasource.DataSourceType;
import io.dataease.service.datasource.DatasourceService;
import io.dataease.dto.DatasourceDTO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.pentaho.di.core.database.DataSourceProviderInterface;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
@ -90,15 +90,14 @@ public class DatasourceController {
@RequiresPermissions("datasource:read")
@DePermission(type = DePermissionType.DATASOURCE, level = ResourceAuthLevel.DATASOURCE_LEVEL_MANAGE, value = "id")
@ApiOperation("删除数据源")
@PostMapping("/delete")
@DeLog(
operatetype = SysLogConstants.OPERATE_TYPE.DELETE,
sourcetype = SysLogConstants.SOURCE_TYPE.DATASOURCE,
positionIndex = 0,positionKey = "type",
value = "id"
)
public ResultHolder deleteDatasource(@RequestBody DeleteDsRequest request) throws Exception {
return datasourceService.deleteDatasource(request.getId());
@PostMapping("/delete/{datasourceID}")
public ResultHolder deleteDatasource(@PathVariable(value = "datasourceID") String datasourceID) throws Exception {
Datasource datasource = datasourceService.get(datasourceID);
SysLogDTO sysLogDTO = DeLogUtils.buildLog(SysLogConstants.OPERATE_TYPE.DELETE, SysLogConstants.SOURCE_TYPE.DATASOURCE, datasourceID, datasource.getType(), null, null);
ResultHolder resultHolder = datasourceService.deleteDatasource(datasourceID);
if (ObjectUtils.isNotEmpty(resultHolder) && resultHolder.isSuccess())
DeLogUtils.save(sysLogDTO);
return resultHolder;
}
@RequiresPermissions("datasource:read")

View File

@ -1,16 +0,0 @@
package io.dataease.controller.datasource.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class DeleteDsRequest implements Serializable {
@ApiModelProperty(value = "ID",required = true)
private String id;
@ApiModelProperty(value = "类型", required = true)
private String type;
}

View File

@ -48,7 +48,10 @@ public class LogService {
// 排除驱动和驱动文件的公共操作的资源类型
private static Integer[] COMMON_SOURCE = {1, 2,3,4,6,7,8,9};
// 暂时屏蔽视图日志
// private static Integer[] COMMON_SOURCE = {1, 2,3,4,6,7,8,9};
private static Integer[] COMMON_SOURCE = {1, 2,3,6,7,8,9};
// 针对公共资源的操作
private static Integer[] COMMON_SOURCE_OPERATE = {1 ,2 , 3};

View File

@ -57,6 +57,8 @@ UPDATE `chart_view` SET `view_fields` = '[]';
ALTER TABLE `chart_view_cache` ADD COLUMN `view_fields` LONGTEXT COMMENT '视图字段集合';
UPDATE `chart_view_cache` SET `view_fields` = '[]';
INSERT INTO `my_plugin`(`plugin_id`, `name`, `store`, `free`, `cost`, `category`, `descript`, `version`, `install_type`, `creator`, `load_mybatis`, `release_time`, `install_time`, `module_name`, `icon`, `ds_type`) VALUES (11, '符号地图插件', 'default', 0, 10000, 'view', '请购买正式许可', '1.0-SNAPSHOT', NULL, 'DATAEASE', 0, NULL, 1652174790928, 'view-symbolmap-backend', NULL, NULL);
INSERT INTO `my_plugin` (`name`, `store`, `free`, `cost`, `category`, `descript`, `version`, `creator`, `load_mybatis`,
`install_time`, `module_name`, `ds_type`)

View File

@ -26,12 +26,11 @@ export function addGroup(data) {
})
}
export function delGroup(data) {
export function delGroup(groupId) {
return request({
url: '/dataset/group/delete',
url: '/dataset/group/delete/' + groupId,
loading: true,
method: 'post',
data
method: 'post'
})
}

View File

@ -61,12 +61,11 @@ export function editDs(data) {
})
}
export function delDs(data) {
export function delDs(id) {
return request({
url: 'datasource/delete',
url: 'datasource/delete/' + id,
loading: true,
method: 'post',
data
method: 'post'
})
}

View File

@ -759,7 +759,7 @@ export default {
elementMouseDown(e) {
// private
this.$store.commit('setClickComponentStatus', true)
if (this.element.component !== 'v-text' && this.element.component !== 'de-rich-text' && this.element.component !== 'rect-shape' && this.element.component !== 'de-input-search' && this.element.component !== 'de-select-grid' && this.element.component !== 'de-number-range' && this.element.component !== 'de-date') {
if (this.element.component !== 'de-frame' && this.element.component !== 'v-text' && this.element.component !== 'de-rich-text' && this.element.component !== 'rect-shape' && this.element.component !== 'de-input-search' && this.element.component !== 'de-select-grid' && this.element.component !== 'de-number-range' && this.element.component !== 'de-date') {
e.preventDefault()
}
//

View File

@ -2,7 +2,7 @@
<el-row ref="mainPlayer" style="width: 100%;height: 100%">
<div v-if="element.streamMediaLinks[element.streamMediaLinks.videoType].url" class="video-container">
<video :ref="'player-'+element.id" class="centered-video" name="centeredVideo" :loop="pOption.loop" :controls="inScreen" muted />
<div v-if="editMode==='edit'" class="stream-mask edit-mask" />
<div v-if="editMode==='edit'" class="stream-mask edit-mask-stream" />
<div v-if="mobileLayoutStatus" class="stream-mask">
<span style="opacity: 0.7;">
<span style="color: lightgray;">{{ $t('panel.stream_mobile_tips') }}</span>
@ -177,7 +177,7 @@ export default {
justify-content: center;
}
.edit-mask{
.edit-mask-stream{
opacity: 0;
}

View File

@ -461,8 +461,7 @@ export default {
cancelButtonText: this.$t('dataset.cancel'),
type: 'warning'
}).then(() => {
const param = { id: data.id, pid: data.pid }
delGroup(param).then(response => {
delGroup(data.id).then(response => {
this.$message({
type: 'success',
message: this.$t('dataset.delete_success'),

View File

@ -158,7 +158,7 @@ export default {
},
chartBackground() {
let style = {}
if (this.subjectItemDetails) {
if (this.subjectItemDetails && this.subjectItemDetails.chart.customStyle.background) {
style = {
background: this.subjectItemDetails.chart.customStyle.background.color,
opacity: this.subjectItemDetails.chart.customStyle.background.alpha / 100

View File

@ -274,6 +274,7 @@
<Preview
v-if="previewVisible"
:in-screen="!previewVisible"
:panel-info="panelInfo"
:show-type="canvasStyleData.selfAdaption?'full':'width'"
:canvas-style-data="canvasStyleData"
:component-data="componentData"

View File

@ -2,9 +2,8 @@
<el-col class="tree-style">
<el-col>
<el-row>
<el-tabs v-model="showView" @tab-click="changeTab" type="card">
<el-tab-pane v-for="(item, index) in editableTabs" :key="item.name" :label="item.title" :name="item.name">
</el-tab-pane>
<el-tabs v-model="showView" type="card" @tab-click="changeTab">
<el-tab-pane v-for="(item, index) in editableTabs" :key="item.name" :label="item.title" :name="item.name" />
</el-tabs>
</el-row>
<el-row>
@ -138,14 +137,13 @@
</div>
</el-dialog>
</el-col>
</el-col>
</template>
<script>
import { mapGetters } from 'vuex'
import i18n from "@/lang";
import i18n from '@/lang'
import {
listDatasource,
listDatasourceByType,
@ -156,7 +154,7 @@ import {
delDriver,
listDriverByType
} from '@/api/system/datasource'
import {ApplicationContext} from "@/utils/ApplicationContext";
import { ApplicationContext } from '@/utils/ApplicationContext'
export default {
name: 'DsTree',
@ -215,7 +213,6 @@ export default {
name: 'Driver'
})
}
},
methods: {
filterNode(value, data) {
@ -368,8 +365,12 @@ export default {
cancelButtonText: this.$t('commons.cancel'),
type: 'warning'
}).then(() => {
const parma = {type: datasource.type, id: datasource.id}
const method = this.showView === 'Datasource' ? delDs : delDriver
let method = delDriver
let parma = { type: datasource.type, id: datasource.id }
if (this.showView === 'Datasource') {
method = delDs
parma = datasource.id
}
method(parma).then(res => {
if (res.success) {
this.$success(this.$t('commons.delete_success'))
@ -437,7 +438,7 @@ export default {
return false
}
})
},
}
}
}
</script>