1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-03-14 01:34:47 +08:00

feat: 限制数字输入的最大长度

This commit is contained in:
zhengkunwang223 2023-03-12 11:09:20 +08:00 committed by zhengkunwang223
parent e52ddd3f39
commit c54451c733
8 changed files with 40 additions and 26 deletions

View File

@ -747,6 +747,7 @@ export default {
type: 'Type',
list: 'File List',
sub: 'Include subdirectory',
downlodSuccess: 'Download Success',
},
setting: {
all: 'All',

View File

@ -754,6 +754,7 @@ export default {
root: '根目录',
list: '文件列表',
sub: '包含子目录',
downlodSuccess: '下载完成',
},
setting: {
all: '全部',

View File

@ -1,7 +1,7 @@
<template>
<LayoutContent :title="$t('app.detail')" :back-name="'App'" :v-loading="loadingDetail" :divider="true">
<LayoutContent :title="$t('app.detail')" :back-name="'App'" :divider="true">
<template #main>
<div class="brief">
<div class="brief" v-loading="loadingApp">
<el-row :gutter="20">
<div>
<el-col :span="3">
@ -34,7 +34,7 @@
</div>
<br />
<div>
<div v-if="!loadingDetail">
<el-alert
style="width: 300px"
v-if="!appDetail.enable"
@ -112,26 +112,30 @@ let app = ref<any>({});
let appDetail = ref<any>({});
let version = ref('');
let loadingDetail = ref(false);
let loadingApp = ref(false);
// let appKey = ref();
const installRef = ref();
const getApp = () => {
GetApp(props.appKey).then((res) => {
const getApp = async () => {
loadingApp.value = true;
try {
const res = await GetApp(props.appKey);
app.value = res.data;
version.value = app.value.versions[0];
getDetail(app.value.id, version.value);
});
} finally {
loadingApp.value = false;
}
};
const getDetail = (id: number, version: string) => {
const getDetail = async (id: number, version: string) => {
loadingDetail.value = true;
GetAppDetail(id, version)
.then((res) => {
try {
const res = await GetAppDetail(id, version);
appDetail.value = res.data;
})
.finally(() => {
} finally {
loadingDetail.value = false;
});
}
};
const toLink = (link: string) => {

View File

@ -9,10 +9,10 @@
:disabled="p.disabled"
></el-input>
<el-input
v-model="form[p.envKey]"
v-model.number="form[p.envKey]"
@blur="form[p.envKey] = Number(form[p.envKey])"
v-if="p.type == 'number'"
:type="p.type"
maxlength="15"
@change="updateParam"
:disabled="p.disabled"
></el-input>

View File

@ -7,7 +7,9 @@
:title="$t('file.downloadProcess')"
>
<div v-for="(value, index) in res" :key="index">
<span>{{ $t('file.downloading') }} {{ value['name'] }}</span>
<span>
{{ value['percent'] === 100 ? $t('file.downlodSuccess') : $t('file.downloading') }} {{ value['name'] }}
</span>
<el-progress v-if="value['total'] == 0" :percentage="100" :indeterminate="true" :duration="1" />
<el-progress v-else :text-inside="true" :stroke-width="15" :percentage="value['percent']"></el-progress>
<span>
@ -60,7 +62,7 @@ const onClose = () => {};
const initProcess = () => {
let href = window.location.href;
let protocol = href.split('//')[0] === 'http' ? 'ws' : 'wss';
let protocol = href.split('//')[0] === 'http:' ? 'ws' : 'wss';
let ipLocal = href.split('//')[1].split('/')[0];
processSocket = new WebSocket(`${protocol}://${ipLocal}/api/v1/files/ws`);
processSocket.onopen = onOpenProcess;

View File

@ -16,15 +16,15 @@
</el-select>
</el-form-item>
<el-form-item :label="$t('website.perserver')" prop="perserver">
<el-input v-model.number="form.perserver" min="1" max="65535" type="number"></el-input>
<el-input v-model.number="form.perserver" maxlength="10"></el-input>
<span class="input-help">{{ $t('website.perserverHelper') }}</span>
</el-form-item>
<el-form-item :label="$t('website.perip')" prop="perip">
<el-input v-model.number="form.perip" type="number"></el-input>
<el-input v-model.number="form.perip" maxlength="10"></el-input>
<span class="input-help">{{ $t('website.peripHelper') }}</span>
</el-form-item>
<el-form-item :label="$t('website.rate')" prop="rate">
<el-input v-model.number="form.rate" type="number"></el-input>
<el-input v-model.number="form.rate" maxlength="10"></el-input>
<span class="input-help">{{ $t('website.rateHelper') }}</span>
</el-form-item>
</el-form>
@ -103,10 +103,10 @@ const search = (scopeReq: Website.NginxScopeReq) => {
for (const param of res.data.params) {
if (param.name === 'limit_conn') {
if (param.params[0] === 'perserver') {
form.perserver = Number(param.params[1]);
form.perserver = Number(param.params[1].match(/\d+/g));
}
if (param.params[0] === 'perip') {
form.perip = Number(param.params[1]);
form.perip = Number(param.params[1].match(/\d+/g));
}
}
if (param.name === 'limit_rate') {

View File

@ -6,12 +6,12 @@
<el-switch v-model="form.enable" @change="updateEnable"></el-switch>
</el-form-item>
<el-form-item prop="cycle" :label="$t('website.cycle')">
<el-input v-model="form.cycle" type="number">
<el-input v-model="form.cycle" maxlength="10">
<template #append>{{ $t('website.seconds') }}</template>
</el-input>
</el-form-item>
<el-form-item prop="frequency" :label="$t('website.frequency')">
<el-input v-model="form.frequency" type="number">
<el-input v-model="form.frequency" maxlength="10">
<template #append>{{ $t('website.count') }}</template>
</el-input>
</el-form-item>

View File

@ -82,7 +82,7 @@
</span>
</template>
</el-table-column>
<el-table-column :label="$t('commons.table.type')" fix prop="type">
<el-table-column :label="$t('commons.table.type')" fix show-overflow-tooltip prop="type">
<template #default="{ row }">
{{ $t('website.' + row.type) }}
<span v-if="row.type === 'deployment'">[{{ row.appName }}]</span>
@ -414,4 +414,10 @@ onMounted(() => {
float: right;
display: inline;
}
.tooltip {
white-space: pre-wrap; /* 自动换行 */
word-break: break-all; /* 单词内换行 */
max-width: 200px; /* 控制最大宽度 */
}
</style>