forked from github/dataease
Merge branch 'main' of github.com:dataease/dataease into main
This commit is contained in:
commit
4fb3652486
@ -8,6 +8,13 @@
|
||||
<result column="childrenCount" jdbcType="VARCHAR" property="childrenCount"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
panel_template.id, panel_template.`name`, panel_template.pid, panel_template.`level`, panel_template.node_type, panel_template.create_by, panel_template.create_time, panel_template.template_type
|
||||
</sql>
|
||||
<sql id="Blob_Column_List">
|
||||
panel_template.snapshot, panel_template.template_style, panel_template.template_data, panel_template.dynamic_data
|
||||
</sql>
|
||||
|
||||
<select id="panelTemplate" resultMap="BaseResultMapDTO">
|
||||
SELECT
|
||||
panel_template.*,
|
||||
@ -32,7 +39,12 @@
|
||||
|
||||
<select id="panelTemplateList" resultMap="BaseResultMapDTO">
|
||||
SELECT
|
||||
panel_template.*,
|
||||
<include refid="Base_Column_List" />
|
||||
,
|
||||
<if test='withBlobs == "Y"'>
|
||||
<include refid="Blob_Column_List" />
|
||||
,
|
||||
</if>
|
||||
panel_template.NAME AS label,
|
||||
ifnull(tempCountInfo.childrenCount,0) as childrenCount
|
||||
FROM
|
||||
|
@ -12,6 +12,8 @@ import lombok.Data;
|
||||
public class PanelTemplateRequest extends PanelTemplateWithBLOBs {
|
||||
private String sort;
|
||||
|
||||
private String withBlobs="Y";
|
||||
|
||||
private String optType;
|
||||
|
||||
private Boolean withChildren = false;
|
||||
@ -21,5 +23,6 @@ public class PanelTemplateRequest extends PanelTemplateWithBLOBs {
|
||||
|
||||
public PanelTemplateRequest(String pid) {
|
||||
super.setPid(pid);
|
||||
withBlobs="N";
|
||||
}
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ public class PanelTemplateService {
|
||||
private ExtPanelTemplateMapper extPanelTemplateMapper;
|
||||
|
||||
public List<PanelTemplateDTO> templateList(PanelTemplateRequest panelTemplateRequest) {
|
||||
panelTemplateRequest.setWithBlobs("N");
|
||||
List<PanelTemplateDTO> panelTemplateList = extPanelTemplateMapper.panelTemplateList(panelTemplateRequest);
|
||||
if(panelTemplateRequest.getWithChildren()){
|
||||
getTreeChildren(panelTemplateList);
|
||||
|
@ -85,10 +85,10 @@ export function getPreviewData(data) {
|
||||
})
|
||||
}
|
||||
|
||||
export function fieldList(id) {
|
||||
export function fieldList(id, showLoading = true) {
|
||||
return request({
|
||||
url: '/dataset/field/list/' + id,
|
||||
loading: true,
|
||||
loading: showLoading,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
@ -102,11 +102,11 @@ export function batchEdit(data) {
|
||||
})
|
||||
}
|
||||
|
||||
export function post(url, data) {
|
||||
export function post(url, data, showLoading = true) {
|
||||
return request({
|
||||
url: url,
|
||||
method: 'post',
|
||||
loading: true,
|
||||
loading: showLoading,
|
||||
data
|
||||
})
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ export function showTemplateList(data) {
|
||||
return request({
|
||||
url: '/template/templateList',
|
||||
data: data,
|
||||
loading: true,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
@ -25,6 +26,7 @@ export function showTemplateList(data) {
|
||||
export function findOne(id) {
|
||||
return request({
|
||||
url: '/template/findOne/' + id,
|
||||
loading: true,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
@ -659,6 +659,7 @@ export default {
|
||||
rose_radius: 'Fillet',
|
||||
view_name: 'Chart Name',
|
||||
name_can_not_empty: 'Name cannot be empty',
|
||||
template_can_not_empty: 'Please check a Template',
|
||||
custom_count: 'Number of records',
|
||||
table_title_fontsize: 'Font size of header',
|
||||
table_item_fontsize: 'Table font size',
|
||||
|
@ -659,6 +659,7 @@ export default {
|
||||
rose_radius: '園角',
|
||||
view_name: '視圖名稱',
|
||||
name_can_not_empty: '名稱不能為空',
|
||||
template_can_not_empty: '请选择仪表盘',
|
||||
custom_count: '記錄數',
|
||||
table_title_fontsize: '表頭字體大小',
|
||||
table_item_fontsize: '表格字體大小',
|
||||
|
@ -659,6 +659,7 @@ export default {
|
||||
rose_radius: '圆角',
|
||||
view_name: '视图名称',
|
||||
name_can_not_empty: '名称不能为空',
|
||||
template_can_not_empty: '请选择仪表盘',
|
||||
custom_count: '记录数',
|
||||
table_title_fontsize: '表头字体大小',
|
||||
table_item_fontsize: '表格字体大小',
|
||||
|
@ -161,7 +161,7 @@ export default {
|
||||
},
|
||||
'table': function() {
|
||||
if (this.table && this.table.sceneId) {
|
||||
post('dataset/group/getScene/' + this.table.sceneId, {}).then(response => {
|
||||
post('dataset/group/getScene/' + this.table.sceneId, {}, false).then(response => {
|
||||
this.currGroup = response.data
|
||||
|
||||
this.$nextTick(function() {
|
||||
@ -213,7 +213,7 @@ export default {
|
||||
|
||||
tree(group) {
|
||||
this.dsLoading = true
|
||||
post('/dataset/group/tree', group).then(response => {
|
||||
post('/dataset/group/tree', group, false).then(response => {
|
||||
this.data = response.data
|
||||
this.dsLoading = false
|
||||
})
|
||||
@ -227,7 +227,7 @@ export default {
|
||||
sort: 'type asc,create_time desc,name asc',
|
||||
sceneId: this.currGroup.id,
|
||||
mode: this.mode < 0 ? null : this.mode
|
||||
}).then(response => {
|
||||
}, false).then(response => {
|
||||
this.tables = response.data
|
||||
for (let i = 0; i < this.tables.length; i++) {
|
||||
if (this.tables[i].mode === 1 && this.kettleRunning === false) {
|
||||
@ -278,7 +278,7 @@ export default {
|
||||
}
|
||||
// check mode=1的数据集是否创建doris表
|
||||
if (data.mode === 1) {
|
||||
post('/dataset/table/checkDorisTableIsExists/' + data.id, {}).then(response => {
|
||||
post('/dataset/table/checkDorisTableIsExists/' + data.id, {}, false).then(response => {
|
||||
if (response.data) {
|
||||
this.$nextTick(function() {
|
||||
this.$emit('getTable', data)
|
||||
|
@ -67,7 +67,7 @@ export default {
|
||||
if (this.table.id) {
|
||||
this.dataLoading = true
|
||||
this.table.row = 100
|
||||
post('/dataset/table/getPreviewData/1/100', this.table).then(response => {
|
||||
post('/dataset/table/getPreviewData/1/100', this.table, false).then(response => {
|
||||
this.fields = response.data.fields
|
||||
this.data = response.data.data
|
||||
const datas = this.data
|
||||
|
@ -24,7 +24,7 @@
|
||||
<span slot-scope="{ node, data }" class="custom-tree-node">
|
||||
<span style="display: flex; flex: 1 1 0%; width: 0px;">
|
||||
<span v-if="data.nodeType==='template'">
|
||||
<svg-icon icon-class="panel" class="ds-icon-scene" />
|
||||
<svg-icon icon-class="panel" class="ds-icon-scene" />
|
||||
</span>
|
||||
<span v-if="data.nodeType==='folder'">
|
||||
<i class="el-icon-folder" />
|
||||
@ -39,6 +39,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { findOne } from '@/api/system/template'
|
||||
export default {
|
||||
name: 'TemplateAllList',
|
||||
components: { },
|
||||
@ -89,7 +90,9 @@ export default {
|
||||
return data.label.indexOf(value) !== -1
|
||||
},
|
||||
nodeClick(data, node) {
|
||||
this.$emit('showCurrentTemplateInfo', data)
|
||||
findOne(data.id).then(res => {
|
||||
this.$emit('showCurrentTemplateInfo', res.data)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<el-row>
|
||||
<el-row v-loading="$store.getters.loadingMap[$store.getters.currentPath]">
|
||||
<el-row v-if="editPanel.optType==='new' && editPanel.panelInfo.nodeType==='panel'">
|
||||
<el-col :span="18" style="height: 40px">
|
||||
<el-radio v-model="inputType" label="self"> {{ $t('panel.custom') }}</el-radio>
|
||||
<!-- <el-radio v-model="inputType" label="import">{{ $t('panel.import_template') }} </el-radio>-->
|
||||
<el-radio v-model="inputType" label="copy">{{ $t('panel.copy_template') }} </el-radio>
|
||||
<el-radio v-model="inputType" label="copy" @click.native="getTree">{{ $t('panel.copy_template') }} </el-radio>
|
||||
</el-col>
|
||||
<el-col v-if="inputType==='import'" :span="6">
|
||||
<el-button class="el-icon-upload" size="small" type="primary" @click="goFile">{{ $t('panel.upload_template') }}</el-button>
|
||||
@ -18,12 +18,12 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-if="inputType==='copy'" class="preview">
|
||||
<el-col :span="8" style="overflow-y: auto">
|
||||
<el-col :span="8" style="height:100%;overflow-y: auto">
|
||||
<template-all-list :template-list="templateList" @showCurrentTemplateInfo="showCurrentTemplateInfo" />
|
||||
</el-col>
|
||||
<el-col :span="16" :style="classBackground" class="preview-show" />
|
||||
</el-row>
|
||||
<el-row v-if="inputType==='import'" class="preview" :style="classBackground" />
|
||||
<!-- <el-row v-if="inputType==='import'" class="preview" :style="classBackground" />-->
|
||||
<el-row class="root-class">
|
||||
<el-button size="mini" @click="cancel()">{{ $t('commons.cancel') }}</el-button>
|
||||
<el-button type="primary" size="mini" @click="save()">{{ $t('commons.confirm') }}</el-button>
|
||||
@ -32,7 +32,8 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { post, panelSave } from '@/api/panel/panel'
|
||||
import { panelSave } from '@/api/panel/panel'
|
||||
import { showTemplateList } from '@/api/system/template'
|
||||
import TemplateAllList from './TemplateAllList'
|
||||
|
||||
export default {
|
||||
@ -76,10 +77,11 @@ export default {
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getTree()
|
||||
// this.getTree()
|
||||
},
|
||||
methods: {
|
||||
showCurrentTemplateInfo(data) {
|
||||
debugger
|
||||
this.editPanel.panelInfo.name = data.name
|
||||
this.editPanel.panelInfo.panelStyle = data.templateStyle
|
||||
this.editPanel.panelInfo.panelData = data.templateData
|
||||
@ -90,7 +92,7 @@ export default {
|
||||
level: '-1',
|
||||
withChildren: true
|
||||
}
|
||||
post('/template/templateList', request).then(res => {
|
||||
showTemplateList(request).then(res => {
|
||||
this.templateList = res.data
|
||||
})
|
||||
},
|
||||
@ -104,6 +106,10 @@ export default {
|
||||
this.$warning(this.$t('chart.name_can_not_empty'))
|
||||
return false
|
||||
}
|
||||
if (!this.editPanel.panelInfo.panelData) {
|
||||
this.$warning(this.$t('chart.template_can_not_empty'))
|
||||
return false
|
||||
}
|
||||
panelSave(this.editPanel.panelInfo).then(response => {
|
||||
this.$message({
|
||||
message: this.$t('commons.save_success'),
|
||||
@ -156,13 +162,13 @@ export default {
|
||||
.preview {
|
||||
margin-top: 5px;
|
||||
border:1px solid #E6E6E6;
|
||||
height:300px !important;
|
||||
height:250px !important;
|
||||
overflow:hidden;
|
||||
background-size: 100% 100% !important;
|
||||
}
|
||||
.preview-show {
|
||||
border-left:1px solid #E6E6E6;
|
||||
height:300px;
|
||||
height:250px;
|
||||
background-size: 100% 100% !important;
|
||||
}
|
||||
</style>
|
||||
|
@ -42,8 +42,8 @@ export default {
|
||||
level: '1',
|
||||
pid: this.pid,
|
||||
name: '',
|
||||
templateStyle: '',
|
||||
templateData: '',
|
||||
templateStyle: null,
|
||||
templateData: null,
|
||||
snapshot: ''
|
||||
}
|
||||
}
|
||||
@ -70,6 +70,10 @@ export default {
|
||||
this.$warning(this.$t('chart.name_can_not_empty'))
|
||||
return false
|
||||
}
|
||||
if (!this.templateInfo.templateData) {
|
||||
this.$warning(this.$t('chart.template_can_not_empty'))
|
||||
return false
|
||||
}
|
||||
const nameCheckRequest = {
|
||||
pid: this.templateInfo.pid,
|
||||
name: this.templateInfo.name,
|
||||
|
@ -71,7 +71,7 @@ import DeAsideContainer from '@/components/dataease/DeAsideContainer'
|
||||
import TemplateList from './component/TemplateList'
|
||||
import TemplateItem from './component/TemplateItem'
|
||||
import TemplateImport from './component/TemplateImport'
|
||||
import { save, templateDelete, showTemplateList } from '@/api/system/template'
|
||||
import { save, templateDelete, find } from '@/api/system/template'
|
||||
|
||||
export default {
|
||||
name: 'PanelMain',
|
||||
@ -108,7 +108,7 @@ export default {
|
||||
showCurrentTemplate(pid) {
|
||||
this.currentTemplateId = pid
|
||||
if (this.currentTemplateId) {
|
||||
showTemplateList({ pid: this.currentTemplateId }).then(response => {
|
||||
find({ pid: this.currentTemplateId }).then(response => {
|
||||
this.currentTemplateShowList = response.data
|
||||
})
|
||||
}
|
||||
@ -157,7 +157,7 @@ export default {
|
||||
templateType: this.currentTemplateType,
|
||||
level: '0'
|
||||
}
|
||||
showTemplateList(request).then(res => {
|
||||
find(request).then(res => {
|
||||
this.templateList = res.data
|
||||
this.showFirst()
|
||||
})
|
||||
|
@ -2,7 +2,7 @@
|
||||
<layout-content :header="formType=='add' ? $t('user.create') : $t('user.modify')" back-name="system-user">
|
||||
<el-form ref="createUserForm" :model="form" :rules="rule" size="small" label-width="auto" label-position="right">
|
||||
<el-form-item label="ID" prop="username">
|
||||
<el-input v-model="form.username" />
|
||||
<el-input v-model="form.username" :disabled="formType !== 'add'" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('commons.phone')" prop="phone">
|
||||
<el-input v-model="form.phone" />
|
||||
@ -27,7 +27,7 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('commons.status')">
|
||||
<el-radio-group v-model="form.enabled" style="width: 140px">
|
||||
<el-radio-group v-model="form.enabled" :disabled="formType !== 'add' && form.isAdmin" style="width: 140px">
|
||||
<el-radio :label="1">{{ $t('commons.enable') }}</el-radio>
|
||||
<el-radio :label="0">{{ $t('commons.disable') }}</el-radio>
|
||||
</el-radio-group>
|
||||
@ -47,6 +47,7 @@
|
||||
<el-select
|
||||
v-model="form.roleIds"
|
||||
style="width: 100%"
|
||||
:disabled="formType !== 'add' && form.isAdmin"
|
||||
multiple
|
||||
:placeholder="$t('commons.please_select')"
|
||||
@remove-tag="deleteTag"
|
||||
|
@ -187,6 +187,7 @@ export default {
|
||||
show: this.checkPermission(['user:edit'])
|
||||
}, {
|
||||
label: this.$t('commons.delete'), icon: 'el-icon-delete', type: 'danger', click: this.del,
|
||||
disabled: this.btnDisabled,
|
||||
show: this.checkPermission(['user:del'])
|
||||
}, {
|
||||
label: this.$t('member.edit_password'), icon: 'el-icon-s-tools', type: 'success', click: this.editPassword,
|
||||
@ -489,6 +490,9 @@ export default {
|
||||
allRoles().then(res => {
|
||||
this.roles = res.data
|
||||
})
|
||||
},
|
||||
btnDisabled(row) {
|
||||
return row.userId === 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user