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

This commit is contained in:
taojinlong 2022-05-06 17:08:01 +08:00
commit e23fff0dcd
17 changed files with 128 additions and 12 deletions

View File

@ -42,7 +42,8 @@ public class ShiroServiceImpl implements ShiroService {
filterChainDefinitionMap.put("/index.html", ANON);
filterChainDefinitionMap.put("/link.html", ANON);
filterChainDefinitionMap.put("/board/**", ANON);
filterChainDefinitionMap.put("/websocket/**", "anon");
filterChainDefinitionMap.put("/websocket/**", ANON);
filterChainDefinitionMap.put("/system/defaultLoginType", ANON);
// 获取主题信息
filterChainDefinitionMap.put("/plugin/theme/themes", ANON);

View File

@ -110,6 +110,7 @@ public interface ParamConstants {
enum BASIC implements ParamConstants {
FRONT_TIME_OUT("basic.frontTimeOut"),
MSG_TIME_OUT("basic.msgTimeOut"),
DEFAULT_LOGIN_TYPE("basic.loginType"),
OPEN_HOME_PAGE("ui.openHomePage");
private String value;

View File

@ -115,4 +115,9 @@ public class SystemParameterController {
}
}
@PostMapping(value = "/defaultLoginType")
public Integer defaultLoginType() {
return systemParameterService.defaultLoginType();
}
}

View File

@ -14,5 +14,7 @@ public class BasicInfo implements Serializable {
private String msgTimeOut;
@ApiModelProperty("显示首页")
private String openHomePage;
@ApiModelProperty("默认登录方式")
private Integer loginType = 0;
}

View File

@ -28,6 +28,7 @@ import io.dataease.ext.*;
@Transactional(rollbackFor = Exception.class)
public class SystemParameterService {
private final static String LOGIN_TYPE_KEY = "basic.loginType";
@Resource
private SystemParameterMapper systemParameterMapper;
@Resource
@ -53,6 +54,10 @@ public class SystemParameterService {
if (StringUtils.equals(param.getParamKey(), ParamConstants.BASIC.MSG_TIME_OUT.getValue())) {
result.setMsgTimeOut(param.getParamValue());
}
if (StringUtils.equals(param.getParamKey(), ParamConstants.BASIC.DEFAULT_LOGIN_TYPE.getValue())) {
String paramValue = param.getParamValue();
result.setLoginType(StringUtils.isNotBlank(paramValue) ? Integer.parseInt(paramValue) : 0);
}
if (StringUtils.equals(param.getParamKey(), ParamConstants.BASIC.OPEN_HOME_PAGE.getValue())) {
boolean open = StringUtils.equals("true", param.getParamValue());
result.setOpenHomePage(open ? "true" : "false");
@ -126,6 +131,11 @@ public class SystemParameterService {
return param.getParamValue();
}
public Integer defaultLoginType() {
String value = getValue(LOGIN_TYPE_KEY);
return StringUtils.isNotBlank(value) ? Integer.parseInt(value) : 0;
}
public List<SystemParameterDTO> getSystemParameterInfo(String paramConstantsType) {
List<SystemParameter> paramList = this.getParamList(paramConstantsType);
List<SystemParameterDTO> dtoList = new ArrayList<>();

View File

@ -92,3 +92,10 @@ export function getPublicKey() {
method: 'get'
})
}
export function defaultLoginType() {
return request({
url: '/system/defaultLoginType',
method: 'post'
})
}

View File

@ -637,6 +637,7 @@ export default {
basic_setting: 'Basic setting',
front_time_out: 'Request timeOut(unit: second, Attention: Refresh browser takes effect after saving)',
msg_time_out: 'Message retention time(unit: day)',
login_type: 'Default login type',
empty_front: 'If empty then default value is 10s',
empty_msg: 'If empty then default value is 30 days',
front_error: 'Valid ranger [0 - 100]',
@ -710,6 +711,7 @@ export default {
var_pop: 'Variance',
quick_calc: 'Fast calculation',
show_name_set: 'Display name setting',
show_name: 'Display name',
color: 'Color',
color_case: 'Color Scheme',
pls_slc_color_case: 'Please choose a color scheme',
@ -1092,7 +1094,8 @@ export default {
unit_million: 'Million',
unit_hundred_million: 'Hundred Million',
formatter_decimal_count_error: 'Range 0-10',
gauge_threshold_compare_error: 'Range must added'
gauge_threshold_compare_error: 'Range must added',
tick_count: 'Tick Split'
},
dataset: {
sheet_warn: 'There are multiple sheet pages, and the first one is extracted by default',

View File

@ -639,6 +639,7 @@ export default {
basic_setting: '基礎設置',
front_time_out: '請求超時時間(單位:秒, 註意:保存後刷新瀏覽器生效)',
msg_time_out: '消息保留時間(單位:天)',
login_type: '默認登錄方式',
empty_front: '為空則默認取值10秒',
empty_msg: '為空則默認取值30天',
front_error: '請填寫0-100正整數',
@ -712,6 +713,7 @@ export default {
var_pop: '方差',
quick_calc: '快速計算',
show_name_set: '顯示名設置',
show_name: '顯示名',
color: '顔色',
color_case: '配色方案',
pls_slc_color_case: '請選擇配色方案',
@ -1092,7 +1094,8 @@ export default {
unit_million: '百萬',
unit_hundred_million: '億',
formatter_decimal_count_error: '請輸入0-10的整數',
gauge_threshold_compare_error: '阈值範圍需逐級遞增'
gauge_threshold_compare_error: '阈值範圍需逐級遞增',
tick_count: '刻度間隔數'
},
dataset: {
sheet_warn: '有多個 Sheet 頁,默認抽取第一個',

View File

@ -640,6 +640,7 @@ export default {
basic_setting: '基础设置',
front_time_out: '请求超时时间(单位:秒, 注意:保存后刷新浏览器生效)',
msg_time_out: '消息保留时间(单位:天)',
login_type: '默认登录方式',
empty_front: '为空则默认取10秒',
empty_msg: '为空则默认取30天',
front_error: '请填写0-100正整数',
@ -714,6 +715,7 @@ export default {
var_pop: '方差',
quick_calc: '快速计算',
show_name_set: '显示名设置',
show_name: '显示名',
color: '颜色',
color_case: '配色方案',
pls_slc_color_case: '请选择配色方案',
@ -1094,7 +1096,8 @@ export default {
unit_million: '百万',
unit_hundred_million: '亿',
formatter_decimal_count_error: '请输入0-10的整数',
gauge_threshold_compare_error: '阈值范围需逐级递增'
gauge_threshold_compare_error: '阈值范围需逐级递增',
tick_count: '刻度间隔数'
},
dataset: {
sheet_warn: '有多个 Sheet 页,默认抽取第一个',

View File

@ -87,7 +87,7 @@
</template>
<script>
import { getItemType } from '@/views/chart/components/drag-item/utils'
import { getItemType, getOriginFieldName } from '@/views/chart/components/drag-item/utils'
import FieldErrorTips from '@/views/chart/components/drag-item/components/FieldErrorTips'
import bus from '@/utils/bus'
@ -192,6 +192,7 @@ export default {
showRename() {
this.item.index = this.index
this.item.renameType = 'dimensionExt'
this.item.dsFieldName = getOriginFieldName(this.dimensionData, this.quotaData, this.item)
this.$emit('onNameEdit', this.item)
},
removeItem() {

View File

@ -93,7 +93,7 @@
</template>
<script>
import { getItemType } from '@/views/chart/components/drag-item/utils'
import { getItemType, getOriginFieldName } from '@/views/chart/components/drag-item/utils'
import FieldErrorTips from '@/views/chart/components/drag-item/components/FieldErrorTips'
import bus from '@/utils/bus'
import { formatterItem } from '@/views/chart/chart/formatter'
@ -214,6 +214,7 @@ export default {
showRename() {
this.item.index = this.index
this.item.renameType = 'dimension'
this.item.dsFieldName = getOriginFieldName(this.dimensionData, this.quotaData, this.item)
this.$emit('onNameEdit', this.item)
},
removeItem() {

View File

@ -116,7 +116,7 @@
<script>
import { compareItem } from '@/views/chart/chart/compare'
import { getItemType } from '@/views/chart/components/drag-item/utils'
import { getItemType, getOriginFieldName } from '@/views/chart/components/drag-item/utils'
import FieldErrorTips from '@/views/chart/components/drag-item/components/FieldErrorTips'
import bus from '@/utils/bus'
import { formatterItem } from '@/views/chart/chart/formatter'
@ -285,6 +285,7 @@ export default {
showRename() {
this.item.index = this.index
this.item.renameType = 'quotaExt'
this.item.dsFieldName = getOriginFieldName(this.dimensionData, this.quotaData, this.item)
this.$emit('onNameEdit', this.item)
},
removeItem() {

View File

@ -116,7 +116,7 @@
<script>
import { compareItem } from '@/views/chart/chart/compare'
import { getItemType } from '@/views/chart/components/drag-item/utils'
import { getItemType, getOriginFieldName } from '@/views/chart/components/drag-item/utils'
import FieldErrorTips from '@/views/chart/components/drag-item/components/FieldErrorTips'
import bus from '@/utils/bus'
import { formatterItem } from '@/views/chart/chart/formatter'
@ -281,6 +281,7 @@ export default {
showRename() {
this.item.index = this.index
this.item.renameType = 'quota'
this.item.dsFieldName = getOriginFieldName(this.dimensionData, this.quotaData, this.item)
this.$emit('onNameEdit', this.item)
},
removeItem() {

View File

@ -36,3 +36,22 @@ export function getItemType(dimensionData, quotaData, item) {
return 'danger'
}
}
export function getOriginFieldName(dimensionList, quotaList, field) {
let originName = ''
for (let i = 0; i < dimensionList.length; i++) {
const item = dimensionList[i]
if (item.id === field.id) {
originName = item.name
break
}
}
for (let i = 0; i < quotaList.length; i++) {
const item = quotaList[i]
if (item.id === field.id) {
originName = item.name
break
}
}
return originName
}

View File

@ -1026,9 +1026,12 @@
<!--显示名修改-->
<el-dialog v-dialogDrag :title="$t('chart.show_name_set')" :visible="renameItem" :show-close="false" width="30%">
<el-form ref="itemForm" :model="itemForm" :rules="itemFormRules">
<el-form-item :label="$t('commons.name')" prop="name">
<el-input v-model="itemForm.name" size="mini" clearable />
<el-form ref="itemForm" label-width="80px" :model="itemForm" :rules="itemFormRules">
<el-form-item :label="$t('dataset.field_origin_name')" class="form-item">
<span style="padding: 0 16px;">{{ itemForm.dsFieldName }}</span>
</el-form-item>
<el-form-item :label="$t('chart.show_name')" class="form-item">
<el-input v-model="itemForm.name" style="width: 200px" size="mini" clearable />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -3038,4 +3041,12 @@ span {
height: 100%;
}
.form-item-slider>>>.el-form-item__label{
font-size: 12px;
line-height: 38px;
}
.form-item>>>.el-form-item__label{
font-size: 12px;
}
</style>

View File

@ -65,7 +65,7 @@
<script>
import { encrypt } from '@/utils/rsaEncrypt'
import { ldapStatus, oidcStatus, getPublicKey, pluginLoaded } from '@/api/user'
import { ldapStatus, oidcStatus, getPublicKey, pluginLoaded, defaultLoginType } from '@/api/user'
import { getSysUI } from '@/utils/auth'
import { initTheme } from '@/utils/ThemeUtil'
import PluginCom from '@/views/system/plugin/PluginCom'
@ -116,10 +116,14 @@ export default {
}
},
beforeCreate() {
let p1 = null
let p2 = null
let p3 = null
pluginLoaded().then(res => {
this.isPluginLoaded = res.success && res.data
this.isPluginLoaded && initTheme()
this.contentShow = true
p1 = Promise.resolve(1)
}).catch(() => {
this.contentShow = true
})
@ -128,12 +132,14 @@ export default {
if (res.success && res.data) {
this.loginTypes.push(1)
}
p2 = Promise.resolve(2)
})
oidcStatus().then(res => {
if (res.success && res.data) {
this.loginTypes.push(2)
}
p3 = Promise.resolve(3)
})
getPublicKey().then(res => {
if (res.success && res.data) {
@ -141,6 +147,16 @@ export default {
localStorage.setItem('publicKey', res.data)
}
})
defaultLoginType().then(res => {
Promise.all([p1, p2, p3]).then(() => {
if (res.success && res.data && this.loginTypes.includes(res.data)) {
this.loginForm.loginType = res.data
this.$nextTick(() => {
this.changeLoginType(this.loginForm.loginType)
})
}
})
})
},
mounted() {

View File

@ -31,6 +31,18 @@
</el-col>
</el-row>
<el-row v-if="loginTypes.length > 1">
<el-col>
<el-form-item :label="$t('system_parameter_setting.login_type')" prop="loginType">
<el-radio-group v-model="formInline.loginType">
<el-radio :label="0" size="mini">{{ $t('login.default_login') }}</el-radio>
<el-radio v-if="loginTypes.includes(1)" :label="1" size="mini">LDAP</el-radio>
<el-radio v-if="loginTypes.includes(2)" :label="2" size="mini">OIDC</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item :label="$t('display.openHomePage')">
@ -55,6 +67,7 @@
<script>
import { basicInfo, updateInfo } from '@/api/system/basic'
import { ldapStatus, oidcStatus } from '@/api/user'
export default {
name: 'EmailSetting',
@ -69,6 +82,7 @@ export default {
show: true,
disabledSave: false,
loading: false,
loginTypes: [0],
rules: {
frontTimeOut: [
{
@ -87,7 +101,19 @@ export default {
}
}
},
beforeCreate() {
ldapStatus().then(res => {
if (res.success && res.data) {
this.loginTypes.push(1)
}
})
oidcStatus().then(res => {
if (res.success && res.data) {
this.loginTypes.push(2)
}
})
},
created() {
this.query()
},
@ -97,6 +123,10 @@ export default {
basicInfo().then(response => {
this.formInline = response.data
if (this.formInline && !this.formInline.loginType) {
this.formInline.loginType = 0
}
this.$nextTick(() => {
this.$refs.formInline.clearValidate()
})
@ -113,6 +143,7 @@ export default {
const param = [
{ paramKey: 'basic.frontTimeOut', paramValue: this.formInline.frontTimeOut, type: 'text', sort: 1 },
{ paramKey: 'basic.msgTimeOut', paramValue: this.formInline.msgTimeOut, type: 'text', sort: 2 },
{ paramKey: 'basic.loginType', paramValue: this.formInline.loginType, type: 'text', sort: 3 },
{ paramKey: 'ui.openHomePage', paramValue: this.formInline.openHomePage, type: 'text', sort: 13 }
]