forked from github/dataease
Merge branch 'dev' of github.com:dataease/dataease into dev
This commit is contained in:
commit
e23fff0dcd
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -115,4 +115,9 @@ public class SystemParameterController {
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping(value = "/defaultLoginType")
|
||||
public Integer defaultLoginType() {
|
||||
return systemParameterService.defaultLoginType();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -14,5 +14,7 @@ public class BasicInfo implements Serializable {
|
||||
private String msgTimeOut;
|
||||
@ApiModelProperty("显示首页")
|
||||
private String openHomePage;
|
||||
@ApiModelProperty("默认登录方式")
|
||||
private Integer loginType = 0;
|
||||
|
||||
}
|
||||
|
@ -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<>();
|
||||
|
@ -92,3 +92,10 @@ export function getPublicKey() {
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function defaultLoginType() {
|
||||
return request({
|
||||
url: '/system/defaultLoginType',
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
@ -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',
|
||||
|
@ -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 頁,默認抽取第一個',
|
||||
|
@ -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 页,默认抽取第一个',
|
||||
|
@ -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() {
|
||||
|
@ -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() {
|
||||
|
@ -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() {
|
||||
|
@ -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() {
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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>
|
||||
|
@ -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() {
|
||||
|
@ -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 }
|
||||
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user