feat(系统设置): 支持上传文件大小限制
--task=1016193 --user=宋昌昌 系统配置支持自定义文件大小限制-后端-V2 https://www.tapd.cn/55049933/s/1576397
This commit is contained in:
parent
f201dbfe91
commit
bfc17f9eeb
|
@ -622,6 +622,9 @@ const message = {
|
|||
url_tip: 'example: http://localhost:4444',
|
||||
},
|
||||
local_selenium_url: 'Local selenium-server URL',
|
||||
file_upload_size: 'File size limit(MB)',
|
||||
file_upload_size_is_null: 'The file size limit cannot be empty',
|
||||
file_upload_tips: 'Please fill in the integer [1-1024]'
|
||||
},
|
||||
custom_field: {
|
||||
add_option: 'Add Option',
|
||||
|
|
|
@ -620,6 +620,9 @@ const message = {
|
|||
url_tip: '例如:http://localhost:4444',
|
||||
},
|
||||
local_selenium_url: '本地 selenium-server 地址',
|
||||
file_upload_size: '文件大小限制(MB)',
|
||||
file_upload_size_is_null: '文件大小限制不能为空',
|
||||
file_upload_tips: '请填写[1-1024]的整数'
|
||||
},
|
||||
custom_field: {
|
||||
add_option: '添加选项',
|
||||
|
|
|
@ -619,6 +619,9 @@ const message = {
|
|||
url_tip: '例如:http://localhost:4444',
|
||||
},
|
||||
local_selenium_url: '本地 selenium-server 地址',
|
||||
file_upload_size: '文件大小限制(MB)',
|
||||
file_upload_size_is_null: '文件大小限制不能爲空',
|
||||
file_upload_tips: '請填寫[1-1024]的整數'
|
||||
},
|
||||
custom_field: {
|
||||
add_option: '添加選項',
|
||||
|
|
|
@ -12,4 +12,5 @@ public class BaseSystemConfigDTO {
|
|||
private String seleniumDockerUrl;
|
||||
private String runMode;
|
||||
private String docUrl;
|
||||
private String maxSize;
|
||||
}
|
||||
|
|
|
@ -106,7 +106,7 @@ public interface ParamConstants {
|
|||
|
||||
@Override
|
||||
public String getValue() {
|
||||
return this.value;
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -117,7 +117,8 @@ public interface ParamConstants {
|
|||
PROMETHEUS_HOST("base.prometheus.host"),
|
||||
SELENIUM_DOCKER_URL("base.selenium.docker.url"),
|
||||
RUN_MODE("base.run.mode"),
|
||||
DOC_URL("base.doc.url");
|
||||
DOC_URL("base.doc.url"),
|
||||
MAX_SIZE("base.file.upload.size");
|
||||
|
||||
private String value;
|
||||
|
||||
|
|
|
@ -28,7 +28,6 @@ import io.metersphere.quota.service.BaseQuotaService;
|
|||
import io.metersphere.request.HeaderRequest;
|
||||
import io.metersphere.request.resourcepool.QueryResourcePoolRequest;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.mail.MessagingException;
|
||||
import jakarta.mail.internet.InternetAddress;
|
||||
import jakarta.mail.internet.MimeMessage;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
|
@ -96,7 +95,7 @@ public class SystemParameterService {
|
|||
}
|
||||
|
||||
public void editMail(List<SystemParameter> parameters) {
|
||||
List<SystemParameter> paramList = this.getParamList(ParamConstants.Classify.MAIL.getValue());
|
||||
List<SystemParameter> paramList = getParamList(ParamConstants.Classify.MAIL.getValue());
|
||||
boolean empty = paramList.size() <= 0;
|
||||
|
||||
parameters.forEach(parameter -> {
|
||||
|
@ -188,7 +187,7 @@ public class SystemParameterService {
|
|||
}
|
||||
|
||||
public MailInfo mailInfo(String type) {
|
||||
List<SystemParameter> paramList = this.getParamList(type);
|
||||
List<SystemParameter> paramList = getParamList(type);
|
||||
MailInfo mailInfo = new MailInfo();
|
||||
if (!CollectionUtils.isEmpty(paramList)) {
|
||||
for (SystemParameter param : paramList) {
|
||||
|
@ -275,7 +274,7 @@ public class SystemParameterService {
|
|||
|
||||
public BaseSystemConfigDTO getBaseInfo() {
|
||||
BaseSystemConfigDTO baseSystemConfigDTO = new BaseSystemConfigDTO();
|
||||
List<SystemParameter> paramList = this.getParamList(ParamConstants.Classify.BASE.getValue());
|
||||
List<SystemParameter> paramList = getParamList(ParamConstants.Classify.BASE.getValue());
|
||||
if (!CollectionUtils.isEmpty(paramList)) {
|
||||
for (SystemParameter param : paramList) {
|
||||
if (StringUtils.equals(param.getParamKey(), ParamConstants.BASE.URL.getValue())) {
|
||||
|
@ -296,6 +295,9 @@ public class SystemParameterService {
|
|||
if (StringUtils.equals(param.getParamKey(), ParamConstants.BASE.DOC_URL.getValue())) {
|
||||
baseSystemConfigDTO.setDocUrl(param.getParamValue());
|
||||
}
|
||||
if (StringUtils.equals(param.getParamKey(), ParamConstants.BASE.MAX_SIZE.getValue())) {
|
||||
baseSystemConfigDTO.setMaxSize(param.getParamValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
return baseSystemConfigDTO;
|
||||
|
@ -469,7 +471,7 @@ public class SystemParameterService {
|
|||
}
|
||||
|
||||
public String getLogDetails() {
|
||||
LdapInfo ldapInfo = this.getLdapInfo(ParamConstants.Classify.LDAP.getValue());
|
||||
LdapInfo ldapInfo = getLdapInfo(ParamConstants.Classify.LDAP.getValue());
|
||||
if (ldapInfo != null) {
|
||||
List<DetailColumn> columns = ReflexObjectUtil.getColumns(ldapInfo, SystemReference.ldapColumns);
|
||||
OperatingLogDetails details = new OperatingLogDetails(JSON.toJSONString(ldapInfo.getUrl()), null, "LDAP设置", null, columns);
|
||||
|
@ -479,7 +481,7 @@ public class SystemParameterService {
|
|||
}
|
||||
|
||||
public String getMailLogDetails() {
|
||||
MailInfo mailInfo = this.mailInfo(ParamConstants.Classify.MAIL.getValue());
|
||||
MailInfo mailInfo = mailInfo(ParamConstants.Classify.MAIL.getValue());
|
||||
if (mailInfo != null) {
|
||||
List<DetailColumn> columns = ReflexObjectUtil.getColumns(mailInfo, SystemReference.mailColumns);
|
||||
OperatingLogDetails details = new OperatingLogDetails(JSON.toJSONString(mailInfo.getAccount()), null, "邮件设置", null, columns);
|
||||
|
@ -489,7 +491,7 @@ public class SystemParameterService {
|
|||
}
|
||||
|
||||
public String getBaseLogDetails() {
|
||||
BaseSystemConfigDTO configDTO = this.getBaseInfo();
|
||||
BaseSystemConfigDTO configDTO = getBaseInfo();
|
||||
if (configDTO != null) {
|
||||
List<DetailColumn> columns = ReflexObjectUtil.getColumns(configDTO, SystemReference.baseColumns);
|
||||
OperatingLogDetails details = new OperatingLogDetails(JSON.toJSONString(configDTO.getUrl()), null, "基本配置", null, columns);
|
||||
|
|
|
@ -19,6 +19,9 @@
|
|||
<el-form-item :label="$t('commons.help_documentation')" prop="docUrl">
|
||||
<el-input v-model="formInline.docUrl" placeholder="https://metersphere.io/docs/index.html"/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('system_config.file_upload_size')" prop="maxSize">
|
||||
<el-input v-model="formInline.maxSize" :placeholder="$t('system_config.file_upload_tips')"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
@ -39,8 +42,23 @@ import {getSystemBaseSetting, saveSystemBaseSetting} from "../../../api/system";
|
|||
export default {
|
||||
name: "BaseSetting",
|
||||
data() {
|
||||
const checkUploadSize = (rule, value, callback) => {
|
||||
if (!value) {
|
||||
return callback(new Error(this.$t('system_config.file_upload_size_is_null')));
|
||||
}
|
||||
if (isNaN(value) || !Number.isInteger(Number(value))) {
|
||||
callback(new Error(this.$t('system_config.file_upload_tips')));
|
||||
} else {
|
||||
const size = Number.parseInt(value);
|
||||
if (size < 1 || size > 1024) {
|
||||
callback(new Error(this.$t('system_config.file_upload_tips')));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
};
|
||||
return {
|
||||
formInline: {runMode: true, docUrl: 'https://metersphere.io/docs/index.html'},
|
||||
formInline: {runMode: true, docUrl: 'https://metersphere.io/docs/index.html', maxSize: null},
|
||||
input: '',
|
||||
visible: true,
|
||||
showEdit: true,
|
||||
|
@ -65,6 +83,12 @@ export default {
|
|||
trigger: ['change', 'blur']
|
||||
},
|
||||
],
|
||||
maxSize: [
|
||||
{
|
||||
validator: checkUploadSize,
|
||||
trigger: ['change', 'blur']
|
||||
}
|
||||
],
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -82,6 +106,7 @@ export default {
|
|||
res.data.docUrl = 'https://metersphere.io/docs/index.html'
|
||||
}
|
||||
this.formInline = res.data;
|
||||
console.log(this.formInline);
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs.formInline) {
|
||||
this.$refs.formInline.clearValidate();
|
||||
|
@ -109,7 +134,8 @@ export default {
|
|||
{paramKey: "base.concurrency", paramValue: this.formInline.concurrency, type: "text", sort: 2},
|
||||
{paramKey: "base.prometheus.host", paramValue: this.formInline.prometheusHost, type: "text", sort: 1},
|
||||
{paramKey: "base.selenium.docker.url", paramValue: this.formInline.seleniumDockerUrl, type: "text", sort: 1},
|
||||
{paramKey: "base.doc.url", paramValue: this.formInline.docUrl, type: "text", sort: 1}
|
||||
{paramKey: "base.doc.url", paramValue: this.formInline.docUrl, type: "text", sort: 1},
|
||||
{paramKey: "base.file.upload.size", paramValue: this.formInline.maxSize, type: "text", sort: 1},
|
||||
];
|
||||
this.loading = saveSystemBaseSetting(param).then(res => {
|
||||
if (res.success) {
|
||||
|
|
Loading…
Reference in New Issue