forked from github/dataease
Merge branch 'dev' of github.com:dataease/dataease into dev
This commit is contained in:
commit
5da8de3332
@ -42,7 +42,7 @@ DataEase 是开源的数据可视化分析工具,帮助用户快速分析数
|
|||||||
|
|
||||||
仅需两步快速安装 DataEase:
|
仅需两步快速安装 DataEase:
|
||||||
|
|
||||||
1. 准备一台不小于 16 G内存的 64位 Linux 主机;
|
1. 准备一台不小于 8 G内存的 64位 Linux 主机;
|
||||||
2. 以 root 用户执行如下命令一键安装 DataEase。
|
2. 以 root 用户执行如下命令一键安装 DataEase。
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
@ -16,13 +16,13 @@ public interface ExtSysMsgMapper {
|
|||||||
|
|
||||||
@Update({
|
@Update({
|
||||||
"<script>",
|
"<script>",
|
||||||
"update sys_msg set status = 1 where msg_id in ",
|
"update sys_msg set status = 1, read_time = #{time} where msg_id in ",
|
||||||
"<foreach collection='msgIds' item='msgId' open='(' separator=',' close=')' >",
|
"<foreach collection='msgIds' item='msgId' open='(' separator=',' close=')' >",
|
||||||
" #{msgId}",
|
" #{msgId}",
|
||||||
"</foreach>",
|
"</foreach>",
|
||||||
"</script>"
|
"</script>"
|
||||||
})
|
})
|
||||||
int batchStatus(@Param("msgIds") List<Long> msgIds);
|
int batchStatus(@Param("msgIds") List<Long> msgIds, @Param("time") Long time);
|
||||||
|
|
||||||
|
|
||||||
@Delete({
|
@Delete({
|
||||||
|
@ -109,7 +109,7 @@ public class SysMsgService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setBatchReaded(List<Long> msgIds) {
|
public void setBatchReaded(List<Long> msgIds) {
|
||||||
extSysMsgMapper.batchStatus(msgIds);
|
extSysMsgMapper.batchStatus(msgIds, System.currentTimeMillis());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void batchDelete(List<Long> msgIds) {
|
public void batchDelete(List<Long> msgIds) {
|
||||||
|
@ -59,6 +59,7 @@
|
|||||||
"babel-eslint": "10.0.1",
|
"babel-eslint": "10.0.1",
|
||||||
"chalk": "2.4.2",
|
"chalk": "2.4.2",
|
||||||
"connect": "3.6.6",
|
"connect": "3.6.6",
|
||||||
|
"copy-webpack-plugin": "^4.6.0",
|
||||||
"eslint": "5.15.3",
|
"eslint": "5.15.3",
|
||||||
"eslint-plugin-vue": "5.2.2",
|
"eslint-plugin-vue": "5.2.2",
|
||||||
"html-webpack-plugin": "3.2.0",
|
"html-webpack-plugin": "3.2.0",
|
||||||
|
@ -26,6 +26,15 @@ export function batchRead(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function batchDelete(data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/sys_msg/batchDelete',
|
||||||
|
method: 'post',
|
||||||
|
loading: true,
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export function treeList() {
|
export function treeList() {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/sys_msg/treeNodes',
|
url: '/api/sys_msg/treeNodes',
|
||||||
|
@ -215,6 +215,7 @@ export default {
|
|||||||
min-height: 300px;
|
min-height: 300px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
overflow-x: hidden;
|
||||||
/*border: 1px solid #E6E6E6;*/
|
/*border: 1px solid #E6E6E6;*/
|
||||||
background-size: 100% 100% !important;
|
background-size: 100% 100% !important;
|
||||||
.canvas-container {
|
.canvas-container {
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<label-normal v-if="chart.type.includes('text')" :chart="chart" class="table-class" />
|
<label-normal v-if="chart.type.includes('text')" :chart="chart" class="table-class" />
|
||||||
</de-aside-container>
|
</de-aside-container>
|
||||||
<de-main-container>
|
<de-main-container>
|
||||||
<table-normal :chart="chartTable" class="table-class" />
|
<table-normal :chart="chartTable" :show-summary="false" class="table-class" />
|
||||||
</de-main-container>
|
</de-main-container>
|
||||||
</de-container>
|
</de-container>
|
||||||
</template>
|
</template>
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
:row-style="getRowStyle"
|
:row-style="getRowStyle"
|
||||||
class="table-class"
|
class="table-class"
|
||||||
:class="chart.id"
|
:class="chart.id"
|
||||||
show-summary
|
:show-summary="showSummary"
|
||||||
:summary-method="summaryMethod"
|
:summary-method="summaryMethod"
|
||||||
>
|
>
|
||||||
<ux-table-column
|
<ux-table-column
|
||||||
@ -48,6 +48,11 @@ export default {
|
|||||||
default: function() {
|
default: function() {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
showSummary: {
|
||||||
|
type: Boolean,
|
||||||
|
required: false,
|
||||||
|
default: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
@ -1245,10 +1245,12 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
changeChart() {
|
changeChart() {
|
||||||
this.view.tableId = this.changeTable.id
|
if (this.view.tableId !== this.changeTable.id) {
|
||||||
this.view.xaxis = []
|
this.view.tableId = this.changeTable.id
|
||||||
this.view.yaxis = []
|
this.view.xaxis = []
|
||||||
this.view.customFilter = []
|
this.view.yaxis = []
|
||||||
|
this.view.customFilter = []
|
||||||
|
}
|
||||||
this.save(true, 'chart', false)
|
this.save(true, 'chart', false)
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<de-container>
|
<de-container>
|
||||||
<de-aside-container>
|
<de-aside-container>
|
||||||
<dataset-group-selector-tree @getTable="getTable" :privileges=privileges :mode=mode :type=type :customType=customType :showMode=showMode />
|
<dataset-group-selector-tree :privileges="privileges" :mode="mode" :type="type" :custom-type="customType" :show-mode="showMode" @getTable="getTable" />
|
||||||
</de-aside-container>
|
</de-aside-container>
|
||||||
<de-main-container>
|
<de-main-container>
|
||||||
<dataset-table-data :table="table" />
|
<dataset-table-data :table="table" />
|
||||||
|
@ -11,9 +11,16 @@
|
|||||||
:pagination-config="paginationConfig"
|
:pagination-config="paginationConfig"
|
||||||
@select="select"
|
@select="select"
|
||||||
@search="search"
|
@search="search"
|
||||||
|
@selection-change="handleSelectionChange"
|
||||||
@sort-change="sortChange"
|
@sort-change="sortChange"
|
||||||
>
|
>
|
||||||
|
<template #toolbar>
|
||||||
|
<el-button :disabled="multipleSelection.length === 0" @click="deleteBatch">{{ $t('commons.delete') }}</el-button>
|
||||||
|
</template>
|
||||||
|
<el-table-column
|
||||||
|
type="selection"
|
||||||
|
width="55"
|
||||||
|
/>
|
||||||
<el-table-column prop="content" :label="$t('webmsg.content')">
|
<el-table-column prop="content" :label="$t('webmsg.content')">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
||||||
@ -57,7 +64,7 @@
|
|||||||
|
|
||||||
import LayoutContent from '@/components/business/LayoutContent'
|
import LayoutContent from '@/components/business/LayoutContent'
|
||||||
import ComplexTable from '@/components/business/complex-table'
|
import ComplexTable from '@/components/business/complex-table'
|
||||||
import { query } from '@/api/system/msg'
|
import { query, batchDelete } from '@/api/system/msg'
|
||||||
import { msgTypes, getTypeName, loadMsgTypes } from '@/utils/webMsg'
|
import { msgTypes, getTypeName, loadMsgTypes } from '@/utils/webMsg'
|
||||||
import { addOrder, formatOrders } from '@/utils/index'
|
import { addOrder, formatOrders } from '@/utils/index'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
@ -85,7 +92,8 @@ export default {
|
|||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
total: 0
|
total: 0
|
||||||
}
|
},
|
||||||
|
multipleSelection: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@ -164,6 +172,20 @@ export default {
|
|||||||
}
|
}
|
||||||
addOrder({ field: prop, value: order }, this.orderConditions)
|
addOrder({ field: prop, value: order }, this.orderConditions)
|
||||||
this.search()
|
this.search()
|
||||||
|
},
|
||||||
|
deleteBatch() {
|
||||||
|
if (this.multipleSelection.length === 0) {
|
||||||
|
this.$warning(this.$t('webmsg.please_select'))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const param = this.multipleSelection.map(item => item.msgId)
|
||||||
|
batchDelete(param).then(res => {
|
||||||
|
this.$success(this.$t('commons.delete_success'))
|
||||||
|
this.search()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleSelectionChange(val) {
|
||||||
|
this.multipleSelection = val
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -96,8 +96,8 @@
|
|||||||
|
|
||||||
<div
|
<div
|
||||||
id="canvasInfo"
|
id="canvasInfo"
|
||||||
|
:class="{'style-hidden':canvasStyleData.selfAdaption}"
|
||||||
class="content this_canvas"
|
class="content this_canvas"
|
||||||
:class="{'border-hidden':canvasStyleData.selfAdaption}"
|
|
||||||
@drop="handleDrop"
|
@drop="handleDrop"
|
||||||
@dragover="handleDragOver"
|
@dragover="handleDragOver"
|
||||||
@mousedown="handleMouseDown"
|
@mousedown="handleMouseDown"
|
||||||
@ -826,10 +826,8 @@ export default {
|
|||||||
padding: 1px 15px !important;
|
padding: 1px 15px !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.style-hidden{
|
||||||
.border-hidden {
|
overflow: hidden;
|
||||||
overflow: hidden;
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -133,6 +133,13 @@ export default {
|
|||||||
this.$warning(this.$t('chart.name_can_not_empty'))
|
this.$warning(this.$t('chart.name_can_not_empty'))
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
debugger
|
||||||
|
if (this.editPanel.panelInfo.name.length > 50) {
|
||||||
|
this.$warning(this.$t('commons.char_can_not_more_50'))
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
if (!this.editPanel.panelInfo.panelData && this.editPanel.optType === 'new' && this.inputType === 'copy') {
|
if (!this.editPanel.panelInfo.panelData && this.editPanel.optType === 'new' && this.inputType === 'copy') {
|
||||||
this.$warning(this.$t('chart.template_can_not_empty'))
|
this.$warning(this.$t('chart.template_can_not_empty'))
|
||||||
return false
|
return false
|
||||||
|
BIN
frontend/static/fonts/element-icons.535877f.woff
Normal file
BIN
frontend/static/fonts/element-icons.535877f.woff
Normal file
Binary file not shown.
BIN
frontend/static/fonts/element-icons.732389d.ttf
Normal file
BIN
frontend/static/fonts/element-icons.732389d.ttf
Normal file
Binary file not shown.
@ -2,6 +2,8 @@
|
|||||||
const path = require('path')
|
const path = require('path')
|
||||||
const defaultSettings = require('./src/settings.js')
|
const defaultSettings = require('./src/settings.js')
|
||||||
|
|
||||||
|
const CopyWebpackPlugin = require('copy-webpack-plugin')
|
||||||
|
|
||||||
function resolve(dir) {
|
function resolve(dir) {
|
||||||
return path.join(__dirname, dir)
|
return path.join(__dirname, dir)
|
||||||
}
|
}
|
||||||
@ -27,6 +29,7 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
before: require('./mock/mock-server.js')
|
before: require('./mock/mock-server.js')
|
||||||
},
|
},
|
||||||
|
|
||||||
pages: {
|
pages: {
|
||||||
index: {
|
index: {
|
||||||
entry: 'src/main.js',
|
entry: 'src/main.js',
|
||||||
@ -46,7 +49,15 @@ module.exports = {
|
|||||||
alias: {
|
alias: {
|
||||||
'@': resolve('src')
|
'@': resolve('src')
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
plugins: [
|
||||||
|
new CopyWebpackPlugin([
|
||||||
|
{
|
||||||
|
from: path.join(__dirname, 'static'),
|
||||||
|
to: path.join(__dirname, 'dist/static')
|
||||||
|
}
|
||||||
|
])
|
||||||
|
]
|
||||||
},
|
},
|
||||||
chainWebpack: config => {
|
chainWebpack: config => {
|
||||||
config.module.rules.delete('svg') // 删除默认配置中处理svg,
|
config.module.rules.delete('svg') // 删除默认配置中处理svg,
|
||||||
|
Loading…
Reference in New Issue
Block a user