This commit is contained in:
chenjianxing 2020-05-14 16:25:24 +08:00
commit dd2bbeda5b
14 changed files with 70 additions and 75 deletions

View File

@ -2,9 +2,10 @@ package io.metersphere.base.mapper;
import io.metersphere.base.domain.User; import io.metersphere.base.domain.User;
import io.metersphere.base.domain.UserExample; import io.metersphere.base.domain.UserExample;
import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface UserMapper { public interface UserMapper {
long countByExample(UserExample example); long countByExample(UserExample example);
@ -29,4 +30,7 @@ public interface UserMapper {
int updateByPrimaryKey(User record); int updateByPrimaryKey(User record);
int updatePassword(User record); int updatePassword(User record);
String getDefaultlanguage(String paramKey);
} }

View File

@ -304,11 +304,15 @@
where id = #{id,jdbcType=VARCHAR} where id = #{id,jdbcType=VARCHAR}
</update> </update>
<!--修改密码--> <!--修改密码-->
<update id="updatePassword" parameterType="io.metersphere.base.domain.User"> <update id="updatePassword" parameterType="io.metersphere.base.domain.User">
update user update user
set set
password=#{password,jdbcType=VARCHAR}, password=#{password,jdbcType=VARCHAR},
update_time = #{updateTime,jdbcType=BIGINT} update_time = #{updateTime,jdbcType=BIGINT}
where id=#{id,jdbcType=VARCHAR} where id=#{id,jdbcType=VARCHAR}
</update> </update>
<select id="getDefaultlanguage" parameterType="java.lang.String" resultType="java.lang.String">
select param_value from system_parameter
where param_key=#{paramKey,jdbcType=VARCHAR}
</select>
</mapper> </mapper>

View File

@ -3,10 +3,14 @@ package io.metersphere.base.mapper.ext;
import io.metersphere.base.domain.User; import io.metersphere.base.domain.User;
import io.metersphere.controller.request.UserRequest; import io.metersphere.controller.request.UserRequest;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
public interface ExtUserMapper { public interface ExtUserMapper {
List<User> getUserList(@Param("userRequest") UserRequest request); List<User> getUserList(@Param("userRequest") UserRequest request);
int updatePassword(User record); int updatePassword(User record);
String getDefaultlanguage(String paramKey);
} }

View File

@ -41,5 +41,9 @@
update_time = #{updateTime,jdbcType=BIGINT} update_time = #{updateTime,jdbcType=BIGINT}
where id=#{id,jdbcType=VARCHAR} where id=#{id,jdbcType=VARCHAR}
</update> </update>
<select id="getDefaultlanguage" parameterType="java.lang.String" resultType="java.lang.String">
select param_value from system_parameter
where param_key=#{paramKey,jdbcType=VARCHAR}
</select>
</mapper> </mapper>

View File

@ -87,4 +87,10 @@ public class LoginController {
return ResultHolder.success(""); return ResultHolder.success("");
} }
/*Get default language*/
@PostMapping(value = "/language")
public String getDefaultlanguage() {
return userService.getDefaultlanguage();
}
} }

View File

@ -1,16 +0,0 @@
package io.metersphere.dto;
import io.metersphere.base.domain.Role;
import io.metersphere.base.domain.User;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class UserOperateDTO extends User {
private List<Role> roleList;
}

View File

@ -1,18 +0,0 @@
package io.metersphere.dto;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class UserRoleDTO {
private String id;
private String roleId;
private String type;
private String name;
private String desc;
private String parentId;
private Boolean switchable = true;
}

View File

