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

This commit is contained in:
wangjiahao 2021-06-24 12:08:54 +08:00
commit 2580dab0a8
14 changed files with 70 additions and 27 deletions

View File

@ -4,9 +4,9 @@ ARG IMAGE_TAG
RUN mkdir -p /opt/apps
ADD backend/target/backend-1.0.jar /opt/apps
ADD backend/target/backend-1.0.0.jar /opt/apps
ENV JAVA_APP_JAR=/opt/apps/backend-1.0.jar
ENV JAVA_APP_JAR=/opt/apps/backend-1.0.0.jar
ENV AB_OFF=true

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>dataease-server</artifactId>
<groupId>io.dataease</groupId>
<version>1.0</version>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -6,6 +6,7 @@ import io.dataease.dto.chart.ChartCustomFilterDTO;
import io.dataease.dto.chart.ChartViewFieldDTO;
import io.dataease.provider.QueryProvider;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@ -374,6 +375,9 @@ public class MysqlQueryProvider extends QueryProvider {
for (ChartCustomFilterDTO request : requestList) {
String value = request.getValue();
DatasetTableField field = request.getField();
if (ObjectUtils.isEmpty(field)) {
continue;
}
if (field.getDeType() == 1 && field.getDeExtractType() != 1) {
filter.append(" AND FROM_UNIXTIME(cast(")
.append(field.getOriginName())

File diff suppressed because one or more lines are too long

View File

@ -6,7 +6,7 @@
<parent>
<artifactId>dataease-server</artifactId>
<groupId>io.dataease</groupId>
<version>1.0</version>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -1,9 +1,9 @@
<template>
<div class="top-nav" :style="{'background-color': '#f1f3f8'}">
<div class="log">
<div v-loading="!axiosFinished" class="log">
<!-- <img v-if="!logoUrl" src="@/assets/DataEase-color.png" width="140" alt="" style="padding-top: 10px;">-->
<svg-icon v-if="!logoUrl" icon-class="DataEase" custom-class="top-nav-logo-icon" />
<img v-else :src="logoUrl" width="140" alt="" style="padding-top: 10px;">
<svg-icon v-if="!logoUrl && axiosFinished" icon-class="DataEase" custom-class="top-nav-logo-icon" />
<img v-else :src="logoUrl && axiosFinished" width="140" alt="" style="padding-top: 10px;">
</div>
<el-menu
:active-text-color="variables.topMenuActiveText"
@ -92,7 +92,8 @@ export default {
data() {
return {
uiInfo: null,
logoUrl: null
logoUrl: null,
axiosFinished: false
}
},
@ -137,6 +138,7 @@ export default {
if (this.uiInfo['ui.logo'] && this.uiInfo['ui.logo'].paramValue) {
this.logoUrl = '/system/ui/image/' + this.uiInfo['ui.logo'].paramValue
}
this.axiosFinished = true
})
},
methods: {

View File

@ -53,6 +53,7 @@ export const filterAsyncRouter = (routers) => { // 遍历后台传来的路由
router.component = loadView(component)
}
}
router.name && fillMeta(router)
if (router.children && router.children.length) {
router.children = filterAsyncRouter(router.children)
}
@ -66,6 +67,14 @@ export const filterAsyncRouter = (routers) => { // 遍历后台传来的路由
})
}
// 后台设计时未考虑activeMenu字段 这里先前端处理一下
export const fillMeta = (router) => {
router.name.includes('system-user-form') && (router.meta.activeMenu = '/system/user')
router.name.includes('system-role-form') && (router.meta.activeMenu = '/system/role')
router.name.includes('system-dept-form') && (router.meta.activeMenu = '/system/dept')
// return router
}
// 包装一层父级目录
export const decorate = (router) => {
const parent = {

View File

@ -275,3 +275,7 @@ div:focus {
padding-top: 10px;
}
.m-colorPicker .box {
bottom:20px;
}

View File

@ -21,21 +21,21 @@
</el-form-item>
<el-form-item v-show="(chart.type && chart.type.includes('text')) || sourceType==='panelTable'" :label="$t('chart.dimension_color')" class="form-item">
<colorPicker v-model="colorForm.dimensionColor" style="margin-top: 6px;cursor: pointer;z-index: 1004;border: solid 1px black" @change="changeColorCase" />
<colorPicker v-model="colorForm.dimensionColor" style="margin-top: 6px;cursor: pointer;z-index: 1003;border: solid 1px black" @change="changeColorCase" />
</el-form-item>
<el-form-item v-show="(chart.type && chart.type.includes('text')) || sourceType==='panelTable'" :label="$t('chart.quota_color')" class="form-item">
<colorPicker v-model="colorForm.quotaColor" style="margin-top: 6px;cursor: pointer;z-index: 1003;border: solid 1px black" @change="changeColorCase" />
<colorPicker v-model="colorForm.quotaColor" style="margin-top: 6px;cursor: pointer;z-index: 1004;border: solid 1px black" @change="changeColorCase" />
</el-form-item>
</div>
<div v-if="sourceType==='view' || sourceType==='panelTable'">
<el-form-item v-show="(chart.type && chart.type.includes('table')) || sourceType==='panelTable'" :label="$t('chart.table_header_bg')" class="form-item">
<colorPicker v-model="colorForm.tableHeaderBgColor" style="margin-top: 6px;cursor: pointer;z-index: 1004;border: solid 1px black" @change="changeColorCase" />
<colorPicker v-model="colorForm.tableHeaderBgColor" style="margin-top: 6px;cursor: pointer;z-index: 1002;border: solid 1px black" @change="changeColorCase" />
</el-form-item>
<el-form-item v-show="(chart.type && chart.type.includes('table')) || sourceType==='panelTable'" :label="$t('chart.table_item_bg')" class="form-item">
<colorPicker v-model="colorForm.tableItemBgColor" style="margin-top: 6px;cursor: pointer;z-index: 1003;border: solid 1px black" @change="changeColorCase" />
</el-form-item>
<el-form-item v-show="(chart.type && chart.type.includes('table')) || sourceType==='panelTable'" :label="$t('chart.table_item_font_color')" class="form-item">
<colorPicker v-model="colorForm.tableFontColor" style="margin-top: 6px;cursor: pointer;z-index: 1002;border: solid 1px black" @change="changeColorCase" />
<colorPicker v-model="colorForm.tableFontColor" style="margin-top: 6px;cursor: pointer;z-index: 1004;border: solid 1px black" @change="changeColorCase" />
</el-form-item>
<!-- 暂时不支持该功能-->
<!-- <el-form-item v-show="(chart.type && chart.type.includes('table')) || sourceType==='panelTable'" :label="$t('chart.stripe')" class="form-item">-->

View File

@ -40,9 +40,9 @@
</div>
</el-form>
</el-col>
<el-col :span="12">
<div v-if="!loginImageUrl" class="login-image" />
<div v-else class="login-image-de" :style="{background:'url(' + loginImageUrl + ') no-repeat', 'backgroundSize':'cover'}" />
<el-col v-loading="!axiosFinished" :span="12">
<div v-if="!loginImageUrl && axiosFinished" class="login-image" />
<div v-if="loginImageUrl && axiosFinished" class="login-image-de" :style="{background:'url(' + loginImageUrl + ') no-repeat', 'backgroundSize':'contain'}" />
</el-col>
</el-row>
</div>
@ -95,7 +95,8 @@ export default {
redirect: undefined,
uiInfo: null,
loginImageUrl: null,
loginLogoUrl: null
loginLogoUrl: null,
axiosFinished: false
}
},
computed: {
@ -115,6 +116,14 @@ export default {
this.$store.dispatch('user/getUI').then(() => {
// const uiLists = this.$store.state.user.uiInfo
// this.uiInfo = format(uiLists)
this.axiosFinished = true
this.showLoginImage()
}).catch(err => {
console.error(err)
})
},
methods: {
showLoginImage() {
this.uiInfo = getSysUI()
if (this.uiInfo['ui.loginImage'] && this.uiInfo['ui.loginImage'].paramValue) {
this.loginImageUrl = '/system/ui/image/' + this.uiInfo['ui.loginImage'].paramValue
@ -122,11 +131,7 @@ export default {
if (this.uiInfo['ui.loginLogo'] && this.uiInfo['ui.loginLogo'].paramValue) {
this.loginLogoUrl = '/system/ui/image/' + this.uiInfo['ui.loginLogo'].paramValue
}
}).catch(err => {
console.error(err)
})
},
methods: {
},
handleLogin() {
this.$refs.loginForm.validate(valid => {
if (valid) {

View File

@ -47,7 +47,7 @@
</span>
<span class="child">
<span v-if="data.type ==='folder'" @click.stop>
<!-- <span class="el-dropdown-link">
<span class="el-dropdown-link">
<el-button
v-permission="['datasource:add']"
icon="el-icon-plus"
@ -55,7 +55,7 @@
size="small"
@click="addFolderWithType(data)"
/>
</span> -->
</span>
</span>
<span v-if="data.type !=='folder'" style="margin-left: 12px;" @click.stop>
@ -141,7 +141,7 @@ export default {
if (!(element.type in types)) {
types[element.type] = []
// newArr.push(...element, ...{ children: types[element.type] })
newArr.push({ id: element.type, name: element.type, type: 'folder', children: types[element.type] })
newArr.push({ id: element.type, name: this.transTypeToName(element.type), type: 'folder', children: types[element.type] })
}
types[element.type].push(element)
// newArr.children.push({ id: element.id, label: element.name })
@ -149,6 +149,14 @@ export default {
return newArr
},
transTypeToName(type) {
if (type === 'mysql') {
return 'MySQL'
} else if (type === 'sqlServer') {
return 'SQL Server'
}
},
addFolder() {
this.switchMain('DsForm')
},

View File

@ -15,7 +15,7 @@
<el-input v-model="form.desc" autocomplete="off" type="textarea" />
</el-form-item>
<el-form-item :label="$t('datasource.type')" prop="type">
<el-select v-model="form.type" :placeholder="$t('datasource.please_choose_type')" class="select-width" :disabled="formType=='modify'" @change="changeType()">
<el-select v-model="form.type" :placeholder="$t('datasource.please_choose_type')" class="select-width" :disabled="formType=='modify' || (formType==='add' && params && !!params.type)" @change="changeType()">
<el-option
v-for="item in allTypes"
:key="item.name"
@ -108,6 +108,9 @@ export default {
this.edit(row)
} else {
this.create()
if (this.params && this.params.type) {
this.setType()
}
}
},
mounted() {
@ -119,6 +122,12 @@ export default {
// }
},
methods: {
setType() {
this.form.type = this.params.type
this.form.configuration = {}
this.changeType()
console.log(this.form)
},
changeEdit() {
this.canEdit = true
this.formType = 'modify'

View File

@ -46,7 +46,7 @@
</el-table-column>
<el-table-column prop="status" sortable="custom" :label="$t('commons.status')">
<template v-slot:default="scope">
<el-switch v-model="scope.row.enabled" :active-value="1" :inactive-value="0" :disabled="!checkPermission(['user:edit'])" inactive-color="#DCDFE6" @change="changeSwitch(scope.row)" />
<el-switch v-model="scope.row.enabled" :active-value="1" :inactive-value="0" :disabled="!checkPermission(['user:edit']) || scope.row.isAdmin" inactive-color="#DCDFE6" @change="changeSwitch(scope.row)" />
</template>
</el-table-column>
<el-table-column prop="createTime" sortable="custom" :label="$t('commons.create_time')">

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>io.dataease</groupId>
<artifactId>dataease-server</artifactId>
<version>1.0</version>
<version>1.0.0</version>
<packaging>pom</packaging>
<parent>