提交 20ce5bbb authored 作者: wangjiahao's avatar wangjiahao

Merge remote-tracking branch 'origin/main' into main

# Conflicts: # frontend/src/views/chart/view/ChartEdit.vue
...@@ -85,8 +85,10 @@ public class JWTUtils { ...@@ -85,8 +85,10 @@ public class JWTUtils {
public static boolean loginExpire(String token){ public static boolean loginExpire(String token){
if (Login_Interval==0) { if (Login_Interval==0) {
String property = CommonBeanFactory.getBean(Environment.class).getProperty("dataease.login_timeout"); String property = CommonBeanFactory.getBean(Environment.class).getProperty("dataease.login_timeout");
int seconds = StringUtils.isNotEmpty(property) ? Integer.parseInt(property): (10*60); // 默认超时时间是8h
Login_Interval = seconds * 1000; int minute = StringUtils.isNotEmpty(property) ? Integer.parseInt(property): (8*60);
// 分钟换算成毫秒
Login_Interval = minute * 1000 * 60;
} }
Long now = System.currentTimeMillis(); Long now = System.currentTimeMillis();
Long lastOperateTime = tokenLastOperateTime(token); Long lastOperateTime = tokenLastOperateTime(token);
......
...@@ -62,10 +62,12 @@ spring.mvc.log-request-details=true ...@@ -62,10 +62,12 @@ spring.mvc.log-request-details=true
pagehelper.PageRowBounds=true pagehelper.PageRowBounds=true
#excel等用户上传文件路径 #excel等用户上传文件路径
upload.file.path=/opt/dataease/data/upload/ upload.file.path=/opt/dataease/data/upload/
#初始密码和登录超时时间移到/opt/dataease/conf/dataease.properties
#用户初始密码,如果不设置默认是DataEase123.. #用户初始密码,如果不设置默认是DataEase123..
dataease.init_password=DataEase123456 #dataease.init_password=DataEase123456
#登录超时时间单位s 设置默认30分钟 如果雨不设置 默认10分钟也就是10*60 #登录超时时间单位min
dataease.login_timeout=1800 #dataease.login_timeout=480
......
...@@ -113,7 +113,7 @@ export default { ...@@ -113,7 +113,7 @@ export default {
const that = this const that = this
setTimeout(function() { setTimeout(function() {
const currentHeight = document.documentElement.clientHeight const currentHeight = document.documentElement.clientHeight
const tableMaxHeight = currentHeight - 56 - 40 - 84 - that.$refs.title.offsetHeight - 8 * 2 - 20 const tableMaxHeight = currentHeight - 56 - 40 - 84 - that.$refs.title.offsetHeight - 20
let tableHeight let tableHeight
if (that.chart.data) { if (that.chart.data) {
tableHeight = (that.chart.data.tableRow.length + 2) * 36 tableHeight = (that.chart.data.tableRow.length + 2) * 36
......
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
<div style="border-bottom: 1px solid #E6E6E6;overflow-y:hidden;height: 62px;" class="padding-lr"> <div style="border-bottom: 1px solid #E6E6E6;overflow-y:hidden;height: 62px;" class="padding-lr">
<el-row> <el-row>
<span>{{ $t('chart.title') }}</span> <span>{{ $t('chart.title') }}</span>
<el-button style="float: right;padding: 0;margin: 8px 0 0 0;font-size: 12px;" type="text" @click="saveWithSnapshot()">{{ $t('chart.confirm') }}</el-button> <el-button style="float: right;padding: 0;margin: 8px 0 0 0;font-size: 12px;" type="text" @click="save">{{ $t('chart.confirm') }}</el-button>
</el-row> </el-row>
<el-form> <el-form>
<el-form-item class="form-item"> <el-form-item class="form-item">
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
<el-radio-group <el-radio-group
v-model="view.type" v-model="view.type"
style="width: 100%" style="width: 100%"
@change="save" @change="save(false)"
> >
<div style="width: 100%;display: flex;display: -webkit-flex;justify-content: space-between;flex-direction: row;flex-wrap: wrap;"> <div style="width: 100%;display: flex;display: -webkit-flex;justify-content: space-between;flex-direction: row;flex-wrap: wrap;">
<el-radio value="bar" label="bar"><svg-icon icon-class="bar" class="chart-icon" /></el-radio> <el-radio value="bar" label="bar"><svg-icon icon-class="bar" class="chart-icon" /></el-radio>
...@@ -125,14 +125,6 @@ ...@@ -125,14 +125,6 @@
</el-row> </el-row>
</div> </div>
<div style="height: 40%;overflow:hidden;border-top: 1px solid #e6e6e6"> <div style="height: 40%;overflow:hidden;border-top: 1px solid #e6e6e6">
<el-row class="padding-lr">
<span>样式优先级</span>
<el-radio-group v-model="view.stylePriority" size="mini" @change="save">
<el-radio style="margin-left: 20px" label="view"><span>视图</span></el-radio>
<el-radio label="panel"><span>仪表盘</span></el-radio>
</el-radio-group>
</el-row>
<el-row>
<el-tabs type="card" :stretch="true" class="tab-header"> <el-tabs type="card" :stretch="true" class="tab-header">
<el-tab-pane :label="$t('chart.shape_attr')" class="padding-lr"> <el-tab-pane :label="$t('chart.shape_attr')" class="padding-lr">
<color-selector class="attr-selector" :chart="chart" @onColorChange="onColorChange" /> <color-selector class="attr-selector" :chart="chart" @onColorChange="onColorChange" />
...@@ -148,7 +140,6 @@ ...@@ -148,7 +140,6 @@
<background-color-selector class="attr-selector" :chart="chart" @onChangeBackgroundForm="onChangeBackgroundForm" /> <background-color-selector class="attr-selector" :chart="chart" @onChangeBackgroundForm="onChangeBackgroundForm" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</el-row>
</div> </div>
<div v-if="false" style="overflow:auto;border-top: 1px solid #e6e6e6" class="padding-lr filter-class"> <div v-if="false" style="overflow:auto;border-top: 1px solid #e6e6e6" class="padding-lr filter-class">
<span>{{ $t('chart.result_filter') }}</span> <span>{{ $t('chart.result_filter') }}</span>
...@@ -204,10 +195,8 @@ ...@@ -204,10 +195,8 @@
</el-row> </el-row>
</el-row> </el-row>
<div ref="imageWrapper" style="height: 100%">
<chart-component v-if="chart.type && !chart.type.includes('table')" :chart-id="chart.id" :chart="chart" class="chart-class" /> <chart-component v-if="chart.type && !chart.type.includes('table')" :chart-id="chart.id" :chart="chart" class="chart-class" />
<table-normal v-if="chart.type && chart.type.includes('table')" :chart="chart" class="table-class" /> <table-normal v-if="chart.type && chart.type.includes('table')" :chart="chart" class="table-class" />
</div>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
...@@ -264,7 +253,6 @@ import FilterItem from '../components/drag-item/FilterItem' ...@@ -264,7 +253,6 @@ import FilterItem from '../components/drag-item/FilterItem'
import ChartComponent from '../components/ChartComponent' import ChartComponent from '../components/ChartComponent'
import bus from '@/utils/bus' import bus from '@/utils/bus'
import DatasetChartDetail from '../../dataset/common/DatasetChartDetail' import DatasetChartDetail from '../../dataset/common/DatasetChartDetail'
import html2canvas from 'html2canvas'
// shape attr,component style // shape attr,component style
import { import {
...@@ -306,7 +294,6 @@ export default { ...@@ -306,7 +294,6 @@ export default {
dimension: [], dimension: [],
quota: [], quota: [],
view: { view: {
stylePriority: 'panel',
xaxis: [], xaxis: [],
yaxis: [], yaxis: [],
show: true, show: true,
...@@ -344,7 +331,8 @@ export default { ...@@ -344,7 +331,8 @@ export default {
{ required: true, message: this.$t('commons.input_content'), trigger: 'change' } { required: true, message: this.$t('commons.input_content'), trigger: 'change' }
] ]
}, },
tabStatus: false tabStatus: false,
data: {}
} }
}, },
computed: { computed: {
...@@ -386,10 +374,7 @@ export default { ...@@ -386,10 +374,7 @@ export default {
this.quota = response.data.quota this.quota = response.data.quota
}) })
}, },
saveWithSnapshot(){ save(getData) {
this.save('true')
},
save(withSnapshot) {
const view = JSON.parse(JSON.stringify(this.view)) const view = JSON.parse(JSON.stringify(this.view))
view.id = this.view.id view.id = this.view.id
view.sceneId = this.view.sceneId view.sceneId = this.view.sceneId
...@@ -431,29 +416,19 @@ export default { ...@@ -431,29 +416,19 @@ export default {
view.customAttr = JSON.stringify(view.customAttr) view.customAttr = JSON.stringify(view.customAttr)
view.customStyle = JSON.stringify(view.customStyle) view.customStyle = JSON.stringify(view.customStyle)
view.customFilter = JSON.stringify(view.customFilter) view.customFilter = JSON.stringify(view.customFilter)
debugger
if (withSnapshot==='true') {
html2canvas(this.$refs.imageWrapper).then(canvas => {
const snapshot = canvas.toDataURL('image/jpeg', 0.2) // 0.2是图片质量
if (snapshot !== '') {
view.snapshot = snapshot
debugger
post('/chart/view/save', view).then(response => { post('/chart/view/save', view).then(response => {
// this.get(response.data.id); // this.get(response.data.id);
// this.getData(response.data.id)
if (getData) {
this.getData(response.data.id) this.getData(response.data.id)
this.$store.dispatch('chart/setChartSceneData', null)
this.$store.dispatch('chart/setChartSceneData', response.data)
})
}
})
} else { } else {
post('/chart/view/save', view).then(response => { this.getChart(response.data.id)
// this.get(response.data.id); }
this.getData(response.data.id)
this.$store.dispatch('chart/setChartSceneData', null) this.$store.dispatch('chart/setChartSceneData', null)
this.$store.dispatch('chart/setChartSceneData', response.data) this.$store.dispatch('chart/setChartSceneData', response.data)
}) })
}
}, },
closeEdit() { closeEdit() {
// 从仪表盘入口关闭 // 从仪表盘入口关闭
...@@ -474,7 +449,26 @@ export default { ...@@ -474,7 +449,26 @@ export default {
this.view.customFilter = this.view.customFilter ? JSON.parse(this.view.customFilter) : {} this.view.customFilter = this.view.customFilter ? JSON.parse(this.view.customFilter) : {}
// 将视图传入echart组件 // 将视图传入echart组件
this.chart = response.data this.chart = response.data
console.log(JSON.stringify(this.chart)) this.data = response.data.data
// console.log(JSON.stringify(this.chart))
})
} else {
this.view = {}
}
},
getChart(id) {
if (id) {
post('/chart/view/get/' + id, {}).then(response => {
this.initTableData(response.data.tableId)
this.view = JSON.parse(JSON.stringify(response.data))
this.view.xaxis = this.view.xaxis ? JSON.parse(this.view.xaxis) : []
this.view.yaxis = this.view.yaxis ? JSON.parse(this.view.yaxis) : []
this.view.customAttr = this.view.customAttr ? JSON.parse(this.view.customAttr) : {}
this.view.customStyle = this.view.customStyle ? JSON.parse(this.view.customStyle) : {}
this.view.customFilter = this.view.customFilter ? JSON.parse(this.view.customFilter) : {}
response.data.data = this.data
this.chart = response.data
}) })
} else { } else {
this.view = {} this.view = {}
...@@ -483,26 +477,26 @@ export default { ...@@ -483,26 +477,26 @@ export default {
// 左边往右边拖动时的事件 // 左边往右边拖动时的事件
start1(e) { start1(e) {
console.log(e) // console.log(e)
e.clone.className = 'item-on-move' e.clone.className = 'item-on-move'
e.item.className = 'item-on-move' e.item.className = 'item-on-move'
}, },
end1(e) { end1(e) {
console.log(e) // console.log(e)
e.clone.className = 'item' e.clone.className = 'item'
e.item.className = 'item' e.item.className = 'item'
this.refuseMove(e) this.refuseMove(e)
this.removeCheckedKey(e) this.removeCheckedKey(e)
this.save() this.save(true)
}, },
// 右边往左边拖动时的事件 // 右边往左边拖动时的事件
start2(e) { start2(e) {
console.log(e) // console.log(e)
}, },
end2(e) { end2(e) {
console.log(e) // console.log(e)
this.removeDuplicateKey(e) this.removeDuplicateKey(e)
this.save() this.save(true)
}, },
removeCheckedKey(e) { removeCheckedKey(e) {
const that = this const that = this
...@@ -551,7 +545,7 @@ export default { ...@@ -551,7 +545,7 @@ export default {
}, },
// move回调方法 // move回调方法
onMove(e, originalEvent) { onMove(e, originalEvent) {
console.log(e) // console.log(e)
this.moveId = e.draggedContext.element.id this.moveId = e.draggedContext.element.id
// //不允许停靠 // //不允许停靠
// if (e.relatedContext.element.id == 1) return false; // if (e.relatedContext.element.id == 1) return false;
...@@ -562,12 +556,12 @@ export default { ...@@ -562,12 +556,12 @@ export default {
}, },
dimensionItemChange(item) { dimensionItemChange(item) {
this.save() this.save(true)
}, },
dimensionItemRemove(item) { dimensionItemRemove(item) {
this.view.xaxis.splice(item.index, 1) this.view.xaxis.splice(item.index, 1)
this.save() this.save(true)
}, },
quotaItemChange(item) { quotaItemChange(item) {
...@@ -577,12 +571,12 @@ export default { ...@@ -577,12 +571,12 @@ export default {
// ele.summary = item.summary // ele.summary = item.summary
// } // }
// }) // })
this.save() this.save(true)
}, },
quotaItemRemove(item) { quotaItemRemove(item) {
this.view.yaxis.splice(item.index, 1) this.view.yaxis.splice(item.index, 1)
this.save() this.save(true)
}, },
onColorChange(val) { onColorChange(val) {
...@@ -639,7 +633,7 @@ export default { ...@@ -639,7 +633,7 @@ export default {
}, },
saveDimensionFilter() { saveDimensionFilter() {
this.view.xaxis[this.dimensionItem.index].filter = this.dimensionItem.filter this.view.xaxis[this.dimensionItem.index].filter = this.dimensionItem.filter
this.save() this.save(true)
this.closeDimensionFilter() this.closeDimensionFilter()
}, },
...@@ -652,7 +646,7 @@ export default { ...@@ -652,7 +646,7 @@ export default {
}, },
saveQuotaFilter() { saveQuotaFilter() {
this.view.yaxis[this.quotaItem.index].filter = this.quotaItem.filter this.view.yaxis[this.quotaItem.index].filter = this.quotaItem.filter
this.save() this.save(true)
this.closeQuotaFilter() this.closeQuotaFilter()
}, },
...@@ -666,7 +660,7 @@ export default { ...@@ -666,7 +660,7 @@ export default {
} else if (this.itemForm.renameType === 'dimension') { } else if (this.itemForm.renameType === 'dimension') {
this.view.xaxis[this.itemForm.index].name = this.itemForm.name this.view.xaxis[this.itemForm.index].name = this.itemForm.name
} }
this.save() this.save(true)
this.closeRename() this.closeRename()
}, },
closeRename() { closeRename() {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论