Merge branch 'master' into v1.7
This commit is contained in:
commit
a3aa640e11
|
@ -71,6 +71,7 @@ public class MsScenario extends MsTestElement {
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
config.setStep(this.name);
|
config.setStep(this.name);
|
||||||
config.setStepType("SCENARIO");
|
config.setStepType("SCENARIO");
|
||||||
config.setEnableCookieShare(enableCookieShare);
|
config.setEnableCookieShare(enableCookieShare);
|
||||||
|
@ -91,6 +92,8 @@ public class MsScenario extends MsTestElement {
|
||||||
this.addRandom(tree, variables);
|
this.addRandom(tree, variables);
|
||||||
if (CollectionUtils.isNotEmpty(hashTree)) {
|
if (CollectionUtils.isNotEmpty(hashTree)) {
|
||||||
for (MsTestElement el : hashTree) {
|
for (MsTestElement el : hashTree) {
|
||||||
|
// 给所有孩子加一个父亲标志
|
||||||
|
el.setParent(this);
|
||||||
el.toHashTree(tree, el.getHashTree(), config);
|
el.toHashTree(tree, el.getHashTree(), config);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,10 +29,13 @@ import io.metersphere.api.service.ApiDefinitionService;
|
||||||
import io.metersphere.api.service.ApiTestEnvironmentService;
|
import io.metersphere.api.service.ApiTestEnvironmentService;
|
||||||
import io.metersphere.base.domain.ApiDefinitionWithBLOBs;
|
import io.metersphere.base.domain.ApiDefinitionWithBLOBs;
|
||||||
import io.metersphere.base.domain.ApiTestEnvironmentWithBLOBs;
|
import io.metersphere.base.domain.ApiTestEnvironmentWithBLOBs;
|
||||||
|
import io.metersphere.commons.constants.LoopConstants;
|
||||||
|
import io.metersphere.commons.constants.MsTestElementConstants;
|
||||||
import io.metersphere.commons.utils.CommonBeanFactory;
|
import io.metersphere.commons.utils.CommonBeanFactory;
|
||||||
import io.metersphere.commons.utils.LogUtil;
|
import io.metersphere.commons.utils.LogUtil;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.jmeter.config.Arguments;
|
import org.apache.jmeter.config.Arguments;
|
||||||
import org.apache.jmeter.config.CSVDataSet;
|
import org.apache.jmeter.config.CSVDataSet;
|
||||||
import org.apache.jmeter.config.RandomVariableConfig;
|
import org.apache.jmeter.config.RandomVariableConfig;
|
||||||
|
@ -96,7 +99,10 @@ public abstract class MsTestElement {
|
||||||
@JSONField(ordinal = 10)
|
@JSONField(ordinal = 10)
|
||||||
private LinkedList<MsTestElement> hashTree;
|
private LinkedList<MsTestElement> hashTree;
|
||||||
|
|
||||||
|
private MsTestElement parent;
|
||||||
|
|
||||||
private static final String BODY_FILE_DIR = "/opt/metersphere/data/body";
|
private static final String BODY_FILE_DIR = "/opt/metersphere/data/body";
|
||||||
|
|
||||||
// 公共环境逐层传递,如果自身有环境 以自身引用环境为准否则以公共环境作为请求环境
|
// 公共环境逐层传递,如果自身有环境 以自身引用环境为准否则以公共环境作为请求环境
|
||||||
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
public void toHashTree(HashTree tree, List<MsTestElement> hashTree, ParameterConfig config) {
|
||||||
for (MsTestElement el : hashTree) {
|
for (MsTestElement el : hashTree) {
|
||||||
|
@ -173,7 +179,7 @@ public abstract class MsTestElement {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void addCsvDataSet(HashTree tree,List<ScenarioVariable> variables) {
|
protected void addCsvDataSet(HashTree tree, List<ScenarioVariable> variables) {
|
||||||
if (CollectionUtils.isNotEmpty(variables)) {
|
if (CollectionUtils.isNotEmpty(variables)) {
|
||||||
List<ScenarioVariable> list = variables.stream().filter(ScenarioVariable::isCSVValid).collect(Collectors.toList());
|
List<ScenarioVariable> list = variables.stream().filter(ScenarioVariable::isCSVValid).collect(Collectors.toList());
|
||||||
if (CollectionUtils.isNotEmpty(list)) {
|
if (CollectionUtils.isNotEmpty(list)) {
|
||||||
|
@ -197,7 +203,7 @@ public abstract class MsTestElement {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void addCounter(HashTree tree,List<ScenarioVariable> variables) {
|
protected void addCounter(HashTree tree, List<ScenarioVariable> variables) {
|
||||||
if (CollectionUtils.isNotEmpty(variables)) {
|
if (CollectionUtils.isNotEmpty(variables)) {
|
||||||
List<ScenarioVariable> list = variables.stream().filter(ScenarioVariable::isCounterValid).collect(Collectors.toList());
|
List<ScenarioVariable> list = variables.stream().filter(ScenarioVariable::isCounterValid).collect(Collectors.toList());
|
||||||
if (CollectionUtils.isNotEmpty(list)) {
|
if (CollectionUtils.isNotEmpty(list)) {
|
||||||
|
@ -219,7 +225,7 @@ public abstract class MsTestElement {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void addRandom(HashTree tree,List<ScenarioVariable> variables) {
|
protected void addRandom(HashTree tree, List<ScenarioVariable> variables) {
|
||||||
if (CollectionUtils.isNotEmpty(variables)) {
|
if (CollectionUtils.isNotEmpty(variables)) {
|
||||||
List<ScenarioVariable> list = variables.stream().filter(ScenarioVariable::isRandom).collect(Collectors.toList());
|
List<ScenarioVariable> list = variables.stream().filter(ScenarioVariable::isRandom).collect(Collectors.toList());
|
||||||
if (CollectionUtils.isNotEmpty(list)) {
|
if (CollectionUtils.isNotEmpty(list)) {
|
||||||
|
@ -240,6 +246,44 @@ public abstract class MsTestElement {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MsTestElement getRootParent(MsTestElement element) {
|
||||||
|
if (element.getParent() == null) {
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
if (MsTestElementConstants.LoopController.name().equals(element.getType())) {
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
return getRootParent(element.getParent());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected String getParentName(MsTestElement element, ParameterConfig config) {
|
||||||
|
if (element != null) {
|
||||||
|
MsTestElement parent = this.getRootParent(element);
|
||||||
|
if (parent != null) {
|
||||||
|
if (MsTestElementConstants.LoopController.name().equals(parent.getType())) {
|
||||||
|
MsLoopController loopController = (MsLoopController) parent;
|
||||||
|
if (StringUtils.equals(loopController.getLoopType(), LoopConstants.WHILE.name()) && loopController.getWhileController() != null) {
|
||||||
|
return "While 循环-" + "${LoopCounterConfigXXX}";
|
||||||
|
}
|
||||||
|
if (StringUtils.equals(loopController.getLoopType(), LoopConstants.FOREACH.name()) && loopController.getForEachController() != null) {
|
||||||
|
return "ForEach 循环-" + "${LoopCounterConfigXXX}";
|
||||||
|
}
|
||||||
|
if (StringUtils.equals(loopController.getLoopType(), LoopConstants.LOOP_COUNT.name()) && loopController.getCountController() != null) {
|
||||||
|
return "次数循环-" + "${LoopCounterConfigXXX}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return parent.getName();
|
||||||
|
}
|
||||||
|
return element.getName();
|
||||||
|
} else if (config != null && StringUtils.isNotEmpty(config.getStep())) {
|
||||||
|
if (MsTestElementConstants.SCENARIO.name().equals(config.getStepType())) {
|
||||||
|
return config.getStep();
|
||||||
|
} else {
|
||||||
|
return config.getStep() + "-" + "${LoopCounterConfigXXX}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,8 @@ public class MsIfController extends MsTestElement {
|
||||||
final HashTree groupTree = tree.add(ifController());
|
final HashTree groupTree = tree.add(ifController());
|
||||||
if (CollectionUtils.isNotEmpty(hashTree)) {
|
if (CollectionUtils.isNotEmpty(hashTree)) {
|
||||||
hashTree.forEach(el -> {
|
hashTree.forEach(el -> {
|
||||||
|
// 给所有孩子加一个父亲标志
|
||||||
|
el.setParent(this);
|
||||||
el.toHashTree(groupTree, el.getHashTree(), config);
|
el.toHashTree(groupTree, el.getHashTree(), config);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,6 +83,8 @@ public class MsLoopController extends MsTestElement {
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(hashTree)) {
|
if (CollectionUtils.isNotEmpty(hashTree)) {
|
||||||
hashTree.forEach(el -> {
|
hashTree.forEach(el -> {
|
||||||
|
// 给所有孩子加一个父亲标志
|
||||||
|
el.setParent(this);
|
||||||
el.toHashTree(groupTree, el.getHashTree(), config);
|
el.toHashTree(groupTree, el.getHashTree(), config);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,12 +39,9 @@ public class MsJSR223Processor extends MsTestElement {
|
||||||
} else {
|
} else {
|
||||||
processor.setName("JSR223Processor");
|
processor.setName("JSR223Processor");
|
||||||
}
|
}
|
||||||
if (config != null && StringUtils.isNotEmpty(config.getStep())) {
|
String name = this.getParentName(this.getParent(), config);
|
||||||
if ("SCENARIO".equals(config.getStepType())) {
|
if (StringUtils.isNotEmpty(name)) {
|
||||||
processor.setName(this.getName() + "<->" + config.getStep());
|
processor.setName(this.getName() + "<->" + name);
|
||||||
} else {
|
|
||||||
processor.setName(this.getName() + "<->" + config.getStep() + "-" + "${LoopCounterConfigXXX}");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
processor.setProperty(TestElement.TEST_CLASS, JSR223Sampler.class.getName());
|
processor.setProperty(TestElement.TEST_CLASS, JSR223Sampler.class.getName());
|
||||||
processor.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
processor.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
||||||
|
|
|
@ -12,6 +12,7 @@ import io.metersphere.api.dto.definition.request.sampler.dubbo.MsConfigCenter;
|
||||||
import io.metersphere.api.dto.definition.request.sampler.dubbo.MsConsumerAndService;
|
import io.metersphere.api.dto.definition.request.sampler.dubbo.MsConsumerAndService;
|
||||||
import io.metersphere.api.dto.definition.request.sampler.dubbo.MsRegistryCenter;
|
import io.metersphere.api.dto.definition.request.sampler.dubbo.MsRegistryCenter;
|
||||||
import io.metersphere.api.dto.scenario.KeyValue;
|
import io.metersphere.api.dto.scenario.KeyValue;
|
||||||
|
import io.metersphere.commons.constants.MsTestElementConstants;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
@ -62,7 +63,7 @@ public class MsDubboSampler extends MsTestElement {
|
||||||
if (this.getReferenced() != null && "Deleted".equals(this.getReferenced())) {
|
if (this.getReferenced() != null && "Deleted".equals(this.getReferenced())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (this.getReferenced() != null && "REF".equals(this.getReferenced())) {
|
if (this.getReferenced() != null && MsTestElementConstants.REF.name().equals(this.getReferenced())) {
|
||||||
this.getRefElement(this);
|
this.getRefElement(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,12 +78,9 @@ public class MsDubboSampler extends MsTestElement {
|
||||||
private DubboSample dubboSample(ParameterConfig config) {
|
private DubboSample dubboSample(ParameterConfig config) {
|
||||||
DubboSample sampler = new DubboSample();
|
DubboSample sampler = new DubboSample();
|
||||||
sampler.setName(this.getName());
|
sampler.setName(this.getName());
|
||||||
if (config != null && StringUtils.isNotEmpty(config.getStep())) {
|
String name = this.getParentName(this.getParent(), config);
|
||||||
if ("SCENARIO".equals(config.getStepType())) {
|
if (StringUtils.isNotEmpty(name)) {
|
||||||
sampler.setName(this.getName() + "<->" + config.getStep());
|
sampler.setName(this.getName() + "<->" + name);
|
||||||
} else {
|
|
||||||
sampler.setName(this.getName() + "<->" + config.getStep() + "-" + "${LoopCounterConfigXXX}");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
sampler.setProperty(TestElement.TEST_CLASS, DubboSample.class.getName());
|
sampler.setProperty(TestElement.TEST_CLASS, DubboSample.class.getName());
|
||||||
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("DubboSampleGui"));
|
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("DubboSampleGui"));
|
||||||
|
|
|
@ -7,6 +7,7 @@ import io.metersphere.api.dto.definition.request.ParameterConfig;
|
||||||
import io.metersphere.api.dto.definition.request.dns.MsDNSCacheManager;
|
import io.metersphere.api.dto.definition.request.dns.MsDNSCacheManager;
|
||||||
import io.metersphere.api.dto.scenario.Body;
|
import io.metersphere.api.dto.scenario.Body;
|
||||||
import io.metersphere.api.dto.scenario.KeyValue;
|
import io.metersphere.api.dto.scenario.KeyValue;
|
||||||
|
import io.metersphere.commons.constants.MsTestElementConstants;
|
||||||
import io.metersphere.commons.utils.LogUtil;
|
import io.metersphere.commons.utils.LogUtil;
|
||||||
import io.metersphere.commons.utils.ScriptEngineUtils;
|
import io.metersphere.commons.utils.ScriptEngineUtils;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -91,20 +92,16 @@ public class MsHTTPSamplerProxy extends MsTestElement {
|
||||||
if (!this.isEnable()) {
|
if (!this.isEnable()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (this.getReferenced() != null && "REF".equals(this.getReferenced())) {
|
if (this.getReferenced() != null && MsTestElementConstants.REF.name().equals(this.getReferenced())) {
|
||||||
this.getRefElement(this);
|
this.getRefElement(this);
|
||||||
}
|
}
|
||||||
HTTPSamplerProxy sampler = new HTTPSamplerProxy();
|
HTTPSamplerProxy sampler = new HTTPSamplerProxy();
|
||||||
sampler.setEnabled(true);
|
sampler.setEnabled(true);
|
||||||
sampler.setName(this.getName());
|
sampler.setName(this.getName());
|
||||||
if (config != null && StringUtils.isNotEmpty(config.getStep())) {
|
String name = this.getParentName(this.getParent(), config);
|
||||||
if ("SCENARIO".equals(config.getStepType())) {
|
if (StringUtils.isNotEmpty(name)) {
|
||||||
sampler.setName(this.getName() + "<->" + config.getStep());
|
sampler.setName(this.getName() + "<->" + name);
|
||||||
} else {
|
|
||||||
sampler.setName(this.getName() + "<->" + config.getStep() + "-" + "${LoopCounterConfigXXX}");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());
|
sampler.setProperty(TestElement.TEST_CLASS, HTTPSamplerProxy.class.getName());
|
||||||
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("HttpTestSampleGui"));
|
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("HttpTestSampleGui"));
|
||||||
sampler.setMethod(this.getMethod());
|
sampler.setMethod(this.getMethod());
|
||||||
|
|
|
@ -10,6 +10,7 @@ import io.metersphere.api.dto.scenario.KeyValue;
|
||||||
import io.metersphere.api.dto.scenario.environment.EnvironmentConfig;
|
import io.metersphere.api.dto.scenario.environment.EnvironmentConfig;
|
||||||
import io.metersphere.api.service.ApiTestEnvironmentService;
|
import io.metersphere.api.service.ApiTestEnvironmentService;
|
||||||
import io.metersphere.base.domain.ApiTestEnvironmentWithBLOBs;
|
import io.metersphere.base.domain.ApiTestEnvironmentWithBLOBs;
|
||||||
|
import io.metersphere.commons.constants.MsTestElementConstants;
|
||||||
import io.metersphere.commons.exception.MSException;
|
import io.metersphere.commons.exception.MSException;
|
||||||
import io.metersphere.commons.utils.CommonBeanFactory;
|
import io.metersphere.commons.utils.CommonBeanFactory;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
@ -57,7 +58,7 @@ public class MsJDBCSampler extends MsTestElement {
|
||||||
if (!this.isEnable()) {
|
if (!this.isEnable()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (this.getReferenced() != null && "REF".equals(this.getReferenced())) {
|
if (this.getReferenced() != null && MsTestElementConstants.REF.name().equals(this.getReferenced())) {
|
||||||
this.getRefElement(this);
|
this.getRefElement(this);
|
||||||
}
|
}
|
||||||
if (StringUtils.isNotEmpty(dataSourceId)) {
|
if (StringUtils.isNotEmpty(dataSourceId)) {
|
||||||
|
@ -110,12 +111,9 @@ public class MsJDBCSampler extends MsTestElement {
|
||||||
private JDBCSampler jdbcSampler(ParameterConfig config) {
|
private JDBCSampler jdbcSampler(ParameterConfig config) {
|
||||||
JDBCSampler sampler = new JDBCSampler();
|
JDBCSampler sampler = new JDBCSampler();
|
||||||
sampler.setName(this.getName());
|
sampler.setName(this.getName());
|
||||||
if (config != null && StringUtils.isNotEmpty(config.getStep())) {
|
String name = this.getParentName(this.getParent(), config);
|
||||||
if ("SCENARIO".equals(config.getStepType())) {
|
if (StringUtils.isNotEmpty(name)) {
|
||||||
sampler.setName(this.getName() + "<->" + config.getStep());
|
sampler.setName(this.getName() + "<->" + name);
|
||||||
} else {
|
|
||||||
sampler.setName(this.getName() + "<->" + config.getStep() + "-" + "${LoopCounterConfigXXX}");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
sampler.setProperty(TestElement.TEST_CLASS, JDBCSampler.class.getName());
|
sampler.setProperty(TestElement.TEST_CLASS, JDBCSampler.class.getName());
|
||||||
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
sampler.setProperty(TestElement.GUI_CLASS, SaveService.aliasToClass("TestBeanGUI"));
|
||||||
|
|
|
@ -7,6 +7,7 @@ import io.metersphere.api.dto.definition.request.ParameterConfig;
|
||||||
import io.metersphere.api.dto.definition.request.processors.pre.MsJSR223PreProcessor;
|
import io.metersphere.api.dto.definition.request.processors.pre.MsJSR223PreProcessor;
|
||||||
import io.metersphere.api.dto.scenario.KeyValue;
|
import io.metersphere.api.dto.scenario.KeyValue;
|
||||||
import io.metersphere.api.dto.scenario.environment.EnvironmentConfig;
|
import io.metersphere.api.dto.scenario.environment.EnvironmentConfig;
|
||||||
|
import io.metersphere.commons.constants.MsTestElementConstants;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
@ -73,7 +74,7 @@ public class MsTCPSampler extends MsTestElement {
|
||||||
if (!this.isEnable()) {
|
if (!this.isEnable()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (this.getReferenced() != null && this.getReferenced().equals("REF")) {
|
if (this.getReferenced() != null && MsTestElementConstants.REF.name().equals(this.getReferenced())) {
|
||||||
this.getRefElement(this);
|
this.getRefElement(this);
|
||||||
}
|
}
|
||||||
config.setConfig(getEnvironmentConfig(useEnvironment));
|
config.setConfig(getEnvironmentConfig(useEnvironment));
|
||||||
|
@ -102,12 +103,9 @@ public class MsTCPSampler extends MsTestElement {
|
||||||
private TCPSampler tcpSampler(ParameterConfig config) {
|
private TCPSampler tcpSampler(ParameterConfig config) {
|
||||||
TCPSampler tcpSampler = new TCPSampler();
|
TCPSampler tcpSampler = new TCPSampler();
|
||||||
tcpSampler.setName(this.getName());
|
tcpSampler.setName(this.getName());
|
||||||
if (config != null && StringUtils.isNotEmpty(config.getStep())) {
|
String name = this.getParentName(this.getParent(), config);
|
||||||
if ("SCENARIO".equals(config.getStepType())) {
|
if (StringUtils.isNotEmpty(name)) {
|
||||||
tcpSampler.setName(this.getName() + "<->" + config.getStep());
|
tcpSampler.setName(this.getName() + "<->" + name);
|
||||||
} else {
|
|
||||||
tcpSampler.setName(this.getName() + "<->" + config.getStep() + "-" + "${LoopCounterConfigXXX}");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tcpSampler.setProperty(TestElement.TEST_CLASS, TCPSampler.class.getName());
|
tcpSampler.setProperty(TestElement.TEST_CLASS, TCPSampler.class.getName());
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package io.metersphere.commons.constants;
|
||||||
|
|
||||||
|
public enum MsTestElementConstants {
|
||||||
|
LoopController,SCENARIO,REF
|
||||||
|
}
|
|
@ -8,7 +8,6 @@
|
||||||
<img :src="'/display/file/loginLogo'" alt="">
|
<img :src="'/display/file/loginLogo'" alt="">
|
||||||
</div>
|
</div>
|
||||||
<div class="welcome">
|
<div class="welcome">
|
||||||
<span>Metersphere</span>
|
|
||||||
<span>{{ $t('commons.welcome') }}</span>
|
<span>{{ $t('commons.welcome') }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -283,11 +282,6 @@ export default {
|
||||||
margin: 165px 0px;
|
margin: 165px 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.welcome span:first-child {
|
|
||||||
font-weight: bold;
|
|
||||||
margin-right: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
Loading…
Reference in New Issue