@ -223,7 +223,7 @@ public class TestResourcePoolService {
List<TestResourcePoolDTO> testResourcePools = listResourcePools(request); List<TestResourcePoolDTO> testResourcePools = listResourcePools(request);
// 重新校验 pool // 重新校验 pool
for (TestResourcePoolDTO pool : testResourcePools) { for (TestResourcePoolDTO pool : testResourcePools) {
// 手动设置成无效的, 排除 // 手动设置成无效的, 排除
if (INVALID.name().equals(pool.getStatus())) { if (INVALID.name().equals(pool.getStatus())) {
continue; continue;
} }

View File

@ -344,4 +344,9 @@ public class UserService {
userRole.setUpdateTime(System.currentTimeMillis()); userRole.setUpdateTime(System.currentTimeMillis());
userRoleMapper.insertSelective(userRole); userRoleMapper.insertSelective(userRole);
} }
public String getDefaultlanguage() {
final String key = "registry.defaultlanguage";
return extUserMapper.getDefaultlanguage(key);
}
} }

View File

@ -158,7 +158,7 @@ export class Request extends BaseConfig {
initOptions(options) { initOptions(options) {
options = options || {}; options = options || {};
options.method = "GET"; options.method = options.method || "GET";
options.body = new Body(options.body); options.body = new Body(options.body);
options.assertions = new Assertions(options.assertions); options.assertions = new Assertions(options.assertions);
options.extract = new Extract(options.extract); options.extract = new Extract(options.extract);
@ -474,10 +474,10 @@ class JMXGenerator {
if (request.body.isKV()) { if (request.body.isKV()) {
body = request.body.kvs.filter(this.filter); body = request.body.kvs.filter(this.filter);
} else { } else {
httpSamplerProxy.boolProp('HTTPSampler.postBodyRaw', true);
body.push({name: '', value: request.body.raw}); body.push({name: '', value: request.body.raw});
} }
httpSamplerProxy.boolProp('HTTPSampler.postBodyRaw', true);
httpSamplerProxy.add(new HTTPSamplerArguments(body)); httpSamplerProxy.add(new HTTPSamplerArguments(body));
} }

View File

@ -5,7 +5,7 @@
text-color="#fff"> text-color="#fff">
<el-submenu index="1" popper-class="submenu" <el-submenu index="1" popper-class="submenu"
v-permission="['org_admin', 'test_manager', 'test_user', 'test_viewer']"> v-permission="['org_admin', 'test_manager', 'test_user', 'test_viewer']">
<template v-slot:title>{{$t('commons.organization')}}{{currentOrganizationName}}</template> <template v-slot:title>{{$t('commons.organization')}}: {{currentOrganizationName}}</template>
<label v-for="(item,index) in organizationList" :key="index"> <label v-for="(item,index) in organizationList" :key="index">
<el-menu-item @click="changeOrg(item)">{{item.name}} <el-menu-item @click="changeOrg(item)">{{item.name}}
<i class="el-icon-check" <i class="el-icon-check"
@ -14,7 +14,7 @@
</label> </label>
</el-submenu> </el-submenu>
<el-submenu index="2" popper-class="submenu" v-permission="['test_manager', 'test_user', 'test_viewer']"> <el-submenu index="2" popper-class="submenu" v-permission="['test_manager', 'test_user', 'test_viewer']">
<template v-slot:title>{{$t('commons.workspace')}}{{currentWorkspaceName}}</template> <template v-slot:title>{{$t('commons.workspace')}}: {{currentWorkspaceName}}</template>
<label v-for="(item,index) in workspaceList" :key="index"> <label v-for="(item,index) in workspaceList" :key="index">
<el-menu-item @click="changeWs(item)"> <el-menu-item @click="changeWs(item)">
{{item.name}} {{item.name}}
@ -52,8 +52,8 @@
currentUserInfo: {}, currentUserInfo: {},
currentUserId: getCurrentUser().id, currentUserId: getCurrentUser().id,
workspaceIds: [], workspaceIds: [],
currentOrganizationName: this.$t('organization.select'), currentOrganizationName: '',
currentWorkspaceName: this.$t('workspace.select') currentWorkspaceName: ''
} }
}, },
computed: { computed: {

View File

@ -10,21 +10,15 @@
<font-awesome-icon class="icon global" :icon="['fas', 'globe']"/> <font-awesome-icon class="icon global" :icon="['fas', 'globe']"/>
<span>{{language}}</span> <span>{{language}}</span>
</template> </template>
<el-menu-item @click="changeLanguage('zh_CN')"> <el-menu-item v-for="(value, key) in languageMap" :key="key" @click="changeLanguage(key)">
简体中文<i class="el-icon-check" v-if="currentUserInfo.language==='zh_CN' || !currentUserInfo.language"/> {{value}} <i class="el-icon-check" v-if="language === value"/>
</el-menu-item>
<el-menu-item @click="changeLanguage('zh_TW')">
繁體中文<i class="el-icon-check" v-if="currentUserInfo.language==='zh_TW'"/>
</el-menu-item>
<el-menu-item @click="changeLanguage('en_US')">
English<i class="el-icon-check" v-if="currentUserInfo.language==='en_US'"/>
</el-menu-item> </el-menu-item>
</el-submenu> </el-submenu>
</el-menu> </el-menu>
</template> </template>
<script> <script>
import {TokenKey, ZH_CN, ZH_TW, EN_US} from '../../../../common/js/constants'; import {EN_US, TokenKey, ZH_CN, ZH_TW} from '../../../../common/js/constants';
import {getCurrentUser} from "../../../../common/js/utils"; import {getCurrentUser} from "../../../../common/js/utils";
export default { export default {
@ -32,7 +26,12 @@
data() { data() {
return { return {
currentUserInfo: {}, currentUserInfo: {},
language: '' language: '',
languageMap: {
[ZH_CN]: '简体中文',
[EN_US]: 'English',
[ZH_TW]: '繁體中文',
}
}; };
}, },
created() { created() {
@ -41,23 +40,26 @@
if (!lang) { if (!lang) {
lang = 'zh_CN'; lang = 'zh_CN';
} }
this.$setLang(lang); this.checkLanguage(lang)
switch (lang) {
case ZH_CN:
this.language = '简体中文';
break;
case ZH_TW:
this.language = '繁體中文';
break;
case EN_US:
this.language = 'English';
break;
default:
this.language = '简体中文';
break;
}
}, },
methods: { methods: {
checkLanguage(lang) {
this.$setLang(lang);
switch (lang) {
case ZH_CN:
this.language = this.languageMap[ZH_CN];
break;
case ZH_TW:
this.language = this.languageMap[ZH_TW];
break;
case EN_US:
this.language = this.languageMap[EN_US];
break;
default:
this.language = this.languageMap[ZH_CN];
break;
}
},
currentUser: () => { currentUser: () => {
return getCurrentUser(); return getCurrentUser();
}, },
@ -66,9 +68,9 @@
id: this.currentUser().id, id: this.currentUser().id,
language: language language: language
}; };
this.checkLanguage(language);
this.result = this.$post("/user/update/current", user, response => { this.result = this.$post("/user/update/current", user, response => {
localStorage.setItem(TokenKey, JSON.stringify(response.data)); localStorage.setItem(TokenKey, JSON.stringify(response.data));
window.location.reload();
}); });
} }
} }

View File

@ -40,8 +40,8 @@ export default {
'personal_setting': 'Personal Setting', 'personal_setting': 'Personal Setting',
'test_resource_pool': 'Resource Pool', 'test_resource_pool': 'Resource Pool',
'system_setting': 'Settings', 'system_setting': 'Settings',
'api': 'Api test', 'api': 'API',
'performance': 'Performance test', 'performance': 'Performance',
'functional': 'Functional test', 'functional': 'Functional test',
'input_content': 'Please enter content', 'input_content': 'Please enter content',
'create': 'Create', 'create': 'Create',

View File

@ -107,10 +107,10 @@
this.$post("signin", this.form, response => { this.$post("signin", this.form, response => {
saveLocalStorage(response); saveLocalStorage(response);
let language = response.data.language; let language = response.data.language;
if (!language) { this.$post("language",response=>{
language = 'zh_CN'; this.$setLang(language);
} })
this.$setLang(language);
window.location.href = "/" window.location.href = "/"
}); });
} else { } else {